/*
Theme Name:   The Village News
Theme URI:    https://www.thevillagenews.co.za
Description:  Child theme for The Village News. Every customisation lives here so
              that updating the Newspaper theme can never overwrite it.
Author:       The Village News
Template:     Newspaper
Version:      1.4.0
Text Domain:  tvn
*/

/* ------------------------------------------------------------------
   The Village News — brand tokens
   Red is editorial. Kelp is commercial. Gold appears once per page,
   on the single most important action.
   ------------------------------------------------------------------ */
:root{
  --tvn-ink:      #232B3E;
  --tvn-paper:    #FFFFFF;
  --tvn-bg:       #f5f1ea;
  --tvn-hair:     #f0eae0;
  --tvn-red:      #a6382c;
  --tvn-kelp:     #1F5A5B;
  --tvn-muted:    #6e7684;
  --tvn-gold:     #b98a2e;

  --tvn-display:  'Playfair Display', Georgia, serif;
  --tvn-serif:    'Source Serif 4', Georgia, serif;
  --tvn-sans:     'Source Sans 3', system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;
  --tvn-mono:     'IBM Plex Mono', ui-monospace, monospace;
}

/* Section accents. A reader should know where they are before reading a word. */
body.category-news          { --tvn-accent: #a6382c; }
body.category-environment   { --tvn-accent: #1F5A5B; }
body.category-whats-on      { --tvn-accent: #B07B1E; }
body.category-wine-and-dine { --tvn-accent: #7A2E3B; }
body.category-sport         { --tvn-accent: #1f5a5b; }
body.category-community     { --tvn-accent: #1f5a5b; }

/* Readable on a phone. 16px is the floor, not a preference. */
@media (max-width: 620px){
  body, p, li { font-size: 16px; line-height: 1.6; }
  a, button   { min-height: 44px; }
}

/* Anything you add below is safe from theme updates. */

/* ------------------------------------------------------------------
   What's on — The Events Calendar, in the paper's own clothes
   ------------------------------------------------------------------ */
.tvn-events{ padding-top: 28px; padding-bottom: 40px; }

/* the plugin's own heading duplicates the page title */
.tvn-events .tribe-events-header__title,
.tvn-events .tribe-events-header__events-bar-wrapper + .tribe-events-header__title{
  display: none;
}

/* search bar */
.tvn-events .tribe-events-c-events-bar{
  background: var(--tvn-paper);
  border: 1px solid var(--tvn-hair);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 22px;
}
.tvn-events .tribe-events-c-search__button,
.tvn-events .tribe-common-c-btn{
  background: var(--tvn-ink) !important;
  border-radius: 5px !important;
  font-family: var(--tvn-sans) !important;
  font-weight: 700 !important;
}
.tvn-events .tribe-common-c-btn:hover{ background: #2C3850 !important; }

/* the day marker down the left */
.tvn-events .tribe-events-calendar-list__event-date-tag-datetime{
  background: var(--tvn-ink);
  border-radius: 7px;
  padding: 10px 6px;
  color: #fff;
  min-width: 62px;
}
.tvn-events .tribe-events-calendar-list__event-date-tag-weekday{
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.tvn-events .tribe-events-calendar-list__event-date-tag-daynum{
  font-family: var(--tvn-display);
  font-size: 22px;
  color: #fff;
}

/* each listing */
.tvn-events .tribe-events-calendar-list__event-row{
  background: var(--tvn-paper);
  border-radius: 9px;
  box-shadow: 0 1px 3px rgba(20,25,35,.07);
  padding: 18px 20px;
  margin-bottom: 14px;
}
.tvn-events .tribe-events-calendar-list__event-title,
.tvn-events .tribe-events-calendar-list__event-title a{
  font-family: var(--tvn-display) !important;
  font-size: 21px !important;
  color: var(--tvn-ink) !important;
  line-height: 1.25 !important;
}
.tvn-events .tribe-events-calendar-list__event-title a:hover{ color: var(--tvn-red) !important; }
.tvn-events .tribe-events-calendar-list__event-datetime,
.tvn-events .tribe-events-calendar-list__event-venue{
  font-family: var(--tvn-mono) !important;
  font-size: 10px !important;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: var(--tvn-muted) !important;
}
.tvn-events .tribe-events-calendar-list__event-description p{
  font-family: var(--tvn-serif);
  font-size: 15.5px;
  line-height: 1.6;
  color: #3A3F47;
}

/* the month separator */
.tvn-events .tribe-events-calendar-list__month-separator-text{
  font-family: var(--tvn-display);
  font-size: 19px;
  color: var(--tvn-ink);
}

/* a free event is worth saying so */
.tvn-events .tribe-events-c-small-cta__price{
  background: #EAF3EC;
  color: #1f5a5b;
  border-radius: 3px;
  padding: 4px 9px;
  font-family: var(--tvn-mono);
  font-size: 9.5px;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}

/* single event page */
.tvn-events .tribe-events-single-event-title{
  font-family: var(--tvn-display);
  font-size: clamp(26px, 4vw, 38px);
  color: var(--tvn-ink);
}
.tvn-events .tribe-events-schedule{
  background: var(--tvn-paper);
  border-left: 3px solid var(--tvn-kelp);
  border-radius: 0 6px 6px 0;
  padding: 14px 16px;
}

@media (max-width: 620px){
  .tvn-events .tribe-events-calendar-list__event-row{ padding: 15px 16px; }
  .tvn-events .tribe-events-calendar-list__event-title,
  .tvn-events .tribe-events-calendar-list__event-title a{ font-size: 19px !important; }
}


/* ------------------------------------------------------------------
   The masthead
   Newspaper 12 builds headers in the Cloud Library, so the classic
   "header style" selector that switches between a text logo and an
   image one is gone. Until the header is rebuilt there, we swap the
   text for the real masthead here.
   ------------------------------------------------------------------ */
.td-logo-text-wrap .td-logo-wrap{
  display: block;
  width: 272px;
  height: 90px;
  max-width: 100%;
  background-image: url('/wp-content/uploads/2026/09/tvn-logo-272x90-1.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  text-indent: -9999px;
  overflow: hidden;
  margin: 0 auto;
}
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi){
  .td-logo-text-wrap .td-logo-wrap{
    background-image: url('/wp-content/uploads/2026/09/tvn-logo-retina-544x180-1.png');
  }
}
.td-logo-text-wrap .td-logo-text{ visibility: hidden; }

/* the strapline sits under it, in the paper's own small caps */
.td-logo-text-wrap .td-tagline-text{
  display: block;
  text-align: center;
  font-family: var(--tvn-mono);
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--tvn-muted);
  margin-top: 6px;
}

@media (max-width: 620px){
  .td-logo-text-wrap .td-logo-wrap{ width: 200px; height: 66px; }
}


/* ==================================================================
   THE PAPER'S APPEARANCE
   Typography, the navigation, the footer and the section accents.
   Everything here is the demo's own system: red is editorial, kelp is
   commercial, gold appears once per page on the one thing that matters.
   ================================================================== */

/* ---------- headings ---------- */
h1, h2, h3, h4,
.entry-title, .td-module-title,
.tdb-title-text, .td-page-title,
.td_module_wrap .entry-title a{
  font-family: var(--tvn-display) !important;
  color: var(--tvn-ink);
  letter-spacing: -0.01em;
}
.td-post-title .entry-title,
.td-page-title{ line-height: 1.14; }

/* section flags above a story, in the mono face */
.td-post-category, .td-module-meta-info .td-post-category{
  font-family: var(--tvn-mono) !important;
  font-size: 9px !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  background: var(--tvn-red) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 3px;
  padding: 4px 8px !important;
}

/* bylines and dates */
.td-post-author-name, .td-post-date, .td-module-meta-info .td-post-date,
.entry-date{
  font-family: var(--tvn-mono) !important;
  font-size: 10px !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--tvn-muted) !important;
}

/* body copy that is actually readable */
.td-post-content p, .tdb-block-inner p, .entry-content p{
  font-family: var(--tvn-serif);
  font-size: 17.5px;
  line-height: 1.68;
  color: #2E3238;
}

/* ---------- the navigation ---------- */
.td-header-menu-wrap, .sf-menu{ background: var(--tvn-paper); }
.sf-menu > li > a{
  font-family: var(--tvn-sans) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tvn-ink) !important;
  padding: 16px 14px !important;
}
.sf-menu > li > a:hover,
.sf-menu > .current-menu-item > a,
.sf-menu > .sfHover > a{
  color: var(--tvn-red) !important;
}
.td-header-menu-wrap{
  border-top: 1px solid var(--tvn-hair);
  border-bottom: 1px solid var(--tvn-hair);
}

/* ---------- the footer ---------- */
.td-footer-wrapper, .td-sub-footer-container{
  background: var(--tvn-ink) !important;
  color: rgba(255,255,255,.72);
}
.td-sub-footer-container{ border-top: 1px solid rgba(255,255,255,.12); }
.td-footer-wrapper a, .td-sub-footer-container a{ color: #fff !important; }
.td-sub-footer-copy{
  font-family: var(--tvn-mono);
  font-size: 10px;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: rgba(255,255,255,.55) !important;
}

/* ---------- breadcrumbs ---------- */
.entry-crumbs, .td-crumb-container{
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.entry-crumbs a{ color: var(--tvn-muted) !important; }
.entry-crumbs .td-bread-sep + span{ color: var(--tvn-red); }

/* ---------- buttons ---------- */
.td_btn, .wpb_button, input[type=submit], button.wp-block-search__button{
  background: var(--tvn-ink) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 5px !important;
  font-family: var(--tvn-sans) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
}
.td_btn:hover, input[type=submit]:hover{ background: #2C3850 !important; }

/* ---------- a story card ---------- */
.td_module_wrap{ padding-bottom: 20px; }
.td-module-thumb img{ border-radius: 6px; }

/* ---------- section accents ---------- */
body.category-environment .td-post-category,
body.category-environment .sf-menu > .current-menu-item > a{ background: #1F5A5B !important; }
body.category-sport .td-post-category{ background: #1f5a5b !important; }
body.category-community .td-post-category{ background: #1f5a5b !important; }
body.category-wine-and-dine .td-post-category{ background: #7A2E3B !important; }
body.category-whats-on .td-post-category{ background: #B07B1E !important; }

/* ---------- the events page, tightened ---------- */
.tribe-events-calendar-list__event-title a{ font-family: var(--tvn-display) !important; }
.tribe-common-c-btn, .tribe-events-c-search__button{
  background: var(--tvn-ink) !important;
  border-radius: 5px !important;
}
.tribe-events-calendar-list__event-date-tag-daynum{
  font-family: var(--tvn-display) !important;
  color: var(--tvn-ink) !important;
}
.tribe-events-calendar-list__event-date-tag-weekday{
  font-family: var(--tvn-mono) !important;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: var(--tvn-muted) !important;
}


/* ---------- the footer line ---------- */
.td-sub-footer-copy{ font-size: 0 !important; }
.td-sub-footer-copy::after{
  content: '\00a9 2026 The Village News  \00b7  Free every Thursday  \00b7  214 points across 18 towns';
  font-family: var(--tvn-mono);
  font-size: 10px;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.td-sub-footer-menu{ display: none; }

/* ---------- the last blue button ---------- */
.tribe-events-c-subscribe-dropdown__button,
.tribe-events-c-subscribe-dropdown .tribe-common-c-btn-border{
  border-color: var(--tvn-ink) !important;
  color: var(--tvn-ink) !important;
  border-radius: 5px !important;
  font-family: var(--tvn-sans) !important;
}
.tribe-events-c-subscribe-dropdown__button-text{ color: var(--tvn-ink) !important; }

/* ---------- tighten the gap under the masthead ---------- */
.td-main-content-wrap{ padding-top: 22px; }


/* ---------- the section flag on a story ---------- */
.td-post-header .td-category a,
.td-category li a,
.td-post-category,
a.td-post-category{
  background: var(--tvn-red) !important;
  color: #fff !important;
  font-family: var(--tvn-mono) !important;
  font-size: 9px !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  border-radius: 3px !important;
  padding: 5px 9px !important;
  border: 0 !important;
}
body.category-environment .td-category a, body.category-environment a.td-post-category{ background: #1F5A5B !important; }
body.category-sport .td-category a, body.category-sport a.td-post-category{ background: #1f5a5b !important; }
body.category-community .td-category a, body.category-community a.td-post-category{ background: #1f5a5b !important; }
body.category-wine-and-dine .td-category a, body.category-wine-and-dine a.td-post-category{ background: #7A2E3B !important; }

/* ---------- the sharing row, muted ---------- */
.td-post-sharing .td-social-network,
.td-post-sharing .td-social-but-icon,
.td-post-sharing .td-social-but-text{
  background-color: var(--tvn-ink) !important;
  border-radius: 4px !important;
}
.td-post-sharing .td-social-network:hover,
.td-post-sharing .td-social-but-icon:hover{ background-color: var(--tvn-red) !important; }
.td-post-sharing{ border-top: 0 !important; border-bottom: 1px solid var(--tvn-hair) !important; padding-bottom: 16px; }

/* ---------- the byline row ---------- */
.td-post-author-name a{ color: var(--tvn-ink) !important; font-weight: 600; }
.td-post-views, .td-post-comments{ color: var(--tvn-muted) !important; }

/* ---------- the headline, a touch tighter ---------- */
.td-post-title .entry-title{ font-size: clamp(30px, 4vw, 44px) !important; margin-bottom: 10px; }


/* ==================================================================
   THE ALMANAC STRIP
   ================================================================== */
.tvn-almanac{ background: var(--tvn-paper); border-bottom: 1px solid var(--tvn-hair); }
.tvn-almanac-in{
  max-width: 1068px; margin: 0 auto; padding: 9px 20px;
  display: flex; align-items: center; gap: 26px; flex-wrap: wrap;
}
.tvn-al-item{ display: block; line-height: 1.25; }
.tvn-al-k{
  display: block; font-family: var(--tvn-mono); font-size: 8.5px;
  letter-spacing: 1.3px; text-transform: uppercase; color: var(--tvn-muted);
}
.tvn-al-v{ display: block; font-family: var(--tvn-display); font-size: 16px; color: var(--tvn-ink); }
.tvn-al-item:last-of-type .tvn-al-v{ color: var(--tvn-kelp); font-size: 14px; }
.tvn-al-right{ margin-left: auto; display: flex; align-items: center; gap: 14px; }
.tvn-al-ad, .tvn-al-in{
  font-family: var(--tvn-sans); font-size: 12px; font-weight: 700;
  letter-spacing: .04em; text-decoration: none;
}
.tvn-al-ad{ background: var(--tvn-red); color: #fff !important; padding: 8px 15px; border-radius: 4px; }
.tvn-al-ad:hover{ background: #A82C22; }
.tvn-al-in{ color: var(--tvn-ink) !important; }
.tvn-al-in:hover{ color: var(--tvn-red) !important; }
@media (max-width: 900px){
  .tvn-almanac-in{ gap: 18px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .tvn-almanac-in::-webkit-scrollbar{ display: none; }
  .tvn-almanac{ overflow: hidden; }
  .tvn-al-right{ margin-left: 14px; }
}

/* ==================================================================
   THE FOOTER
   ================================================================== */
.td-footer-wrapper, .td-sub-footer-container{ display: none !important; }
.tvn-footer{ background: var(--tvn-ink); color: rgba(255,255,255,.74); margin-top: 40px; }
.tvn-footer-in{
  max-width: 1068px; margin: 0 auto; padding: 42px 20px 34px;
  display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 40px;
}
@media (max-width: 780px){ .tvn-footer-in{ grid-template-columns: 1fr; gap: 28px; } }
.tvn-f-mast{ font-family: var(--tvn-display); font-size: 26px; color: #fff; margin-bottom: 10px; }
.tvn-f-about p{ font-family: var(--tvn-serif); font-size: 14.5px; line-height: 1.65; margin: 0; color: rgba(255,255,255,.7); }
.tvn-f-col h4{
  font-family: var(--tvn-mono) !important; font-size: 9px !important; letter-spacing: 1.4px;
  text-transform: uppercase; color: #e3c98f !important; margin: 0 0 14px;
}
.tvn-f-col ul{ list-style: none; margin: 0; padding: 0; }
.tvn-f-col li{ margin-bottom: 9px; font-size: 14.5px; line-height: 1.45; }
.tvn-f-col a{ color: rgba(255,255,255,.88) !important; text-decoration: none; }
.tvn-f-col a:hover{ color: #fff !important; text-decoration: underline; }
.tvn-f-quiet{ color: rgba(255,255,255,.5); font-size: 13px; }


/* ---------- letters and sponsored ---------- */
body.category-letters .td-category a, body.category-letters a.td-post-category{
  background: #6e7684 !important;
}
/* sponsored is gold with dark type: clearly commercial, clearly not a section */
body.category-sponsored .td-category a, body.category-sponsored a.td-post-category{
  background: var(--tvn-gold) !important;
  color: #1C2027 !important;
}
/* and it says so above the headline, not just in a small flag */
body.category-sponsored .td-post-title::before{
  content: 'Sponsored content';
  display: block;
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #8A6410;
  background: #FBF3E0;
  border-left: 3px solid var(--tvn-gold);
  padding: 8px 12px;
  margin-bottom: 14px;
}
body.category-letters .td-post-title::before{
  content: 'A letter to the editor';
  display: block;
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--tvn-muted);
  margin-bottom: 10px;
}


/* ==================================================================
   READABILITY PASS
   Most of this paper's readers are not twenty-five. Small type set in
   a mono face is the first thing that defeats them.
   ================================================================== */

/* the menu: no coloured block behind the section you are in */
body.category-environment .sf-menu > .current-menu-item > a,
.sf-menu > .current-menu-item > a,
.sf-menu > .sfHover > a{
  background: transparent !important;
  color: var(--tvn-red) !important;
}

/* breadcrumbs: bigger, and in the reading face rather than the mono one */
.entry-crumbs, .td-crumb-container, .entry-crumbs span, .entry-crumbs a{
  font-family: var(--tvn-sans) !important;
  font-size: 13px !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
}
.entry-crumbs a{ color: var(--tvn-muted) !important; }

/* the almanac strip: say plainly that it is today, and give the masthead room */
.tvn-almanac{ padding-bottom: 2px; }
.tvn-almanac-in{ padding: 11px 20px 12px; }
.tvn-almanac-in::before{
  content: 'Today';
  font-family: var(--tvn-display);
  font-size: 15px;
  color: var(--tvn-ink);
  padding-right: 20px;
  margin-right: 4px;
  border-right: 1px solid var(--tvn-hair);
  align-self: center;
}
.td-header-wrap, .td-header-sp-logo{ padding-top: 18px !important; }

/* the search icon sat off on its own; bring it into line with the menu */
.td-header-menu-wrap .td-search-wrapper,
.header-search-wrap{ display: flex; align-items: center; }
.td-header-menu-wrap .td-icon-search{
  font-size: 17px !important;
  padding: 16px 4px !important;
  color: var(--tvn-ink) !important;
}
.td-header-menu-wrap .td-icon-search:hover{ color: var(--tvn-red) !important; }

/* the sharing row: the icons were sitting at the top of their buttons */
.td-post-sharing .td-social-network,
.td-post-sharing .td-social-but-icon{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px; height: 40px;
  line-height: 1 !important;
  vertical-align: middle;
}
.td-post-sharing .td-social-but-icon i,
.td-post-sharing i[class^='td-icon-']{
  line-height: 1 !important;
  font-size: 15px !important;
  position: static !important;
  top: auto !important;
}
.td-post-sharing-top{ margin-bottom: 22px; }

/* comments are switched off, so stop showing a count of nought */
.td-module-comments, .td-post-comments,
.td-module-meta-info .td-module-comments{ display: none !important; }

/* the standfirst, as it reads in the paper */
p.tvn-standfirst{
  font-family: var(--tvn-serif) !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
  color: #4A5058 !important;
  margin-bottom: 22px !important;
}
p.tvn-signoff{
  font-family: var(--tvn-mono) !important;
  font-size: 12px !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--tvn-muted) !important;
  margin-top: 22px !important;
}


/* ==================================================================
   THE NAMEPLATE
   A newspaper's nameplate runs the full width of the page. Boxing it
   made it read as a floating white card on a grey field. The grey now
   starts below the navigation, where the content does.
   ================================================================== */
.td-header-wrap{
  background: var(--tvn-paper) !important;
  border-bottom: 1px solid var(--tvn-hair);
}
.td-header-wrap .td-container,
.td-header-menu-wrap,
.td-header-menu-wrap-full,
.td-header-sp-logo,
.td-header-rec-wrap{
  background: transparent !important;
}
.td-header-menu-wrap{ border-top: 1px solid var(--tvn-hair); border-bottom: 0 !important; }

/* a little air under the nameplate before the stories start */
.td-main-content-wrap{ padding-top: 26px !important; }

/* ==================================================================
   THE FOOTER MASTHEAD
   The real lockup rather than the words, reversed out of the navy.
   ================================================================== */
.tvn-f-mast{
  font-size: 0 !important;
  line-height: 0;
  display: block;
  width: 230px;
  max-width: 100%;
  height: 76px;
  background-image: url('/wp-content/uploads/2026/09/tvn-logo-retina-544x180-1.png');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
  filter: brightness(0) invert(1);
  margin-bottom: 14px;
}


/* the section accent on a single article, driven by the class the child
   theme adds in functions.php */
body.tvn-sec-environment .td-category a{ background: #1F5A5B !important; }
body.tvn-sec-sport .td-category a{ background: #1f5a5b !important; }
body.tvn-sec-community .td-category a{ background: #1f5a5b !important; }
body.tvn-sec-wine-and-dine .td-category a{ background: #7A2E3B !important; }
body.tvn-sec-whats-on .td-category a{ background: #B07B1E !important; }
body.tvn-sec-letters .td-category a{ background: #6e7684 !important; }
body.tvn-sec-sponsored .td-category a{ background: var(--tvn-gold) !important; color: #1C2027 !important; }
body.tvn-sec-sponsored .td-post-title::before{
  content: 'Sponsored content';
  display: block;
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #8A6410;
  background: #FBF3E0;
  border-left: 3px solid var(--tvn-gold);
  padding: 8px 12px;
  margin-bottom: 14px;
}
body.tvn-sec-letters .td-post-title::before{
  content: 'A letter to the editor';
  display: block;
  font-family: var(--tvn-mono);
  font-size: 9px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--tvn-muted);
  margin-bottom: 10px;
}


/* ==================================================================
   THE SEARCH
   A magnifying glass on its own asks the reader to know what it means.
   The demo says the word, with the glass beside it, in the paper's own
   face \u2014 which is what an older reader actually looks for.
   ================================================================== */
.td-header-menu-wrap .td-search-wrapper{ position: relative; }
.td-header-menu-wrap .td-icon-search{
  display: inline-flex !important;
  align-items: center;
  gap: 7px;
  font-size: 0 !important;
  padding: 15px 2px !important;
  color: var(--tvn-ink) !important;
}
.td-header-menu-wrap .td-icon-search::before{
  content: 'Search';
  font-family: var(--tvn-display) !important;
  font-size: 16px !important;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--tvn-ink);
  order: 1;
}
.td-header-menu-wrap .td-icon-search::after{
  content: '\26B2 ';
  font-size: 15px;
  line-height: 1;
  color: var(--tvn-ink);
  order: 2;
  transform: translateY(1px);
}
.td-header-menu-wrap .td-icon-search:hover::before,
.td-header-menu-wrap .td-icon-search:hover::after{ color: var(--tvn-red); }

@media (max-width: 620px){
  .td-header-menu-wrap .td-icon-search::before{ font-size: 15px !important; }
}

/* ==================================================================
   THE DAY RAIL on What’s on
   ================================================================== */
.tvn-rail{ background: var(--tvn-paper); border-radius: 9px; padding: 18px 20px 16px;
  margin: 0 0 24px; box-shadow: 0 1px 3px rgba(20,25,35,.07); }
.tvn-rail-k{ display:block; font-family: var(--tvn-mono); font-size: 9px;
  letter-spacing: 1.4px; text-transform: uppercase; color: var(--tvn-muted); margin-bottom: 14px; }
.tvn-rail-days{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.tvn-rail-days::-webkit-scrollbar{ display:none; }
.tvn-day{ flex:0 0 auto; width:62px; text-align:center; text-decoration:none !important;
  border:1px solid var(--tvn-hair); border-radius:7px; padding:9px 4px 8px; background:#fff;
  transition: border-color .15s, background .15s; }
.tvn-day:hover{ border-color: var(--tvn-ink); }
.tvn-day .dw{ display:block; font-family: var(--tvn-mono); font-size:8.5px; letter-spacing:1.1px;
  text-transform:uppercase; color: var(--tvn-muted); }
.tvn-day .dn{ display:block; font-family: var(--tvn-display); font-size:21px; line-height:1.1;
  color: var(--tvn-ink); }
.tvn-day .dc{ display:block; font-family: var(--tvn-mono); font-size:9px; color: var(--tvn-kelp);
  margin-top:3px; }
.tvn-day.is-today{ background: var(--tvn-ink); border-color: var(--tvn-ink); }
.tvn-day.is-today .dw{ color: rgba(255,255,255,.72); }
.tvn-day.is-today .dn{ color:#fff; }
.tvn-day.is-today .dc{ color:#e3c98f; }
.tvn-day.is-empty .dn{ color:#B9BDC3; }
.tvn-day.is-empty .dc{ color:#C8CCD1; }
.tvn-day.is-today.is-empty .dn{ color: rgba(255,255,255,.55); }
@media (max-width:620px){ .tvn-day{ width:56px; } .tvn-day .dn{ font-size:19px; } }

/* the rail is printed by the plugin outside the content column, so it needs
   its own container to line up with everything else */
.tvn-rail{ max-width: 1068px; margin-left: auto; margin-right: auto; }
.tvn-rail-in{ padding: 0; }
.tvn-events{ padding-top: 0 !important; }
.tribe-events-header, .tribe-events-view{ padding-top: 0 !important; margin-top: 0 !important; }
.tribe-common--breakpoint-medium.tribe-events .tribe-events-header{ margin-top: 0 !important; }
.tvn-rail + *{ margin-top: 0 !important; }

/* ==================================================================
   WHAT’S ON — the page, not just the listings
   The plugin prints its view straight onto the page with no container,
   which is why it floated on white. It now sits in the same card the
   rest of the site uses, with the rail above it.
   ================================================================== */
.tvn-rail{ margin-bottom: 18px !important; }
.tribe-common.tribe-events{
  max-width: 1068px;
  margin: 0 auto 44px !important;
  background: var(--tvn-paper);
  border-radius: 9px;
  box-shadow: 0 1px 3px rgba(20,25,35,.07);
  padding: 24px 26px 30px !important;
}
.tribe-events .tribe-events-header{ padding-top: 0 !important; margin-top: 0 !important; }
.tribe-events .tribe-events-header__events-bar{ margin-bottom: 18px !important; }
.tribe-events-c-events-bar{ border: 1px solid var(--tvn-hair) !important; border-radius: 7px; }
.tribe-events-c-top-bar{ margin-bottom: 8px !important; }
.tribe-events-calendar-list__month-separator{ margin: 10px 0 14px !important; }
.tribe-events-calendar-list__event-row{ padding: 16px 0 !important; border-top: 1px solid var(--tvn-hair); }
.tribe-events-calendar-list__event-row:first-of-type{ border-top: 0; }
.tribe-events-header__title, .tribe-events-c-top-bar__datepicker{ font-family: var(--tvn-display) !important; }
.tribe-events-calendar-list__event-title a{ color: var(--tvn-ink) !important; }
.tribe-events-calendar-list__event-title a:hover{ color: var(--tvn-red) !important; }
.tribe-events-calendar-list__event-date-tag-datetime{ background: transparent !important; }
.tribe-events-calendar-list__event-venue{ font-family: var(--tvn-mono) !important; font-size: 10px !important;
  letter-spacing: 1px; text-transform: uppercase; color: var(--tvn-muted) !important; }
.tribe-events-calendar-list__event-description{ font-family: var(--tvn-serif); }

/* the plugin puts 96px of padding at the top of its container, which was
   meant to clear a page title we are not showing */
.tribe-events .tribe-common-l-container,
.tribe-events-l-container{ padding-top: 0 !important; padding-bottom: 0 !important; }

/* the category filter, under the rail */
.tvn-filters{ max-width: 1068px; margin: 0 auto 18px; background: var(--tvn-paper);
  border-radius: 9px; padding: 16px 20px 18px; box-shadow: 0 1px 3px rgba(20,25,35,.07); }
.tvn-chips{ display: flex; gap: 8px; flex-wrap: wrap; }
.tvn-chip{ display: inline-flex; align-items: center; gap: 7px; text-decoration: none !important;
  border: 1px solid var(--tvn-hair); border-radius: 100px; padding: 7px 14px;
  font-family: var(--tvn-sans); font-size: 13.5px; color: var(--tvn-ink) !important;
  background: #fff; transition: border-color .15s, background .15s; }
.tvn-chip:hover{ border-color: var(--tvn-ink); }
.tvn-chip i{ font-style: normal; font-family: var(--tvn-mono); font-size: 10px;
  color: var(--tvn-muted); }
.tvn-chip.is-on{ background: var(--tvn-ink); border-color: var(--tvn-ink); color: #fff !important; }
.tvn-chip.is-on i{ color: #e3c98f; }

/* the rail head: label on the left, walk-the-year on the right */
.tvn-rail-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; gap:16px; }
.tvn-rail-head .tvn-rail-k{ margin-bottom:0; }
.tvn-rail-nav{ display:flex; gap:14px; }
.tvn-step{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:600; text-decoration:none !important;
  color: var(--tvn-ink) !important; }
.tvn-step:hover{ color: var(--tvn-red) !important; }
.tvn-step.is-off{ color:#C2C6CB !important; }

/* the day you have chosen */
.tvn-day.is-on{ border-color: var(--tvn-red); box-shadow: inset 0 0 0 1px var(--tvn-red); }
.tvn-day.is-on .dn{ color: var(--tvn-red); }
.tvn-day.is-today.is-on{ box-shadow: inset 0 0 0 2px var(--tvn-red); }
.tvn-day.is-today.is-on .dn{ color:#fff; }

/* public holidays */
.tvn-day.is-holiday{ background:#FBF3E0; border-color:#E8D49B; }
.tvn-day.is-holiday .dw{ color:#8A6410; }
.tvn-day.is-holiday .dn{ color:#8A6410; }
.tvn-day.is-today.is-holiday{ background: var(--tvn-ink); border-color: var(--tvn-gold); }
.tvn-day.is-today.is-holiday .dw, .tvn-day.is-today.is-holiday .dn{ color: var(--tvn-gold); }
.tvn-hol-note{ margin:12px 0 0; font-family: var(--tvn-mono); font-size:10px; letter-spacing:1px;
  text-transform:uppercase; color:#8A6410; }

/* the month rule in the listing */
.tribe-events-calendar-list__month-separator-text{ font-family: var(--tvn-display) !important;
  font-size:19px !important; color: var(--tvn-ink) !important; text-transform:none !important;
  letter-spacing:0 !important; }

/* ------------------------------------------------------------------
   The rail, second pass
   A holiday should read as a gentle flag, not a dark block. The marker
   is a gold bar along the top of the day, which survives whether the
   day is today, chosen, or neither.
   ------------------------------------------------------------------ */
.tvn-day{ position: relative; overflow: hidden; }

/* weekends: a whisper of tone so the shape of the week is legible */
.tvn-day.is-weekend{ background: #F6F6F4; }

/* holidays: cream, with a gold bar along the top */
.tvn-day.is-holiday{ background: #FDF7EA; border-color: #EADCB8; }
.tvn-day.is-holiday::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: var(--tvn-gold); }
.tvn-day.is-holiday .dw{ color:#96712A; }
.tvn-day.is-holiday .dn{ color: var(--tvn-ink); }

/* today stays navy, and keeps the gold bar if it is also a holiday */
.tvn-day.is-today.is-holiday{ background: var(--tvn-ink); border-color: var(--tvn-ink); }
.tvn-day.is-today.is-holiday .dw{ color: rgba(255,255,255,.72); }
.tvn-day.is-today.is-holiday .dn{ color:#fff; }
.tvn-day.is-today.is-weekend{ background: var(--tvn-ink); }

.tvn-hol-note{ color:#96712A; }

/* ------------------------------------------------------------------
   The date tag in the listing — the navy block from the demo
   ------------------------------------------------------------------ */
.tribe-events-calendar-list__event-date-tag-datetime{
  background: var(--tvn-ink) !important;
  border-radius: 8px;
  padding: 12px 6px 11px !important;
  min-width: 66px;
  text-align: center;
}
.tribe-events-calendar-list__event-date-tag-weekday{
  font-family: var(--tvn-mono) !important; font-size: 9px !important; letter-spacing: 1.2px;
  text-transform: uppercase; color: rgba(255,255,255,.72) !important; }
.tribe-events-calendar-list__event-date-tag-daynum{
  font-family: var(--tvn-display) !important; font-size: 24px !important;
  color: #fff !important; line-height: 1.1 !important; }
.tribe-events-calendar-list__event-date-tag{ padding-right: 18px !important; }

/* the date block is a tile at the top of the listing, not a full-height bar */
.tribe-events-calendar-list__event-row{ align-items: flex-start !important; }
.tribe-events-calendar-list__event-date-tag{ align-self: flex-start !important; }
.tribe-events-calendar-list__event-date-tag-datetime{ display:block !important; width:66px;
  height:auto !important; padding:10px 6px 9px !important; }

/* the chosen filter matches the chosen day: red outline, not a navy block */
.tvn-chip.is-on{ background:#fff !important; border-color: var(--tvn-red) !important;
  box-shadow: inset 0 0 0 1px var(--tvn-red); color: var(--tvn-red) !important; }
.tvn-chip.is-on i{ color: var(--tvn-red) !important; }

/* ------------------------------------------------------------------
   PICK A DATE
   ------------------------------------------------------------------ */
.tvn-pick{ position: relative; display: inline-block; margin-left: 16px; }
.tvn-pick-open{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:600;
  background:#fff; border:1px solid var(--tvn-hair); border-radius:100px; padding:6px 14px;
  color: var(--tvn-ink); cursor:pointer; }
.tvn-pick-open:hover{ border-color: var(--tvn-ink); }
.tvn-pick-open.is-open{ border-color: var(--tvn-red); color: var(--tvn-red); }
.tvn-cal{ position:absolute; right:0; top:calc(100% + 8px); z-index:60; width:288px;
  background:#fff; border:1px solid var(--tvn-hair); border-radius:10px; padding:14px;
  box-shadow:0 8px 28px rgba(20,25,35,.14); }
.tvn-cal[hidden]{ display:none; }
.tvn-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.tvn-cal-title{ font-family: var(--tvn-display); font-size:16px; color: var(--tvn-ink); }
.tvn-cal-prev, .tvn-cal-next{ background:none; border:0; cursor:pointer; font-size:15px;
  color: var(--tvn-ink); padding:2px 6px; }
.tvn-cal-prev:hover, .tvn-cal-next:hover{ color: var(--tvn-red); }
.tvn-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.tvn-cal-dow{ font-family: var(--tvn-mono); font-size:8.5px; letter-spacing:.5px;
  text-transform:uppercase; color: var(--tvn-muted); text-align:center; padding-bottom:4px; }
.tvn-cal-day{ position:relative; display:flex; align-items:center; justify-content:center;
  height:34px; border-radius:6px; font-family: var(--tvn-sans); font-size:13px;
  color:#B9BDC3; text-decoration:none !important; }
.tvn-cal-day.wknd{ background:#F6F6F4; }
.tvn-cal-day.hol::after{ content:""; position:absolute; top:3px; left:50%; transform:translateX(-50%);
  width:12px; height:2px; background: var(--tvn-gold); border-radius:2px; }
.tvn-cal-day.has{ color: var(--tvn-ink) !important; font-weight:600; background:#fff;
  box-shadow: inset 0 0 0 1px var(--tvn-hair); }
.tvn-cal-day.has.wknd{ background:#F6F6F4; }
.tvn-cal-day.has:hover{ box-shadow: inset 0 0 0 1px var(--tvn-red); color: var(--tvn-red) !important; }
.tvn-cal-day i{ position:absolute; right:3px; bottom:2px; font-style:normal;
  font-family: var(--tvn-mono); font-size:8px; color: var(--tvn-kelp); }
.tvn-cal-note{ margin:10px 0 0; font-family: var(--tvn-mono); font-size:8.5px;
  letter-spacing:1px; text-transform:uppercase; color: var(--tvn-muted); }
@media (max-width:620px){ .tvn-cal{ right:auto; left:0; width:270px; } }

/* ==================================================================
   THE ALMANAC, MADE LEGIBLE
   The labels were 8.5px mono in grey, which is decoration rather than
   information for anyone over fifty. Bigger, darker, more space.
   ================================================================== */
.tvn-almanac-in{ padding: 12px 20px 13px; gap: 22px; }
.tvn-al-k{ font-size: 10px !important; letter-spacing: 1.1px; color: #7A7F86 !important; }
.tvn-al-v{ font-size: 18px !important; color: var(--tvn-ink) !important; margin-top: 1px; }
.tvn-al-item:last-of-type .tvn-al-v{ font-size: 16px !important; }
.tvn-almanac-in::before{ font-size: 17px; padding-right: 22px; }

/* ------------------------------------------------------------------
   ON TODAY
   ------------------------------------------------------------------ */
.tvn-on{ display:flex; align-items:center; gap:12px; margin-left:auto;
  padding-left:22px; border-left:1px solid var(--tvn-hair); min-width:0; }
.tvn-on-k{ font-family: var(--tvn-mono); font-size:9px; letter-spacing:1.3px;
  text-transform:uppercase; color: var(--tvn-kelp); white-space:nowrap; }
.tvn-on-k i{ font-style:normal; color: var(--tvn-muted); }
.tvn-on-items{ position:relative; min-width:0; }
.tvn-on-item{ display:none; font-family: var(--tvn-serif); font-size:15px;
  color: var(--tvn-ink) !important; text-decoration:none !important; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; max-width:340px; }
.tvn-on-item.is-show{ display:block; }
.tvn-on-item b{ font-family: var(--tvn-mono); font-size:10px; letter-spacing:1px;
  color: var(--tvn-muted); font-weight:400; margin-right:7px; }
.tvn-on-item:hover{ color: var(--tvn-red) !important; }
.tvn-al-right{ margin-left:22px; }

/* ------------------------------------------------------------------
   THE EDITION BAND under the masthead
   ------------------------------------------------------------------ */
.tvn-band{ background: var(--tvn-paper); border-top:1px solid var(--tvn-hair); }
.tvn-band-in{ max-width:1068px; margin:0 auto; padding:9px 20px;
  display:flex; align-items:center; gap:26px; flex-wrap:wrap;
  font-family: var(--tvn-sans); font-size:13px; color:#5A6068; }
.tvn-band-in b{ font-family: var(--tvn-display); font-size:16px; font-weight:400;
  color: var(--tvn-ink); margin-right:5px; }
.tvn-band-in a{ color:#5A6068 !important; text-decoration:underline; text-underline-offset:2px; }
.tvn-band-in a:hover{ color: var(--tvn-red) !important; }
.tvn-band-day{ margin-left:auto; font-family: var(--tvn-mono); font-size:9.5px;
  letter-spacing:1.3px; text-transform:uppercase; color: var(--tvn-kelp); }

@media (max-width: 900px){
  .tvn-on{ border-left:0; padding-left:0; margin-left:14px; }
  .tvn-on-item{ max-width:200px; }
  .tvn-band-in{ gap:16px; font-size:12px; }
  .tvn-band-day{ margin-left:0; }
}

/* ==================================================================
   THE MASTHEAD LINE, as the demo has it
   Search left, lockup centre, Distribution points and Sign in right.
   The line is printed before the logo row and pulled up onto it.
   ================================================================== */
.tvn-mast{ background: var(--tvn-paper); position: relative; z-index: 5; }
.tvn-mast-in{ max-width:1068px; margin:0 auto; padding:16px 20px 0;
  display:flex; align-items:center; justify-content:space-between; gap:16px; }
.tvn-mast-l, .tvn-mast-r{ display:flex; align-items:center; gap:20px; }
.tvn-mh{ font-family: var(--tvn-display); font-size:15.5px; color: var(--tvn-ink) !important;
  text-decoration:none !important; white-space:nowrap; }
.tvn-mh:hover{ color: var(--tvn-red) !important; }
.tvn-mh-cta{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:700;
  letter-spacing:.03em; background: var(--tvn-red); color:#fff !important;
  padding:9px 16px; border-radius:5px; text-decoration:none !important; white-space:nowrap; }
.tvn-mh-cta:hover{ background:#A82C22; }

/* pull the lockup up so it sits on the same line, centred */
.td-header-sp-logo, .td-header-wrap .td-logo-text-wrap{ margin-top:-46px !important; }
.td-header-wrap .td-header-sp-logo{ padding-top:0 !important; }

/* the old search in the menu row is no longer needed */
.td-header-menu-wrap .td-search-wrapper{ display:none !important; }

/* the band sits under the lockup, not above it */
.tvn-band{ border-top:0; border-bottom:1px solid var(--tvn-hair); }
.tvn-band-in{ padding:10px 20px 11px; justify-content:center; gap:30px; }
.tvn-band-day{ margin-left:0; }

@media (max-width:820px){
  .tvn-mast-in{ flex-wrap:wrap; gap:10px; padding-top:12px; }
  .td-header-sp-logo, .td-header-wrap .td-logo-text-wrap{ margin-top:0 !important; }
  .tvn-mh{ font-size:14px; }
  .tvn-band-in{ justify-content:flex-start; gap:16px; }
}

/* --- masthead line, corrected: sits beside the lockup, not on top of it --- */
.tvn-mast{ height:0; overflow:visible; border:0; background:transparent; }
.tvn-mast-in{ position:relative; top:52px; padding:0 20px; z-index:6; }
.td-header-sp-logo, .td-header-wrap .td-logo-text-wrap{ margin-top:0 !important; }
.td-header-wrap .td-header-sp-logo{ padding-top:26px !important; padding-bottom:6px !important; }

/* the duplicate search in the menu row */
.td-header-menu-wrap .td-search-wrapper,
.td-header-menu-wrap .td-icon-search,
.td-header-menu-wrap #td-header-search-button{ display:none !important; }

/* the band, once JavaScript has moved it under the lockup */
.tvn-band{ border-top:1px solid var(--tvn-hair); border-bottom:0; }

@media (max-width:820px){
  .tvn-mast{ height:auto; }
  .tvn-mast-in{ position:static; padding:12px 20px 0; }
  .td-header-wrap .td-header-sp-logo{ padding-top:10px !important; }
}

/* the masthead line was rendering behind the lockup block */
.tvn-mast{ position:relative; z-index:40; }
.tvn-mast-in{ z-index:40; pointer-events:auto; }
.tvn-mast-l, .tvn-mast-r{ position:relative; z-index:41; }
.td-header-wrap .td-header-sp-logo{ position:relative; z-index:1; background:transparent !important; }

/* the theme puts the whole header on z-index 2000, so the masthead line has
   to sit above that to be seen at all */
.tvn-mast{ z-index:2100 !important; }
.tvn-mast-in{ z-index:2100 !important; }
.tvn-mast-l, .tvn-mast-r{ z-index:2101 !important; }

/* the almanac: On today sits on the same line as the readings now that the
   buttons have moved to the masthead */
.tvn-almanac-in{ flex-wrap: nowrap; }
.tvn-on{ padding-left:24px; }
@media (max-width:900px){ .tvn-almanac-in{ flex-wrap:nowrap; } }

/* ==================================================================
   DISTRIBUTION POINTS
   214 names is a lot of type. Grouped by route, set in columns, and the
   count beside each route so a reader can see the shape of it.
   ================================================================== */
.page .td-post-content h2{ font-size:22px !important; margin:34px 0 4px !important;
  padding-bottom:8px; border-bottom:2px solid var(--tvn-ink); }
.page .td-post-content h2:first-of-type{ margin-top:22px !important; }
.tvn-dp-n{ font-family: var(--tvn-mono); font-size:11px; letter-spacing:1px;
  color: var(--tvn-kelp); vertical-align:middle; margin-left:8px; }
.page .td-post-content h3{ font-family: var(--tvn-mono) !important; font-size:10px !important;
  letter-spacing:1.4px; text-transform:uppercase; color: var(--tvn-muted) !important;
  margin:18px 0 5px !important; }
p.tvn-dp-list{ font-family: var(--tvn-serif) !important; font-size:15.5px !important;
  line-height:1.75 !important; color:#3A3F47 !important; margin:0 0 4px !important;
  columns:2; column-gap:38px; }
@media (max-width:760px){ p.tvn-dp-list{ columns:1; } }

/* the almanac readings must never wrap inside themselves; the row scrolls
   sideways on a narrow screen instead of crushing the words */
.tvn-almanac-in{ flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
.tvn-almanac-in::-webkit-scrollbar{ display:none; }
.tvn-al-item{ flex:0 0 auto; }
.tvn-al-k, .tvn-al-v{ white-space: nowrap; }
.tvn-on{ flex:0 0 auto; }
.tvn-on-item{ max-width:300px; }

/* ==================================================================
   HEADER, rebuilt to the demo
   Search left · lockup centre · band of towns · navigation with
   Sign in and Advertise at the right.
   ================================================================== */
.tvn-mast-r{ display:none; }
.tvn-search-open{ background:none; border:0; cursor:pointer; padding:0;
  font-family: var(--tvn-display); font-size:15.5px; color: var(--tvn-ink); }
.tvn-search-open:hover{ color: var(--tvn-red); }

/* the band: label then the towns, as the demo prints them */
.tvn-band{ background: var(--tvn-paper); border-top:1px solid var(--tvn-hair); }
.tvn-band-in{ max-width:1068px; margin:0 auto; padding:9px 20px 10px;
  display:flex; align-items:baseline; gap:18px; justify-content:flex-start; }
.tvn-band-label{ flex:0 0 auto; font-family: var(--tvn-mono); font-size:9px;
  letter-spacing:1.4px; text-transform:uppercase; color: var(--tvn-kelp) !important;
  text-decoration:none !important; white-space:nowrap; }
.tvn-band-label:hover{ color: var(--tvn-red) !important; }
.tvn-band-towns{ font-family: var(--tvn-serif); font-size:13px; color:#6e7684;
  line-height:1.5; }

/* navigation row: menu left, actions right, and it must not sit on the page */
.td-header-menu-wrap{ position:relative; z-index:2050; }
.td-header-menu-wrap .td-container{ display:flex; align-items:center; }
.tvn-nav-actions{ margin-left:auto; display:flex; align-items:center; gap:16px;
  padding-right:20px; }
.tvn-nav-in{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color: var(--tvn-ink) !important;
  text-decoration:none !important; }
.tvn-nav-in:hover{ color: var(--tvn-red) !important; }
.tvn-nav-cta{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:700;
  letter-spacing:.03em; background: var(--tvn-red); color:#fff !important;
  padding:8px 15px; border-radius:5px; text-decoration:none !important; white-space:nowrap; }
.tvn-nav-cta:hover{ background:#A82C22; }

@media (max-width:820px){
  .tvn-band-in{ flex-direction:column; gap:5px; }
  .tvn-nav-actions{ padding-right:12px; gap:10px; }
  .tvn-nav-in{ display:none; }
}

/* the flex on the theme’s own container broke its menu; the actions are
   positioned at the right of the row instead */
.td-header-menu-wrap .td-container{ display:block !important; position:relative; }
.td-header-menu-wrap{ min-height:56px; }
.tvn-nav-actions{ position:absolute; right:20px; top:50%; transform:translateY(-50%);
  margin-left:0; display:flex; align-items:center; gap:16px; padding-right:0; z-index:5; }
.sf-menu{ padding-right:260px; }
@media (max-width:820px){
  .tvn-nav-actions{ right:12px; }
  .sf-menu{ padding-right:150px; }
}

/* the navigation row overflowed its wrapper, which has a set height, so the
   row printed over the top of the page */
.td-header-menu-wrap-full{ height:auto !important; min-height:0 !important;
  background: var(--tvn-paper); position:relative; z-index:2050; }
.td-header-menu-wrap{ min-height:0 !important; height:auto !important;
  background: var(--tvn-paper); }
.sf-menu > li > a{ padding-top:15px !important; padding-bottom:15px !important; }
.tvn-nav-actions{ top:50%; }
.td-main-content-wrap{ position:relative; z-index:1; clear:both; }

/* ==================================================================
   HEADER — matched to the design
   ================================================================== */
.tvn-mast-r{ display:flex !important; }
.tvn-signin{ font-family: var(--tvn-sans); font-size:12.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; background: var(--tvn-red);
  color:#fff !important; padding:11px 22px; border-radius:5px;
  text-decoration:none !important; }
.tvn-signin:hover{ background:#A82C22; }

/* the line under the lockup */
.tvn-band{ background: var(--tvn-paper); border:0; }
.tvn-band-in{ max-width:1068px; margin:0 auto; padding:2px 20px 14px;
  display:flex; justify-content:center; align-items:baseline; gap:10px;
  font-family: var(--tvn-mono); font-size:10px; letter-spacing:1.4px;
  text-transform:uppercase; color:#6e7684; }
.tvn-band-in > span + span::before, .tvn-band-in > a::before{ content:"\00b7"; margin-right:10px; color:#C2C6CB; }
.tvn-band-in b{ font-family: var(--tvn-mono); font-weight:700; color: var(--tvn-ink); }
.tvn-band-in a{ color:#6e7684 !important; text-decoration:none !important; }
.tvn-band-in a:hover{ color: var(--tvn-red) !important; }

/* the navigation is centred, with Advertise as a navy button at the end */
.td-header-menu-wrap-full, .td-header-menu-wrap{ height:auto !important; min-height:0 !important; }
.td-header-menu-wrap .td-container{ display:block !important; position:static !important; }
.sf-menu{ display:flex !important; justify-content:center; align-items:center;
  padding-right:0 !important; flex-wrap:wrap; }
.sf-menu > li{ float:none !important; }
.tvn-nav-actions{ display:none !important; }
.tvn-nav-cta-li{ margin-left:14px; }
.tvn-nav-cta{ display:inline-block; font-family: var(--tvn-sans); font-size:12.5px;
  font-weight:700; letter-spacing:.02em; background: var(--tvn-ink); color:#fff !important;
  padding:10px 18px !important; border-radius:5px; text-decoration:none !important;
  white-space:nowrap; text-transform:none !important; }
.tvn-nav-cta:hover{ background:#2C3850; color:#fff !important; }

/* On today marker, as in the design */
.tvn-on-k::before{ content:"\25cf"; color: var(--tvn-red); margin-right:6px; font-size:8px; }
.tvn-on{ align-items:flex-end; }
.tvn-on-items{ text-align:right; }

/* the Advertise button: the theme was painting its own link colour over the
   text, and the rest of the menu is set in capitals, so this matches */
.sf-menu > li.tvn-nav-cta-li > a.tvn-nav-cta,
.sf-menu li.tvn-nav-cta-li a{
  background: var(--tvn-ink) !important;
  color:#fff !important;
  font-family: var(--tvn-sans) !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  padding:11px 18px !important;
  border-radius:5px;
  line-height:1 !important;
  display:inline-block !important;
}
.sf-menu li.tvn-nav-cta-li a:hover{ background:#2C3850 !important; color:#fff !important; }
.tvn-nav-cta-li::after, .tvn-nav-cta-li a::after{ display:none !important; }

/* centre the navigation row */
.td-header-menu-wrap .td-container, #td-header-menu{ text-align:center; }
.sf-menu{ display:inline-flex !important; float:none !important; justify-content:center;
  align-items:center; gap:4px; }
.sf-menu > li{ float:none !important; display:inline-block; }
.sf-menu > li > a{ padding:16px 13px !important; }

/* ==================================================================
   MATCHED TO THE DESIGN, second pass
   The readings are the loud thing in the strip, not the labels. The
   navigation is sentence case. The numbers in the line under the lockup
   are bold, not bigger. And the lockup itself is larger.
   ================================================================== */

/* the almanac */
.tvn-almanac-in{ padding:14px 20px 15px; gap:34px; align-items:flex-start; }
.tvn-al-k{ font-size:9px !important; letter-spacing:1.4px; color:#9AA0A7 !important; }
.tvn-al-v{ font-size:23px !important; line-height:1.15 !important; margin-top:2px; }
.tvn-al-item:last-of-type .tvn-al-v{ font-size:19px !important; color: var(--tvn-kelp) !important; }
.tvn-almanac-in::before{ display:none; }

/* On today, right aligned over two lines as the design has it */
.tvn-on{ flex-direction:column; align-items:flex-end; gap:2px; border-left:0; padding-left:0; }
.tvn-on-k{ font-size:9px; letter-spacing:1.4px; color:#9AA0A7; }
.tvn-on-k::before{ content:"\25cf"; color:#E08A80; margin-right:7px; font-size:7px;
  vertical-align:middle; }
.tvn-on-k i{ color: var(--tvn-ink); font-weight:600; }
.tvn-on-item{ font-size:19px; font-family: var(--tvn-display); }
.tvn-on-item b{ display:none; }

/* a larger lockup */
.td-logo-text-wrap .td-logo-wrap{ width:330px; height:112px; }
.td-header-wrap .td-header-sp-logo{ padding-top:20px !important; padding-bottom:2px !important; }
.td-logo-text-wrap .td-tagline-text{ font-size:10px; letter-spacing:2.4px; margin-top:10px; }
.tvn-mast-in{ top:74px; }

/* the line under the lockup: bold, not bigger */
.tvn-band-in b{ font-size:10px !important; letter-spacing:1.4px; color: var(--tvn-ink); }
.tvn-band-in{ padding-top:6px; }

/* the navigation is sentence case in the design */
.sf-menu > li > a{ text-transform:none !important; font-size:14.5px !important;
  letter-spacing:0 !important; font-weight:700 !important; }
.sf-menu li.tvn-nav-cta-li a{ text-transform:none !important; font-size:13.5px !important;
  letter-spacing:0 !important; }

/* the dropdown, in the paper’s own sans */
.sf-menu ul li a, .sf-menu ul li > a{ font-family: var(--tvn-sans) !important;
  font-size:14px !important; font-weight:600 !important; text-transform:none !important;
  letter-spacing:0 !important; color: var(--tvn-ink) !important; padding:11px 16px !important; }
.sf-menu ul li a:hover{ color: var(--tvn-red) !important; }
.sf-menu ul{ border-top:2px solid var(--tvn-red) !important; box-shadow:0 8px 24px rgba(20,25,35,.12); }

/* the Advertise button, sentence case as the design has it — written at the
   same weight as the rule above it so it actually wins */
.sf-menu > li.tvn-nav-cta-li > a.tvn-nav-cta{
  text-transform:none !important;
  font-size:13.5px !important;
  letter-spacing:0 !important;
}

/* the strip was carrying too much height: tighter padding, smaller readings,
   and On today set on one line so it no longer sets the height of the row */
.tvn-almanac-in{ padding:8px 20px 9px !important; gap:26px !important; align-items:center !important; }
.tvn-al-k{ font-size:8px !important; letter-spacing:1.3px; line-height:1.2 !important; }
.tvn-al-v{ font-size:17px !important; line-height:1.15 !important; margin-top:0 !important; }
.tvn-al-item:last-of-type .tvn-al-v{ font-size:14px !important; }
.tvn-on{ flex-direction:row !important; align-items:center !important; gap:10px !important; }
.tvn-on-k{ font-size:8px !important; letter-spacing:1.3px; }
.tvn-on-item{ font-size:15px !important; }

/* and a little less air around the lockup */
.td-header-wrap .td-header-sp-logo{ padding-top:14px !important; padding-bottom:0 !important; }
.td-logo-text-wrap .td-logo-wrap{ width:300px; height:100px; }
.td-logo-text-wrap .td-tagline-text{ margin-top:7px; }
.tvn-mast-in{ top:62px; }
.tvn-band-in{ padding:5px 20px 11px; }
.sf-menu > li > a{ padding:14px 13px !important; }

/* the search field */
.tvn-search-panel{ position:fixed; top:0; left:0; right:0; z-index:3000;
  background: var(--tvn-ink); padding:18px 20px; box-shadow:0 6px 24px rgba(20,25,35,.2); }
.tvn-search-panel[hidden]{ display:none; }
.tvn-search-panel form{ max-width:1068px; margin:0 auto; display:flex; gap:10px; }
.tvn-search-panel input{ flex:1; border:0; border-radius:6px; padding:13px 16px;
  font-family: var(--tvn-serif); font-size:17px; color: var(--tvn-ink); }
.tvn-search-panel input:focus{ outline:2px solid var(--tvn-red); }
.tvn-search-panel button{ background: var(--tvn-red); color:#fff; border:0; border-radius:6px;
  padding:13px 24px; font-family: var(--tvn-sans); font-size:13px; font-weight:700;
  letter-spacing:.04em; cursor:pointer; }
.tvn-search-panel button:hover{ background:#A82C22; }
.tvn-search-open.is-open{ color: var(--tvn-red); }

/* ==================================================================
   SEARCH — a card over the page, results as you type
   ================================================================== */
.tvn-search-panel{ display:none !important; }
.tvn-sx{ position:fixed; inset:0; z-index:4000; background:rgba(20,25,35,.35);
  display:flex; align-items:flex-start; justify-content:center; padding:28px 20px; }
.tvn-sx[hidden]{ display:none; }
.tvn-sx-card{ width:100%; max-width:770px; background:#fff; border-radius:10px;
  box-shadow:0 20px 60px rgba(20,25,35,.28); max-height:86vh; display:flex;
  flex-direction:column; overflow:hidden; }
.tvn-sx-top{ display:flex; align-items:center; gap:8px; padding:16px 18px; }
.tvn-sx-input{ flex:1; border:0; outline:0; font-family: var(--tvn-serif);
  font-size:21px; color: var(--tvn-ink); background:transparent; }
.tvn-sx-clear, .tvn-sx-close{ background:none; border:0; cursor:pointer;
  color: var(--tvn-muted); padding:4px 8px; }
.tvn-sx-clear{ font-size:15px; color: var(--tvn-red); }
.tvn-sx-close{ font-size:24px; line-height:1; }
.tvn-sx-clear:hover, .tvn-sx-close:hover{ color: var(--tvn-ink); }
.tvn-sx-count{ font-family: var(--tvn-mono); font-size:9px; letter-spacing:1.4px;
  text-transform:uppercase; color: var(--tvn-muted); padding:9px 18px;
  background: var(--tvn-paper); border-top:1px solid var(--tvn-hair);
  border-bottom:1px solid var(--tvn-hair); }
.tvn-sx-count:empty{ display:none; }
.tvn-sx-results{ overflow-y:auto; }
.tvn-sx-row{ display:flex; gap:16px; padding:15px 18px; text-decoration:none !important;
  border-bottom:1px solid var(--tvn-hair); }
.tvn-sx-row:hover{ background: var(--tvn-paper); }
.tvn-sx-th{ flex:0 0 68px; width:68px; height:60px; border-radius:5px;
  overflow:hidden; background:#EDEEF0; }
.tvn-sx-th img{ width:100%; height:100%; object-fit:cover; display:block; }
.tvn-sx-txt{ min-width:0; }
.tvn-sx-sec{ display:block; font-family: var(--tvn-mono); font-size:8.5px;
  letter-spacing:1.3px; text-transform:uppercase; color: var(--tvn-red); margin-bottom:3px; }
.tvn-sx-h{ display:block; font-family: var(--tvn-sans); font-size:16px; font-weight:700;
  color: var(--tvn-ink); line-height:1.3; margin-bottom:3px; }
.tvn-sx-x{ display:block; font-family: var(--tvn-serif); font-size:14.5px;
  line-height:1.5; color:#5A6068; }
@media (max-width:620px){ .tvn-sx{ padding:0; } .tvn-sx-card{ max-height:100vh; border-radius:0; } }

/* ==================================================================
   THE DIARY RAIL — matched to the design
   Month at the left, count and instruction at the right, a scrolling row
   of days with a dot for each thing on, and the filters as pills below.
   ================================================================== */
.tvn-rail{ background:#fff; border-radius:12px; padding:22px 24px 18px; margin-bottom:0;
  box-shadow:0 1px 3px rgba(20,25,35,.07); }
.tvn-rail-head{ display:flex; align-items:baseline; justify-content:space-between;
  gap:16px; margin-bottom:16px; }
.tvn-rail-month{ font-family: var(--tvn-display); font-size:24px; color: var(--tvn-ink); }
.tvn-rail-note{ font-family: var(--tvn-mono); font-size:9.5px; letter-spacing:1.3px;
  text-transform:uppercase; color: var(--tvn-muted); display:flex; align-items:center; gap:14px; }

.tvn-rail-days{ display:flex; gap:7px; overflow-x:auto; padding:2px 2px 14px;
  scrollbar-width:thin; }
.tvn-rail-days::-webkit-scrollbar{ height:7px; }
.tvn-rail-days::-webkit-scrollbar-thumb{ background:#B9BDC3; border-radius:4px; }
.tvn-rail-days::-webkit-scrollbar-track{ background:#EDEEF0; border-radius:4px; }

.tvn-day{ flex:0 0 auto; width:56px; min-height:62px; text-align:center;
  text-decoration:none !important; border:1px solid #dcd6cc; border-radius:9px;
  background:#fff; padding:7px 4px 6px; position:relative; }
.tvn-day:hover{ border-color: var(--tvn-ink); }
.tvn-day .dw{ display:block; font-family: var(--tvn-mono); font-size:8px; letter-spacing:.8px;
  text-transform:uppercase; color:#9AA0A7; }
.tvn-day .dn{ display:block; font-family: var(--tvn-display); font-size:20px; line-height:1.2;
  color: var(--tvn-ink); }
.tvn-day .dd{ display:flex; justify-content:center; gap:3px; height:6px; margin-top:2px; }
.tvn-day .dd i{ width:4px; height:4px; border-radius:50%; background: var(--tvn-red); }
.tvn-day .dh{ display:block; font-family: var(--tvn-mono); font-size:6.5px; letter-spacing:.6px;
  text-transform:uppercase; color: var(--tvn-red); margin-top:1px; }

.tvn-day.is-weekend{ background:#F4F5F6; }
.tvn-day.is-empty{ border-color:transparent; background:transparent; }
.tvn-day.is-empty .dn{ color:#C2C6CB; }
.tvn-day.is-empty .dw{ color:#C2C6CB; }
.tvn-day.is-empty.is-weekend{ background:#F7F8F9; }
.tvn-day.is-today{ border:2px solid var(--tvn-red); background:#fff; padding:6px 3px 5px; }
.tvn-day.is-today .dn{ color: var(--tvn-ink); font-weight:600; }
.tvn-day.is-on{ border:2px solid var(--tvn-ink); }
.tvn-day.is-holiday::before{ display:none; }
.tvn-hol-note{ display:none; }

/* the filter pills, joined onto the same card */
.tvn-filters{ background:#fff; border-radius:0 0 12px 12px; margin-top:-10px;
  padding:14px 24px 20px; box-shadow:0 1px 3px rgba(20,25,35,.07); }
.tvn-filters .tvn-rail-k{ display:none; }
.tvn-chip{ border:1px solid #dcd6cc; border-radius:100px; padding:8px 17px;
  font-family: var(--tvn-sans); font-size:13.5px; font-weight:600; }
.tvn-chip i{ display:none; }
.tvn-chip.is-on{ background: var(--tvn-red) !important; border-color: var(--tvn-red) !important;
  color:#fff !important; box-shadow:none; }
.tvn-chip:hover{ border-color: var(--tvn-ink); }
.tvn-chip.is-on:hover{ border-color: var(--tvn-red) !important; }

/* the picker button sits in the rail head now */
.tvn-pick{ margin-left:0; }
.tvn-pick-open{ font-size:11px; padding:5px 12px; text-transform:none; letter-spacing:0; }

/* today is an outline in the design, not a filled block */
.tvn-rail-days .tvn-day.is-today,
.tvn-rail-days .tvn-day.is-today.is-weekend,
.tvn-rail-days .tvn-day.is-today.is-holiday{
  background:#fff !important; border:2px solid var(--tvn-red) !important; }
.tvn-rail-days .tvn-day.is-today .dw{ color:#9AA0A7 !important; }
.tvn-rail-days .tvn-day.is-today .dn{ color: var(--tvn-ink) !important; }
.tvn-rail-days .tvn-day.is-today .dc{ display:none; }
.tvn-day .dc{ display:none; }

/* Phones: the hamburger menu takes over; hide the desktop menu row */
@media (max-width:767px){
  .td-header-menu-wrap .sf-menu,
  .td-header-menu-wrap #td-header-menu .menu-main-menu-container{ display:none !important; }
  /* the header grows to fit the distribution strip */
  .td-header-wrap .td-header-menu-wrap-full{ height:auto !important; }
  .tvn-band-in{ flex-direction:column !important; align-items:center !important; gap:5px !important; text-align:center; }
  .tvn-band-in > *::before{ content:none !important; display:none !important; }
}

/* Front and section pages: the small section chips keep their size on phones */
@media (max-width:620px){
  .tvn-fp a.tvn-chip, .tvn-grid a.tvn-chip{ min-height:0 !important; }
  /* heading links stay easy to tap without pushing the rule down */
  .tvn-sh > a, .tvn-rh > a, .tvn-ed > a.r{ min-height:0 !important; padding-top:14px !important; padding-bottom:14px !important; margin-top:-14px !important; margin-bottom:-14px !important; }
}

/* Sponsored articles: the paid-for line above the body */
.tvn-paid-note{font:400 12px/1.5 'IBM Plex Mono',ui-monospace,monospace !important;letter-spacing:.6px;text-transform:uppercase;color:#6e7684 !important;border-top:1px solid #f0eae0;border-bottom:1px solid #f0eae0;padding:11px 0 !important;margin:0 0 24px !important}
.tvn-paid-note span{display:inline-block;background:#B98A2E;color:#fff;font-size:9px;letter-spacing:1.2px;padding:5px 9px 4px;border-radius:3px;margin-right:10px;vertical-align:1px}
.tvn-paid-note b{color:#232B3E;font-weight:500}

/* The sponsored card on the front page: a thin gold frame */
.tvn-two .tvn-card.tvn-spons{border:1px solid #B98A2E;border-radius:8px;padding:10px 10px 12px;margin:-11px;background:#FFFCF5}
@media (max-width:767px){ .tvn-two .tvn-card.tvn-spons{margin:8px 0;padding:12px} }

/* ---------- PUBLICATIONS PAGE and the front-page booking band ---------- */
.tvn-pubs .tvn-wk{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start;margin-bottom:10px}
.tvn-pubs .tvn-cov{position:relative;display:block}
.tvn-pubs .tvn-cov img{display:block;width:100%;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 14px 34px rgba(20,25,35,.22)}
.tvn-pubs .tvn-cov .pg{position:absolute;right:-10px;bottom:18px;background:#232B3E;color:#fff;font:500 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:1.3px;text-transform:uppercase;padding:7px 10px;border-radius:4px}
.tvn-pubs .tvn-wk .k{font:400 10px/1 'IBM Plex Mono',monospace;letter-spacing:1.4px;text-transform:uppercase;color:#a6382c}
.tvn-pubs .tvn-wk h2{font:400 40px/1.05 'Playfair Display',Georgia,serif;margin:10px 0 6px;letter-spacing:-.3px;color:#232B3E}
.tvn-pubs .tvn-wk .meta{font:400 10.5px/1.5 'IBM Plex Mono',monospace;letter-spacing:1px;text-transform:uppercase;color:#6e7684}
.tvn-pubs .tvn-wk .lede{font:400 17px/1.55 'Source Serif 4',Georgia,serif;color:#2E3238;margin:16px 0 20px}
.tvn-pubs .btns{display:flex;gap:10px;flex-wrap:wrap}
.tvn-pubs .b1{background:#b98a2e;color:#232B3E !important;font:600 14px/1 'Source Sans 3',sans-serif;padding:13px 18px;border-radius:6px;text-decoration:none}
.tvn-pubs .b2{border:1px solid #232B3E;color:#232B3E !important;font:600 14px/1 'Source Sans 3',sans-serif;padding:12px 17px;border-radius:6px;text-decoration:none}
.tvn-pubs .tvn-bi{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.tvn-pubs .tvn-bi a{display:block;color:#232B3E;text-decoration:none}
.tvn-pubs .tvn-bi .pp{display:block;width:100%;background:#fff;border:1px solid #f0eae0;border-radius:3px;aspect-ratio:.72;object-fit:cover;object-position:top;box-shadow:0 2px 6px rgba(20,25,35,.08)}
.tvn-pubs .tvn-bi div.pp{padding:9px 8px}
.tvn-pubs .tvn-bi .pp i{display:block;height:4px;background:#e2e2de;margin:5px 0;border-radius:2px}
.tvn-pubs .tvn-bi .pp i:first-child{height:11px;background:#232B3E;width:72%;margin-top:0}
.tvn-pubs .tvn-bi .pp i.p{height:30px;background:#c9ced6}
.tvn-pubs .tvn-bi .d{font:400 15px/1.2 'Playfair Display',Georgia,serif;margin-top:8px}
.tvn-pubs .tvn-bi .n{font:400 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:1px;color:#6e7684;margin-top:3px}
.tvn-pubs .tvn-ap{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tvn-pubs .tvn-pc{border:1px solid #f0eae0;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.tvn-pubs .tvn-pc .cv{background:#232B3E center/cover no-repeat;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 16px}
.tvn-pubs .tvn-pc .cv b{font:400 21px/1.15 'Playfair Display',Georgia,serif;color:#fff}
.tvn-pubs .tvn-pc .cv span{font:400 8.5px/1 'IBM Plex Mono',monospace;letter-spacing:1.3px;text-transform:uppercase;color:#e3c98f;margin-top:9px}
.tvn-pubs .tvn-pc .cv s{display:block;width:44px;height:2px;background:#b98a2e;margin-top:11px;text-decoration:none}
.tvn-pubs .tvn-pc .bd{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.tvn-pubs .tvn-pc h4{font:400 18px/1.2 'Playfair Display',Georgia,serif;margin:0 0 6px;color:#232B3E}
.tvn-pubs .tvn-pc p{font:400 14px/1.5 'Source Serif 4',Georgia,serif;color:#2E3238;margin:0 0 12px;flex:1}
.tvn-pubs .tvn-pc .ft{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tvn-pubs .tvn-pc .tags{display:flex;gap:6px;flex-wrap:wrap}
.tvn-pubs .tag{font:500 9px/1 'IBM Plex Mono',monospace;letter-spacing:1.1px;text-transform:uppercase;padding:5px 8px 4px;border-radius:3px;background:#F2F3F4;color:#4A4F58}
.tvn-pubs .tag.g{background:#EAF3EC;color:#1f5a5b}
.tvn-pubs .tvn-pc .ln{font:500 10px/1 'IBM Plex Mono',monospace;letter-spacing:1.2px;text-transform:uppercase;color:#a6382c;text-decoration:none;white-space:nowrap}
.tvn-pubs .tvn-pitch{margin-top:34px;background:#232B3E;color:#fff;border-radius:8px;padding:24px 26px;display:flex;gap:24px;align-items:center}
.tvn-pubs .tvn-pitch h3{font:400 24px/1.15 'Playfair Display',Georgia,serif;margin:0 0 8px;color:#fff}
.tvn-pubs .tvn-pitch p{margin:0;opacity:.85;font:400 15.5px/1.55 'Source Serif 4',Georgia,serif;max-width:560px;color:#fff}
.tvn-pubs .tvn-pitch a{margin-left:auto;background:#a6382c;color:#fff !important;border-radius:6px;padding:12px 18px;font:600 14px/1 'Source Sans 3',sans-serif;white-space:nowrap;text-decoration:none}
.tvn-pubband{margin-top:34px;background:#232B3E;color:#fff;border-radius:8px;padding:18px 20px}
.tvn-pubband .k{font:400 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:1.4px;text-transform:uppercase;color:#e3c98f}
.tvn-pubband .pg{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px}
.tvn-pubband h5{font:400 20px/1.15 'Playfair Display',Georgia,serif;margin:0 0 6px;color:#fff}
.tvn-pubband p{font:400 14px/1.45 'Source Serif 4',Georgia,serif;margin:0 0 10px;opacity:.85;color:#fff}
.tvn-pubband a{display:inline-block;background:#b98a2e;color:#232B3E !important;font:600 12.5px/1 'Source Sans 3',sans-serif;padding:7px 11px;border-radius:5px;text-decoration:none}
@media (max-width:767px){
 .tvn-pubs .tvn-wk{grid-template-columns:1fr;gap:22px}.tvn-pubs .tvn-cov{max-width:230px;margin:0 auto}
 .tvn-pubs .tvn-wk h2{font-size:32px}
 .tvn-pubs .tvn-bi{grid-template-columns:repeat(3,1fr)}
 .tvn-pubs .tvn-ap{grid-template-columns:1fr}
 .tvn-pubs .tvn-pitch{flex-direction:column;align-items:flex-start}.tvn-pubs .tvn-pitch a{margin-left:0}
 .tvn-pubband .pg{grid-template-columns:1fr}
}
@media (max-width:620px){ .tvn-pubs .tvn-pc .ln,.tvn-pubs .tvn-bi a,.tvn-pubband a{min-height:0 !important} }

.tvn-pubband .pg > div:only-child{grid-column:1/-1}
.tvn-pubband .pg > div:only-child p{max-width:560px}

/* Back issues: one row until View all is pressed */
.tvn-pubs .tvn-bi:not(.open) > a:nth-child(n+7){display:none}
@media (max-width:767px){ .tvn-pubs .tvn-bi:not(.open) > a:nth-child(n+4){display:none} }
.tvn-pubs .tvn-bi-more{margin-left:auto;font:500 10px/1 'IBM Plex Mono',monospace;letter-spacing:1.3px;text-transform:uppercase;color:#a6382c !important;text-decoration:none}

/* Publications: Inside this edition */
.tvn-pubs .tvn-inside{margin-top:24px}
.tvn-pubs .tvn-inside .hd{display:flex;align-items:baseline;border-bottom:2px solid #232B3E;padding-bottom:6px;margin-bottom:2px}
.tvn-pubs .tvn-inside h4{font:400 20px/1 'Playfair Display',Georgia,serif;margin:0;color:#232B3E}
.tvn-pubs .tvn-inside .hd a{margin-left:auto;font:500 10px/1 'IBM Plex Mono',monospace;letter-spacing:1.3px;text-transform:uppercase;color:#a6382c !important;text-decoration:none;min-height:0 !important}
.tvn-pubs .tvn-inside .it{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid #f0eae0;text-decoration:none;min-height:0 !important}
.tvn-pubs .tvn-inside .it:last-child{border-bottom:0}
.tvn-pubs .tvn-inside .c{font:500 8.5px/1 'IBM Plex Mono',monospace;letter-spacing:1.1px;text-transform:uppercase}
.tvn-pubs .tvn-inside .t{font:400 16px/1.3 'Playfair Display',Georgia,serif;color:#232B3E}
.tvn-pubs .tvn-inside .it:hover .t{color:#a6382c}
.tvn-pubs .tvn-wk .lede{margin:12px 0 16px}

/* What's on list, phones: the date badge gets its own room so it never sits on the title */
@media (max-width:767px){ .tribe-events-calendar-list__event-date-tag{flex:0 0 auto !important;width:auto !important;min-width:70px;margin-right:14px !important} }

/* Puzzles card in the front-page side column (matches the demo: ranked rows, then an outlined button) */
.tvn-pzr-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #f0eae0}
.tvn-pzr-row h6{font:600 14.5px/1.25 var(--tvn-sans);margin:0 0 2px;color:var(--tvn-ink)}
.tvn-pzr-row .t{font:400 12.5px/1.3 var(--tvn-sans);color:var(--tvn-muted)}
.tvn-pzr-row .p{font:500 11px/1.3 var(--tvn-mono);color:var(--tvn-ink);white-space:nowrap}
.tvn-pzr-note{font:400 9.5px/1 var(--tvn-mono);letter-spacing:1px;text-transform:uppercase;color:var(--tvn-muted);margin-top:9px}
.tvn-pzr-lede{font:400 14.5px/1.5 var(--tvn-serif);color:#3A3F47;margin:10px 0 0}
.tvn-pzr-btn{display:flex;align-items:center;justify-content:center;text-align:center;margin-top:12px;border:1px solid var(--tvn-ink);border-radius:5px;padding:8px;font:600 13px/1 var(--tvn-sans);color:var(--tvn-ink)!important}
.tvn-pzr-btn:hover{background:var(--tvn-ink);color:#fff!important}
.tvn-pzr .tvn-pzsp{display:flex;align-items:center;gap:12px;border:1px solid #f0eae0;border-radius:6px;padding:8px 12px;margin:12px 0 0}
.tvn-pzr .tvn-pzsp span{font:400 9px/1.3 var(--tvn-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--tvn-muted)}
.tvn-pzr .tvn-pzsp img{max-height:44px;width:auto;display:block}
