/*
Theme Name: TriSovereign News
Theme URI: https://tri-sovereign.co.uk/
Author: TriSovereign Limited
Author URI: https://tri-sovereign.co.uk/
Description: Editorial news theme for TriSovereign Limited. Navy + gold + dark teal palette with Barlow typography. Includes blog index with article cards (category, date, headline, summary), single article template, header with TriSovereign logo, and credentials footer bar (UK Reg. No. 16484732 · JOSCAR Registered · NATO NCAGE U2DX1).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: trisovereign-news
Tags: blog, news, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =========================================================
   TriSovereign News — base styles
   Palette: navy #1A2035, gold #FDBE10, teal #0D3B3B
   Type:    Barlow / Barlow Condensed (Google Fonts)
   ========================================================= */

:root {
  --ts-navy:  #181D31;          /* primary background — matches main site */
  --ts-navy-2: #1A2035;         /* requested alt navy, used for nav */
  --ts-gold:  #FDBE10;
  --ts-gold-soft: #C9951A;
  --ts-teal:  #042B35;          /* dark teal accent — matches main site */
  --ts-teal-deep: #0D3B3B;      /* deeper teal for footer */
  --ts-paper: #F6F4EF;
  --ts-ink:   #181D31;
  --ts-rule:  rgba(253, 190, 16, 0.22);
  --ts-rule-soft: rgba(253, 190, 16, 0.15);
  --ts-muted: rgba(255, 255, 255, 0.78);
  --ts-muted-2: rgba(255, 255, 255, 0.65);
  --ts-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  --ts-maxw:  1440px;
}

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--ts-navy);
  color: #FFFFFF;
  font-family: 'Barlow', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
::selection { background: var(--ts-gold); color: var(--ts-ink); }

/* subtle grid backdrop — used on hero blocks */
.ts-bg-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(253,190,16,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(253,190,16,0.04) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse at top right, #000 0%, transparent 75%);
          mask-image: radial-gradient(ellipse at top right, #000 0%, transparent 75%);
  pointer-events: none;
}

.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px; height: 1px; overflow: hidden;
}

/* ---------- header ---------- */

.ts-cred-bar {
  width: 100%;
  background: var(--ts-gold);
  color: var(--ts-ink);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 10px 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  text-align: center;
}
.ts-cred-bar .sep { opacity: 0.5; }

.ts-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(24, 29, 49, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ts-rule-soft);
}

.ts-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 48px;
  max-width: var(--ts-maxw);
  margin: 0 auto;
  gap: 24px;
}

.ts-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: #FFFFFF;
}
.ts-brand img { width: 42px; height: 42px; display: block; }
.ts-wordmark {
  display: inline-flex;
  flex-direction: column;
  line-height: 0.85;
  letter-spacing: 0.02em;
}
.ts-wordmark .top {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: var(--ts-gold);
  letter-spacing: 0.04em;
}
.ts-wordmark .sub {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 10px;
  color: var(--ts-gold);
  letter-spacing: 0.5em;
  margin-top: 4px;
  opacity: 0.85;
}

.ts-nav-links {
  display: flex;
  gap: 36px;
  align-items: center;
}
.ts-nav-links a,
.ts-nav-links .ts-nav-cta {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FFFFFF;
  text-decoration: none;
  opacity: 0.85;
  white-space: nowrap;
  transition: color .2s, opacity .2s;
}
.ts-nav-links a:hover,
.ts-nav-links a[aria-current="page"] {
  color: var(--ts-gold);
  opacity: 1;
}
.ts-nav-cta {
  background: var(--ts-gold);
  color: var(--ts-ink) !important;
  padding: 10px 22px;
  opacity: 1 !important;
  font-weight: 700 !important;
}
.ts-nav-cta:hover { background: #ffce42; }

/* ---------- nav dropdown (Social Impact) ---------- */
.ts-nav-dd {
  position: relative;
}
.ts-nav-dd-toggle {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #FFFFFF;
  opacity: 0.85;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  transition: color .2s, opacity .2s;
}
.ts-nav-dd-toggle:hover,
.ts-nav-dd-toggle[aria-expanded="true"] {
  color: var(--ts-gold);
  opacity: 1;
}
.ts-nav-dd-toggle .caret {
  font-size: 9px;
  opacity: 0.7;
  transition: transform .25s;
}
.ts-nav-dd-toggle[aria-expanded="true"] .caret { transform: rotate(180deg); }

.ts-nav-dd-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  min-width: 320px;
  background: var(--ts-navy);
  border: 1px solid var(--ts-rule);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .25s, transform .25s, visibility .25s;
  box-shadow: var(--ts-shadow);
  z-index: 60;
}
.ts-nav-dd:hover .ts-nav-dd-menu,
.ts-nav-dd-toggle[aria-expanded="true"] + .ts-nav-dd-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.ts-nav-dd-menu a {
  display: block;
  padding: 14px 22px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #FFFFFF;
  text-decoration: none;
  opacity: 1;
  transition: background .15s, color .15s;
}
.ts-nav-dd-menu a:hover {
  background: rgba(253, 190, 16, 0.08);
  color: var(--ts-gold);
}
.ts-nav-dd-menu a .region {
  opacity: 0.5;
  margin-left: 6px;
}

@media (max-width: 980px) {
  .ts-nav-row { padding: 16px 24px; }
  .ts-nav-links { display: none; }
}

/* ---------- news hero block ---------- */

.ts-news-hero {
  position: relative;
  width: 100%;
  min-height: 560px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #0E1322;
}
.ts-news-hero .photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
}
.ts-news-hero .scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(24,29,49,0) 55%, rgba(24,29,49,0.85) 100%),
    linear-gradient(90deg, rgba(24,29,49,0.55) 0%, rgba(24,29,49,0.10) 55%, rgba(24,29,49,0) 80%);
}
.ts-news-hero .inner {
  position: relative;
  z-index: 1;
  max-width: var(--ts-maxw);
  margin: 0 auto;
  padding: 120px 48px 80px;
  width: 100%;
}
.ts-news-hero h1 {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: clamp(56px, 8vw, 140px);
  line-height: 0.9;
  letter-spacing: -0.025em;
  color: #FFFFFF;
  margin: 0 0 22px;
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55);
}
.ts-news-hero h1 .accent { color: var(--ts-gold); }
.ts-news-hero .gold-rule {
  display: block;
  width: 80px;
  height: 3px;
  background: var(--ts-gold);
  margin: 0 0 32px;
}
.ts-news-hero .sub {
  font-family: 'Barlow', sans-serif;
  font-weight: 300;
  font-size: 20px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.86);
  max-width: 640px;
  margin: 0;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
@media (max-width: 720px) {
  .ts-news-hero { min-height: 440px; }
  .ts-news-hero .inner { padding: 80px 24px 48px; }
}

/* ---------- page chrome ---------- */

.ts-page {
  max-width: var(--ts-maxw);
  margin: 0 auto;
  padding: 80px 48px 120px;
  position: relative;
}
@media (max-width: 720px) {
  .ts-page { padding: 56px 24px 80px; }
}
.ts-page-inner { position: relative; z-index: 1; }

/* numbered eyebrow — 02 ─── BRIEFINGS & PRESS */
.ts-eyebrow {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ts-gold);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
}
.ts-eyebrow .num { font-variant-numeric: tabular-nums; }
.ts-eyebrow .rule { width: 28px; height: 1px; background: currentColor; opacity: 0.5; display: block; }

.ts-page-title {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: clamp(44px, 6vw, 96px);
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  margin: 0 0 28px;
  text-wrap: balance;
}
.ts-page-title .accent { color: var(--ts-gold); }
.ts-page-lede {
  font-family: 'Barlow', sans-serif;
  font-weight: 300;
  font-size: 19px;
  line-height: 1.55;
  color: var(--ts-muted);
  max-width: 640px;
  margin: 0 0 40px;
}

/* pillar strip — UK · CROATIA · UKRAINE under hero */
.ts-pillar-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ts-rule);
  border-bottom: 1px solid var(--ts-rule);
  margin: 0 0 80px;
}
@media (max-width: 720px) { .ts-pillar-strip { grid-template-columns: 1fr; } }
.ts-pillar-strip > div {
  padding: 22px 28px;
  display: flex;
  align-items: baseline;
  gap: 16px;
  border-left: 1px solid var(--ts-rule);
}
.ts-pillar-strip > div:first-child { border-left: none; }
.ts-pillar-strip .loc {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.2em;
  color: var(--ts-gold);
}
.ts-pillar-strip .desc {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.28em;
  color: var(--ts-muted-2);
  text-transform: uppercase;
}

.ts-divider {
  height: 1px;
  background: var(--ts-rule);
  margin: 0 0 48px;
}

/* ---------- article cards (index) ---------- */

.ts-articles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--ts-rule);
}

.ts-article-card {
  position: relative;
  display: grid;
  grid-template-columns: 280px 200px 1fr auto;
  gap: 40px;
  align-items: start;
  padding: 44px 0;
  border-bottom: 1px solid var(--ts-rule);
  text-decoration: none;
  color: inherit;
  transition: background .25s;
}
.ts-article-card.no-thumb { grid-template-columns: 220px 1fr auto; gap: 56px; }
.ts-article-card.no-thumb .thumb { display: none; }

.ts-article-card .thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--ts-teal);
  border: 1px solid var(--ts-rule-soft);
}
.ts-article-card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(.2,.8,.2,1), filter .4s;
  filter: saturate(0.85) contrast(1.05);
}
.ts-article-card:hover .thumb img {
  transform: scale(1.04);
  filter: saturate(1) contrast(1.05);
}
.ts-article-card .thumb-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--ts-teal) 0%, var(--ts-navy) 100%);
  color: var(--ts-gold);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 56px;
  letter-spacing: 0.12em;
  opacity: 0.9;
}
.ts-article-card::before {
  content: '';
  position: absolute; top: 0; left: 0; height: 2px;
  width: 56px;
  background: var(--ts-gold);
  transition: width 0.5s cubic-bezier(.2,.8,.2,1);
}
.ts-article-card:hover::before { width: 100%; }
.ts-article-card:hover {
  background: linear-gradient(90deg, rgba(253,190,16,0.04), transparent 60%);
}
.ts-article-card .meta {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 6px;
}
.ts-article-card .cat {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 10px;
  color: var(--ts-gold);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
}
.ts-article-card .cat::before {
  content: '';
  width: 22px; height: 1px;
  background: var(--ts-gold);
  opacity: 0.6;
}
.ts-article-card .date {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ts-muted);
  font-variant-numeric: tabular-nums;
}
.ts-article-card .body { min-width: 0; }
.ts-article-card h2 {
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  margin: 0 0 14px;
  text-wrap: balance;
}
.ts-article-card:hover h2 { color: var(--ts-gold); }
.ts-article-card .summary {
  font-family: 'Barlow', sans-serif;
  font-weight: 300;
  font-size: 17px;
  line-height: 1.55;
  color: var(--ts-muted);
  margin: 0;
  max-width: 680px;
}
.ts-article-card .arrow {
  align-self: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ts-gold);
  white-space: nowrap;
  transform: translateX(0);
  transition: transform .25s;
}
.ts-article-card:hover .arrow { transform: translateX(6px); }

@media (max-width: 980px) {
  .ts-article-card,
  .ts-article-card.no-thumb {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 32px 0;
  }
  .ts-article-card .thumb { aspect-ratio: 16 / 9; }
  .ts-article-card .meta { flex-direction: row; gap: 16px; align-items: center; flex-wrap: wrap; }
  .ts-article-card .arrow { display: none; }
}

/* ---------- pagination ---------- */

.ts-pagination {
  margin: 64px 0 0;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ts-pagination .page-numbers {
  padding: 12px 18px;
  border: 1px solid var(--ts-rule);
  color: #FFFFFF;
  text-decoration: none;
  font-size: 13px;
}
.ts-pagination .page-numbers:hover { border-color: var(--ts-gold); color: var(--ts-gold); }
.ts-pagination .page-numbers.current {
  background: var(--ts-gold);
  color: var(--ts-ink);
  border-color: var(--ts-gold);
}

/* ---------- single article ---------- */

.ts-article-hero {
  max-width: 880px;
  margin: 0 auto 56px;
}
.ts-article-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0 0 28px;
}
.ts-article-meta .cat {
  background: var(--ts-teal);
  color: var(--ts-gold);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  padding: 7px 14px;
  text-decoration: none;
}
.ts-article-meta .cat:hover { background: var(--ts-gold); color: var(--ts-ink); }
.ts-article-meta .date,
.ts-article-meta .author {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ts-muted);
}
.ts-article-meta .sep { color: var(--ts-muted); opacity: 0.5; }

.ts-article-title {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: #FFFFFF;
  margin: 0 0 24px;
  text-wrap: balance;
}
.ts-article-excerpt {
  font-family: 'Barlow', sans-serif;
  font-weight: 300;
  font-style: italic;
  font-size: 21px;
  line-height: 1.5;
  color: var(--ts-muted);
  margin: 0;
  border-left: 2px solid var(--ts-gold);
  padding: 4px 0 4px 22px;
}

.ts-featured {
  max-width: 1100px;
  margin: 0 auto 56px;
}
.ts-featured img { width: 100%; height: auto; display: block; }

.ts-article-body {
  max-width: 720px;
  margin: 0 auto;
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.72;
  color: rgba(255, 255, 255, 0.88);
}
.ts-article-body > * + * { margin-top: 1.2em; }
.ts-article-body p { margin: 0; }
.ts-article-body h2 {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  margin: 56px 0 8px;
}
.ts-article-body h3 {
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  color: #FFFFFF;
  margin: 40px 0 4px;
}
.ts-article-body a {
  color: var(--ts-gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(253, 190, 16, 0.4);
  transition: border-color .2s;
}
.ts-article-body a:hover { border-bottom-color: var(--ts-gold); }
.ts-article-body strong { color: #FFFFFF; font-weight: 700; }
.ts-article-body em { font-style: italic; }
.ts-article-body blockquote {
  margin: 32px 0;
  padding: 24px 28px;
  border-left: 3px solid var(--ts-gold);
  background: rgba(13, 59, 59, 0.45);
  font-style: italic;
  font-size: 21px;
  line-height: 1.5;
  color: #FFFFFF;
}
.ts-article-body blockquote p { margin: 0; }
.ts-article-body ul, .ts-article-body ol { padding-left: 1.4em; }
.ts-article-body li { margin: 0.4em 0; }
.ts-article-body img { margin: 24px 0; }
.ts-article-body code {
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: 0.92em;
  background: rgba(253, 190, 16, 0.1);
  color: var(--ts-gold);
  padding: 2px 6px;
}
.ts-article-body pre {
  background: rgba(0, 0, 0, 0.35);
  border-left: 3px solid var(--ts-gold);
  padding: 20px 24px;
  overflow-x: auto;
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: 14px;
  line-height: 1.6;
}
.ts-article-body pre code {
  background: none;
  color: inherit;
  padding: 0;
}
.ts-article-body figure { margin: 32px 0; }
.ts-article-body figcaption {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ts-muted);
  margin-top: 10px;
  text-align: center;
}
.ts-article-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 16px;
}
.ts-article-body th,
.ts-article-body td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--ts-rule);
  text-align: left;
}
.ts-article-body th {
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ts-gold);
  font-size: 13px;
}

/* ---------- single article footer ---------- */

.ts-article-foot {
  max-width: 720px;
  margin: 80px auto 0;
  padding-top: 32px;
  border-top: 1px solid var(--ts-rule);
}
.ts-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 32px;
}
.ts-tags a {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ts-muted);
  text-decoration: none;
  border: 1px solid var(--ts-rule);
  padding: 6px 12px;
}
.ts-tags a:hover { border-color: var(--ts-gold); color: var(--ts-gold); }

.ts-prevnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 48px;
}
.ts-prevnext a {
  display: block;
  padding: 24px;
  border: 1px solid var(--ts-rule);
  text-decoration: none;
  color: #FFFFFF;
  transition: border-color .2s, background .2s;
}
.ts-prevnext a:hover { border-color: var(--ts-gold); background: rgba(253, 190, 16, 0.04); }
.ts-prevnext .label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ts-gold);
  display: block;
  margin-bottom: 10px;
}
.ts-prevnext .title {
  font-family: 'Barlow', sans-serif;
  font-weight: 600;
  font-size: 17px;
  line-height: 1.3;
}
.ts-prevnext .next { text-align: right; }

@media (max-width: 720px) {
  .ts-prevnext { grid-template-columns: 1fr; }
  .ts-prevnext .next { text-align: left; }
}

/* ---------- search / 404 / archive ---------- */

.ts-empty {
  text-align: center;
  padding: 80px 24px;
  border: 1px solid var(--ts-rule);
}
.ts-empty h2 {
  font-family: 'Barlow', sans-serif;
  font-weight: 800;
  font-size: 32px;
  margin: 0 0 12px;
}
.ts-empty p {
  color: var(--ts-muted);
  margin: 0 0 24px;
}
.ts-empty form {
  display: inline-flex;
  gap: 0;
  border: 1px solid var(--ts-rule);
}
.ts-empty input[type="search"] {
  background: transparent;
  border: none;
  color: #FFFFFF;
  padding: 12px 16px;
  font-family: 'Barlow', sans-serif;
  font-size: 15px;
  min-width: 240px;
  outline: none;
}
.ts-empty button {
  background: var(--ts-gold);
  color: var(--ts-ink);
  border: none;
  padding: 12px 22px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ---------- comments ---------- */

.ts-comments {
  max-width: 720px;
  margin: 80px auto 0;
}
.ts-comments h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ts-gold);
  margin: 0 0 24px;
}
.ts-comments ol { list-style: none; padding: 0; margin: 0; }
.ts-comments .comment {
  border-top: 1px solid var(--ts-rule);
  padding: 20px 0;
}
.ts-comments .comment-author {
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 4px;
}
.ts-comments .comment-meta {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ts-muted);
  margin: 0 0 12px;
}
.ts-comments p { color: rgba(255,255,255,0.88); line-height: 1.65; }

/* ---------- footer ---------- */

.ts-site-footer {
  background: var(--ts-teal);
  color: rgba(255, 255, 255, 0.88);
  margin-top: 80px;
  border-top: 1px solid var(--ts-rule);
}
.ts-foot-inner {
  max-width: var(--ts-maxw);
  margin: 0 auto;
  padding: 64px 48px 24px;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 56px;
}
@media (max-width: 980px) {
  .ts-foot-inner { grid-template-columns: 1fr; gap: 40px; padding: 48px 24px 24px; }
}
.ts-foot-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  text-decoration: none;
  color: #FFFFFF;
}
.ts-foot-brand img { width: 46px; height: 46px; }
.ts-foot-tag {
  font-family: 'Barlow', sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.7);
  max-width: 360px;
  margin: 0;
}
.ts-foot-col h4 {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ts-gold);
  margin: 0 0 18px;
}
.ts-foot-col ul { list-style: none; padding: 0; margin: 0; }
.ts-foot-col li { margin: 0 0 10px; }
.ts-foot-col a {
  font-family: 'Barlow', sans-serif;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
}
.ts-foot-col a:hover { color: var(--ts-gold); }

.ts-foot-creds {
  border-top: 1px solid rgba(253, 190, 16, 0.2);
  background: rgba(0, 0, 0, 0.25);
  padding: 18px 32px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ts-gold);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  text-align: center;
}
.ts-foot-creds .sep { opacity: 0.45; }

.ts-foot-legal {
  max-width: var(--ts-maxw);
  margin: 0 auto;
  padding: 18px 48px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.ts-foot-social {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.ts-foot-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  transition: color .2s, border-color .2s, background .2s;
}
.ts-foot-social a:hover {
  color: var(--ts-ink);
  background: var(--ts-gold);
  border-color: var(--ts-gold);
}
.ts-foot-social svg { width: 15px; height: 15px; display: block; }
@media (max-width: 720px) {
  .ts-foot-legal { padding: 18px 24px 28px; }
}

/* ---------- compliance footer block ---------- */

.ts-foot-compliance {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 2.5rem 48px;
  text-align: center;
}
.ts-compliance-note {
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.45);
  margin: 0 auto 18px;
}
.ts-compliance-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-family: 'Barlow', sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ts-compliance-links a {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  transition: color .2s;
}
.ts-compliance-links a:hover { color: var(--ts-gold); }
.ts-compliance-links .dot {
  color: rgba(255, 255, 255, 0.25);
}
@media (max-width: 720px) {
  .ts-foot-compliance { padding: 2.5rem 24px; }
}

/* ---------- WP alignment helpers ---------- */
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft   { float: left;  margin: 0 24px 16px 0; }
.alignright  { float: right; margin: 0 0 16px 24px; }
.alignwide   { max-width: 1100px; margin-left: auto; margin-right: auto; }
.alignfull   { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.wp-caption-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ts-muted);
  margin-top: 8px;
  text-align: center;
}
