:root{
  --pine-900:#0d2b22;
  --pine-800:#123b30;
  --pine-700:#1a4d3e;
  --pine-600:#22604c;
  --pine-500:#2d7a61;
  --pine-400:#4c9a80;
  --pine-100:#e6f0ec;
  --pine-50:#f4f9f7;
  --gold:#c9a15a;
  --text-dark:#1c2b26;
  --text-light:#5c6f68;
  --white:#ffffff;
}
*{ box-sizing:border-box; margin:0; padding:0; }
body{
  font-family:"Microsoft YaHei","PingFang SC","Helvetica Neue",Arial,sans-serif;
  color:var(--text-dark);
  background:var(--pine-50);
  line-height:1.7;
  /* 内容不足一屏时，靠 footer 的 margin-top:auto 把页脚推到视窗底部，避免下方露出一段背景色 */
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
ul{ list-style:none; }

header{ background:var(--white); border-bottom:3px solid var(--pine-700); position:sticky; top:0; z-index:100; }
.header-inner{ max-width:1180px; margin:0 auto; padding:14px 20px; display:flex; align-items:center; justify-content:space-between; }
.logo{ display:flex; align-items:center; gap:12px; }
.logo .mark{
  width:46px; height:46px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--pine-500), var(--pine-800));
  box-shadow:inset -4px -4px 6px rgba(0,0,0,.35), inset 3px 3px 6px rgba(255,255,255,.15);
  position:relative;
}
.logo .mark::after{ content:""; position:absolute; inset:8px; border:1px solid rgba(255,255,255,.25); border-radius:50%; }
.logo .text h1{ font-size:22px; color:var(--pine-800); letter-spacing:2px; }
.logo .text span{ font-size:12px; color:var(--text-light); letter-spacing:1px; }
nav ul{ display:flex; gap:6px; flex-wrap:wrap; }
nav a{ display:block; padding:10px 16px; font-size:15px; color:var(--text-dark); border-radius:4px; font-weight:600; cursor:pointer; }
nav a:hover, nav a.active{ background:var(--pine-700); color:#fff; }

.hero{
  background:
    linear-gradient(135deg, rgba(13,43,34,.88), rgba(26,77,62,.82)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 2px, transparent 2px 40px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 2px, transparent 2px 40px);
  color:#fff; padding:70px 20px;
}
.hero-inner{ max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.hero h2{ font-size:34px; margin-bottom:16px; letter-spacing:2px; }
.hero p{ font-size:15px; color:#dcece5; max-width:520px; margin-bottom:24px; }
.btn{ display:inline-block; padding:12px 30px; background:var(--gold); color:#2a2110; font-weight:700; border-radius:2px; letter-spacing:1px; transition:.2s; cursor:pointer; border:none; font-family:inherit; font-size:15px; }
.btn:hover{ background:#e0bb78; }
.btn.outline{ background:transparent; border:1px solid #dcece5; color:#fff; margin-left:12px; }
.btn.outline:hover{ background:rgba(255,255,255,.12); }

.goban{ width:260px; height:260px; background:#d8b171; border:6px solid #8a5a2b; box-shadow:0 12px 30px rgba(0,0,0,.4); position:relative; flex-shrink:0; display:grid; grid-template-columns:repeat(9,1fr); grid-template-rows:repeat(9,1fr); }
.goban .cell{ border:1px solid #8a5a2b44; position:relative; }
.goban .stone{ width:80%; height:80%; border-radius:50%; position:absolute; top:10%; left:10%; }
.goban .stone.black{ background:radial-gradient(circle at 35% 30%, #555, #000); }
.goban .stone.white{ background:radial-gradient(circle at 35% 30%, #fff, #cfcfcf); }

section{ padding:60px 20px; }
.section-inner{ max-width:1180px; margin:0 auto; }

/* 主内容区撑满剩余高度；内容不足一屏时，以 auto 外距把它垂直置中。
   内容够长时 auto 外距自动失效，长页面不受影响。 */
body > section{ flex:1 0 auto; display:flex; flex-direction:column; }
body > section > .section-inner,
body > section > .market-layout,
body > section > .knowledge-layout{ width:100%; margin-top:auto; margin-bottom:auto; }
.section-title{ text-align:center; margin-bottom:40px; }
.section-title h3{ font-size:26px; color:var(--pine-800); letter-spacing:2px; }
.section-title .en{ font-size:12px; color:var(--pine-400); letter-spacing:4px; text-transform:uppercase; margin-bottom:6px; }
.section-title .bar{ width:50px; height:3px; background:var(--gold); margin:14px auto 0; }

.knowledge-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card{ background:#fff; border:1px solid #e1ece7; border-radius:6px; overflow:hidden; transition:.25s; }
.card:hover{ transform:translateY(-4px); box-shadow:0 10px 24px rgba(18,59,48,.15); border-color:var(--pine-500); }
.card .thumb{ height:150px; background:linear-gradient(135deg, var(--pine-600), var(--pine-800)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:38px; }
.card .body{ padding:18px 20px; }
.card .body .tag{ font-size:12px; color:var(--pine-500); font-weight:700; margin-bottom:8px; display:inline-block; }
.card .body h4{ font-size:17px; margin-bottom:10px; color:var(--text-dark); }
.card .body p{ font-size:13px; color:var(--text-light); }
.empty-hint{ text-align:center; color:var(--text-light); font-size:14px; padding:20px; }

.equip-section{ background:var(--pine-100); }
.equip-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.equip-card{ background:#fff; border-radius:6px; padding:24px 18px; text-align:center; border-top:3px solid var(--pine-600); }
.equip-card .icon{ font-size:34px; margin-bottom:12px; }
.equip-card h5{ font-size:16px; margin-bottom:8px; color:var(--pine-800); }
.equip-card p{ font-size:13px; color:var(--text-light); }

/* ---------- 围棋知识：目录 + 教学章节 ---------- */
.knowledge-layout{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:230px 1fr; gap:40px; align-items:start; }
.knowledge-toc{ position:sticky; top:110px; background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:20px; }
.knowledge-toc h4{ font-size:14px; color:var(--pine-800); margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid #e1ece7; }
.knowledge-toc ol{ list-style:none; counter-reset:toc; }
.knowledge-toc li{ counter-increment:toc; margin-bottom:2px; }
.knowledge-toc a{ display:block; padding:7px 10px; font-size:13px; color:var(--text-light); border-radius:4px; cursor:pointer; }
.knowledge-toc a::before{ content:counter(toc) ". "; color:var(--pine-400); }
.knowledge-toc a:hover{ background:var(--pine-50); color:var(--pine-700); }
.knowledge-toc a.active{ background:var(--pine-700); color:#fff; }
.knowledge-toc a.active::before{ color:rgba(255,255,255,.6); }

.article-section{ background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:32px 36px; margin-bottom:24px; scroll-margin-top:110px; }
.article-section .tag{ display:inline-block; font-size:12px; font-weight:700; color:var(--pine-500); background:var(--pine-50); padding:3px 12px; border-radius:12px; margin-bottom:12px; }
.article-section h3{ font-size:22px; color:var(--pine-800); margin-bottom:10px; letter-spacing:1px; }
.article-section .summary{ font-size:14px; color:var(--text-light); padding-left:14px; border-left:3px solid var(--gold); margin-bottom:20px; }
.article-section p{ font-size:15px; color:var(--text-dark); line-height:1.9; margin-bottom:14px; }

.go-diagram{ margin:22px 0; text-align:center; }
.go-diagram-svg{ width:100%; max-width:320px; height:auto; border-radius:6px; box-shadow:0 4px 14px rgba(18,59,48,.14); }
.go-diagram figcaption{ font-size:13px; color:var(--text-light); margin-top:12px; max-width:520px; margin-left:auto; margin-right:auto; line-height:1.7; }
.article-section .go-diagram-svg[viewBox^="0 0 4"]{ max-width:420px; }

/* ---------- 会员中心：我发布的信息 ---------- */
.tab-bar{ display:flex; gap:8px; border-bottom:1px solid #e1ece7; margin-bottom:18px; flex-wrap:wrap; }
.tab-btn{
  padding:9px 16px; background:none; border:none; border-bottom:2px solid transparent;
  font-size:14px; color:var(--text-light); cursor:pointer; font-family:inherit; margin-bottom:-1px;
}
.tab-btn:hover{ color:var(--pine-700); }
.tab-btn.active{ color:var(--pine-700); border-bottom-color:var(--pine-700); font-weight:700; }
.tab-btn .count{
  display:inline-block; min-width:18px; padding:0 5px; margin-left:5px;
  background:var(--pine-100); color:var(--pine-700); border-radius:9px; font-size:11px; line-height:18px; text-align:center;
}
.tab-btn.active .count{ background:var(--pine-700); color:#fff; }

.my-listing{ display:flex; gap:14px; padding:14px 0; border-bottom:1px solid #eef4f1; }
.my-listing:last-child{ border-bottom:none; }
.my-listing .thumb{ width:88px; height:66px; flex-shrink:0; border-radius:5px; overflow:hidden; background:var(--pine-100); }
.my-listing .thumb img{ width:100%; height:100%; object-fit:cover; }
.my-listing .info{ flex:1; min-width:0; }
.my-listing .info h5{ font-size:14px; color:var(--text-dark); margin-bottom:5px; }
.my-listing .info .meta{ font-size:12px; color:var(--text-light); }
.my-listing .info .note{ font-size:12px; margin-top:5px; }
.my-listing .state{ flex-shrink:0; align-self:flex-start; }
.state-tag{ font-size:11px; padding:3px 9px; border-radius:10px; white-space:nowrap; }
.state-pending{ background:#fbf3e3; color:#7a5a12; }
.state-active{ background:#e5f3ec; color:var(--pine-800); }
.state-rejected{ background:#fbeaea; color:#9c3a3a; }

/* ---------- 入驻列表 ---------- */
.directory-summary{ max-width:1180px; margin:0 auto 24px; font-size:14px; color:var(--text-light); }
.directory-summary strong{ color:var(--pine-700); font-size:18px; }
.directory-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1180px; margin:0 auto; }
.member-item{ background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:22px; display:flex; flex-direction:column; }
.member-item:hover{ border-color:var(--pine-500); box-shadow:0 8px 20px rgba(18,59,48,.10); }
.member-item .top{ display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.member-item .avatar{
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:radial-gradient(circle at 35% 30%, var(--pine-500), var(--pine-800));
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700;
}
.member-item h4{ font-size:16px; color:var(--pine-800); word-break:break-all; }
.verified-tag{ display:inline-flex; align-items:center; gap:3px; background:#e5f3ec; color:var(--pine-700); border:1px solid var(--pine-400); font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px; white-space:nowrap; }
.member-item .level{ font-size:12px; color:var(--text-light); margin-bottom:10px; }
.member-item .bio{ font-size:13px; color:var(--text-light); line-height:1.8; flex:1; margin-bottom:14px; }
.member-item .stats{ display:flex; gap:18px; padding:12px 0; border-top:1px dashed #d3e3db; border-bottom:1px dashed #d3e3db; margin-bottom:12px; }
.member-item .stats div{ font-size:12px; color:var(--text-light); }
.member-item .stats strong{ display:block; font-size:17px; color:var(--pine-700); }
.member-item .contact{ font-size:12px; color:var(--text-dark); word-break:break-all; }
.member-item .contact span{ color:var(--text-light); }

/* ---------- 二手棋具交易：左右分栏布局 ---------- */
.page-banner{
  background:
    linear-gradient(135deg, rgba(13,43,34,.9), rgba(26,77,62,.84)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 2px, transparent 2px 40px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 2px, transparent 2px 40px);
  color:#fff; padding:48px 20px;
}
.page-banner .inner{ max-width:1180px; margin:0 auto; }
.page-banner .en{ font-size:12px; color:var(--pine-400); letter-spacing:4px; text-transform:uppercase; margin-bottom:8px; }
.page-banner h2{ font-size:28px; letter-spacing:2px; margin-bottom:12px; }
.page-banner p{ font-size:14px; color:#dcece5; max-width:720px; }

.market-layout{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 300px; gap:32px; align-items:start; }

.filter-bar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; align-items:center; }
.filter-btn{ padding:8px 20px; border:1px solid #c9dbd2; background:#fff; border-radius:20px; font-size:13px; color:var(--text-dark); cursor:pointer; font-family:inherit; transition:.2s; }
.filter-btn:hover{ border-color:var(--pine-500); color:var(--pine-700); }
.filter-btn.active{ background:var(--pine-700); color:#fff; border-color:var(--pine-700); }
.filter-bar .spacer{ flex:1; }

.listing-row{ display:flex; gap:18px; background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:18px; margin-bottom:16px; cursor:pointer; transition:.2s; }
.listing-row:hover{ box-shadow:0 8px 20px rgba(18,59,48,.12); border-color:var(--pine-500); transform:translateY(-2px); }
.listing-row .thumb{ width:160px; height:120px; flex-shrink:0; border-radius:6px; overflow:hidden; background:var(--pine-100); position:relative; }
.listing-row .thumb img{ width:100%; height:100%; object-fit:cover; }
.listing-row .thumb .card-badge{ position:absolute; top:6px; right:6px; background:#a94442; color:#fff; font-size:11px; padding:2px 8px; border-radius:10px; }
.listing-row .body{ flex:1; min-width:0; }
.listing-row .meta-line{ font-size:12px; color:var(--text-light); margin-bottom:8px; }
.listing-row .meta-line .sep{ margin:0 8px; color:#c9dbd2; }
.listing-row h4{ font-size:16px; color:var(--text-dark); margin-bottom:8px; }
.listing-row .desc{ font-size:13px; color:var(--text-light); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.listing-row .price{ color:var(--pine-700); font-weight:700; font-size:16px; margin-top:8px; }

.market-side{ display:flex; flex-direction:column; gap:18px; }
.side-card{ background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:22px; }
.side-card h4{ font-size:15px; color:var(--pine-800); margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid #e1ece7; }
.side-card p{ font-size:13px; color:var(--text-light); line-height:1.8; }
.side-card.highlight{ background:var(--pine-800); border-color:var(--pine-800); }
.side-card.highlight h4{ color:#fff; border-bottom-color:rgba(255,255,255,.15); }
.side-card.highlight p{ color:#cfe3da; margin-bottom:16px; }
.side-card.highlight .btn{ display:block; text-align:center; padding:10px; font-size:14px; }

.listing-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.listing-card{ background:#fff; border:1px solid #e1ece7; border-radius:6px; overflow:hidden; cursor:pointer; transition:.2s; }
.listing-card:hover{ transform:translateY(-4px); box-shadow:0 10px 24px rgba(18,59,48,.15); border-color:var(--pine-500); }
.listing-card .photo{ height:160px; background:var(--pine-100); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.listing-card .photo img{ width:100%; height:100%; object-fit:cover; }
.listing-card .card-badge{ position:absolute; top:8px; right:8px; background:#a94442; color:#fff; font-size:11px; padding:2px 8px; border-radius:10px; }
.listing-card .info{ padding:14px 16px; }
.listing-card .info h4{ font-size:14px; margin:6px 0; color:var(--text-dark); }
.listing-card .info .price{ color:var(--pine-700); font-weight:700; font-size:17px; }
.listing-card .info .meta{ font-size:12px; color:var(--text-light); margin-top:4px; }
.detail-gallery img{ width:100%; border-radius:6px; margin-bottom:8px; }
.comment-item{ padding:10px 0; border-bottom:1px solid #e1ece7; }
.comment-item .author{ font-weight:600; color:var(--text-dark); }
.comment-item .time{ color:var(--text-light); font-size:12px; margin-left:8px; }
.comment-item p{ margin-top:4px; font-size:13px; }
.code-btn{ padding:9px 18px; background:var(--pine-600); color:#fff; border:none; border-radius:4px; font-size:13px; font-weight:600; cursor:pointer; }
.code-btn:hover{ background:var(--pine-700); }
.code-btn.danger{ background:#a94442; }
.code-btn.danger:hover{ background:#8a3634; }

.membership-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:820px; margin:0 auto; }
.tier-card{ background:#fff; border:1px solid #e1ece7; border-radius:8px; padding:28px; text-align:center; }
.tier-card.pro{ border-color:var(--gold); box-shadow:0 8px 24px rgba(201,161,90,.15); }
.tier-card h4{ font-size:18px; color:var(--pine-800); margin-bottom:8px; }
.tier-card .price{ font-size:26px; font-weight:700; color:var(--pine-700); margin:10px 0; }
.tier-card .price span{ font-size:13px; color:var(--text-light); font-weight:400; }
.tier-card ul{ text-align:left; font-size:13px; color:var(--text-light); margin-top:14px; }
.tier-card ul li{ padding:4px 0; }
.tier-card .badge{ display:inline-block; background:var(--gold); color:#2a2110; font-size:11px; font-weight:700; padding:2px 10px; border-radius:10px; margin-bottom:8px; }

.register-section{ background:#fff; }
.register-wrap{ max-width:720px; margin:0 auto; background:var(--pine-50); border:1px solid #dbe9e2; border-radius:8px; padding:40px; }
.notice{ background:#fbf3e3; border:1px solid #ecd7a3; color:#7a5a12; font-size:13px; padding:12px 16px; border-radius:4px; margin-bottom:26px; }
.form-row{ display:flex; gap:16px; margin-bottom:18px; }
.form-group{ flex:1; }
.form-group.full{ flex:1 1 100%; }
.form-group label{ display:block; font-size:13px; color:var(--text-dark); margin-bottom:6px; font-weight:600; }
.form-group label .req{ color:#c0392b; }
.form-group input, .form-group select, .form-group textarea{ width:100%; padding:10px 12px; border:1px solid #c9dbd2; border-radius:4px; font-size:14px; background:#fff; color:var(--text-dark); font-family:inherit; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{ outline:none; border-color:var(--pine-500); box-shadow:0 0 0 2px rgba(45,122,97,.15); }
.captcha-row{ display:flex; gap:10px; align-items:stretch; }
.captcha-row input{ flex:1; min-width:0; }
.captcha-row img{ height:42px; width:auto; border:1px solid #c9dbd2; border-radius:4px; cursor:pointer; background:#fff; flex-shrink:0; }
.form-group .hint{ font-size:11px; color:var(--text-light); margin-top:5px; line-height:1.5; }

.agree-row{ display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-light); margin:18px 0 24px; }
.agree-row a{ color:var(--pine-600); font-weight:600; text-decoration:underline; }
.agree-row a:hover{ color:var(--pine-800); }
.switch-link{ text-align:center; font-size:13px; color:var(--text-light); margin-top:16px; }
.switch-link a{ color:var(--pine-600); font-weight:600; text-decoration:underline; cursor:pointer; }

.modal-overlay{ display:none; position:fixed; inset:0; background:rgba(13,43,34,.55); z-index:1000; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.open{ display:flex; }
.modal-box{ background:#fff; width:100%; max-width:640px; max-height:80vh; border-radius:8px; display:flex; flex-direction:column; box-shadow:0 20px 50px rgba(0,0,0,.35); }
.modal-header{ padding:18px 24px; border-bottom:1px solid #e1ece7; display:flex; align-items:center; justify-content:space-between; }
.modal-header h4{ font-size:17px; color:var(--pine-800); }
.modal-close{ background:none; border:none; font-size:20px; line-height:1; color:var(--text-light); cursor:pointer; }
.modal-close:hover{ color:var(--pine-700); }
.modal-body{ padding:20px 24px; overflow-y:auto; font-size:13px; color:var(--text-dark); }
.modal-body h5{ font-size:14px; color:var(--pine-700); margin:16px 0 6px; }
.modal-body h5:first-child{ margin-top:0; }
.modal-body p{ margin-bottom:8px; color:var(--text-light); }
.modal-footer{ padding:14px 24px; border-top:1px solid #e1ece7; text-align:right; }
.modal-footer button{ padding:9px 22px; background:var(--pine-700); color:#fff; border:none; border-radius:4px; font-size:13px; cursor:pointer; }
.modal-footer button:hover{ background:var(--pine-800); }
.submit-btn{ width:100%; padding:13px; background:var(--pine-700); color:#fff; border:none; border-radius:4px; font-size:15px; font-weight:700; letter-spacing:2px; cursor:pointer; transition:.2s; }
.submit-btn:hover{ background:var(--pine-800); }
.form-msg{ display:none; margin-top:14px; padding:10px 14px; border-radius:4px; font-size:13px; }
.form-msg.ok{ background:#e5f3ec; color:var(--pine-800); border:1px solid var(--pine-400); }
.form-msg.err{ background:#fbeaea; color:#9c3a3a; border:1px solid #e3b0b0; }

.member-card{ max-width:520px; margin:0 auto; background:var(--pine-50); border:1px solid #dbe9e2; border-radius:8px; padding:36px; }
.member-card .row{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed #d3e3db; font-size:14px; }
.member-card .row span:first-child{ color:var(--text-light); }
.member-card .row span:last-child{ font-weight:600; color:var(--text-dark); }
.member-card .tier-tag{ display:inline-block; background:var(--pine-600); color:#fff; font-size:12px; padding:2px 10px; border-radius:10px; }

footer{ background:var(--pine-900); border-top:1px solid rgba(255,255,255,.08); color:#93a9a0; font-size:12px; padding:40px 20px 22px; margin-top:auto; }
footer a{ color:#93a9a0; }
footer a:hover{ color:var(--gold); }
.footer-inner{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr; gap:50px; text-align:left; padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:20px; }
.footer-about h4, .footer-contact h4{ color:#fff; font-size:15px; margin-bottom:12px; letter-spacing:1px; }
.footer-about p{ font-size:12px; color:#93a9a0; line-height:1.8; }
.footer-contact ul li{ font-size:12px; color:#93a9a0; margin-bottom:8px; padding-left:16px; position:relative; }
.footer-contact ul li::before{ content:"◆"; position:absolute; left:0; top:1px; color:var(--gold); font-size:9px; }
.footer-beian{ text-align:center; }
.footer-beian p{ margin:4px 0; }

@media (max-width:900px){
  .hero-inner{ flex-direction:column; }
  nav ul{ flex-wrap:wrap; }
  .knowledge-grid{ grid-template-columns:repeat(2,1fr); }
  .equip-grid{ grid-template-columns:repeat(2,1fr); }
  .listing-grid{ grid-template-columns:repeat(2,1fr); }
  .directory-grid{ grid-template-columns:repeat(2,1fr); }
  .knowledge-layout{ grid-template-columns:1fr; }
  .knowledge-toc{ position:static; }
  .article-section{ padding:24px 20px; }
  .market-layout{ grid-template-columns:1fr; }
  .listing-row{ flex-direction:column; }
  .listing-row .thumb{ width:100%; height:180px; }
  .membership-grid{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; gap:28px; }
  .form-row{ flex-direction:column; gap:0; }
}
