/*
Theme Name: Telegraph News
Theme URI: https://telegraphnews.eu/
Author: Telegraph News
Author URI: https://telegraphnews.eu/
Description: A clean, fast, fully responsive editorial WordPress theme for Telegraph News, inspired by the Politico layout language. Serif headlines (Source Serif 4) paired with Libre Franklin UI, a three-column homepage, red section eyebrows, a LIVE ticker and a full-screen mobile menu.
Version: 1.1.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: telegraphnews
Tags: news, magazine, blog, three-columns, right-sidebar, custom-menu, featured-images, translation-ready, responsive
*/

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --tn-red:        #C8102E;   /* accent / brand */
  --tn-red-dark:   #9e0b23;
  --tn-ink:        #111111;   /* headlines, primary text */
  --tn-body:       #23262b;   /* article body */
  --tn-meta:       #6b6b6b;   /* bylines, timestamps */
  --tn-meta-soft:  #8a8f96;
  --tn-line:       #e3e3e3;   /* hairlines */
  --tn-line-soft:  #efefef;
  --tn-bg:         #ffffff;
  --tn-bg-soft:    #f6f6f4;   /* sponsored / subtle blocks */
  --tn-footer:     #10141c;   /* dark footer */
  --tn-footer-txt: #c7ccd6;

  --tn-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --tn-sans:  "Libre Franklin", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --tn-maxw: 1240px;
  --tn-gap:  32px;
  --tn-radius: 0px;         /* editorial = square corners */
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--tn-bg);
  color:var(--tn-body);
  font-family:var(--tn-sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }
h1,h2,h3,h4,h5,h6{ font-family:var(--tn-serif); color:var(--tn-ink); margin:0 0 .4em; line-height:1.15; font-weight:700; }
p{ margin:0 0 1.1em; }
ul,ol{ margin:0 0 1.1em; padding-left:1.2em; }
figure{ margin:0; }
button{ font-family:inherit; cursor:pointer; }

/* Focus visibility (accessibility) */
a:focus-visible, button:focus-visible, input:focus-visible, .menu-toggle:focus-visible{
  outline:3px solid var(--tn-red);
  outline-offset:2px;
}
.screen-reader-text{
  position:absolute!important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); clip-path:inset(50%); white-space:nowrap; border:0; padding:0; margin:-1px;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:1000; background:var(--tn-ink); color:#fff;
  padding:10px 16px; font-family:var(--tn-sans); font-weight:600;
}
.skip-link:focus{ left:8px; top:8px; }

/* =========================================================
   LAYOUT HELPERS
   ========================================================= */
.tn-container{ max-width:var(--tn-maxw); margin:0 auto; padding:0 20px; }
.tn-section{ margin:34px 0; }

/* Red ring-bullet eyebrow (signature) */
.tn-eyebrow{
  font-family:var(--tn-sans);
  font-weight:700;
  font-size:12px;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--tn-ink);
  display:flex; align-items:center; gap:8px;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--tn-line);
}
.tn-eyebrow::before{
  content:""; width:11px; height:11px; border-radius:50%;
  border:3px solid var(--tn-red); flex:0 0 auto;
}
.tn-eyebrow a{ color:inherit; }

/* Category kicker (red, above headline) */
.tn-kicker{
  font-family:var(--tn-sans);
  font-weight:700; font-size:12px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--tn-red); display:inline-block; margin-bottom:8px;
}
.tn-kicker a{ color:var(--tn-red); }

/* Byline / meta */
.tn-byline{
  font-family:var(--tn-sans); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--tn-meta); font-weight:600;
}
.tn-byline a{ color:var(--tn-meta); }
.tn-byline a:hover{ color:var(--tn-red); }
.tn-time{ font-family:var(--tn-sans); font-size:12.5px; color:var(--tn-meta); }

/* =========================================================
   TOP UTILITY BAR
   ========================================================= */
.tn-utility{
  border-bottom:1px solid var(--tn-line-soft);
  font-family:var(--tn-sans);
  font-size:12.5px;
  color:var(--tn-meta);
}
.tn-utility .tn-container{ display:flex; align-items:center; justify-content:space-between; height:38px; }
.tn-utility .tn-date{ letter-spacing:.02em; }
.tn-utility .tn-date strong{ color:var(--tn-ink); font-weight:600; }
.tn-social{ display:flex; align-items:center; gap:16px; }
.tn-social a{ color:var(--tn-meta); display:inline-flex; }
.tn-social a:hover{ color:var(--tn-red); }
.tn-social svg{ width:16px; height:16px; fill:currentColor; }

/* =========================================================
   MASTHEAD (logo)
   ========================================================= */
.tn-masthead{ border-bottom:1px solid var(--tn-line); }
.tn-masthead .tn-container{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px;
  padding-top:20px; padding-bottom:20px;
}
.tn-brand{ grid-column:2; text-align:center; }
.tn-brand a{ display:inline-block; }
.tn-brand img{ max-height:56px; width:auto; margin:0 auto; }
.tn-brand .tn-wordmark{
  font-family:var(--tn-serif);
  font-weight:900;
  font-size:40px;
  letter-spacing:.01em;
  color:var(--tn-red);
  line-height:1;
  text-transform:uppercase;
}
.tn-brand .tn-tagline{
  font-family:var(--tn-sans); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tn-meta); margin-top:8px;
}
.tn-masthead-left{ grid-column:1; display:flex; align-items:center; }
.tn-masthead-right{ grid-column:3; display:flex; align-items:center; justify-content:flex-end; gap:20px; }

.tn-search-toggle, .menu-toggle{
  background:none; border:0; padding:6px; color:var(--tn-ink); display:inline-flex; align-items:center;
}
.tn-search-toggle svg, .menu-toggle svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; }
.menu-toggle{ display:none; }

/* =========================================================
   PRIMARY NAV
   ========================================================= */
.tn-navbar{ border-bottom:2px solid var(--tn-ink); position:relative; }
.tn-navbar .tn-container{ display:flex; align-items:stretch; gap:0; }

.tn-live{
  display:flex; align-items:center; gap:9px; padding:11px 18px 11px 0;
  border-right:1px solid var(--tn-line); margin-right:18px; flex:0 0 auto;
}
.tn-live .live-dot{
  font-family:var(--tn-sans); font-weight:800; font-size:11px; letter-spacing:.08em;
  color:#fff; background:var(--tn-red); padding:3px 7px; border-radius:2px; text-transform:uppercase;
}
.tn-live .live-text{ font-family:var(--tn-sans); font-weight:600; font-size:13.5px; color:var(--tn-ink); white-space:nowrap; }
.tn-live .live-text:hover{ color:var(--tn-red); text-decoration:none; }
.tn-live .live-ago{ color:var(--tn-red); font-weight:700; font-size:11.5px; text-transform:uppercase; }

.tn-menu{ list-style:none; margin:0; padding:0; display:flex; align-items:stretch; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.tn-menu::-webkit-scrollbar{ display:none; }
.tn-menu > li{ position:relative; display:flex; align-items:stretch; }
.tn-menu > li > a{
  font-family:var(--tn-sans); font-weight:600; font-size:14px; color:var(--tn-ink);
  padding:12px 13px; display:flex; align-items:center; white-space:nowrap;
  border-bottom:3px solid transparent; transition:color .12s, border-color .12s;
}
.tn-menu > li > a:hover,
.tn-menu > li.current-menu-item > a,
.tn-menu > li.current-menu-parent > a{ color:var(--tn-red); border-bottom-color:var(--tn-red); text-decoration:none; }

/* Dropdowns */
.tn-menu ul.sub-menu{
  position:absolute; top:100%; left:0; min-width:210px; background:#fff; margin:0; padding:6px 0;
  list-style:none; border:1px solid var(--tn-line); box-shadow:0 12px 28px rgba(0,0,0,.12);
  opacity:0; visibility:hidden; transform:translateY(4px); transition:.14s; z-index:60;
}
.tn-menu li:hover > ul.sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.tn-menu ul.sub-menu li a{
  display:block; padding:9px 18px; font-family:var(--tn-sans); font-size:13.5px; font-weight:500; color:var(--tn-ink);
}
.tn-menu ul.sub-menu li a:hover{ color:var(--tn-red); background:var(--tn-bg-soft); text-decoration:none; }
.tn-menu ul.sub-menu ul.sub-menu{ top:0; left:100%; }

/* =========================================================
   HEADER SEARCH DRAWER
   ========================================================= */
.tn-search-drawer{
  display:none; border-bottom:1px solid var(--tn-line); background:var(--tn-bg-soft);
}
.tn-search-drawer.open{ display:block; }
.tn-search-drawer .tn-container{ padding-top:16px; padding-bottom:16px; }
.tn-search-form{ display:flex; gap:0; max-width:640px; }
.tn-search-form input[type="search"]{
  flex:1; font-family:var(--tn-sans); font-size:16px; padding:12px 14px; border:1px solid var(--tn-ink); border-right:0; outline:none;
}
.tn-search-form button{
  background:var(--tn-ink); color:#fff; border:1px solid var(--tn-ink); padding:0 22px; font-family:var(--tn-sans);
  font-weight:600; font-size:14px; letter-spacing:.04em; text-transform:uppercase;
}
.tn-search-form button:hover{ background:var(--tn-red); border-color:var(--tn-red); }

/* =========================================================
   HOMEPAGE — THREE COLUMN GRID
   ========================================================= */
.tn-home{
  display:grid;
  grid-template-columns:300px minmax(0,1fr) 340px;
  grid-template-rows:auto minmax(0,1fr);
  column-gap:var(--tn-gap); row-gap:0;
  margin-top:28px;
}
/* Left rail: pinned while the taller center/right columns scroll past it. */
.tn-col-left{
  grid-column:1; grid-row:1 / 3; min-width:0;
  position:sticky; top:20px; align-self:start;
  padding-right:26px; border-right:1px solid var(--tn-line);
}
/* Shared TOP NEWS band spanning the center + right columns (one continuous rule). */
.tn-topnews-head{ grid-column:2 / 4; grid-row:1; margin-bottom:0; }
.tn-col-main{ grid-column:2; grid-row:2; min-width:0; padding-top:20px; }
.tn-col-right{
  grid-column:3; grid-row:2; min-width:0;
  padding-top:20px; padding-left:26px; border-left:1px solid var(--tn-line);
}

/* Lead story */
.tn-lead .tn-kicker{ font-size:13px; }
.tn-lead-title{ font-size:44px; font-weight:900; line-height:1.06; letter-spacing:-.01em; margin-bottom:12px; }
.tn-lead-title a:hover{ color:var(--tn-red); text-decoration:none; }
.tn-lead-deck{ font-family:var(--tn-serif); font-size:21px; line-height:1.4; color:#3a3d42; margin-bottom:14px; font-weight:400; }
.tn-lead .tn-byline{ margin-bottom:16px; display:block; }
.tn-lead-figure{ margin-bottom:8px; }
.tn-lead-figure img{ width:100%; }
.tn-figcaption{ font-family:var(--tn-sans); font-size:12px; color:var(--tn-meta); margin-top:6px; }

/* Latest-news rail list */
.tn-rail-list{ list-style:none; margin:0; padding:0; }
.tn-rail-list li{ padding:14px 0; border-bottom:1px solid var(--tn-line); }
.tn-rail-list li:first-child{ padding-top:0; }
.tn-rail-item{ display:flex; gap:12px; align-items:flex-start; }
.tn-rail-ago{ color:var(--tn-red); font-family:var(--tn-sans); font-weight:700; font-size:11px; text-transform:uppercase; flex:0 0 auto; padding-top:2px; min-width:24px; }
.tn-rail-title{ font-family:var(--tn-serif); font-weight:700; font-size:16.5px; line-height:1.25; color:var(--tn-ink); }
.tn-rail-title a:hover{ color:var(--tn-red); text-decoration:none; }

/* Sponsored block */
.tn-sponsored{ background:var(--tn-bg-soft); padding:16px; margin:6px 0; }
.tn-sponsored .lbl{ font-family:var(--tn-sans); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--tn-red); font-weight:700; margin-bottom:8px; }
.tn-sponsored .txt{ font-family:var(--tn-serif); font-weight:700; font-size:16px; line-height:1.25; color:var(--tn-ink); }
.tn-sponsored .by{ font-family:var(--tn-sans); font-size:11.5px; color:var(--tn-meta-soft); margin-top:8px; }

/* Right rail — image cards */
.tn-side-card{ padding:18px 0; border-bottom:1px solid var(--tn-line); }
.tn-side-card:first-child{ padding-top:0; }
.tn-side-card .thumb{ margin-bottom:10px; }
.tn-side-card .thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.tn-side-card .tn-kicker{ font-size:11px; }
.tn-side-card h3{ font-size:19px; line-height:1.2; font-weight:800; margin-bottom:6px; }
.tn-side-card h3 a:hover{ color:var(--tn-red); text-decoration:none; }

/* Main column secondary cards (below the lead) */
.tn-main-list{ margin-top:26px; border-top:2px solid var(--tn-ink); padding-top:18px; }
.tn-hcard{ display:grid; grid-template-columns:1fr 200px; gap:20px; padding:18px 0; border-bottom:1px solid var(--tn-line); align-items:start; }
.tn-hcard .thumb img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.tn-hcard h3{ font-size:23px; line-height:1.15; font-weight:800; margin-bottom:8px; }
.tn-hcard h3 a:hover{ color:var(--tn-red); text-decoration:none; }
.tn-hcard .tn-excerpt{ font-family:var(--tn-serif); font-size:15.5px; color:#4a4d52; line-height:1.45; margin:6px 0 8px; }

/* Most-read numbered list */
.tn-mostread{ list-style:none; counter-reset:mr; margin:0; padding:0; }
.tn-mostread li{ display:flex; gap:12px; padding:13px 0; border-bottom:1px solid var(--tn-line); counter-increment:mr; }
.tn-mostread li::before{ content:counter(mr); color:var(--tn-red); font-family:var(--tn-sans); font-weight:800; font-size:15px; flex:0 0 auto; min-width:16px; }
.tn-mostread .t{ font-family:var(--tn-serif); font-weight:700; font-size:15.5px; line-height:1.25; color:var(--tn-ink); }
.tn-mostread .t:hover{ color:var(--tn-red); text-decoration:none; }
.tn-mostread .lead-img{ margin-bottom:14px; }
.tn-mostread .lead-img img{ width:100%; aspect-ratio:16/9; object-fit:cover; }

/* =========================================================
   ARCHIVE / SEARCH / BLOG GRID
   ========================================================= */
.tn-page-head{ margin:26px 0 8px; padding-bottom:16px; border-bottom:2px solid var(--tn-ink); }
.tn-page-head .tn-kicker{ font-size:12px; }
.tn-page-head h1{ font-size:34px; font-weight:900; letter-spacing:-.01em; }
.tn-page-head .desc{ font-family:var(--tn-serif); font-size:17px; color:#4a4d52; margin-top:6px; }

.tn-with-sidebar{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:44px; margin-top:26px; }
.tn-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:30px 32px; }
.tn-card{ border-bottom:1px solid var(--tn-line); padding-bottom:22px; }
.tn-card .thumb{ margin-bottom:12px; overflow:hidden; }
.tn-card .thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .3s ease; }
.tn-card:hover .thumb img{ transform:scale(1.03); }
.tn-card h2{ font-size:21px; line-height:1.18; font-weight:800; margin-bottom:8px; }
.tn-card h2 a:hover{ color:var(--tn-red); text-decoration:none; }
.tn-card .tn-excerpt{ font-family:var(--tn-serif); font-size:15px; color:#4a4d52; line-height:1.45; margin-bottom:10px; }

/* =========================================================
   SIDEBAR / WIDGETS
   ========================================================= */
.tn-sidebar .widget{ margin-bottom:34px; }
.tn-sidebar .widget-title,
.tn-sidebar .widgettitle{
  font-family:var(--tn-sans); font-weight:700; font-size:12px; letter-spacing:.11em; text-transform:uppercase;
  color:var(--tn-ink); margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--tn-line);
  display:flex; align-items:center; gap:8px;
}
.tn-sidebar .widget-title::before,
.tn-sidebar .widgettitle::before{ content:""; width:11px; height:11px; border-radius:50%; border:3px solid var(--tn-red); }
.tn-sidebar ul{ list-style:none; margin:0; padding:0; }
.tn-sidebar li{ padding:9px 0; border-bottom:1px solid var(--tn-line-soft); font-family:var(--tn-serif); font-size:15.5px; font-weight:600; line-height:1.3; }
.tn-sidebar li a:hover{ color:var(--tn-red); }

/* =========================================================
   SINGLE ARTICLE
   ========================================================= */
.tn-article-wrap{ max-width:760px; margin:0 auto; }
.tn-article-head{ margin:30px 0 22px; }
.tn-article-head .tn-kicker{ font-size:13px; }
.tn-article-title{ font-size:42px; font-weight:900; line-height:1.08; letter-spacing:-.012em; margin-bottom:16px; }
.tn-article-deck{ font-family:var(--tn-serif); font-size:21px; line-height:1.45; color:#3a3d42; font-weight:400; margin-bottom:20px; }
.tn-article-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; padding:14px 0; border-top:1px solid var(--tn-line); border-bottom:1px solid var(--tn-line); }
.tn-article-meta .authors{ font-family:var(--tn-sans); font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--tn-meta); font-weight:600; }
.tn-article-meta .authors a{ color:var(--tn-ink); }
.tn-article-meta .authors a:hover{ color:var(--tn-red); }
.tn-article-meta .date{ font-family:var(--tn-sans); font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--tn-meta); }
.tn-share{ margin-left:auto; display:flex; gap:12px; }
.tn-share a{ color:var(--tn-meta); display:inline-flex; }
.tn-share a:hover{ color:var(--tn-red); }
.tn-share svg{ width:18px; height:18px; fill:currentColor; }

.tn-article-hero{ margin:24px 0; }
.tn-article-hero img{ width:100%; }

.tn-article-body{ font-family:var(--tn-serif); font-size:19px; line-height:1.72; color:var(--tn-body); }
.tn-article-body p{ margin:0 0 1.35em; }
.tn-article-body h2{ font-size:28px; margin:1.5em 0 .5em; }
.tn-article-body h3{ font-size:23px; margin:1.4em 0 .5em; }
.tn-article-body a{ color:var(--tn-red); text-decoration:underline; text-underline-offset:2px; }
.tn-article-body a:hover{ color:var(--tn-red-dark); }
.tn-article-body blockquote{
  margin:1.6em 0; padding:4px 0 4px 22px; border-left:4px solid var(--tn-red);
  font-size:23px; line-height:1.4; color:var(--tn-ink); font-weight:600;
}
.tn-article-body img{ margin:1.4em 0; }
.tn-article-body figcaption{ font-family:var(--tn-sans); font-size:12.5px; color:var(--tn-meta); margin-top:6px; }
.tn-article-body ul,.tn-article-body ol{ margin:0 0 1.35em; padding-left:1.3em; }
.tn-article-body li{ margin-bottom:.5em; }

.tn-tags{ margin:30px 0; display:flex; flex-wrap:wrap; gap:8px; }
.tn-tags a{
  font-family:var(--tn-sans); font-size:12px; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  color:var(--tn-ink); background:var(--tn-bg-soft); border:1px solid var(--tn-line); padding:6px 12px;
}
.tn-tags a:hover{ background:var(--tn-red); border-color:var(--tn-red); color:#fff; text-decoration:none; }

.tn-author-box{ display:flex; gap:16px; align-items:flex-start; padding:22px; background:var(--tn-bg-soft); margin:30px 0; }
.tn-author-box img{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex:0 0 auto; }
.tn-author-box .name{ font-family:var(--tn-serif); font-weight:700; font-size:18px; color:var(--tn-ink); }
.tn-author-box .bio{ font-family:var(--tn-sans); font-size:14px; color:#4a4d52; margin-top:4px; }

/* Related posts */
.tn-related{ margin:44px 0; }
.tn-related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }

/* Post navigation */
.tn-post-nav{ display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--tn-line); border-bottom:1px solid var(--tn-line); padding:20px 0; margin:30px 0; }
.tn-post-nav a{ max-width:48%; }
.tn-post-nav .lbl{ font-family:var(--tn-sans); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--tn-red); display:block; margin-bottom:5px; }
.tn-post-nav .ttl{ font-family:var(--tn-serif); font-weight:700; font-size:16px; line-height:1.25; color:var(--tn-ink); }
.tn-post-nav .next{ text-align:right; margin-left:auto; }

/* =========================================================
   PAGINATION
   ========================================================= */
.tn-pagination{ margin:36px 0; display:flex; justify-content:center; }
.tn-pagination .nav-links{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.tn-pagination .page-numbers{
  font-family:var(--tn-sans); font-weight:600; font-size:14px; color:var(--tn-ink);
  min-width:42px; height:42px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--tn-line);
}
.tn-pagination .page-numbers:hover{ border-color:var(--tn-ink); text-decoration:none; }
.tn-pagination .page-numbers.current{ background:var(--tn-red); border-color:var(--tn-red); color:#fff; }
.tn-pagination .dots{ border-color:transparent; }

/* =========================================================
   COMMENTS
   ========================================================= */
.tn-comments{ max-width:760px; margin:40px auto; }
.tn-comments .comment-list{ list-style:none; margin:0; padding:0; }
.tn-comments .comment-list ul{ list-style:none; padding-left:28px; }
.tn-comments li.comment{ padding:18px 0; border-bottom:1px solid var(--tn-line); }
.tn-comments .comment-author{ font-family:var(--tn-sans); font-weight:700; font-size:14px; color:var(--tn-ink); }
.tn-comments .comment-metadata{ font-family:var(--tn-sans); font-size:12px; color:var(--tn-meta); }
.tn-comments .comment-body{ font-family:var(--tn-serif); }
.tn-comment-form input[type="text"],
.tn-comment-form input[type="email"],
.tn-comment-form input[type="url"],
.tn-comment-form textarea{
  width:100%; font-family:var(--tn-sans); font-size:15px; padding:11px 12px; border:1px solid var(--tn-line); margin-bottom:12px;
}
.tn-comment-form input[type="submit"], .tn-btn{
  background:var(--tn-red); color:#fff; border:0; padding:12px 26px; font-family:var(--tn-sans);
  font-weight:700; font-size:14px; letter-spacing:.04em; text-transform:uppercase;
}
.tn-comment-form input[type="submit"]:hover, .tn-btn:hover{ background:var(--tn-red-dark); }

/* =========================================================
   FOOTER
   ========================================================= */
.tn-footer{ background:var(--tn-footer); color:var(--tn-footer-txt); margin-top:60px; padding:52px 0 40px; }
.tn-footer a{ color:var(--tn-footer-txt); }
.tn-footer a:hover{ color:#fff; }
.tn-footer-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
.tn-footer .col h4{ font-family:var(--tn-sans); font-size:12px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--tn-red); margin:0 0 14px; }
.tn-footer .col ul{ list-style:none; margin:0; padding:0; }
.tn-footer .col li{ padding:6px 0; font-family:var(--tn-sans); font-size:14px; }
.tn-footer-brand{ text-align:center; margin-top:40px; padding-top:28px; border-top:1px solid rgba(255,255,255,.12); }
.tn-footer-brand .mark{ font-family:var(--tn-serif); font-weight:900; font-size:26px; color:#fff; letter-spacing:.02em; text-transform:uppercase; }
.tn-footer-social{ display:flex; justify-content:center; gap:22px; margin:18px 0; }
.tn-footer-social a svg{ width:20px; height:20px; fill:currentColor; }
.tn-footer-legal{ font-family:var(--tn-sans); font-size:12.5px; color:var(--tn-meta-soft); text-align:center; }
.tn-footer-legal a{ color:var(--tn-footer-txt); }

/* =========================================================
   MOBILE MENU (offcanvas)
   ========================================================= */
.tn-mobile-panel{
  position:fixed; inset:0; background:#fff; z-index:200; transform:translateX(100%);
  transition:transform .28s ease; overflow-y:auto; display:flex; flex-direction:column;
}
.tn-mobile-panel.open{ transform:translateX(0); }
body.tn-menu-open{ overflow:hidden; }
.tn-mobile-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--tn-line); }
.tn-mobile-head .tn-wordmark{ font-family:var(--tn-serif); font-weight:900; font-size:26px; color:var(--tn-red); text-transform:uppercase; }
.tn-mobile-head img{ max-height:34px; width:auto; }
.tn-mobile-close{ background:none; border:0; padding:6px; color:var(--tn-ink); }
.tn-mobile-close svg{ width:26px; height:26px; stroke:currentColor; stroke-width:2; fill:none; }
.tn-mobile-live{ display:flex; align-items:center; gap:9px; padding:12px 20px; border-bottom:1px solid var(--tn-line); }
.tn-mobile-menu{ list-style:none; margin:0; padding:0; }
.tn-mobile-menu li{ border-bottom:1px solid var(--tn-line); }
.tn-mobile-menu > li > a{
  display:block; padding:16px 20px; font-family:var(--tn-sans); font-weight:700; font-size:15px;
  letter-spacing:.03em; text-transform:uppercase; color:var(--tn-red);
}
.tn-mobile-menu .sub-menu{ list-style:none; margin:0; padding:0 0 8px; background:var(--tn-bg-soft); display:none; }
.tn-mobile-menu .sub-menu.open{ display:block; }
.tn-mobile-menu .sub-menu li{ border:0; }
.tn-mobile-menu .sub-menu a{ display:block; padding:10px 32px; font-family:var(--tn-sans); font-weight:500; font-size:14px; text-transform:none; color:var(--tn-ink); }
.tn-mobile-menu .has-children > a{ display:flex; justify-content:space-between; align-items:center; }
.tn-mobile-menu .caret{ transition:transform .2s; }
.tn-mobile-menu .caret.open{ transform:rotate(180deg); }
.tn-mobile-foot{ margin-top:auto; padding:22px 20px; }
.tn-mobile-foot .tn-footer-social{ justify-content:flex-start; color:var(--tn-meta); }
.tn-mobile-foot .tn-footer-social a{ color:var(--tn-meta); }
.tn-mobile-foot .tn-footer-social a:hover{ color:var(--tn-red); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1100px){
  .tn-home{ grid-template-columns:minmax(0,1fr) 320px; grid-template-rows:auto auto; }
  .tn-topnews-head{ grid-column:1 / -1; grid-row:1; }
  .tn-col-main{ grid-column:1; grid-row:2; }
  .tn-col-right{ grid-column:2; grid-row:2; }
  .tn-col-left{
    grid-column:1 / -1; grid-row:3;
    position:static; align-self:auto;
    border-right:0; padding-right:0;
    margin-top:32px; border-top:2px solid var(--tn-ink); padding-top:18px;
  }
  .tn-col-left .tn-eyebrow{ border-bottom:0; padding-bottom:0; }
  .tn-col-left .tn-rail-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 26px; }
  .tn-col-left .tn-rail-list li{ break-inside:avoid; }
}

@media (max-width:900px){
  .tn-related-grid{ grid-template-columns:1fr 1fr; }
  .tn-footer-cols{ grid-template-columns:1fr 1fr; }
}

@media (max-width:820px){
  body{ font-size:16px; }
  .tn-utility .tn-social{ display:none; }
  .tn-masthead .tn-container{ grid-template-columns:auto 1fr auto; padding-top:14px; padding-bottom:14px; }
  .tn-brand{ grid-column:2; }
  .tn-brand .tn-wordmark{ font-size:30px; }
  .tn-brand img{ max-height:40px; }
  .menu-toggle{ display:inline-flex; grid-column:1; justify-self:start; }
  .tn-masthead-right{ grid-column:3; gap:10px; }
  .tn-navbar{ display:none; }             /* replaced by mobile menu */

  .tn-home{ grid-template-columns:1fr; grid-template-rows:none; gap:0; margin-top:18px; }
  .tn-topnews-head, .tn-col-left, .tn-col-right, .tn-col-main{ grid-column:auto; grid-row:auto; }
  .tn-topnews-head{ order:0; }
  .tn-col-main{ order:1; padding-top:0; }
  .tn-col-right{ order:2; margin-top:34px; padding-left:0; border-left:0; padding-top:0; }
  .tn-col-left{ order:3; margin-top:34px; position:static; align-self:auto; border-right:0; padding-right:0; border-top:2px solid var(--tn-ink); padding-top:18px; }
  .tn-col-left .tn-eyebrow{ border-bottom:0; padding-bottom:0; }
  .tn-col-left .tn-rail-list{ display:block; }

  .tn-lead-title{ font-size:32px; }
  .tn-lead-deck{ font-size:18px; }

  .tn-with-sidebar{ grid-template-columns:1fr; gap:44px; }
  .tn-grid{ grid-template-columns:1fr; gap:26px; }
  .tn-hcard{ grid-template-columns:1fr; gap:12px; }
  .tn-hcard .thumb{ order:-1; }

  .tn-related-grid{ grid-template-columns:1fr; }
  .tn-footer-cols{ grid-template-columns:1fr; gap:26px; }

  .tn-article-title{ font-size:30px; }
  .tn-article-deck{ font-size:18px; }
  .tn-article-body{ font-size:18px; }
  .tn-page-head h1{ font-size:27px; }
}

@media (max-width:480px){
  .tn-lead-title{ font-size:27px; }
  .tn-article-title{ font-size:26px; }
  .tn-share{ width:100%; margin-left:0; margin-top:8px; }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; }
  .tn-card:hover .thumb img{ transform:none; }
}

/* WordPress core alignment / caption support */
.alignleft{ float:left; margin:6px 24px 16px 0; }
.alignright{ float:right; margin:6px 0 16px 24px; }
.aligncenter{ margin:16px auto; display:block; }
.wp-caption{ max-width:100%; }
.wp-caption-text, .wp-block-image figcaption{ font-family:var(--tn-sans); font-size:12.5px; color:var(--tn-meta); margin-top:6px; }
.sticky, .bypostauthor{}
.wp-block-quote{ border-left:4px solid var(--tn-red); padding-left:22px; }
