
:root{
  --hub-bg:#f4f7fb;
  --hub-card:#ffffff;
  --hub-text:#10243e;
  --hub-muted:#58708a;
  --hub-line:#d9e4f0;
  --hub-brand:#0d6efd;
  --hub-brand-soft:#e9f2ff;
  --hub-radius:20px;
  --hub-shadow:0 12px 30px rgba(13,44,84,.08);
}
body{background:var(--hub-bg); color:var(--hub-text);}
.hub-main{max-width:1180px; margin:0 auto; padding:5rem 1rem 3rem;}
.hub-hero{background:linear-gradient(135deg,#eef5ff,#ffffff); border:1px solid var(--hub-line); border-radius:24px; padding:1.4rem 1.4rem 1.2rem; box-shadow:var(--hub-shadow); margin-bottom:1.1rem;}
.hub-hero h1{font-size:1.9rem; margin:0 0 .35rem; letter-spacing:-.03em;}
.hub-hero p{margin:.2rem 0 0; color:var(--hub-muted); line-height:1.7;}
.hub-summary{display:grid; gap:.8rem; margin:1rem 0 1.2rem;}
@media(min-width:860px){.hub-summary{grid-template-columns:repeat(3,1fr);}}
.summary-card{background:var(--hub-card); border:1px solid var(--hub-line); border-radius:18px; padding:1rem 1rem .95rem; box-shadow:var(--hub-shadow);}
.summary-card h2,.summary-card h3{font-size:1rem; margin:0 0 .35rem;}
.summary-card p{margin:0; color:var(--hub-muted); line-height:1.6; font-size:.95rem;}
.card-grid{display:grid; gap:1rem;}
@media(min-width:760px){.card-grid.two{grid-template-columns:repeat(2,1fr);} .card-grid.three{grid-template-columns:repeat(3,1fr);} }
@media(min-width:1100px){.card-grid.four{grid-template-columns:repeat(4,1fr);} }
.guide-card,.news-tile{background:var(--hub-card); border:1px solid var(--hub-line); border-radius:20px; padding:1rem 1rem .95rem; box-shadow:var(--hub-shadow); display:flex; flex-direction:column; gap:.6rem; min-height:220px;}
.guide-card:hover,.news-tile:hover{transform:translateY(-2px); transition:.15s ease;}
.badge-line{display:flex; flex-wrap:wrap; gap:.4rem;}
.chip{display:inline-flex; align-items:center; padding:.22rem .65rem; border-radius:999px; background:var(--hub-brand-soft); color:#104a96; font-size:.78rem; font-weight:700;}
.guide-card h3,.news-tile h3{font-size:1.06rem; line-height:1.45; margin:0; letter-spacing:-.02em;}
.guide-card p,.news-tile p{margin:0; color:var(--hub-muted); line-height:1.65; font-size:.94rem;}
.card-footer{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding-top:.35rem;}
.card-link{display:inline-flex; align-items:center; gap:.35rem; text-decoration:none; font-weight:700; color:var(--hub-brand);}
.card-link:hover{text-decoration:underline;}
.hub-section{margin:1.2rem 0 1.5rem;}
.hub-section h2{font-size:1.25rem; margin:0 0 .35rem;}
.hub-section > p{color:var(--hub-muted); line-height:1.7; margin:0 0 .85rem;}
.filter-note{font-size:.88rem; color:var(--hub-muted);}
.article-wrap{max-width:960px; margin:0 auto; padding:5rem 1rem 3rem;}
.content-hero{background:linear-gradient(135deg,#edf5ff,#fff); border:1px solid var(--hub-line); border-radius:24px; padding:1.4rem 1.35rem; box-shadow:var(--hub-shadow);}
.content-hero h1{margin:.45rem 0 .5rem; font-size:2rem; line-height:1.35; letter-spacing:-.03em;}
.content-hero .lead{font-size:1rem; color:var(--hub-muted); line-height:1.75; margin:0;}
.content-meta{margin:.85rem 0 1rem; color:var(--hub-muted); font-size:.92rem;}
.highlight-box{background:#fff; border:1px solid var(--hub-line); border-radius:18px; padding:1rem 1.05rem; margin:0 0 1rem; box-shadow:var(--hub-shadow);}
.highlight-box h2{font-size:1.03rem; margin:0 0 .35rem;}
.highlight-box p{margin:0; color:var(--hub-muted); line-height:1.7;}
.article-section{background:#fff; border:1px solid var(--hub-line); border-radius:18px; padding:1rem 1.05rem; margin-bottom:1rem; box-shadow:var(--hub-shadow);}
.article-section h2{font-size:1.08rem; margin:0 0 .45rem;}
.article-section p{margin:0 0 .7rem; line-height:1.82;}
.link-grid{display:grid; gap:.8rem;}
@media(min-width:760px){.link-grid{grid-template-columns:repeat(3,1fr);}}
.link-card{display:flex; flex-direction:column; gap:.25rem; text-decoration:none; border:1px solid var(--hub-line); border-radius:16px; padding:.9rem; background:#f8fbff; color:var(--hub-text);}
.link-card:hover{border-color:#bcd3ee;}
.link-card span{color:var(--hub-muted); font-size:.9rem; line-height:1.55;}
.source-box{font-size:.93rem; color:var(--hub-muted);}
.source-box a{color:var(--hub-brand);}
.news-stamp{font-size:.82rem; color:var(--hub-muted);}
