
/* Archbloc service-page shared module */
/* extracted from original Presence static page and normalized for reuse */

.page-body{padding-top:62px}
.w{max-width:1100px;margin:0 auto;padding:0 40px}
.sec{padding:80px 0;border-bottom:1px solid var(--border)}
.sec:last-child{border-bottom:none}
.hero{padding:72px 0 88px;border-bottom:1px solid var(--border)}
.st{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.sh{font-size:clamp(26px,3.5vw,38px);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--text)}
.sh em,.hh em,.ph em{font-style:normal;color:var(--accent)}
.la{font-size:13px;font-weight:500;color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:gap .18s}
.la:hover{gap:10px}
.bp{font-size:15px;font-weight:600;color:#fff;background:var(--accent);border:none;padding:16px 32px;border-radius:var(--radius-cta);cursor:pointer;transition:opacity .18s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.bp:hover{opacity:.88}
.bg{font-size:13px;font-weight:500;color:var(--muted);background:none;border:1.5px solid var(--border-mid);padding:15px 24px;border-radius:var(--radius-cta);cursor:pointer;transition:border-color .18s,color .18s;text-decoration:none;display:inline-flex;align-items:center}
.bg:hover{border-color:var(--accent);color:var(--text)}

.hg{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.badge{font-size:11px;font-weight:600;color:#fff;background:var(--accent);padding:4px 12px;border-radius:4px;display:inline-block;margin-bottom:16px;letter-spacing:.04em}
.ti{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.tl{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--aux)}
.td{display:flex;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--border-mid)}
.dot.on{background:var(--accent)}
.ey{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.hh{font-size:clamp(34px,4vw,52px);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:var(--text);margin-bottom:20px}
.hs{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:32px}
.ha{display:flex;gap:14px;flex-wrap:wrap}

.hr{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:40px;text-align:center}
.pm{font-size:52px;font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em}
.pm span{font-size:.42em;color:var(--accent);font-weight:600}
.pu{font-size:13px;color:var(--muted);margin-top:6px}
.pmin{font-size:13px;color:var(--aux);margin-top:4px;margin-bottom:28px}
.pc{width:100%;font-size:15px;font-weight:600;color:#fff;background:var(--accent);border:none;padding:16px;border-radius:var(--radius-cta);cursor:pointer;transition:opacity .18s;text-decoration:none;display:block;text-align:center;margin-bottom:12px}
.pc:hover{opacity:.88}
.pa{font-size:13px;color:var(--aux)}
.pa a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border-mid)}
.pa a:hover{color:var(--text)}

.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:44px}
.vs-col{padding:36px 32px}
.vs-col:first-child{border-right:1px solid var(--border);background:var(--bg2)}
.vs-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:20px;display:flex;align-items:center;gap:8px}
.vs-label.new{color:var(--accent)}
.vs-list{list-style:none}
.vs-list li{padding:10px 0;border-top:1px solid var(--border);font-size:13px;color:var(--text);display:flex;align-items:center;gap:12px;line-height:1.5}
.vs-list li .icon{font-size:13px;flex-shrink:0}
.vs-list li .icon.old{color:var(--border-mid)}
.vs-list li .icon.new{color:var(--accent);font-weight:600}

.del-rows{margin-top:44px}
.dr{display:grid;grid-template-columns:60px 1fr 1fr;gap:32px;padding:40px 0;border-top:1px solid var(--border);align-items:start}
.drn{font-size:36px;font-weight:700;color:var(--border-mid);line-height:1;letter-spacing:-.03em}
.drtag{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:10px}
.drt{font-size:19px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.3}
.drb{font-size:13px;color:var(--muted);line-height:1.7}
.dro{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px}
.drol{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.droi{list-style:none}
.droi li{font-size:13px;color:var(--text);padding:7px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.droi li:last-child{border-bottom:none}
.droi li::before{content:'→';color:var(--muted);font-size:11px;flex-shrink:0}

.mt-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:32px}
.mtc{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px}
.mtl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:8px}
.mtt{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}
.mtb{font-size:13px;color:var(--muted);line-height:1.6}
.media-note{margin-top:20px;padding:18px 22px;border-left:3px solid var(--accent);background:var(--bg2);border-radius:0 12px 12px 0;font-size:13px;color:var(--muted);line-height:1.75}
.media-note strong{color:var(--text);font-weight:500}
.media-sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}

.pbox{background:var(--bg2);border:1.5px solid var(--accent-border);border-radius:12px;padding:52px;display:grid;grid-template-columns:1fr auto;gap:52px;align-items:center;margin-top:44px}
.ptag{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);padding:4px 12px;border-radius:4px;display:inline-block;margin-bottom:18px}
.ph{font-size:clamp(20px,2.8vw,30px);font-weight:700;line-height:1.25;color:var(--text);margin-bottom:14px;letter-spacing:-.02em}
.pb{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:18px}
.gua{font-size:13px;color:var(--muted);line-height:1.8;padding-left:16px;border-left:3px solid var(--accent)}
.pr{text-align:right;flex-shrink:0}
.pbig{font-size:clamp(36px,4.5vw,56px);font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em}
.pbig span{font-size:.42em;color:var(--accent)}
.psub{font-size:13px;color:var(--muted);margin-top:8px}
.pac{display:flex;flex-direction:column;align-items:flex-end;gap:12px;margin-top:22px}

.fl{margin-top:44px}
.fi{padding:26px 0;border-top:1px solid var(--border);cursor:pointer}
.fq{font-size:15px;font-weight:600;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:16px;line-height:1.4}
.fq::after{content:'+';font-size:19px;color:var(--aux);flex-shrink:0;transition:transform .2s,color .2s}
.fi.open .fq::after{transform:rotate(45deg);color:var(--accent)}
.fa{font-size:13px;color:var(--muted);line-height:1.8;max-height:0;overflow:hidden;transition:max-height .3s ease,padding-top .3s}
.fi.open .fa{max-height:300px;padding-top:14px}

.ct{width:100%;border-collapse:collapse;margin-top:44px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.ct th{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 18px;background:var(--bg2);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left}
.ct th:last-child{border-right:none}
.ct th.ac{color:var(--accent)}
.ct td{padding:13px 18px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:13px;color:var(--muted);vertical-align:middle}
.ct td:last-child{border-right:none}
.ct tr:last-child td{border-bottom:none}
.ct td.feat{font-size:13px;color:var(--text);font-weight:500}
.ct td.ac{background:rgba(249,115,22,.04)}
.ct td.yes{color:var(--accent);font-weight:600}
.ct td.no{color:var(--aux)}
.ct td.pl a{font-size:11px;font-weight:600;color:var(--accent);text-decoration:none}
.ct td.dim a{color:var(--aux)}
.ct td.dim a:hover{color:var(--muted)}

@media(max-width:900px){
  .w{padding:0 20px}
  .hero{padding:56px 0 64px}
  .hg{grid-template-columns:1fr;gap:36px}
  .sec{padding:56px 0}
  .vs-grid{grid-template-columns:1fr}
  .vs-col:first-child{border-right:none;border-bottom:1px solid var(--border)}
  .dr{grid-template-columns:1fr;gap:20px}
  .mt-grid{grid-template-columns:1fr}
  .media-sec-grid{grid-template-columns:1fr;gap:32px}
  .pbox{grid-template-columns:1fr;padding:32px 24px;gap:28px}
  .pr{text-align:left}
  .pac{align-items:flex-start}
  .ct{display:block;overflow-x:auto}
  .ha{flex-direction:column;align-items:stretch}
  .ha .bp,.ha .bg{width:100%;justify-content:center}
}


/* =========================================================
   [Authority 页面专属] authority.html
   说明：
   - 以下样式只给 authority.html 使用
   - 以 authority_静态.html 为参考拆分
   ========================================================= */

.wg{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.wc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:32px;transition:border-color .2s}
.wc:hover{border-color:var(--accent-border)}
.wn{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:12px}
.wt{font-size:19px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.3}
.wb{font-size:13px;color:var(--muted);line-height:1.7}

.sct{width:100%;border-collapse:collapse;margin-top:44px;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden}
.sct th{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 18px;background:var(--bg2);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left}
.sct th:last-child{border-right:none}
.sct td{padding:16px 18px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:13px;color:var(--muted);vertical-align:top}
.sct td:last-child{border-right:none}
.sct tr:last-child td{border-bottom:none}
.sct td:first-child{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--aux);white-space:nowrap;min-width:80px}
.sct td:nth-child(2){font-size:13px;color:var(--text);font-weight:500;min-width:160px}
.sct td:nth-child(3){min-width:200px}
.sct td:last-child{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;min-width:80px}

.sg{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.sq{font-size:clamp(18px,2.5vw,24px);font-weight:600;line-height:1.45;color:var(--text);margin-bottom:20px;padding-left:20px;border-left:3px solid var(--accent)}
.sq em{font-style:normal;color:var(--accent)}
.sa{font-size:13px;color:var(--aux);padding-left:20px}
.sf{list-style:none;margin-top:32px}
.sf li{padding:14px 0;border-top:1px solid var(--border);font-size:13px;color:var(--text);display:flex;align-items:start;gap:12px;line-height:1.6}
.sf li::before{content:'→';color:var(--muted);flex-shrink:0;margin-top:2px}
.sbox{background:rgba(249,115,22,.05);border:1.5px solid var(--accent-border);border-radius:var(--radius-card,12px);padding:40px}
.sbox-note{margin-top:24px;padding-top:24px;border-top:1px solid var(--accent-border)}
.sbox-note-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:10px}

.pg{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden;margin-top:44px}
.ps{padding:32px 24px;border-right:1px solid var(--border)}
.ps:last-child{border-right:none}
.psw{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:12px}
.pst{font-size:15px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.3}
.psb{font-size:13px;color:var(--muted);line-height:1.7}
.psd{font-size:11px;font-weight:600;color:var(--muted);margin-top:14px}

.rg{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden;margin-top:44px}
.rc{padding:40px 32px;border-right:1px solid var(--border)}
.rc:last-child{border-right:none}
.rm{font-size:clamp(32px,5vw,52px);font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em;margin-bottom:12px}
.rl{font-size:15px;font-weight:600;color:var(--text);margin-bottom:8px}
.rn{font-size:13px;color:var(--muted);line-height:1.7}

@media(max-width:900px){
  .wg{grid-template-columns:1fr}
  .sg{grid-template-columns:1fr}
  .pg{grid-template-columns:1fr}
  .ps{border-right:none;border-bottom:1px solid var(--border)}
  .ps:last-child{border-bottom:none}
  .rg{grid-template-columns:1fr}
  .rc{border-right:none;border-bottom:1px solid var(--border)}
  .rc:last-child{border-bottom:none}
  .sct{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
}


/* =========================================================
   [Method 页面专属] method.html
   说明：
   - 以下样式只给 method.html 使用
   - 以 method_静态.html 为参考拆分
   - 保留现有组件体系与统一弹窗体系
   ========================================================= */

.method-hero{padding:72px 0 80px;border-bottom:1px solid var(--border)}
.method-hero-title{font-size:clamp(32px,5vw,56px)}
.method-hero-copy{font-size:16px;color:var(--muted);line-height:1.8;margin-top:20px;max-width:600px}

.fwbar{display:flex;gap:0;margin-top:48px}
.fwstep{padding:12px 20px;border:1px solid var(--border);border-right:none;text-align:center;min-width:90px;background:var(--bg2)}
.fwstep:last-child{border-right:1px solid var(--border)}
.fwnum{font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--aux);display:block;margin-bottom:4px}
.fwname{font-size:13px;font-weight:700;color:var(--text);display:block;letter-spacing:.06em}

.phg{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.phq{font-size:clamp(18px,2.5vw,24px);font-weight:600;line-height:1.45;color:var(--text);margin-bottom:16px;padding-left:20px;border-left:3px solid var(--accent)}
.pha{font-size:13px;color:var(--aux);padding-left:20px}
.phb{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:18px}
.phb strong{color:var(--text);font-weight:500}
.plist{list-style:none;margin-top:28px}
.plist li{padding:14px 0;border-top:1px solid var(--border);font-size:13px;color:var(--text);display:flex;align-items:start;gap:14px;line-height:1.6}
.plist li .icon{font-size:19px;color:var(--accent);flex-shrink:0}

.steps{margin-top:44px}
.step{display:grid;grid-template-columns:72px 1fr;gap:36px;padding:56px 0;border-top:1px solid var(--border);align-items:start}
.stepn{font-size:52px;font-weight:700;color:var(--border-mid);line-height:1;letter-spacing:-.04em}
.steptag{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--aux);margin-bottom:10px}
.stept{font-size:clamp(22px,3vw,30px);font-weight:700;color:var(--text);margin-bottom:14px;line-height:1.15;letter-spacing:-.02em}
.stepb{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:36px}
.stepb strong{color:var(--text);font-weight:500}
.stepg{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.stepcol{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:24px}
.stepcol-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.stepcol-items{list-style:none}
.stepcol-items li{font-size:13px;color:var(--text);padding:9px 0;border-bottom:1px solid var(--border);display:flex;align-items:start;gap:10px;line-height:1.6}
.stepcol-items li:last-child{border-bottom:none}
.stepcol-items li::before{content:'→';color:var(--muted);font-size:13px;flex-shrink:0;margin-top:1px}

.sig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden;margin-top:44px}
.sigc{padding:32px 24px;border-right:1px solid var(--border)}
.sigc:last-child{border-right:none}
.sigm{font-size:clamp(28px,4vw,42px);font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em;margin-bottom:10px}
.sigl{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}
.sign{font-size:13px;color:var(--muted);line-height:1.7}

.tg{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden;margin-top:44px}
.tc{padding:48px 40px}
.tc:first-child{border-right:1px solid var(--border)}
.tcl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:16px}
.tct{font-size:clamp(20px,2.5vw,26px);font-weight:700;color:var(--text);margin-bottom:14px;line-height:1.2}
.tcb{font-size:13px;color:var(--muted);line-height:1.8}
.tcb strong{color:var(--text);font-weight:500}
.tclist{list-style:none;margin-top:20px}
.tclist li{padding:10px 0;border-top:1px solid var(--border);font-size:13px;color:var(--muted);display:flex;align-items:center;gap:10px}
.tclist li::before{content:'·';color:var(--border-mid);font-size:18px}

.method-cta-sec{border-bottom:none}
.ctabox{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:60px;display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center;margin-top:44px}
.method-cta-copy{font-size:15px;color:var(--muted);line-height:1.8;margin-top:10px}
.cta-actions{display:flex;flex-direction:column;gap:12px;flex-shrink:0}

@media(max-width:900px){
  .method-hero{padding:56px 0 64px}
  .phg{grid-template-columns:1fr;gap:36px}
  .fwbar{display:grid;grid-template-columns:1fr 1fr}
  .fwstep{border-right:1px solid var(--border)}
  .step{grid-template-columns:1fr;gap:16px}
  .stepn{font-size:36px}
  .stepg{grid-template-columns:1fr}
  .sig-grid{grid-template-columns:1fr 1fr}
  .sigc:nth-child(2n){border-right:none}
  .sigc:nth-child(n+3){border-top:1px solid var(--border)}
  .tg{grid-template-columns:1fr}
  .tc:first-child{border-right:none;border-bottom:1px solid var(--border)}
  .ctabox{grid-template-columns:1fr;padding:36px 24px;gap:28px}
  .cta-actions{flex-direction:row;flex-wrap:wrap}
}

@media(max-width:640px){
  .sig-grid{grid-template-columns:1fr}
  .sigc{border-right:none;border-top:1px solid var(--border)}
  .sigc:first-child{border-top:none}
  .cta-actions{flex-direction:column}
  .cta-actions .bp,
  .cta-actions .bg{width:100%;justify-content:center}
}


/* =========================================================
   [GEO Diagnostic 页面专属] geo-diagnostic.html
   说明：
   - 以下样式只给 geo-diagnostic.html 使用
   - 以 geo-diagnostic_静态.html 为参考拆分
   - 保留现有组件体系与统一弹窗体系
   ========================================================= */

.geo-hero{padding:64px 0 80px;border-bottom:1px solid var(--border)}
.geo-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 2s ease-in-out infinite;margin-right:8px}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.geo-hero-title{font-size:clamp(34px,4.5vw,52px);line-height:1.1;letter-spacing:-.025em;margin-top:12px;margin-bottom:18px}
.geo-hero-copy{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:32px}
.geo-hero-copy strong{color:var(--text);font-weight:500}
.hstats{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden}
.hstat{padding:20px 24px;border-right:1px solid var(--border)}
.hstat:last-child{border-right:none}
.hsn{font-size:28px;font-weight:700;color:var(--text);line-height:1;letter-spacing:-.02em;margin-bottom:6px}
.hsl{font-size:11px;color:var(--muted);line-height:1.5}

.fcard{background:var(--bg);border:1.5px solid var(--accent-border);border-radius:var(--radius-card,12px);padding:40px;position:relative}
.fcard::before{content:'';position:absolute;top:-1px;left:0;right:0;height:3px;background:var(--accent);border-radius:var(--radius-card,12px) var(--radius-card,12px) 0 0}
.ftitle{font-size:19px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.2}
.fsub{font-size:13px;color:var(--aux);margin-bottom:20px}
.fcard iframe{border:none;width:100%;min-height:480px;display:block}

.wyg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.wyg-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:28px}
.wyg-num{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.wyg-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.3}
.wyg-body{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:18px}
.wyg-sample{background:var(--bg);border:1px solid var(--border);padding:14px 16px;border-radius:8px;font-size:11px;color:var(--muted);line-height:1.8}
.wyg-sample strong{color:var(--accent)}

.geo-g{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.geo-intro-copy{font-size:13px;color:var(--muted);line-height:1.8;margin-top:16px}
.geo-visual{margin-top:32px;border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:28px;background:var(--bg2)}
.geo-vl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:16px}
.geo-q{font-size:13px;color:var(--muted);margin-bottom:14px;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:8px}
.geo-q strong{color:var(--text)}
.geo-r{padding:16px;background:rgba(249,115,22,.05);border:1px solid var(--accent-border);border-radius:8px}
.geo-rl{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--aux);margin-bottom:8px;text-transform:uppercase}
.geo-rt{font-size:13px;color:var(--muted);line-height:1.8}
.geo-rt .mention{color:var(--accent);font-weight:600;background:rgba(249,115,22,.12);padding:1px 5px;border-radius:3px}
.geo-rt .miss{color:var(--aux);text-decoration:line-through}
.geo-faq{margin-top:32px}
.geo-fq{padding:18px 0;border-top:1px solid var(--border)}
.geo-qt{font-size:16px;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.35}
.geo-at{font-size:13px;color:var(--muted);line-height:1.7}
.geo-at strong{color:var(--text);font-weight:500}

.geo-process-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:44px}
.geo-process-copy{font-size:13px;color:var(--muted);line-height:1.8}
.proc-g{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border);border-radius:var(--radius-card,12px);overflow:hidden;margin-top:44px}
.prs{padding:28px 24px;border-right:1px solid var(--border)}
.prs:last-child{border-right:none}
.prn{font-size:28px;font-weight:700;color:var(--border-mid);line-height:1;margin-bottom:14px;letter-spacing:-.02em}
.prt{font-size:16px;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.3}
.prb{font-size:13px;color:var(--muted);line-height:1.7}
.prd{font-size:11px;font-weight:600;color:var(--muted);margin-top:12px}

.sample-card{border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:40px;margin-top:44px}
.sample-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:28px;flex-wrap:wrap;gap:12px}
.sample-tag{font-size:11px;font-weight:600;color:#fff;background:var(--accent);padding:4px 12px;border-radius:4px;letter-spacing:.06em}
.sample-meta{font-size:11px;color:var(--aux)}
.sample-g{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0}
.sample-col{padding:0 24px;border-right:1px solid var(--border)}
.sample-col:first-child{padding-left:0}
.sample-col:last-child{border-right:none;padding-right:0}
.sample-cl{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.score-big{font-size:44px;font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em;margin-bottom:6px}
.score-sub{font-size:13px;color:var(--muted)}
.geo-score-list{margin-top:16px;font-size:11px;color:var(--muted);line-height:2}
.finding-list,.priority-list{list-style:none}
.finding-item{padding:8px 0;border-top:1px solid var(--border);font-size:13px;display:flex;align-items:start;gap:10px;line-height:1.6}
.finding-item.crit::before{content:'→';color:#ef4444;flex-shrink:0}
.finding-item.warn::before{content:'→';color:#f59e0b;flex-shrink:0}
.finding-item.ok::before{content:'→';color:var(--accent);flex-shrink:0}
.priority-item{padding:9px 0;border-top:1px solid var(--border);font-size:13px;display:flex;align-items:center;gap:10px}
.priority-num{color:var(--muted);font-weight:700;flex-shrink:0}
.sample-note{margin-top:20px;padding:14px 18px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;font-size:11px;color:var(--aux)}

.geo-bottom-sec{border-bottom:none}
.cta-g{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.geo-bottom-copy{font-size:13px;color:var(--muted);line-height:1.8;margin-top:16px}
.cta-opts{display:flex;flex-direction:column;gap:14px}
.cta-opt{padding:20px 24px;border:1px solid var(--border);border-radius:var(--radius-card,12px);display:flex;align-items:center;gap:18px;cursor:pointer;transition:border-color .18s,background .18s;text-decoration:none}
.cta-opt:hover{border-color:var(--accent-border);background:rgba(249,115,22,.04)}
.co-icon{font-size:19px;color:var(--accent);flex-shrink:0;width:28px}
.co-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}
.co-desc{font-size:11px;color:var(--aux)}

@media(max-width:900px){
  .geo-hero{padding:56px 0 64px}
  .geo-hero-grid{grid-template-columns:1fr;gap:40px}
  .fcard{padding:28px 20px}
  .fcard iframe{min-height:520px}
  .wyg-grid{grid-template-columns:1fr}
  .geo-g{grid-template-columns:1fr}
  .geo-process-head{grid-template-columns:1fr;gap:20px;align-items:start}
  .proc-g{grid-template-columns:1fr 1fr}
  .sample-g{grid-template-columns:1fr;gap:20px}
  .sample-col{padding:16px 0;border-right:none;border-top:1px solid var(--border)}
  .sample-col:first-child{border-top:none;padding-top:0}
  .cta-g{grid-template-columns:1fr}
}

@media(max-width:640px){
  .proc-g{grid-template-columns:1fr}
}


/* =========================================================
   [Blog Article 通用模块] blog/post-template.html / blog 文章页
   说明：
   - 这是 blog 子目录文章页的通用样式基底
   - 供 post-template.html 与后续文章页共用
   ========================================================= */

.breadcrumb{max-width:1100px;margin:0 auto;padding:24px 40px 0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--aux)}
.breadcrumb a{color:var(--aux);text-decoration:none;transition:color .15s}
.breadcrumb a:hover{color:var(--muted)}
.breadcrumb-sep{color:var(--border-mid)}

.article-layout{max-width:1100px;margin:0 auto;padding:0 40px 100px;display:grid;grid-template-columns:minmax(0,700px) 300px;gap:60px;align-items:start}
.article-header{padding:36px 0 48px;border-bottom:1px solid var(--border);margin-bottom:52px}
.article-category{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--aux);margin-bottom:18px;display:block}
.article-headline{font-size:clamp(28px,4vw,44px);font-weight:700;line-height:1.15;letter-spacing:-.025em;color:var(--text);margin-bottom:20px}
.article-headline em{font-style:normal;color:var(--accent)}
.article-deck{font-size:18px;color:var(--muted);line-height:1.7;margin-bottom:28px;max-width:640px}
.article-byline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--aux);padding-top:20px;border-top:1px solid var(--border)}
.byline-author{color:var(--text);font-weight:500}
.byline-dot{color:var(--border-mid)}

.article-body{font-size:16px;line-height:1.85;color:var(--muted)}
.article-body h2{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text);margin:56px 0 18px;line-height:1.25}
.article-body h3{font-size:18px;font-weight:700;color:var(--text);margin:36px 0 14px;line-height:1.3}
.article-body p{margin-bottom:22px}
.article-body strong{color:var(--text);font-weight:600}
.article-body em{font-style:italic}
.article-body a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-border);text-underline-offset:3px}
.article-body a:hover{text-decoration-color:var(--accent)}
.article-body ul,.article-body ol{padding-left:24px;margin-bottom:22px}
.article-body li{margin-bottom:8px}
.article-body ul li::marker{color:var(--accent)}
.article-body ol li::marker{color:var(--accent);font-weight:600}

.callout{background:var(--accent-light);border-left:3px solid var(--accent);border-radius:0 var(--radius-card,12px) var(--radius-card,12px) 0;padding:20px 24px;margin:32px 0;font-size:15px;color:var(--text)}
.pullquote{font-size:20px;font-weight:600;line-height:1.5;color:var(--text);padding:28px 0;border-top:2px solid var(--accent);border-bottom:1px solid var(--border);margin:44px 0;font-style:italic}
.article-divider{width:40px;height:3px;background:var(--accent);border:none;margin:52px 0}
.article-table{width:100%;border-collapse:collapse;margin:32px 0;font-size:14px}
.article-table th{text-align:left;padding:12px 16px;background:var(--bg2);color:var(--text);font-weight:600;font-size:13px;border-bottom:2px solid var(--border-mid)}
.article-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top}
.article-table tr:last-child td{border-bottom:none}
.article-table .tag-geo{color:var(--accent);font-weight:500}

.article-sidebar{padding-top:36px;position:sticky;top:80px}
.sidebar-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:24px;margin-bottom:20px}
.sidebar-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:16px}
.toc-list{list-style:none}
.toc-list li{padding:6px 0;border-bottom:1px solid var(--border)}
.toc-list li:last-child{border-bottom:none}
.toc-list a{font-size:13px;color:var(--muted);text-decoration:none;transition:color .15s;line-height:1.5;display:block}
.toc-list a:hover{color:var(--accent)}
.sidebar-cta-card{background:linear-gradient(135deg,var(--accent-light),var(--bg));border:1px solid var(--accent-border);border-radius:var(--radius-card,12px);padding:24px}
.sidebar-cta-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.35}
.sidebar-cta-body{font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.65}
.sidebar-cta-btn{display:block;text-align:center;font-size:13px;font-weight:600;color:#fff;background:var(--accent);border-radius:6px;padding:11px 20px;text-decoration:none;transition:opacity .18s,transform .18s}
.sidebar-cta-btn:hover{opacity:.88;transform:translateY(-1px)}
.article-inline-cta{display:none;margin-top:36px}

.related-section{border-top:1px solid var(--border);padding:64px 40px;max-width:1100px;margin:0 auto}
.related-heading{font-size:19px;font-weight:700;color:var(--text);letter-spacing:-.015em;margin-bottom:32px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.related-card{border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:24px;text-decoration:none;display:block;transition:border-color .2s,box-shadow .2s}
.related-card:hover{border-color:var(--accent-border);box-shadow:0 4px 16px rgba(249,115,22,.08)}
.related-tag{font-size:11px;font-weight:600;color:var(--aux);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;display:block}
.related-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:10px}
.related-meta{font-size:11px;color:var(--aux)}

/* =========================================================
   [Post Template 页面专属] post-template.html
   说明：
   - 博客文章模板页的占位文本兼容与移动端 CTA 补充
   ========================================================= */

.article-headline,
.article-deck,
.article-category,
.article-byline,
.toc-list a,
.related-title,
.related-meta{word-break:break-word}

@media(max-width:960px){
  .breadcrumb{padding:24px 20px 0}
  .article-layout{grid-template-columns:1fr;padding:0 20px 80px}
  .article-sidebar{display:none}
  .article-inline-cta{display:block}
  .related-section{padding:48px 20px}
  .related-grid{grid-template-columns:1fr}
}


/* =========================================================
   [Signal 页面专属] signal.html
   说明：
   - 以下样式只给 signal.html 使用
   - 基于 signal 静态参考页拆分
   - 不覆盖其他已修好的页面
   ========================================================= */

.signal-hero{padding:72px 0 88px;border-bottom:1px solid var(--border)}
.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.signal-tier{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.signal-tier-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--aux)}
.signal-tier-dots{display:flex;gap:6px}
.signal-tier-dots span{width:8px;height:8px;border-radius:50%;background:var(--border-mid)}
.signal-tier-dots .is-active{background:var(--accent)}
.signal-eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.signal-title{font-size:clamp(34px,4vw,52px);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:var(--text);margin-bottom:20px}
.signal-title em{font-style:normal;color:var(--accent)}
.signal-copy{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:32px}
.signal-actions{display:flex;gap:14px;flex-wrap:wrap}

.signal-price-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:40px;text-align:center}
.signal-price{font-size:52px;font-weight:700;color:var(--text);line-height:1;letter-spacing:-.03em}
.signal-price span{font-size:.42em;color:var(--accent);font-weight:600}
.signal-price-meta{font-size:13px;color:var(--muted);margin-top:6px}
.signal-price-note{font-size:13px;color:var(--aux);margin-top:4px;margin-bottom:28px}
.signal-price-card .pc{margin-bottom:12px}
.signal-price-card .pa{font-size:13px;color:var(--aux)}
.signal-price-card .pa a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border-mid)}
.signal-price-card .pa a:hover{color:var(--text)}

.signal-fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.signal-fit-copy{font-size:13px;color:var(--muted);line-height:1.8;margin-top:14px}
.signal-fit-list{list-style:none;margin-top:28px}
.signal-fit-list li{padding:14px 0;border-top:1px solid var(--border);display:flex;align-items:flex-start;gap:12px;line-height:1.6}
.signal-fit-list li::before{content:'✓';color:var(--accent);flex-shrink:0;margin-top:2px;font-size:16px}
.signal-fit-list strong{display:block;font-size:13px;color:var(--text);font-weight:600}
.signal-fit-list small{display:block;color:var(--muted);font-size:13px;margin-top:3px}

.signal-note-box{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:28px;margin-top:4px}
.signal-note-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.signal-note-list{list-style:none}
.signal-note-list li{font-size:13px;color:var(--muted);padding:8px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.signal-note-list li:last-child{border-bottom:none}
.signal-note-list li::before{content:'×';color:var(--aux);font-size:13px;flex-shrink:0}
.signal-upgrade{margin-top:20px;padding:24px 28px;border:1px solid var(--border);border-radius:12px}
.signal-upgrade p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:14px}

.signal-deliver-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.signal-deliver-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:28px 24px}
.signal-deliver-num{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--aux);margin-bottom:14px}
.signal-deliver-title{font-size:19px;font-weight:700;color:var(--text);margin-bottom:10px;line-height:1.3}
.signal-deliver-body{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:18px}
.signal-deliver-list{list-style:none}
.signal-deliver-list li{font-size:13px;color:var(--text);padding:7px 0;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}
.signal-deliver-list li::before{content:'→';color:var(--accent);font-size:11px;flex-shrink:0}

.signal-include-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:4px}
.signal-include-price{font-size:13px;color:var(--muted)}
.signal-include-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:44px}
.signal-include-item{padding:20px 0;border-top:1px solid var(--border);display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.signal-include-item:nth-child(odd){padding-right:32px}
.signal-include-item:nth-child(even){padding-left:32px;border-left:1px solid var(--border)}
.signal-include-tag{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--aux);padding-top:2px}
.signal-include-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.signal-include-desc{font-size:13px;color:var(--muted);line-height:1.6}

.signal-timeline{margin-top:44px;display:flex;flex-direction:column}
.signal-timeline-item{display:grid;grid-template-columns:90px 1fr;gap:28px;padding:32px 0;border-top:1px solid var(--border);align-items:start}
.signal-timeline-month{font-size:11px;font-weight:600;color:var(--aux);letter-spacing:.06em;padding-top:4px}
.signal-timeline-title{font-size:19px;font-weight:700;color:var(--text);margin-bottom:8px}
.signal-timeline-body{font-size:13px;color:var(--muted);line-height:1.7}
.signal-timeline-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.signal-timeline-tags span{font-size:11px;color:var(--muted);background:var(--bg2);border:1px solid var(--border);padding:4px 12px;border-radius:20px}

.signal-pricing-box{background:var(--bg2);border:1.5px solid var(--accent-border);border-radius:12px;padding:52px;display:grid;grid-template-columns:1fr auto;gap:52px;align-items:center;margin-top:44px}
.signal-pricing-box .ph em{font-style:normal;color:var(--accent)}

.signal-compare-sec{border-bottom:none}

@media(max-width:900px){
  .signal-hero{padding:56px 0 64px}
  .signal-grid,.signal-fit-grid,.signal-pricing-box{grid-template-columns:1fr;gap:36px}
  .signal-deliver-grid{grid-template-columns:1fr}
  .signal-include-grid{grid-template-columns:1fr}
  .signal-include-item{grid-template-columns:80px 1fr;gap:12px}
  .signal-include-item:nth-child(odd){padding-right:0}
  .signal-include-item:nth-child(even){padding-left:0;border-left:none}
  .signal-timeline-item{grid-template-columns:1fr;gap:6px}
  .signal-pricing-box{padding:32px 24px;gap:28px}
}


/* =========================================================
   [Blog 列表页] blog.html — 精选角标
   说明：
   - 依赖 .article-card { position: relative } （已在 blog.html <style> 中定义）
   - 新增文章卡片时，精选文章加 data-featured="true" 与此 span 即可
   ========================================================= */
.featured-badge {
  position: absolute;
  top: 16px; right: 16px;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-light);
  border: 1px solid var(--accent-border);
  padding: 3px 8px; border-radius: 10px;
  pointer-events: none;
}


/* =========================================================
   [Blog Article 通用修复] — 按钮颜色 & FAQ 模块
   说明：
   - .article-body a 会覆盖 .sidebar-cta-btn 的白色文字，
     需在此显式还原，优先级高于通用链接规则
   - .faq-module 系列为文章内嵌 FAQ 区块的专属样式
   ========================================================= */

/* ── 修复：行内 CTA 按钮文字被 .article-body a 覆盖 ── */
.article-body .sidebar-cta-btn {
  color: #fff;
  text-decoration: none;
  text-decoration-color: transparent;
}
.article-body .sidebar-cta-btn:hover {
  color: #fff;
  text-decoration: none;
}

/* ── FAQ 模块 ── */
.faq-module { margin: 32px 0; }
.faq-item {
  padding: 20px 0;
  border-top: 1px solid var(--border);
}
.faq-item:last-child { border-bottom: 1px solid var(--border); }
.faq-question {
  font-size: 15px; font-weight: 600;
  color: var(--text); line-height: 1.5;
  margin-bottom: 10px;
}
.faq-answer {
  font-size:13px; color: var(--muted);
  line-height: 1.8;
}
