/* ============================================================
   PROSE — how ordinary Gutenberg blocks look inside a post.
   Modelled on the article pages (17px / 1.7 body, italic
   condensed headings, cyan-bar sub-headings, hard-edged tables).
   Selectors are kept at near-zero specificity so they never
   leak into STC blocks or pasted article HTML.
   ============================================================ */
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .wp-block-cover__inner-container, .stc-flow) > :where(p, ul, ol, dl, pre, table, figure, blockquote, hr, details, .wp-block-buttons, .wp-block-columns, .wp-block-group, .wp-block-image, .wp-block-table, .wp-block-embed, .wp-block-audio, .wp-block-video, .wp-block-quote, .wp-block-pullquote, .wp-block-code, .wp-block-preformatted, .wp-block-separator, .wp-block-file, .wp-block-media-text, .wp-block-gallery) {
  margin-top: 0;
  margin-bottom: 20px;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(p, ul, ol, dl) {
  font-size: 17px;
  line-height: 1.7;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display);
  font-style: italic;
  text-transform: uppercase;
  margin-top: 0;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h1) {
  font-weight: 900; font-size: clamp(40px, 6vw, 80px); line-height: 0.9; letter-spacing: -0.02em;
  color: var(--stc-blue); margin-bottom: 24px;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h2) {
  font-weight: 900; font-size: clamp(36px, 5vw, 64px); line-height: 0.9; letter-spacing: -0.02em;
  color: var(--stc-blue); margin-bottom: 24px;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(* + h2) { margin-top: 64px; }
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h3) {
  font-weight: 800; font-size: 26px; line-height: 1.1; letter-spacing: -0.01em;
  color: var(--stc-blue-ink); margin: 36px 0 12px;
  border-left: 4px solid var(--stc-cyan); padding-left: 12px;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h4) {
  font-weight: 800; font-size: 21px; line-height: 1.1; color: var(--stc-blue-ink); margin: 28px 0 10px;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(h5, h6) {
  font-family: var(--font-mono); font-style: normal; font-weight: 700; font-size: 11px;
  letter-spacing: 0.2em; color: var(--stc-magenta); margin: 28px 0 8px;
}

/* Links, lists */
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(p, ul, ol, dl, table, figure, blockquote) :where(a:not(.wp-element-button):not([class*="stc"])) {
  color: var(--stc-blue);
  text-decoration: underline;
  text-decoration-color: var(--stc-magenta);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  transition: color 0.2s;
}
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(p, ul, ol, dl, table, figure, blockquote) :where(a:not(.wp-element-button):not([class*="stc"])):hover { color: var(--stc-magenta); }
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(ul, ol) { padding-left: 1.4em; }
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(ul, ol) :where(li) { margin-bottom: 8px; }
:where(.stc-content, .is-root-container, .wp-block-column, .wp-block-group, .wp-block-group__inner-container, .wp-block-media-text__content, .stc-flow) > :where(ul, ol) :where(li)::marker { color: var(--stc-magenta); font-family: var(--font-display); font-weight: 800; font-style: italic; }

/* Paragraph styles */
p.has-drop-cap:not(:focus)::first-letter,
p.is-style-stc-drop-cap::first-letter {
  font-family: var(--font-display); font-weight: 900; font-style: italic;
  font-size: 80px; line-height: 0.85; float: left; padding: 4px 10px 0 0;
  color: var(--stc-magenta); text-transform: uppercase; margin: 0;
}
p.is-style-stc-drop-cap::after, p.has-drop-cap::after { content: ''; display: table; clear: both; }
p.is-style-stc-lede { font-size: clamp(18px, 1.6vw, 22px) !important; line-height: 1.5 !important; }
p.is-style-stc-label {
  font-family: var(--font-mono); font-size: 12px !important; font-weight: 700; line-height: 1.5 !important;
  text-transform: uppercase; letter-spacing: 0.2em; color: var(--stc-magenta); margin-bottom: 8px !important;
}

/* Heading styles */
:is(h1, h2, h3, h4, h5, h6).is-style-stc-display {
  font-family: var(--font-display); font-weight: 900; font-style: italic; text-transform: uppercase;
  font-size: clamp(44px, 6vw, 84px); line-height: 0.9; letter-spacing: -0.02em; color: var(--stc-blue);
  border: 0; padding: 0;
}
:is(h1, h2, h3, h4, h5, h6).is-style-stc-sub {
  font-family: var(--font-display); font-weight: 800; font-style: italic; text-transform: uppercase;
  font-size: 26px; line-height: 1.1; letter-spacing: -0.01em; color: var(--stc-blue-ink);
  border-left: 4px solid var(--stc-cyan); padding-left: 12px; margin: 36px 0 12px;
}
:is(h1, h2, h3, h4, h5, h6).is-style-stc-plain { border: 0; padding-left: 0; }

/* Quotes → the article pull-quote */
.wp-block-quote, .wp-block-pullquote {
  border: 0; border-left: 6px solid var(--stc-magenta);
  padding: 24px 28px; margin-top: 32px; margin-bottom: 32px; background: var(--stc-white); text-align: left;
}
.wp-block-pullquote blockquote { margin: 0; padding: 0; border: 0; }
.wp-block-quote p, .wp-block-pullquote p {
  font-family: var(--font-display); font-weight: 800; font-style: italic;
  font-size: clamp(22px, 2.5vw, 30px); text-transform: uppercase;
  color: var(--stc-blue-ink); line-height: 1.1; margin: 0 0 10px;
}
.wp-block-quote p:last-of-type, .wp-block-pullquote p:last-of-type { margin-bottom: 0; }
.wp-block-quote cite, .wp-block-pullquote cite {
  display: block; font-family: var(--font-mono); font-style: normal; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.15em; color: var(--stc-magenta); margin-top: 10px;
}
.wp-block-quote cite::before, .wp-block-pullquote cite::before { content: '// '; }

/* Tables → the stat table */
.wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 28px; margin-bottom: 28px; }
.wp-block-table table {
  width: 100%; border-collapse: collapse; background: var(--stc-white);
  border: 2px solid var(--stc-blue); font-size: 14px;
}
.wp-block-table thead { background: var(--stc-blue); color: var(--stc-white); border: 0; }
.wp-block-table thead th {
  font-family: var(--font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.15em; padding: 12px 16px; text-align: left; white-space: nowrap; border: 0;
}
.wp-block-table tbody td, .wp-block-table tfoot td {
  padding: 12px 16px; border: 0; border-bottom: 1px solid rgba(5, 15, 46, 0.08); color: var(--stc-blue-ink);
}
.wp-block-table tbody tr:last-child td { border-bottom: none; }
.wp-block-table tbody tr:nth-child(even) td { background: rgba(11, 63, 196, 0.03); }
.wp-block-table tfoot { border: 0; font-weight: 700; }
.wp-block-table.is-style-stc-ink table { border-color: var(--stc-blue-ink); }
.wp-block-table.is-style-stc-ink thead { background: var(--stc-blue-ink); }
.wp-block-table.is-style-stc-numbers tbody td:nth-child(2) {
  font-family: var(--font-display); font-weight: 800; font-style: italic; font-size: 18px; color: var(--stc-blue);
}
.wp-block-table figcaption, .wp-block-image figcaption, .wp-block-embed figcaption, .wp-block-video figcaption, .wp-block-audio figcaption, .wp-block-gallery figcaption {
  font-family: var(--font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.15em; color: var(--stc-blue-ink); opacity: 0.5; text-align: right; margin-top: 12px;
}

/* Buttons → the site's punch buttons */
.wp-block-button__link, .wp-element-button {
  font-family: var(--font-display); font-weight: 800; font-size: 17px; text-transform: uppercase;
  letter-spacing: 0.08em; line-height: 1.55; padding: 16px 28px; border-radius: 0;
  background: var(--stc-blue); color: var(--stc-white); border: 2px solid var(--stc-blue);
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s, color 0.15s;
}
.wp-block-button__link:hover, .wp-element-button:hover {
  transform: translate(-3px, -3px);
  box-shadow: 6px 6px 0 var(--stc-magenta), 6px 6px 0 2px var(--stc-blue);
  color: var(--stc-white);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--stc-blue); border: 2px solid var(--stc-blue); padding: 16px 28px;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--stc-blue); color: var(--stc-white); transform: none; box-shadow: none;
}
.wp-block-button.is-style-stc-cyan .wp-block-button__link { background: var(--stc-cyan); border-color: var(--stc-cyan); color: var(--stc-blue-ink); }
.wp-block-button.is-style-stc-cyan .wp-block-button__link:hover { box-shadow: 6px 6px 0 var(--stc-magenta); color: var(--stc-blue-ink); }
.wp-block-button.is-style-stc-magenta .wp-block-button__link { background: var(--stc-magenta); border-color: var(--stc-magenta); }
.wp-block-button.is-style-stc-magenta .wp-block-button__link:hover { box-shadow: 6px 6px 0 var(--stc-cyan); }
.wp-block-button.is-style-stc-white .wp-block-button__link { background: var(--stc-white); border-color: var(--stc-white); color: var(--stc-blue); }
.wp-block-button.is-style-stc-white .wp-block-button__link:hover { box-shadow: 6px 6px 0 var(--stc-magenta); color: var(--stc-blue); }

/* Media, embeds, podcast players */
.wp-block-image img { border-radius: 0; }
.wp-block-embed iframe, .wp-block-video video { display: block; max-width: 100%; }
.wp-block-embed.is-provider-spotify .wp-block-embed__wrapper,
.wp-block-embed.is-provider-soundcloud .wp-block-embed__wrapper,
.wp-block-embed.is-provider-apple-podcasts .wp-block-embed__wrapper,
.wp-block-embed.is-style-stc-frame .wp-block-embed__wrapper,
.wp-block-audio, .wp-block-video.is-style-stc-frame {
  background: var(--stc-white); border: 2px solid var(--stc-blue);
  padding: clamp(16px, 3vw, 32px); box-shadow: 8px 8px 0 var(--stc-blue);
}
.wp-block-embed.is-provider-spotify iframe, .wp-block-embed.is-provider-soundcloud iframe { width: 100%; border: 0; border-radius: 0; }
.wp-block-audio audio { width: 100%; display: block; }
.wp-block-image.is-style-stc-punch img { border: 2px solid var(--stc-blue); box-shadow: -8px 8px 0 var(--stc-magenta), 8px -8px 0 var(--stc-cyan); }

/* Separator, code, misc */
.wp-block-separator, :where(.stc-content, .stc-flow) > hr {
  border: 0; height: 1px; background: rgba(11, 63, 196, 0.15); margin: 48px auto; opacity: 1;
}
.wp-block-separator.is-style-stc-heavy { height: 3px; background: var(--stc-blue-ink); }
.wp-block-code, .wp-block-preformatted, :where(.stc-content, .stc-flow) > pre {
  font-family: var(--font-mono); font-size: 13px; line-height: 1.6;
  background: var(--stc-blue-ink); color: var(--stc-bone);
  padding: 24px; border: 0; border-radius: 0; overflow-x: auto;
}
:where(.stc-content, .stc-flow) :where(p, li) > code { font-family: var(--font-mono); font-size: 0.85em; background: rgba(11, 63, 196, 0.08); padding: 2px 6px; }
.wp-block-group.is-style-stc-card { background: var(--stc-white); border-left: 6px solid var(--stc-blue); padding: 28px; }
.wp-block-group.is-style-stc-card-magenta { background: var(--stc-white); border-left: 6px solid var(--stc-magenta); padding: 28px; }
.wp-block-group.is-style-stc-panel { background: var(--stc-white); border: 2px solid var(--stc-blue); padding: 36px; }
.wp-block-group.is-style-stc-ink { background: var(--stc-blue-ink); color: var(--stc-white); padding: 36px; }
.wp-block-group.is-style-stc-ink > :where(h2, h3, h4, p, ul, ol) { color: var(--stc-white); }
.wp-block-columns { gap: clamp(24px, 4vw, 60px); }
.wp-block-details summary { font-family: var(--font-display); font-weight: 800; font-style: italic; font-size: 20px; text-transform: uppercase; cursor: pointer; }
.has-stc-blue-color { color: var(--stc-blue) !important; }
.has-stc-magenta-color { color: var(--stc-magenta) !important; }
.has-stc-cyan-color { color: var(--stc-cyan) !important; }
