/* З’єднані кути — 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:10px; border-color:var(--frame-faint);
}
.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:5px; top:5px; width:22px; height:22px; border-top:3px solid var(--frame-mid); border-left:3px solid var(--card-accent); border-radius:5px 0 0;}
.news-grid .news-card.news-card--text::after {right:5px; bottom:5px; width:22px; height:22px; border-right:3px solid var(--frame-mid); border-bottom:3px solid var(--card-accent); border-radius:0 0 5px;}
.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;}
}
