/* wp-content/plugins/contextus-content-platform/blocks/gallery/style.css */
/* ============================================================
   CONTENT GALLERY (canonical gallery → pager + softbox)
   ============================================================ */

/* Without JavaScript every authored slide remains reachable in a native
   horizontal scroller. Enhancement adds controls, never access to content. */
.content-gallery {
  display: block;
}
.content-gallery[data-gallery-columns="1"] { --gallery-columns: 1; }
.content-gallery[data-gallery-columns="2"] { --gallery-columns: 2; }
.content-gallery[data-gallery-columns="3"] { --gallery-columns: 3; }
.content-gallery[data-gallery-columns="4"] { --gallery-columns: 4; }
.content-gallery[data-gallery-columns="5"] { --gallery-columns: 5; }
.content-gallery[data-gallery-columns="6"] { --gallery-columns: 6; }
.content-gallery[data-gallery-columns="7"] { --gallery-columns: 7; }
.content-gallery[data-gallery-columns="8"] { --gallery-columns: 8; }
.content-gallery[data-gallery-enhance="pager"]:not(.is-pager) {
  display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: max(12rem, calc(100% - 52px));
  gap: 14px; overflow-x: auto; scroll-snap-type: x proximity;
}
.content-gallery[data-gallery-enhance="pager"]:not(.is-pager) > .gallery-bar-label { grid-row: 1; grid-column: 1 / -1; }
.content-gallery[data-gallery-enhance="pager"]:not(.is-pager) > .content-gallery-item { grid-row: 2; margin: 0; scroll-snap-align: start; }
.content-gallery[data-gallery-enhance="pager"]:not(.is-pager) .gallery-authored-copy { position: static; display: block; color: inherit; background: none; padding: .75rem 0; }
.content-gallery[data-gallery-enhance="pager"]:not(.is-pager) .gallery-authored-copy :is(p,h2,h3,h4) { display: block; color: inherit; text-shadow: none; overflow: visible; }
.content-gallery:not(.is-pager) .content-gallery-link img { aspect-ratio: 16 / 10; object-fit: cover; }
.gallery-hero .content-gallery:not(.is-pager) .content-gallery-link img { aspect-ratio: 16 / 9; }
.article-body .content-gallery .content-gallery-item { margin: 0; }
.content-gallery img { display: block; width: 100%; height: auto; background: var(--paper-2, #f1f1ee); }
.content-gallery figcaption {
  padding-top: 8px;
}
.content-gallery[data-gallery-layout="grid"] { display: grid; grid-template-columns: repeat(var(--gallery-columns, 2), minmax(0, 1fr)); gap: 14px; }
.content-gallery[data-gallery-layout="masonry"] { columns: var(--gallery-columns, 2); column-gap: 14px; }
.wp-block-gallery.has-nested-images.content-gallery:is([data-gallery-layout="grid"], [data-gallery-layout="masonry"]) > figure.wp-block-image.content-gallery-item:not(#individual-image) {
  width: 100%;
  min-width: 0;
}
.content-gallery[data-gallery-layout="masonry"] > .content-gallery-item { break-inside: avoid; margin-block-end: 14px; }
.content-gallery > .blocks-gallery-caption { grid-column: 1 / -1; column-span: all; }

/* hydrated: scroll-snap pager with per-slide text cards */
.content-gallery.is-pager { display: block; }
.gallery-stage {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.gallery-stage::-webkit-scrollbar { display: none; }
.is-pager .content-gallery-item {
  position: relative;
  flex: 0 0 calc(100% - 52px);
  min-width: 0;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
}
/* caption text moves onto the image; keep the semantic figcaption for no-JS */
.is-pager .content-gallery-item > figcaption { display: none; }
.is-pager .content-gallery-link { position: relative; display: block; background: var(--paper-2, #f1f1ee); }
/* uniform aspect frame so the overlay always sits on the photo itself;
   the softbox shows the uncropped file */
.is-pager :is(.content-gallery-link img, .content-gallery-item > img) {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.gallery-open {
  --gallery-open-drop: 8px;
  position: absolute;
  z-index: 4;
  inset: 50% auto auto 50%;
  translate: -50% -50%;
  min-height: 48px;
  padding: 0 20px;
  border: 0;
  background: var(--ink, #171717);
  box-shadow: var(--gallery-open-drop) var(--gallery-open-drop) 0 var(--y, #ffe100);
  color: var(--paper, #ffffff);
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
  cursor: pointer;
  transition: box-shadow .14s var(--ease, ease), translate .14s var(--ease, ease);
}
.gallery-open:hover {
  translate: calc(-50% + 3px) calc(-50% + 3px);
  box-shadow: calc(var(--gallery-open-drop) - 3px) calc(var(--gallery-open-drop) - 3px) 0 var(--y, #ffe100);
}
.gallery-open:active {
  translate: calc(-50% + var(--gallery-open-drop)) calc(-50% + var(--gallery-open-drop));
  box-shadow: 0 0 0 var(--y, #ffe100);
}
.gallery-open:focus-visible { outline: none; background: var(--paper, #fff); color: var(--ink, #111); }

/* on-image text: gradient-masked blur + scrim, then label and boxed title */
.gallery-overlay {
  text-align: left;
  position: absolute;
  inset: auto 0 0 0;
  padding: 64px 16px 15px;
  display: block;
  pointer-events: none;
}
.gallery-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12, 12, 12, 0) 0%, rgba(12, 12, 12, 0.34) 58%, rgba(12, 12, 12, 0.5) 100%);
  -webkit-backdrop-filter: blur(18px) saturate(1.12);
  backdrop-filter: blur(18px) saturate(1.12);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 52%, #000 94%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 52%, #000 94%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .gallery-overlay::before {
    background: linear-gradient(180deg, rgba(12, 12, 12, 0) 0%, rgba(12, 12, 12, 0.55) 55%, rgba(12, 12, 12, 0.78) 100%);
  }
}
.gallery-overlay > * { position: relative; }
.gallery-authored-copy a { pointer-events: auto; }
.gallery-overlay-label {
  margin: 0 0 9px;
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);
}
.gallery-overlay-label .num:first-of-type { color: var(--y, #ffe100); }
.gallery-overlay-title {
  display: inline;
  max-width: 32ch;
  margin: 0;
  padding: 0.16em 0.45em 0.2em;
  background: var(--y, #ffe100);
  color: var(--on-accent, var(--ink, #171717));
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.gallery-overlay-title.contextus-gallery-generated-text {
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.4;
}

.gallery-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

/* lead gallery: the gallery IS the story — wider than a lead image would be,
   hierarchy carried by scale and spacing, not rules */
.gallery-lead {
  max-width: 1280px;
  margin: 0 auto;
}
.gallery-hero .gallery-bar { margin-bottom: 14px; }
.gallery-hero .gallery-bar-label {
  color: var(--ink, #171717);
}
.gallery-hero .is-style-gallery-heading { font-size: 13px; letter-spacing: .16em; }
.gallery-hero :is(.content-gallery-link img, .content-gallery-item > img) { aspect-ratio: 16 / 9; }
.gallery-hero .gallery-overlay { padding-top: 110px; }
.gallery-hero .gallery-overlay-title { max-width: 38ch; font-size: 22px; }
.gallery-hero .gallery-overlay-sub { font-size: 16px; }
.gallery-overlay-sub {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 9px 0 0;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  max-width: 54ch;
}
.gallery-overlay-sub.contextus-gallery-generated-text {
  font-family: var(--font-serif, Georgia, serif);
  font-size: 15px;
  font-style: italic;
  line-height: 1.5;
}
.gallery-bar-label {
  text-align: left;
  justify-content: flex-start;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 0;
  color: var(--mute, #595959);
}
.content-gallery :is(.gallery-bar-label, .gallery-overlay-title) { text-align: left; }
.gallery-bar-label.contextus-gallery-generated-text {
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}
.gallery-bar-label .flag {
  flex: none;
  width: 10px;
  height: 10px;
  background: var(--y, #ffe100);
}
.gallery-bar-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gallery-bar-count {
  flex: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: normal;
  white-space: nowrap;
}
.gallery-bar-count::before { content: "· "; }
.gallery-nav { display: flex; flex: none; gap: 6px; }
.gallery-nav button {
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ink, #171717);
  color: var(--paper, #ffffff);
  transition: background-color 0.15s var(--ease, ease), color 0.15s var(--ease, ease), transform 0.1s var(--ease, ease);
}
.gallery-nav button[hidden],
.softbox-nav[hidden] { display: none; }
.gallery-nav button:hover:not(:disabled) { background: var(--y, #ffe100); color: var(--on-accent, var(--ink, #171717)); }
.gallery-nav button:active:not(:disabled) { transform: scale(0.94); }
.gallery-nav button:disabled { background: var(--paper-2, #f1f1ee); color: #b5b5b1; }
.gallery-nav svg { width: 20px; height: 20px; }

/* softbox: full-viewport bright viewer for the original files */
.gallery-softbox {
  border: 0;
  padding: 0;
  width: 100vw;
  height: 100dvh;
  max-width: 100vw;
  max-height: 100dvh;
  background: var(--paper, #ffffff);
  color: var(--ink, #171717);
}
.gallery-softbox[open] { display: block; overflow: hidden; }
html.has-gallery-softbox,
body.has-gallery-softbox { overflow: hidden; }
.softbox-content {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: safe center;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 70px 0 28px;
}
.gallery-ad-slot { display: none; }
.gallery-ad-slot:not(:empty) {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 50px;
  margin-inline: auto;
  overflow: hidden;
}
.gallery-ad-slot-top:not(:empty) { margin-bottom: 12px; }
.gallery-ad-slot-bottom:not(:empty) { margin-top: 12px; }
.softbox-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: min(100%, 920px);
  max-height: min(52dvh, 620px);
  margin-inline: auto;
}
.softbox-stage img {
  max-width: 100%;
  max-height: min(52dvh, 620px);
  width: auto;
  height: auto;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  transition: opacity 0.25s var(--ease, ease);
}
.softbox-stage img.is-loaded { opacity: 1; }
.softbox-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
  width: min(100%, 728px);
  margin-inline: auto;
  padding: 12px 2px 4px;
}
.softbox-copy {
  display: grid;
  gap: 5px;
  max-width: 72ch;
}
.softbox-title {
  margin: 0;
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: clamp(19px, 2vw, 25px);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.softbox-description {
  margin: 0;
  font-family: var(--font-serif, Georgia, serif);
  font-size: 16px;
  line-height: 1.45;
  color: var(--ink-soft, #303030);
}
.softbox-caption {
  margin: 2px 0 0;
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--mute, #595959);
}
.softbox-count {
  margin-left: auto;
  white-space: nowrap;
  font-family: var(--font-display, system-ui, sans-serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--mute, #595959);
}
.softbox-count .num { font-size: 19px; font-weight: 900; color: var(--ink, #171717); }
.softbox-close, .softbox-nav {
  position: absolute;
  z-index: 2;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ink, #171717);
  color: var(--paper, #ffffff);
  transition: background-color 0.15s var(--ease, ease), color 0.15s var(--ease, ease), transform 0.1s var(--ease, ease);
}
.softbox-close,
.softbox-nav {
  padding: 0;
  border: 0;
  appearance: none;
  box-shadow: none;
}
.softbox-close:hover, .softbox-nav:hover { background: var(--y, #ffe100); color: var(--on-accent, var(--ink, #171717)); }
.softbox-close:active, .softbox-nav:active { transform: scale(0.94); }
.softbox-close:focus-visible, .softbox-nav:focus-visible { outline: none; box-shadow: none; background-color: var(--y, #ffe100); color: var(--ink, #111); }
.softbox-close { top: 14px; right: 14px; }
.softbox-nav { top: 50%; transform: translateY(-50%); }
.softbox-nav:active { transform: translateY(-50%) scale(0.94); }
.softbox-prev { left: 8px; }
.softbox-next { right: 8px; }
.softbox-close svg, .softbox-nav svg { width: 22px; height: 22px; }
@media (max-width: 620px) {
  .is-pager .content-gallery-item { flex-basis: calc(100% - 36px); }
  .gallery-overlay { padding: 48px 12px 11px; gap: 7px; }
  .is-pager .gallery-overlay-title {
    display: -webkit-box;
    width: fit-content;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .is-pager .gallery-overlay-sub { display: none; }
  .gallery-nav { gap: 4px; }
  .gallery-nav button { width: 44px; height: 44px; }
  /* the lead gallery reads taller on portrait screens */
  .gallery-hero :is(.content-gallery-link img, .content-gallery-item > img) { aspect-ratio: 4 / 3; }
  .content-gallery { grid-template-columns: 1fr; columns: 1; }
  .gallery-open {
    --gallery-open-drop: 6px;
    inset-block-start: 38%;
    min-height: 44px;
    padding-inline: 14px;
    font-size: 11px;
  }
  .softbox-content { padding: 62px 0 18px; }
  .gallery-ad-slot { width: min(100%, 300px); }
  .gallery-ad-slot-top:not(:empty) { margin-bottom: 16px; }
  .gallery-ad-slot-bottom:not(:empty) { margin-top: 16px; }
  .softbox-stage, .softbox-bar { width: 100%; }
  .softbox-stage { max-height: none; }
  .softbox-stage img { max-height: calc(100dvh - 180px); }
  .softbox-stage img { box-shadow: none; }
  .softbox-close, .softbox-nav { width: 44px; height: 44px; }
  .softbox-close { top: 10px; right: 12px; }
  .softbox-prev { left: 0; }
  .softbox-next { right: 0; }
  .softbox-bar { box-sizing: border-box; display: block; padding: 12px 16px 4px; }
  .softbox-copy { max-width: none; gap: 4px; }
  .softbox-count {
    position: absolute;
    z-index: 2;
    top: 19px;
    left: 16px;
    margin: 0;
  }
  .softbox-count .num { font-size: 18px; }
  .softbox-title { font-size: 18px; }
  .softbox-description { font-size: 15px; line-height: 1.4; }
}


.content-gallery a:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.content-gallery .gallery-nav button:focus-visible { outline: none; box-shadow: none; background-color: var(--y, #ffe100); color: var(--ink, #111); }
.content-gallery .content-gallery-link:focus-visible img { filter: brightness(.65); }
@media (prefers-reduced-motion: reduce) { .content-gallery *, .gallery-softbox * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
@media (forced-colors: active) { .gallery-open, .gallery-nav button, .softbox-close, .softbox-nav { border: 1px solid ButtonText; } }

.content-gallery > .gallery-caption { grid-row: 3; grid-column: 1 / -1; column-span: all; margin-block: .75rem 0; font-size: .9em; color: var(--mute, #595959); }

.softbox-footer { display: none; }
/* A separate footer reserves real viewport space; neither copy nor ads can
   scroll behind portrait navigation. Only controls move on orientation change. */
@media (orientation: portrait) {
  .gallery-softbox[open] { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
  .softbox-content { min-height: 0; padding: max(62px, env(safe-area-inset-top)) 0 16px; }
  .softbox-content > * { flex-shrink: 0; }
  .softbox-stage { width: 100%; max-width: 100%; max-height: none; }
  .softbox-stage img { width: 100%; max-height: calc(100dvh - 180px); object-fit: contain; }
  .softbox-footer {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) 52px;
    align-items: center;
    gap: 12px;
    padding: 12px max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    background: var(--paper, #ffffff);
  }
  .softbox-footer .softbox-nav { position: static; transform: none; }
  .softbox-footer .softbox-nav:active { transform: scale(0.94); }
  .softbox-footer .softbox-prev { grid-column: 1; grid-row: 1; justify-self: start; }
  .softbox-footer .softbox-next { grid-column: 3; grid-row: 1; justify-self: end; }
  .softbox-footer .softbox-count { position: static; grid-column: 2; grid-row: 1; margin: 0; text-align: center; }
  .softbox-bar { box-sizing: border-box; padding-inline: 16px; }
}
@media (max-width: 1000px) and (max-height: 600px) and (orientation: landscape) {
  .softbox-content { padding: 58px env(safe-area-inset-right) max(12px, env(safe-area-inset-bottom)) env(safe-area-inset-left); }
  .softbox-content > * { flex-shrink: 0; }
  .softbox-stage { width: 100%; max-width: 100%; max-height: none; }
  .softbox-stage img { width: 100%; max-height: calc(100dvh - 76px); object-fit: contain; box-shadow: none; }
  .softbox-prev { left: 8px; }
  .softbox-next { right: 8px; }
  .softbox-bar { box-sizing: border-box; padding-inline: 16px; }
}

/* Reader gallery is an open-only cover. Editor carousel lives in editor.css. */
.content-gallery.is-pager .gallery-stage {
  display: block;
  overflow: clip;
  scroll-snap-type: none;
  touch-action: pan-y;
  cursor: pointer;
}
.content-gallery.is-pager .gallery-stage > .content-gallery-item { width: 100%; margin: 0; }
.content-gallery.is-pager .gallery-stage > .content-gallery-item[hidden] { display: none; }

/* Authored empty slide copy is intentionally absent, including before hydration. */
.content-gallery .gallery-authored-copy :is(.gallery-overlay-title, .gallery-overlay-sub):empty,
.content-gallery .gallery-authored-copy :is(.gallery-overlay-title, .gallery-overlay-sub)[hidden],
.content-gallery .gallery-overlay[hidden],
.content-gallery .gallery-authored-copy:has(> .gallery-overlay-title:empty):has(> .gallery-overlay-sub:empty) { display: none; }

/* wp-content/plugins/contextus-content-platform/assets/embeds.css */
/* ============================================================
   SOCIAL EMBEDS — house façade, native content on demand
   ============================================================ */

.social-embed {
  border: 2px solid var(--ink, #171717);
  padding: 20px 22px;
  margin: 2.2em 0;
  font-family: var(--font-display, system-ui, sans-serif);
}
.social-embed.is-loaded { padding: 0; overflow: visible; }
.social-embed iframe { display: block; width: 100%; border: 0; transition: height 0.25s var(--ease, ease); }
.social-embed.layout-portrait { max-width: 440px; margin-inline: auto; }
.social-embed.layout-portrait.is-loaded { max-width: 100%; }
.social-embed-head { display: flex; align-items: center; gap: 8px; }
.se-ico { width: 20px; height: 20px; flex-shrink: 0; }
.se-brand-icon {
  display: inline-block;
  background-color: var(--se-brand-color, currentColor);
  mask: var(--se-brand-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 4v16l13-8z'/%3E%3C/svg%3E")) center / contain no-repeat;
}
.social-embed[data-provider="youtube"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/youtube.svg"); --se-brand-color: #ff0000; }
.social-embed[data-provider="facebook"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/facebook.svg"); --se-brand-color: #0866ff; }
.social-embed[data-provider="instagram"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/instagram.svg"); --se-brand-color: #ff0069; }
.social-embed[data-provider="spotify"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/spotify.svg"); --se-brand-color: #1ed760; }
.social-embed[data-provider="vimeo"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/vimeo.svg"); --se-brand-color: #1ab7ea; }
.social-embed[data-provider="x"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/x.svg"); }
.social-embed[data-provider="tiktok"] { --se-brand-icon: url("../../../../../plugins/contextus-content-platform/assets/embed-icons/tiktok.svg"); }
.se-platform {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.se-author { color: var(--mute, #595959); font-size: 13px; font-weight: 700; margin-left: auto; }
.se-text {
  margin: 14px 0 2px;
  font-family: var(--font-serif, Georgia, serif);
  font-style: italic;
  font-size: 17px;
  line-height: 1.5;
  color: var(--ink-soft, #303030);
  border: 0;
  padding: 0;
}
.se-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 16px; }
.se-actions .btn-y {
  min-height: 46px;
  padding: 12px 18px;
  border: 0;
  background: var(--y, #ffe100);
  color: var(--on-accent, var(--ink, #171717));
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: background-color 0.15s var(--ease, ease), transform 0.1s var(--ease, ease);
}
.se-actions .btn-y:hover { background: #fff04d; }
.se-actions .btn-y:active { transform: scale(0.96); }
.social-embed a.se-open {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 6px 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--ink, #171717);
  font: 600 13px/1.4 var(--font-display, system-ui, sans-serif);
  text-transform: none;
  letter-spacing: normal;
  text-decoration: none;
}
.social-embed .se-open svg { width: 16px; height: 16px; flex: 0 0 16px; }
.social-embed a.se-open:hover { background: none; }
.social-embed a.se-open:hover span { text-decoration: underline; text-underline-offset: 3px; }
.social-embed a.se-open:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.social-embed--video > a.se-open { margin-top: 6px; }
.se-note { display: block; margin-top: 10px; font-size: 11px; line-height: 1.4; color: var(--mute, #595959); }
.se-remember { display: flex; align-items: flex-start; gap: 9px; width: fit-content; margin-top: 12px; color: var(--mute, #595959); font: 700 11px/1.4 var(--font-display, system-ui, sans-serif); text-wrap: pretty; cursor: pointer; }
.se-remember input { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; accent-color: var(--ink, #171717); }
.se-remember--video { margin: 10px 0 0; padding: 0 2px; }

/* video façade: grayscale still, yellow play block, real player on click */
.social-embed--video { padding: 0; border: 0; }
.se-video-btn { display: block; width: 100%; position: relative; cursor: pointer; text-align: left; }
.se-video-btn .ph { display: block; }
.se-video-btn .ph--blank { aspect-ratio: 16 / 9; background: var(--ink, #171717); }
.se-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  background: var(--y, #ffe100);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s var(--ease, ease);
}
.se-video-btn:hover .se-play { transform: translate(-50%, -50%) scale(1.06); }
.se-video-btn:active .se-play { transform: translate(-50%, -50%) scale(0.96); }
.se-play::before {
  content: "";
  width: 0;
  height: 0;
  border-block: 15px solid transparent;
  border-left: 24px solid var(--on-accent, var(--ink, #171717));
  transform: translateX(3px);
}
.se-video-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  position: absolute;
  left: 0;
  bottom: 0;
  background: var(--ink, #171717);
  color: var(--paper, #ffffff);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 8px 12px;
}
.se-video-tag .se-ico { width: 18px; height: 18px; }
@media (forced-colors: active) {
  .se-brand-icon { background-color: CanvasText; }
}
/* The facade has no core embed wrapper: keep its player in normal flow. */
.wp-embed-responsive .social-embed--video.is-loaded iframe { position: static; inset: auto; width: 100%; aspect-ratio: 16 / 9; height: auto; }
.social-embed .ph img[hidden] { display: none; }

@media (max-width: 620px) {
  .social-embed { padding: 16px; }
  .social-embed.is-loaded { padding: 0; }
  .se-author { display: none; }
}

/* Functional defaults must not depend on the active theme. */
.social-embed .ph--16x9 { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #171717; }
.social-embed .ph--16x9 img { display: block; width: 100%; height: 100%; object-fit: cover; }
.social-embed .btn-y { padding: .75rem 1rem; border: 0; background: var(--y, #ffe100); color: var(--on-accent, #171717); cursor: pointer; }
.social-embed button:focus-visible { outline: none; background: var(--paper, #fff); color: var(--ink, #111); }
.social-embed a:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.social-embed > figcaption { display: block; padding: .75rem; }

/* wp-content/plugins/contextus-media/previews.css */
/* The img has a server-rendered inline background. These layers only animate its reveal. */
.contextus-preview-host { position: relative; }
.contextus-preview-layer {
    position: absolute;
    pointer-events: none;
    overflow: hidden;
    z-index: auto;
    opacity: 1;
    background: #e6e6e4;
}
.contextus-preview-layer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--contextus-preview);
    background-size: var(--contextus-preview-fit, cover);
    background-position: var(--contextus-preview-position, center);
    background-repeat: no-repeat;
    /* Colour and blur are inside the self-contained inline background SVG. */
}
.contextus-preview-layer.is-revealing { animation: contextus-preview-dissolve 900ms ease both; }
.contextus-preview-settle { animation: contextus-preview-settle 900ms cubic-bezier(.2,.6,.3,1) both !important; }
@keyframes contextus-preview-dissolve { to { opacity: 0; } }
/* Clip compensates the 2% scale so the photo cannot spill outside its box. */
@keyframes contextus-preview-settle {
    from { transform: scale(1.02); clip-path: inset(1%); }
    to { transform: scale(1); clip-path: inset(0); }
}
@media (prefers-reduced-motion: reduce) {
    .contextus-preview-layer.is-revealing { animation: none; opacity: 0; }
    .contextus-preview-settle { animation: none !important; }
}

/* wp-content/themes/contextus-block/assets/css/base.css */
/* Contextus theme base: a11y helpers. Font faces are declared
   once in theme.json so WordPress owns frontend and editor loading.
   WordPress is authoritative. The discontinued app under .archive/app is a
   visual reference only; its consent runtime is not part of this theme. */

.sr-only,
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* wp-content/themes/contextus-block/assets/css/tokens.css */
/* WordPress owns saved design choices; components consume semantic runtime
   tokens. A visitor colour preference may replace the semantic layer without
   mutating WordPress preset variables or the selected Global Style variation. */
:root {
  --contextus-theme-contract: "ad-layout-v1";
  --contextus-ink: var(--wp--preset--color--ink, #111111);
  --contextus-ink-soft: var(--wp--preset--color--ink-soft, #2a2a2a);
  --contextus-paper: var(--wp--preset--color--paper, #ffffff);
  --contextus-paper-2: var(--wp--preset--color--paper-2, #f7f6f2);
  --contextus-gray-1: var(--wp--preset--color--gray-1, #f5f5f4);
  --contextus-gray-2: var(--wp--preset--color--gray-2, #e6e6e4);
  --contextus-gray-3: var(--wp--preset--color--gray-3, #c9c9c6);
  --contextus-mute: var(--wp--preset--color--mute, #6f6f6c);
  --contextus-accent: var(--wp--preset--color--yellow, #ffe600);
  --contextus-accent-soft: var(--wp--preset--color--yellow-soft, #fff9c2);

  /* Compatibility names used by the app-derived component stylesheets. */
  --ink: var(--contextus-ink);
  --ink-soft: var(--contextus-ink-soft);
  --paper: var(--contextus-paper);
  --paper-2: var(--contextus-paper-2);
  --gray-1: var(--contextus-gray-1);
  --gray-2: var(--contextus-gray-2);
  --gray-3: var(--contextus-gray-3);
  --mute: var(--contextus-mute);
  --y: var(--contextus-accent);
  --y-soft: var(--contextus-accent-soft);

  --font-display: var(--wp--preset--font-family--display, "Archivo", "Helvetica Neue", Arial, sans-serif);
  --font-serif: var(--wp--preset--font-family--serif, "Source Serif 4", Georgia, serif);
  --rule: 3px solid var(--ink);
  --rule-thin: 1px solid var(--gray-2);
  --ease: cubic-bezier(0.2, 0, 0, 1);
  --article-media-block-spacing: 2em;

  --wrap-homepage-lead-title: var(--wp--custom--wrap--homepage-lead-title, pretty);
  --wrap-teaser-titles: var(--wp--custom--wrap--teaser-titles, pretty);
  /* skip balance for now
  --wrap-article-title: var(--wp--custom--wrap--article-title, balance);
  */
  --wrap-article-title: wrap;
  --wrap-article-headings: var(--wp--custom--wrap--article-headings, wrap);
  --wrap-longform-prose: var(--wp--custom--wrap--longform-prose, wrap);

  --on-accent: var(--wp--custom--semantic--on-accent, #111111);
  --shell-inverse-bg: var(--wp--custom--semantic--inverse-surface, #111111);
  --shell-inverse-text: var(--wp--custom--semantic--inverse-text, #ffffff);
  --shell-muted: color-mix(in hsl, var(--shell-inverse-text) 62%, var(--shell-inverse-bg));
  --shell-rule: color-mix(in hsl, var(--shell-inverse-text) 18%, var(--shell-inverse-bg));
}

/* wp-content/themes/contextus-block/assets/css/canvas-core.css */
/* Minimal rendering primitives shared by the frontend and the iframed editor. */
*, *::before, *::after { box-sizing: border-box; }

:where(.wp-site-blocks, .is-root-container, .wp-block-group, .wp-block-columns, .wp-block-column, .wp-block-query, .wp-block-post-template) > * {
  min-width: 0;
}

img, picture, video, canvas {
  display: block;
  max-width: 100%;
}

button, input, textarea, select {
  color: inherit;
  font: inherit;
}

/* Shared most-read composition appears on listing and article canvases. */
.sb-block { padding-top: 0; }
.sb-label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
}
.sb-label .flag { width: 10px; height: 10px; background: var(--y); }
.mostread { display: grid; margin: 0; padding: 0; list-style: none; }
.mostread > li > a {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-top: var(--rule-thin);
  text-decoration: none;
}
.mostread > li > a:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.mostread > li:first-child > a { border-top: 0; padding-top: 0; }
.mostread .kicker { display: block; margin-top: 5px; }
.contextus-mostread-query .mostread { counter-reset: contextus-mostread; }
.contextus-mostread-query .mostread > li {
  counter-increment: contextus-mostread;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-top: var(--rule-thin);
}
.contextus-mostread-query .mostread > li:first-child { border-top: 0; padding-top: 0; }
.contextus-mostread-query .mostread > li::before {
  content: counter(contextus-mostread, decimal-leading-zero);
  color: transparent;
  font-size: 30px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  -webkit-text-stroke: 1.5px var(--gray-3);
  transition: color 0.2s var(--ease), -webkit-text-stroke-color 0.2s var(--ease);
}
.contextus-mostread-query .mostread > li:hover::before { color: var(--y); -webkit-text-stroke-color: var(--on-accent, #111); }
.contextus-mostread-query .mostread .contextus-mostread-link,
.contextus-mostread-query .mostread .mostread-title,
.contextus-mostread-query .mostread .mostread-title a { display: block; margin: 0; padding: 0; border: 0; }

/* wp-content/themes/contextus-block/assets/css/core.css */
/* ============================================================
   CONTEXTUS — concept design system
   Bold. Black. White. Yellow.
   ============================================================ */

html {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  /* ink canvas: iOS paints rubber-band overscroll and safe-area regions with
     the ROOT background (body's never propagates while html has its own), so
     ink here continues the inverted masthead and footer surfaces. Native Global
     Styles paint the body, including unpainted tiles during fast scroll. */
  background-color: var(--ink);
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  /* keep the native page surface at least viewport-tall so the ink canvas can only
     show past the document's edges, never under a short page */
  min-height: 100svh;
  overflow-x: clip;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-optical-sizing: auto;
}

/* Keep short templates honest: page content grows between the native header
   and footer instead of leaving the footer stranded above the viewport edge. */
.wp-site-blocks {
  display: flex;
  min-height: 100svh;
  flex-direction: column;
}

.admin-bar .wp-site-blocks {
  min-height: calc(100svh - var(--wp-admin--admin-bar--height, 32px));
}

:where(.wp-block-post-excerpt__excerpt) {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
:where(pre, code, a) { overflow-wrap: break-word; }
:where(.masthead, .overlay, .footer, .card, .hero, .feed, .rail, .pagination) :where(ul, ol) {
  padding: 0;
  list-style: none;
}
:where(.masthead, .overlay, .footer, .card, .hero, .feed, .rail, .pagination) a {
  text-decoration: none;
}
time, .num { font-variant-numeric: tabular-nums; }

::selection { background: var(--y); color: var(--ink); }

/* Links use their marker highlight; focused fields get the yellow underline. */
:where(input, textarea, select):focus-visible {
  outline: none;
  box-shadow: inset 0 -3px 0 var(--y);
}

/* Recovery components are shared by listings and non-listing routes. */
/* Empty/error states share one native composition instead of inheriting the
   unrelated archive hero. Typography remains editable through block styles. */
.contextus-state-page {
  display: grid !important;
  flex: 1 0 auto;
  align-items: center;
  padding-block: clamp(56px, 9vw, 112px);
}
.contextus-empty-state {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
}
.contextus-empty-state--query {
  border-block-start: 3px solid var(--ink);
  padding-block: clamp(28px, 5vw, 48px);
}
.contextus-empty-state > * { margin-block-start: 0; }
.contextus-empty-state > * + * { margin-block-start: 14px; }
.contextus-empty-state__label {
  display: flex;
  align-items: center;
  gap: 10px;
}
.contextus-empty-state__label::before {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  background: var(--y);
  content: "";
}
.contextus-empty-state__actions { margin-top: 28px; }
.is-style-primary-action .wp-block-button__link {
  transition: background-color .15s var(--ease), transform .1s var(--ease);
}
.is-style-primary-action .wp-block-button__link:hover { background: #ffe232; }
.is-style-primary-action .wp-block-button__link:focus-visible {
  outline: none;
  background: var(--ink);
  color: var(--paper);
}
.is-style-primary-action .wp-block-button__link:active { transform: scale(.97); }
.contextus-empty-state__search {
  max-width: 560px;
  margin-top: 18px;
}
.contextus-empty-state__search .wp-block-search__inside-wrapper {
  display: flex;
  padding: 0;
  border: 0;
  border-bottom: 3px solid var(--ink);
}
.contextus-empty-state__search .wp-block-search__inside-wrapper:focus-within {
  border-color: var(--y);
}
.contextus-empty-state__search .wp-block-search__input {
  min-width: 0;
  border: 0;
  border-radius: 0;
  padding: 12px 4px;
  background: transparent;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
}
.contextus-empty-state__search .wp-block-search__input:focus { outline: none; }
.contextus-empty-state__search .wp-block-search__button {
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 12px 18px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.contextus-empty-state__search .wp-block-search__button:hover,
.contextus-empty-state__search .wp-block-search__button:focus-visible {
  background: var(--y);
  color: var(--ink);
}

.contextus-empty-state .search-suggest {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* Native controls keep their keyboard behaviour, without browser ring boxes. */
.contextus-empty-state__search .wp-block-search__button:focus-visible { outline: none; }
.wp-lightbox-container button:focus-visible,
.wp-lightbox-overlay :is(.wp-lightbox-close-button, .wp-lightbox-navigation-button-next, .wp-lightbox-navigation-button-prev):focus-visible {
  outline: none;
  background: var(--y) !important;
  color: var(--ink) !important;
}
/* System colours keep fill feedback visible when gradients are suppressed. */
@media (forced-colors: active) {
  :is(button, .wp-block-button__link, .share-btn, summary):focus-visible {
    forced-color-adjust: none;
    background: Highlight !important;
    color: HighlightText !important;
  }
  a:focus-visible { text-decoration: underline !important; text-decoration-thickness: 3px !important; }
}

/* wp-content/themes/contextus-block/assets/css/shell.css */
/* ============================================================
   KICKERS, LABELS, MARKER HIGHLIGHT
   ============================================================ */

.kicker {
  display: inline-block;
}
a.kicker { transition: color 0.15s var(--ease); }
a.kicker:hover { color: var(--mute); }

.hl {
  background: var(--y);
  color: var(--on-accent, var(--ink));
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0.04em 0.14em;
}

/* marker-swipe underline on hover, the house link move */
.mk {
  background-image: linear-gradient(var(--y), var(--y));
  background-repeat: no-repeat;
  background-size: 0% 32%;
  background-position: 0 88%;
  transition: background-size 0.28s var(--ease);
}
a:focus-visible .mk, a.mk:focus-visible { background-size: 100% 32%; outline: none; }
@media (hover: hover) and (pointer: fine) {
  a:hover .mk, a.mk:hover { background-size: 100% 32%; outline: none; }
}

/* ============================================================
   MASTHEAD + NAV
   ============================================================ */

.masthead {
  background: var(--paper);
}

/* One wrapper owns both sticky positioning and hide-away movement. Transform
   the complete wrapper, not a painted inner child. Changing a sticky inset to
   -height cannot fully hide a header just past its flow position (e.g. below
   an ad). Clear the transform immediately for native overlays and focus. */
:root {
  --contextus-header-height: 110px;
  --contextus-toolbar-offset: 0px;
  scroll-padding-block-start: var(--contextus-toolbar-offset);
}
/* Clear article/TOC/page-break anchors without applying header clearance to
   the header's own controls: global header-height scroll padding makes focus
   return on mobile jump toward the document top and exposes the toolbar gap. */
:where(.wp-site-blocks > main, .wp-site-blocks > main [id]) {
  scroll-margin-block-start: calc(var(--contextus-header-height) + 16px);
}
:root:has(body.admin-bar) {
  --contextus-toolbar-offset: var(--wp-admin--admin-bar--height, 32px);
}
.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  top: var(--contextus-toolbar-offset);
  z-index: 100;
  flex: 0 0 auto;
  margin-block: 0;
  transform: none;
  transition: transform 220ms var(--ease);
}
.wp-site-blocks > header.wp-block-template-part.is-header-hidden {
  transform: translateY(-100%);
}
/* CSS reveals keyboard focus before the browser scrolls the focused node
   into view; waiting for the JS focusin handler is too late to prevent jumps.
   Pointer focus on a closed menu button deliberately does not pin the header. */
html.has-modal-open .wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > header.wp-block-template-part.is-header-interacting,
.wp-site-blocks > header.wp-block-template-part:has(.is-menu-open, [aria-expanded="true"], dialog[open], :focus-visible, input:focus, textarea:focus, select:focus, [contenteditable="true"]:focus) {
  /* A non-none transform contains fixed descendants. Remove it, rather than
     translate(0), before Core displays a full-viewport navigation overlay. */
  transform: none;
  transition: none;
}
@media (max-width: 782px) {
  :root:has(body.admin-bar) { --contextus-toolbar-offset: var(--wp-admin--admin-bar--height, 46px); }
}
@media (max-width: 700px) {
  :root { --contextus-header-height: 80px; }
}
@media (max-width: 600px) {
  :root:has(body.admin-bar) { --contextus-toolbar-offset: 0px; }
}
@media (prefers-reduced-motion: reduce) {
  .wp-site-blocks > header.wp-block-template-part { transition: none; }
}
@media print {
  .wp-site-blocks > header.wp-block-template-part {
    position: static;
    transform: none !important;
    transition: none !important;
  }
}
.brand {
  justify-self: center;
  width: clamp(190px, 36vw, 320px);
  min-width: 0;
  line-height: 0;
}
.brand .contextus-logo { width: 100%; height: auto; }
.footer .contextus-logo { filter: invert(1); }
.iconbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  transition: background-color 0.15s var(--ease), transform 0.1s var(--ease);
}
.iconbtn:hover { background: var(--gray-1); }
.iconbtn:active { transform: scale(0.96); }
.iconbtn svg { width: 22px; height: 22px; }


/* Raise only the active native controls, not ordinary browsing or ad frames. */
.wp-site-blocks > header.wp-block-template-part:has(.is-menu-open, .contextus-native-search-navigation .is-menu-open) {
  z-index: 2147483647;
}
/* GPT may mount the setup 61 anchor directly under html, outside body. A tie at
   the maximum z-index lets the later anchor cover Core's menu. Lower only its
   layer while controls are open; leave the live iframe and its styles intact. */
:is(html, body):has(.contextus-native-navigation .is-menu-open, .contextus-native-search-navigation .is-menu-open) > ins:is([id^="gpt_unit_/44323295,22608579336/contextus/contextus_minden_oldal_mobil_anchor_sticky_"], [id^="gpt_unit_/44323295,22608579336/contextus/contextus_minden_oldal_pc_anchor_sticky_"]) {
  z-index: 2147483000 !important;
}

/* wp-content/themes/contextus-block/assets/css/home.css */
/* ============================================================
   SECTION HEADS
   ============================================================ */

.section {
  padding-top: clamp(28px, 5vw, 48px);
  padding-bottom: clamp(28px, 5vw, 48px);
}
.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.section-head--link {
  min-height: 44px;
  padding: 4px 0;
  cursor: pointer;
}
.section-head--linked {
  position: relative;
  min-height: 44px;
  padding: 4px 0;
}
.section-head__action {
  position: static;
  z-index: 1;
  flex: 0 0 auto;
  display: block;
	line-height: 0;
}
.section-head__action > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: inherit;
  font-size: 28px;
  line-height: 1;
  text-decoration: none;
  transition: transform 0.2s var(--ease);
}
.section-head__action::before {
  content: "";
  position: absolute;
  inset: 0;
}
.editor-styles-wrapper .section-head__action::before { display: none; }
.section-chevron {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  transition: transform 0.2s var(--ease);
}
.section-head--link:hover .section-chevron { transform: translateX(4px); }
.section-head--link:active .section-chevron { transform: translateX(4px) scale(0.96); }
.section-head--linked:hover .section-chevron { transform: translateX(4px); }
.section-head--linked:active .section-chevron { transform: translateX(4px) scale(0.96); }
.section-head--linked:hover .section-head__action > a { transform: translateX(4px); }
.section-head--linked:active .section-head__action > a { transform: translateX(4px) scale(0.96); }
.section-head--linked:has(.section-head__action > a:focus-visible) {
  background: var(--y); color: var(--ink);
}
.section-head__action > a:focus-visible { outline: 0; }
.section-title .hl { padding: 0.06em 0.18em 0.08em; }
.opinion .section-title .hl { background: var(--on-accent); color: var(--y); }
/* search: full-bleed ink hero with an oversized query field */
.search-hero {
  background: var(--shell-inverse-bg, var(--ink));
  color: var(--shell-inverse-text, var(--paper));
  padding: clamp(36px, 6vw, 72px) 0 clamp(32px, 5vw, 56px);
}
.search-hero-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: clamp(18px, 3vw, 28px);
  color: var(--shell-muted, #9a9a97);
}
.search-hero-label .flag { width: 10px; height: 10px; background: var(--y); }
.search-hero-field {
  display: flex;
  align-items: stretch;
  gap: clamp(12px, 2vw, 20px);
  border-bottom: 4px solid var(--shell-inverse-text, var(--paper));
  transition: border-color 0.2s var(--ease);
}
.search-hero-field:focus-within { border-color: var(--y); }
.search-hero input {
  min-width: 0;
  flex: 1;
  border: 0;
  background: transparent;
  color: var(--shell-inverse-text, var(--paper));
  caret-color: var(--y);
  font: 900 clamp(28px, 5.4vw, 56px)/1.15 var(--font-display);
  letter-spacing: -0.015em;
  padding: 0 0 clamp(10px, 2vw, 18px);
}
.search-hero input:focus { outline: none; }
.search-hero input::placeholder { color: var(--shell-muted, #9a9a97); opacity: 1; }
.search-hero input::-webkit-search-cancel-button { display: none; }
.search-hero button {
  align-self: center;
  flex: 0 0 auto;
  width: clamp(48px, 7vw, 60px);
  height: clamp(48px, 7vw, 60px);
  margin-bottom: clamp(10px, 2vw, 18px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--y);
  color: var(--on-accent, var(--ink));
  transition: background-color 0.15s var(--ease), transform 0.1s var(--ease);
}
.search-hero button:hover { background: var(--shell-inverse-text, var(--paper)); }
.search-hero button:active { transform: scale(0.94); }
.search-hero button:focus-visible { outline: none; background: var(--paper); color: var(--ink); }
.search-hero button svg { width: 45%; height: 45%; }
.search-hero-meta { margin-top: clamp(16px, 3vw, 24px); display: grid; gap: 16px; }
.search-count {
  font-size: 15px;
  font-weight: 700;
  color: var(--shell-muted, var(--gray-3));
}
.search-count .num { color: var(--y); font-weight: 900; }
.search-q { color: var(--shell-inverse-text, var(--paper)); font-weight: 800; }
.search-suggest {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--shell-muted, #9a9a97);
}
.search-suggest ul { display: flex; flex-wrap: wrap; gap: 8px; }
.tagchip--invert { border-color: var(--shell-rule, #444); color: var(--shell-inverse-text, var(--paper)); }
.tagchip--invert:hover { border-color: var(--y); background: var(--y); color: var(--on-accent, var(--ink)); }

/* ============================================================
   HERO (front page lead)
   ============================================================ */

.hero {
  padding-top: clamp(24px, 4vw, 44px);
  padding-bottom: clamp(28px, 5vw, 52px);
}
.hero-lead .kicker { margin-bottom: 14px; }
.hero-media { margin-bottom: 18px; }
.byline {
  display: flex;
  align-items: center;
  gap: 10px;
}
.byline .sep { color: var(--gray-3); }
.avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--gray-2);
  flex-shrink: 0;
  overflow: hidden;
  box-shadow: 0 0 0 2px var(--y);
}
.avatar img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }

/* ============================================================
   CARDS
   ============================================================ */

.card { position: relative; }
.card .ph { margin-bottom: 14px; }
.card .kicker { margin-bottom: 8px; }
.card .article-card-link::after,
.feed-item .article-card-link::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
}
.card .article-card-link:focus-visible,
.feed-item .article-card-link:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.card > .kicker,
.feed-item .kicker {
  position: relative;
  z-index: 2;
}
.card:has(.article-card-link:hover) .ph img,
.feed-item:has(.article-card-link:hover) .ph img {
  transform: scale(1.03);
}
.card-title {
  text-wrap: var(--wrap-teaser-titles, balance);
}

/* opinion strip */
.opinion {
  background: var(--y);
  color: var(--on-accent);
}
.opinion-card { position: relative; padding-top: 8px; }
.opinion-note {
  margin: 0;
}
.opinion-card::before {
  content: "„";
  font-family: var(--font-serif);
  font-size: 64px;
  font-weight: 700;
  line-height: 0.6;
  display: block;
  margin-bottom: 14px;
}
.opinion-title {
  text-wrap: var(--wrap-teaser-titles, balance);
  color: var(--on-accent);
}
.opinion-card .byline b { color: var(--on-accent); }
.opinion-card .byline { color: color-mix(in hsl, var(--on-accent) 64%, transparent); }
.opinion-card .avatar { box-shadow: 0 0 0 2px var(--on-accent); }

/* ============================================================
   FEED (latest list + archive lists) — infinite scroll host
   ============================================================ */

.feed { display: grid; }
.latest-more {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(24px, 4vw, 40px);
}
.latest-more .btn-y {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.adaptive-feed-origin + .adaptive-feed-origin .feed-item {
  border-top: var(--rule-thin);
  padding-top: 22px;
}
.feed-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 24px;
  padding: 22px 0;
  border-top: var(--rule-thin);
  align-items: start;
}
.feed-item:first-child { border-top: 0; padding-top: 0; }
.feed-item .kicker { margin-bottom: 7px; }
.feed-title {
  text-wrap: var(--wrap-teaser-titles, balance);
}
.feed-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.feed-item.is-new, .card.is-new {
  animation: rise 0.45s var(--ease) both;
  animation-delay: calc(var(--i, 0) * 70ms);
}

/* ============================================================
   SIDEBAR
   ============================================================ */

.sidebar { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 44px); }
.sb-label--link { display: block; }
.sb-label--link a {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.sb-label--link a > span { display: inline-flex; align-items: center; gap: 8px; }
.sb-label--link a::after {
  content: "›";
  width: 28px;
  height: 28px;
  font-size: 28px;
  line-height: 24px;
  text-align: center;
  transition: transform 0.2s var(--ease);
}
.sb-label--link a:hover::after { transform: translateX(4px); }
.sb-label--link a:active::after { transform: translateX(4px) scale(0.96); }

.sb-list > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  gap: 12px;
  padding: 12px 0;
  border-top: var(--rule-thin);
  align-items: center;
}
.sb-list > a:first-child { border-top: 0; padding-top: 0; }
.sb-list .ph { aspect-ratio: 1; }
/* text-only variant (Média runs without artwork for now) */
.sb-list--text a { grid-template-columns: minmax(0, 1fr); }

/* Native sidebar Query item presentations. The same Query source/count/order
   remains intact when editors switch styles on its Post Template block. */
:where(.contextus-sidebar-query, .sb-list) .wp-block-post {
  min-width: 0;
  margin: 0;
  padding: 12px 0;
  border-top: var(--rule-thin);
}
:where(.contextus-sidebar-query, .sb-list) .wp-block-post:first-child { padding-top: 0; border-top: 0; }
:where(.contextus-sidebar-query, .sb-list) .sb-list-title { margin: 0; }
:where(.contextus-sidebar-query, .sb-list) .sb-list-title a { display: block; padding: 0; border: 0; }
:where(.contextus-sidebar-query, .sb-list) .contextus-sidebar-item__media a { padding: 0; border: 0; }
.is-style-contextus-sidebar-text .contextus-sidebar-item__media,
.is-style-contextus-sidebar-ranked .contextus-sidebar-item__media { display: none; }
.is-style-contextus-sidebar-thumbnail .wp-block-post {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  gap: 12px;
  align-items: center;
}
.is-style-contextus-sidebar-thumbnail .contextus-sidebar-item__media { grid-column: 2; grid-row: 1; margin: 0; aspect-ratio: 1; }
.is-style-contextus-sidebar-thumbnail .contextus-sidebar-item__media img { width: 100%; height: 100%; object-fit: cover; }
.is-style-contextus-sidebar-thumbnail .sb-list-title { grid-column: 1; grid-row: 1; }
.is-style-contextus-sidebar-ranked { counter-reset: contextus-sidebar-rank; }
.is-style-contextus-sidebar-ranked .wp-block-post {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  counter-increment: contextus-sidebar-rank;
}
.is-style-contextus-sidebar-ranked .wp-block-post::before {
  color: transparent;
  font: 900 26px/1 var(--font-display);
  font-variant-numeric: tabular-nums;
  -webkit-text-stroke: 1.5px var(--gray-3);
  content: counter(contextus-sidebar-rank, decimal-leading-zero);
}

/* The sidebar grid already owns this rhythm. Neutralize Gutenberg flow's
   injected block margins so native widgets follow the app spacing. */
.contextus-native-latest .sidebar,
.contextus-native-latest .sidebar > *,
.contextus-native-latest .sb-block > *,
.contextus-native-latest .sb-list > * { margin-block-start: 0; }
.feed-item { cursor: default; }
.btn-y {
  background: var(--y);
  color: var(--on-accent, var(--ink));
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 12px 18px;
  min-height: 46px;
  transition: background-color 0.15s var(--ease), transform 0.1s var(--ease);
}
.btn-y:hover { background: #fff04d; }
.btn-y:active { transform: scale(0.96); }

.tagchip {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  border: 2px solid var(--ink);
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: background-color 0.15s var(--ease), transform 0.1s var(--ease);
}
.tagchip:hover { background: var(--y); color: var(--on-accent, var(--ink)); }
.tagchip:active { transform: scale(0.96); }

/* ============================================================
   WORDPRESS-NATIVE HOMEPAGE COMPOSITIONS
   Each Query composition owns its markup contract and styling. These are not
   positional variants of one universal article-card component.
   ============================================================ */
.contextus-home-hero-lead-card,
.contextus-home-hero-picks,
.contextus-home-section-feature-card,
.contextus-home-section-standard-card,
.contextus-home-feed-card { min-width: 0; }

.contextus-home-hero-lead-card > *,
.contextus-home-hero-picks > *,
.contextus-home-section-feature-card > *,
.contextus-home-section-feature-card__content > *,
.contextus-home-section-standard-card > *,
.contextus-home-section-standard-card__content > *,
.contextus-home-feed-card > * { margin-block-start: 0; }

.contextus-home-hero-lead-card__title,
.contextus-home-hero-pick__title,
.contextus-home-section-feature-card .is-style-article-card-title,
.contextus-home-section-standard-card .is-style-article-card-title,
.contextus-home-feed-card__title { text-wrap: var(--wrap-teaser-titles, balance); }
.contextus-home-hero-lead-card__title { text-wrap: var(--wrap-homepage-lead-title, balance); }

.contextus-home-hero-lead-card__title > a,
.contextus-home-hero-pick__title > a,
.contextus-home-section-feature-card .is-style-article-card-title > a,
.contextus-home-section-standard-card .is-style-article-card-title > a,
.contextus-home-feed-card__title > a {
  display: inline;
  background: linear-gradient(var(--y), var(--y)) 0 88% / 0 32% no-repeat;
  color: inherit;
  text-decoration: none;
  -webkit-box-decoration-break: slice;
  box-decoration-break: slice;
  transition: background-size .28s var(--ease);
}
.contextus-home-hero-lead-card__title > a:focus-visible,
.contextus-home-hero-pick__title > a:focus-visible,
.contextus-home-section-feature-card .is-style-article-card-title > a:focus-visible,
.contextus-home-section-standard-card .is-style-article-card-title > a:focus-visible,
.contextus-home-feed-card__title > a:focus-visible { background-size: 100% 32%; outline: none; }
@media (hover: hover) and (pointer: fine) {
  .contextus-home-hero-lead-card__title > a:hover,
  .contextus-home-hero-pick__title > a:hover,
  .contextus-home-section-feature-card .is-style-article-card-title > a:hover,
  .contextus-home-section-standard-card .is-style-article-card-title > a:hover,
  .contextus-home-feed-card__title > a:hover { background-size: 100% 32%; outline: none; }
}

.contextus-home-hero-lead-card__media,
.contextus-home-section-feature-card .is-style-card-media,
.contextus-home-section-standard-card .is-style-card-media,
.contextus-home-feed-card__media {
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.contextus-home-hero-lead-card__media :is(a, picture, img),
.contextus-home-section-feature-card .is-style-card-media :is(a, picture, img),
.contextus-home-section-standard-card .is-style-card-media :is(a, picture, img),
.contextus-home-feed-card__media :is(a, picture, img) { display: block; width: 100%; height: 100%; }
.contextus-home-hero-lead-card__media img,
.contextus-home-section-feature-card .is-style-card-media img,
.contextus-home-section-standard-card .is-style-card-media img,
.contextus-home-feed-card__media img { max-width: 100%; object-fit: cover; transition: transform .35s var(--ease); }

.contextus-home-hero-picks > .wp-block-post { padding: 18px 0; border-top: var(--rule-thin); }
.contextus-home-hero-picks > .wp-block-post:first-child { padding-top: 0; border-top: 0; }
.contextus-home-hero-pick__title { margin: 0; }
.contextus-home-hero-picks .kicker { margin: 0 0 6px; }
.contextus-home-hero-lead-card .kicker { margin: 0 0 14px; }
.contextus-home-hero-lead-card__media { margin-bottom: 18px; }
.contextus-home-hero-lead-card__excerpt,
.contextus-home-hero-lead-card__excerpt .wp-block-post-excerpt__excerpt { width: 100%; max-width: none; margin: 0 0 18px; }
.contextus-home-hero-lead-card__meta { gap: 0; margin: 0; }
.contextus-home-hero-lead-card__meta > * { margin: 0; }
.contextus-home-hero-lead-card__meta .wp-block-post-date::before { content: " · "; color: var(--gray-3); }
.contextus-home-section-feature-card,
.contextus-home-section-standard-card,
.contextus-home-feed-card { position: relative; }
.contextus-card-grid .wp-block-post-template { min-width: 0; }
.contextus-home-section-standard-card .is-style-card-media { aspect-ratio: 3 / 2; margin-bottom: 14px; }
.contextus-home-section-standard-card .is-style-article-card-title { margin-bottom: 10px; }
.contextus-home-section-standard-card .is-style-card-excerpt { max-width: none; margin: 0 0 10px; text-wrap: pretty; }
.contextus-home-section-standard-card .is-style-card-meta,
.contextus-home-section-feature-card .is-style-card-meta,
.contextus-home-feed-card__meta { gap: 0; margin: 0; }
.contextus-home-section-standard-card .wp-block-post-date::before,
.contextus-home-section-feature-card .wp-block-post-date::before,
.contextus-home-feed-card__meta .wp-block-post-date::before { content: " · "; }
.contextus-home-section-standard-card .is-style-card-meta > *,
.contextus-home-section-feature-card .is-style-card-meta > *,
.contextus-home-feed-card__meta > * { margin: 0; }

.contextus-home-section-feature-card__content { position: absolute; z-index: 1; right: 0; bottom: clamp(16px, 1.8vw, 24px); left: 0; margin: 0; padding: 16px 20px 18px; background: var(--paper); }
.contextus-home-section-feature-card__content::before { content: ""; display: block; width: 30px; height: 5px; margin-bottom: 12px; background: var(--y); }
.contextus-home-section-feature-card .is-style-feature-title { margin: 0 0 8px; }

.contextus-home-feed-card__excerpt { margin: 0 0 12px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.contextus-home-feed-card__title { margin: 0 0 8px; }
.contextus-home-feed-card__media { align-self: start; }

/* Composable cards are multi-action: links own only their content, not an
   overlay that intercepts future author, date or button blocks. */
.contextus-home-section-feature-card .is-style-article-card-title > a:focus-visible,
.contextus-home-section-standard-card .is-style-article-card-title > a:focus-visible,
.contextus-home-feed-card__title > a:focus-visible { outline: none; }
.contextus-home-section-standard-card .is-style-category-caption,
.contextus-home-feed-card .is-style-category-caption { position: relative; z-index: 2; margin-bottom: 8px; }
.contextus-home-section-feature-card:has(.is-style-article-card-title > a:hover) .is-style-card-media img,
.contextus-home-section-standard-card:has(.is-style-article-card-title > a:hover) .is-style-card-media img,
.contextus-home-feed-card:has(.contextus-home-feed-card__title > a:hover) .contextus-home-feed-card__media img { transform: scale(1.03); }

@media (max-width: 860px) {
  .contextus-home-section-feature-card .is-style-card-media { margin-bottom: 14px; }
  .contextus-home-section-feature-card__content { position: static; padding: 0; background: transparent; }
  .contextus-home-section-feature-card__content::before { content: none; }
  .contextus-home-hero-lead-card__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
}

/* wp-content/themes/contextus-block/assets/css/article.css */
/* ============================================================
   ARTICLE PAGE
   ============================================================ */

:where(.article-head) {
  padding-top: clamp(32px, 5vw, 56px);
  padding-bottom: clamp(20px, 3vw, 32px);
}
.article-head .kicker { margin-bottom: 16px; text-decoration: none; }
.article-title {
  margin-bottom: 22px;
  /* skip balance for now: text-wrap: var(--wrap-article-title, balance); */
  text-wrap: wrap;
}
/* standfirst: elegance carried by scale and measure alone */
.article-lede {
  margin-bottom: 30px;
  text-wrap: pretty;
}
:where(.article-metarow) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: var(--rule-thin);
  padding: 14px 0;
}
.article-share { position: relative; display: none; margin-inline-start: auto; gap: 4px; }
@media (min-width: 1081px) {
  .article-share { display: flex; }
}
.share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  appearance: none;
  background: transparent;
  color: var(--ink);
  box-shadow: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s var(--ease);
}
.share-btn svg { display: block; width: 18px; height: 18px; transition: transform 0.15s var(--ease); }
.article-share .share-btn:focus-visible { outline: none; box-shadow: none; background-color: var(--y, #ffe100); color: var(--ink, #111); }
.article-share .share-btn--copy:focus-visible { background: var(--ink); color: var(--paper); }
.share-btn:active { transform: scale(0.96); }
.share-btn--fb, .share-btn--fb:hover { background: #1877f2; color: #fff; }
.share-btn--copy, .share-btn--copy:hover { background: var(--y); color: var(--on-accent, var(--ink)); }
.share-btn--native, .share-btn--native:hover { background: var(--ink); color: var(--paper); }
@media (hover: hover) and (pointer: fine) {
  .share-btn:hover svg { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .share-btn, .share-btn svg { transition: none; transform: none; }
}
.article-share-status {
  position: absolute;
  z-index: 2;
  inset: calc(100% + 8px) 0 auto auto;
  width: max-content;
  max-width: 240px;
  padding: 7px 10px;
  background: var(--ink);
  color: var(--paper);
  font: 600 12px/1.4 var(--font-display);
  pointer-events: none;
}
.article-share-status:empty { display: none; }

.article-hero { max-width: 1040px; margin: 0 auto; }

/* Related selection stays custom; its composition and grid are native blocks. */
.contextus-related .adaptive-feed-origin,
.contextus-related .card { min-width: 0; }
.contextus-related .card { position: relative; }
.contextus-related .card .ph { margin-bottom: 14px; }
.contextus-related .card .kicker {
  position: relative;
  z-index: 2;
  margin-bottom: 8px;
}
.contextus-related .card .article-card-link::after,
.contextus-related .card .card-title a::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
}
.contextus-related .card .article-card-link:focus-visible,
.contextus-related .card .card-title a:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.contextus-related .card:has(.article-card-link:hover) .ph img,
.contextus-related .card:has(.card-title a:hover) .ph img { transform: scale(1.03); }
.contextus-related .card-title {
  margin: 0 0 10px;
  text-wrap: var(--wrap-teaser-titles, balance);
}
.contextus-related .card-excerpt {
  margin: 0 0 10px;
}
.contextus-related .card-meta {
  margin: 0;
}
.figcap,
.article-body figcaption,
.article-body .wp-caption-text {
  display: flex;
  gap: 10px;
  padding: 10px 0 0;
}
:where(.figcap, .article-body figcaption, .article-body .wp-caption-text) {
  color: var(--mute);
  font-family: var(--font-display);
  font-size: 12.5px;
  font-style: normal;
  line-height: 1.45;
}
.figcap::before,
.article-body figcaption::before,
.article-body .wp-caption-text::before { content: ""; width: 22px; height: 3px; background: var(--y); flex-shrink: 0; margin-top: 6px; }
.article-head figure,
.article-hero,
.article-body figure,
.contextus-related figure { margin: 0; }

/* article main + right rail */
:where(.article-layout) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(32px, 4vw, 64px);
}
.article-main {
  min-width: 0;
  /* Adaptive's sectionBaseSticky measures this element. Grid stretching would
     make the measured article follow the rail and create an unbounded loop. */
  align-self: start;
}

/* flex (not grid) so the sticky ad's containing block is the full column height */
:where(.rail) {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 40px);
  padding-top: clamp(28px, 4vw, 44px);
}
:where(.article-body) {
  max-width: 100%;
  margin: 0 auto;
  padding-top: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(28px, 4vw, 44px);
  color: var(--ink-soft);
}
.article-body .article-quiz:not(.article-quiz--unavailable) {
  min-height: min(520px, 72svh);
}
.article-body .article-quiz:not([data-quiz-state]),
.article-body .article-quiz[data-quiz-state="loading"] {
  border: 1px solid var(--gray-2);
  background: var(--paper-2);
}
.article-body .article-quiz[data-quiz-state="unavailable"] { min-height: 0; }
/* Foreground inherits from native block colors; Core owns explicit element
   overrides. Keep the default prose marker below native style specificity. */
:where(.article-body) a:not(:where([class*="is-style-surface-"] *, .has-text-color *, .has-background *, .has-link-color *, .wp-block-cover *)) {
  font-weight: 600;
  text-decoration: none;
  background-image: linear-gradient(var(--y), var(--y));
  background-repeat: no-repeat;
  background-size: 100% 28%;
  background-position: 0 92%;
  transition: background-size 0.2s var(--ease);
}
:where(.article-body) a:not(:where([class*="is-style-surface-"] *, .has-text-color *, .has-background *, .has-link-color *, .wp-block-cover *)):hover { background-size: 100% 100%; }
/* A yellow fill cannot guarantee contrast with an authored foreground. Native
   colored blocks keep their colors and identify links with an underline instead.
   Core element selectors outrank this fallback; section styles own their links. */
.article-body :where(a:is(.has-text-color a, .has-background a, .has-link-color a, .wp-block-cover a):not([class*="is-style-surface-"] *)) {
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .15em;
}
.article-body .lead-in::first-letter {
  float: left;
  padding: .06em .12em 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 3.4em;
  font-weight: 900;
  line-height: .82;
}
.article-body h2 {
  text-wrap: var(--wrap-article-headings, wrap);
}
.article-body h2 + p, .article-body h3 + p { margin-top: 0.85em; }
.article-body h3 {
  text-wrap: var(--wrap-article-headings, wrap);
}
.article-body h4 { text-wrap: var(--wrap-article-headings, wrap); }

/* Restore only the archived H2 marker. Typography, margins and wrapping
   remain owned by the current native styles. Apply to default prose headings,
   not gallery/card/feature headings or an explicitly selected block style. */
:where(.article-body, .is-style-article-prose) :where(h2:not([class*="is-style-"]):not(.content-gallery *, .wp-block-query *, .wp-block-cover *, .wp-block-contextus-related-article *))::before {
  content: "";
  display: block;
  width: 34px;
  height: 4px;
  background: var(--y);
  margin-bottom: 14px;
}

/* Toplista keeps a distinct article shell while Core Page Break owns routing. */
.contextus-toplist-shell { padding-top: clamp(22px, 4vw, 44px); }
.contextus-toplist-shell > .article-hero,
.contextus-toplist-shell > .gallery-lead { margin-bottom: clamp(18px, 3vw, 32px); }
.contextus-toplist-content {
  padding-top: clamp(22px, 3vw, 34px);
}
.contextus-toplist-page-anchor { display: block; height: 0; }
.contextus-toplist-content > .wp-block-post-content > :first-child { margin-top: 0; }
.article-body .contextus-toplist-intro,
.article-body .contextus-toplist-item { display: flow-root; }
.article-body .contextus-toplist-item > h2:first-child { margin-top: 0; }
.article-body .contextus-toplist-item > h2:first-child + * { margin-top: .85em; }
/* Article continuation: one clear primary action, quieter backward navigation. */
.contextus-page-nav {
  container-type: inline-size;
  width: min(100%, 820px);
  margin: clamp(32px, 5vw, 52px) auto 0;
  padding-top: 28px;
  border-top: var(--rule-thin);
}
.article-body .contextus-page-message {
  grid-column: 1 / -1;
  margin: 0 0 22px;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
  text-wrap: pretty;
}
.article-body .contextus-page-position {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--mute);
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.contextus-page-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 18px 16px;
}
.contextus-page-links { display: contents; }
.contextus-page-controls .contextus-page-link--previous { grid-area: 1 / 1; justify-self: start; }
.contextus-page-controls .contextus-page-link--next { grid-area: 1 / 2; justify-self: end; }
.article-body .contextus-page-position { grid-row: 2; }
.contextus-page-nav--first .contextus-page-controls { grid-template-columns: minmax(0, 1fr); }
.contextus-page-nav--first .contextus-page-link--next { grid-area: 1 / 1; justify-self: center; width: 82%; }
.contextus-page-nav--last .contextus-page-controls { grid-template-columns: minmax(0, 1fr) auto; }
.article-body .contextus-page-nav--last .contextus-page-position { grid-area: 1 / 2; justify-self: end; }
/* Use available article width, not viewport width: a rail can narrow the pager. */
@container (min-width: 560px) {
  .contextus-page-nav--middle .contextus-page-controls { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
  .contextus-page-nav--middle .contextus-page-link--next { grid-column: 3; }
  .article-body .contextus-page-nav--middle .contextus-page-position { grid-area: 1 / 2; }
}
.article-body .contextus-page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  transition: background-color .15s var(--ease), color .15s var(--ease);
}
/* The font's arrow glyph sits below the optical center of uppercase labels. */
.contextus-page-link > span[aria-hidden="true"] {
  flex: 0 0 auto;
  letter-spacing: 0;
  transform: translateY(-1px);
}
.contextus-page-link--previous { flex: 0 0 auto; }
.article-body .contextus-page-link--next {
  border-color: transparent;
  background: var(--y);
  color: var(--on-accent, var(--ink));
}
.article-body .contextus-page-link:is(:hover, :active) { background: var(--ink); color: var(--paper); }
.article-body .contextus-page-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.contextus-page-link.contextus-page-link--mobile-next { display: none; }
.contextus-after-intro-anchor {
  display: block;
  height: 0;
  scroll-margin-block-start: calc(var(--contextus-header-height) + 16px);
}
@media (max-width: 782px) {
  .contextus-page-link.contextus-page-link--desktop-next { display: none; }
  .contextus-page-link.contextus-page-link--mobile-next { display: inline-flex; }
}
@container (max-width: 559px) {
  .contextus-page-controls { gap: 16px 10px; }
  .article-body .contextus-page-link { padding: 12px 14px; max-width: 100%; }
  .contextus-page-nav--first .contextus-page-link--next { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .article-body .contextus-page-link { transition: none; }
}
.article-body :where(ul, ol) {
  padding-inline-start: 1.45em;
  list-style-position: outside;
}
.article-body ul { list-style-type: disc; }
.article-body ol { list-style-type: decimal; }
.article-body :where(p, li) { text-wrap: var(--wrap-longform-prose, wrap); }
.article-body li + li { margin-block-start: 0.55em; }
.article-body .wp-block-post-content > :where(figure, .wp-block-image, .wp-block-gallery, .wp-block-embed) {
  margin-block: var(--article-media-block-spacing);
  margin-inline: 0;
}
.article-body .article-image img { width: 100%; height: auto; }
.article-body :is(figcaption, .wp-caption-text) { text-wrap: pretty; }
.article-body mark.inline-highlight {
  padding: 0 .12em;
  background: var(--y);
  color: var(--on-accent, var(--ink));
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* quotes: the text runs over an oversized yellow mark anchored top-left */
.article-body blockquote {
  position: relative;
  margin: 1.7em 0;
  padding: 0.5em 0 0 clamp(8px, 1.2vw, 14px);
}
.article-body blockquote::before {
  content: "„";
  position: absolute;
  left: -0.05em;
  top: -0.72em;
  font-family: var(--font-display);
  font-size: clamp(110px, 13vw, 150px);
  font-weight: 900;
  line-height: 1;
  color: var(--y);
  pointer-events: none;
}
.article-body blockquote p {
  position: relative;
  text-wrap: var(--wrap-longform-prose, wrap);
}
.article-body blockquote p + p { margin-top: 0.7em; }
.article-body blockquote a {
  background-image: none;
  color: inherit;
  text-decoration: none;
}
.article-body blockquote cite {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
}
.article-body blockquote cite::before { content: ""; width: 18px; height: 3px; background: var(--y); }

.article-tagbar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  margin: 0 0 16px;
}
.article-tags-primary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.article-tagbar.is-enhanced .article-tags-primary {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  overflow: hidden;
}
.article-tagbar .tagchip,
.article-tagbar > a,
.article-tags-overflow summary {
  /* Enhanced links must retain the native Post Terms variation typography,
     rather than the generic homepage chip's fixed font size. */
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border: 1px solid var(--gray-2);
  padding: 2px 8px;
  text-decoration: none;
  transition: background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .1s var(--ease);
  white-space: nowrap;
}
.article-tagbar .tagchip:is(:hover, :focus-visible),
.article-tagbar > a:is(:hover, :focus-visible),
.article-tags-overflow summary:is(:hover, :focus-visible),
.article-tags-overflow[open] summary {
  background: var(--y);
  border-color: var(--ink);
  color: var(--on-accent, var(--ink));
}
.article-tagbar .tagchip:focus-visible,
.article-tagbar > a:focus-visible,
.article-tags-overflow summary:focus-visible { outline: none; }
.article-tagbar .tagchip:active,
.article-tagbar > a:active,
.article-tags-overflow summary:active { transform: scale(.96); }
.article-tags-overflow { position: relative; flex: 0 0 auto; }
.article-tags-overflow summary { cursor: pointer; list-style: none; }
.article-tags-overflow summary::marker { content: ""; }
.article-tags-overflow summary::-webkit-details-marker { display: none; }
.article-tags-overflow-list {
  position: absolute;
  z-index: 12;
  top: calc(100% + 6px);
  right: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: min(320px, calc(100vw - 32px));
  border: 1px solid var(--gray-2);
  padding: 10px;
  background: var(--paper);
}


/* Configured house cards are stable first-party content before and after the
   optional runtime starts. Proposed inventory never flashes during hydration. */
[data-adaptive-placement="proposed"] { display: none; }
.adaptive-origin:empty { display: none; }
.ads-enabled [id^="contextus_"][id*="_pc_970_"],
.ads-enabled [id^="contextus_"][id*="_pc_640_"],
.ads-enabled [id^="contextus_"][id*="_pc_300_"] { min-height: 250px; }
@media (max-width: 620px) {
  .ads-enabled [id^="contextus_"][id*="_mobil_300_"] { min-height: 250px; }
}

/* continuous article stream */
.stream-boundary {
  background: var(--ink);
  color: var(--paper);
  margin-top: clamp(36px, 6vw, 64px);
}
.stream-boundary__inner {
  width: min(100%, calc(var(--wp--style--global--wide-size) + 2 * var(--wp--preset--spacing--gutter)));
  margin-inline: auto;
  padding-inline: var(--wp--preset--spacing--gutter);
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}
.stream-boundary .flag { width: 10px; height: 10px; background: var(--y); flex-shrink: 0; }
.stream-boundary .stream-count {
  margin-left: auto;
  color: var(--gray-3);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.1em;
}
.stream-article { animation: rise 0.5s var(--ease) both; }

.stream-next-link { display: block; margin-block: 2rem; padding: 1rem; border-block: var(--rule-thin); }

/* Insertion hosts remain empty without adding spacing, including ad-free staging. */
[data-contextus-ad-role="end"]:empty,
[data-contextus-ad-role="video"]:empty,
[data-contextus-ad-role="lead"]:empty,
[data-contextus-ad-role^="heading-"]:empty,
[data-contextus-ad-role^="rail-"]:empty {
  /* Keep insertion width measurable without an empty WordPress block gap. */
  min-height: 0;
  height: 0;
  margin-block: 0 !important;
  padding-block: 0;
}

/* Mobile editorial media may use the viewport; prose and captions keep gutters.
   Contextus Ads owns bare top-level section wrappers for provider positions.
   Include those wrappers, never nested cards, ad creatives or floated media. */
@media (max-width: 600px) {
  :is(.article-body, .is-style-article-prose, .is-style-article-prose > section:not([class]):not([style])) > :is(figure.wp-block-image, figure.content-gallery):not(.alignleft):not(.alignright) {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
  }
  :is(.article-body, .is-style-article-prose, .is-style-article-prose > section:not([class]):not([style])) > figure.wp-block-image:not(.alignleft):not(.alignright) > :is(img, a),
  :is(.article-body, .is-style-article-prose, .is-style-article-prose > section:not([class]):not([style])) > figure.wp-block-image:not(.alignleft):not(.alignright) > a > img {
    display: block;
    width: 100%;
    height: auto;
  }
  :is(.article-body, .is-style-article-prose, .is-style-article-prose > section:not([class]):not([style])) > :is(figure.wp-block-image, figure.content-gallery):not(.alignleft):not(.alignright) > :is(figcaption, .gallery-bar, .gallery-caption) {
    padding-inline: var(--wp--preset--spacing--gutter, 20px);
  }
}

/* wp-content/themes/contextus-block/assets/css/footer.css */
/* ============================================================
   FOOTER
   ============================================================ */

.footer {
  --footer-surface: #111111;
  --footer-text: #ffffff;
  background: var(--footer-surface);
  color: var(--footer-text);
  margin-top: clamp(32px, 6vw, 64px);
}
.footer-top {
  align-items: flex-start;
}
.footer .brand { width: 210px; justify-self: start; }
.footer-claim { margin-top: 14px; max-width: 34ch; }
.footer-social { display: flex; gap: 2px; margin-top: 18px; margin-left: -12px; }
.footer-social a {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s var(--ease);
}
.footer-social :where(a):hover { color: var(--y); }
.footer-social svg { width: 20px; height: 20px; }
.footer-col h2, .footer-col h4 {
  margin-bottom: 14px;
}
.footer-col h2::before, .footer-col h4::before {
  content: "";
  display: block;
  width: 18px;
  height: 3px;
  background: var(--y);
  margin-bottom: 10px;
}
.footer-col a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  transition: color 0.15s var(--ease);
}
.footer-col :where(a):hover { color: var(--y); }
.footer-col li { display: block; }
.footer-bottom { border-top: 1px solid var(--shell-rule, #2c2c2c); }
.footer-bottom .yline { display: inline-flex; align-items: center; gap: 8px; }
.footer-bottom .yline::before { content: ""; width: 18px; height: 3px; background: var(--y); }

/* wp-content/themes/contextus-block/assets/css/ads.css */
/* ============================================================
   AD SLOTS (kept honest, styled quiet)
   ============================================================ */

.adslot {
  padding: 18px 0;
  display: grid;
  justify-items: center;
  gap: 6px;
}
/* The box reserves the placement while its first-party HTML creative remains
   useful on its own. Adaptive renders commercial inventory in its own mapped
   container; no empty overlay sits above the house link. */
.adslot-box {
  width: 100%;
  max-width: 728px;
  height: 90px;
  background: var(--gray-1);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.house-creative {
  --house-bg: var(--paper);
  --house-fg: var(--ink);
  --house-cta-bg: var(--ink);
  --house-cta-fg: var(--paper);
  position: absolute;
  z-index: 1;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "kicker brand"
    "title brand"
    "body brand"
    "action brand";
  align-content: center;
  gap: 7px clamp(18px, 3vw, 34px);
  padding: clamp(18px, 4vw, 38px);
  overflow: hidden;
  isolation: isolate;
  background: var(--house-bg);
  background-image: none;
  color: var(--house-fg);
  text-decoration: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-property: opacity, visibility, filter;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.house-creative::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 0 0 auto;
  width: min(36%, 270px);
  background: repeating-linear-gradient(135deg, currentColor 0 2px, transparent 2px 15px);
  opacity: .055;
  pointer-events: none;
}
.house-creative--linked { cursor: pointer; }
.house-creative--linked:hover { filter: saturate(1.08) contrast(1.02); }
.house-creative--linked:focus-visible {
  outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em;
}
.house-creative__kicker {
  grid-area: kicker;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  align-self: end;
  font: 900 10px/1 var(--font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.house-creative__signal {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  background: currentColor;
}
.house-creative__title {
  grid-area: title;
  min-width: 0;
  font: 800 clamp(20px, 3.2vw, 42px)/.98 var(--font-display);
  letter-spacing: -.045em;
  text-wrap: balance;
}
.house-creative__body {
  grid-area: body;
  max-width: 620px;
  margin: 1px 0 0;
  font: 16px/1.35 var(--font-serif);
  text-wrap: pretty;
}
.house-creative__action {
  grid-area: action;
  width: fit-content;
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
  padding: 0 14px;
  background: var(--house-cta-bg);
  color: var(--house-cta-fg);
  font: 800 12px/1 var(--font-display);
  letter-spacing: .04em;
  text-transform: uppercase;
  transition-property: scale, background-color, color, box-shadow;
  transition-duration: 140ms;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.house-creative--linked:hover .house-creative__action {
  background: transparent;
  color: currentColor;
  box-shadow: inset 0 0 0 2px currentColor;
}
.house-creative--linked:active .house-creative__action { scale: .96; }
.house-creative__brand {
  grid-area: brand;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  color: currentColor;
  opacity: .14;
  rotate: -7deg;
}
.house-creative__brand b {
  font: 900 clamp(72px, 13vw, 160px)/.68 var(--font-display);
  letter-spacing: -.12em;
}
.house-creative__brand small {
  margin-top: 8px;
  font: 900 9px/1 var(--font-display);
  letter-spacing: .2em;
  text-transform: uppercase;
}
.house-creative__tags {
  grid-area: action;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}
.house-creative__tags a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border: 1px solid currentColor;
  padding: 0 13px;
  color: currentColor;
  background: transparent;
  background-image: none;
  font: 700 12px/1 var(--font-display);
  text-decoration: none;
  transition-property: background-color, color, scale;
  transition-duration: 140ms;
  transition-timing-function: cubic-bezier(.2, 0, 0, 1);
}
.house-creative__tags a:hover { background: var(--house-cta-bg); color: var(--house-cta-fg); }
.house-creative__tags a:active { scale: .96; }

.house-creative--yellow { --house-bg: var(--y); }
.house-creative--violet { --house-bg: #ddd2f0; }
.house-creative--paper { --house-bg: #f4f1e9; }
.house-creative--black {
  --house-bg: var(--ink);
  --house-fg: var(--paper);
  --house-cta-bg: var(--y);
  --house-cta-fg: var(--ink);
}
.house-creative--blue { --house-bg: #cfe5f2; }
.house-creative--red { --house-bg: #efc6bc; }

.ads-cmp-inactive .house-creative,
.ads-consented.ads-adblocked .house-creative,
.adslot--unfilled .house-creative { opacity: 1; visibility: visible; pointer-events: auto; }

.adslot--rect .house-creative,
.adslot--half .house-creative,
.adslot--inarticle .house-creative,
.adslot--passback .house-creative {
  grid-template-columns: 1fr;
  grid-template-areas: "kicker" "title" "body" "action";
  align-content: start;
  gap: 8px;
  padding: 24px 20px;
}
.adslot--rect .house-creative__title,
.adslot--inarticle .house-creative__title,
.adslot--passback .house-creative__title { font-size: 29px; }
.adslot--rect .house-creative__body,
.adslot--inarticle .house-creative__body,
.adslot--passback .house-creative__body { font-size: 15px; }
.adslot--rect .house-creative__brand,
.adslot--half .house-creative__brand,
.adslot--inarticle .house-creative__brand,
.adslot--passback .house-creative__brand {
  position: absolute;
  right: 15px;
  bottom: 17px;
}
.adslot--rect .house-creative__brand b,
.adslot--inarticle .house-creative__brand b,
.adslot--passback .house-creative__brand b { font-size: 94px; }
.adslot--rect .house-creative { gap: 6px; padding: 18px; }
.adslot--rect .house-creative__title { font-size: 26px; }
.adslot--rect .house-creative__body { font-size: 14px; }
.adslot--rect .house-creative__action,
.adslot--rect .house-creative__tags { margin-top: 4px; }
.adslot--half .house-creative { align-content: center; }
.adslot--half .house-creative__title { font-size: 38px; }

.adslot:not([class*="adslot--"]) .house-creative {
  grid-template-columns: minmax(0, 1fr) auto 54px;
  grid-template-areas: "kicker action brand" "title action brand";
  align-content: center;
  gap: 3px 16px;
  padding: 8px 16px;
}
.adslot:not([class*="adslot--"]) .house-creative__kicker { font-size: 8px; }
.adslot:not([class*="adslot--"]) .house-creative__title {
  font-size: clamp(13px, 2.4vw, 17px);
  line-height: 1.05;
}
.adslot:not([class*="adslot--"]) .house-creative__body,
.adslot:not([class*="adslot--"]) .house-creative__tags { display: none; }
.adslot:not([class*="adslot--"]) .house-creative__action {
  grid-area: action;
  align-self: center;
  margin-top: 0;
}
.adslot:not([class*="adslot--"]) .house-creative__brand b { font-size: 52px; }
.adslot:not([class*="adslot--"]) .house-creative__brand small { display: none; }

@media (max-width: 620px) {
  .adslot:not([class*="adslot--"]) .house-creative {
    grid-template-columns: minmax(0, 1fr) 40px;
    grid-template-areas: "kicker action" "title action";
    gap: 3px 10px;
    padding: 6px 12px;
  }
  .adslot:not([class*="adslot--"]) .house-creative__brand { display: none; }
  .adslot:not([class*="adslot--"]) .house-creative__action { width: 40px; padding: 0; }
  .adslot:not([class*="adslot--"]) .house-creative__action-label { display: none; }
}

/* Zone-state visibility. Proposed placements are dev-preview only. A blocked,
   failed or individually unfilled zone reveals its house card; an authoritative
   empty result without useful first-party content collapses the reservation. */
body.ads-debug [data-adaptive-placement="proposed"] { display: grid; }
.ads-enabled .adslot--unfilled { display: grid; }
.ads-enabled .adslot--filled .adslot-box { display: none; }
body .adslot.adslot--collapsed:not(.adslot--staff-preview) {
  display: none;
  min-height: 0;
  margin: 0;
  border: 0;
  padding-block: 0;
}

.adslot--opener .adslot-box { max-width: 970px; height: 313px; }
.adslot--header { padding-block: 24px; }
.adslot--header.adslot--opener { min-height: 361px; }
.adslot--rect { min-height: 349px; }
.adslot--header.adslot--rect { min-height: 361px; }
.adslot--rect .adslot-box { max-width: 300px; height: 313px; }
.adslot--half .adslot-box { max-width: 300px; height: 600px; }
.adslot--inarticle { min-height: 465px; }
.adslot--inarticle .adslot-box { max-width: 640px; height: 423px; }
.adslot--billboard { min-height: 499px; }
.adslot--billboard .adslot-box { max-width: 970px; height: 463px; }
.adslot--category { min-height: 459px; }
.adslot--category .adslot-box { max-width: 640px; height: 423px; }
.adslot--passback { min-height: 385px; }
.adslot--passback .adslot-box { max-width: 640px; height: 343px; }
.adslot--video .adslot-box { max-width: 640px; height: auto; aspect-ratio: 16 / 9; }

/* Adaptive Premium page-effect compatibility.
   A skin may reparent the desktop header zone, while an interstitial can fill
   independently after the header reports empty. Either observable page-level
   effect replaces the publisher header reservation. If a provider race leaves
   the skin zone in our origin, cap its document-height inline minimum so it
   cannot cover the article. */
body.ads-skin-active .adslot--header:not(.adslot--staff-preview),
body.ads-interstitial-active .adslot--header:not(.adslot--staff-preview) {
  display: none;
  min-height: 0;
  padding-block: 0;
}
.adslot--header .adaptive-origin > .skin-zone-style {
  position: relative !important;
  height: 250px !important;
  min-height: 0 !important;
  max-height: 250px !important;
  overflow: hidden;
}

/* Adaptive wraps sticky-capable leaderboard inventory in a runway whose inline
   min-height depends on when the script initializes. The header placement is
   fixed in our document flow, so keep only the creative and disclosure chrome;
   otherwise consent can add an arbitrary 100px+ layout shift. */
.adslot--header .am-sticky-container { min-height: 0 !important; }

/* Authenticated publisher preview. Keep every declared placement inspectable,
   including inventory disabled in the current runtime configuration. The
   marker is presentation-only and cannot intercept creative interaction. */
body .adslot.adslot--staff-preview {
  position: relative;
  display: grid;
  outline: 1px dashed color-mix(in srgb, var(--ink) 38%, transparent);
  outline-offset: -1px;
}
.adslot-staff-label {
  position: absolute;
  z-index: 20;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  max-width: calc(100% - 24px);
  translate: -50% -50%;
  padding: 7px 10px;
  border: 1px solid var(--ink);
  background: color-mix(in srgb, var(--y) 92%, var(--paper));
  color: var(--ink);
  box-shadow: 3px 3px 0 rgb(0 0 0 / .18);
  font: 800 10px/1.25 var(--font-display);
  letter-spacing: .035em;
  overflow-wrap: anywhere;
  text-align: center;
  pointer-events: none;
}
.article-body .adslot,
.feed > .adslot {
  border-top: var(--rule-thin);
  border-bottom: var(--rule-thin);
  padding: 20px 0;
  margin: 2.4em 0;
}
.feed > .adslot { margin: 0; border-bottom: 0; }
.adaptive-feed-origin > .adslot { margin: 0; border-bottom: 0; }

@media (max-width: 860px) {
  .adslot.only-desktop,
  .adaptive-origin.only-desktop { display: none; }
}
@media (min-width: 861px) {
  .adslot.only-mobile,
  .adaptive-origin.only-mobile { display: none; }
}
@media (min-width: 621px) {
  .only-phone { display: none; }
}
@media (max-width: 620px) {
  .masthead .brand { width: min(190px, calc(100vw - 120px)); }
  .adslot--header.adslot--opener { min-height: 298px; }
  .adslot--inarticle .adslot-box,
  .adslot--passback .adslot-box,
  .adslot--category .adslot-box { max-width: 300px; height: 313px; }
  .adslot--inarticle,
  .adslot--passback,
  .adslot--category { min-height: 355px; }
  .adslot--inarticle .house-creative,
  .adslot--passback .house-creative {
    grid-template-columns: 1fr;
    grid-template-areas: "kicker" "title" "body" "action";
    align-content: start;
    gap: 7px;
    padding: 22px 18px;
  }
  .adslot--inarticle .house-creative__title,
  .adslot--passback .house-creative__title { font-size: 29px; }
  .adslot--inarticle .house-creative__body,
  .adslot--passback .house-creative__body { font-size: 15px; }
  .adslot--inarticle .house-creative__brand,
  .adslot--passback .house-creative__brand {
    position: absolute;
    right: 14px;
    bottom: 14px;
  }
  .adslot--inarticle .house-creative__brand b,
  .adslot--passback .house-creative__brand b { font-size: 82px; }
}

/* wp-content/themes/contextus-block/assets/css/responsive.css */
/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1080px) {
  .article-layout { grid-template-columns: 1fr; }
  /* The article's rail is desktop-only, including its native template-part
     wrapper. Hiding just the ad mount leaves the editorial rail below prose. */
  .article-layout > .rail,
  .article-layout > .wp-block-template-part:has(.rail) { display: none; }
}

@media (max-width: 781px) {
  /* Core serializes sticky position inline and has no responsive control. */
  .sidebar { position: static !important; }
}

@media (max-width: 620px) {
  .feed-item { grid-template-columns: minmax(0, 1fr) 108px; }
  .feed-item .ph { order: 2; }
  .article-metarow { flex-direction: column; align-items: flex-start; }
  .article-hero .figcap {
    display: flex;
    visibility: visible;
    opacity: 1;
    padding: 10px 2px 0;
  }
  /* footer: compact editorial stack — link lists flow inline instead of
     one tall monotonous column */
  .footer-top > div:first-child { padding-bottom: 24px; border-bottom: 0; }
  .footer .brand { width: 180px; }
  .footer-claim { max-width: none; }
  .footer-col { padding: 18px 0 22px; border-top: 1px solid #2c2c2c; }
  .footer-col h2, .footer-col h4 { margin-bottom: 4px; }
  .footer-col ul { display: flex; flex-wrap: wrap; column-gap: 26px; }
  .footer-col a { min-height: 44px; }
  .footer-bottom .is-style-footer-bottom-copy {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding-top: 20px;
    padding-bottom: 26px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
  .feed-item.is-new, .card.is-new { opacity: 1; transform: none; }
}

/* wp-content/themes/contextus-block/assets/css/theme-extras.css */
/* Shared native component presentation for the frontend and editor canvas.
   Document-only masthead positioning belongs to shell.css; moving these
   navigation/search rules there would drop the editor's presentation. */

/* WordPress-native editorial primitives. Composition geometry belongs to the
   homepage or archive stylesheet rather than to a universal card role. */
.is-style-editorial-lead { max-width: 42em; text-wrap: pretty; }
.is-style-category-caption {
  margin: 0 0 6px;
}
.is-style-category-caption a { color: inherit; text-decoration: none; }
.contextus-emphasized-post-title { /* skip balance for now: text-wrap: var(--wrap-article-title, balance); */
  text-wrap: wrap; }
.contextus-emphasized-post-title mark { background: transparent; color: inherit; padding-inline: 0; }
.article-title mark,
.contextus-editorial-opening .contextus-emphasized-post-title mark {
  background: var(--y);
  color: var(--on-accent, var(--ink));
  padding-inline: .06em;
}
.wp-block-post-title.is-style-homepage-lead-title { text-wrap: var(--wrap-homepage-lead-title, pretty); }
.wp-block-post-title:is(.is-style-teaser-title, .is-style-article-card-title, .is-style-feed-title, .is-style-opinion-title) {
  text-wrap: var(--wrap-teaser-titles, pretty);
}
.wp-block-post-title:is(.is-style-teaser-title, .is-style-article-card-title, .is-style-feed-title, .is-style-opinion-title) > a {
  background-image: linear-gradient(var(--y), var(--y));
  background-repeat: no-repeat;
  background-position: 0 88%;
  background-size: 0 32%;
  color: inherit;
  text-decoration: none;
  -webkit-box-decoration-break: slice;
  box-decoration-break: slice;
  transition: background-size .28s var(--ease);
}
.wp-block-post-title:is(.is-style-teaser-title, .is-style-article-card-title, .is-style-feed-title, .is-style-opinion-title) > a:is(:hover, :focus-visible) { background-size: 100% 32%; outline: none; }

.wp-block-image.is-style-editorial-caption figcaption { border-inline-start: 3px solid var(--y); padding-inline-start: 12px; text-align: start; text-wrap: pretty; }

.opinion-card > * { margin-block-start: 0; }
.opinion-card .byline { margin: 0; }
.opinion-card .wp-block-avatar:empty { display: none; }

/* Shared pagination frame; Core Query Pagination owns its controls. */
.pagination {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: 18px clamp(24px, 4vw, 48px);
  margin-block-start: clamp(32px, 5vw, 56px);
  padding-block-start: 20px;
  border-block-start: 3px solid var(--ink);
  font-family: var(--font-display);
}
.pagination::before {
  content: "";
  position: absolute;
  inset-block-start: -3px;
  inset-inline-start: 0;
  width: 64px;
  height: 3px;
  background: var(--y);
}
/* Native Query Pagination keeps navigation semantics and URL ownership in core. */
.contextus-main-query > .wp-block-query-pagination {
  display: grid !important;
  grid-template-columns: minmax(96px, auto) minmax(0, 1fr) minmax(96px, auto);
  align-items: center;
  gap: clamp(8px, 2vw, 20px);
}

/* Core owns navigation/search behavior; Contextus owns their masthead composition. */
.adaptive-skin-header-boundary { width: 100%; }
.contextus-native-masthead:not(.has-background) { background: var(--paper); }
.contextus-native-masthead:not(.has-text-color) { color: var(--ink); }
.contextus-native-masthead .custom-logo-link,
.contextus-native-footer .custom-logo-link {
  display: block;
  color: inherit;
}
.contextus-native-masthead .custom-logo,
.contextus-native-footer .custom-logo {
  opacity: 1;
  filter: none;
}
/* Core owns the Group layout and saved spacing. These fallback values also
   support existing saved headers that predate the native spacing defaults. */
:where(.contextus-native-masthead__inner) {
  align-items: center;
  gap: 12px;
  padding: clamp(18px, 3.5vw, 30px) var(--wp--preset--spacing--gutter) clamp(14px, 3vw, 24px);
}
.contextus-native-masthead__tag {
  margin: 0;
  color: var(--mute);
  font: 700 11px/1.3 var(--font-display);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.contextus-native-masthead__brand {
  justify-self: center;
  width: clamp(190px, 36vw, 320px);
  max-width: 100%;
  margin: 0;
  line-height: 0;
  text-align: center;
}
.contextus-native-masthead__brand img { width: 100%; height: auto; }
.contextus-native-masthead__brand .wp-block-site-logo { margin: 0; }
.contextus-native-masthead__brand:has(.custom-logo) .wp-block-site-title { display: none; }
.contextus-native-masthead__brand .wp-block-site-title {
  margin: 0;
  color: inherit;
  font: 950 clamp(34px, 5vw, 58px)/.8 var(--font-display);
  letter-spacing: -.065em;
  text-transform: uppercase;
  white-space: nowrap;
}
.contextus-native-masthead__brand .wp-block-site-title a { color: inherit; text-decoration: none; }
.contextus-native-masthead__actions {
  justify-self: end;
}
:where(.contextus-native-masthead__actions) { gap: 4px; }
.contextus-native-navigation { margin: 0; line-height: 1; }
.contextus-native-navigation .wp-block-navigation__responsive-container-open { min-inline-size: 44px; min-block-size: 44px; display: inline-flex; align-items: center; justify-content: center; color: inherit; }
.contextus-navigation-overlay { min-block-size: 100dvh; padding-bottom: max(var(--wp--preset--spacing--60), env(safe-area-inset-bottom)); }
.contextus-navigation-overlay .wp-block-navigation-item__content { overflow-wrap: anywhere; }
.contextus-navigation-overlay :where(.wp-block-search__input) { min-inline-size: 0; color: inherit; background: transparent; }
.contextus-navigation-overlay a:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; }
.contextus-navigation-overlay button:focus-visible, .contextus-native-navigation button:focus-visible { outline: none; box-shadow: none; background-color: var(--y, #ffe100); color: var(--ink, #111); }
.contextus-navigation-overlay .contextus-overlay-menu a:focus-visible { text-decoration: none; }
.contextus-navigation-overlay .wp-block-search__button:focus-visible { background: var(--paper); color: var(--ink); }
.contextus-navigation-overlay .wp-block-navigation-overlay-close { min-inline-size: 44px; min-block-size: 44px; }
/* Both full-screen surfaces use Core navigation overlays and their focus handling. */
.contextus-native-search-navigation { margin: 0; line-height: 1; }
.contextus-native-search-navigation .wp-block-navigation__responsive-container-open {
  min-inline-size: 44px; min-block-size: 44px; padding: 10px; color: inherit;
  background: no-repeat center / 24px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E");
}
.contextus-native-search-navigation .wp-block-navigation__responsive-container-open svg { visibility: hidden; }
.contextus-native-search-navigation button:focus-visible { outline: none; box-shadow: none; background-color: var(--y, #ffe100); color: var(--ink, #111); }
.contextus-fullscreen-search { display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; }
.contextus-fullscreen-search > .wp-block-group { margin: 0; position: absolute; top: 32px; left: var(--wp--preset--spacing--gutter); right: var(--wp--preset--spacing--gutter); width: auto; max-width: none; }
.contextus-fullscreen-search > .contextus-overlay-search { width: min(100%, 760px); margin-block-start: 80px; }
.contextus-navigation-overlay.contextus-fullscreen-search .contextus-overlay-search .wp-block-search__input { font-size: clamp(28px, 5vw, 48px); }
.contextus-search-hints { width: min(100%, 760px); margin: 18px auto 0; font: 700 13px/1.5 var(--font-display); }
.contextus-search-hints a { margin-inline-end: 16px; }
:where(.contextus-search-hints) { color: color-mix(in srgb, currentColor 64.3%, transparent); }
.contextus-navigation-overlay :where(a) { color: inherit; }
.contextus-overlay-brand { margin: 0; }
.contextus-overlay-brand .wp-block-site-logo { margin: 0; }
.contextus-native-masthead .contextus-overlay-brand .custom-logo[src] { display: block; width: 180px; height: auto; filter: brightness(0) invert(1); }
.contextus-overlay-brand:has(.custom-logo) .wp-block-site-title { display: none; }
.contextus-overlay-brand .wp-block-site-title { margin: 0; font: 900 28px/1 var(--font-display); text-transform: uppercase; }
.contextus-navigation-overlay .contextus-overlay-menu,
.contextus-navigation-overlay .contextus-overlay-menu .wp-block-navigation__container { gap: 2px; }
.contextus-overlay-menu .wp-block-navigation-item__content {
  display: inline-block; padding-block: 6px;
  background: linear-gradient(var(--y),var(--y)) no-repeat 0 92% / 0 32%;
  transition: background-size .2s var(--ease);
}
.contextus-overlay-menu .wp-block-navigation-item__content:is(:hover,:focus-visible),
.contextus-overlay-menu .current-menu-item > .wp-block-navigation-item__content { background-size: 100% 32%; outline: none; }
.contextus-navigation-overlay .contextus-overlay-meta { gap: 24px; }
.contextus-overlay-meta .wp-block-navigation__container { flex-direction: row; flex-wrap: wrap; gap: 24px; }
/* Native Navigation owns typography; child links consume those choices. */
:where(.contextus-overlay-menu:not(.wp-block-navigation__container)) {
  font: 900 clamp(30px, 6vw, 54px)/1.15 var(--font-display);
  letter-spacing: .02em; text-transform: uppercase;
}
:where(.contextus-overlay-meta:not(.wp-block-navigation__container)) {
  color: color-mix(in srgb, currentColor 64.3%, transparent);
  font: 700 12px/1.4 var(--font-display);
  letter-spacing: .12em; text-transform: uppercase;
}
:where(.contextus-overlay-menu, .contextus-overlay-meta) .wp-block-navigation-item__content {
  font: inherit; letter-spacing: inherit; text-transform: inherit;
}
.contextus-overlay-search .wp-block-search__label { display: block; margin-bottom: 12px; font: 700 12px/1.3 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
.contextus-overlay-search .wp-block-search__inside-wrapper { background: transparent; border: 0; padding: 0; gap: 12px; }
.contextus-navigation-overlay .contextus-overlay-search .wp-block-search__input { padding: 8px 0; background: transparent; font: 800 clamp(20px, 3vw, 32px)/1.3 var(--font-display); }
/* The input alone owns the underline; suppress the shared inset focus rule. */
.contextus-navigation-overlay .contextus-overlay-search .wp-block-search__input {
  border: 0; border-bottom: 1px solid var(--y); padding-bottom: 10px;
  outline: none; box-shadow: none;
}
.contextus-navigation-overlay .contextus-overlay-search .wp-block-search__input:focus-visible {
  border-bottom-width: 3px; padding-bottom: 8px;
}
@media (forced-colors: active) {
  .contextus-navigation-overlay .contextus-overlay-search .wp-block-search__input:focus-visible { border-bottom-color: Highlight; }
}
.contextus-overlay-search .wp-block-search__button { min-width: 44px; min-height: 44px; margin: 0; border: 0; border-radius: 0; background: var(--y); color: var(--ink); }
@media (forced-colors: active) { .contextus-navigation-overlay :is(a,button,input):focus-visible { outline-color: Highlight; } }

@media (max-width: 700px) {
  .contextus-native-masthead__inner {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding-block: 16px;
    padding-inline: 0;
  }
  .contextus-native-masthead__tag { display: none; }
  .contextus-native-masthead__brand {
    justify-self: start;
    width: min(58vw, 230px);
    max-width: 100%;
    min-width: 0;
  }
  /* Center the controls against the lettering, rather than its raised dots. */
  .contextus-native-masthead:not(:has(.wp-block-navigation__responsive-container.is-menu-open, .wp-block-search__button[aria-expanded="true"])) .contextus-native-masthead__actions {
    position: relative;
    top: 5px;
  }
  .contextus-native-masthead__brand .wp-block-site-title { font-size: clamp(30px, 10vw, 40px); }
}

/* Native footer uses core persistence with the app's four-column composition. */
.contextus-native-footer:not(.has-background) { background: var(--shell-inverse-bg); }
.contextus-native-footer:not(.has-text-color) { color: var(--shell-inverse-text); }
.contextus-native-footer .brand { margin: 0; line-height: 0; }
.contextus-native-footer .brand:has(.custom-logo) .wp-block-site-title { display: none; }
.contextus-native-footer .brand .wp-block-site-title {
  margin: 0;
  color: inherit;
  font: 950 34px/.85 var(--font-display);
  letter-spacing: -.055em;
  text-transform: uppercase;
  white-space: nowrap;
}
.contextus-native-footer .brand .wp-block-site-title a { color: inherit; text-decoration: none; }
/* Contextual fallback for saved parts; native role styles and authored colors
   outrank these defaults. Alpha preserves the muted treatment on either surface.
   Core also gives its inner list the Navigation class; tint only the owner root. */
:where(.contextus-native-footer .footer-claim, .contextus-native-footer .footer-col .wp-block-navigation:not(.wp-block-navigation__container)) {
  color: color-mix(in srgb, currentColor 78%, transparent);
}
:where(.contextus-native-footer .footer-col .wp-block-navigation:not(.wp-block-navigation__container)) { font-size: 14px; font-weight: 700; }
.contextus-native-footer .footer-social { width: fit-content; gap: 2px; }
.contextus-native-footer .footer-social .wp-social-link { margin: 0; }
:where(.contextus-native-footer .footer-social) { color: color-mix(in srgb, currentColor 78%, transparent); }
/* Core's brand rules target each service. Retain the contextual house default
   only while no native icon color/background has been chosen. */
.contextus-native-footer .footer-social:not(.has-icon-color) .wp-social-link { color: inherit; }
.contextus-native-footer .footer-social:not(.has-icon-background-color) .wp-social-link { background: transparent; }
:where(.contextus-native-footer .footer-col :is(h2, h4)) { color: color-mix(in srgb, currentColor 58%, transparent); }
.contextus-native-footer .footer-col .wp-block-navigation { width: 100%; margin-block-start: 0 !important; }
.footer-col :is(h2, h4) { line-height: 1.5; }
.contextus-native-footer .footer-col .wp-block-navigation__container { align-items: flex-start; gap: 0; }
.contextus-native-footer .footer-col .wp-block-navigation-item { width: 100%; }
.contextus-native-footer :where(a) { color: inherit; }
:where(.contextus-native-footer .footer-bottom .is-style-footer-bottom-copy) { color: color-mix(in srgb, currentColor 58%, transparent); }
.contextus-native-footer .footer-bottom { margin-block-start: 0 !important; }
.contextus-native-footer .footer-bottom p { margin: 0; }
:where(.contextus-native-footer .footer-bottom p) { color: inherit; font: inherit; }
@media (max-width: 700px) {
  .contextus-native-footer .footer-col .wp-block-navigation__container {
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 26px;
  }
  .contextus-native-footer .footer-col .wp-block-navigation-item { width: auto; }
}
.contextus-main-query .wp-block-query-pagination-previous,
.contextus-main-query .wp-block-query-pagination-next,
.contextus-main-query .wp-block-query-pagination-numbers > * {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-size: 12px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  transition: background-color 140ms var(--ease), color 140ms var(--ease), scale 140ms var(--ease);
}
.contextus-main-query .wp-block-query-pagination-previous,
.contextus-main-query .wp-block-query-pagination-next {
  border: 1px solid var(--gray-2);
  padding-inline: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.contextus-main-query .wp-block-query-pagination-previous {
  grid-column: 1;
  justify-self: start;
}
.contextus-main-query .wp-block-query-pagination-next {
  grid-column: 3;
  justify-self: end;
}
.contextus-main-query .wp-block-query-pagination-numbers {
  grid-column: 2;
  display: flex;
  justify-content: center;
  gap: 4px;
}
.contextus-main-query .wp-block-query-pagination-numbers .current {
  position: relative;
  background: var(--ink);
  color: var(--paper);
}
.contextus-main-query .wp-block-query-pagination-numbers .current::after {
  content: "";
  position: absolute;
  inset: auto 7px 5px;
  height: 3px;
  background: var(--y);
}
.contextus-main-query .wp-block-query-pagination-previous:hover,
.contextus-main-query .wp-block-query-pagination-next:hover,
.contextus-main-query .wp-block-query-pagination-numbers > a:hover { background: var(--y); color: var(--on-accent, var(--ink)); }
.contextus-main-query .wp-block-query-pagination-previous:active,
.contextus-main-query .wp-block-query-pagination-next:active,
.contextus-main-query .wp-block-query-pagination-numbers > a:active { scale: .96; }
.contextus-main-query .feed-meta { gap: 0; }
.contextus-native-latest-query .feed-meta { gap: 0; }
.contextus-main-query .feed-meta .wp-block-post-date::before { content: " · "; }
.contextus-native-latest-query .feed-meta .wp-block-post-date::before { content: " · "; }
@media (max-width: 620px) {
  .pagination {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 14px;
  }
  .contextus-main-query > .wp-block-query-pagination {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    gap: 8px;
  }
  .contextus-main-query .wp-block-query-pagination-previous {
    grid-column: 1;
    grid-row: 1;
    justify-self: stretch;
  }
  .contextus-main-query .wp-block-query-pagination-next {
    grid-column: 2;
    grid-row: 1;
    justify-self: stretch;
  }
  .contextus-main-query .wp-block-query-pagination-previous,
  .contextus-main-query .wp-block-query-pagination-next { width: 100%; }
  .contextus-main-query .wp-block-query-pagination-numbers {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* --- static pages (app: routes/(public)/[slug] scoped styles) --- */
.static-page { padding-block: clamp(48px, 8vw, 96px); }
.static-page header { max-width: 760px; margin: 0 auto clamp(36px, 6vw, 64px); }
.static-page h1 {
  text-wrap: balance;
}
.static-page > .article-body {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
}
.static-page > .article-body :where(.wp-block-post-content) > h2.wp-block-heading {
  max-width: 18ch;
  margin-top: clamp(28px, 5vw, 48px);
  padding-top: clamp(28px, 5vw, 48px);
  border-top: var(--rule);
  text-wrap: balance;
}
/* --- WordPress compatibility --- */

/* classic alignment + caption classes inside article bodies */
.article-body .alignleft { float: left; margin: .4em 1.5em 1em 0; max-width: 50%; }
.article-body .alignright { float: right; margin: .4em 0 1em 1.5em; max-width: 50%; }
.article-body .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.article-body .alignwide,
.article-body .alignfull { max-width: none; }
.article-body .wp-caption { max-width: 100%; }

/* rail-label heading block style: the .sb-label look with the tick drawn by
   ::before, so block widgets in the sidebars match the built-in rail labels */
.is-style-rail-label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.is-style-rail-label::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--y);
  flex-shrink: 0;
}

/* core block normalization to the app's semantic vocabulary */
.article-body .wp-block-image img { width: 100%; height: auto; }
.article-body .wp-block-embed__wrapper iframe { max-width: 100%; }
.article-body ul.wp-block-list,
.article-body ol.wp-block-list { padding-left: 1.2em; }

/* The native template landmarks remain real layout and editor boundaries. */
.wp-site-blocks > header.wp-block-template-part {
  display: block;
  width: 100%;
}
.wp-site-blocks > main.wp-block-group {
  display: block;
  flex: 1 0 auto;
  width: 100%;
}
.wp-site-blocks > footer.wp-block-template-part {
  display: block;
  width: 100%;
  margin-block-start: auto;
}

/* skip link: visually hidden until keyboard focus (app parity) */
.skip-link {
  position: absolute;
  left: -9999px;
  z-index: 200;
  padding: 12px 18px;
  background: var(--y);
  color: var(--on-accent, var(--ink));
  font-family: var(--font-display);
  font-weight: 800;
  text-decoration: none;
}
.skip-link:focus {
  left: 12px;
  top: 12px;
}

.contextus-native-hero .contextus-hero-query { margin: 0; }
.contextus-native-hero .contextus-hero-lead-template,
.contextus-native-hero .contextus-hero-picks-template {
  list-style: none;
  margin: 0;
  padding: 0;
}
.contextus-native-hero .contextus-hero-picks-template {
  display: grid;
  gap: 0;
}

/* Native article primitives retain the app's byline and featured-media
   composition without hiding those fields inside a composite renderer. */
.article-frontmatter > .article-title { margin: 0 0 22px; }
.article-frontmatter > .article-lede { margin: 0 0 30px; }
.article-frontmatter > .article-metarow { margin: 0; }
.article-metarow .byline {
  align-items: center;
  gap: 0;
}
.article-metarow .byline > * { margin: 0; }
.article-metarow .byline > :is(.wp-block-post-date, .article-reading-time)::before {
  content: "·";
  margin-inline: 0.25em;
  color: var(--mute);
}
.article-metarow .byline a { color: inherit; text-decoration: none; }
.article-metarow .byline .article-reading-time {
  white-space: nowrap;
}
.article-lede .wp-block-post-excerpt__excerpt { margin: 0; }
.article-hero.wp-block-post-featured-image { overflow: visible; }
.article-hero.wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.article-hero.wp-block-post-featured-image figcaption {
  display: flex;
  gap: 10px;
  padding: 10px 0 0;
}
.article-hero.wp-block-post-featured-image figcaption::before {
  content: "";
  width: 22px;
  height: 3px;
  margin-top: 6px;
  flex-shrink: 0;
  background: var(--y);
}

/* Editorial structures supplement, rather than replace, native style controls. */
.article-body :where(.wp-block-table) { overflow-x: auto; }
.article-body :where(.wp-block-table) :is(th,td) { vertical-align: top; overflow-wrap: anywhere; }
.article-body :where(.wp-block-details) > summary { cursor: pointer; font-weight: 700; }
.article-body :where(.wp-block-code,.wp-block-preformatted) { overflow-x: auto; }
.contextus-media-credit { font-weight: 600; }
.contextus-media-credit:not(:first-child)::before { content: " · "; }
@media (min-width: 621px) and (max-width: 860px) { .opinion-grid > .opinion-card:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* This supplied brand asset has white paths; the native masthead is light.
   Leave other uploaded logos and the dark footer unchanged. */
.contextus-native-masthead .custom-logo[src*="/contextus-desktop-logo.svg"] {
  filter: brightness(0);
}

.contextus-navigation-overlay > .wp-block-navigation { margin-block-start: 24px; }
.contextus-navigation-overlay > .contextus-overlay-search { margin-block-start: 32px; }
