/*
Theme Name:   Stagnell (Kadence child)
Theme URI:    https://stagnell.se
Description:  Child theme for stagnell.se and stagnell.com, built on Kadence. Prussian ink identity.
Author:       Alexander Stagnell
Author URI:   https://stagnell.se
Template:     kadence
Version:      2.5.0
Text Domain:  stagnell
*/

/* ---------- Stagnell design additions ---------- */

/* Oblique brass line: add class "oblique" to any hero Row Layout */
.oblique{position:relative;overflow:hidden}
.oblique::after{content:"";position:absolute;left:-5%;right:-5%;top:86%;
  height:1px;background:#A8843A;transform:rotate(-4deg);pointer-events:none}

/* Ruled rows: add class "ruled" to a Group; each child gets a hairline */
.ruled > *{border-top:1px solid #C6C9C1;padding:18px 0;margin:0}
.ruled > *:last-child{border-bottom:1px solid #C6C9C1}
.ruled.strong > *:first-child{border-top-color:#1A1B1D}

/* Italic brass label ("Current project, 2026–") */
.label-brass{font-style:italic;color:#7E6124;font-size:1.3rem}
.on-ink .label-brass{color:#D2B06A}

/* Metadata in Plex Sans */
.meta{font-family:"IBM Plex Sans",sans-serif;font-size:14px;color:#4A4F53}
.on-ink .meta{color:#AEB9C4}

/* Greek term next to a concept name */
.greek{font-style:italic;color:#4A4F53}

/* Contact item in the menu as a button */
.menu-button > a{background:#1A2531;color:#F5F5F2 !important;
  padding:12px 18px !important;margin-left:10px}
.menu-button > a:hover{background:#121A23}

/* Brass button: add class "btn-brass" to a single button */
.btn-brass.kb-button,.btn-brass .kb-button{background:#A8843A !important;
  color:#16181A !important;border-color:#A8843A !important}
.btn-brass.kb-button:hover,.btn-brass .kb-button:hover{background:#8F7030 !important;border-color:#8F7030 !important}

/* Outline button on Prussian ink: add class "btn-on-ink" to a single button */
.btn-on-ink.kb-button,.btn-on-ink .kb-button{background:transparent !important;
  color:#ECEFF2 !important;border:1px solid #AEB9C4 !important}
.btn-on-ink.kb-button:hover,.btn-on-ink .kb-button:hover{background:rgba(255,255,255,.08) !important}

/* Keyboard focus */
:focus-visible{outline:2px solid #A8843A;outline-offset:3px}


/* =====================================================================
   v2: layout system for pages pasted as block code
   Sections are full-width Groups with an "st-" class. Content keeps
   a 1152px measure on wide screens and 22px margins on phones.
   ===================================================================== */
:root{
  --st-ink:#1A2531; --st-deep:#121A23; --st-brass:#A8843A; --st-brass-l:#C9A55B; --st-brass-t:#7E6124;
  --st-marble:#F5F5F2; --st-stone:#EAEBE6; --st-text:#1A1B1D; --st-body:#3B4044; --st-meta:#4A4F53;
  --st-rule:#C6C9C1; --st-hair:#D9DBD4; --st-onink:#ECEFF2; --st-muted:#AEB9C4; --st-link:#2C4A66;
  --st-pad:max(64px, calc((100% - 1152px) / 2));
}
@media (max-width:781px){ :root{ --st-pad:22px; } }

.st-hero,.st-strip,.st-feature,.st-section,.st-band,.st-newsletter,.st-cta,.st-pagehead{
  margin-top:0 !important; margin-bottom:0 !important;
  padding-left:var(--st-pad) !important; padding-right:var(--st-pad) !important;
  box-sizing:border-box;
}
.st-hero .wp-block-columns,.st-feature .wp-block-columns,.st-section .wp-block-columns,
.st-band .wp-block-columns,.st-newsletter .wp-block-columns{ margin:0; }

/* Hero on Prussian ink, with the oblique brass line */
.st-hero{ background:var(--st-ink); color:var(--st-muted); padding-top:88px !important; padding-bottom:110px !important;
  position:relative; overflow:hidden; }
.st-hero::after{ content:""; position:absolute; left:-5%; right:-5%; top:86%; height:1px;
  background:var(--st-brass); transform:rotate(-4deg); pointer-events:none; }
.st-hero .wp-block-columns{ gap:64px; }
.st-hero h1{ color:var(--st-onink); font-size:clamp(2.3rem,4.4vw,4rem); line-height:1.06; font-weight:400;
  margin:0 0 24px; max-width:17ch; }
.st-hero p{ color:var(--st-muted); font-size:1.3rem; line-height:1.5; max-width:40rem; }
.st-portrait{ margin:0; }
.st-portrait img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
@media (max-width:781px){
  .st-hero{ padding-top:48px !important; padding-bottom:64px !important; }
  .st-hero .wp-block-columns{ gap:32px; }
}

/* Buttons */
.wp-block-buttons{ gap:14px; margin-top:8px; }
.wp-block-button .wp-block-button__link{ border-radius:0 !important; font-family:"IBM Plex Sans",sans-serif;
  font-size:15px; font-weight:500; padding:14px 22px; line-height:1.2; }
.st-btn-brass .wp-block-button__link{ background:var(--st-brass) !important; color:#16181A !important; border:1px solid var(--st-brass) !important; }
.st-btn-brass .wp-block-button__link:hover{ background:#8F7030 !important; border-color:#8F7030 !important; }
.st-btn-ghost .wp-block-button__link{ background:transparent !important; color:var(--st-onink) !important; border:1px solid var(--st-muted) !important; }
.st-btn-ghost .wp-block-button__link:hover{ background:rgba(255,255,255,.08) !important; }
.st-btn-ink .wp-block-button__link{ background:var(--st-ink) !important; color:#F5F5F2 !important; border:1px solid var(--st-ink) !important; }
.st-btn-ink .wp-block-button__link:hover{ background:var(--st-deep) !important; }
.st-btn-outline .wp-block-button__link{ background:transparent !important; color:var(--st-text) !important; border:1px solid var(--st-text) !important; }

/* Sections */
.st-section{ padding-top:88px !important; padding-bottom:88px !important; }
.st-section.st-flush-top{ padding-top:0 !important; }
.st-band{ background:var(--st-stone); padding-top:80px !important; padding-bottom:80px !important; }
.st-bordered{ border-top:1px solid var(--st-hair); border-bottom:1px solid var(--st-hair); }
.st-section > h2,.st-band > h2,.st-head h2,.st-section .wp-block-column > h2:first-child{
  font-size:clamp(1.8rem,3vw,2.5rem); font-weight:400; line-height:1.1; margin:0 0 24px; }
.st-section .wp-block-columns,.st-band .wp-block-columns{ gap:64px; }

@media (max-width:781px){
  .st-section{ padding-top:48px !important; padding-bottom:48px !important; }
  .st-band{ padding-top:48px !important; padding-bottom:48px !important; }
  .st-section .wp-block-columns,.st-band .wp-block-columns{ gap:32px; }
}

/* Feature: painting and text */
.st-feature{ padding-top:88px !important; padding-bottom:88px !important; }
.st-feature .wp-block-columns{ gap:64px; }
.st-feature h2{ font-size:clamp(1.8rem,3vw,2.8rem); font-weight:400; line-height:1.1; margin:0 0 16px; }
.st-feature p{ margin:0 0 16px; }
.st-painting{ margin:0; }
.st-painting img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
@media (max-width:781px){ .st-feature{ padding-top:48px !important; padding-bottom:48px !important; } }

/* Three themes with a rule on top */
.st-themes .wp-block-columns{ gap:40px; border-top:1px solid var(--st-text); padding-top:24px; }
.st-themes h3{ font-size:1.6rem; font-weight:500; margin:0 0 10px; }
.st-themes p{ color:var(--st-body); margin:0; }

/* Writing */
.st-writing h3{ font-size:1.55rem; line-height:1.2; margin:6px 0 8px; font-weight:400; }
.st-writing h3 a{ color:var(--st-text); text-decoration:none; }
.st-writing h3 a:hover{ text-decoration:underline; text-underline-offset:.18em; }
.st-writing .meta{ margin:0; }

/* Newsletter band */
.st-newsletter{ background:var(--st-ink); color:var(--st-muted); padding-top:64px !important; padding-bottom:64px !important; }
.st-newsletter h2{ color:var(--st-onink); font-size:clamp(1.8rem,3vw,2.4rem); font-weight:400; margin:0 0 8px; }
.st-newsletter .wp-block-columns{ gap:64px; }
.st-newsletter .meta{ color:var(--st-muted); }

/* Small shared pieces */
.meta{ font-family:"IBM Plex Sans",sans-serif; font-size:14px; color:var(--st-meta); }
.label-brass{ margin:0 0 10px; }
.more-link{ font-family:"IBM Plex Sans",sans-serif; font-size:15px; font-weight:500; }
.more-link a{ color:var(--st-link); text-underline-offset:.2em; margin-right:20px; }
.wp-block-image figcaption,.wp-element-caption{ font-family:"IBM Plex Sans",sans-serif; font-size:12px;
  color:var(--st-meta); text-align:left; margin-top:8px; }

/* Remove Kadence's gap between full-width sections on pasted pages */
.entry-content > .alignfull + .alignfull{ margin-top:0 !important; }


/* ---------------------------------------------------------------------
   Kadence is a classic theme, so WordPress wraps the content of every
   Group block in an extra <div class="wp-block-group__inner-container">.
   "display: contents" makes that wrapper transparent to the layout, and
   the selectors below match children whether the wrapper is there or not.
   --------------------------------------------------------------------- */
.st-strip > .wp-block-group__inner-container,
.st-head > .wp-block-group__inner-container,
.pub-row > .wp-block-group__inner-container,
.pub-main > .wp-block-group__inner-container,
.st-lex > .wp-block-group__inner-container,
.st-ruled > .wp-block-group__inner-container,
.st-ruled .wp-block-group > .wp-block-group__inner-container{ display:contents; }

/* Affiliation strip */
.st-strip{ display:flex !important; flex-wrap:wrap; column-gap:40px; row-gap:8px; align-items:center;
  padding-top:22px !important; padding-bottom:22px !important; border-bottom:1px solid var(--st-hair); }
.st-strip p{ margin:0 !important; font-family:"IBM Plex Sans",sans-serif; font-size:14px; line-height:1.4; color:var(--st-meta); }

/* Section head: title left, link right */
.st-head{ display:flex !important; justify-content:space-between; align-items:baseline; gap:24px; flex-wrap:wrap; margin-bottom:20px; }
.st-head h2,.st-head p{ margin:0 !important; }

/* Ruled rows for publications, projects, essays */
.pub-row{ display:grid !important; grid-template-columns:80px minmax(0,1fr) 200px; gap:24px;
  padding:20px 0; border-top:1px solid var(--st-rule); align-items:start; margin:0 !important; }
.pub-row:last-child,
.wp-block-group__inner-container > .pub-row:last-child{ border-bottom:1px solid var(--st-rule); }
.pub-row p{ margin:0 !important; }
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > p:first-child,
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > p:last-child{
  font-family:"IBM Plex Sans",sans-serif; font-size:14px; line-height:1.4; color:var(--st-meta); padding-top:6px; }
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > p:last-child{ text-align:right; }
.pub-main{ margin:0 !important; }
.pub-title{ font-size:1.5rem; line-height:1.25; }
.pub-title a{ color:var(--st-text); text-decoration:none; }
.pub-title a:hover{ text-decoration:underline; text-underline-offset:.18em; }
.pub-row .pub-venue{ font-style:italic; color:var(--st-meta); margin-top:4px !important; }
@media (max-width:640px){
  .pub-row{ grid-template-columns:56px minmax(0,1fr); }
  :is(.pub-row, .pub-row > .wp-block-group__inner-container) > p:last-child{ grid-column:2; text-align:left; padding-top:0; }
}

/* Rhetoric A–Ö strip */
.st-lex{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 32px; }
.st-lex p{ margin:0 !important; border-top:1px solid var(--st-rule); padding-top:12px; font-size:2.2rem; line-height:1.15; }
.st-lex p a{ color:var(--st-text); text-decoration:none; }
.st-lat{ font-family:"IBM Plex Sans",sans-serif; font-size:13px; color:var(--st-meta); }
@media (max-width:640px){ .st-lex{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Ruled list of offers */
:is(.st-ruled, .st-ruled > .wp-block-group__inner-container) > .wp-block-group{
  border-top:1px solid var(--st-rule); padding:18px 0; margin:0 !important; }
:is(.st-ruled, .st-ruled > .wp-block-group__inner-container) > .wp-block-group:last-child{ border-bottom:1px solid var(--st-rule); }
.st-ruled h3{ font-size:1.45rem; font-weight:500; margin:0 0 4px; }
.st-ruled p{ margin:0; color:var(--st-body); }


/* =====================================================================
   v2.1: components for the inner pages and the link page
   ===================================================================== */
.st-counts > .wp-block-group__inner-container, .st-concepts > .wp-block-group__inner-container, .st-cards > .wp-block-group__inner-container, .st-simple-list > .wp-block-group__inner-container,
.st-iggrid > .wp-block-group__inner-container, .st-facts > .wp-block-group__inner-container{ display:contents; }

/* Page head on marble */
.st-pagehead{ padding-top:72px !important; padding-bottom:40px !important; }
.st-pagehead h1,.st-section h1{ font-size:clamp(2.6rem,5vw,4.6rem); font-weight:400; line-height:1.02; margin:0 0 18px; }
.st-lead{ font-size:1.35rem; line-height:1.5; max-width:46rem; }
.st-crumb{ margin:0 0 22px !important; }
.st-crumb a{ color:inherit; }
.st-pagehead .wp-block-columns{ gap:64px; margin:0; }
@media (max-width:781px){ .st-pagehead{ padding-top:48px !important; padding-bottom:24px !important; } }

/* Text-only hero on ink (inner pages) */
.st-hero--text h1{ max-width:22ch; }
.st-hero .label-brass{ color:#D2B06A; }
.st-hero .meta,.st-hero .st-crumb{ color:var(--st-muted); }
.st-hero .meta a,.st-hero .st-crumb a{ color:var(--st-onink); }
.st-hero strong{ color:var(--st-onink); font-weight:600; }
.st-facts{ display:flex !important; flex-wrap:wrap; gap:16px 48px; margin-top:28px; }
.st-facts p{ margin:0 !important; font-family:"IBM Plex Sans",sans-serif; font-size:14px; line-height:1.5; color:var(--st-muted); }

/* Boxes and asides */
.st-factbox{ background:#fff; border:1px solid var(--st-hair); padding:24px 26px; }
.st-factbox p{ margin:0 0 14px; } .st-factbox p:last-child{ margin-bottom:0; }
.st-factbox h3{ font-size:1.35rem; margin:0 0 8px; }
.st-box{ border:1px solid var(--st-rule); padding:32px 36px; margin-top:56px !important; }
.st-box h3{ font-size:1.6rem; margin:0 0 8px; } .st-box p{ margin:0 0 10px; }
.st-aside{ border-top:1px solid var(--st-text); padding-top:16px; margin-top:28px !important; }
.st-aside h3{ font-size:1.35rem; font-weight:500; margin:0 0 10px; }
.st-aside p{ margin:0 0 8px; }
.st-placeholder{ border:1px dashed #9AA19B; padding:24px; margin-top:48px !important; font-family:"IBM Plex Sans",sans-serif; font-size:14px; color:var(--st-meta); }

/* Counts */
.st-counts{ display:flex !important; gap:40px; flex-wrap:wrap; margin-bottom:24px; }
.st-counts .wp-block-group{ margin:0 !important; }
.st-num{ font-size:3.4rem; line-height:1; margin:0 !important; }
.st-counts .meta{ margin:4px 0 0; }

/* Row variants */
.pub-row.project-row{ grid-template-columns:130px minmax(0,1fr) 260px; }
.pub-row.essay-row{ grid-template-columns:150px minmax(0,1fr) 200px; }
.pub-row.cv-row{ grid-template-columns:110px minmax(0,1fr); padding:14px 0; }
.pub-row.cv-row--narrow{ grid-template-columns:64px minmax(0,1fr); }
.pub-row.cv-row .pub-main p{ font-size:1.1rem; }
.pub-title strong{ font-weight:500; }
.pub-main p + p{ margin-top:4px !important; }
.st-publist h2{ margin:56px 0 12px !important; }
.st-publist h2:first-child,.st-publist > .wp-block-group__inner-container > h2:first-child{ margin-top:0 !important; }
@media (max-width:640px){
  .pub-row.project-row,.pub-row.essay-row{ grid-template-columns:minmax(0,1fr); gap:6px; }
  :is(.pub-row.project-row, .pub-row.project-row > .wp-block-group__inner-container) > p:last-child,:is(.pub-row.essay-row, .pub-row.essay-row > .wp-block-group__inner-container) > p:last-child{ grid-column:1; }
}

/* Offers, steps, simple lists, FAQ */
.st-offer-cols > .wp-block-column{ border-top:1px solid var(--st-text); padding-top:22px; }
.st-offer-cols h2{ font-size:1.9rem !important; margin:0 0 12px !important; }
.st-steps > .wp-block-column{ border-top:1px solid var(--st-text); padding-top:16px; }
.st-step-no{ font-family:"IBM Plex Sans",sans-serif; font-size:14px; color:var(--st-brass-t); margin:0 0 8px; }
.st-steps h3{ font-size:1.5rem; font-weight:500; margin:0 0 8px; }
.st-steps p{ color:var(--st-body); }
:is(.st-simple-list, .st-simple-list > .wp-block-group__inner-container) > p{ border-top:1px solid var(--st-rule); padding:12px 0; margin:0 !important; font-size:1.2rem; }
:is(.st-simple-list, .st-simple-list > .wp-block-group__inner-container) > p:last-child{ border-bottom:1px solid var(--st-rule); }
.st-faq h3{ font-size:1.3rem; }

/* Rhetoric A–Ö concepts */
.st-concepts{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 40px; }
:is(.st-concepts, .st-concepts > .wp-block-group__inner-container) > .wp-block-group{ border-top:1px solid var(--st-rule); padding:18px 0 30px; margin:0 !important; }
.st-concept-name{ font-size:1.9rem; line-height:1.2; margin:0 0 6px !important; }
.st-concept-name a{ color:var(--st-text); text-decoration:none; }
.st-concept-name a:hover{ text-decoration:underline; text-underline-offset:.18em; }
.st-concepts p{ margin:0; color:var(--st-body); }
.greek{ font-style:italic; color:var(--st-meta); font-size:.75em; }
h1 .greek{ font-size:.6em; margin-left:.25em; }
@media (max-width:900px){ .st-concepts{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .st-concepts{ grid-template-columns:minmax(0,1fr); } }

/* Concept page */
.st-def{ background:var(--st-stone); border-top:3px solid var(--st-ink); padding:24px 28px; font-size:1.35rem; line-height:1.5; margin:12px 0 28px !important; }
.st-section h2{ margin-top:36px; }
.st-section .wp-block-column > h2:first-child,.st-section > h2:first-child,
.st-section > .wp-block-group__inner-container > h2:first-child{ margin-top:0; }

/* Podcast cards */
.st-cards{ display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; }
:is(.st-cards, .st-cards > .wp-block-group__inner-container) > .wp-block-group{ border-top:1px solid var(--st-rule); padding:20px 0; margin:0 !important; }
.st-cards h3{ font-size:1.45rem; margin:4px 0 6px; }
.st-cards p{ margin:0; color:var(--st-body); }
@media (max-width:640px){ .st-cards{ grid-template-columns:minmax(0,1fr); } }

/* Instagram link page */
.st-linkpage.alignfull,.st-linkpage{ max-width:560px !important; width:auto !important; margin-left:auto !important; margin-right:auto !important;
  padding:48px 22px 64px !important; text-align:center; }
.st-linkpage h1{ font-size:2.2rem; font-weight:400; margin:0 0 6px; }
.st-linkpage h2{ font-size:1.6rem; font-weight:400; margin:40px 0 4px; }
.st-linkpage .label-brass{ margin:0 0 8px; }
.st-linkpage .wp-block-buttons{ flex-direction:column; align-items:stretch; gap:10px; margin:28px 0 8px; }
.st-linkpage .wp-block-button{ width:100%; }
.st-linkpage .wp-block-button__link{ display:block; width:100%; text-align:center; padding:16px 20px; box-sizing:border-box; }
.st-avatar{ margin:0 auto 18px !important; display:flex; justify-content:center; }
.st-avatar img{ width:104px; height:104px; border-radius:50%; object-fit:cover; }
.st-iggrid{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin-top:16px !important; }
.st-iggrid figure,.st-ig-tile{ margin:0 !important; }
.st-iggrid img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.st-hero p.meta,.st-hero .st-crumb{ font-size:14px; line-height:1.5; }


/* =====================================================================
   v2.2: automatic essay lists (Query Loop) and the essay template
   ===================================================================== */
.wp-block-query .wp-block-post-template{ list-style:none; margin:0; padding:0; }
.wp-block-post-template > li{ margin:0; }

/* Essay list on Texter och media */
.st-postlist .pub-row{ border-bottom:0 !important; }
.st-postlist .wp-block-post-template > li:last-child .pub-row{ border-bottom:1px solid var(--st-rule) !important; }
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > .wp-block-post-date,
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > .wp-block-post-terms{ font-family:"IBM Plex Sans",sans-serif; font-size:14px; line-height:1.4; color:var(--st-meta); padding-top:6px; margin:0; }
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > .wp-block-post-terms{ text-align:right; }
:is(.pub-row, .pub-row > .wp-block-group__inner-container) > .wp-block-post-terms a{ color:inherit; text-decoration:none; }
.pub-main .wp-block-post-title{ font-size:1.5rem; line-height:1.25; font-weight:400; margin:0; }
.pub-main .wp-block-post-title a{ color:var(--st-text); text-decoration:none; }
.pub-main .wp-block-post-title a:hover{ text-decoration:underline; text-underline-offset:.18em; }
.pub-main .wp-block-post-excerpt{ margin:4px 0 0; }
.pub-main .wp-block-post-excerpt p,.st-latest .wp-block-post-excerpt p{ margin:0; color:var(--st-body); }
.wp-block-post-excerpt__more-link{ display:none; }
.st-subhead{ font-family:"IBM Plex Sans",sans-serif; font-size:14px !important; font-weight:500; color:var(--st-meta); margin:40px 0 0 !important; }
@media (max-width:640px){ :is(.pub-row.essay-row, .pub-row.essay-row > .wp-block-group__inner-container) > .wp-block-post-terms{ grid-column:1; text-align:left; } }

/* Homepage: three latest essays */
.st-latest .wp-block-post-template{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.st-latest .wp-block-post-terms{ font-family:"IBM Plex Sans",sans-serif; font-size:13px; color:var(--st-meta); margin:0; }
.st-latest .wp-block-post-terms a{ color:inherit; text-decoration:none; }
.st-latest .wp-block-post-title{ font-size:1.55rem; line-height:1.2; font-weight:400; margin:6px 0 8px; }
.st-latest .wp-block-post-title a{ color:var(--st-text); text-decoration:none; }
@media (max-width:781px){ .st-latest .wp-block-post-template{ grid-template-columns:minmax(0,1fr); gap:28px; } }

/* Essay template (single posts) */
.st-dek{ font-size:1.5rem; font-style:italic; line-height:1.4; color:var(--st-body); margin:0 0 18px !important; }
.st-byline{ border-top:1px solid var(--st-rule); padding-top:14px; margin-bottom:32px !important; }
.st-essay-image{ margin:0 0 36px !important; }
.st-essay-image img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.st-dropcap::first-letter{ float:left; font-size:4.6em; line-height:.8; padding:8px 12px 0 0; color:var(--st-ink); }
.wp-block-pullquote.st-pull{ border:0; padding:8px 0; margin:44px 0; text-align:left; }
.st-pull blockquote::before{ content:""; display:block; width:56px; height:1px; background:var(--st-brass); margin-bottom:18px; }
.st-pull blockquote p{ font-size:2rem; font-style:italic; line-height:1.25; margin:0; }
.st-pull cite{ display:block; margin-top:12px; font-family:"IBM Plex Sans",sans-serif; font-size:14px; font-style:normal; color:var(--st-meta); }
.st-notes{ font-size:1rem; line-height:1.55; color:var(--st-body); padding-left:1.3em; }
.st-author{ border-top:1px solid var(--st-text); padding-top:22px; margin-top:48px !important; }
.st-author p{ margin:0 0 6px; }
.st-cite{ background:var(--st-stone); padding:16px 18px; margin-top:24px !important; font-family:"IBM Plex Sans",sans-serif; font-size:13px; line-height:1.55; color:#2F3437; }


/* =====================================================================
   v2.3: footer widgets (Kadence footer builder)
   ===================================================================== */
.site-footer .wp-block-heading,.site-footer .widget-title{ font-family:"IBM Plex Sans",sans-serif; font-size:14px !important;
  font-weight:600; letter-spacing:0; color:#ECEFF2; margin:0 0 12px; }
.site-footer ul.wp-block-list,.site-footer .menu{ list-style:none; margin:0; padding:0; }
.site-footer ul.wp-block-list li{ margin:0 0 8px; }
.site-footer p,.site-footer li{ font-family:"IBM Plex Sans",sans-serif; font-size:14px; line-height:1.5; }
.site-footer a{ text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; text-underline-offset:.18em; }
.site-footer .wp-block-image{ margin:0 0 12px; }
.site-footer .wp-block-image img{ max-width:220px; height:auto; }


/* =====================================================================
   v2.4: single publication pages
   ===================================================================== */
.st-pubhead h1{ font-size:clamp(2rem,3.6vw,3.2rem) !important; line-height:1.08; max-width:28ch; }
.st-pubhead .st-lead{ margin-bottom:22px; }
.st-pubhead .label-brass{ margin-bottom:12px; }
.st-cite-alt{ margin:12px 0 0; border-top:1px solid var(--st-rule); padding-top:10px; }
.st-cite-alt summary{ font-family:"IBM Plex Sans",sans-serif; font-size:14px; font-weight:500; color:var(--st-meta); cursor:pointer; }
.st-cite-alt[open] summary{ margin-bottom:10px; }
.st-cite-alt .wp-block-code,.st-section .wp-block-code{ background:var(--st-stone); border:0; border-radius:0; padding:16px 18px; margin:0;
  font-size:12.5px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.st-cite-alt .wp-block-code code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.st-section p.st-cite{ margin-top:6px !important; }


/* =====================================================================
   v2.5: publication rows inside a narrower column (e.g. Results on a
   project page) use a compact layout: year left, type under the title.
   ===================================================================== */
.wp-block-column .pub-row:not(.cv-row){ grid-template-columns:64px minmax(0,1fr); gap:6px 20px; }
.wp-block-column :is(.pub-row:not(.cv-row), .pub-row:not(.cv-row) > .wp-block-group__inner-container) > p:last-child{
  grid-column:2; text-align:left; padding-top:0; font-size:13px; }
.wp-block-column :is(.pub-row:not(.cv-row), .pub-row:not(.cv-row) > .wp-block-group__inner-container) > .wp-block-post-terms{ grid-column:2; text-align:left; padding-top:0; }
.wp-block-column .pub-row .pub-title{ font-size:1.3rem; }
