:root {
  --home-ink: #17211b;
  --home-muted: #68736c;
  --home-green: #0d6336;
  --home-green-dark: #084829;
  --home-cream: #f5f1e8;
  --home-line: #dfe4df;
  --home-red: #ae2f28;
}

body { background: #f3f4f6; color: var(--home-ink); }
.home-page { width: 100%; }
.home-shell { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
.home-header { background: #fff; border-bottom: 1px solid var(--home-line); }
.home-header__top { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.home-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--home-ink); text-decoration: none; }
.home-brand__mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50% 50% 50% 12px; background: var(--home-green); color: #fff; font: 700 23px/1 serif; }
.home-brand strong { display: block; font: 800 26px/1.1 Georgia, "Noto Serif SC", serif; letter-spacing: .08em; }
.home-brand small { display: block; margin-top: 5px; color: var(--home-muted); font-size: 11px; letter-spacing: .12em; }
.home-account { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.home-account a { color: #344139; padding: 8px 10px; text-decoration: none; border-radius: 6px; }
.home-account a:hover { color: var(--home-green); background: #f0f5f1; }
.home-account a span { margin-left: 6px; }
.home-account .home-account__register { color: #fff; background: var(--home-green); }
.home-account .home-account__register:hover { color: #fff; background: var(--home-green-dark); }
.home-header__nav-wrap { background: var(--home-green-dark); }
.home-primary-nav { display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.home-primary-nav::-webkit-scrollbar { display: none; }
.home-primary-nav a { flex: 0 0 auto; color: rgba(255,255,255,.82); padding: 13px 16px 11px; border-bottom: 3px solid transparent; text-decoration: none; font-size: 15px; }
.home-primary-nav a:hover, .home-primary-nav a.is-active { color: #fff; border-bottom-color: #e9c86f; background: rgba(255,255,255,.06); }
.home-messages { padding-block: 12px 0; }
.home-message { padding: 10px 14px; border-radius: 6px; background: #eaf4ed; border: 1px solid #c8dfcf; }

.home-quick { background: var(--home-cream); border-bottom: 1px solid #e3ddd0; }
.home-quick__inner { min-height: 54px; display: flex; align-items: center; gap: 10px; overflow-x: auto; }
.home-quick strong { flex: 0 0 auto; color: var(--home-green-dark); font-size: 13px; letter-spacing: .08em; }
.home-quick a { flex: 0 0 auto; padding: 7px 12px; border: 1px solid #d7d0c2; border-radius: 999px; color: #4c554e; background: rgba(255,255,255,.65); font-size: 13px; text-decoration: none; }
.home-quick a:hover { border-color: var(--home-green); color: var(--home-green); }
.home-content { padding-block: 36px 56px; }
.home-section-heading, .home-panel-heading, .home-side-card__heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.home-section-heading { margin-bottom: 18px; }
.home-section-heading h1, .home-section-heading h2 { margin: 2px 0 0; font: 800 28px/1.15 Georgia, "Noto Serif SC", serif; }
.home-section-heading > a, .home-side-card__heading a { color: var(--home-green); text-decoration: none; font-size: 13px; }
.home-kicker { color: var(--home-red); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.home-lead { display: grid; grid-template-columns: minmax(280px, 43%) 1fr; overflow: hidden; min-height: 350px; background: #fff; border: 1px solid var(--home-line); box-shadow: 0 12px 35px rgba(33,51,40,.08); }
.home-lead__visual { position: relative; display: flex; flex-direction: column; justify-content: end; padding: 32px; overflow: hidden; color: #fff; text-decoration: none; background: linear-gradient(145deg, rgba(4,37,24,.2), rgba(4,37,24,.86)), radial-gradient(circle at 70% 20%, #9eb79f, transparent 35%), #315e47; }
.home-lead__visual::before, .home-lead__visual::after { content: ""; position: absolute; width: 240px; height: 240px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; top: -70px; right: -60px; }
.home-lead__visual::after { width: 150px; height: 150px; top: 10px; right: 25px; }
.home-lead__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.home-lead__visual.has-image::before { inset: 0; width: auto; height: auto; border: 0; border-radius: 0; z-index: 1; background: linear-gradient(to top, rgba(5,28,18,.88), rgba(5,28,18,.08) 70%); }
.home-lead__visual.has-image::after { display: none; }
.home-lead__visual.has-image:hover img { transform: scale(1.025); }
.home-lead__visual span, .home-lead__visual strong { position: relative; z-index: 2; }
.home-lead__visual span { font-size: 12px; letter-spacing: .2em; opacity: .75; }
.home-lead__visual strong { margin-top: 7px; font: 700 32px/1.15 Georgia, "Noto Serif SC", serif; }
.home-lead__body { display: flex; flex-direction: column; justify-content: center; align-items: start; padding: clamp(28px, 5vw, 58px); }
.home-label { color: var(--home-red); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.home-lead h2 { margin: 12px 0 15px; font: 800 clamp(25px, 3vw, 38px)/1.28 Georgia, "Noto Serif SC", serif; }
.home-lead h2 a, .home-news-item h3 a, .home-ranked-list a { color: inherit; text-decoration: none; }
.home-lead h2 a:hover, .home-news-item h3 a:hover, .home-ranked-list a:hover { color: var(--home-green); }
.home-lead__body > p { margin: 0; color: #37423b; font-size: 15px; line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.home-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 14px; color: #869087; font-size: 12px; }
.home-meta span + span::before { content: "·"; margin-right: 14px; color: #b7bdb8; }
.home-discuss { display: inline-flex; margin-top: 24px; padding: 10px 16px; background: var(--home-green); color: #fff; border-radius: 4px; text-decoration: none; font-size: 13px; }
.home-discuss:hover { background: var(--home-green-dark); }
.home-original { margin: 11px 0 0 2px; color: var(--home-muted); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.home-original:hover { color: var(--home-green); }

.home-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; margin-top: 38px; align-items: start; }
.home-news-panel, .home-side-card { background: #fff; border: 1px solid var(--home-line); }
.home-panel-heading { padding: 20px 22px 14px; border-bottom: 1px solid var(--home-line); }
.home-panel-heading h2, .home-side-card h2 { margin: 0; font: 800 20px/1.2 Georgia, "Noto Serif SC", serif; }
.home-tabs { display: flex; gap: 4px; overflow-x: auto; }
.home-tabs a { color: var(--home-muted); padding: 7px 10px; border-radius: 4px; text-decoration: none; font-size: 13px; white-space: nowrap; }
.home-tabs a:hover, .home-tabs a.is-active { color: #fff; background: var(--home-green); }
.home-news-item { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 21px 22px; border-bottom: 1px solid #edf0ed; }
.home-news-item__category { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--home-green); background: #edf5ef; font-size: 12px; font-weight: 800; }
.home-news-item h3 { margin: 0; font: 700 18px/1.45 Georgia, "Noto Serif SC", serif; }
.home-news-item .home-meta { margin-top: 6px; }
.home-news-item p { margin: 10px 0 0; color: #424d46; font-size: 13px; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.home-load-more { display: block; margin: 20px auto; width: fit-content; padding: 10px 24px; border: 1px solid #cad3cc; color: var(--home-green); text-decoration: none; font-size: 13px; }
.home-load-more:hover { border-color: var(--home-green); background: #f1f6f2; }
.home-sidebar { display: grid; gap: 20px; }
.home-side-card { padding: 20px; }
.home-side-card__heading { padding-bottom: 13px; border-bottom: 2px solid var(--home-green); }
.home-ranked-list { list-style: none; padding: 0; margin: 5px 0 0; }
.home-ranked-list li { display: grid; grid-template-columns: 27px 1fr; gap: 9px; padding: 13px 0; border-bottom: 1px solid #edf0ed; }
.home-ranked-list li > span { color: #aab1ac; font: 700 15px/1.5 Georgia, serif; }
.home-ranked-list li:first-child > span, .home-ranked-list li:nth-child(2) > span, .home-ranked-list li:nth-child(3) > span { color: var(--home-red); }
.home-ranked-list a { display: block; font-size: 14px; line-height: 1.45; }
.home-ranked-list small { display: block; margin-top: 4px; color: #909991; font-size: 11px; }
.home-comment-list blockquote { margin: 0; padding: 15px 0; border-bottom: 1px solid #edf0ed; }
.home-comment-list blockquote a { color: #111; text-decoration: none; font: 500 14px/1.7 Georgia, "Noto Serif SC", serif; }
.home-comment-list blockquote a:hover { color: var(--home-green); }
.home-comment-list footer { margin-top: 6px; color: #919a93; font-size: 11px; }
.home-tag-list { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 16px; }
.home-tag-list a { padding: 7px 10px; color: #566159; background: #f3f5f2; text-decoration: none; font-size: 12px; }
.home-tag-list a:hover { color: #fff; background: var(--home-green); }
.home-empty { padding: 24px; color: var(--home-muted); font-size: 14px; }

.home-forums { margin-top: 44px; }
.home-forum-grid { display: grid; grid-template-columns: repeat(6, 1fr); background: #fff; border: 1px solid var(--home-line); }
.home-forum-grid a { min-width: 0; padding: 22px 18px; border-right: 1px solid var(--home-line); color: var(--home-ink); text-decoration: none; }
.home-forum-grid a:last-child { border-right: 0; }
.home-forum-grid a:hover { color: #fff; background: var(--home-green); }
.home-forum-grid strong, .home-forum-grid span { display: block; }
.home-forum-grid strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 16px/1.3 Georgia, "Noto Serif SC", serif; }
.home-forum-grid span { margin-top: 8px; color: #879088; font-size: 11px; }
.home-forum-grid a:hover span { color: rgba(255,255,255,.72); }
.home-footer { margin-top: auto; background: #14251c; color: rgba(255,255,255,.66); }
.home-footer__inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 12px; }
.home-footer__inner p { margin: 0; }
.home-footer nav { display: flex; flex-wrap: wrap; gap: 18px; }
.home-footer a { color: inherit; text-decoration: none; }
.home-footer a:hover { color: #fff; }

@media (max-width: 900px) {
  .home-layout { grid-template-columns: 1fr; }
  .home-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-sidebar .home-side-card:last-child { grid-column: 1 / -1; }
  .home-forum-grid { grid-template-columns: repeat(3, 1fr); }
  .home-forum-grid a:nth-child(3) { border-right: 0; }
  .home-forum-grid a:nth-child(-n+3) { border-bottom: 1px solid var(--home-line); }
}

@media (max-width: 640px) {
  .home-shell { width: min(100% - 24px, 1180px); }
  .home-header__top { min-height: 66px; }
  .home-brand__mark { width: 38px; height: 38px; font-size: 20px; }
  .home-brand strong { font-size: 21px; }
  .home-brand small, .home-account a span, .home-account__register { display: none; }
  .home-account { gap: 0; }
  .home-primary-nav a { padding: 11px 13px 9px; font-size: 14px; }
  .home-quick__inner { min-height: 50px; }
  .home-content { padding-block: 25px 40px; }
  .home-section-heading h1, .home-section-heading h2 { font-size: 24px; }
  .home-lead { grid-template-columns: 1fr; }
  .home-lead__visual { min-height: 180px; padding: 22px; }
  .home-lead__visual strong { font-size: 26px; }
  .home-lead__body { padding: 24px 20px 27px; }
  .home-lead h2 { font-size: 25px; }
  .home-layout { margin-top: 26px; }
  .home-panel-heading { align-items: start; flex-direction: column; padding: 17px 16px 12px; }
  .home-tabs { width: 100%; }
  .home-news-item { grid-template-columns: 36px minmax(0, 1fr); gap: 11px; padding: 18px 16px; }
  .home-news-item__category { width: 34px; height: 34px; font-size: 10px; }
  .home-news-item h3 { font-size: 16px; }
  .home-sidebar { grid-template-columns: 1fr; }
  .home-sidebar .home-side-card:last-child { grid-column: auto; }
  .home-forum-grid { grid-template-columns: repeat(2, 1fr); }
  .home-forum-grid a, .home-forum-grid a:nth-child(3) { border-right: 1px solid var(--home-line); border-bottom: 1px solid var(--home-line); }
  .home-forum-grid a:nth-child(even) { border-right: 0; }
  .home-forum-grid a:nth-last-child(-n+2) { border-bottom: 0; }
  .home-footer__inner { padding-block: 22px; align-items: start; flex-direction: column; }
}
