/* 官网“资源 + 观点”双主轴前台。视觉基线：轻暖白底、深绿、克制卡片。 */
.qdo-site {
  --hub-ink:#18241d;
  --hub-muted:#657168;
  --hub-line:#d6e0d9;
  --hub-paper:#f6faf7;
  --hub-surface:#ffffff;
  --hub-accent:#07834a;
  --hub-accent-dark:#006b3b;
  --hub-accent-soft:#daf5e4;
  --hub-accent-pale:#eef9f2;
  --hub-amber:#936100;
  --hub-amber-soft:#fff0c8;
  --hub-danger:#982d25;
  color:var(--hub-ink);
  background:#fff;
}
.qdo-site *, .qdo-site *::before, .qdo-site *::after { box-sizing:border-box; }
.qdo-site a { color:inherit; }
.qdo-site .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.qdo-site .shell { max-width:1180px; }

/* 全站导航 */
.qdo-site .site-nav,
.qdo-inner-page .site-nav {
  position:sticky;
  top:0;
  z-index:50;
  height:70px;
  border-bottom:1px solid rgba(201,217,207,.82);
  background:rgba(247,252,248,.94);
  backdrop-filter:blur(16px) saturate(140%);
}
.qdo-site .nav-inner { min-height:70px; padding:0 26px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.qdo-site .brand { display:inline-flex; align-items:center; gap:10px; color:var(--hub-ink); font-size:17px; font-weight:850; letter-spacing:-.015em; }
.qdo-site .brand img { width:30px; height:30px; object-fit:contain; }
.qdo-site .brand-copy { display:block; line-height:1; }
.qdo-site .brand-copy strong { color:var(--hub-ink); font-size:17px; }
.qdo-site .nav-links { display:flex; align-items:center; justify-content:center; gap:34px; }
.qdo-site .nav-links a { position:relative; padding:24px 0 22px; color:#465148; font-size:15px; font-weight:760; }
.qdo-site .nav-links a::after { content:""; position:absolute; right:0; bottom:15px; left:0; height:2px; border-radius:2px; background:transparent; }
.qdo-site .nav-links a:hover,
.qdo-site .nav-links a[aria-current="page"] { color:var(--hub-accent-dark); }
.qdo-site .nav-links a[aria-current="page"]::after { background:var(--hub-accent); }
.qdo-site .nav-redeem { justify-self:end; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 20px; border-radius:999px; background:var(--hub-accent-dark); color:#fff; font-size:13px; font-weight:850; box-shadow:0 10px 24px rgba(0,107,59,.16); transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.qdo-site .nav-redeem:hover { transform:translateY(-1px); background:#005a32; box-shadow:0 13px 30px rgba(0,107,59,.22); }
.qdo-site .nav-redeem[aria-current="page"] { background:#005a32; }

/* 资源 / 观点目录 */
.qdo-site .hub-directory { min-height:calc(100vh - 70px); padding:52px 26px 104px; background:#fff; }
.qdo-site .hub-directory-head { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:38px; }
.qdo-site .hub-eyebrow { margin:0 0 12px; color:var(--hub-accent); font-family:Georgia,"Times New Roman",serif; font-size:13px; font-style:italic; font-weight:700; letter-spacing:.055em; }
.qdo-site .hub-eyebrow::before { content:""; display:inline-block; width:26px; height:2px; margin-right:9px; background:var(--hub-accent); vertical-align:4px; }
.qdo-site .hub-directory h1 { margin:0; color:var(--hub-ink); font-size:44px; font-weight:860; letter-spacing:-.05em; line-height:1; }
.qdo-site .hub-directory-lead { max-width:650px; margin:18px 0 0; color:var(--hub-muted); font-size:16px; line-height:1.75; }
.qdo-site .hub-directory-count { margin:0 0 3px; color:#758078; font-size:13px; font-weight:700; }
.qdo-site .hub-resource-controls { margin-bottom:34px; }
.qdo-site .hub-search { display:flex; align-items:center; gap:12px; min-height:50px; padding:0 17px; border:1px solid #c8d5cd; border-radius:999px; background:#f5f9f6; color:#7a867e; transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.qdo-site .hub-search:focus-within { border-color:#6fbb91; background:#fff; box-shadow:0 0 0 4px rgba(7,131,74,.10); }
.qdo-site .hub-search svg { width:19px; height:19px; flex:0 0 auto; stroke-width:1.8; }
.qdo-site .hub-search input { width:100%; height:48px; padding:0; border:0; outline:0; background:transparent; color:var(--hub-ink); font:inherit; font-size:14px; }
.qdo-site .hub-search input::placeholder { color:#89938d; }
.qdo-site .hub-search input::-webkit-search-cancel-button { cursor:pointer; }
.qdo-site .hub-filter-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; }
.qdo-site .hub-filter-group { display:flex; flex-wrap:wrap; gap:8px; }
.qdo-site .hub-filter-group button { min-height:40px; padding:0 15px; border:1px solid #cdd8d1; border-radius:999px; background:#fff; color:#49564d; font:inherit; font-size:13px; font-weight:720; cursor:pointer; transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease; }
.qdo-site .hub-filter-group button:hover { border-color:#76b996; color:var(--hub-accent-dark); transform:translateY(-1px); }
.qdo-site .hub-filter-group button.is-active { border-color:var(--hub-accent-dark); background:var(--hub-accent-dark); color:#fff; }
.qdo-site .hub-filter-group.is-compact { padding:4px; border:1px solid #d7e1da; border-radius:999px; background:#f3f7f4; }
.qdo-site .hub-filter-group.is-compact button { min-height:34px; padding:0 13px; border:0; background:transparent; color:#68736b; }
.qdo-site .hub-filter-group.is-compact button.is-active { background:#fff; color:var(--hub-ink); box-shadow:0 1px 5px rgba(24,36,29,.08); }

/* 卡片 */
.qdo-site .hub-resource-grid,
.qdo-site .hub-opinion-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.qdo-site .hub-resource-card,
.qdo-site .hub-opinion-card { position:relative; display:flex; flex-direction:column; min-height:292px; overflow:hidden; padding:24px; border:1px solid var(--hub-line); border-radius:18px; background:#fff; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.qdo-site .hub-resource-card:hover,
.qdo-site .hub-opinion-card:hover { transform:translateY(-4px); border-color:#9ac5aa; box-shadow:0 18px 38px rgba(26,66,43,.10); }
.qdo-site .hub-resource-card.is-featured { grid-column:span 2; display:grid; grid-template-columns:92px minmax(0,1fr); column-gap:24px; background:#e5f8ec; }
.qdo-site .hub-card-top { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; }
.qdo-site .hub-resource-card.is-featured .hub-card-top { grid-row:1/5; grid-column:1; display:block; margin:0; }
.qdo-site .hub-icon-tile { display:grid; place-items:center; width:52px; height:52px; border-radius:14px; background:#d3f3df; color:var(--hub-accent-dark); }
.qdo-site .hub-resource-card.is-featured .hub-icon-tile { width:84px; height:84px; margin-top:80px; background:rgba(255,255,255,.58); }
.qdo-site .hub-icon-tile svg { width:25px; height:25px; stroke-width:1.8; }
.qdo-site .hub-resource-card.is-featured .hub-icon-tile svg { width:32px; height:32px; }
.qdo-site .hub-access-badge { display:inline-flex; align-items:center; min-height:28px; padding:0 11px; border-radius:999px; background:var(--hub-accent-soft); color:var(--hub-accent-dark); font-size:11px; font-weight:850; }
.qdo-site .hub-access-badge.is-soon { background:var(--hub-amber-soft); color:var(--hub-amber); }
.qdo-site .hub-resource-card.is-featured .hub-access-badge { position:absolute; top:24px; right:24px; }
.qdo-site .hub-resource-card h3,
.qdo-site .hub-opinion-card h3 { position:relative; z-index:1; margin:0; color:var(--hub-ink); font-size:21px; font-weight:850; line-height:1.35; letter-spacing:-.025em; }
.qdo-site .hub-resource-card.is-featured h3 { grid-column:2; margin-top:6px; font-size:23px; }
.qdo-site .hub-resource-card>p,
.qdo-site .hub-opinion-card>p { position:relative; z-index:1; margin:15px 0 22px; color:var(--hub-muted); font-size:14px; line-height:1.75; }
.qdo-site .hub-resource-card.is-featured>p { grid-column:2; max-width:660px; margin:13px 0 18px; }
.qdo-site .hub-card-tags { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; }
.qdo-site .hub-resource-card.is-featured .hub-card-tags { grid-column:2; }
.qdo-site .hub-card-tag { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border:1px solid #d4ded7; border-radius:999px; background:#f6f9f7; color:#6a766d; font-size:11px; font-weight:700; }
.qdo-site .hub-card-link { position:relative; z-index:1; display:inline-flex; align-items:center; gap:7px; margin-top:18px; color:var(--hub-accent-dark); font-size:13px; font-weight:850; }
.qdo-site .hub-card-link svg { width:16px; height:16px; stroke-width:2; transition:transform .18s ease; }
.qdo-site .hub-card-link:hover svg { transform:translateX(3px); }
.qdo-site .hub-resource-card.is-featured .hub-card-link { grid-column:2; margin-top:17px; }
.qdo-site .hub-opinion-card.is-featured { grid-column:span 2; background:var(--hub-accent-pale); }
.qdo-site .hub-card-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:21px; color:#7c887f; font-size:11px; font-weight:750; }
.qdo-site .hub-opinion-card.is-featured h3 { max-width:730px; font-size:28px; }
.qdo-site .hub-opinion-card.is-featured>p { max-width:680px; font-size:15px; }
.qdo-site .hub-state { grid-column:1/-1; padding:30px; border:1px solid var(--hub-line); border-radius:16px; background:#f8fbf9; color:var(--hub-muted); }
.qdo-site .hub-state.is-error { border-color:#efc2bd; background:#fff7f6; color:var(--hub-danger); }
.qdo-site .hub-state.is-empty { text-align:center; }

/* 详情 */
.qdo-site .hub-detail { max-width:1180px; margin:0 auto; padding:58px 26px 104px; }
.qdo-site .hub-detail-back { display:inline-flex; align-items:center; gap:6px; margin-bottom:34px; color:var(--hub-accent-dark); font-size:13px; font-weight:820; }
.qdo-site .hub-detail-header { max-width:900px; padding:28px 0 42px; border-bottom:1px solid var(--hub-line); }
.qdo-site .hub-detail-header h1 { margin:16px 0 19px; color:var(--hub-ink); font-size:clamp(44px,6.2vw,72px); font-weight:860; letter-spacing:-.055em; line-height:1.05; }
.qdo-site .hub-detail-summary { max-width:780px; margin:0; color:#5e6b62; font-size:18px; line-height:1.8; }
.qdo-site .hub-detail-meta { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:24px; color:#829087; font-size:13px; }
.qdo-site .hub-detail-body { max-width:800px; padding:44px 0 10px; color:#2d3831; font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",serif; font-size:17px; line-height:2; }
.qdo-site .hub-detail-body h2,
.qdo-site .hub-detail-body h3 { margin:2em 0 .75em; color:var(--hub-ink); font-family:Arial,"Microsoft YaHei",sans-serif; line-height:1.3; }
.qdo-site .hub-detail-body h2 { font-size:30px; }
.qdo-site .hub-detail-body h3 { font-size:22px; }
.qdo-site .hub-detail-body p { margin:0 0 1.35em; }
.qdo-site .hub-detail-body ul,.qdo-site .hub-detail-body ol { padding-left:1.5em; }
.qdo-site .hub-detail-body blockquote { margin:1.8em 0; padding:20px 24px; border-left:4px solid var(--hub-accent); background:var(--hub-accent-pale); color:#4f5d53; }
.qdo-site .hub-detail-body code { padding:2px 5px; background:#eaf3ed; }
.qdo-site .hub-detail-body pre { overflow:auto; padding:20px; border-radius:12px; background:#17231c; color:#f5faf6; }
.qdo-site .hub-detail-body pre code { padding:0; background:transparent; }
.qdo-site .hub-detail-body a { color:var(--hub-accent-dark); text-decoration:underline; text-underline-offset:3px; }

.qdo-site .hub-resource-detail { padding-top:54px; }
.qdo-site .hub-resource-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(330px,.65fr); gap:48px; align-items:start; padding:34px 0 54px; border-bottom:1px solid var(--hub-line); }
.qdo-site .hub-resource-title h1 { margin:15px 0 20px; color:var(--hub-ink); font-size:clamp(46px,6.4vw,74px); font-weight:860; letter-spacing:-.06em; line-height:1.03; }
.qdo-site .hub-resource-title p { max-width:700px; margin:0; color:#5d6a61; font-size:18px; line-height:1.8; }
.qdo-site .hub-acquire-card { position:sticky; top:96px; padding:27px; border:1px solid #bedac9; border-radius:18px; background:var(--hub-accent-pale); box-shadow:0 18px 46px rgba(22,83,48,.09); }
.qdo-site .hub-acquire-card h2 { margin:0 0 8px; font-size:23px; }
.qdo-site .hub-acquire-card>p { margin:0 0 20px; color:var(--hub-muted); line-height:1.7; }
.qdo-site .hub-sku-list { display:grid; gap:10px; }
.qdo-site .hub-sku { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:15px; border:1px solid #cfe1d6; border-radius:13px; background:#fff; }
.qdo-site .hub-sku strong { display:block; font-size:15px; }
.qdo-site .hub-sku small { display:block; margin-top:4px; color:#78847b; line-height:1.5; }
.qdo-site .hub-sku-price { color:var(--hub-ink); font-size:19px; font-weight:850; white-space:nowrap; }
.qdo-site .hub-sku button,
.qdo-site .hub-acquire-link { grid-column:1/-1; display:flex; align-items:center; justify-content:center; min-height:43px; border:0; border-radius:999px; background:var(--hub-accent-dark); color:#fff; font-size:13px; font-weight:830; cursor:pointer; }
.qdo-site .hub-acquire-link.is-secondary { margin-top:10px; border:1px solid #b9d2c3; background:#fff; color:var(--hub-accent-dark); }
.qdo-site .hub-resource-content { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:58px; padding-top:52px; }
.qdo-site .hub-resource-side { padding-top:20px; }
.qdo-site .hub-resource-side h2 { margin:0 0 16px; font-size:20px; }
.qdo-site .hub-resource-side p { color:var(--hub-muted); line-height:1.75; }
.qdo-site .hub-media-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:22px; }
.qdo-site .hub-media-item { overflow:hidden; border:1px solid var(--hub-line); border-radius:13px; background:#fff; }
.qdo-site .hub-media-item img,.qdo-site .hub-media-item video { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:#edf3ef; }
.qdo-site .hub-media-label { padding:10px 12px; color:#747f77; font-size:12px; }
.qdo-site .hub-empty { padding:24px; border:1px dashed #c4d3c9; border-radius:13px; color:#78837b; background:#fff; }

/* 兑换页与页脚 */
.qdo-site .section { padding:64px 0 92px; }
.qdo-site .section-head { max-width:720px; margin:0 0 32px; text-align:left; }
.qdo-site .section-head .kicker { color:var(--hub-accent); }
.qdo-site .section-head h2 { color:var(--hub-ink); font-size:42px; }
.qdo-site .section-head p { color:var(--hub-muted); }
.qdo-site .redeem-card { max-width:820px; padding:30px; border:1px solid #c9ddd0; border-radius:18px; background:#fff; color:var(--hub-ink); box-shadow:0 18px 48px rgba(26,77,45,.09); }
.qdo-site .redeem-card input,.qdo-site .redeem-card select { border-color:#c8d8ce; border-radius:10px; background:#fbfdfb; }
.qdo-site .redeem-card input:focus,.qdo-site .redeem-card select:focus { border-color:#6db28d; box-shadow:0 0 0 3px rgba(7,131,74,.10); }
.qdo-site .redeem-progress li.is-active { color:var(--hub-accent-dark); }
.qdo-site .redeem-progress li.is-active span { background:var(--hub-accent-dark); color:#fff; }
.qdo-site .btn-primary { border-radius:999px; background:var(--hub-accent-dark); }
.qdo-site .btn-primary:hover { background:#005a32; }
.qdo-site .site-footer { border-top:1px solid var(--hub-line); background:#f7faf8; }
.qdo-site .footer-inner { padding:32px 26px 20px; display:grid; grid-template-columns:1fr auto; gap:20px; color:#77817a; }
.qdo-site .footer-inner strong { margin-right:10px; color:var(--hub-ink); }
.qdo-site .footer-inner nav { display:flex; gap:18px; }
.qdo-site .footer-inner nav a:hover { color:var(--hub-accent-dark); }
.qdo-site .footer-inner p { grid-column:1/-1; margin:0; padding-top:17px; border-top:1px solid var(--hub-line); color:#9aa39c; font-size:12px; }
.qdo-site .footer-inner .icp-link { color:inherit; }

@media (max-width:960px) {
  .qdo-site .hub-resource-grid,.qdo-site .hub-opinion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qdo-site .hub-resource-card.is-featured,.qdo-site .hub-opinion-card.is-featured { grid-column:1/-1; }
  .qdo-site .hub-resource-hero,.qdo-site .hub-resource-content { grid-template-columns:1fr; }
  .qdo-site .hub-acquire-card { position:static; }
}

@media (max-width:680px) {
  .qdo-site .hub-directory { padding:38px 20px 76px; }
  .qdo-site .hub-directory-head { display:block; margin-bottom:30px; }
  .qdo-site .hub-directory h1 { font-size:39px; }
  .qdo-site .hub-directory-lead { font-size:15px; }
  .qdo-site .hub-directory-count { margin-top:14px; }
  .qdo-site .hub-filter-row { align-items:flex-start; flex-direction:column; }
  .qdo-site .hub-filter-group { width:100%; flex-wrap:nowrap; overflow-x:auto; padding-bottom:3px; scrollbar-width:none; }
  .qdo-site .hub-filter-group::-webkit-scrollbar { display:none; }
  .qdo-site .hub-filter-group button { flex:0 0 auto; }
  .qdo-site .hub-filter-group.is-compact { width:auto; }
  .qdo-site .hub-resource-grid,.qdo-site .hub-opinion-grid { grid-template-columns:1fr; gap:14px; }
  .qdo-site .hub-resource-card,.qdo-site .hub-opinion-card { min-height:266px; padding:22px; }
  .qdo-site .hub-resource-card.is-featured { grid-column:auto; display:flex; }
  .qdo-site .hub-resource-card.is-featured .hub-card-top { display:flex; margin-bottom:18px; }
  .qdo-site .hub-resource-card.is-featured .hub-icon-tile { width:52px; height:52px; margin:0; background:rgba(255,255,255,.62); }
  .qdo-site .hub-resource-card.is-featured .hub-icon-tile svg { width:25px; height:25px; }
  .qdo-site .hub-resource-card.is-featured .hub-access-badge { position:static; }
  .qdo-site .hub-resource-card.is-featured h3 { margin:0; font-size:21px; }
  .qdo-site .hub-opinion-card.is-featured h3 { font-size:23px; }
  .qdo-site .hub-detail,.qdo-site .hub-resource-detail { padding:42px 20px 80px; }
  .qdo-site .hub-detail-header h1,.qdo-site .hub-resource-title h1 { font-size:42px; }
  .qdo-site .hub-detail-summary,.qdo-site .hub-resource-title p { font-size:16px; }
  .qdo-site .hub-resource-hero { gap:28px; padding-top:14px; }
  .qdo-site .hub-resource-content { gap:22px; }
  .qdo-site .hub-media-grid { grid-template-columns:1fr; }
  .qdo-site .section { padding:46px 0 74px; }
  .qdo-site .section-head h2 { font-size:36px; }
  .qdo-site .redeem-card { padding:24px 20px; }
  .qdo-site .footer-inner { grid-template-columns:1fr; padding-left:20px; padding-right:20px; }
  .qdo-site .footer-inner nav { flex-wrap:wrap; }
}