/* roulang page: index */
:root{
  --bg:#F5F3EE;--surface:#FFFFFF;--surface-2:#FCFBF7;
  --ink:#0F1A17;--ink-2:#2B3330;--muted:#6E7570;
  --line:#E1DCD2;--accent:#E2542C;--accent-ink:#A83A1B;
  --field:#1F6F63;--sand:#E9E1D2;
  --r-card:16px;--r-btn:10px;--r-img:12px;
  --sh-1:0 1px 2px rgba(15,26,23,.06);
  --sh-2:0 18px 40px -18px rgba(15,26,23,.26);
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-serif:"Noto Serif SC","Songti SC",Georgia,serif;
  --sec-pad:104px;
}
@media (max-width:1023px){:root{--sec-pad:80px}}
@media (max-width:639px){:root{--sec-pad:60px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16.5px;line-height:1.85;font-weight:400;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,figure{margin:0;padding:0}
ul{list-style:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
::selection{background:rgba(226,84,44,.18)}

.container{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}
@media (max-width:1023px){.container{padding:0 24px}}
@media (max-width:639px){.container{padding:0 18px}}

.h1{font-size:clamp(38px,5.4vw,66px);font-weight:900;line-height:1.06;letter-spacing:-.02em}
.h2{font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.16;letter-spacing:-.01em}
.h3{font-size:21px;font-weight:700;line-height:1.4}
.mono{font-family:var(--font-num);font-size:13px;letter-spacing:.04em;color:var(--muted)}
.kicker{font-family:var(--font-serif);font-size:14px;letter-spacing:.16em;color:var(--accent);margin-bottom:10px}
.lead{font-size:17px;color:var(--ink-2);max-width:38ch}

.section{padding:var(--sec-pad) 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:48px;flex-wrap:wrap}
.section-head p.section-note{margin-top:12px;color:var(--muted);font-size:15px;max-width:44ch}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:var(--r-btn);font-size:15px;font-weight:700;line-height:1;border:1px solid transparent;cursor:pointer;transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;min-height:44px}
.btn--primary{background:var(--ink);color:var(--bg)}
.btn--primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}
.btn--primary:active{transform:translateY(0)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{color:var(--accent);border-color:var(--accent)}
.btn--accent{background:var(--accent);color:#fff}
.btn--accent:hover{background:var(--accent-ink);transform:translateY(-2px)}
.btn--accent:active{transform:translateY(0)}
.btn--sm{padding:10px 16px;font-size:14px}
.btn__arw{transition:transform .22s ease}
.btn:hover .btn__arw{transform:translateX(4px)}

.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;font-size:15px;border-bottom:1px solid currentColor;padding-bottom:2px;transition:border-color .2s ease,color .2s ease}
.text-link:hover{color:var(--accent-ink);border-bottom-width:2px}
.text-link .arw{transition:transform .22s ease}
.text-link:hover .arw{transform:translateX(4px)}

.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;letter-spacing:.05em;border:1px solid var(--field);color:var(--field);background:transparent}

/* ---------- 导航 ---------- */
.site-nav{position:sticky;top:0;z-index:80;background:rgba(245,243,238,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .24s ease,box-shadow .24s ease}
.site-nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 6px 22px -18px rgba(15,26,23,.55)}
.nav-inner{display:flex;align-items:center;gap:26px;height:72px;transition:height .28s cubic-bezier(.22,.7,.28,1)}
.site-nav.is-stuck .nav-inner{height:60px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand__mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--ink);color:var(--bg);flex-shrink:0}
.brand__mark svg{width:20px;height:20px}
.brand__text{font-size:19px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:6px}
.nav-link{position:relative;display:block;font-size:15px;color:var(--ink-2);padding:6px 0;white-space:nowrap;transition:color .2s ease}
.nav-link::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.22,.7,.28,1)}
.nav-link:hover::after{transform:scaleX(1)}
.nav-link:hover{color:var(--ink)}
.nav-link.is-active{color:var(--ink);font-weight:700}
.nav-link.is-active::after{transform:scaleX(1)}
.nav-tools{display:flex;align-items:center;gap:14px;margin-left:auto}
.nav-search{position:relative;display:flex;align-items:center;width:220px;height:40px;border-radius:999px;background:var(--sand);border:1px solid transparent;transition:width .24s ease,border-color .24s ease,box-shadow .24s ease}
.nav-search:focus-within{width:260px;border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,84,44,.10)}
.nav-search input{width:100%;height:100%;border:0;background:transparent;padding:0 16px 0 38px;font-size:14px;outline:none}
.nav-search input::placeholder{color:var(--muted)}
.nav-search__icon{position:absolute;left:14px;width:15px;height:15px;color:var(--muted);pointer-events:none}
.nav-login{font-size:15px;color:var(--ink-2);padding:8px 4px;transition:color .2s ease;white-space:nowrap}
.nav-login:hover{color:var(--accent)}
.nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.nav-toggle span{display:block;width:18px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .24s ease,opacity .24s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:280px;max-width:86vw;background:var(--surface);z-index:100;padding:26px 22px;display:flex;flex-direction:column;gap:4px;transform:translateX(100%);transition:transform .3s cubic-bezier(.22,.7,.28,1);box-shadow:var(--sh-2);overflow-y:auto}
.nav-drawer.is-open{transform:translateX(0)}
.nav-drawer__title{font-family:var(--font-serif);font-size:13px;letter-spacing:.16em;color:var(--muted);margin:14px 0 6px}
.nav-drawer a.drawer-link{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;font-size:16px;border-bottom:1px solid var(--line);color:var(--ink-2);min-height:44px}
.nav-drawer a.drawer-link.is-active{color:var(--accent);font-weight:700}
.nav-drawer .btn{margin-top:22px;width:100%}
.nav-mask{position:fixed;inset:0;background:rgba(15,26,23,.45);z-index:90;opacity:0;pointer-events:none;transition:opacity .3s ease}
.nav-mask.is-open{opacity:1;pointer-events:auto}
@media (max-width:1023px){
  .nav-links{display:none}
  .nav-search{display:none}
  .nav-login{display:none}
  .nav-toggle{display:flex}
}
@media (min-width:1024px){.nav-drawer,.nav-mask{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:64px 0 88px}
.hero::before{content:"";position:absolute;right:-140px;top:-70px;width:560px;height:440px;background:repeating-linear-gradient(115deg,rgba(15,26,23,.05) 0 2px,transparent 2px 18px);pointer-events:none}
.hero__grid{position:relative;display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center;min-height:min(640px,calc(100vh - 72px))}
.hero__badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid var(--field);color:var(--field);font-size:13px;letter-spacing:.06em;margin-bottom:24px}
.hero__title{margin-bottom:22px}
.hero__title em{font-style:normal;position:relative;white-space:nowrap}
.hero__title em::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:8px;background:rgba(226,84,44,.16);z-index:-1}
.hero__sub{font-size:17px;line-height:1.8;color:var(--ink-2);max-width:38ch;margin-bottom:34px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}
.hero__stats{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero__stat{display:flex;flex-direction:column;gap:2px;padding-right:26px;border-right:1px solid var(--line)}
.hero__stat:last-child{border-right:0;padding-right:0}
.hero__stat b{font-family:var(--font-num);font-size:26px;font-weight:600;line-height:1.2;letter-spacing:-.01em}
.hero__stat span{font-size:12px;color:var(--muted);letter-spacing:.05em}
.hero__media{position:relative}
.hero__media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-card);box-shadow:var(--sh-2)}
.float-card{position:absolute;right:-16px;bottom:34px;width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-2);padding:18px 20px}
.float-card b{display:block;font-family:var(--font-num);font-size:30px;font-weight:600;line-height:1.1;color:var(--accent)}
.float-card span{display:block;margin-top:6px;font-size:12px;color:var(--muted);letter-spacing:.05em}
@media (max-width:1023px){
  .hero__grid{grid-template-columns:1fr;gap:40px;min-height:0}
  .hero__media img{aspect-ratio:16/12}
  .float-card{position:static;width:100%;margin-top:16px;right:auto;bottom:auto}
}

/* ---------- 服务能力 ---------- */
.services{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.services__grid{display:grid;grid-template-columns:4fr 8fr;gap:56px;align-items:start}
.services__aside{position:sticky;top:104px}
.services__aside .h2{margin-bottom:16px}
.services__aside p{color:var(--muted);font-size:15px;max-width:26ch;margin-bottom:22px}
.svc-list{border-top:1px solid var(--line)}
.svc-row{display:grid;grid-template-columns:64px 1fr 44px;gap:20px;align-items:center;padding:26px 12px;border-bottom:1px solid var(--line);transition:background .24s ease,padding-left .24s ease}
.svc-row:hover{background:var(--surface);padding-left:20px}
.svc-row__num{font-family:var(--font-num);font-size:15px;color:var(--accent);letter-spacing:.06em;transition:color .24s ease}
.svc-row:hover .svc-row__num{color:var(--accent-ink)}
.svc-row__body h3{font-size:21px;font-weight:700;line-height:1.4;margin-bottom:4px}
.svc-row__body p{font-size:15px;color:var(--muted);max-width:52ch}
.svc-row__arw{font-size:20px;color:var(--muted);justify-self:end;transition:transform .24s ease,color .24s ease}
.svc-row:hover .svc-row__arw{transform:translateX(6px);color:var(--accent)}
@media (max-width:1023px){
  .services__grid{grid-template-columns:1fr;gap:36px}
  .services__aside{position:static;top:auto}
  .svc-row{grid-template-columns:48px 1fr 32px;gap:14px;padding:20px 4px}
}

/* ---------- 数据带 ---------- */
.data-band{background:var(--ink);color:var(--bg);padding:72px 0}
.data-band__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.data-item{padding:6px 32px;border-right:1px solid rgba(245,243,238,.15)}
.data-item:first-child{padding-left:0}
.data-item:last-child{border-right:0;padding-right:0}
.data-item::before{content:"";display:block;width:32px;height:2px;background:var(--field);margin-bottom:18px}
.data-item b{display:block;font-family:var(--font-num);font-size:clamp(36px,4.4vw,52px);font-weight:600;line-height:1.05;letter-spacing:-.02em}
.data-item b i{font-style:normal;color:var(--accent)}
.data-item span{display:block;margin-top:10px;font-size:12.5px;letter-spacing:.06em;color:rgba(245,243,238,.66)}
@media (max-width:1023px){
  .data-band__grid{grid-template-columns:repeat(2,1fr);gap:32px 0}
  .data-item{padding:0 24px}
  .data-item:nth-child(2){border-right:0;padding-right:0}
  .data-item:nth-child(3){padding-left:0}
}

/* ---------- 案例 ---------- */
.cases-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.case-card{grid-column:span 4;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);transition:transform .26s ease,box-shadow .26s ease}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.case-card--wide{grid-column:span 6}
.case-card__media{overflow:hidden}
.case-card__media img{width:100%;object-fit:cover;border-radius:0;transition:transform .32s ease}
.case-card--wide .case-card__media img{aspect-ratio:16/10}
.case-card .case-card__media img{aspect-ratio:4/3}
.case-card:hover .case-card__media img{transform:scale(1.03)}
.case-card__info{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px}
.case-card__info h3{font-size:20px;font-weight:700;line-height:1.4}
.case-card__meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
@media (max-width:1023px){
  .case-card,.case-card--wide{grid-column:span 6}
}
@media (max-width:639px){
  .cases-grid{gap:16px}
  .case-card,.case-card--wide{grid-column:span 12}
}

/* ---------- 方案横滚 ---------- */
.solutions{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.solutions__grid{display:grid;grid-template-columns:3fr 9fr;gap:48px;align-items:start}
.solutions__aside{position:sticky;top:104px}
.solutions__aside .h2{margin-bottom:16px}
.solutions__aside p{color:var(--muted);font-size:15px;max-width:24ch}
.sol-track{display:flex;gap:22px;overflow-x:auto;padding:6px 4px 22px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.sol-track::-webkit-scrollbar{height:6px}
.sol-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.sol-card{flex:0 0 340px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:28px 26px;position:relative;box-shadow:var(--sh-1);transition:transform .26s ease,box-shadow .26s ease}
.sol-card::before{content:"";position:absolute;left:26px;top:0;width:48px;height:3px;background:var(--accent)}
.sol-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.sol-card__num{font-family:var(--font-num);font-size:13px;color:var(--muted);letter-spacing:.08em}
.sol-card h3{font-size:21px;font-weight:700;margin:12px 0 18px;line-height:1.4}
.sol-card ul{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.sol-card li{position:relative;padding-left:18px;font-size:15px;color:var(--ink-2);line-height:1.7}
.sol-card li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;background:var(--field);border-radius:2px}
@media (max-width:1023px){
  .solutions__grid{grid-template-columns:1fr;gap:32px}
  .solutions__aside{position:static;top:auto}
}
@media (max-width:639px){
  .sol-card{flex:0 0 82vw;padding:24px 20px}
}

/* ---------- 最新信息 ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.news-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-1);display:flex;flex-direction:column;transition:transform .26s ease,box-shadow .26s ease}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.news-card__media{display:block;overflow:hidden}
.news-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .32s ease}
.news-card:hover .news-card__media img{transform:scale(1.03)}
.news-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;flex:1}
.news-card__title{font-size:19px;font-weight:700;line-height:1.5}
.news-card__title a{transition:color .2s ease}
.news-card:hover .news-card__title a{color:var(--accent)}
.news-card__sum{font-size:15px;color:var(--muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-card__meta{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}
.news-card__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--line)}
.news-card__go{margin-left:auto;color:var(--accent);font-size:18px;transition:transform .22s ease}
.news-card:hover .news-card__go{transform:translateX(4px)}
.news-card--lead{grid-column:span 3;flex-direction:row;align-items:stretch}
.news-card--lead .news-card__media{flex:0 0 46%}
.news-card--lead .news-card__media img{height:100%;aspect-ratio:auto;min-height:280px}
.news-card--lead .news-card__body{padding:32px 34px;justify-content:center}
.news-card--lead .news-card__title{font-size:clamp(21px,2.2vw,26px)}
.empty-state{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:1px dashed var(--line);border-radius:var(--r-card);background:var(--surface-2);text-align:center;padding:32px}
.empty-state__icon{font-family:var(--font-num);font-size:26px;color:var(--muted);letter-spacing:.3em}
.empty-state p{color:var(--muted);font-size:15px}
@media (max-width:1023px){
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .news-card--lead{grid-column:span 2;flex-direction:column}
  .news-card--lead .news-card__media{flex:none}
  .news-card--lead .news-card__media img{aspect-ratio:16/10;min-height:0;height:auto}
}
@media (max-width:639px){
  .news-grid{grid-template-columns:1fr;gap:16px}
  .news-card--lead{grid-column:span 1}
  .news-card--lead .news-card__body{padding:22px 20px}
}

/* ---------- FAQ ---------- */
.faq__grid{display:grid;grid-template-columns:4fr 8fr;gap:56px;align-items:start}
.faq__aside .h2{margin-bottom:16px}
.faq__aside p{color:var(--muted);font-size:15px;max-width:26ch}
.faq-list.accordion{background:transparent;border:0;margin:0}
.faq-list .accordion-item{border:0;border-top:1px solid var(--line);background:transparent}
.faq-list .accordion-item:last-child{border-bottom:1px solid var(--line)}
.faq-list .accordion-title{padding:22px 38px 22px 0;font-size:17px;font-weight:700;color:var(--ink);border:0;background:transparent;position:relative;transition:color .2s ease,padding-left .24s ease;min-height:44px}
.faq-list .accordion-title:hover{background:transparent;color:var(--accent)}
.faq-list .accordion-title::before{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:20px;font-weight:400;color:var(--accent);line-height:1}
.faq-list .accordion-item.is-active .accordion-title{padding-left:16px;color:var(--ink)}
.faq-list .accordion-item.is-active .accordion-title::after{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;background:var(--accent)}
.faq-list .accordion-item.is-active .accordion-title::before{content:"−"}
.faq-list .accordion-content{padding:0 0 24px 16px;border:0;background:transparent;color:var(--ink-2);font-size:15px;line-height:1.85}
@media (max-width:1023px){
  .faq__grid{grid-template-columns:1fr;gap:28px}
}

/* ---------- 联系 ---------- */
.contact{background:var(--ink);color:var(--bg);padding:var(--sec-pad) 0}
.contact__grid{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:start}
.contact__aside .h2{color:var(--bg);margin-bottom:20px}
.contact__aside ul{display:flex;flex-direction:column;gap:14px;margin-bottom:32px}
.contact__aside li{position:relative;padding-left:20px;font-size:15.5px;color:rgba(245,243,238,.82);line-height:1.7}
.contact__aside li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:2px;background:var(--field)}
.contact__info{font-size:15px;color:rgba(245,243,238,.72);line-height:2}
.contact__info b{color:var(--bg);font-weight:700}
.form-card{background:var(--surface);border-radius:var(--r-card);padding:32px;box-shadow:var(--sh-2);color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font-size:13px;color:var(--muted);letter-spacing:.04em}
.field input,.field select,.field textarea{width:100%;height:46px;padding:0 14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-btn);font-size:15px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.field textarea{height:auto;padding:12px 14px;resize:vertical;line-height:1.7}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,84,44,.10)}
.form-card .btn{width:100%;margin-top:22px}
.form-tip{margin-top:14px;font-size:13px;color:var(--muted);text-align:center}
.form-tip.is-ok{color:var(--field);font-weight:700}
@media (max-width:1023px){
  .contact__grid{grid-template-columns:1fr;gap:36px}
}
@media (max-width:639px){
  .form-grid{grid-template-columns:1fr}
  .form-card{padding:22px}
}

/* ---------- 页脚 ---------- */
.site-footer{background:var(--ink);color:rgba(245,243,238,.72);padding:72px 0 0;border-top:1px solid rgba(245,243,238,.12)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:56px}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.footer-brand .brand__mark{background:var(--bg);color:var(--ink)}
.footer-brand .brand__text{color:var(--bg);font-size:18px;font-weight:800}
.site-footer p.footer-desc{font-size:14.5px;line-height:1.85;max-width:30ch}
.footer-social{display:flex;gap:10px;margin-top:20px}
.footer-social a{width:38px;height:38px;border-radius:10px;border:1px solid rgba(245,243,238,.2);display:grid;place-items:center;font-size:12px;letter-spacing:.04em;color:rgba(245,243,238,.8);transition:border-color .2s ease,color .2s ease,transform .2s ease}
.footer-social a:hover{border-color:var(--accent);color:var(--bg);transform:translateY(-2px)}
.site-footer h4{font-size:14px;letter-spacing:.1em;color:rgba(245,243,238,.55);margin-bottom:18px;font-weight:700}
.site-footer ul{display:flex;flex-direction:column;gap:12px}
.site-footer ul a{font-size:15px;color:rgba(245,243,238,.78);transition:color .2s ease}
.site-footer ul a:hover{color:var(--accent)}
.footer-contact li{font-size:15px;line-height:1.7;color:rgba(245,243,238,.78)}
.footer-bottom{border-top:1px solid rgba(245,243,238,.15);padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(245,243,238,.5)}
@media (max-width:1023px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:639px){
  .footer-grid{grid-template-columns:1fr;gap:30px;padding-bottom:36px}
}

/* ---------- 动效 ---------- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .28s cubic-bezier(.22,.7,.28,1),transform .28s cubic-bezier(.22,.7,.28,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* roulang page: article */
:root{
  --bg:#F5F3EE;
  --surface:#FFFFFF;
  --surface-2:#FCFBF7;
  --ink:#0F1A17;
  --ink-2:#2B3330;
  --muted:#6E7570;
  --line:#E1DCD2;
  --accent:#E2542C;
  --accent-ink:#A83A1B;
  --field:#1F6F63;
  --sand:#E9E1D2;
  --radius-card:16px;
  --radius-btn:10px;
  --radius-input:10px;
  --radius-img:12px;
  --shadow-1:0 1px 2px rgba(15,26,23,.06);
  --shadow-2:0 18px 40px -18px rgba(15,26,23,.26);
  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-serif:"Noto Serif SC","Songti SC",serif;
  --ease:cubic-bezier(.22,.7,.28,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.85;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--ink);text-decoration:none;transition:color .24s var(--ease);}
a:hover{color:var(--accent);}
button{font-family:inherit;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);letter-spacing:-.01em;}
p{margin:0 0 1.1em;}
ul,ol{margin:0;padding:0;list-style:none;}
input,textarea,select{font-family:inherit;font-size:15px;color:var(--ink);}
::selection{background:rgba(226,84,44,.18);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}
.container{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 32px;
}

/* ---------- 通用按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 22px;
  font-size:15px;
  font-weight:700;
  line-height:1.2;
  border-radius:var(--radius-btn);
  border:1px solid transparent;
  cursor:pointer;
  transition:background .24s var(--ease),color .24s var(--ease),border-color .24s var(--ease),transform .24s var(--ease),box-shadow .24s var(--ease);
  min-height:44px;
}
.btn--primary{background:var(--ink);color:var(--bg);}
.btn--primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}
.btn--primary:active{transform:translateY(0);}
.btn--accent{background:var(--accent);color:#fff;}
.btn--accent:hover{background:var(--accent-ink);color:#fff;transform:translateY(-2px);}
.btn--accent:active{transform:translateY(0);}
.btn--ghost{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn--sm{padding:9px 16px;font-size:14px;min-height:40px;}
.link-cta{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--accent);font-weight:700;font-size:15px;
  border-bottom:1px solid var(--accent);padding-bottom:2px;
  transition:border-bottom-width .2s var(--ease),color .2s var(--ease);
}
.link-cta:hover{border-bottom-width:2px;color:var(--accent-ink);}
.link-cta .arrow{transition:transform .24s var(--ease);}
.link-cta:hover .arrow{transform:translateX(4px);}

/* ---------- 徽章 ---------- */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:.02em;
  border:1px solid var(--field);color:var(--field);background:transparent;
}
.badge--soft{background:var(--sand);border-color:transparent;color:var(--ink-2);}
.badge--solid{background:var(--ink);color:var(--bg);border-color:var(--ink);}

/* ---------- 顶部导航 ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(245,243,238,.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .28s var(--ease);
}
.site-header.is-scrolled{box-shadow:0 8px 24px -18px rgba(15,26,23,.5);}
.header-inner{
  display:flex;align-items:center;gap:28px;
  height:72px;
  transition:height .28s var(--ease);
}
.site-header.is-scrolled .header-inner{height:60px;}
.brand{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;}
.brand__mark{
  width:34px;height:34px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--bg);flex:0 0 auto;
}
.brand__mark svg{width:20px;height:20px;}
.brand__text{font-size:19px;font-weight:900;letter-spacing:-.01em;white-space:nowrap;}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:8px;}
.nav-link{
  position:relative;font-size:15px;font-weight:500;color:var(--ink-2);
  padding:6px 0;white-space:nowrap;
}
.nav-link::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--accent);transition:width .24s var(--ease);
}
.nav-link:hover::after,.nav-link.is-active::after{width:100%;}
.nav-link:hover{color:var(--ink);}
.nav-link.is-active{color:var(--ink);font-weight:700;}
.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto;}
.nav-search{
  display:flex;align-items:center;gap:8px;
  width:220px;height:40px;padding:0 16px;
  border-radius:999px;background:var(--sand);
  border:1px solid transparent;
  transition:width .24s var(--ease),border-color .24s var(--ease);
}
.nav-search:focus-within{width:260px;border-color:var(--accent);}
.nav-search svg{width:16px;height:16px;color:var(--muted);flex:0 0 auto;}
.nav-search input{
  flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:14px;
}
.nav-search input::placeholder{color:var(--muted);}
.nav-login{font-size:15px;font-weight:500;color:var(--ink-2);white-space:nowrap;}
.nav-login:hover{color:var(--accent);}
.nav-toggle{
  display:none;width:44px;height:44px;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);
  cursor:pointer;
}
.nav-toggle svg{width:20px;height:20px;}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;width:280px;max-width:86vw;
  background:var(--surface);z-index:90;
  transform:translateX(102%);
  transition:transform .28s var(--ease);
  padding:26px 22px;
  display:flex;flex-direction:column;gap:8px;
  box-shadow:var(--shadow-2);
  overflow-y:auto;
}
.nav-drawer.is-open{transform:translateX(0);}
.nav-drawer a{
  display:flex;align-items:center;min-height:48px;font-size:16px;
  border-bottom:1px solid var(--line);color:var(--ink-2);
}
.nav-drawer a:hover{color:var(--accent);}
.nav-drawer .btn{margin-top:18px;justify-content:center;}
.nav-mask{
  position:fixed;inset:0;background:rgba(15,26,23,.45);
  opacity:0;visibility:hidden;transition:opacity .28s var(--ease);
  z-index:80;
}
.nav-mask.is-open{opacity:1;visibility:visible;}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.drawer-head span{font-weight:900;font-size:17px;}
.drawer-close{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);cursor:pointer;color:var(--ink);
}

/* ---------- 面包屑 ---------- */
.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-size:13px;letter-spacing:.02em;color:var(--muted);
  padding:28px 0 14px;
}
.crumbs a{color:var(--muted);}
.crumbs a:hover{color:var(--accent);}
.crumbs .sep{color:var(--line);}
.crumbs .current{color:var(--ink);font-weight:500;}

/* ---------- 文章头部 ---------- */
.article-hero{padding:0 0 34px;border-bottom:1px solid var(--line);}
.article-hero__top{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;}
.article-hero h1{
  font-size:clamp(28px,3.6vw,42px);
  font-weight:900;line-height:1.2;letter-spacing:-.02em;
  max-width:900px;
  margin-bottom:20px;
}
.article-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  font-size:13px;color:var(--muted);letter-spacing:.02em;
}
.article-meta .num{font-family:var(--font-num);color:var(--ink-2);}
.article-meta .dot{color:var(--line);}

/* ---------- 文章主体布局 ---------- */
.article-main{padding:48px 0 96px;}
.article-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:56px;
  align-items:start;
}
.article-body{
  max-width:760px;
  font-size:17px;
  line-height:1.9;
  color:var(--ink-2);
}
.article-body > *:first-child{margin-top:0;}
.article-body p{margin:0 0 1.2em;}
.article-body h2{
  position:relative;
  font-size:clamp(22px,2.6vw,30px);
  font-weight:800;line-height:1.3;color:var(--ink);
  margin:2.4em 0 .8em;
  padding-left:16px;
}
.article-body h2::before{
  content:"";position:absolute;left:0;top:.16em;
  width:3px;height:1em;background:var(--accent);border-radius:2px;
}
.article-body h3{
  font-size:20px;font-weight:700;line-height:1.4;color:var(--ink);
  margin:1.8em 0 .6em;
}
.article-body h4{font-size:17px;font-weight:700;color:var(--ink);margin:1.4em 0 .5em;}
.article-body a{color:var(--accent);border-bottom:1px solid var(--accent);}
.article-body a:hover{border-bottom-width:2px;color:var(--accent-ink);}
.article-body strong{color:var(--ink);font-weight:700;}
.article-body ul,.article-body ol{margin:0 0 1.3em;padding-left:2px;}
.article-body ul li{
  position:relative;padding-left:20px;margin-bottom:.55em;
}
.article-body ul li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:6px;height:6px;background:var(--accent);border-radius:1px;
}
.article-body ol{list-style:decimal;padding-left:22px;}
.article-body ol li{margin-bottom:.55em;}
.article-body blockquote{
  margin:1.6em 0;padding:20px 24px;
  background:var(--sand);
  border-left:3px solid var(--accent);
  border-radius:0 var(--radius-img) var(--radius-img) 0;
  color:var(--ink);
  font-family:var(--font-serif);
}
.article-body blockquote p:last-child{margin-bottom:0;}
.article-body img{
  border-radius:var(--radius-img);
  margin:1.6em 0 .6em;
  width:100%;
}
.article-body figure{margin:1.6em 0;}
.article-body figcaption{
  font-size:13px;color:var(--muted);text-align:center;margin-top:8px;
}
.article-body table{
  width:100%;border-collapse:collapse;margin:1.6em 0;font-size:15px;
  border:1px solid var(--line);
}
.article-body th{
  background:var(--ink);color:#fff;font-weight:700;
  padding:12px 14px;text-align:left;border:1px solid var(--line);
}
.article-body td{
  padding:12px 14px;border:1px solid var(--line);
}
.article-body tbody tr:nth-child(even){background:var(--sand);}
.article-body code{
  font-family:var(--font-num);font-size:.92em;
  background:var(--sand);border-radius:6px;padding:2px 6px;color:var(--ink);
}
.article-body pre{
  background:var(--ink);color:#F5F3EE;border-radius:var(--radius-img);
  padding:20px;overflow-x:auto;margin:1.6em 0;
}
.article-body pre code{background:transparent;color:inherit;padding:0;}
.article-body hr{border:0;border-top:1px solid var(--line);margin:2.4em 0;}

/* ---------- 空态 ---------- */
.article-empty{
  max-width:760px;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  background:var(--surface);
  padding:56px 32px;
  text-align:center;
}
.article-empty .icon{
  width:56px;height:56px;border-radius:16px;background:var(--sand);
  display:inline-flex;align-items:center;justify-content:center;color:var(--muted);
  margin-bottom:18px;
}
.article-empty h2{font-size:22px;font-weight:800;margin-bottom:10px;}
.article-empty p{color:var(--muted);margin-bottom:22px;}

/* ---------- 尾部标签与操作 ---------- */
.article-foot{
  max-width:760px;margin-top:44px;padding-top:26px;border-top:1px solid var(--line);
}
.tag-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px;}
.action-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;}
.share-group{display:flex;align-items:center;gap:10px;}
.share-group span{font-size:13px;color:var(--muted);}
.icon-btn{
  width:44px;height:44px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink-2);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);
}
.icon-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}
.icon-btn svg{width:18px;height:18px;}

/* ---------- 上一篇 / 下一篇 ---------- */
.post-nav{
  max-width:760px;margin-top:36px;
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
}
.post-nav a{
  display:block;border:1px solid var(--line);border-radius:var(--radius-card);
  background:var(--surface);padding:20px 22px;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease),border-color .24s var(--ease);
}
.post-nav a:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--line);}
.post-nav small{
  display:block;font-size:12px;color:var(--muted);letter-spacing:.06em;margin-bottom:8px;
  font-family:var(--font-num);
}
.post-nav strong{display:block;font-size:16px;font-weight:700;color:var(--ink);line-height:1.5;}
.post-nav .align-right{text-align:right;}

/* ---------- 侧栏 ---------- */
.side{position:sticky;top:96px;display:flex;flex-direction:column;gap:22px;}
.side-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-card);padding:22px;box-shadow:var(--shadow-1);
}
.side-card h3{
  font-size:15px;font-weight:800;margin-bottom:14px;color:var(--ink);
  letter-spacing:.02em;
}
.side-list li{border-bottom:1px solid var(--line);}
.side-list li:last-child{border-bottom:0;}
.side-list a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 0;font-size:14px;color:var(--ink-2);min-height:44px;
}
.side-list a:hover{color:var(--accent);}
.side-list .idx{font-family:var(--font-num);font-size:12px;color:var(--muted);}
.side-post{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.side-post:last-child{border-bottom:0;}
.side-post img{
  width:72px;height:54px;object-fit:cover;border-radius:10px;flex:0 0 auto;background:var(--sand);
}
.side-post strong{display:block;font-size:14px;font-weight:700;line-height:1.5;color:var(--ink);}
.side-post time{font-family:var(--font-num);font-size:12px;color:var(--muted);}
.side-cta{
  background:var(--ink);color:var(--bg);border-radius:var(--radius-card);padding:24px;
  border:1px solid var(--ink);
}
.side-cta h3{color:var(--bg);font-size:17px;margin-bottom:10px;}
.side-cta p{font-size:14px;line-height:1.75;color:rgba(245,243,238,.76);margin-bottom:18px;}
.side-cta .btn{width:100%;justify-content:center;}

/* ---------- 相关推荐 ---------- */
.related{padding:0 0 96px;}
.section-head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;
  margin-bottom:32px;
}
.section-head h2{font-size:clamp(24px,2.6vw,32px);font-weight:800;}
.section-head p{color:var(--muted);font-size:15px;margin:8px 0 0;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);}
.card__media{position:relative;aspect-ratio:16/10;background:var(--sand);overflow:hidden;}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .32s var(--ease);}
.card:hover .card__media img{transform:scale(1.03);}
.card__body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;flex:1;}
.card__body h3{font-size:17px;font-weight:700;line-height:1.5;color:var(--ink);}
.card__body p{font-size:14px;line-height:1.75;color:var(--muted);margin:0;}
.card__meta{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:12px;border-top:1px solid var(--line);
  font-family:var(--font-num);font-size:12px;color:var(--muted);
}

/* ---------- 咨询条 ---------- */
.cta-band{
  background:var(--ink);color:var(--bg);
  padding:72px 0;
}
.cta-band__inner{
  display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;
}
.cta-band h2{font-size:clamp(26px,3vw,38px);font-weight:900;line-height:1.2;margin-bottom:16px;color:var(--bg);}
.cta-band p{color:rgba(245,243,238,.78);font-size:16px;margin:0;}
.cta-band__points{display:flex;flex-direction:column;gap:12px;margin-top:24px;}
.cta-band__points li{
  display:flex;gap:10px;align-items:flex-start;font-size:15px;color:rgba(245,243,238,.86);
}
.cta-band__points li::before{
  content:"";width:8px;height:8px;background:var(--accent);border-radius:1px;margin-top:9px;flex:0 0 auto;
}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:14px;}
.cta-band .btn--primary{background:var(--bg);color:var(--ink);}
.cta-band .btn--primary:hover{background:var(--accent);color:#fff;}
.cta-band .btn--ghost{border-color:rgba(245,243,238,.5);color:var(--bg);}
.cta-band .btn--ghost:hover{border-color:var(--accent);color:var(--accent);}

/* ---------- 页脚 ---------- */
.site-footer{
  background:var(--ink);color:rgba(245,243,238,.78);
  padding-top:72px;
}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;
  padding-bottom:48px;
}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand .brand__mark{background:rgba(245,243,238,.1);color:var(--bg);}
.footer-brand .brand__text{color:var(--bg);font-size:18px;font-weight:900;}
.footer-desc{font-size:14px;line-height:1.8;color:rgba(245,243,238,.68);margin-bottom:18px;}
.footer-social{display:flex;gap:10px;}
.footer-social a{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:36px;padding:0 14px;border-radius:999px;
  border:1px solid rgba(245,243,238,.22);color:rgba(245,243,238,.8);font-size:13px;
}
.footer-social a:hover{border-color:var(--accent);color:var(--accent);}
.site-footer h4{font-size:14px;font-weight:800;color:var(--bg);margin-bottom:16px;letter-spacing:.04em;}
.site-footer ul{display:flex;flex-direction:column;gap:10px;}
.site-footer ul a{color:rgba(245,243,238,.72);font-size:14px;}
.site-footer ul a:hover{color:var(--accent);}
.footer-contact li{font-size:14px;color:rgba(245,243,238,.72);line-height:1.7;}
.footer-bottom{
  border-top:1px solid rgba(245,243,238,.15);
  padding:22px 0 28px;
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  font-size:13px;color:rgba(245,243,238,.6);letter-spacing:.02em;
}

/* ---------- 动效 ---------- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .28s var(--ease),transform .28s var(--ease);}
.reveal.is-in{opacity:1;transform:translateY(0);}

/* ---------- 响应式 ---------- */
@media (max-width:1023px){
  .article-layout{grid-template-columns:minmax(0,1fr);gap:40px;}
  .side{position:static;}
  .related-grid{grid-template-columns:repeat(2,1fr);}
  .cta-band__inner{grid-template-columns:1fr;gap:32px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
}
@media (max-width:1023px){
  .nav-links,.nav-search,.nav-login{display:none;}
  .nav-toggle{display:inline-flex;}
}
@media (max-width:768px){
  .container{padding:0 24px;}
  .article-main{padding:36px 0 72px;}
  .article-body{font-size:16px;}
  .post-nav{grid-template-columns:1fr;}
  .post-nav .align-right{text-align:left;}
  .related-grid{grid-template-columns:1fr;}
  .cta-band{padding:56px 0;}
  .site-footer{padding-top:56px;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .footer-bottom{flex-direction:column;gap:8px;}
  .header-inner{height:64px;}
}
@media (max-width:520px){
  .container{padding:0 18px;}
  .article-hero h1{font-size:26px;}
  .article-empty{padding:40px 20px;}
  .action-row{flex-direction:column;align-items:flex-start;}
  .cta-band__actions{flex-direction:column;align-items:stretch;}
  .cta-band__actions .btn{justify-content:center;}
}
@media (min-width:1440px){
  .container{max-width:1280px;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
}

/* roulang page: category1 */
:root{
  --bg:#F5F3EE;
  --surface:#FFFFFF;
  --surface-2:#FCFBF7;
  --ink:#0F1A17;
  --ink-2:#2B3330;
  --muted:#6E7570;
  --line:#E1DCD2;
  --accent:#E2542C;
  --accent-ink:#A83A1B;
  --field:#1F6F63;
  --sand:#E9E1D2;
  --radius-card:16px;
  --radius-btn:10px;
  --radius-input:10px;
  --radius-img:12px;
  --shadow-1:0 1px 2px rgba(15,26,23,.06);
  --shadow-2:0 18px 40px -18px rgba(15,26,23,.26);
  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-serif:"Noto Serif SC","Songti SC",serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  margin:0;background:var(--bg);color:var(--ink-2);
  font-family:var(--font-display);font-size:17px;line-height:1.85;font-weight:400;
  letter-spacing:.004em;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;background:none;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;
}
button,input,select,textarea{font:inherit;color:inherit;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p,figure,blockquote{margin:0;}
p{line-height:1.85;}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 32px;}
.button,.button.primary,.button.secondary{background:transparent;color:inherit;}
.accordion,.accordion-item{background:transparent;}

/* ===== 导航 ===== */
.site-header{
  position:sticky;top:0;z-index:70;
  background:rgba(245,243,238,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:height .24s ease,box-shadow .24s ease;
}
.site-header.is-scrolled{box-shadow:0 10px 30px -22px rgba(15,26,23,.45);}
.header-inner{
  display:flex;align-items:center;gap:28px;
  height:72px;transition:height .24s ease;
}
.site-header.is-scrolled .header-inner{height:60px;}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
.brand__mark{width:20px;height:20px;color:var(--ink);display:inline-flex;}
.brand__mark svg{width:20px;height:20px;}
.brand__text{font-size:18px;font-weight:900;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;}
.nav-links{display:flex;align-items:center;gap:28px;flex:1 1 auto;}
.nav-link{
  position:relative;font-size:15px;color:var(--ink-2);padding:6px 0;white-space:nowrap;
  transition:color .2s ease;
}
.nav-link::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);
  transition:width .24s cubic-bezier(.22,.7,.28,1);
}
.nav-link:hover{color:var(--ink);}
.nav-link:hover::after{width:100%;}
.nav-link.is-active{color:var(--ink);font-weight:700;}
.nav-link.is-active::after{width:100%;}
.nav-actions{display:flex;align-items:center;gap:16px;flex:0 0 auto;}
.nav-search{
  display:flex;align-items:center;gap:8px;
  background:var(--sand);border-radius:999px;height:40px;padding:0 14px;
  width:220px;border:1px solid transparent;
  transition:width .24s ease,border-color .24s ease,background .24s ease;
}
.nav-search i{color:var(--muted);font-size:13px;}
.nav-search input{
  border:0;background:transparent;outline:none;width:100%;font-size:14px;color:var(--ink-2);
}
.nav-search input::placeholder{color:var(--muted);}
.nav-search:focus-within{width:260px;border-color:var(--accent);background:var(--surface);}
.link-login{font-size:15px;color:var(--ink-2);transition:color .2s ease;}
.link-login:hover{color:var(--accent);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:var(--radius-btn);border:1px solid transparent;
  padding:13px 22px;font-size:15px;font-weight:700;line-height:1;
  cursor:pointer;transition:all .24s cubic-bezier(.22,.7,.28,1);
  min-height:44px;text-align:center;
}
.btn i{transition:transform .24s cubic-bezier(.22,.7,.28,1);}
.btn--sm{padding:11px 18px;font-size:15px;min-height:40px;}
.btn--accent{background:var(--accent);color:#fff;}
.btn--accent:hover{background:var(--accent-ink);color:#fff;}
.btn--primary{background:var(--ink);color:var(--bg);}
.btn--primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}
.btn--primary:hover i{transform:translateX(4px);}
.btn--primary:active{transform:translateY(0);}
.btn--ghost{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn--ghost-light{background:transparent;border-color:rgba(245,243,238,.55);color:var(--bg);}
.btn--ghost-light:hover{border-color:var(--accent);color:var(--accent);}
.nav-toggle{
  display:none;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);cursor:pointer;color:var(--ink);
}

/* ===== 抽屉 ===== */
.drawer-mask{
  position:fixed;inset:0;background:rgba(15,26,23,.45);z-index:80;
  opacity:0;pointer-events:none;transition:opacity .28s ease;
}
.drawer-mask.is-open{opacity:1;pointer-events:auto;}
.nav-drawer{
  position:fixed;top:0;right:0;height:100%;width:280px;max-width:86vw;
  background:var(--bg);z-index:90;padding:22px;
  transform:translateX(102%);transition:transform .28s cubic-bezier(.22,.7,.28,1);
  overflow-y:auto;border-left:1px solid var(--line);
}
.nav-drawer.is-open{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;}
.drawer-close{
  width:44px;height:44px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);cursor:pointer;color:var(--ink);
}
.drawer-link{
  display:block;padding:14px 2px;font-size:16px;color:var(--ink-2);
  border-bottom:1px solid var(--line);
}
.drawer-link.is-active{color:var(--accent);font-weight:700;}
.drawer-cta{margin-top:22px;width:100%;}

/* ===== 面包屑 & Hero ===== */
.breadcrumb{
  display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.02em;
  color:var(--muted);margin-bottom:14px;
}
.breadcrumb a{color:var(--muted);}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb .current{color:var(--ink);font-weight:700;}
.page-hero{
  padding:56px 0 88px;
  background:
    repeating-linear-gradient(115deg,rgba(15,26,23,.035) 0 1px,transparent 1px 14px) right -60px top -40px/420px 320px no-repeat,
    var(--bg);
  position:relative;overflow:hidden;
}
.hero-grid{row-gap:36px;}
.pill{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--field);color:var(--field);
  border-radius:999px;padding:5px 14px;font-size:13px;letter-spacing:.02em;
  margin-bottom:20px;background:rgba(31,111,99,.05);
}
.page-hero h1{
  font-size:clamp(38px,5.4vw,64px);font-weight:900;line-height:1.06;
  letter-spacing:-.02em;color:var(--ink);margin-bottom:20px;
}
.hero-sub{
  font-size:17px;color:var(--ink-2);max-width:34em;margin-bottom:28px;line-height:1.8;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px;}
.hero-metrics{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;}
.metric{
  padding:0 22px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px;
}
.metric:first-child{padding-left:0;border-left:0;}
.metric-num{font-family:var(--font-num);font-size:26px;font-weight:600;color:var(--ink);line-height:1.2;}
.metric-label{font-size:12px;color:var(--muted);letter-spacing:.02em;}
.hero-media{position:relative;border-radius:var(--radius-img);overflow:visible;}
.hero-media img{
  width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-img);
  box-shadow:var(--shadow-2);background:var(--sand);
}
.float-card{
  position:absolute;right:-14px;bottom:26px;width:220px;background:var(--surface);
  border-radius:var(--radius-card);box-shadow:var(--shadow-2);
  padding:16px 18px;border:1px solid var(--line);
}
.float-num{display:block;font-family:var(--font-num);font-size:28px;font-weight:600;color:var(--accent);line-height:1.2;}
.float-text{display:block;font-size:12px;color:var(--muted);line-height:1.6;margin-top:4px;}

/* ===== 正文分节 ===== */
.doc-wrap{padding:88px 0;}
.doc-toc{position:sticky;top:96px;align-self:flex-start;}
.toc-title{
  font-size:13px;letter-spacing:.06em;color:var(--muted);margin-bottom:14px;
  text-transform:uppercase;font-family:var(--font-num);
}
.toc-link{
  display:block;padding:11px 0 11px 14px;font-size:15px;color:var(--ink-2);
  border-left:2px solid var(--line);transition:all .22s ease;
}
.toc-link:hover{color:var(--accent);border-left-color:var(--accent);}
.toc-link.is-current{color:var(--ink);font-weight:700;border-left-color:var(--accent);}
.doc-body{max-width:100%;}
.doc-section{padding-bottom:52px;margin-bottom:52px;border-bottom:1px solid var(--line);}
.doc-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.doc-h2{
  position:relative;font-size:clamp(24px,2.6vw,32px);font-weight:800;line-height:1.25;
  letter-spacing:-.01em;color:var(--ink);
  border-left:3px solid var(--accent);padding-left:16px;margin-bottom:20px;
}
.doc-num{
  font-family:var(--font-num);font-size:15px;font-weight:600;color:var(--accent);
  margin-right:10px;letter-spacing:.02em;vertical-align:middle;
}
.doc-section p{margin-bottom:1.2em;color:var(--ink-2);}
.dot-list{margin:6px 0 0;}
.dot-list li{position:relative;padding-left:20px;margin-bottom:10px;color:var(--ink-2);line-height:1.8;}
.dot-list li::before{
  content:"";position:absolute;left:0;top:.72em;width:8px;height:8px;
  background:var(--field);border-radius:2px;
}
.spec-row{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;
}
.spec-chip{
  border:1px solid var(--line);background:var(--surface-2);
  border-radius:999px;padding:7px 15px;font-size:13px;color:var(--ink-2);
}
.spec-chip b{font-family:var(--font-num);color:var(--ink);font-weight:600;}

/* ===== 图带 ===== */
.band{padding:0 0 88px;}
.band-figure{position:relative;border-radius:var(--radius-img);overflow:hidden;background:var(--sand);}
.band-figure img{width:100%;height:340px;object-fit:cover;border-radius:var(--radius-img);}
.band-tags{
  position:absolute;left:22px;bottom:22px;display:flex;flex-wrap:wrap;gap:10px;
}
.band-tags span{
  background:rgba(245,243,238,.94);color:var(--ink);
  border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700;
}

/* ===== 场地类型 ===== */
.catalog{padding:0 0 96px;}
.section-head{max-width:620px;margin-bottom:44px;}
.section-head h2{
  font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;
  letter-spacing:-.01em;color:var(--ink);margin-bottom:14px;
}
.section-head p{color:var(--muted);font-size:16px;}
.venue-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);
  overflow:hidden;height:100%;transition:transform .26s cubic-bezier(.22,.7,.28,1),box-shadow .26s ease;
  box-shadow:var(--shadow-1);display:flex;flex-direction:column;
}
.venue-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);}
.venue-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--sand);}
.venue-card h3{font-size:19px;font-weight:700;color:var(--ink);padding:18px 18px 8px;line-height:1.4;}
.venue-card p{font-size:14px;color:var(--muted);padding:0 18px 20px;line-height:1.75;flex:1;}

/* ===== 流程 ===== */
.process{padding:0 0 96px;}
.process-grid{row-gap:20px;}
.step{
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:26px 22px;height:100%;border-top:3px solid var(--accent);
}
.step-num{
  font-family:var(--font-num);font-size:13px;letter-spacing:.08em;color:var(--accent);
  display:block;margin-bottom:12px;
}
.step h3{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:10px;}
.step p{font-size:14px;color:var(--muted);line-height:1.75;}

/* ===== FAQ ===== */
.faq{padding:0 0 96px;}
.faq-title h2{
  font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:-.01em;
  color:var(--ink);line-height:1.15;margin-bottom:14px;
}
.faq-title p{color:var(--muted);font-size:16px;}
.accordion{margin:0;border:0;background:transparent;}
.accordion .accordion-item{border:0;background:transparent;}
.accordion .accordion-title{
  position:relative;border:0;border-top:1px solid var(--line);background:transparent;
  padding:20px 44px 20px 0;font-size:17px;font-weight:700;color:var(--ink);
  transition:color .2s ease,padding-left .24s ease;
}
.accordion .accordion-title:hover,
.accordion .accordion-title:focus{background:transparent;color:var(--accent);}
.accordion .accordion-title::before{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-size:22px;font-weight:400;color:var(--muted);transition:transform .26s ease,color .26s ease;
}
.accordion .accordion-item.is-active .accordion-title::before{
  content:"−";color:var(--accent);transform:translateY(-50%) rotate(180deg);
}
.accordion .accordion-item.is-active .accordion-title{padding-left:14px;}
.accordion .accordion-item.is-active .accordion-title::after{
  content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;background:var(--accent);
}
.accordion .accordion-content{
  border:0;background:transparent;padding:0 44px 22px 14px;
  font-size:15px;line-height:1.8;color:var(--ink-2);
  border-bottom:1px solid var(--line);
}
.accordion .accordion-content p{margin-bottom:.9em;}
.accordion .accordion-content p:last-child{margin-bottom:0;}

/* ===== CTA 条 ===== */
.cta-band{background:var(--ink);padding:72px 0;}
.cta-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px;}
.cta-inner h2{
  font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--bg);
  line-height:1.2;letter-spacing:-.01em;margin-bottom:12px;
}
.cta-inner p{color:rgba(245,243,238,.72);font-size:16px;max-width:38em;}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;}

/* ===== 页脚 ===== */
.site-footer{background:var(--ink);color:var(--bg);padding:72px 0 0;}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:40px;
  padding-bottom:56px;
}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand .brand__mark{color:var(--bg);}
.footer-brand .brand__text{color:var(--bg);font-size:18px;font-weight:900;}
.footer-desc{color:rgba(245,243,238,.68);font-size:14px;line-height:1.8;max-width:26em;}
.footer-social{display:flex;gap:10px;margin-top:18px;}
.footer-social a{
  border:1px solid rgba(245,243,238,.28);border-radius:999px;
  padding:6px 14px;font-size:13px;color:rgba(245,243,238,.85);
  transition:all .22s ease;
}
.footer-social a:hover{border-color:var(--accent);color:var(--accent);}
.site-footer h4{font-size:14px;font-weight:700;color:var(--bg);margin-bottom:16px;letter-spacing:.02em;}
.site-footer ul li,.site-footer ul a{
  display:block;font-size:14px;color:rgba(245,243,238,.68);
  line-height:2;transition:color .2s ease;
}
.site-footer ul a:hover{color:var(--accent);}
.footer-bottom{
  border-top:1px solid rgba(245,243,238,.15);padding:22px 0 26px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-size:13px;color:rgba(245,243,238,.55);
}

/* ===== 动画 ===== */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .28s cubic-bezier(.22,.7,.28,1),transform .28s cubic-bezier(.22,.7,.28,1);}
.reveal.is-visible{opacity:1;transform:none;}

/* ===== 响应式 ===== */
@media screen and (max-width:1023px){
  .nav-links,.nav-search,.link-login{display:none;}
  .nav-toggle{display:inline-flex;}
  .doc-toc{position:static;margin-bottom:36px;}
  .doc-toc{display:grid;grid-template-columns:repeat(2,1fr);gap:0;}
  .toc-title{grid-column:1/-1;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media screen and (max-width:767px){
  .container{padding:0 24px;}
  body{font-size:16px;}
  .page-hero{padding:40px 0 64px;}
  .hero-media img{aspect-ratio:16/12;}
  .float-card{position:static;width:100%;margin-top:14px;}
  .hero-metrics{gap:14px 0;}
  .metric{padding:0 16px;}
  .doc-wrap{padding:56px 0;}
  .doc-section{margin-bottom:42px;padding-bottom:42px;}
  .band{padding-bottom:64px;}
  .band-figure img{height:240px;}
  .catalog,.process,.faq{padding-bottom:72px;}
  .cta-band{padding:56px 0;}
  .site-footer{padding-top:56px;}
  .footer-grid{grid-template-columns:1fr;gap:32px;padding-bottom:40px;}
}
@media screen and (max-width:520px){
  .container{padding:0 18px;}
  .hero-actions .btn{width:100%;}
  .metric-num{font-size:22px;}
  .doc-toc{grid-template-columns:1fr;}
  .band-figure img{height:200px;}
  .band-tags{left:14px;bottom:14px;gap:8px;}
  .band-tags span{font-size:12px;padding:5px 11px;}
}
@media screen and (min-width:1441px){
  .container{max-width:1280px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal{opacity:1!important;transform:none!important;}
}

/* roulang page: category3 */
/* ============ 设计变量 ============ */
:root{
  --bg:#F5F3EE;
  --surface:#FFFFFF;
  --surface-2:#FCFBF7;
  --ink:#0F1A17;
  --ink-2:#2B3330;
  --muted:#6E7570;
  --line:#E1DCD2;
  --accent:#E2542C;
  --accent-ink:#A83A1B;
  --field:#1F6F63;
  --sand:#E9E1D2;
  --radius-card:16px;
  --radius-btn:10px;
  --radius-img:12px;
  --radius-pill:999px;
  --shadow-rest:0 1px 2px rgba(15,26,23,.06);
  --shadow-hover:0 18px 40px -18px rgba(15,26,23,.26);
  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-serif:"Noto Serif SC","Songti SC",serif;
  --maxw:1200px;
  --sec-pad:108px;
}
@media (max-width:1023px){ :root{ --sec-pad:80px; } }
@media (max-width:639px){ :root{ --sec-pad:60px; } }

/* ============ reset / base ============ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.85;
  color:var(--ink-2);
  background:var(--bg);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0;}
ul,ol{padding:0;list-style:none;}
img{max-width:100%;display:block;height:auto;}
a{color:var(--ink);text-decoration:none;transition:color .22s ease;}
a:hover{color:var(--accent);}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--ink);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
p{font-size:17px;line-height:1.85;}
::selection{background:var(--accent);color:#fff;}

/* Foundation 兜底（CDN 异常时保持栅格可用） */
.grid-x{display:flex;flex-wrap:wrap;}
.grid-x>.cell{flex:0 0 auto;width:100%;}
@media (min-width:640px){
  .grid-x>.medium-4{width:33.3333%;}
  .grid-x>.medium-6{width:50%;}
  .grid-x>.medium-8{width:66.6666%;}
  .grid-x>.medium-12{width:100%;}
}
@media (min-width:1024px){
  .grid-x>.large-3{width:25%;}
  .grid-x>.large-4{width:33.3333%;}
  .grid-x>.large-5{width:41.6666%;}
  .grid-x>.large-6{width:50%;}
  .grid-x>.large-7{width:58.3333%;}
  .grid-x>.large-9{width:75%;}
  .grid-x>.large-12{width:100%;}
}
.grid-margin-x{margin-left:-14px;margin-right:-14px;}
.grid-margin-x>.cell{padding-left:14px;padding-right:14px;}

/* ============ 容器 ============ */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 32px;}
@media (max-width:1023px){ .container{padding:0 24px;} }
@media (max-width:639px){ .container{padding:0 18px;} }
.container--narrow{max-width:760px;}

/* ============ 按钮 ============ */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  justify-content:center;
  padding:13px 22px;
  font-size:15px;font-weight:700;line-height:1.2;
  border-radius:var(--radius-btn);
  border:1px solid transparent;
  transition:background-color .24s ease,color .24s ease,border-color .24s ease,transform .24s ease,box-shadow .24s ease;
  min-height:44px;
  white-space:nowrap;
}
.btn svg{transition:transform .24s ease;}
.btn-primary{background:var(--ink);color:var(--bg);}
.btn-primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}
.btn-primary:hover svg{transform:translateX(4px);}
.btn-primary:active{transform:translateY(0);}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-accent{background:var(--accent);color:#fff;font-weight:700;}
.btn-accent:hover{background:var(--accent-ink);color:#fff;transform:translateY(-2px);}
.btn-sm{padding:9px 16px;font-size:14px;}
.btn-block{width:100%;}
.text-link{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--accent);font-weight:700;font-size:15px;
  border-bottom:1px solid var(--accent);padding-bottom:2px;
  transition:border-width .2s ease,color .2s ease;
}
.text-link svg{transition:transform .24s ease;}
.text-link:hover{color:var(--accent-ink);border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:var(--accent-ink);}
.text-link:hover svg{transform:translateX(4px);}

/* ============ 顶部导航 ============ */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(245,243,238,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:height .24s ease,box-shadow .24s ease;
}
.site-header.is-scrolled{box-shadow:0 6px 20px -14px rgba(15,26,23,.4);}
.header-inner{
  display:flex;align-items:center;gap:24px;
  height:72px;
  transition:height .24s ease;
}
.site-header.is-scrolled .header-inner{height:60px;}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);flex:0 0 auto;}
.brand__mark{width:28px;height:28px;color:var(--accent);display:inline-flex;flex:0 0 auto;}
.brand__mark svg{width:100%;height:100%;}
.brand__text{font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--ink);}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:12px;}
.nav-link{
  position:relative;font-size:15px;color:var(--ink-2);padding:6px 0;font-weight:500;
}
.nav-link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .24s ease;
}
.nav-link:hover{color:var(--ink);}
.nav-link:hover::after{transform:scaleX(1);}
.nav-link.is-active{color:var(--ink);font-weight:700;}
.nav-link.is-active::after{transform:scaleX(1);}
.header-tools{display:flex;align-items:center;gap:16px;margin-left:auto;}
.nav-search{
  position:relative;display:flex;align-items:center;
  width:220px;height:40px;border-radius:var(--radius-pill);
  background:var(--sand);
  transition:width .24s ease,box-shadow .24s ease;
  border:1px solid transparent;
}
.nav-search svg{position:absolute;left:14px;width:16px;height:16px;color:var(--muted);}
.nav-search input{
  width:100%;height:100%;border:0;background:transparent;
  padding:0 16px 0 38px;font-size:14px;outline:none;border-radius:var(--radius-pill);
}
.nav-search input::placeholder{color:var(--muted);}
.nav-search:focus-within{width:260px;border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,84,44,.12);}
.link-login{font-size:15px;color:var(--ink-2);font-weight:500;}
.link-login:hover{color:var(--accent);}
.nav-toggle{
  display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-btn);
  background:var(--surface);align-items:center;justify-content:center;color:var(--ink);
}
.nav-toggle span{display:block;width:18px;height:1.6px;background:currentColor;position:relative;}
.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:0;width:18px;height:1.6px;background:currentColor;
}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}

/* 移动端抽屉 */
.drawer-mask{
  position:fixed;inset:0;background:rgba(15,26,23,.45);z-index:70;
  opacity:0;pointer-events:none;transition:opacity .28s ease;
}
.drawer-mask.is-open{opacity:1;pointer-events:auto;}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;width:280px;max-width:86vw;z-index:80;
  background:var(--bg);border-left:1px solid var(--line);
  transform:translateX(100%);transition:transform .28s ease;
  padding:24px 22px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;
}
.nav-drawer.is-open{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.drawer-close{width:44px;height:44px;border:1px solid var(--line);background:transparent;border-radius:var(--radius-btn);font-size:18px;color:var(--ink);}
.nav-drawer .nav-link{font-size:16px;padding:14px 0;border-bottom:1px solid var(--line);display:block;}
.nav-drawer .nav-link::after{display:none;}
.nav-drawer .btn{margin-top:18px;}
@media (max-width:1023px){
  .nav-links{display:none;}
  .nav-search{display:none;}
  .nav-toggle{display:inline-flex;}
  .link-login{display:none;}
}
@media (max-width:520px){
  .header-tools .btn-accent{display:none;}
}

/* ============ 面包屑 ============ */
.crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  font-size:13px;letter-spacing:.02em;color:var(--muted);
  margin-bottom:14px;
}
.crumb a{color:var(--muted);}
.crumb a:hover{color:var(--accent);}
.crumb .sep{color:var(--line);}
.crumb .current{color:var(--ink);font-weight:600;}

/* ============ 内页头部 ============ */
.page-hero{padding:56px 0 8px;}
.page-hero .grid-x{align-items:center;}
.page-hero__title{
  font-size:clamp(34px,4.6vw,58px);
  font-weight:900;line-height:1.1;letter-spacing:-.02em;color:var(--ink);
  margin-bottom:18px;
}
.page-hero__sub{
  font-size:18px;line-height:1.8;color:var(--ink-2);max-width:36em;margin-bottom:22px;
}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 14px;border-radius:var(--radius-pill);
  border:1px solid var(--field);color:var(--field);
  font-size:13px;letter-spacing:.02em;background:transparent;margin-bottom:20px;
}
.tag-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.tag{
  display:inline-flex;align-items:center;
  padding:7px 14px;border-radius:var(--radius-pill);
  border:1px solid var(--line);background:var(--surface);
  font-size:13px;color:var(--ink-2);letter-spacing:.02em;
  transition:all .22s ease;
}
.tag:hover{border-color:var(--field);color:var(--field);}
.tag.is-on{background:var(--ink);border-color:var(--ink);color:#fff;}
.hero-figure{
  border-radius:var(--radius-card);overflow:hidden;
  box-shadow:var(--shadow-rest);background:var(--sand);
  aspect-ratio:16/11;
}
.hero-figure img{width:100%;height:100%;object-fit:cover;}
.hero-stats{
  display:flex;flex-wrap:wrap;gap:28px;margin-top:30px;padding-top:24px;
  border-top:1px solid var(--line);
}
.hero-stat{display:flex;flex-direction:column;gap:2px;}
.hero-stat b{font-family:var(--font-num);font-size:26px;font-weight:600;color:var(--ink);line-height:1.1;}
.hero-stat span{font-size:12px;color:var(--muted);letter-spacing:.04em;}

/* ============ 板块通用 ============ */
.section{padding:var(--sec-pad) 0;}
.section--tight{padding:calc(var(--sec-pad) * .72) 0;}
.section-head{margin-bottom:44px;}
.section-head--split{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;}
.sec-label{
  font-family:var(--font-num);font-size:13px;letter-spacing:.14em;
  color:var(--accent);text-transform:uppercase;margin-bottom:12px;display:block;
}
h2.sec-title{
  font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.15;
  letter-spacing:-.01em;color:var(--ink);
}
.sec-desc{font-size:16px;color:var(--muted);max-width:42em;margin-top:14px;line-height:1.8;}
.divider{height:1px;background:var(--line);border:0;margin:0;}

/* ============ 时间轴列表 ============ */
.timeline{max-width:960px;}
.month-mark{
  display:flex;align-items:center;gap:16px;
  margin:44px 0 8px;
}
.month-mark:first-child{margin-top:0;}
.month-mark .mono{
  font-family:var(--font-num);font-size:13px;letter-spacing:.1em;color:var(--ink);
  padding:5px 12px;border-radius:var(--radius-pill);background:var(--sand);
}
.month-mark .line{flex:1;height:1px;background:var(--line);}
.tl-list{border-top:1px dashed var(--line);}
.tl-item{
  display:flex;gap:28px;align-items:flex-start;
  padding:26px 0;border-bottom:1px dashed var(--line);
  transition:transform .24s ease;
}
.tl-item:hover{transform:translateX(6px);}
.tl-date{
  flex:0 0 96px;width:96px;
  font-family:var(--font-num);font-size:18px;font-weight:600;line-height:1.4;
  color:var(--ink);letter-spacing:.02em;
  transition:color .22s ease;
}
.tl-date small{display:block;font-size:11px;color:var(--muted);letter-spacing:.08em;font-weight:400;}
.tl-item:hover .tl-date{color:var(--accent);}
.tl-body{flex:1;min-width:0;}
.tl-body h3{
  font-size:21px;font-weight:700;line-height:1.4;color:var(--ink);
  margin-bottom:8px;transition:color .22s ease;
}
.tl-item:hover .tl-body h3{color:var(--accent);}
.tl-body p{font-size:15px;line-height:1.75;color:var(--muted);margin-bottom:12px;}
.tl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;}
.badge{
  display:inline-flex;align-items:center;
  padding:4px 12px;border-radius:var(--radius-pill);
  border:1px solid var(--field);color:var(--field);
  font-size:12px;letter-spacing:.02em;background:transparent;
}
.tl-arrow{
  margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  font-size:13px;color:var(--muted);transition:color .22s ease,transform .22s ease;
}
.tl-item:hover .tl-arrow{color:var(--accent);}
.tl-item:hover .tl-arrow svg{transform:translateX(4px);}
.tl-arrow svg{transition:transform .22s ease;}

/* ============ 深色数据带 ============ */
.band-dark{background:var(--ink);color:var(--bg);}
.band-dark .sec-title,.band-dark h2,.band-dark h3{color:var(--bg);}
.band-inner{padding:72px 0;}
.stat-grid{display:flex;flex-wrap:wrap;}
.stat-col{
  flex:1 1 25%;min-width:200px;
  padding:0 28px;
  border-left:1px solid rgba(245,243,238,.15);
}
.stat-col:first-child{border-left:0;padding-left:0;}
.stat-bar{width:32px;height:2px;background:var(--field);margin-bottom:18px;}
.stat-num{
  font-family:var(--font-num);font-size:clamp(36px,4.4vw,54px);font-weight:600;
  line-height:1;color:var(--bg);letter-spacing:-.02em;
}
.stat-num em{font-style:normal;color:var(--accent);font-size:.5em;margin-left:4px;}
.stat-label{font-size:12px;letter-spacing:.06em;color:rgba(245,243,238,.72);margin-top:12px;}
@media (max-width:767px){
  .stat-col{flex:1 1 100%;border-left:0;border-top:1px solid rgba(245,243,238,.15);padding:24px 0 0;margin-top:24px;}
  .stat-col:first-child{margin-top:0;border-top:0;padding-top:0;}
}

/* ============ 流程卡 ============ */
.step-grid{display:grid;gap:28px;grid-template-columns:repeat(3,1fr);}
@media (max-width:1023px){ .step-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:639px){ .step-grid{grid-template-columns:1fr;} }
.step-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);
  overflow:hidden;box-shadow:var(--shadow-rest);
  transition:transform .28s ease,box-shadow .28s ease;
  display:flex;flex-direction:column;
}
.step-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.step-card__media{aspect-ratio:16/10;background:var(--sand);overflow:hidden;}
.step-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.step-card:hover .step-card__media img{transform:scale(1.03);}
.step-card__body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.step-no{
  font-family:var(--font-num);font-size:13px;letter-spacing:.12em;color:var(--accent);
}
.step-card h3{font-size:20px;font-weight:700;color:var(--ink);line-height:1.4;}
.step-card p{font-size:15px;line-height:1.75;color:var(--muted);}
.step-card .text-link{margin-top:auto;align-self:flex-start;}

/* ============ FAQ ============ */
.faq-grid{display:grid;grid-template-columns:4fr 8fr;gap:48px;}
@media (max-width:1023px){ .faq-grid{grid-template-columns:1fr;gap:28px;} }
.accordion{border-top:1px solid var(--line);list-style:none;margin:0;}
.accordion-item{border-bottom:1px solid var(--line);}
.accordion-title{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 0;font-size:17px;font-weight:700;color:var(--ink);
  cursor:pointer;background:transparent;border:0;width:100%;text-align:left;
  transition:color .22s ease;
}
.accordion-title:hover{color:var(--accent);}
.accordion-title .ico{
  flex:0 0 auto;width:20px;height:20px;position:relative;color:var(--ink-2);
  transition:transform .26s ease,color .22s ease;
}
.accordion-title .ico::before,.accordion-title .ico::after{
  content:"";position:absolute;background:currentColor;border-radius:2px;
}
.accordion-title .ico::before{left:0;right:0;top:9px;height:1.6px;}
.accordion-title .ico::after{top:0;bottom:0;left:9px;width:1.6px;transition:opacity .26s ease;}
.accordion-item.is-active .accordion-title{color:var(--ink);}
.accordion-item.is-active .accordion-title .ico{transform:rotate(90deg);color:var(--accent);}
.accordion-item.is-active .accordion-title .ico::after{opacity:0;}
.accordion-content{display:none;padding:0 0 22px;position:relative;}
.accordion-item.is-active .accordion-content{display:block;}
.accordion-content::before{
  content:"";position:absolute;left:-14px;top:2px;bottom:22px;width:3px;background:var(--accent);border-radius:2px;
}
.accordion-content p{font-size:15px;line-height:1.85;color:var(--ink-2);padding-left:0;}
@media (max-width:639px){ .accordion-content::before{left:-8px;} }

/* ============ CTA 深色条 ============ */
.cta-band{background:var(--ink);color:var(--bg);padding:64px 0;}
.cta-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px;}
.cta-inner h2{font-size:clamp(24px,2.8vw,34px);font-weight:800;color:var(--bg);line-height:1.25;letter-spacing:-.01em;}
.cta-inner p{font-size:15px;color:rgba(245,243,238,.74);margin-top:10px;max-width:44em;}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;}
.btn-on-dark{background:var(--accent);color:#fff;}
.btn-on-dark:hover{background:var(--accent-ink);color:#fff;transform:translateY(-2px);}
.btn-outline-light{background:transparent;border:1px solid rgba(245,243,238,.5);color:var(--bg);}
.btn-outline-light:hover{border-color:var(--accent);color:var(--accent);}

/* ============ 联系区 ============ */
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start;}
@media (max-width:1023px){ .contact-grid{grid-template-columns:1fr;gap:28px;} }
.contact-list{margin-top:24px;display:flex;flex-direction:column;gap:14px;}
.contact-list li{display:flex;gap:12px;font-size:15px;color:rgba(245,243,238,.8);line-height:1.7;}
.contact-list li strong{color:var(--bg);font-weight:600;flex:0 0 auto;}
.form-card{
  background:var(--surface);border-radius:var(--radius-card);padding:32px;
  box-shadow:var(--shadow-rest);color:var(--ink-2);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:639px){ .form-row{grid-template-columns:1fr;} .form-card{padding:22px;} }
.field{margin-bottom:18px;display:flex;flex-direction:column;gap:8px;}
.field label{font-size:13px;color:var(--muted);letter-spacing:.02em;}
.field input,.field select,.field textarea{
  height:46px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-btn);
  padding:0 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;width:100%;
}
.field textarea{height:auto;padding:12px 14px;resize:vertical;line-height:1.7;}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,84,44,.12);
}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);}
.form-note{font-size:12px;color:var(--muted);margin-top:12px;}

/* ============ 页脚 ============ */
.site-footer{background:var(--ink);color:rgba(245,243,238,.75);padding-top:72px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:52px;}
@media (max-width:1023px){ .footer-grid{grid-template-columns:1fr 1fr;gap:32px;} }
@media (max-width:639px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand .brand__mark{color:var(--accent);}
.footer-brand .brand__text{color:var(--bg);font-size:19px;font-weight:800;}
.footer-desc{font-size:14px;line-height:1.8;color:rgba(245,243,238,.66);max-width:26em;}
.footer-social{display:flex;gap:10px;margin-top:20px;}
.footer-social a{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:36px;padding:0 12px;border-radius:var(--radius-pill);
  border:1px solid rgba(245,243,238,.24);color:rgba(245,243,238,.8);font-size:13px;
  transition:all .22s ease;
}
.footer-social a:hover{border-color:var(--accent);color:var(--accent);}
.site-footer h4{font-size:14px;color:var(--bg);letter-spacing:.06em;margin-bottom:18px;font-weight:700;}
.site-footer ul{display:flex;flex-direction:column;gap:12px;}
.site-footer ul a{font-size:14px;color:rgba(245,243,238,.72);}
.site-footer ul a:hover{color:var(--accent);}
.footer-contact li{font-size:14px;line-height:1.7;color:rgba(245,243,238,.72);}
.footer-bottom{
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  border-top:1px solid rgba(245,243,238,.15);padding:22px 0 32px;
  font-size:13px;color:rgba(245,243,238,.55);
}

/* ============ 动效 ============ */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .28s cubic-bezier(.22,.7,.28,1),transform .28s cubic-bezier(.22,.7,.28,1);}
.reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  .reveal{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

/* roulang page: category2 */
:root{
  --bg:#F5F3EE;
  --surface:#FFFFFF;
  --surface-2:#FCFBF7;
  --ink:#0F1A17;
  --ink-2:#2B3330;
  --muted:#6E7570;
  --line:#E1DCD2;
  --accent:#E2542C;
  --accent-ink:#A83A1B;
  --field:#1F6F63;
  --sand:#E9E1D2;
  --radius:16px;
  --radius-sm:10px;
  --shadow-1:0 1px 2px rgba(15,26,23,.06);
  --shadow-2:0 18px 40px -18px rgba(15,26,23,.26);
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-num:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-serif:"Noto Serif SC","Songti SC",serif;
  --ease:cubic-bezier(.22,.7,.28,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.85;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;border-radius:12px}
a{color:var(--ink);text-decoration:none;transition:color .2s var(--ease),border-color .2s var(--ease)}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--font-body);letter-spacing:-.01em}
p{margin:0 0 1.2em;color:var(--ink-2)}
p:last-child{margin-bottom:0}
ul{margin:0;padding:0;list-style:none}
figure{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.no-scroll{overflow:hidden}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}
.grid-padding-x{margin-left:-14px;margin-right:-14px}
.grid-padding-x>.cell{padding-left:14px;padding-right:14px}
.section{padding:104px 0}
.section--tight{padding:80px 0}
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .28s var(--ease),transform .28s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ============ 导航 ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,243,238,.94);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .24s var(--ease);
}
.site-header.is-scrolled{box-shadow:0 6px 18px -14px rgba(15,26,23,.4)}
.nav-inner{display:flex;align-items:center;gap:22px;height:72px;transition:height .24s var(--ease)}
.site-header.is-scrolled .nav-inner{height:60px}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand__mark{width:26px;height:26px;color:var(--accent);display:inline-flex}
.brand__mark svg{width:26px;height:26px}
.brand__text{font-size:17px;font-weight:900;letter-spacing:-.01em;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:26px;margin:0;padding:0}
.nav-link{position:relative;font-size:15px;color:var(--ink-2);padding:6px 0;white-space:nowrap}
.nav-link::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);
  transition:width .24s var(--ease);
}
.nav-link:hover::after{width:100%}
.nav-link.is-active{color:var(--ink);font-weight:700}
.nav-link.is-active::after{width:100%}
.nav-tools{display:flex;align-items:center;gap:14px;margin-left:auto}
.nav-search{position:relative;display:flex;align-items:center}
.nav-search svg{position:absolute;left:12px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.nav-search input{
  width:220px;height:40px;border-radius:999px;border:1px solid transparent;
  background:var(--sand);padding:0 14px 0 34px;font-size:14px;
  transition:width .24s var(--ease),border-color .24s var(--ease),background .24s var(--ease);
}
.nav-search input::placeholder{color:var(--muted)}
.nav-search input:focus{width:260px;outline:none;border-color:var(--accent);background:var(--surface)}
.nav-login{font-size:15px;color:var(--ink-2);padding:8px 2px}
.nav-login:hover{color:var(--accent)}
.nav-burger{
  display:none;width:44px;height:44px;border-radius:var(--radius-sm);
  border:1px solid var(--line);background:var(--surface);align-items:center;justify-content:center;cursor:pointer;
}
.nav-burger span{display:block;width:18px;height:2px;background:var(--ink);position:relative}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink)}
.nav-burger span::before{top:-6px}
.nav-burger span::after{top:6px}

/* 抽屉 */
.drawer{
  position:fixed;top:0;right:0;width:280px;height:100%;z-index:70;
  background:var(--bg);padding:22px;overflow-y:auto;
  transform:translateX(103%);transition:transform .28s var(--ease);
  box-shadow:-18px 0 40px -20px rgba(15,26,23,.4);
}
.drawer.is-open{transform:translateX(0)}
.drawer__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.drawer__close{
  width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);cursor:pointer;font-size:16px;line-height:1
}
.drawer__links{display:flex;flex-direction:column;gap:4px}
.drawer__links .nav-link{padding:14px 0;border-bottom:1px solid var(--line);font-size:16px}
.drawer__links .nav-link::after{display:none}
.drawer__cta{margin-top:22px;width:100%;justify-content:center}
.drawer-mask{
  position:fixed;inset:0;background:rgba(15,26,23,.45);z-index:60;
  opacity:0;visibility:hidden;transition:opacity .28s var(--ease),visibility .28s var(--ease);
}
.drawer-mask.is-open{opacity:1;visibility:visible}

/* ============ 按钮与标签 ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:13px 22px;border-radius:var(--radius-sm);
  font-size:15px;font-weight:700;border:1px solid transparent;cursor:pointer;
  transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease),border-color .22s var(--ease);
}
.btn-primary{background:var(--ink);color:var(--bg)}
.btn-primary:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-ink);transform:translateY(-2px)}
.btn-accent:active{transform:translateY(0)}
.badge{
  display:inline-flex;align-items:center;border-radius:999px;
  font-size:12px;padding:5px 12px;letter-spacing:.02em;
}
.badge-field{border:1px solid var(--field);color:var(--field);background:transparent}
.badge-sand{background:var(--sand);color:var(--ink-2)}
.link-cta{color:var(--accent);font-weight:700;font-size:15px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.link-cta:hover{color:var(--accent-ink);text-decoration-thickness:2px}
.link-cta span{display:inline-block;transition:transform .22s var(--ease)}
.link-cta:hover span{transform:translateX(4px)}

/* ============ Hero ============ */
.hero{position:relative;overflow:hidden;padding:64px 0 96px}
.hero-deco{
  position:absolute;top:-40px;right:-60px;width:520px;height:420px;pointer-events:none;
  opacity:.05;
  background-image:repeating-linear-gradient(-24deg,var(--ink) 0,var(--ink) 2px,transparent 2px,transparent 16px);
  transform:rotate(4deg);
}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .now{color:var(--ink)}
.breadcrumb .sep{color:var(--line)}
.hero h1{
  font-size:clamp(38px,5.4vw,66px);font-weight:900;line-height:1.06;letter-spacing:-.02em;
  margin:18px 0 20px;max-width:14em;
}
.hero-sub{font-size:17px;line-height:1.8;color:var(--ink-2);max-width:34em;margin-bottom:30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:36px}
.hero-stats{display:flex;flex-wrap:wrap;gap:0}
.hero-stats li{display:flex;flex-direction:column;padding:0 24px;border-left:1px solid var(--line)}
.hero-stats li:first-child{padding-left:0;border-left:none}
.hero-stats .num{font-size:26px;font-weight:700;line-height:1.2;color:var(--ink)}
.hero-stats span{font-size:12px;color:var(--muted);letter-spacing:.02em}
.hero-media{position:relative;margin-top:8px}
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px;background:var(--sand)}
.hero-float{
  position:absolute;right:-12px;bottom:26px;width:220px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-1);
}
.hero-float .num{display:block;font-size:28px;font-weight:700;line-height:1.2}
.hero-float span{font-size:12px;color:var(--muted)}

/* ============ 课程筛选与卡片 ============ */
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:36px}
.section-head h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;letter-spacing:-.01em}
.section-head p{max-width:32em;font-size:15px;color:var(--muted);margin-top:10px}
.filter-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.filter-tab{
  border:1px solid var(--field);color:var(--field);background:transparent;
  border-radius:999px;padding:8px 16px;font-size:13px;line-height:1.2;
}
.filter-tab.is-on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.course-card{
  display:flex;flex-direction:column;height:100%;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease);
}
.course-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.course-card__media{background:var(--sand);border-radius:0}
.course-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0}
.course-card--sm .course-card__media img{aspect-ratio:4/3}
.course-card__body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.course-card__body h3{font-size:21px;font-weight:700;line-height:1.35}
.course-card__body p{font-size:15px;color:var(--ink-2);margin:0}
.point-list{display:grid;gap:10px;margin:2px 0 6px}
.point-list li{position:relative;padding-left:18px;font-size:14px;color:var(--ink-2);line-height:1.7}
.point-list li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--field)}
.course-card .link-cta{margin-top:auto}

/* ============ 流程 ============ */
.flow{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.flow-item{padding-top:22px;border-top:2px solid var(--line);transition:border-color .24s var(--ease)}
.flow-item:hover{border-color:var(--accent)}
.flow-item .idx{font-family:var(--font-num);font-size:13px;color:var(--accent);letter-spacing:.06em}
.flow-item h3{font-size:19px;font-weight:700;margin:10px 0 8px}
.flow-item p{font-size:14px;color:var(--muted);line-height:1.8;margin:0}

/* ============ 教练与保障 ============ */
.coach-media img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--sand)}
.coach-copy h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;margin-bottom:16px}
.coach-copy p{font-size:16px}
.check-list{display:grid;gap:14px;margin-top:22px}
.check-list li{display:flex;gap:12px;font-size:15px;color:var(--ink-2);line-height:1.75}
.check-list li::before{
  content:"";flex:0 0 auto;width:10px;height:10px;margin-top:.6em;
  background:var(--accent);
}

/* ============ 数据带 ============ */
.data-band{background:var(--ink);color:var(--bg);padding:72px 0}
.data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.data-item{position:relative;padding:22px 0 0 28px}
.data-item::before{content:"";position:absolute;left:0;top:0;width:32px;height:2px;background:var(--field)}
.data-item+.data-item{border-left:1px solid rgba(245,243,238,.15)}
.data-item .num{display:block;font-size:clamp(38px,4.4vw,56px);font-weight:700;line-height:1.1;color:var(--bg)}
.data-item .num em{font-style:normal;color:var(--accent);font-size:.62em;margin-left:2px}
.data-item span{font-size:12px;letter-spacing:.04em;color:rgba(245,243,238,.68)}
.data-item p{margin-top:12px;font-size:14px;color:rgba(245,243,238,.72);line-height:1.8}

/* ============ FAQ ============ */
.faq-title h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;margin-bottom:14px}
.faq-title p{font-size:15px;color:var(--muted)}
.accordion{border:none;background:transparent;margin:0}
.accordion-item{border:none;border-top:1px solid var(--line);background:transparent}
.accordion-item:last-child{border-bottom:1px solid var(--line)}
.accordion-title{
  position:relative;display:block;padding:20px 40px 20px 0;
  font-size:17px;font-weight:700;color:var(--ink);border:none;background:transparent;
  transition:color .22s var(--ease),padding .22s var(--ease);
}
.accordion-title:hover{background:transparent;color:var(--accent)}
.accordion-title::before{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-family:var(--font-num);font-size:20px;color:var(--muted);transition:transform .24s var(--ease),color .24s var(--ease);
}
.accordion-item.is-active .accordion-title{padding-left:14px}
.accordion-item.is-active .accordion-title::after{
  content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;background:var(--accent);
}
.accordion-item.is-active .accordion-title::before{content:"−";color:var(--accent);transform:translateY(-50%) rotate(90deg)}
.accordion-content{padding:0 0 24px 14px;border:none;background:transparent;font-size:15px;line-height:1.8;color:var(--ink-2)}
.accordion-content p{font-size:15px;color:var(--ink-2)}

/* ============ 联系 CTA ============ */
.cta-band{background:var(--ink);color:var(--bg);padding:80px 0}
.cta-band h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;color:#fff;margin-bottom:16px}
.cta-band p{color:rgba(245,243,238,.76);font-size:16px;max-width:34em}
.cta-points{display:grid;gap:10px;margin:22px 0 0}
.cta-points li{position:relative;padding-left:18px;font-size:15px;color:rgba(245,243,238,.8)}
.cta-points li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;background:var(--accent)}
.cta-panel{
  background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow-2);
}
.cta-panel h3{font-size:20px;font-weight:700;margin-bottom:10px}
.cta-panel p{font-size:14px;color:var(--muted);margin-bottom:20px}
.field{display:grid;gap:8px;margin-bottom:16px}
.field label{font-size:13px;color:var(--ink-2)}
.field input,.field select{
  height:46px;border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--bg);padding:0 14px;font-size:15px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field input::placeholder{color:var(--muted)}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(226,84,44,.12)}
.cta-panel .btn{width:100%}
.cta-note{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}

/* ============ 页脚 ============ */
.site-footer{background:var(--ink);color:rgba(245,243,238,.86);padding-top:72px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:56px}
.footer-brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:18px;font-weight:900}
.footer-brand .brand__mark{color:var(--accent)}
.footer-desc{margin-top:16px;font-size:14px;line-height:1.8;color:rgba(245,243,238,.68);max-width:280px}
.footer-social{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}
.footer-social a{
  font-size:13px;border:1px solid rgba(245,243,238,.26);border-radius:999px;
  padding:7px 16px;color:rgba(245,243,238,.85);
}
.footer-social a:hover{border-color:var(--accent);color:#fff}
.site-footer h4{font-size:14px;letter-spacing:.08em;color:#fff;margin-bottom:18px;font-weight:700}
.site-footer ul{display:grid;gap:10px}
.site-footer ul a{font-size:14px;color:rgba(245,243,238,.72)}
.site-footer ul a:hover{color:var(--accent)}
.footer-contact li{font-size:14px;color:rgba(245,243,238,.72);line-height:1.7}
.footer-bottom{
  border-top:1px solid rgba(245,243,238,.15);padding:20px 0;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;
  font-size:13px;color:rgba(245,243,238,.58);
}

/* ============ 响应式 ============ */
@media (max-width:1279px){
  .container{max-width:1120px}
}
@media (max-width:1023px){
  .section{padding:72px 0}
  .section--tight{padding:60px 0}
  .nav-links,.nav-search{display:none}
  .nav-burger{display:inline-flex}
  .nav-login{display:none}
  .flow-grid{grid-template-columns:repeat(2,1fr)}
  .data-grid{grid-template-columns:repeat(2,1fr);gap:24px}
  .data-item:nth-child(3){border-left:none;padding-left:0}
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:32px}
}
@media (max-width:767px){
  .container{padding:0 18px}
  .hero{padding:44px 0 64px}
  .hero-stats li{padding:0 16px}
  .hero-stats .num{font-size:22px}
  .hero-media{margin-top:28px}
  .hero-media img{aspect-ratio:16/12}
  .hero-float{position:static;width:100%;margin-top:14px}
  .section{padding:56px 0}
  .section-head{margin-bottom:26px}
  .course-card__body{padding:18px}
  .cta-panel{padding:24px;margin-top:28px}
  .cta-band{padding:64px 0}
}
@media (max-width:639px){
  .flow-grid{grid-template-columns:1fr}
  .data-grid{grid-template-columns:1fr;gap:0}
  .data-item{padding:20px 0 0 0;border-left:none}
  .data-item+.data-item{border-left:none;border-top:1px solid rgba(245,243,238,.15);margin-top:24px}
  .footer-grid{grid-template-columns:1fr;gap:28px;padding-bottom:40px}
  .footer-bottom{flex-direction:column}
  .hero-actions .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important}
}
