/* Archive, search, author and page templates — WordPress-specific additions to style.css. */

/* Sidebar "Most read" spacing (the static design sets this inline). */
.cat-aside .news-vaside{ margin-top:20px; }
.cat-aside > .news-vaside:first-child{ margin-top:0; }

/* Header extras: tag description, search count, 404 message. */
.cat-head__lede{ margin:0; max-width:68ch; font-size:16px; line-height:1.55; color:var(--muted); }
.cat-head__count{ margin:0; font-size:14px; font-weight:600; color:var(--muted); }
.cat-head__title mark,
.cat-row mark{ background:rgba(237,28,36,.14); color:var(--red-deep, var(--red)); border-radius:2px; padding:0 2px; }
.cat-row__dek{ margin:6px 0 0; font-size:14px; line-height:1.5; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* In-page search form (searchform.php) reusing the header search field look. */
.news-search-head{ display:flex; flex-direction:column; gap:12px; max-width:760px; }
.news-searchform.srch-field{ height:56px; padding:0 6px 0 18px; border-color:var(--line); background:var(--paper); }
.news-searchform.srch-field input{ font-size:17px; }
.news-searchform.srch-field > svg{ width:20px; height:20px; }
.news-searchform__btn{ flex:none; height:44px; padding:0 20px; border-radius:999px; }

/* Empty states. */
.news-empty{ padding:clamp(24px,5vw,48px) 0; }
.news-empty svg{ display:block; }
.news-empty__form{ max-width:560px; margin:20px auto 0; text-align:left; }
.news-empty .srch-chips a{
	border:1px solid var(--border-bottom); background:var(--paper-2); border-radius:999px; padding:8px 14px;
	font-size:13px; font-weight:500; color:var(--ink);
}
.news-empty .srch-chips a:hover{ border-color:var(--red); color:var(--red); }
.news-empty + .cat-block{ border-top:1px solid var(--line); padding-top:18px; }

/* Pagination under listing feeds. */
.cat-main .news-pagination,
.author-feed .news-pagination{ margin:24px 0 8px; }

/* Page hero breadcrumbs (rendered inside .contact-hero__kicker). */
.news-crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.news-crumbs a{ color:inherit; }
.news-crumbs a:hover{ color:#fff; }
.news-crumbs [aria-current]{ color:rgba(255,255,255,.72); }

/* Legal body: WordPress block markup. */
.legal-body ul,
.legal-body ol{ margin:0 0 14px; padding-left:1.3em; list-style:revert; max-width:68ch; font-size:16px; line-height:1.7; }
.legal-body li + li{ margin-top:4px; }
.legal-body h3{ margin:22px 0 10px; font-size:19px; font-weight:700; letter-spacing:-.02em; }
.legal-body img{ max-width:100%; height:auto; border-radius:var(--radius-s); }
.legal-body > .contact-kicker:first-child{ margin-top:0; }
.news-page-links{ margin-top:24px; font-weight:600; }

/* "Full width" page template. */
.legal-layout--full{ grid-template-columns:minmax(0,1fr); }
.legal-body--full p,
.legal-body--full ul,
.legal-body--full ol,
.legal-body--full .legal-body__lede{ max-width:none; }
.legal-body--full > h2:not(:first-child),
.legal-body--full > h3:not(:first-child){ margin-top:32px; }

@media (max-width:860px){
	.news-searchform.srch-field{ height:50px; padding-left:14px; }
	.news-searchform__btn{ height:40px; padding:0 14px; }
}

/* WordPress images carry width/height attributes; let the design's aspect-ratio rules size them. */

/* Stacked lead stories: headline max 2 lines, then ellipsis (long titles break the grid). */
.cat-lead__stack h3{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}

/* Kicker is a label: one line, ellipsis — never wrap under the column. */
.cat-lead__stack .kicker{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Generated hero band for any category (term meta "Hero band" / "Hero colour"). --hero is set inline. */
.section-dark--custom{
  --hero:#D7141B;
  position:relative; overflow:hidden;
  background:color-mix(in srgb, var(--hero) 20%, #070708);
}
.section-dark--custom > .shell{ position:relative; z-index:1; }
.custom-glow{
  position:absolute; top:-260px; left:-180px; width:880px; height:720px; border-radius:50%;
  pointer-events:none; z-index:0;
  background:radial-gradient(closest-side, color-mix(in srgb, var(--hero) 34%, transparent), transparent 72%);
}
.custom-glow--br{
  top:auto; left:auto; right:-280px; bottom:-320px; width:1100px; height:900px;
  background:radial-gradient(closest-side, color-mix(in srgb, var(--hero) 38%, transparent), transparent 74%);
}
.section-dark--custom .eyebrow--light{ color:color-mix(in srgb, var(--hero) 55%, #fff); }
.section-dark--custom .shead--light .shead__rule{ background:color-mix(in srgb, var(--hero) 50%, transparent); }
.section-dark--custom .see-all--light{ color:color-mix(in srgb, var(--hero) 35%, #fff); }
.section-dark--custom .see-all--light:hover{ color:#fff; }

/* Category lead: keep the big story as tall as a full 3-story stack even when the section has few posts. */
@media (min-width:861px){
  .cat-lead__feature{ min-height:268px; }
  .cat-lead__stack{ justify-content:flex-start; }
  .cat-lead__stack:has(> a:nth-child(3)){ justify-content:space-between; }
}

/* Legal pages (Imprint, Privacy, About…): section overlines keep the small kicker style —
   ".legal-body p" is more specific than ".contact-kicker" and turned them into 16px body text. */
.legal-body p.contact-kicker{ margin:0 0 8px; font-size:11px; line-height:1.4; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--red); }


/* Category grid cards: titles are <h3 class="featured__mini-title"> (heading order under the H2 section title).
   Same styles as the design's .featured__mini h4, generated from style.css. */
.cat-grid .featured__mini:hover h3.featured__mini-title{color:var(--ink-hover);}
.cat-grid .featured__mini h3.featured__mini-title{font-family:var(--sans); font-size:15px; line-height:1.32; font-weight:500;
  color:var(--ink);
  height:calc(15px * 1.32 * 3);
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;}
.featured__mini h3.featured__mini-title{font-size:14px; line-height:1.3; font-weight:500; font-family:var(--sans); color:var(--ink); transition:color .18s;}
@media (max-width:860px){
  .cat-grid .featured__mini h3.featured__mini-title{font-size:14px;
    height:calc(14px * 1.32 * 3);}
}
@media (max-width:860px){
  html[data-feed-view="list"] .cat-grid .featured__mini h3.featured__mini-title{height:auto;
    margin:0;
    font-size:14.5px;
    line-height:1.28;
    font-weight:600;
    -webkit-line-clamp:3;}
}

/* Breadcrumbs above light page headers (tags, dates, search, sections without a hero). */
.cat-head__crumbs{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; }
.cat-head__crumbs a{ color:var(--muted); text-decoration:none; }
.cat-head__crumbs a:hover{ color:var(--ink); }
.cat-head__crumbs [aria-current]{ color:var(--ink); }

/* Category / article: sidebar hidden (per-category or site default). */
.cat-page--full{ grid-template-columns:minmax(0,1fr); }
@media (min-width:861px){
	.article-layout--full{
		grid-template-columns:minmax(0,1fr) !important;
	}
	.article-layout--full .article-main{
		grid-column:1;
		max-width:72ch;
		margin-inline:auto;
	}
	.article-layout--full .article-comments,
	.article-layout--full .article-related{
		grid-column:1;
	}
}

/* Leaf category grid feed: same card grid as landing blocks. */
.cat-main > .cat-grid{ margin-top:8px; }
.cat-main > .cat-grid[data-paging] > .is-new{ animation:paging-in .35s ease both; }

