.news-page { background: #f5f7f3; min-height: 100vh; }
.news-topbar { display: grid; grid-template-columns: 1fr auto 1fr; position: absolute; width: 100%; }
.news-topbar .news-back { color: var(--forest-mid); font-size: 12px; font-weight: 800; justify-self: center; text-decoration: none; }
.news-topbar nav { justify-self: end; }
.news-hero { background: radial-gradient(circle at 77% 28%,rgba(179,241,201,.44),transparent 27%),linear-gradient(135deg,#f8faf6,#e7f2e9); min-height: 510px; overflow: hidden; padding: 170px clamp(24px,8vw,130px) 90px; }
.news-hero > div { max-width: 950px; }
.news-hero h1 { font-size: clamp(62px,9vw,126px); margin: 20px 0 26px; }
.news-hero p:last-child { color: #526158; font-size: clamp(17px,1.5vw,21px); line-height: 1.7; max-width: 760px; }
.news-feed { margin: 0 auto; max-width: 1380px; padding: 88px clamp(24px,6vw,88px) 110px; }
.news-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 28px; }
.news-heading p { margin: 0; }
.news-heading > span { color: #9ba89f; font-size: 11px; font-weight: 850; }
.news-featured { background: white; border: 1px solid var(--line); border-radius: 28px; display: grid; grid-template-columns: minmax(0,1.06fr) minmax(360px,.94fr); overflow: hidden; }
.news-image { background: var(--forest); display: block; min-height: 460px; overflow: hidden; }
.news-image img { display: block; height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.news-image:hover img { transform: scale(1.015); }
.news-copy { align-self: center; padding: clamp(38px,5vw,74px); }
.news-meta { color: var(--muted); display: flex; font-size: 10px; font-weight: 800; gap: 18px; letter-spacing: .08em; text-transform: uppercase; }
.news-meta span + span::before { content: "·"; margin-right: 18px; }
.news-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 20px; }
.news-tags span { background: var(--mint); border-radius: 999px; color: var(--forest); font-size: 9px; font-weight: 850; letter-spacing: .06em; padding: 8px 11px; text-transform: uppercase; }
.news-copy h2 { font-size: clamp(32px,3.3vw,52px); line-height: 1.03; margin: 0 0 22px; }
.news-copy h2 a { text-decoration: none; }
.news-copy > p { color: var(--muted); font-size: 14px; line-height: 1.75; }
.news-read { align-items: center; display: inline-flex; font-size: 12px; font-weight: 850; gap: 18px; margin-top: 16px; text-decoration: none; }
.news-read span { color: var(--rust); }
.archive-heading { margin-top: 82px; }
.news-grid { display: grid; gap: 24px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.news-card { background: white; border: 1px solid var(--line); border-radius: 24px; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.news-card .news-image { aspect-ratio: 16/10; min-height: 0; }
.news-card .news-copy { align-self: stretch; display: flex; flex: 1; flex-direction: column; padding: 30px; }
.news-card .news-tags { margin: 20px 0 16px; }
.news-card .news-copy h2 { font-size: clamp(25px,2vw,34px); line-height: 1.08; margin-bottom: 18px; }
.news-card .news-copy > p { font-size: 13px; line-height: 1.7; }
.news-card .news-read { margin-top: auto; padding-top: 14px; }
.news-empty { background: white; border: 1px solid var(--line); border-radius: 24px; padding: 50px; text-align: center; }
.news-footer { align-items: center; background: var(--forest-deep); color: #9eb2a5; display: flex; font-size: 11px; justify-content: space-between; padding: 32px clamp(24px,6vw,88px); }
.news-footer nav { display: flex; gap: 18px; }
.news-footer a { color: white; font-weight: 800; text-decoration: none; }
.article-shell { margin: 0 auto; max-width: 1120px; min-height: 100vh; padding: 164px 28px 120px; }
.article-heading { margin: 0 auto 58px; max-width: 930px; text-align: center; }
.article-heading h1 { font-size: clamp(52px,7vw,88px); margin: 22px 0 30px; }
.article-lead { color: #526158; font-size: clamp(18px,1.7vw,22px); line-height: 1.65; }
.article-heading .news-meta { justify-content: center; margin-top: 28px; }
.article-cover { background: var(--forest); border-radius: 30px; box-shadow: var(--shadow); margin: 0 0 76px; overflow: hidden; }
.article-cover img { display: block; height: auto; width: 100%; }
.article-body { margin: 0 auto; max-width: 780px; }
.article-body section { border-top: 1px solid var(--line); padding: 48px 0 30px; }
.article-body h2 { font-size: clamp(30px,3vw,42px); line-height: 1.1; margin-bottom: 25px; }
.article-body p { color: #536158; font-size: 17px; line-height: 1.82; margin-bottom: 20px; }
.article-body ul { background: white; border: 1px solid var(--line); border-radius: 20px; color: #425349; display: grid; font-size: 16px; gap: 13px; line-height: 1.65; margin: 28px 0 34px; padding: 26px 32px 26px 50px; }
.article-cta { background: linear-gradient(145deg,var(--forest),var(--forest-deep)); border-radius: 26px; color: white; margin-top: 66px; padding: clamp(32px,5vw,56px); }
.article-cta > p { color: #c2d2c7; font-size: 16px; line-height: 1.65; margin-bottom: 30px; max-width: 700px; }
.article-cta > div { display: flex; flex-wrap: wrap; gap: 12px; }
.article-cta .button.primary { background: var(--mint-bright); border-color: var(--mint-bright); color: var(--forest); }
.article-cta .button.secondary { background: transparent; border-color: rgba(255,255,255,.24); color: white; }
@media (max-width: 900px) {
  .news-topbar { grid-template-columns: 1fr auto; }
  .news-topbar .news-back { display: none; }
  .news-featured { grid-template-columns: 1fr; }
  .news-image { min-height: 0; }
  .news-grid { grid-template-columns: 1fr; }
  .news-hero { min-height: 430px; padding-top: 138px; }
  .news-footer { align-items: flex-start; flex-direction: column; gap: 14px; }
}
@media (max-width: 600px) {
  .news-topbar { height: 66px; padding: 0 18px; }
  .news-topbar .button { display: none; }
  .news-copy { padding: 34px 26px 44px; }
  .archive-heading { margin-top: 58px; }
  .article-shell { padding: 130px 20px 90px; }
  .article-heading { text-align: left; }
  .article-heading .news-meta { justify-content: flex-start; }
  .article-cover { border-radius: 18px; margin-bottom: 50px; }
  .article-body p { font-size: 16px; }
  .article-cta > div { align-items: stretch; flex-direction: column; }
}
