/* Цифровий контур — decorative frame around semantic article text. */
.news-grid .news-card.news-card--text {
  --card-accent: var(--primary);
  --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: 0;
  border: 1px solid var(--frame-faint);
  background-image: radial-gradient(ellipse at 100% 0, var(--frame-wash), transparent 65%);
  border-radius:8px; border-top-color:var(--frame-mid); border-left:2px solid var(--card-accent);
}
.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:8px; top:9px; width:4px; height:4px; background:var(--card-accent); box-shadow:7px 0 0 var(--frame-mid),14px 0 0 var(--frame-faint);}
.news-grid .news-card.news-card--text::after {right:0; top:28px; bottom:28px; width:3px; background:repeating-linear-gradient(180deg,var(--frame-mid) 0 12px,transparent 12px 20px);}
.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;}

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