.gns-news-panel {
  --gns-accent: #9f1d1d;
  --gns-bg: #ffffff;
  --gns-title: #111111;
  --gns-text: #3a3a3a;
  --gns-title-font: Georgia, "Times New Roman", serif;
  --gns-body-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gns-title-size: 34px;
  --gns-card-title-size: 22px;
  --gns-excerpt-size: 15px;
  --gns-meta-size: 12px;
  --gns-title-weight: 700;
  --gns-radius: 0px;
  --gns-panel-padding: 20px;
  --gns-gap: 22px;
  background: var(--gns-bg);
  color: var(--gns-text);
  padding: var(--gns-panel-padding);
  border-top: 3px solid var(--gns-title);
  border-bottom: 1px solid rgba(0,0,0,.12);
  border-radius: var(--gns-radius);
  margin: 0 0 32px;
}

.gns-news-panel *,
.gns-news-panel *::before,
.gns-news-panel *::after {
  box-sizing: border-box;
}

.gns-news-panel p,
.gns-news-panel .gns-panel-excerpt,
.gns-news-panel .gns-post-meta {
  font-family: var(--gns-body-font);
}

.gns-news-panel-title,
.gns-panel-item-title {
  color: var(--gns-title);
  font-family: var(--gns-title-font);
  font-weight: var(--gns-title-weight);
  line-height: 1.08;
}

.gns-news-panel-title {
  font-size: var(--gns-title-size);
  margin: 0 0 14px;
}

.gns-news-panel-header {
  border-bottom: 1px solid rgba(0,0,0,.12);
  margin-bottom: calc(var(--gns-gap) - 2px);
}

.gns-panel-card-image-link,
.gns-panel-item-title a {
  text-decoration: none;
  color: inherit;
}

.gns-panel-card-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--gns-radius) * .75);
}

.gns-panel-card-content {
  padding-top: 12px;
}

.gns-panel-item-title {
  margin: 0;
  font-size: var(--gns-card-title-size);
}

.gns-panel-card.is-feature .gns-panel-item-title,
.gns-panel-split-main .gns-panel-item-title,
.gns-mosaic .is-large .gns-panel-item-title {
  font-size: max(calc(var(--gns-card-title-size) * 1.45), 24px);
}

.gns-panel-excerpt {
  margin: 10px 0 0;
  font-size: var(--gns-excerpt-size);
  line-height: 1.6;
}

.gns-post-meta {
  color: color-mix(in srgb, var(--gns-text) 70%, #666);
  font-size: var(--gns-meta-size);
  letter-spacing: .02em;
  margin: 0 0 8px;
}

.gns-label {
  display: inline-block;
  margin: 0 0 10px;
  font-size: 11px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
  color: var(--gns-accent);
}

.gns-label-style-solid .gns-label,
.gns-label-breaking,
.gns-label-live {
  background: var(--gns-accent);
  color: #fff;
  padding: 6px 8px;
  border-radius: 999px;
}

.gns-label-style-outline .gns-label {
  border: 1px solid var(--gns-accent);
  padding: 6px 8px;
  border-radius: 999px;
}

.gns-label-style-minimal .gns-label {
  letter-spacing: .02em;
  text-transform: none;
}

.gns-panel-card-grid,
.gns-two-column-cards {
  display: grid;
  gap: var(--gns-gap);
}

.gns-panel-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.gns-two-column-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gns-panel-split,
.gns-panel-feature-grid {
  display: grid;
  gap: var(--gns-gap);
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr);
}

.gns-panel-split-side,
.gns-panel-list,
.gns-headlines {
  display: grid;
  gap: 14px;
}

.gns-panel-split-side .gns-panel-card,
.gns-panel-list-item,
.gns-headline-item,
.gns-timeline-row,
.gns-two-column-card,
.gns-panel-card-grid .gns-panel-card,
.gns-panel-feature-grid .gns-panel-card {
  border-top: 1px solid rgba(0,0,0,.12);
  padding-top: 12px;
}

.gns-panel-split-side .gns-panel-card:first-child,
.gns-panel-list-item:first-child,
.gns-headline-item:first-child,
.gns-timeline-row:first-child,
.gns-two-column-card:first-child,
.gns-panel-card-grid .gns-panel-card:first-child,
.gns-panel-feature-grid .gns-panel-card:first-child {
  border-top: 0;
  padding-top: 0;
}

.gns-headline-item .gns-panel-item-title {
  font-size: max(calc(var(--gns-card-title-size) * 1.05), 18px);
}

.gns-timeline {
  display: grid;
  gap: 10px;
}

.gns-timeline-row {
  position: relative;
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 18px;
}

.gns-timeline-line {
  position: absolute;
  top: 0;
  bottom: -10px;
  left: 9px;
  width: 2px;
  background: color-mix(in srgb, var(--gns-accent) 40%, #ddd);
}

.gns-timeline-row:last-child .gns-timeline-line {
  display: none;
}

.gns-timeline-dot {
  position: relative;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  border-radius: 999px;
  background: var(--gns-bg);
  border: 3px solid var(--gns-accent);
}

.gns-mosaic {
  display: grid;
  gap: var(--gns-gap);
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-auto-flow: dense;
}

.gns-mosaic .is-large {
  grid-row: span 2;
}

.gns-mosaic-cell .gns-panel-card {
  height: 100%;
}

.gns-news-panel-empty {
  padding: 16px;
  border: 1px dashed rgba(0,0,0,.25);
}

.gns-skin-financial {
  --gns-bg: #f5ecdd;
  --gns-title: #202020;
  --gns-text: #4d4438;
  --gns-accent: #8e2a2a;
}

.gns-skin-minimal {
  --gns-bg: #ffffff;
  --gns-title: #111111;
  --gns-text: #4d4d4d;
  border-top-width: 1px;
}

.gns-skin-dark {
  --gns-bg: #131417;
  --gns-title: #f2f2f2;
  --gns-text: #c9c9c9;
  --gns-accent: #e05a5a;
  border-bottom-color: rgba(255,255,255,.14);
}

.gns-skin-dark .gns-news-panel-header,
.gns-skin-dark .gns-panel-split-side .gns-panel-card,
.gns-skin-dark .gns-panel-list-item,
.gns-skin-dark .gns-headline-item,
.gns-skin-dark .gns-timeline-row,
.gns-skin-dark .gns-two-column-card,
.gns-skin-dark .gns-panel-card-grid .gns-panel-card,
.gns-skin-dark .gns-panel-feature-grid .gns-panel-card {
  border-color: rgba(255,255,255,.14);
}

.gns-skin-earth {
  --gns-bg: #f7f6ef;
  --gns-title: #263126;
  --gns-text: #51604f;
  --gns-accent: #55733d;
}

@media (max-width: 1024px) {
  .gns-panel-split,
  .gns-panel-feature-grid,
  .gns-two-column-cards,
  .gns-mosaic {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .gns-news-panel {
    padding: max(14px, calc(var(--gns-panel-padding) * .7));
  }

  .gns-panel-card-grid {
    grid-template-columns: 1fr;
  }

  .gns-news-panel-title {
    font-size: min(var(--gns-title-size), 30px);
  }

  .gns-panel-item-title {
    font-size: min(var(--gns-card-title-size), 22px);
  }
}
