/* Циркулярний контур — 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:38px 6px 38px 6px; border-color:var(--frame-mid); background-image:linear-gradient(140deg,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 {inset:7px; border:1px solid var(--frame-faint); border-left-color:transparent; border-bottom-color:transparent; border-radius:32px 2px 32px 2px;}
.news-grid .news-card.news-card--text::after {left:0; bottom:32px; width:3px; height:42px; border-radius:0 3px 3px 0; background:var(--card-accent);}
.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;}
}
