/* М’який контур — decorative frame around semantic article text. */
.news-grid .news-card.news-card--text {
  --card-accent: var(--forest);
  --frame-mid: color-mix(in srgb, var(--card-accent) 56%, transparent);
  --frame-faint: color-mix(in srgb, var(--card-accent) 24%, transparent);
  --frame-wash: color-mix(in srgb, var(--card-accent) 7%, transparent);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: start;
  gap: 0;
  min-width: 0;
  padding: 30px;
  border: 1px solid var(--frame-faint);
  background-image: radial-gradient(ellipse at 100% 0, var(--frame-wash), transparent 65%);
  border-radius:30px 30px 12px 12px; border-bottom:3px solid var(--frame-mid); background-image:radial-gradient(ellipse at 50% 0,var(--frame-wash),transparent 65%);
}
.news-grid .news-card.news-card--text::before, .news-grid .news-card.news-card--text::after {content: ''; position: absolute; pointer-events: none; box-sizing: border-box;}
.news-grid .news-card.news-card--text::before {left:calc(50% - 20px); top:9px; width:40px; height:3px; border-radius:3px; background:var(--frame-mid);}
.news-grid .news-card.news-card--text::after {left:15px; bottom:12px; width:5px; height:5px; border-radius:50%; background:var(--frame-mid);}
.news-grid .news-card.news-card--text > .news-copy {padding: 30px;}
.news-card--text h3 {font-size: clamp(22px, 2vw, 27px); line-height: 1.3; overflow-wrap: anywhere;}
.news-grid .news-card.news-card--text:focus-within {outline: 2px solid var(--card-accent); outline-offset: 3px;}
.news-card--text > :is(.news-meta, h3, p, .text-link) {margin-left: 0; margin-right: 0;}
.news-card--text > .news-meta:first-child {margin-top: 0;}

@media (max-width: 540px) {
  .news-grid .news-card.news-card--text > .news-copy {padding: 26px;}
  .news-card--text h3 {font-size: 24px;}
}
