/* Flat editorial columns, separated by space and fine rules. */
.nx-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: 64px; padding-block: 56px 80px; }
.nx-content { min-width: 0; }
.nx-sidebar { min-width: 0; border-left: 1px solid var(--nx-border); padding-left: 28px; }
.nx-layout-full { display: block; }
.nx-layout-full .nx-content { max-width: 900px; margin-inline: auto; }
.nx-reading-progress { position: fixed; top: 0; left: 0; z-index: 99999; width: 100%; height: 2px; pointer-events: none; }
.nx-reading-progress-bar { width: 0; height: 100%; background: var(--nx-brand); }
.nx-section-label, .nx-section-heading, .sidebar-main .widget-title { margin: 0 0 22px; color: var(--nx-heading); font: 600 var(--nx-type-label)/1.4 var(--nx-font-body); letter-spacing: .08em; text-transform: uppercase; }
.nx-section-heading { border-top: 2px solid var(--nx-heading); padding-top: 14px; margin-bottom: 28px; }
.widget_categories ul { list-style: none; padding: 0; }
.widget_categories li { border-bottom: 1px solid var(--nx-border); padding-block: 10px; }
.widget_categories .count { display: none; }
.nx-text-link { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1024px) {
  .nx-layout { gap: 32px; grid-template-columns: minmax(0, 1fr) 240px; }
  .nx-sidebar { padding-left: 24px; }
}
@media (max-width: 921px) {
  .nx-layout { grid-template-columns: minmax(0, 1fr); padding-block: 32px 48px; gap: 40px; }
  .nx-sidebar { border-left: 0; border-top: 1px solid var(--nx-border); padding: 28px 0 0; }
  .sidebar-main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
}
@media (max-width: 544px) {
  .sidebar-main { grid-template-columns: minmax(0, 1fr); }
}
/*
 * Newsletter banner (widget area 'newsletter-banner', Custom HTML widget). The image background
 * matches the box colour, so the illustration is fitted with `contain` against the right edge:
 * it always shows whole and never slides under the text column, whatever the box height.
 */
.nx-nl-banner { padding-block: 20px; }
.nx-nl-banner__box { position: relative; display: flex; align-items: center; min-height: 250px; padding: 32px 40px; overflow: hidden; background: #f3f4f8; border: 1px solid var(--nx-border); border-radius: 6px; }
.nx-nl-banner__text { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; max-width: min(520px, 46%); }
.nx-nl-banner .nx-nl-banner__text p { margin: 0; }
.nx-nl-banner .nx-nl-banner__kicker { color: var(--nx-brand); font: 600 var(--nx-type-label)/1.4 var(--nx-font-body); letter-spacing: .08em; text-transform: uppercase; }
.nx-nl-banner .nx-nl-banner__title { color: var(--nx-heading); font: 600 32px/1.2 var(--nx-font-heading); letter-spacing: -.025em; text-wrap: balance; }
.nx-nl-banner .nx-nl-banner__lead { color: var(--nx-text); font-size: var(--nx-type-summary); line-height: 1.5; text-wrap: pretty; }
.nx-nl-banner__btn { display: inline-block; margin-top: 8px; padding: 12px 24px; color: #fff; background: var(--nx-brand); border-radius: 3px; font-weight: 600; line-height: 1.3; text-decoration: none; }
.nx-nl-banner__btn:hover, .nx-nl-banner__btn:focus { color: #fff; background: var(--nx-heading); }
.nx-nl-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: right center; }
@media (max-width: 700px) {
  .nx-nl-banner { padding-block: 12px; }
  .nx-nl-banner__box { flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
  .nx-nl-banner__img { position: static; order: -1; height: 88px; object-fit: cover; object-position: 85% center; }
  .nx-nl-banner__text { max-width: none; gap: 6px; padding: 14px 16px 16px; }
  .nx-nl-banner .nx-nl-banner__title { font-size: 22px; }
  .nx-nl-banner .nx-nl-banner__lead { font-size: 16px; line-height: 1.45; }
  .nx-nl-banner__extra { display: none; }
  .nx-nl-banner__btn { display: block; width: 100%; margin-top: 6px; text-align: center; }
}
