/*
Theme Name: Global People Magazine
Author: Paps Hieronymos
Author URI: https://www.papshieronymos.com/
Description: A professional premium editorial news and magazine WordPress theme for Global People Magazine. Features breaking news, category hierarchy, responsive design, SEO, and a dedicated Awards & Recognition experience.
Version: 3.0.7
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: filipino-magazine
Tags: news, magazine, blog, custom-header, custom-logo, custom-menu, featured-images, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, one-column, wide-blocks
*/

/* ===========================
   CSS CUSTOM PROPERTIES
   =========================== */
:root {
  /* Brand Colors */
  --color-primary:      #0A66C2;
  --color-secondary:    #111111;
  --color-gold:         #C9A227;
  --color-dark:         #111111;
  --color-dark-alt:     #333333;
  --color-gray:         #666666;
  --color-light-gray:   #888888;
  --color-border:       #E5E7EB;
  --color-bg:           #FFFFFF;
  --color-bg-alt:       #F7F7F7;
  --color-bg-dark:      #111111;
  --color-bg-nav:       #111111;
  --color-live:         #E53935;
  --color-breaking:     #E53935;
  --color-link:         #0A66C2;
  --color-link-hover:   #C9A227;

  /* Typography */
  --font-primary: 'Source Sans 3', 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-serif:   'Playfair Display', Georgia, 'Times New Roman', Times, serif;
  --font-mono:    'Courier New', Courier, monospace;

  /* Font Sizes */
  --font-size-xs:   0.75rem;    /* 12px */
  --font-size-sm:   0.8125rem;  /* 13px */
  --font-size-base: 1rem;       /* 16px */
  --font-size-md:   1.0625rem;  /* 17px */
  --font-size-lg:   1.125rem;   /* 18px */
  --font-size-xl:   1.375rem;   /* 22px */
  --font-size-2xl:  1.75rem;    /* 28px */
  --font-size-3xl:  2.25rem;    /* 36px */
  --font-size-4xl:  3rem;       /* 48px */

  /* Font Weights */
  --font-weight-normal:    400;
  --font-weight-medium:    500;
  --font-weight-semibold:  600;
  --font-weight-bold:      700;
  --font-weight-extrabold: 800;

  /* Line Heights */
  --line-height-tight:   1.2;
  --line-height-snug:    1.35;
  --line-height-normal:  1.55;
  --line-height-relaxed: 1.7;

  /* Spacing */
  --spacing-xs:  0.25rem;
  --spacing-sm:  0.5rem;
  --spacing-md:  1rem;
  --spacing-lg:  1.5rem;
  --spacing-xl:  2rem;
  --spacing-2xl: 3rem;
  --spacing-3xl: 4rem;

  /* Layout */
  --container-max:     1280px;
  --container-padding: 1.25rem;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 6px;

  /* Shadows */
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.09);
  --shadow-lg: 0 8px 28px rgba(0,0,0,0.12);

  /* Transitions */
  --transition: 0.2s ease;
  --transition-slow: 0.35s ease;
}

/* ===========================
   RESET & BASE
   =========================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-primary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  color: var(--color-dark-alt);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-link); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-link-hover); }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; }
table { border-collapse: collapse; width: 100%; }

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6 {
  color: var(--color-dark);
  line-height: var(--line-height-tight);
  font-weight: var(--font-weight-bold);
}

/* ===========================
   ACCESSIBILITY
   =========================== */
.screen-reader-text {
  border: 0;
  clip: rect(1px,1px,1px,1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: var(--color-bg);
  clip: auto !important;
  clip-path: none;
  color: var(--color-dark);
  display: block;
  font-size: 1em;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* ===========================
   READING PROGRESS BAR
   =========================== */
.reading-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  background: var(--color-gold);
  z-index: 9999;
  transition: width 0.1s linear;
}

/* ===========================
   LAYOUT
   =========================== */
.container {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-content { flex: 1; }

/* ===========================
   BREAKING NEWS BAR
   =========================== */
.breaking-news-bar {
  background-color: #1a1a1a;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.breaking-news-bar .container {
  display: flex;
  align-items: stretch;
  overflow: hidden;
}
.breaking-label {
  background-color: var(--color-breaking);
  color: #fff;
  font-size: 0.65rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}
.breaking-label .live-dot {
  width: 7px;
  height: 7px;
  background: #fff;
  border-radius: 50%;
  animation: pulse 1.5s infinite;
}
.breaking-ticker {
  flex: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 0 1rem;
  font-size: var(--font-size-sm);
}
.breaking-ticker a {
  color: #e8e8e8;
  white-space: nowrap;
  display: block;
  animation: ticker 28s linear infinite;
}
.breaking-ticker a:hover { text-decoration: underline; color: #fff; }
@keyframes ticker {
  0%   { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.35; }
}

/* ===========================
   HEADER — Premium Dark Edition
   =========================== */
.site-header {
  background-color: var(--color-dark);
  border-bottom: none;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 12px rgba(0,0,0,0.35);
  transition: box-shadow var(--transition);
}
.site-header.scrolled {
  box-shadow: 0 4px 20px rgba(0,0,0,0.45);
}
.site-header.hide-header {
  transform: translateY(-100%);
  transition: transform 0.3s ease;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 62px;
  gap: 1rem;
}

/* Left: Hamburger + Search */
.header-left {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 38px;
  height: 38px;
  padding: 8px 6px;
  border-radius: var(--radius-md);
  transition: background var(--transition);
}
.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background-color: #fff;
  border-radius: 1px;
  transition: all 0.25s ease;
  transform-origin: center;
}
.menu-toggle:hover { background: rgba(255,255,255,0.1); }
.menu-toggle.is-active span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.menu-toggle.is-active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle.is-active span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

.header-search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  color: #ccc;
  transition: color var(--transition), background var(--transition);
}
.header-search-btn svg { width: 18px; height: 18px; }
.header-search-btn:hover { color: #fff; background: rgba(255,255,255,0.1); }

/* Center: Logo */
.header-center {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}
.site-logo a {
  display: inline-flex;
  align-items: center;
}
.site-logo img {
  height: 44px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
  display: block;
}
.site-logo .site-name {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: var(--font-weight-bold);
  color: #fff;
  letter-spacing: -0.02em;
}

/* Right: Auth Buttons */
.header-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.btn-header-outline {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.85rem;
  border: 1.5px solid rgba(255,255,255,0.35);
  border-radius: var(--radius-md);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: #ddd;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transition: all var(--transition);
}
.btn-header-outline:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255,255,255,0.08);
}
.btn-header-solid {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.85rem;
  background: var(--color-primary);
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-md);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: #fff;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transition: all var(--transition);
}
.btn-header-solid:hover {
  background: #0857a4;
  border-color: #0857a4;
  color: #fff;
}

/* ===========================
   PRIMARY NAVIGATION BAR
   =========================== */
.main-navigation {
  background-color: #1a1a1a;
  border-top: 1px solid rgba(255,255,255,0.07);
  border-bottom: 3px solid var(--color-gold);
}
.nav-inner {
  display: flex;
  justify-content: center;
}
.main-navigation ul.menu {
  display: flex;
  align-items: stretch;
  gap: 0;
  list-style: none;
  flex-wrap: nowrap;
  overflow: visible;
}
.main-navigation ul.menu > li {
  position: relative;
}
.main-navigation ul.menu > li > a {
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 1rem;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: #c8c8c8;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color var(--transition), background var(--transition);
  position: relative;
}
.main-navigation ul.menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  right: 50%;
  height: 3px;
  background: var(--color-gold);
  transition: left var(--transition), right var(--transition);
}
.main-navigation ul.menu > li > a:hover {
  color: #fff;
  background: rgba(255,255,255,0.06);
}
.main-navigation ul.menu > li > a:hover::after,
.main-navigation ul.menu > li.current-menu-item > a::after,
.main-navigation ul.menu > li.current-menu-ancestor > a::after {
  left: 0;
  right: 0;
}
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current-menu-ancestor > a {
  color: #fff;
}

/* Dropdown (sub-menu) */
.main-navigation .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #1a1a1a;
  border-top: 3px solid var(--color-gold);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  z-index: 200;
  list-style: none;
}
.main-navigation ul.menu > li:hover > .sub-menu,
.main-navigation ul.menu > li:focus-within > .sub-menu {
  display: block;
}
.main-navigation .sub-menu li a {
  display: block;
  padding: 0.65rem 1.1rem;
  font-size: var(--font-size-sm);
  color: #bbb;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: color var(--transition), padding-left var(--transition);
}
.main-navigation .sub-menu li a:hover {
  color: #fff;
  padding-left: 1.4rem;
  background: rgba(255,255,255,0.05);
}
.main-navigation .sub-menu li:last-child a { border-bottom: none; }
.main-navigation .menu-item-has-children.is-open > .sub-menu { display: block; }

/* More caret */
.more-caret {
  margin-left: 4px;
  font-size: 0.7rem;
  line-height: 1;
  opacity: 0.75;
  display: inline-block;
  transition: transform var(--transition);
}
.menu-item-has-children:hover .more-caret { transform: rotate(180deg); }

/* ===========================
   MOBILE NAV DRAWER (BBC-style)
   =========================== */
.mobile-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 1100;
  opacity: 0;
  transition: opacity var(--transition-slow);
}
.mobile-nav-overlay.is-open {
  display: block;
  opacity: 1;
}

.mobile-nav-drawer {
  position: fixed;
  top: 0;
  left: -340px;
  width: 320px;
  max-width: 90vw;
  height: 100%;
  background: #1a1a1a;
  z-index: 1200;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
.mobile-nav-drawer.is-open { left: 0; }

.mobile-nav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background: var(--color-dark);
}
.mobile-nav-logo img {
  height: 32px;
  width: auto;
}
.mobile-nav-logo span { color: #fff; font-weight: var(--font-weight-bold); font-size: 1.1rem; }
.close-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #bbb;
  font-size: 1.25rem;
  border-radius: 50%;
  transition: color var(--transition), background var(--transition);
}
.close-btn:hover { color: #fff; background: rgba(255,255,255,0.1); }

.mobile-nav-search {
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.mobile-nav-search form {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.mobile-nav-search input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  padding: 0.6rem 0.875rem;
  color: #e0e0e0;
  font-size: var(--font-size-sm);
}
.mobile-nav-search input::placeholder { color: #777; }
.mobile-nav-search button {
  padding: 0.6rem 0.875rem;
  color: #888;
  transition: color var(--transition);
}
.mobile-nav-search button:hover { color: #fff; }

.mobile-nav-menu ul.menu { list-style: none; padding: 0.5rem 0; }
.mobile-nav-menu ul.menu li a {
  display: block;
  padding: 0.8rem 1.25rem;
  color: #ccc;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: color var(--transition), padding-left var(--transition);
}
.mobile-nav-menu ul.menu li a:hover {
  color: #fff;
  padding-left: 1.6rem;
  background: rgba(255,255,255,0.04);
}
.mobile-nav-menu ul.menu li.current-menu-item > a { color: var(--color-gold); }
.mobile-nav-menu ul.menu .sub-menu {
  display: none;
  background: rgba(0,0,0,0.2);
}
.mobile-nav-menu ul.menu .sub-menu.is-open { display: block; }
.mobile-nav-menu ul.menu .sub-menu li a {
  padding-left: 2rem;
  font-size: var(--font-size-sm);
}
.mobile-nav-menu .chevron {
  float: right;
  margin-top: 2px;
  transition: transform 0.25s;
}
.mobile-nav-menu .menu-item-has-children.is-open .chevron {
  transform: rotate(180deg);
}

/* ===========================
   SEARCH OVERLAY
   =========================== */
.search-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10,10,10,0.93);
  z-index: 1500;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
}
.search-overlay.is-open { display: flex; }
.search-overlay-inner {
  width: 90%;
  max-width: 640px;
}
.search-overlay-inner form {
  display: flex;
  align-items: center;
  border-bottom: 2px solid var(--color-gold);
  padding: 0.5rem 0;
}
.search-overlay-inner input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: #fff;
  font-size: clamp(1.25rem, 3vw, 2rem);
  font-family: var(--font-serif);
  padding: 0.5rem 0;
}
.search-overlay-inner input::placeholder { color: rgba(255,255,255,0.35); }
.search-overlay-inner button {
  color: #fff;
  padding: 0.5rem;
  flex-shrink: 0;
  opacity: 0.7;
  transition: opacity var(--transition);
}
.search-overlay-inner button:hover { opacity: 1; }
.search-overlay-close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #aaa;
  font-size: 1.5rem;
  border-radius: 50%;
  transition: color var(--transition), background var(--transition);
}
.search-overlay-close:hover { color: #fff; background: rgba(255,255,255,0.1); }

/* ===========================
   SITE CONTENT AREA
   =========================== */
#content { padding: 0; }
#main-content { outline: none; }

/* ===========================
   HERO / FEATURED SECTION
   =========================== */
.homepage-main { padding-top: 1.5rem; }

.hero-section {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--color-border);
}

.hero-section-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid var(--color-dark);
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
}
.section-rule-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-dark);
  position: relative;
  padding-left: 0.75rem;
}
.section-rule-label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 100%;
  background: var(--color-gold);
  border-radius: 1px;
}
.section-date {
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
}

/* Hero Layout */
.hero-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 1024px) {
  .hero-layout {
    grid-template-columns: 1fr 280px;
    gap: 2.5rem;
    align-items: start;
  }
}

/* Featured Lead Article */
.featured-lead {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
@media (min-width: 768px) {
  .featured-lead {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

.featured-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0 0 1.5rem;
}
@media (min-width: 768px) {
  .featured-copy { padding: 0 2rem 0 0; order: -1; }
}

/* "FEATURED" eyebrow label */
.featured-copy .cat-label,
.featured-copy > .eyebrow {
  font-size: 0.65rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 0.75rem;
  display: block;
}
.featured-copy .cat-label a { color: var(--color-gold); }
.featured-copy .cat-label a:hover { color: var(--color-dark); }

.featured-title {
  font-family: var(--font-serif);
  font-size: clamp(1.7rem, 3.5vw, 2.85rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--color-dark);
  margin-bottom: 0.9rem;
}
.featured-title a { color: var(--color-dark); }
.featured-title a:hover { color: var(--color-primary); }

.featured-excerpt {
  color: var(--color-dark-alt);
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  max-width: 46ch;
  margin-bottom: 1.1rem;
}

.featured-read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--color-primary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 0.35rem;
  align-self: flex-start;
}
.featured-read-more::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 2.25rem;
  height: 2px;
  background: var(--color-gold);
  transition: width var(--transition);
}
.featured-read-more:hover { color: var(--color-gold); }
.featured-read-more:hover::after { width: 100%; }

.featured-image {
  overflow: hidden;
  background: var(--color-bg-alt);
  aspect-ratio: 16/10;
}
.featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.featured-image:hover img { transform: scale(1.03); }

/* Featured Support Grid (3 cards below lead) */
.featured-support-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
  margin-top: 1.5rem;
}
@media (min-width: 640px) {
  .featured-support-grid { grid-template-columns: repeat(3, 1fr); }
}

.featured-support-card {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 0.75rem;
  align-items: start;
}
.featured-support-card .card-image {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--color-bg-alt);
}
.featured-support-card .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.featured-support-card:hover .card-image img { transform: scale(1.05); }
.featured-support-card .card-body { padding: 0; }
.featured-support-card .cat-label { font-size: 0.6rem; }
.featured-support-card .card-title {
  font-family: var(--font-serif);
  font-size: 0.875rem;
  line-height: 1.25;
  margin-top: 0.25rem;
}

/* Hero Rail (sidebar: "Most Read" + "Explore") */
.hero-rail {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
@media (min-width: 1024px) {
  .hero-rail {
    border-left: 1px solid var(--color-border);
    padding-left: 2rem;
    position: sticky;
    top: 80px;
  }
}

.hero-rail-block {}
.hero-rail-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-dark);
  border-bottom: 2px solid var(--color-dark);
  padding-bottom: 0.45rem;
  margin-bottom: 1rem;
  position: relative;
}
.hero-rail-title::before {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--color-gold);
}

.hero-popular-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.hero-popular-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
}
.hero-popular-list li:last-child { border-bottom: none; }
.hero-popular-number {
  font-size: 1.5rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-border);
  line-height: 1;
  flex-shrink: 0;
  width: 2.2rem;
  font-family: var(--font-serif);
}
.hero-popular-list a {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark);
  line-height: var(--line-height-snug);
  transition: color var(--transition);
}
.hero-popular-list a:hover { color: var(--color-primary); }

/* Hero Topics / Explore */
.hero-topics-block {}
.hero-topic-links {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.hero-topic-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark-alt);
  border-bottom: 1px solid var(--color-border);
  transition: color var(--transition), padding-left var(--transition);
}
.hero-topic-links a:last-child { border-bottom: none; }
.hero-topic-links a:hover {
  color: var(--color-primary);
  padding-left: 0.3rem;
}
.hero-topic-links a span {
  font-size: 0.8rem;
  opacity: 0.5;
  transition: opacity var(--transition), transform var(--transition);
}
.hero-topic-links a:hover span {
  opacity: 1;
  transform: translateX(3px);
}

/* Hero empty state */
.hero-empty {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  padding: clamp(2rem, 6vw, 4rem) 0;
  border-bottom: 1px solid var(--color-border);
}
@media (min-width: 768px) {
  .hero-empty { grid-template-columns: 1fr 1fr; }
}
.hero-empty-copy { max-width: 38rem; }
.hero-empty-copy .eyebrow { margin-bottom: 0.5rem; display: block; }
.hero-empty h1 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.05;
  margin: 0.45rem 0 1rem;
  color: var(--color-dark);
}
.hero-empty p { color: var(--color-gray); max-width: 48ch; }
.hero-empty .featured-read-more { margin-top: 1.25rem; }
.hero-empty-art {
  min-height: 300px;
  background: var(--color-bg-alt);
  overflow: hidden;
}
.hero-empty-art img { width: 100%; height: 100%; object-fit: cover; }

/* ===========================
   CONTENT + SIDEBAR LAYOUT
   =========================== */
.content-sidebar-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 1024px) {
  .content-sidebar-layout {
    grid-template-columns: 1fr 300px;
    align-items: start;
  }
}

/* ===========================
   ARTICLE CARDS
   =========================== */
.article-card {
  display: flex;
  flex-direction: column;
}
.card-image {
  display: block;
  overflow: hidden;
  background: var(--color-bg-alt);
  aspect-ratio: 3/2;
}
.card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}
.article-card:hover .card-image img { transform: scale(1.04); }
.card-body {
  padding: 0.75rem 0 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.card-title {
  font-family: var(--font-serif);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  color: var(--color-dark);
  margin-top: 0.25rem;
}
.card-title a { color: var(--color-dark); }
.card-title a:hover { color: var(--color-primary); }
.card-excerpt {
  font-size: var(--font-size-sm);
  color: var(--color-gray);
  line-height: var(--line-height-normal);
  margin-top: 0.35rem;
}
.post-meta {
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
  margin-top: 0.4rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
}
.post-meta .meta-sep { color: var(--color-border); }
.time-ago time { color: var(--color-light-gray); }

/* ===========================
   CATEGORY LABEL BADGE
   =========================== */
.cat-label {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 0.2rem;
}
.cat-label a { color: var(--color-gold); }
.cat-label a:hover { color: var(--color-dark); }

/* Category-specific colors */
.cat-news    .cat-label a, .cat-news    a.cat-label { color: #E53935; }
.cat-politics .cat-label a, .cat-politics a.cat-label { color: #1976D2; }
.cat-business .cat-label a, .cat-business a.cat-label { color: #2E7D32; }
.cat-technology .cat-label a, .cat-technology a.cat-label { color: #6A1B9A; }
.cat-opinion  .cat-label a, .cat-opinion  a.cat-label { color: var(--color-primary); }

/* ===========================
   EDITORIAL INTRO SECTION
   =========================== */
.editorial-intro {
  padding: 2rem 0;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 2rem;
}
.editorial-intro .eyebrow { display: block; margin-bottom: 0.4rem; }
.editorial-intro h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.8vw, 2.2rem);
  max-width: 28ch;
  margin: 0.25rem 0 0.5rem;
  line-height: 1.15;
}
.editorial-intro p { color: var(--color-gray); font-size: var(--font-size-md); }

/* ===========================
   HOMEPAGE NEWS SECTIONS
   =========================== */
.news-section {
  margin-bottom: 2.25rem;
  padding-bottom: 2.25rem;
  border-bottom: 1px solid var(--color-border);
}
.news-section:last-child { border-bottom: none; }

.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  position: relative;
}
.section-header::before {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 3.5rem;
  height: 2px;
  background: var(--color-gold);
}
.section-title {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-extrabold);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-dark);
  line-height: 1;
}
.section-title a { color: var(--color-dark); }
.section-title a:hover { color: var(--color-primary); }
.section-more-link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  white-space: nowrap;
  letter-spacing: 0.03em;
  transition: color var(--transition);
}
.section-more-link:hover { color: var(--color-gold); }

/* Section main + side layout */
.section-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 600px) {
  .section-layout { grid-template-columns: 3fr 2fr; }
}

.section-main.article-card .card-image { aspect-ratio: 16/10; }
.section-main.article-card .card-title { font-size: var(--font-size-xl); }
.section-main-title { font-size: clamp(1.1rem, 2.2vw, 1.45rem) !important; }

.section-side {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-left: 1px solid var(--color-border);
  padding-left: 1.25rem;
}
.side-list-card {
  flex-direction: row;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
}
.side-list-card:first-child { padding-top: 0; }
.side-list-card:last-child { border-bottom: none; padding-bottom: 0; }
.side-list-card .card-image {
  width: 86px;
  flex-shrink: 0;
  aspect-ratio: 4/3;
}
.side-list-card .card-body { padding: 0; }
.side-list-card .card-title { font-size: 0.875rem; }

/* Empty section (no posts yet) */
.section-ready {
  padding: 1rem 1.25rem;
  border-left: 3px solid var(--color-gold);
  background: var(--color-bg-alt);
}
.section-ready p, .sidebar-empty { color: #333333; font-size: var(--font-size-sm); font-weight: 500; }
.topic-links { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; margin-top: 0.8rem; }
.topic-links a {
  font-size: var(--font-size-xs);
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.02em;
}
.topic-links a:hover { color: var(--color-gold); }

/* ===========================
   SIDEBAR WIDGETS
   =========================== */
.sidebar {
  min-width: 0;
}
@media (min-width: 1024px) {
  .sidebar {
    position: sticky;
    top: 80px;
    align-self: start;
  }
}

.widget {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-border);
}
.widget:last-child { border-bottom: none; margin-bottom: 0; }

.widget-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-dark);
  margin-bottom: 1rem;
  padding-bottom: 0.45rem;
  border-bottom: 2px solid var(--color-dark);
  position: relative;
}
.widget-title::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 2rem;
  height: 2px;
  background: var(--color-gold);
}

/* Trending */
.trending-list { list-style: none; display: flex; flex-direction: column; gap: 0; }
.trending-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--color-border);
}
.trending-item:last-child { border-bottom: none; }
.trending-num {
  font-size: 1.25rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-border);
  line-height: 1.1;
  min-width: 1.6rem;
  font-family: var(--font-serif);
  flex-shrink: 0;
}
.trending-link {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark);
  line-height: var(--line-height-snug);
}
.trending-link:hover { color: var(--color-primary); }

/* Breaking widget */
.breaking-widget-title { display: flex; align-items: center; gap: 0.5rem; }
.live-dot-sm {
  width: 7px;
  height: 7px;
  background: var(--color-live);
  border-radius: 50%;
  flex-shrink: 0;
  animation: pulse 1.5s infinite;
}
.breaking-list { list-style: none; display: flex; flex-direction: column; gap: 0; }
.breaking-list li {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--color-border);
}
.breaking-list li:last-child { border-bottom: none; }
.breaking-list a {
  font-size: var(--font-size-sm);
  color: var(--color-dark-alt);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-snug);
}
.breaking-list a:hover { color: var(--color-primary); }

/* Newsletter widget */
.widget-newsletter p {
  font-size: var(--font-size-sm);
  color: var(--color-gray);
  margin-bottom: 0.875rem;
  line-height: var(--line-height-normal);
}
.newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.newsletter-form input[type="email"] {
  width: 100%;
  padding: 0.6rem 0.875rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  outline: none;
  transition: border-color var(--transition);
  color: var(--color-dark);
}
.newsletter-form input[type="email"]:focus { border-color: var(--color-primary); }
.newsletter-form button {
  padding: 0.6rem 1rem;
  background: var(--color-dark);
  color: #fff;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: var(--radius-md);
  transition: background var(--transition);
}
.newsletter-form button:hover { background: var(--color-primary); }
.nl-message {
  font-size: var(--font-size-xs);
  padding: 0.4rem 0;
}
.nl-message.success { color: #2E7D32; }
.nl-message.error   { color: #C62828; }

/* Categories widget */
.cat-list { list-style: none; display: flex; flex-direction: column; gap: 0; }
.cat-list li {
  border-bottom: 1px solid var(--color-border);
}
.cat-list li:last-child { border-bottom: none; }
.cat-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-dark-alt);
  transition: color var(--transition), padding-left var(--transition);
}
.cat-list a:hover {
  color: var(--color-primary);
  padding-left: 0.25rem;
}
.cat-list a span { font-size: 0.7rem; opacity: 0.45; }

/* ===========================
   HOMEPAGE — NEWSLETTER SECTION
   =========================== */
.homepage-newsletter-section {
  background: var(--color-dark);
  border-radius: var(--radius-lg);
  margin: 0.5rem 0 0;
  padding: 2.25rem 2rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.newsletter-section-icon {
  width: 52px;
  height: 52px;
  background: var(--color-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-dark);
}
.newsletter-section-copy {
  flex: 1;
  min-width: 200px;
}
.newsletter-section-copy h3 {
  color: #fff;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  margin-bottom: 0.2rem;
}
.newsletter-section-copy p {
  color: #aaa;
  font-size: var(--font-size-sm);
  margin-bottom: 0;
}
.newsletter-section-form {
  display: flex;
  gap: 0;
  max-width: 420px;
  width: 100%;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: var(--radius-md);
  overflow: hidden;
  flex-shrink: 0;
}
.newsletter-section-form input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 0.7rem 1rem;
  color: #fff;
  font-size: var(--font-size-sm);
  min-width: 0;
}
.newsletter-section-form input::placeholder { color: rgba(255,255,255,0.4); }
.newsletter-section-form button {
  padding: 0.7rem 1.25rem;
  background: var(--color-primary);
  color: #fff;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background var(--transition);
  flex-shrink: 0;
}
.newsletter-section-form button:hover { background: #0857a4; }

/* ===========================
   ARCHIVE / CATEGORY PAGES
   =========================== */
.archive-header {
  border-bottom: 2px solid var(--color-dark);
  padding-bottom: 1rem;
  margin-bottom: 1.75rem;
  position: relative;
}
.archive-header::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 4rem;
  height: 2px;
  background: var(--color-gold);
}
.archive-eyebrow {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 0.3rem;
}
.archive-title {
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 4vw, 2.85rem);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-dark);
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.archive-description {
  font-size: var(--font-size-base);
  color: var(--color-gray);
  max-width: 60ch;
  margin-top: 0.5rem;
  line-height: var(--line-height-relaxed);
}

/* Sub-category nav */
.sub-category-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.subnav-link {
  display: inline-block;
  padding: 0.4rem 0.9rem;
  border: 1.5px solid var(--color-border);
  border-radius: 50px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray);
  letter-spacing: 0.03em;
  transition: all var(--transition);
}
.subnav-link:hover, .subnav-link.current {
  background: var(--color-dark);
  border-color: var(--color-dark);
  color: #fff;
}

/* Archive grid */
.archive-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) { .archive-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .archive-grid { grid-template-columns: repeat(3, 1fr); } }

/* Archive hero card */
.archive-hero-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-border);
}
@media (min-width: 700px) {
  .archive-hero-card {
    grid-template-columns: 1.5fr 1fr;
    align-items: start;
  }
}
.archive-hero-card .card-image { aspect-ratio: 16/10; }
.archive-hero-title { font-size: clamp(1.3rem, 2.5vw, 2rem) !important; }

/* Load more */
.load-more-wrap {
  text-align: center;
  padding: 1.5rem 0;
}
.load-more-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 2rem;
  border: 2px solid var(--color-dark);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-dark);
  transition: all var(--transition);
}
.load-more-btn:hover {
  background: var(--color-dark);
  color: #fff;
}
.load-more-btn:disabled { opacity: 0.5; cursor: default; }

/* Pagination */
.pagination { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 1.5rem 0; align-items: center; }
.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray);
  transition: all var(--transition);
}
.page-numbers:hover { border-color: var(--color-dark); color: var(--color-dark); }
.page-numbers.current { background: var(--color-dark); border-color: var(--color-dark); color: #fff; }
.page-numbers.dots { border-color: transparent; color: var(--color-light-gray); }

/* ===========================
   SINGLE POST
   =========================== */
.single-article-wrapper { padding-top: 1.5rem; padding-bottom: 3rem; }

.article-main {
  max-width: 100%;
}

.breadcrumbs {
  margin-bottom: 1.5rem;
}
.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
}
.breadcrumbs a { color: var(--color-light-gray); }
.breadcrumbs a:hover { color: var(--color-primary); }
.bc-sep { color: var(--color-border); margin: 0 0.1rem; }

/* Article Header */
.article-header {
  margin-bottom: 1.5rem;
}
.article-labels {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.breaking-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--color-breaking);
  color: #fff;
  font-size: 0.6rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-sm);
}
.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--color-live);
  color: #fff;
  font-size: 0.6rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-sm);
}
.live-badge .live-dot {
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
  animation: pulse 1.5s infinite;
}

.article-title {
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 4.5vw, 3.25rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.1;
  color: var(--color-dark);
  letter-spacing: -0.025em;
  margin-bottom: 0.75rem;
}
.article-standfirst {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: var(--color-dark-alt);
  line-height: var(--line-height-relaxed);
  margin-bottom: 1.1rem;
  font-weight: var(--font-weight-normal);
  border-left: 3px solid var(--color-gold);
  padding-left: 1rem;
}

.article-byline {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--color-border);
}
.author-avatar img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--color-border);
}
.author-name {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark);
}
.author-name a { color: var(--color-primary); }
.author-name a:hover { color: var(--color-gold); }
.publish-info {
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
  margin-top: 0.2rem;
}

/* Social Share */
.social-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 1.5rem;
}
.social-share--bottom { margin-top: 2rem; }
.share-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-light-gray);
  margin-right: 0.25rem;
}
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.3rem 0.7rem;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: #fff;
  white-space: nowrap;
  transition: opacity var(--transition), transform var(--transition);
}
.share-btn:hover { opacity: 0.85; color: #fff; transform: translateY(-1px); }
.share-fb   { background: #1877F2; }
.share-tw   { background: #000; }
.share-wa   { background: #25D366; }
.share-email { background: var(--color-gray); }

/* Article Hero Image */
.article-hero-image {
  margin-bottom: 1.75rem;
  overflow: hidden;
  border-radius: var(--radius-sm);
}
.article-hero-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}
.image-caption {
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
  padding: 0.5rem 0;
  font-style: italic;
  border-bottom: 1px solid var(--color-border);
}

/* Article Video */
.article-video-embed { margin-bottom: 1.75rem; }
.video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: #000;
}
.video-wrapper iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
}

/* Article Body */
.article-body.entry-content {
  font-size: var(--font-size-md);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-alt);
  max-width: none;
}
.article-body.entry-content img,
.page-content.entry-content img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.article-body.entry-content video,
.page-content.entry-content video,
.article-body.entry-content iframe,
.page-content.entry-content iframe {
  max-width: 100%;
  height: auto;
}
.article-body.entry-content .alignwide,
.article-body.entry-content .alignfull,
.page-content.entry-content .alignwide,
.page-content.entry-content .alignfull {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Sticky article sharing */
.sticky-share-rail {
  position: fixed;
  top: 50%;
  left: max(1rem, calc((100vw - 1320px) / 2 - 4.5rem));
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .45rem;
  transform: translateY(-50%);
}
.sticky-share-label {
  color: var(--color-light-gray);
  font-size: .62rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: .12em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  margin-bottom: .2rem;
}
.sticky-share-btn {
  width: 2.35rem;
  height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 3px 12px rgba(0,0,0,.14);
  transition: transform var(--transition), opacity var(--transition);
}
.sticky-share-btn:hover {
  color: #fff;
  opacity: .88;
  transform: translateY(-2px);
}
.sticky-share-fb { background: #1877F2; }
.sticky-share-tw { background: #111; }
.sticky-share-wa { background: #25D366; }
.sticky-share-email { background: var(--color-gray); }

@media (max-width: 1180px) and (min-width: 768px) {
  .main-navigation ul.menu > li > a {
    padding-left: .65rem;
    padding-right: .65rem;
  }
  .sticky-share-rail {
    left: .65rem;
  }
}

@media (max-width: 767px) {
  .sticky-share-rail {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    min-height: 3.75rem;
    padding: .55rem 1rem calc(.55rem + env(safe-area-inset-bottom));
    flex-direction: row;
    justify-content: center;
    gap: .65rem;
    background: rgba(17, 17, 17, .96);
    border-top: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 -5px 20px rgba(0,0,0,.16);
    transform: none;
  }
  .sticky-share-label {
    writing-mode: horizontal-tb;
    transform: none;
    margin: 0 .2rem 0 0;
    color: #d2d2d2;
  }
  .sticky-share-btn {
    width: 2.15rem;
    height: 2.15rem;
  }
  .single-article-wrapper {
    padding-bottom: 5.5rem;
  }
  .article-hero-image {
    border-radius: 0;
    margin-left: calc(var(--container-padding) * -1);
    margin-right: calc(var(--container-padding) * -1);
  }
  .article-hero-image img {
    width: 100%;
  }
}

/* Final background override for Awards detail pages. */
.single-recognition,
.single-award {
  padding-bottom: clamp(2.5rem, 7vw, 5rem) !important;
  background:
    linear-gradient(180deg, #f7f7f7 0%, #fff 34rem) !important;
}

/* ── Global Awards detail pages: same editorial effects as Pages ─────────── */
.single-recognition,
.single-award {
  padding-bottom: clamp(2.5rem, 7vw, 5rem);
  background:
    linear-gradient(180deg, #f7f7f7 0%, #fff 34rem);
}

.single-recognition .container,
.single-award .container {
  padding-top: clamp(1rem, 3vw, 2rem);
}

.single-recognition .recognition-entry,
.single-award .recognition-entry {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid var(--color-border);
  border-top: 4px solid var(--color-dark);
  background: #fff;
  box-shadow: 0 8px 28px rgba(17, 17, 17, 0.07);
}

.single-recognition .recognition-entry-header,
.single-award .recognition-entry-header {
  position: relative;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding: 0 0 1.1rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}

.single-recognition .recognition-entry-header::before,
.single-award .recognition-entry-header::before {
  display: block;
  width: 3.25rem;
  height: 0.22rem;
  margin-bottom: 0.8rem;
  background: var(--color-gold);
  content: "";
}

.single-recognition .recognition-entry-header h1,
.single-award .recognition-entry-header h1 {
  margin: 0 0 1rem;
  color: var(--color-dark);
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 5vw, 3rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.single-recognition .recognition-entry-subtitle,
.single-award .recognition-entry-subtitle {
  max-width: 680px;
  margin: 0 0 1.1rem;
  color: var(--color-dark-alt);
  font-size: var(--font-size-lg);
  line-height: 1.65;
}

.single-recognition .recognition-entry-meta,
.single-award .recognition-entry-meta {
  justify-content: flex-start;
}

.single-recognition .recognition-entry-image,
.single-award .recognition-entry-image {
  margin-bottom: 1.75rem;
  overflow: hidden;
  border-radius: var(--radius-sm);
}

.single-recognition .recognition-entry-image img,
.single-award .recognition-entry-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.single-recognition .recognition-entry-content,
.single-award .recognition-entry-content {
  max-width: 820px;
  margin: 0 auto;
  color: var(--color-dark-alt);
  font-size: var(--font-size-md);
  line-height: 1.75;
}

.single-recognition .recognition-entry-content > p,
.single-award .recognition-entry-content > p {
  margin-bottom: 1.35rem;
}

.single-recognition .recognition-entry-content h2,
.single-recognition .recognition-entry-content h3,
.single-recognition .recognition-entry-content h4,
.single-award .recognition-entry-content h2,
.single-award .recognition-entry-content h3,
.single-award .recognition-entry-content h4 {
  margin: 2rem 0 0.65rem;
  color: var(--color-dark);
  line-height: 1.25;
}

.single-recognition .recognition-entry-content h2,
.single-award .recognition-entry-content h2 {
  padding: 0 0 0.55rem 0.85rem;
  border-bottom: 1px solid var(--color-border);
  border-left: 3px solid var(--color-gold);
  font-family: var(--font-serif);
  font-size: var(--font-size-2xl);
}

.single-recognition .recognition-entry-content h3,
.single-award .recognition-entry-content h3 {
  color: var(--color-primary);
  font-size: var(--font-size-xl);
}

.single-recognition .recognition-entry-content img,
.single-award .recognition-entry-content img {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 1.5rem auto;
  border-radius: var(--radius-sm);
}

.single-recognition .recognition-entry-content blockquote,
.single-award .recognition-entry-content blockquote {
  margin: 1.75rem 0;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--color-gold);
  background: var(--color-bg-alt);
  color: var(--color-dark);
}

.single-recognition .recognition-entry-content a,
.single-award .recognition-entry-content a {
  color: var(--color-primary);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.single-recognition .recognition-entry-content a:hover,
.single-award .recognition-entry-content a:hover {
  color: var(--color-dark);
}

@media (max-width: 767px) {
  .single-recognition .recognition-entry,
  .single-award .recognition-entry {
    padding: 1rem;
    border-top-width: 3px;
    box-shadow: none;
  }

  .single-recognition .recognition-entry-header,
  .single-award .recognition-entry-header {
    margin-bottom: 1.35rem;
    padding-bottom: 1rem;
  }

  .single-recognition .recognition-entry-header h1,
  .single-award .recognition-entry-header h1 {
    font-size: 2rem;
  }

  .single-recognition .recognition-entry-content,
  .single-award .recognition-entry-content {
    font-size: var(--font-size-base);
  }

  .single-recognition .recognition-entry-content h2,
  .single-award .recognition-entry-content h2 {
    font-size: 1.35rem;
  }
}
.article-body h2, .article-body h3, .article-body h4 {
  font-family: var(--font-serif);
  color: var(--color-dark);
  margin: 1.75rem 0 0.75rem;
  line-height: 1.2;
}
.article-body h2 { font-size: var(--font-size-2xl); }
.article-body h3 { font-size: var(--font-size-xl); }
.article-body p { margin-bottom: 1.25rem; }
.article-body a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
.article-body a:hover { color: var(--color-gold); }
.article-body ul, .article-body ol {
  margin: 1.25rem 0;
  padding-left: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body blockquote {
  border-left: 4px solid var(--color-gold);
  padding: 1rem 1.5rem;
  margin: 1.75rem 0;
  background: var(--color-bg-alt);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-family: var(--font-serif);
  font-size: var(--font-size-lg);
  font-style: italic;
  color: var(--color-dark);
  line-height: var(--line-height-relaxed);
}
.article-body blockquote p { margin-bottom: 0; }
.article-body img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-sm);
  margin: 1.25rem 0;
  object-fit: contain;
}
.article-body figure { margin: 1.5rem 0; }
.article-body figcaption { font-size: var(--font-size-xs); color: var(--color-light-gray); margin-top: 0.4rem; }
.article-body pre {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1rem;
  overflow-x: auto;
  font-size: var(--font-size-sm);
  margin: 1.25rem 0;
}
.article-body table {
  margin: 1.25rem 0;
  border: 1px solid var(--color-border);
  font-size: var(--font-size-sm);
}
.article-body th, .article-body td {
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--color-border);
  text-align: left;
}
.article-body th { background: var(--color-bg-alt); font-weight: var(--font-weight-bold); }
.article-body hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 2rem 0;
}

/* Page Links (multi-page posts) */
.page-links { margin: 1.5rem 0; font-size: var(--font-size-sm); }
.page-links a { color: var(--color-primary); margin: 0 0.25rem; }

/* Article Tags */
.article-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-border);
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.tag-pill {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: 50px;
  font-size: var(--font-size-xs);
  color: var(--color-gray);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.02em;
  text-transform: none;
  transition: all var(--transition);
}
.tag-pill:hover { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }

/* Author Box */
.author-box {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  margin-top: 2rem;
  padding: 1.5rem;
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-gold);
}
.author-box-avatar {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50% !important;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--color-border);
}
.author-box-name {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-dark);
  display: block;
  margin-bottom: 0.25rem;
}
.author-box-name:hover { color: var(--color-primary); }
.author-box-bio {
  font-size: var(--font-size-sm);
  color: var(--color-gray);
  line-height: var(--line-height-relaxed);
  margin-bottom: 0.5rem;
}
.author-box-more {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.author-box-more:hover { color: var(--color-gold); }

/* Post Navigation */
.post-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
}
.nav-post { display: flex; flex-direction: column; gap: 0.25rem; }
.nav-prev { align-items: flex-start; }
.nav-next { align-items: flex-end; text-align: right; }
.nav-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-light-gray);
}
.nav-post a {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark);
  line-height: var(--line-height-snug);
}
.nav-post a:hover { color: var(--color-primary); }

/* Related Posts */
.related-posts { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.related-posts .section-title { margin-bottom: 1.25rem; }
.related-posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1.25rem;
}
.related-posts-grid .card-image { aspect-ratio: 3/2; }

/* Comments */
.comments-area {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}
.comments-area h2 {
  font-size: var(--font-size-xl);
  margin-bottom: 1.5rem;
  font-family: var(--font-serif);
}
.comment-list { list-style: none; }
.comment-body {
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-border);
}
.comment-author cite { font-weight: var(--font-weight-bold); font-style: normal; }
.comment-metadata { font-size: var(--font-size-xs); color: var(--color-light-gray); }
.comment-content p { font-size: var(--font-size-sm); margin-top: 0.5rem; }
.comment-reply-link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comment-form { margin-top: 1.5rem; }
.comment-form label { display: block; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); margin-bottom: 0.35rem; }
.comment-form input, .comment-form textarea {
  width: 100%;
  padding: 0.6rem 0.875rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  outline: none;
  transition: border-color var(--transition);
  margin-bottom: 0.875rem;
}
.comment-form input:focus, .comment-form textarea:focus { border-color: var(--color-primary); }
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form .submit {
  display: inline-flex;
  align-items: center;
  padding: 0.65rem 1.5rem;
  background: var(--color-dark);
  color: #fff;
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: background var(--transition);
}
.comment-form .submit:hover { background: var(--color-primary); }

/* ===========================
   SINGLE PAGE
   =========================== */
.page-main { max-width: 860px; }
.entry-title {
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-dark);
  letter-spacing: -0.02em;
  margin-bottom: 1.5rem;
  line-height: 1.1;
}

/* ===========================
   SEARCH RESULTS
   =========================== */
.search-results-header { margin-bottom: 1.5rem; }
.search-results-title { font-family: var(--font-serif); font-size: var(--font-size-2xl); color: var(--color-dark); }
.search-results-count { font-size: var(--font-size-sm); color: var(--color-gray); margin-top: 0.25rem; }
.search-form-wrap { margin-bottom: 1.75rem; }
.search-form-wrap form {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  max-width: 520px;
}
.search-form-wrap input {
  flex: 1;
  padding: 0.7rem 1rem;
  border: none;
  outline: none;
  font-size: var(--font-size-base);
}
.search-form-wrap button {
  padding: 0.7rem 1.1rem;
  background: var(--color-dark);
  color: #fff;
  transition: background var(--transition);
}
.search-form-wrap button:hover { background: var(--color-primary); }
.no-posts { color: var(--color-gray); padding: 2rem 0; }

/* ===========================
   404 PAGE
   =========================== */
.not-found-wrapper {
  text-align: center;
  padding: 4rem 1rem;
}
.not-found-code {
  font-family: var(--font-serif);
  font-size: 7rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-border);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.not-found-title {
  font-size: var(--font-size-2xl);
  color: var(--color-dark);
  margin-bottom: 0.75rem;
}
.not-found-message { color: var(--color-gray); max-width: 42ch; margin: 0 auto 1.5rem; }

/* ===========================
   AUTHOR PAGE
   =========================== */
.author-profile {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1.5rem 0 2rem;
  border-bottom: 2px solid var(--color-dark);
  margin-bottom: 2rem;
  position: relative;
}
.author-profile::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 3rem;
  height: 2px;
  background: var(--color-gold);
}
.author-profile img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--color-border);
}
.author-profile-name {
  font-family: var(--font-serif);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-dark);
}
.author-profile-bio { font-size: var(--font-size-sm); color: var(--color-gray); line-height: var(--line-height-relaxed); margin-top: 0.5rem; }

/* ===========================
   MAGAZINE PAGE
   =========================== */
.magazine-hero { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--color-border); }
.magazine-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (min-width: 768px) { .magazine-grid { grid-template-columns: repeat(3, 1fr); } }
.magazine-grid .card-image { aspect-ratio: 3/2; }

/* ===========================
   VIDEO PAGE
   =========================== */
.video-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
@media (min-width: 768px) { .video-grid { grid-template-columns: repeat(3, 1fr); } }
.video-card .card-image {
  aspect-ratio: 16/9;
  overflow: hidden;
  position: relative;
}
.video-card .card-title { font-size: var(--font-size-sm); }
.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  background: rgba(0,0,0,0.65);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.play-icon::after {
  content: '';
  border: 0px solid transparent;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 15px solid #fff;
  margin-left: 3px;
}

/* ===========================
   LIVE POST PAGE
   =========================== */
.live-page-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.live-indicator {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: var(--color-live);
  color: #fff;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-sm);
}
.live-updates-list { display: flex; flex-direction: column; gap: 0; }
.live-update-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-border);
}
.live-update-time { font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); color: var(--color-light-gray); }
.live-update-text { font-size: var(--font-size-sm); line-height: var(--line-height-relaxed); }

/* ===========================
   BACK TO TOP
   =========================== */
.back-to-top {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 42px;
  height: 42px;
  background: var(--color-dark);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition), transform var(--transition), background var(--transition);
  z-index: 900;
  box-shadow: var(--shadow-md);
}
.back-to-top.visible { opacity: 1; pointer-events: auto; }
.back-to-top:hover { background: var(--color-primary); transform: translateY(-2px); }

/* ===========================
   EYEBROW / MISC HELPERS
   =========================== */
.eyebrow {
  color: var(--color-gold);
  font-size: 0.65rem;
  font-weight: var(--font-weight-extrabold);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.homepage-content { min-width: 0; }

/* ===========================
   SITE FOOTER — Premium Dark
   =========================== */
.site-footer {
  background: var(--color-dark);
  color: #aaa;
  margin-top: 0.5rem;
}

/* Footer Top: Logo + Tagline + Social */
.footer-top {
  padding: 2.5rem 0 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer-top .container {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.footer-logo-area {
  max-width: 360px;
}
.footer-logo-img {
  height: 44px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.9;
  margin-bottom: 0.875rem;
}
.footer-logo-link:hover .footer-logo-img { opacity: 1; }
.footer-site-name {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: var(--font-weight-bold);
  color: #fff;
  display: block;
  margin-bottom: 0.75rem;
}
.footer-tagline {
  font-size: var(--font-size-sm);
  color: #888;
  line-height: var(--line-height-relaxed);
  margin-bottom: 0;
  max-width: 38ch;
}

.footer-social {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: flex-start;
  padding-top: 0.25rem;
}
.social-icon-btn {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 50%;
  color: #aaa;
  transition: all var(--transition);
}
.social-icon-btn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-dark);
}
.social-icon-btn svg { width: 18px; height: 18px; }

/* Footer Nav Grid (4 columns) */
.footer-nav-area {
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer-nav-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 2rem;
}
@media (min-width: 640px) {
  .footer-nav-grid { grid-template-columns: repeat(4, 1fr); }
}
.footer-col-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 0.875rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  position: relative;
}
.footer-col-title::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 1.75rem;
  height: 1px;
  background: var(--color-gold);
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.1rem; }
.footer-col ul li a {
  display: block;
  padding: 0.3rem 0;
  font-size: var(--font-size-sm);
  color: #888;
  transition: color var(--transition), padding-left var(--transition);
}
.footer-col ul li a:hover { color: #fff; padding-left: 0.25rem; }

/* Footer Links Bar */
.footer-links-bar {
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.footer-links-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 0;
  list-style: none;
}
.footer-links-nav li { display: flex; align-items: center; }
.footer-links-nav li::after {
  content: '·';
  color: rgba(255,255,255,0.2);
  margin: 0 0.5rem;
}
.footer-links-nav li:last-child::after { display: none; }
.footer-links-nav a {
  font-size: var(--font-size-xs);
  color: #777;
  transition: color var(--transition);
}
.footer-links-nav a:hover { color: #ccc; }

/* Footer Bottom: Copyright */
.footer-bottom {
  padding: 1.25rem 0;
}
.footer-bottom p {
  font-size: var(--font-size-xs);
  color: #666;
  text-align: center;
  margin-bottom: 0;
}

/* ===========================
   MISCELLANEOUS
   =========================== */
/* Horizontal scroll rows */
.horizontal-scroll-row {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.5rem;
}
.horizontal-scroll-row::-webkit-scrollbar { display: none; }
.horizontal-scroll-row > * { flex-shrink: 0; scroll-snap-align: start; }

/* Scroll nav buttons */
.scroll-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--color-border);
  border-radius: 50%;
  color: var(--color-gray);
  transition: all var(--transition);
}
.scroll-btn:hover { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }

/* ===========================
   RESPONSIVE — TABLET
   =========================== */
@media (min-width: 640px) {
  .header-inner { flex-wrap: nowrap; }
  .header-left { flex-shrink: 0; }
  .header-center { flex: 1; min-width: 0; }
  .header-right { flex-shrink: 0; white-space: nowrap; }
}

/* ===========================
   RESPONSIVE — MOBILE
   =========================== */
@media (max-width: 1023px) {
  /* Stack content-sidebar on tablet */
  .content-sidebar-layout {
    grid-template-columns: 1fr;
  }
  .sidebar { position: static; }
  .hero-rail { position: static; }
}

@media (max-width: 767px) {
  /* Stack featured lead */
  .featured-lead {
    grid-template-columns: 1fr;
  }
  .featured-copy { padding: 1rem 0 0; order: 2; }
  .featured-image { order: 1; }

  /* Support grid: 2 col on small */
  .featured-support-grid { grid-template-columns: 1fr; }
  .featured-support-card { grid-template-columns: 72px 1fr; }

  /* Section layout: stack */
  .section-layout { grid-template-columns: 1fr; }
  .section-side { border-left: none; padding-left: 0; border-top: 1px solid var(--color-border); padding-top: 1rem; }

  /* Archive hero: stack */
  .archive-hero-card { grid-template-columns: 1fr; }

  /* Post navigation: stack */
  .post-navigation { grid-template-columns: 1fr; }
  .nav-next { align-items: flex-start; text-align: left; }

  /* Related posts: single col */
  .related-posts-grid { grid-template-columns: 1fr; }

  /* Footer top: stack */
  .main-navigation { display: none !important; }

  /* Footer top: stack */
  .footer-top .container { flex-direction: column; gap: 1.25rem; }

  /* Newsletter section: stack */
  .homepage-newsletter-section { flex-direction: column; align-items: flex-start; padding: 1.5rem; }
  .newsletter-section-form { max-width: 100%; }

  /* Archive grid: single col */
  .archive-grid { grid-template-columns: 1fr; }

  /* Author box: stack */
  .author-box { flex-direction: column; gap: 0.75rem; }
}

@media (max-width: 479px) {
  /* Reduce header height */
  .header-inner { height: 54px; }
  .site-logo img { height: 36px; }

  /* Single col archive everywhere */
  .archive-grid { grid-template-columns: 1fr; }
  .magazine-grid { grid-template-columns: 1fr; }
  .video-grid { grid-template-columns: 1fr; }

  /* Hero empty: single col */
  .hero-empty { grid-template-columns: 1fr; }
  .hero-empty-art { display: none; }

  /* Footer links: wrapping */
  .footer-links-nav ul { gap: 0; }
  .footer-links-nav li { flex-wrap: wrap; }

  /* Hide Register button on very small screens */
  .btn-header-outline:first-child { display: none; }
}

/* ===========================
   PRINT STYLES
   =========================== */
@media print {
  .site-header, .main-navigation, .mobile-nav-drawer, .mobile-nav-overlay,
  .search-overlay, .back-to-top, .social-share, .related-posts,
  .sidebar, .site-footer, .breaking-news-bar { display: none !important; }

  body { font-size: 12pt; color: #000; background: #fff; }
  .article-title { font-size: 20pt; }
  .article-body { max-width: 100%; }
  a { color: #000; text-decoration: underline; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #666; }
}

/* =====================================================
   REDESIGN v2.4.0 — All overrides below take priority
   ===================================================== */

/* ── 1. Hide desktop nav bar on mobile ──────────────── */
@media (max-width: 767px) {
  .main-navigation {
    display: none !important;
  }
}

/* ── 2. Browse Topics — Compact Dropdown ──────────────── */
.browse-topics-wrap {
  position: relative;
  display: block;
}
.browse-topics-select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0.625rem 2.5rem 0.625rem 0.875rem;
  font-size: var(--font-size-sm);
  font-family: var(--font-primary);
  font-weight: var(--font-weight-medium);
  color: var(--color-dark-alt);
  cursor: pointer;
  transition: border-color var(--transition), box-shadow var(--transition);
  line-height: 1.4;
}
.browse-topics-select:hover {
  border-color: var(--color-primary);
}
.browse-topics-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(10,102,194,0.12);
}
.browse-topics-arrow {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--color-gray);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Hide old cat-list styles */
.cat-list { display: none !important; }

/* ── 3. Footer — New 4-Column Layout ──────────────────── */

/* Remove old footer-top */
.footer-top { display: none !important; }

/* New footer-main section */
.footer-main {
  padding: 2.75rem 0 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.09);
}

/* 4-column grid: Brand | News | Sections | More */
.footer-grid-4col {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: 2.25rem;
  align-items: start;
}
.footer-grid-4col > * {
  min-width: 0;
}

@media (max-width: 900px) {
  .footer-grid-4col {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
  }
}

@media (max-width: 540px) {
  .footer-grid-4col {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .footer-col-brand,
  .footer-col {
    width: 100%;
  }
}

/* ==========================================================================
   GLOBAL PEOPLE MAGAZINE — AWARDS & RECOGNITION
   A separate, image-led recognition layer inspired by premium award pages.
   ========================================================================== */
.recognition-hero {
  color: #fff;
  background:
    radial-gradient(circle at 78% 20%, rgba(201,162,39,.25), transparent 32%),
    radial-gradient(circle at 18% 80%, rgba(10,102,194,.2), transparent 34%),
    #12101b;
  padding: 3.25rem 0 4rem;
}
.recognition-hero .breadcrumbs,
.recognition-hero .breadcrumbs a { color: rgba(255,255,255,.68); }
.recognition-hero h1 {
  color: #fff;
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 400;
  letter-spacing: -.035em;
  max-width: 760px;
  margin: .75rem 0 1rem;
}
.recognition-hero > .container > p:last-child {
  color: rgba(255,255,255,.73);
  font-size: clamp(1rem, 2vw, 1.2rem);
  max-width: 640px;
  line-height: 1.7;
}
.recognition-kicker,
.recognition-eyebrow {
  color: var(--color-gold);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.3;
  margin: 0;
  text-transform: uppercase;
}
.recognition-content {
  padding-top: 3rem;
  padding-bottom: 4rem;
}
.recognition-category {
  margin-bottom: 3.5rem;
}
.recognition-section-heading {
  align-items: end;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.15rem;
  padding-bottom: .8rem;
}
.recognition-section-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  font-weight: 700;
  margin-top: .2rem;
}
.recognition-count {
  color: var(--color-gray);
  font-size: .76rem;
  padding-bottom: .18rem;
  white-space: nowrap;
}
.recognition-card-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.recognition-card {
  background: #fff;
  border: 1px solid #e5e2da;
  min-width: 0;
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
}
.recognition-card:hover {
  box-shadow: 0 12px 30px rgba(22,20,16,.13);
  transform: translateY(-3px);
}
.recognition-card-image {
  background:
    radial-gradient(circle at 50% 25%, rgba(201,162,39,.2), transparent 33%),
    linear-gradient(145deg, #201b2b, #08080b);
  display: block;
  height: 190px;
  overflow: hidden;
  position: relative;
}
.recognition-card-image img {
  height: 100%;
  object-fit: cover;
  opacity: .9;
  transition: transform .3s ease, opacity .3s ease;
  width: 100%;
}
.recognition-card:hover .recognition-card-image img {
  opacity: 1;
  transform: scale(1.04);
}
.recognition-card-placeholder {
  align-items: center;
  color: rgba(201,162,39,.92);
  display: flex;
  font-size: 3.5rem;
  height: 100%;
  justify-content: center;
}
.recognition-card-badge {
  align-items: center;
  background: var(--color-gold);
  border: 3px solid #fff;
  border-radius: 50%;
  bottom: .65rem;
  color: #fff;
  display: flex;
  font-size: .85rem;
  height: 30px;
  justify-content: center;
  position: absolute;
  right: .65rem;
  width: 30px;
}
.recognition-card-body {
  padding: .9rem .95rem 1.05rem;
}
.recognition-card-year {
  color: var(--color-gold);
  display: block;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  margin-bottom: .25rem;
  text-transform: uppercase;
}
.recognition-card-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .35rem;
}
.recognition-card-meta .recognition-card-year {
  margin-bottom: 0;
}
.recognition-card-status {
  border: 1px solid rgba(201,162,39,.45);
  border-radius: 999px;
  color: var(--color-gold);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  padding: .32rem .48rem;
  text-transform: uppercase;
}
.recognition-card-status--nominee,
.recognition-card-status--finalist {
  border-color: rgba(10,102,194,.32);
  color: var(--color-primary);
}
.recognition-card-status--honoree {
  border-color: rgba(55,125,74,.32);
  color: #377d4a;
}
.recognition-card h3 {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.25;
  margin: 0;
}
.recognition-card h3 a { color: var(--color-dark); }
.recognition-card h3 a:hover { color: var(--color-gold); }
.recognition-card-organization,
.recognition-card-subtitle {
  color: var(--color-gray);
  font-size: .76rem;
  line-height: 1.45;
  margin: .42rem 0 0;
}
.recognition-card-organization { color: var(--color-dark-alt); font-weight: 600; }
.recognition-empty {
  background: #fff;
  border: 1px solid var(--color-border);
  margin: 0 auto;
  max-width: 680px;
  padding: 4rem 2rem;
  text-align: center;
}
.recognition-empty-mark {
  color: var(--color-gold);
  display: block;
  font-size: 2.5rem;
  margin-bottom: .75rem;
}
.recognition-empty h2 { font-family: var(--font-serif); margin-bottom: .5rem; }
.recognition-empty p { color: var(--color-gray); }

.homepage-recognition-section {
  background:
    radial-gradient(circle at 82% 10%, rgba(201,162,39,.18), transparent 25%),
    #17141d;
  color: #fff;
  margin-top: 1rem;
  padding: 3.25rem 0 3.5rem;
}
.recognition-home-heading {
  align-items: end;
  border-bottom: 1px solid rgba(255,255,255,.15);
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-bottom: 1.15rem;
  padding-bottom: 1rem;
}
.recognition-home-heading h2 {
  color: #fff;
  font-family: var(--font-serif);
  font-size: clamp(1.7rem, 3.5vw, 2.7rem);
  font-weight: 400;
  margin: .2rem 0 .35rem;
}
.recognition-home-heading > div > p:last-child {
  color: rgba(255,255,255,.7);
  font-size: .9rem;
  margin: 0;
}
.recognition-view-all {
  border-bottom: 1px solid var(--color-gold);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  padding-bottom: .3rem;
  white-space: nowrap;
}
.recognition-view-all:hover { color: var(--color-gold); }
.homepage-recognition-row .recognition-card { background: #211e29; border-color: rgba(255,255,255,.13); }
.homepage-recognition-row .recognition-card h3 a,
.homepage-recognition-row .recognition-card-organization { color: #fff; }
.homepage-recognition-row .recognition-card-subtitle { color: rgba(255,255,255,.62); }
.homepage-recognition-row .recognition-card-status { color: #f6d86b; border-color: rgba(246,216,107,.45); }
.recognition-home-empty {
  align-items: center;
  border: 1px dashed rgba(255,255,255,.24);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 1.15rem 1.25rem;
}
.recognition-home-empty > span { color: var(--color-gold); font-size: 1.6rem; }
.recognition-home-empty p { color: rgba(255,255,255,.72); font-size: .9rem; margin: 0; }
.recognition-home-empty a { color: var(--color-gold); font-size: .78rem; font-weight: 700; white-space: nowrap; }

.single-recognition {
  background: #faf9f6;
  padding-bottom: 4rem;
}
.recognition-entry {
  margin: 0 auto;
  max-width: 960px;
}
.recognition-entry-header {
  padding: 1rem 0 2rem;
  text-align: center;
}
.recognition-entry-header h1 {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 6vw, 4.5rem);
  font-weight: 400;
  line-height: 1.08;
  margin: .7rem auto 1rem;
  max-width: 800px;
}
.recognition-entry-subtitle {
  color: var(--color-gray);
  font-size: 1.1rem;
  margin: 0 auto 1rem;
  max-width: 620px;
}
.recognition-entry-meta {
  align-items: center;
  color: var(--color-gold);
  display: flex;
  flex-wrap: wrap;
  font-size: .75rem;
  font-weight: 700;
  gap: .55rem 1rem;
  justify-content: center;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.recognition-entry-meta span + span::before { color: #aaa; content: '•'; margin-right: 1rem; }
.recognition-entry-image img { margin: 0 auto; width: 100%; }
.recognition-entry-content {
  margin: 2rem auto 0;
  max-width: 720px;
}

@media (max-width: 900px) {
  .recognition-card-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recognition-card-image { height: 175px; }
}
@media (max-width: 640px) {
  .recognition-hero { padding: 2rem 0 2.75rem; }
  .recognition-content { padding-top: 2rem; }
  .recognition-section-heading { align-items: start; flex-direction: column; gap: .35rem; }
  .recognition-card-row {
    display: flex;
    gap: .75rem;
    overflow-x: auto;
    padding: .15rem .1rem .65rem;
    scroll-snap-type: x proximity;
  }
  .recognition-card {
    flex: 0 0 min(76vw, 250px);
    scroll-snap-align: start;
  }
  .recognition-card-image { height: 175px; }
  .recognition-home-heading { align-items: start; flex-direction: column; gap: 1rem; }
  .recognition-home-empty { align-items: start; flex-wrap: wrap; }
  .recognition-home-empty a { margin-left: 2.6rem; }
}

/* Brand column */
.footer-col-brand {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Stamp logo — no circle filter, natural on dark bg */
.footer-stamp-logo {
  width: 110px;
  height: 110px;
  object-fit: contain;
  border-radius: 50%;
  background: transparent;
  display: block;
  margin-bottom: 1rem;
}
.footer-brand-wordmark {
  color: #fff;
  display: inline-flex;
  flex-direction: column;
  font-family: var(--font-serif);
  font-size: 1.65rem;
  letter-spacing: -.03em;
  line-height: .95;
  margin-bottom: 1.15rem;
  width: max-content;
}
.footer-brand-wordmark strong { font-weight: 700; }
.footer-brand-wordmark span {
  color: var(--color-gold);
  font-family: var(--font-primary);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .28em;
  margin-top: .38rem;
  text-transform: uppercase;
}

.footer-col-brand .footer-tagline {
  font-size: var(--font-size-sm);
  color: #c0c0c0;
  line-height: var(--line-height-relaxed);
  margin-bottom: 1rem;
}
.footer-email {
  align-items: center;
  color: #fff;
  display: inline-flex;
  font-size: .7rem;
  gap: .45rem;
  line-height: 1;
  margin: 0 0 1rem;
  text-decoration: none;
  vertical-align: middle;
  word-break: break-word;
}
.footer-email svg {
  display: block;
  flex: 0 0 14px;
  height: 14px;
  width: 14px;
}
.footer-email:hover {
  color: #c9a227;
}

.footer-col-brand .footer-social {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
}

/* Override footer-col styles for clearer white text */
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.05rem; }
.footer-col ul li a {
  display: block;
  padding: 0.3rem 0;
  font-size: var(--font-size-sm);
  color: #d0d0d0;
  transition: color var(--transition), padding-left var(--transition);
}
.footer-col ul li a:hover {
  color: #fff;
  padding-left: 0.3rem;
}

/* Footer col title — already white, ensure it stays */
.footer-col-title {
  color: #ffffff !important;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.875rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  position: relative;
}
.footer-col-title::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 1.75rem;
  height: 2px;
  background: var(--color-gold);
}

/* ── 4. Footer Links Bar — Centered ──────────────────── */
.footer-links-bar {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,0.07);
}
/* On wide screens the quick links sit in the open area marked in the
 * reference screenshot, while the copyright row remains at the bottom. */
@media (min-width: 901px) {
  .footer-links-bar {
    position: relative;
    top: -4rem;
  }
}
.footer-links-nav {
  text-align: center;
  max-width: 100%;
}
.footer-links-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
}
.footer-links-nav li { display: flex; align-items: center; }
.footer-links-nav li::after {
  content: '·';
  color: rgba(255,255,255,0.25);
  margin: 0 0.45rem;
}
.footer-links-nav li:last-child::after { display: none; }
.footer-links-nav a {
  font-size: var(--font-size-xs);
  color: #c0c0c0;
  transition: color var(--transition);
}
.footer-links-nav a:hover { color: #fff; }

/* ── 5. Footer Bottom — Centered copyright ──────────── */
.footer-bottom {
  padding: 1.25rem 0;
}
.footer-bottom .container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
}
.footer-bottom p {
  font-size: var(--font-size-xs);
  color: #b0b0b0;
  text-align: center;
  margin-bottom: 0;
}

.create-own-website-btn {
  display: inline-block;
  padding: 0.32rem 0.65rem;
  border: 1px solid #d6aa19;
  border-radius: 3px;
  background: #d6aa19;
  color: #111111 !important;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
  transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.create-own-website-btn:hover,
.create-own-website-btn:focus-visible {
  background: #f0c52e;
  border-color: #f0c52e;
  color: #111111 !important;
  transform: translateY(-1px);
}

/* ── 6. Mobile: ensure hamburger visible, no overflow── */
@media (max-width: 767px) {
  body { overflow-x: hidden; }
  .menu-toggle { display: flex !important; }
}
/* END REDESIGN v2.4.0 */

/* =====================================================
   REDESIGN v2.5.1 — Single Post Centered Layout +
   Full-Width 6-Grid Related Posts + Image Auto-Resize
   ===================================================== */

/* ── 1. Single post / page: hide sidebar, center content ── */
.single-article-wrapper .content-sidebar-layout {
  display: block !important;
  grid-template-columns: none;
}

/* Centered content wrapper — matches featured image width */
.single-post-center {
  position: relative;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* Article inside the centered wrapper */
.single-post-center .article-main {
  max-width: 100%;
  width: 100%;
}

/* ── 2. Featured image: exactly matches content width ── */
.single-post-center .article-hero-image {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border-radius: var(--radius-sm);
  margin-bottom: 1.75rem;
}

.single-post-center .article-hero-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ── 3. ALL images inside article body auto-resize ── */
.article-body.entry-content img,
.page-content.entry-content img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
  border-radius: var(--radius-sm);
}

/* WordPress alignment classes — responsive */
.article-body.entry-content .alignleft,
.page-content.entry-content .alignleft {
  float: left;
  margin: 0.5rem 1.5rem 1rem 0;
  max-width: 50%;
}
.article-body.entry-content .alignright,
.page-content.entry-content .alignright {
  float: right;
  margin: 0.5rem 0 1rem 1.5rem;
  max-width: 50%;
}
.article-body.entry-content .aligncenter,
.page-content.entry-content .aligncenter {
  display: block;
  margin: 1.25rem auto;
}
.article-body.entry-content .alignfull,
.page-content.entry-content .alignfull {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.article-body.entry-content figure,
.page-content.entry-content figure {
  max-width: 100%;
  margin: 1.5rem 0;
}
.article-body.entry-content figcaption,
.page-content.entry-content figcaption {
  font-size: var(--font-size-xs);
  color: var(--color-light-gray);
  margin-top: 0.4rem;
  font-style: italic;
  text-align: center;
}

/* Clearfix for float images */
.article-body.entry-content::after,
.page-content.entry-content::after {
  content: '';
  display: table;
  clear: both;
}

/* ── 4. Sticky Share Rail: perfectly positioned beside content ── */

/* Desktop: to the LEFT of the centered 800px content column */
.sticky-share-rail {
  position: fixed;
  top: 50%;
  /* calc: half viewport minus half content width (400px) minus rail width + small gap */
  left: max(0.75rem, calc(50% - 400px - 3.5rem));
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  transform: translateY(-50%);
  transition: opacity 0.3s ease;
}

/* Show/hide sticky rail based on scroll position — JS handles .is-hidden */
.sticky-share-rail.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.sticky-share-label {
  color: var(--color-light-gray);
  font-size: 0.62rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  margin-bottom: 0.2rem;
}

.sticky-share-btn {
  width: 2.35rem;
  height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 3px 12px rgba(0,0,0,0.18);
  transition: transform var(--transition), box-shadow var(--transition), opacity var(--transition);
}
.sticky-share-btn:hover {
  color: #fff;
  transform: translateY(-2px) scale(1.08);
  box-shadow: 0 6px 18px rgba(0,0,0,0.22);
}

.sticky-share-fb    { background: #1877F2; }
.sticky-share-tw    { background: #111; }
.sticky-share-wa    { background: #25D366; }
.sticky-share-email { background: #6b7280; }
.sticky-share-copy  { background: #9333ea; }

/* Tablet: small gap from edge */
@media (max-width: 1180px) and (min-width: 768px) {
  .sticky-share-rail {
    left: 0.65rem;
  }
}

/* Mobile: sticky bar at bottom of screen */
@media (max-width: 767px) {
  .sticky-share-rail {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    min-height: 3.75rem;
    padding: 0.55rem 1rem calc(0.55rem + env(safe-area-inset-bottom));
    flex-direction: row;
    justify-content: center;
    gap: 0.65rem;
    background: rgba(17, 17, 17, 0.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid rgba(255,255,255,0.14);
    box-shadow: 0 -5px 20px rgba(0,0,0,0.2);
    transform: none;
    border-radius: 0;
    z-index: 1000;
  }
  .sticky-share-label {
    writing-mode: horizontal-tb;
    transform: none;
    margin: 0 0.2rem 0 0;
    color: #d2d2d2;
    font-size: 0.65rem;
  }
  .sticky-share-btn {
    width: 2.2rem;
    height: 2.2rem;
  }
  .single-article-wrapper {
    padding-bottom: 5.5rem; /* space for fixed bottom bar */
  }
}

/* Mobile: featured image edge-to-edge */
@media (max-width: 767px) {
  .single-post-center {
    max-width: 100%;
  }
  .single-post-center .article-hero-image {
    border-radius: 0;
    margin-left: calc(var(--container-padding) * -1);
    margin-right: calc(var(--container-padding) * -1);
    width: calc(100% + var(--container-padding) * 2);
    max-width: none;
  }
  .article-body.entry-content .alignleft,
  .article-body.entry-content .alignright,
  .page-content.entry-content .alignleft,
  .page-content.entry-content .alignright {
    float: none;
    max-width: 100%;
    margin: 1rem auto;
    display: block;
  }
}

/* ── 5. RELATED POSTS — Full Width, Horizontal 6-Grid ── */

/* Remove the old .related-posts inside article on single.php (not rendered anymore) */
.single-post-center .related-posts {
  display: none !important;
}

/* Full-width section below the container */
.related-posts-section {
  width: 100%;
  background: #f7f7f7;
  border-top: 3px solid var(--color-primary, #0a66c2);
  padding: 2.5rem 0 3rem;
  margin-top: 2rem;
}

/* Section heading with decorative line */
.related-posts-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.related-posts-title {
  font-family: var(--font-serif);
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-dark);
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: -0.01em;
}
.related-posts-line {
  display: block;
  flex: 1;
  height: 2px;
  background: var(--color-border);
  border-radius: 1px;
}

/* 6-column grid */
.related-posts-grid-6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.25rem;
  align-items: start;
}

/* Individual related card */
.related-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition), transform var(--transition);
}
.related-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

/* Card image container */
.related-card-image {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--color-bg-alt);
  flex-shrink: 0;
}
.related-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.related-card:hover .related-card-image img {
  transform: scale(1.05);
}

/* Category badge overlaid on image */
.related-card-cat {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  background: var(--color-primary, #0a66c2);
  color: #fff;
  font-size: 0.6rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border-radius: var(--radius-sm);
  line-height: 1.3;
  z-index: 1;
}

/* Card body */
.related-card-body {
  padding: 0.7rem 0.8rem 0.85rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.related-card-title {
  font-family: var(--font-serif);
  font-size: clamp(0.78rem, 1.1vw, 0.92rem);
  font-weight: var(--font-weight-bold);
  line-height: 1.35;
  color: var(--color-dark);
  margin: 0;
  /* Clamp to 3 lines */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.related-card-title a {
  color: var(--color-dark);
  text-decoration: none;
}
.related-card-title a:hover {
  color: var(--color-primary, #0a66c2);
}

.related-card-body .time-ago time {
  font-size: 0.68rem;
  color: var(--color-light-gray);
}

/* ── Related Posts Responsive Breakpoints ── */

/* Large tablet: 4 columns */
@media (max-width: 1200px) {
  .related-posts-grid-6 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Tablet: 3 columns */
@media (max-width: 900px) {
  .related-posts-grid-6 {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}

/* Mobile landscape / small tablet: 2 columns */
@media (max-width: 600px) {
  .related-posts-grid-6 {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.85rem;
  }
  .related-posts-section {
    padding: 1.75rem 0 2rem;
  }
}

/* Small mobile: 1 column */
@media (max-width: 380px) {
  .related-posts-grid-6 {
    grid-template-columns: 1fr;
  }
}

/* ── 6. Copy link tooltip ── */
.js-copy-link { position: relative; cursor: pointer; }
.js-copy-link::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 0.6rem);
  top: 50%;
  transform: translateY(-50%);
  background: #111;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  padding: 0.25rem 0.55rem;
  border-radius: var(--radius-sm);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.js-copy-link.is-copied::after {
  opacity: 1;
}
@media (max-width: 767px) {
  .js-copy-link::after {
    display: none;
  }
}

/* ── 7. Print: hide related posts section ── */
@media print {
  .related-posts-section,
  .sticky-share-rail {
    display: none !important;
  }
}

/* END REDESIGN v2.5.1 */

/* =====================================================
   FIXES v2.5.2 — applied after all other rules so
   they correctly override base declarations.
   ===================================================== */

/* ── Mobile: back-to-top sits ABOVE the sticky share bar ── */
/* This block must come AFTER the base .back-to-top rule    */
@media (max-width: 767px) {
  .back-to-top {
    bottom: calc(3.75rem + 1rem + env(safe-area-inset-bottom)) !important;
    right: 1rem !important;
    z-index: 901 !important;
  }
}

/* ── All content images: full-width, auto-height ── */
/* !important ensures Gutenberg figure inline-style width
   and any plugin styles do not prevent responsive sizing. */
.entry-content img,
.article-body img,
.article-body.entry-content img,
.page-content.entry-content img,
.entry-content figure img,
.article-body figure img,
.entry-content .wp-block-image img,
.entry-content .wp-block-image > img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
}

/* Force Gutenberg figure/image wrappers to be full-width too */
.entry-content figure,
.article-body figure,
.entry-content .wp-block-image,
.article-body .wp-block-image {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* END FIXES v2.5.2 */

/* =====================================================
   NEW SECTIONS v2.5.2 — Editor's Picks + Weekend Reads
   ===================================================== */

/* ── Editor's Picks Section ───────────────────────── */
.editors-picks-section {
  background: #111;
  padding: 1.5rem 0 2rem;
  margin: 0 0 2.5rem;
}

.editors-picks-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.editors-picks-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  position: relative;
  padding-left: 0.75rem;
}
.editors-picks-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 100%;
  background: var(--color-gold);
  border-radius: 1px;
}

.editors-picks-chevron {
  font-size: 1.1rem;
  line-height: 1;
  color: var(--color-gold);
}

.editors-picks-nav {
  display: flex;
  gap: 0.4rem;
}
.editors-picks-nav .scroll-btn {
  border-color: rgba(255,255,255,0.2);
  color: #aaa;
}
.editors-picks-nav .scroll-btn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-dark);
}

/* Scroll container: enable horizontal scroll */
.editors-picks-scroll-container {
  overflow: visible;
}

.editors-picks-row {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.25rem;
}
.editors-picks-row::-webkit-scrollbar { display: none; }

/* Individual pick card */
.editors-pick-card {
  flex: 0 0 200px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}
@media (min-width: 640px)  { .editors-pick-card { flex-basis: 210px; } }
@media (min-width: 1024px) { .editors-pick-card { flex-basis: 220px; } }

.pick-image {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: #222;
  flex-shrink: 0;
}
.pick-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
  display: block;
}
.editors-pick-card:hover .pick-image img { transform: scale(1.05); }

/* Play overlay for video picks */
.pick-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 38px;
  height: 38px;
  background: rgba(0,0,0,0.65);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pick-play-icon::after {
  content: '';
  border: 0 solid transparent;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 12px solid #fff;
  margin-left: 2px;
}

.pick-body {
  padding: 0.65rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  flex: 1;
}

.pick-source {
  font-size: 0.6rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gold);
}

.pick-title {
  font-family: var(--font-serif);
  font-size: 0.9rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  color: #fff;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pick-title a { color: #fff; }
.pick-title a:hover { color: var(--color-gold); }

.pick-excerpt {
  font-size: 0.78rem;
  color: #999;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 0.1rem;
}

/* ── Weekend Reads / More News 2-column grid ─────── */
.weekend-reads-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media (max-width: 600px) {
  .weekend-reads-grid { grid-template-columns: 1fr; }
}

.weekend-card-image {
  aspect-ratio: 16/9;
}

/* ── Print: hide new sections ─────────────────────── */
@media print {
  .editors-picks-section { display: none !important; }
}

/* END NEW SECTIONS v2.5.2 */


/* =====================================================
   FIXES v2.5.3 — Title Centering · Text Readability
   · Sticky Rail Article-End Stop · Ultra Pro Polish
   ===================================================== */

/* ── 1. Single Post: Center article header ─────────────────────────── */
.single-post-center .article-header {
  text-align: center;
}
.single-post-center .article-labels {
  justify-content: center;
}
.single-post-center .article-title {
  text-align: center;
}
.single-post-center .article-standfirst {
  border-left: none;
  border-bottom: 2px solid var(--color-gold);
  padding-left: 0;
  padding-bottom: 1rem;
  text-align: center;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.single-post-center .article-byline {
  justify-content: center;
}
.single-post-center .article-meta-row {
  justify-content: center;
  flex-wrap: wrap;
}
.single-post-center .breadcrumbs {
  text-align: center; /* centered to match article header */
}

/* ── 2. Text readability: Section cards & "desk ready" placeholders ── */
.section-ready p,
.sidebar-empty {
  color: var(--color-dark-alt); /* was #666 — now darker for legibility */
  font-size: var(--font-size-sm);
}
.topic-links a {
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-xs);
}

/* Card title: ensure strong contrast everywhere */
.card-title,
.card-title a {
  color: var(--color-dark);
  font-weight: var(--font-weight-bold);
}
.card-excerpt {
  color: var(--color-dark-alt); /* was #666 — improved readability */
  line-height: var(--line-height-relaxed);
}
.post-meta,
.post-meta time {
  color: var(--color-gray);
  font-size: var(--font-size-xs);
}

/* Side list card titles — slightly larger for better scanability */
.side-list-card .card-title {
  font-size: 0.9rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.35;
}

/* Section header title — stronger contrast */
.section-title,
.section-title a {
  color: var(--color-dark);
  font-weight: var(--font-weight-extrabold);
}

/* Editorial intro paragraphs */
.editorial-intro p {
  color: var(--color-dark-alt); /* was #666 */
}

/* ── 3. Ultra Pro Visual Polish ────────────────────────────────────── */

/* Featured lead title — tighter and bolder */
.featured-title {
  font-weight: var(--font-weight-extrabold);
  letter-spacing: -0.02em;
}

/* Featured support cards — stronger title */
.featured-support-card .card-title {
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
}

/* Hero section topline date — bolder */
.section-date {
  font-weight: var(--font-weight-semibold);
  color: var(--color-dark-alt);
}

/* Article title on single post — stronger serif punch */
.article-title {
  font-size: clamp(1.85rem, 4.8vw, 3.4rem);
  letter-spacing: -0.03em;
  line-height: 1.08;
}

/* Related posts: stronger title contrast */
.related-card-title a {
  color: var(--color-dark);
  font-weight: var(--font-weight-bold);
}

/* Breadcrumbs — cleaner contrast */
.breadcrumbs a,
.breadcrumbs span {
  color: var(--color-gray);
  font-size: var(--font-size-xs);
}
.breadcrumbs .current {
  color: var(--color-dark-alt);
  font-weight: var(--font-weight-semibold);
}

/* Most-Read rail: stronger number and title contrast */
.hero-popular-number {
  font-weight: var(--font-weight-extrabold);
  color: var(--color-gold);
}
.hero-popular-list a {
  color: var(--color-dark);
  font-weight: var(--font-weight-semibold);
}
.hero-popular-list a:hover {
  color: var(--color-primary);
}

/* Hero rail title */
.hero-rail-title {
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.08em;
}

/* Section "View all" link — cleaner */
.section-more-link {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-xs);
}

/* ── 4. Sticky share rail: smooth fade-out when leaving article ────── */
.sticky-share-rail {
  transition: opacity 0.25s ease, top 0.25s ease;
}

/* END FIXES v2.5.3 */

/* =============================================================================
   BBC-STYLE LAYOUTS — v2.5.6
   All new layout classes for: hero, More News, 4-column sections.
   ============================================================================= */

/* ── BBC HERO: 3-column grid ──────────────────────────────────────────────── */
.bbc-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 700px) {
  .bbc-hero-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "center center"
      "left   right";
  }
  .bbc-hero-left   { grid-area: left; }
  .bbc-hero-center { grid-area: center; }
  .bbc-hero-right  { grid-area: right; }
}
@media (min-width: 1024px) {
  .bbc-hero-grid {
    grid-template-columns: 1fr 2fr 1fr;
    grid-template-areas: "left center right";
    align-items: start;
    gap: 2rem;
  }
}

/* Left column card (small image on top) */
.bbc-hero-left {}
.bbc-side-card  { display: flex; flex-direction: column; gap: 0; }
.bbc-side-img   {
  display: block;
  overflow: hidden;
  aspect-ratio: 16/10;
  background: var(--color-bg-alt);
  margin-bottom: 0.75rem;
}
.bbc-side-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.bbc-side-card:hover .bbc-side-img img { transform: scale(1.04); }
.bbc-side-body  {}
.bbc-side-title {
  font-family: var(--font-serif);
  font-size: clamp(0.95rem, 1.6vw, 1.15rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  margin: 0.35rem 0 0.4rem;
}
.bbc-side-title a { color: var(--color-dark); }
.bbc-side-title a:hover { color: var(--color-primary); }

/* Centre column — BIG featured card */
.bbc-hero-center {}
.bbc-lead-card   { display: flex; flex-direction: column; }
.bbc-lead-image  {
  display: block;
  overflow: hidden;
  aspect-ratio: 16/9;
  background: var(--color-bg-alt);
  margin-bottom: 1rem;
}
.bbc-lead-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.bbc-lead-card:hover .bbc-lead-image img { transform: scale(1.03); }
.bbc-lead-body  {}
.bbc-lead-title {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2.35vw, 1.9rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--color-dark);
  margin: 0.4rem 0 0.75rem;
}
.bbc-lead-title a { color: var(--color-dark); }
.bbc-lead-title a:hover { color: var(--color-primary); }
.bbc-lead-excerpt {
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-alt);
  max-width: 54ch;
  margin-bottom: 1rem;
}

/* Right column — text-only list */
.bbc-hero-right {}
.bbc-hero-right-inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media (min-width: 1024px) {
  .bbc-hero-right-inner {
    border-left: 1px solid var(--color-border);
    padding-left: 1.5rem;
  }
}
.bbc-text-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bbc-text-item {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--color-border);
}
.bbc-text-item:first-child { padding-top: 0; }
.bbc-text-item:last-child  { border-bottom: none; }
.bbc-text-title {
  display: block;
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  color: var(--color-dark);
  margin-top: 0.2rem;
  transition: color var(--transition);
}
.bbc-text-title:hover { color: var(--color-primary); }

/* Explore block inside right col */
.bbc-hero-explore {}
.bbc-explore-label {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-dark);
  border-bottom: 2px solid var(--color-dark);
  padding-bottom: 0.45rem;
  margin-bottom: 0.75rem;
  position: relative;
}
.bbc-explore-label::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 2rem; height: 2px;
  background: var(--color-gold);
}

/* ── BBC MORE NEWS: 3-column ──────────────────────────────────────────────── */
.bbc-more-news-section {}
.bbc-mn-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 600px) {
  .bbc-mn-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 900px) {
  /* 3-column: left 2 text articles | centre big image | right 4 stacked cards */
  .bbc-mn-grid { grid-template-columns: 1fr 1.6fr 1fr; }
}

/* Left: text-only big bold headline */
.bbc-mn-text {}
.bbc-mn-headline {
  font-family: var(--font-serif);
  font-size: clamp(1.2rem, 2.2vw, 1.75rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--color-dark);
  margin: 0.35rem 0 0.65rem;
}
.bbc-mn-headline a { color: var(--color-dark); }
.bbc-mn-headline a:hover { color: var(--color-primary); }
.bbc-mn-excerpt {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-alt);
  margin-bottom: 0.5rem;
}

/* Centre: big image card */
.bbc-mn-centre {}
.bbc-mn-centre-img {
  display: block;
  overflow: hidden;
  aspect-ratio: 16/10;
  background: var(--color-bg-alt);
  margin-bottom: 0.75rem;
}
.bbc-mn-centre-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.bbc-mn-centre:hover .bbc-mn-centre-img img { transform: scale(1.04); }
.bbc-mn-centre-body {}
.bbc-mn-centre-title {
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  margin: 0.3rem 0 0.3rem;
}
.bbc-mn-centre-title a { color: var(--color-dark); }
.bbc-mn-centre-title a:hover { color: var(--color-primary); }

/* Right: stacked small cards */
.bbc-mn-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bbc-mn-stack-card {
  display: flex;
  flex-direction: row;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
  align-items: flex-start;
}
.bbc-mn-stack-card:first-child { padding-top: 0; }
.bbc-mn-stack-card:last-child  { border-bottom: none; padding-bottom: 0; }
.bbc-mn-stack-img {
  flex-shrink: 0;
  width: 90px;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--color-bg-alt);
}
.bbc-mn-stack-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.bbc-mn-stack-card:hover .bbc-mn-stack-img img { transform: scale(1.05); }
.bbc-mn-stack-body { flex: 1; min-width: 0; }
.bbc-mn-stack-title {
  font-family: var(--font-serif);
  font-size: 0.875rem;
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  margin: 0.25rem 0 0.25rem;
}
.bbc-mn-stack-title a { color: var(--color-dark); }
.bbc-mn-stack-title a:hover { color: var(--color-primary); }

/* ── BBC 4-COLUMN COMPACT SECTIONS ───────────────────────────────────────── */
/* ============================================================
   BBC-STYLE CATALOG SECTIONS — v2.5.9 premium redesign
   Pixel-perfect match to BBC.com section grid layout.
   2-col on all phones, 4-col on desktop.
   ============================================================ */

.bbc-sections-row {
  padding-top: 0.5rem;
}

/* Grid: 2-column on ALL mobile (even < 360px), 4-column on desktop */
.bbc-4col-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.25rem;
}
@media (min-width: 540px) {
  .bbc-4col-grid { gap: 1.5rem 1.75rem; }
}
@media (min-width: 900px) {
  .bbc-4col-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
}

/* Individual category column */
.bbc-col {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0; /* prevent overflow in narrow grid cells */
}
@media (min-width: 900px) {
  .bbc-col {
    padding-right: 1.5rem;
    padding-bottom: 0.5rem;
  }
  .bbc-col:not(:last-child) {
    border-right: 1px solid var(--color-border);
  }
  .bbc-col:not(:first-child) {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .bbc-col:last-child {
    padding-right: 0;
  }
}

/* Column header: "CATEGORY ›" link — clean BBC style */
.bbc-col-header {
  border-top: 3px solid var(--color-dark);
  border-bottom: none;
  padding: 0.55rem 0 0.6rem;
  margin-bottom: 0.8rem;
}
.bbc-col-title {
  font-family: var(--font-primary);
  font-size: 0.7rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-dark);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  transition: color var(--transition);
  position: static;
  padding-left: 0;
  text-decoration: none;
}
.bbc-col-title::before {
  display: none; /* remove decorative gold bar — BBC uses plain text header */
}
.bbc-col-title:hover { color: var(--color-primary); }
.bbc-col-title span {
  font-size: 0.85rem;
  line-height: 1;
  font-weight: 600;
  color: var(--color-dark);
  transition: color var(--transition);
  margin-left: 0.1rem;
}
.bbc-col-title:hover span { color: var(--color-primary); }

/* Lead image card inside column */
.bbc-col-lead { margin-bottom: 0.75rem; }
.bbc-col-lead-img {
  display: block;
  overflow: hidden;
  aspect-ratio: 4/3; /* tighter ratio works better in narrow columns */
  background: var(--color-bg-alt);
  margin-bottom: 0.6rem;
}
@media (min-width: 900px) {
  .bbc-col-lead-img { aspect-ratio: 16/9; }
}
.bbc-col-lead-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.bbc-col-lead:hover .bbc-col-lead-img img { transform: scale(1.03); }
.bbc-col-lead-body {}
.bbc-col-lead-title {
  font-family: var(--font-serif);
  font-size: clamp(0.88rem, 1.5vw, 1.05rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  color: var(--color-dark);
  margin: 0.25rem 0 0.35rem;
}
.bbc-col-lead-title a { color: var(--color-dark); text-decoration: none; }
.bbc-col-lead-title a:hover { color: var(--color-primary); }

/* Lead excerpt — 3-line clamp */
.bbc-col-lead-excerpt {
  font-family: var(--font-primary);
  font-size: 0.775rem;
  line-height: 1.55;
  color: var(--color-dark-alt);
  margin: 0 0 0.4rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Text-only headline list below lead */
.bbc-col-text-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0; padding: 0;
  border-top: 1px solid var(--color-border);
}
.bbc-col-text-item {
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--color-border);
}
.bbc-col-text-item:last-child { border-bottom: none; padding-bottom: 0; }
.bbc-col-text-title {
  display: block;
  font-family: var(--font-primary);
  font-size: clamp(0.8rem, 1.15vw, 0.925rem);
  font-weight: var(--font-weight-semibold);
  line-height: 1.35;
  color: var(--color-dark);
  text-decoration: none;
  transition: color var(--transition);
}
.bbc-col-text-title:hover { color: var(--color-primary); }
.bbc-col-text-item .post-meta { margin-top: 0.2rem; }

/* Empty state (no posts yet) — clean card */
.section-ready {
  padding: 0.85rem 1rem !important;
  background: #f9f9f9 !important;
  border-left: 2px solid var(--color-gold) !important;
  border-radius: 2px;
}
.section-ready p {
  font-size: 0.78rem !important;
  color: #444 !important;
  line-height: 1.5 !important;
  font-style: italic;
  margin: 0 0 0.4rem !important;
}
.topic-links {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.3rem 0.4rem !important;
  margin-top: 0.5rem !important;
}
.topic-links a {
  display: inline-block !important;
  font-size: 0.67rem !important;
  font-weight: 600 !important;
  color: #0A66C2 !important;
  padding: 0.18rem 0.48rem !important;
  background: #fff !important;
  border: 1px solid #d0d7de !important;
  border-radius: 99px !important;
  text-decoration: none !important;
  transition: all 0.15s !important;
  letter-spacing: 0.01em;
}
.topic-links a:hover {
  background: #0A66C2 !important;
  color: #fff !important;
  border-color: #0A66C2 !important;
}

/* ── SHARED: news-section spacing ─────────────────────────────────────────── */
.bbc-more-news-section,
.bbc-sections-row {
  margin-bottom: 2.25rem;
  padding-bottom: 2.25rem;
  border-bottom: 1px solid var(--color-border);
}
.bbc-sections-row:last-child { border-bottom: none; }

/* ================================================================
   FM EDITORIAL SECTIONS — BBC stacked layout v2.5.11
   One full-width section per category.
   Featured: text LEFT + big image RIGHT (BBC style).
   Below: 3-column mini-card row.
   ================================================================ */

/* Section wrapper */
.fm-editorial-section {
  padding-top: 0.5rem;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--color-border);
}
.fm-editorial-section:last-child { border-bottom: none; }

/* Section header: "CATEGORY ›" */
.fm-editorial-hdr {
  border-top: 3px solid var(--color-dark);
  padding: 0.5rem 0 0.55rem;
  margin-bottom: 0.9rem;
}
.fm-editorial-cat-link {
  font-family: var(--font-primary);
  font-size: 0.72rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-dark);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  transition: color var(--transition);
}
.fm-editorial-cat-link span { font-size: 0.9rem; font-weight: 600; }
.fm-editorial-cat-link:hover,
.fm-editorial-cat-link:hover span { color: var(--color-primary); }

/* Featured split: stacked on mobile, side-by-side on ≥640px */
.fm-editorial-featured {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  margin-bottom: 1.1rem;
  align-items: center;
}
@media (min-width: 640px) {
  .fm-editorial-featured {
    grid-template-columns: 1fr 1.5fr;
    gap: 1.5rem;
  }
}

/* Featured text: headline, excerpt, meta */
.fm-editorial-headline {
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 2.6vw, 1.65rem);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--color-dark);
  margin: 0.2rem 0 0.45rem;
}
.fm-editorial-headline a { color: var(--color-dark); text-decoration: none; }
.fm-editorial-headline a:hover { color: var(--color-primary); }

.fm-editorial-excerpt {
  font-family: var(--font-primary);
  font-size: clamp(0.83rem, 1.4vw, 0.96rem);
  line-height: 1.6;
  color: var(--color-dark-alt);
  margin: 0 0 0.45rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fm-editorial-featured-text .post-meta { font-size: 0.72rem; }

/* Featured image: right column, 16:9 */
.fm-editorial-featured-img {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--color-bg-alt);
}
.fm-editorial-featured-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.fm-editorial-featured:hover .fm-editorial-featured-img img { transform: scale(1.03); }

/* Mini cards row: 3 columns below featured */
.fm-editorial-mini-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
  border-top: 1px solid var(--color-border);
  padding-top: 1rem;
}
@media (max-width: 500px) {
  .fm-editorial-mini-row { grid-template-columns: 1fr; }
}
@media (min-width: 501px) and (max-width: 720px) {
  .fm-editorial-mini-row { grid-template-columns: 1fr 1fr; }
}

.fm-editorial-mini-card {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.fm-editorial-mini-img {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--color-bg-alt);
}
.fm-editorial-mini-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.4s ease;
}
.fm-editorial-mini-card:hover .fm-editorial-mini-img img { transform: scale(1.04); }

.fm-editorial-mini-title {
  font-family: var(--font-serif);
  font-size: clamp(0.8rem, 1.25vw, 0.95rem);
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  color: var(--color-dark);
  margin: 0.1rem 0 0.15rem;
}
.fm-editorial-mini-title a { color: var(--color-dark); text-decoration: none; }
.fm-editorial-mini-title a:hover { color: var(--color-primary); }
.fm-editorial-mini-body .post-meta { font-size: 0.67rem; }
.fm-editorial-mini-body .cat-label { font-size: 0.6rem; }

/* ── HERO LEFT COLUMN: 4 stacked compact cards ───────────────────────────── */
.bbc-hero-left-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bbc-side-card--compact {
  display: flex;
  flex-direction: row;
  gap: 0.6rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--color-border);
  align-items: flex-start;
}
.bbc-side-card--compact:first-child { padding-top: 0; }
.bbc-side-card--compact:last-child  { border-bottom: none; padding-bottom: 0; }
.bbc-side-img--compact {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  aspect-ratio: 1/1;
  overflow: hidden;
  background: var(--color-bg-alt);
}
.bbc-side-img--compact img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.bbc-side-card--compact:hover .bbc-side-img--compact img { transform: scale(1.06); }
.bbc-side-card--compact .bbc-side-body {
  flex: 1;
  min-width: 0;
}
.bbc-side-card--compact .cat-label {
  font-size: 0.65rem;
}
.bbc-side-title--compact {
  font-family: var(--font-serif);
  font-size: 0.82rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  margin: 0.15rem 0 0.2rem;
}
.bbc-side-title--compact a { color: var(--color-dark); }
.bbc-side-title--compact a:hover { color: var(--color-primary); }
.bbc-side-card--compact .post-meta { font-size: 0.68rem; }

/* ── 3-ARTICLE HORIZONTAL STRIP (between hero & Editor's Picks) ──────────── */
.fm-horiz-strip {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
  padding: 1.5rem 0;
  border-top: 2px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
@media (max-width: 600px) {
  .fm-horiz-strip { grid-template-columns: 1fr; }
}
@media (min-width: 601px) and (max-width: 900px) {
  .fm-horiz-strip { grid-template-columns: 1fr 1fr; }
}
.fm-horiz-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.75rem;
}
.fm-horiz-img {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  overflow: hidden;
  background: var(--color-bg-alt);
  display: block;
}
.fm-horiz-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.fm-horiz-card:hover .fm-horiz-img img { transform: scale(1.06); }
.fm-horiz-title {
  flex: 1;
  font-family: var(--font-serif);
  font-size: 0.875rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.35;
  margin: 0;
}
.fm-horiz-title a { color: var(--color-dark); }
.fm-horiz-title a:hover { color: var(--color-primary); }

/* ── MORE NEWS: Left column — 3 stacked text articles ────────────────────── */
.bbc-mn-text {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bbc-mn-text-item {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--color-border);
}
.bbc-mn-text-item:first-child { padding-top: 0; }
.bbc-mn-text-item:last-child  { border-bottom: none; padding-bottom: 0; }
.bbc-mn-text-item .bbc-mn-headline {
  font-size: clamp(0.95rem, 1.6vw, 1.25rem);
}
.bbc-mn-text-item .bbc-mn-excerpt {
  font-size: 0.825rem;
  margin-bottom: 0.25rem;
}

/* ── MORE NEWS: Centre column wrapper (big image + horizontal strip below) ── */
.bbc-mn-centre-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ── MORE NEWS: 3 horizontal articles below centre image ─────────────────── */
/* IMPORTANT: Always 3 columns — never collapse to single column.
   If width: 100% + aspect-ratio: 1/1 + single col = giant full-screen images. */
.bbc-mn-horiz-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* always 3 cols on ALL screen sizes */
  gap: 0.5rem;
  border-top: 1px solid var(--color-border);
  padding-top: 0.75rem;
}
.bbc-mn-horiz-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.bbc-mn-horiz-img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  background: var(--color-bg-alt);
  flex-shrink: 0;
  /* With 3 always-on columns, each image is ~1/3 container width — safe. */
}
.bbc-mn-horiz-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.bbc-mn-horiz-card:hover .bbc-mn-horiz-img img { transform: scale(1.06); }
.bbc-mn-horiz-title {
  font-family: var(--font-serif);
  font-size: 0.72rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  margin: 0;
}
.bbc-mn-horiz-title a { color: var(--color-dark); }
.bbc-mn-horiz-title a:hover { color: var(--color-primary); }

/* END BBC Layouts v2.5.9 — hero left:6; more-news:3-col(2+1+4); sections:2-col BBC style */

/* =====================================================
   PATCH v2.5.11 — Mobile Fixes
   1. Center footer columns on mobile
   2. Show featured big image first on mobile (Top Stories)
   ===================================================== */

/* ── Mobile: Center footer brand col + nav columns ── */
@media (max-width: 540px) {
  .footer-col-brand {
    align-items: center;
    text-align: center;
  }
  .footer-stamp-logo {
    margin-left: auto;
    margin-right: auto;
  }
  .footer-col-brand .footer-tagline {
    text-align: center;
  }
  .footer-col-brand .footer-social {
    justify-content: center;
  }
  .footer-col {
    text-align: center;
  }
  .footer-col ul {
    align-items: center;
  }
  .footer-col ul li a {
    padding-left: 0;
  }
  .footer-col ul li a:hover {
    padding-left: 0;
  }
  .footer-col-title {
    text-align: center;
  }
  .footer-col-title::after {
    left: 50%;
    transform: translateX(-50%);
  }
}

/* ── Desktop footer brand alignment ─────────────────────────────────────── */
@media (min-width: 768px) {
  .footer-logo-link {
    margin-left: 0;
  }
  .footer-stamp-logo {
    height: 160px;
    max-width: 170px;
    width: 170px;
  }
  .footer-email {
    font-size: .7rem;
    margin-left: 0;
  }
}

/* ── Mobile: Featured centre image appears first in Top Stories ── */
@media (max-width: 699px) {
  .bbc-hero-center {
    order: -1;
  }
  .bbc-hero-left {
    order: 0;
  }
  .bbc-hero-right {
    order: 1;
  }
}
/* END PATCH v2.5.11 */

/* =====================================================
   PATCH v3.0.2 — Contact page and primary navigation
   ===================================================== */

/* The Contact page is a content page, but its form should read like a
   deliberate editorial contact panel rather than browser-default controls. */
.fm-contact-page-main .single-post-center {
  max-width: 100% !important;
}

.fm-contact-page-main .article-main {
  width: 100% !important;
  max-width: 960px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.fm-contact-page-main .article-header {
  border-bottom: 0 !important;
  margin-bottom: 1rem !important;
  padding-bottom: 0 !important;
  text-align: center !important;
}

.fm-contact-page-main .article-title {
  font-size: clamp(2rem, 5vw, 3.6rem) !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  text-align: center !important;
}

.contact-page-content {
  width: 100% !important;
  max-width: 960px !important;
  margin: 0 auto !important;
}

.contact-page-content > p:first-child {
  max-width: 680px;
  margin: 0 auto 1.75rem;
  color: #555;
  text-align: center;
}

.fm-contact-page .contact-page-content form,
.fm-contact-page .contact-page-content .wpforms-container,
.fm-contact-page .contact-page-content .wpcf7,
.fm-contact-page .contact-page-content .gform_wrapper {
  width: 100% !important;
  max-width: 860px !important;
  margin: 1.5rem auto 0 !important;
}

.fm-contact-page .contact-page-content form {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.15rem !important;
  padding: clamp(1.25rem, 4vw, 2.5rem) !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-top: 3px solid #111 !important;
  box-shadow: 0 12px 34px rgba(17, 17, 17, .08) !important;
}

.fm-contact-page .contact-page-content form p,
.fm-contact-page .contact-page-content .wpforms-field,
.fm-contact-page .contact-page-content .wpcf7-form-control-wrap,
.fm-contact-page .contact-page-content .gfield {
  display: flex !important;
  flex-direction: column !important;
  gap: .4rem !important;
  margin: 0 !important;
}

.fm-contact-page .contact-page-content form label,
.fm-contact-page .contact-page-content .wpforms-field-label,
.fm-contact-page .contact-page-content .gfield_label {
  color: #222 !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}

.fm-contact-page .contact-page-content form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.fm-contact-page .contact-page-content form textarea,
.fm-contact-page .contact-page-content form select,
.fm-contact-page .contact-page-content .wpforms-field input,
.fm-contact-page .contact-page-content .wpforms-field textarea,
.fm-contact-page .contact-page-content .wpforms-field select,
.fm-contact-page .contact-page-content .wpcf7-form-control:not(.wpcf7-submit),
.fm-contact-page .contact-page-content .gfield input,
.fm-contact-page .contact-page-content .gfield textarea,
.fm-contact-page .contact-page-content .gfield select {
  width: 100% !important;
  min-height: 46px !important;
  padding: .75rem .85rem !important;
  color: #222 !important;
  background: #fff !important;
  border: 1px solid #cfd5dc !important;
  border-radius: 2px !important;
  outline: none !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}

.fm-contact-page .contact-page-content form textarea,
.fm-contact-page .contact-page-content .wpforms-field textarea,
.fm-contact-page .contact-page-content .gfield textarea {
  min-height: 180px !important;
  resize: vertical !important;
}

.fm-contact-page .contact-page-content form input:focus,
.fm-contact-page .contact-page-content form textarea:focus,
.fm-contact-page .contact-page-content form select:focus {
  border-color: #0A66C2 !important;
  box-shadow: 0 0 0 3px rgba(10, 102, 194, .12) !important;
}

.fm-contact-page .contact-page-content form input[type="submit"],
.fm-contact-page .contact-page-content form button[type="submit"],
.fm-contact-page .contact-page-content .wpcf7-submit,
.fm-contact-page .contact-page-content .wpforms-submit,
.fm-contact-page .contact-page-content .gform_button {
  align-self: flex-start !important;
  min-height: 46px !important;
  padding: .7rem 1.4rem !important;
  color: #fff !important;
  background: #111 !important;
  border: 1px solid #111 !important;
  border-radius: 2px !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease !important;
}

.fm-contact-page .contact-page-content form input[type="submit"]:hover,
.fm-contact-page .contact-page-content form button[type="submit"]:hover,
.fm-contact-page .contact-page-content .wpcf7-submit:hover,
.fm-contact-page .contact-page-content .wpforms-submit:hover,
.fm-contact-page .contact-page-content .gform_button:hover {
  color: #111 !important;
  background: #C9A227 !important;
  border-color: #C9A227 !important;
}

@media (max-width: 640px) {
  .fm-contact-page-main .article-main {
    max-width: 100% !important;
  }
  .fm-contact-page .contact-page-content form {
    padding: 1rem !important;
  }
  .fm-contact-page .contact-page-content form input[type="submit"],
  .fm-contact-page .contact-page-content form button[type="submit"],
  .fm-contact-page .contact-page-content .wpcf7-submit,
  .fm-contact-page .contact-page-content .wpforms-submit,
  .fm-contact-page .contact-page-content .gform_button {
    width: 100% !important;
  }
}

/* ── Article view count ─────────────────────────────────────────────────────── */
.fm-view-count {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  white-space: nowrap;
}
.fm-view-count-number {
  font-weight: 600;
}

/* ── Awards archive: premium category-led presentation ─────────────────────── */
.recognition-archive {
  background: #0e0d12;
  color: rgba(255,255,255,.86);
}
body.gpm-awards-page #content,
body.gpm-awards-page #main-content {
  background: #0e0d12;
}
.recognition-archive .recognition-hero {
  background:
    radial-gradient(circle at 78% 22%, rgba(104,58,155,.32), transparent 31%),
    radial-gradient(circle at 20% 82%, rgba(177,103,33,.18), transparent 30%),
    linear-gradient(135deg, #181326 0%, #0b0a10 66%);
  border-bottom: 1px solid rgba(255,255,255,.12);
  min-height: 460px;
  padding: 3rem 0 3.5rem;
}
.recognition-hero-inner {
  position: relative;
  text-align: center;
}
.recognition-hero-inner .breadcrumbs,
.recognition-hero-inner .breadcrumbs ol {
  justify-content: center;
  text-align: center;
}
.recognition-hero-inner > * {
  margin-left: auto;
  margin-right: auto;
}
.recognition-hero h1 {
  font-family: var(--font-sans);
  font-size: clamp(2.65rem, 7vw, 5.8rem);
  font-weight: 300;
  letter-spacing: -.05em;
  line-height: .98;
  margin: 1.6rem 0 .85rem;
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}
.recognition-hero-intro {
  color: rgba(255,255,255,.68) !important;
  font-size: clamp(.98rem, 1.8vw, 1.15rem) !important;
  line-height: 1.65;
  max-width: 650px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.recognition-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: center;
  margin-top: 1.65rem;
}
.recognition-action {
  border: 1px solid rgba(201,162,39,.7);
  display: inline-flex;
  font-size: .7rem;
  font-weight: 800;
  gap: .6rem;
  letter-spacing: .06em;
  padding: .78rem 1rem;
  text-transform: uppercase;
}
.recognition-action--primary {
  background: var(--color-gold);
  color: #17120a;
}
.recognition-action--ghost {
  color: #fff;
}
.recognition-action:hover {
  background: #fff;
  border-color: #fff;
  color: #17120a;
}
.recognition-year-filter {
  align-items: center;
  border-top: 1px solid rgba(255,255,255,.14);
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .75rem;
  justify-content: center;
  margin-top: 2.6rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 720px;
  padding-top: 1rem;
}
.recognition-year-filter label,
.recognition-explorer label {
  color: var(--color-gold);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.recognition-year-filter select,
.recognition-explorer select {
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  font-size: .85rem;
  min-width: 135px;
  padding: .65rem .75rem;
}
.recognition-year-filter option,
.recognition-explorer option {
  background: #17131f;
  color: #fff;
}
.recognition-year-filter button,
.recognition-explorer button {
  background: transparent;
  border: 1px solid rgba(201,162,39,.75);
  color: var(--color-gold);
  cursor: pointer;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .06em;
  padding: .69rem .8rem;
  text-transform: uppercase;
}
.recognition-year-filter button:hover,
.recognition-explorer button:hover {
  background: var(--color-gold);
  color: #17120a;
}
.recognition-stage {
  background:
    radial-gradient(circle at 15% 18%, rgba(56,40,91,.2), transparent 25%),
    radial-gradient(circle at 82% 42%, rgba(70,31,75,.16), transparent 28%),
    #0e0d12;
}
.recognition-archive .recognition-content {
  padding-bottom: 5rem;
  padding-top: 2.6rem;
}
.recognition-stage-heading {
  margin-bottom: 1.05rem;
  text-align: center;
}
.recognition-stage-heading h2,
.recognition-explorer h2 {
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 300;
  letter-spacing: -.025em;
  margin: .35rem 0 0;
}
.recognition-highlights {
  border-bottom: 1px solid rgba(255,255,255,.13);
  padding: 0 0 2.4rem;
}
.recognition-highlight-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.recognition-highlight {
  align-items: center;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(201,162,39,.5);
  display: flex;
  gap: .7rem;
  min-height: 76px;
  padding: .65rem;
  transition: background .2s ease, transform .2s ease;
}
.recognition-highlight:hover {
  background: rgba(201,162,39,.14);
  transform: translateY(-2px);
}
.recognition-highlight-mark {
  align-items: center;
  background: #fff;
  color: #16121b;
  display: flex;
  flex: 0 0 48px;
  font-size: 1.25rem;
  font-weight: 800;
  height: 48px;
  justify-content: center;
}
.recognition-highlight-copy {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  min-width: 0;
}
.recognition-highlight-copy strong {
  color: #fff;
  font-size: .78rem;
  line-height: 1.15;
}
.recognition-highlight-copy small {
  color: rgba(255,255,255,.58);
  font-size: .64rem;
}
.recognition-explorer {
  align-items: end;
  border-bottom: 1px solid rgba(255,255,255,.13);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 2.2rem 0 2.7rem;
  padding-bottom: 1rem;
}
.recognition-explorer > div {
  text-align: center;
}
.recognition-explorer form {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
}
.recognition-explorer select {
  min-width: 180px;
}
.recognition-magazine-section {
  margin-top: 3.2rem;
}
.recognition-magazine-category {
  margin-bottom: 3.25rem;
}
.recognition-magazine-category .recognition-section-heading {
  display: block;
  text-align: center;
}
.recognition-magazine-category .recognition-section-heading > div {
  text-align: center;
}
.recognition-magazine-category .recognition-section-heading h3 {
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 300;
  letter-spacing: -.025em;
  margin: .28rem 0 0;
}
.recognition-magazine-explore {
  color: rgba(255,255,255,.52);
  display: block;
  margin-top: .4rem;
  text-decoration: none;
}
.recognition-magazine-explore:hover {
  color: var(--color-gold);
}
.recognition-magazine-panel {
  align-items: center;
  border: 1px dashed rgba(255,255,255,.2);
  color: rgba(255,255,255,.6);
  display: flex;
  flex-direction: column;
  gap: .45rem;
  justify-content: center;
  min-height: 74px;
  padding: 1.2rem 1rem;
  text-align: center;
  text-decoration: none;
}
.recognition-magazine-panel:hover {
  background: rgba(255,255,255,.04);
  border-color: rgba(201,162,39,.55);
  color: #fff;
}
.recognition-magazine-panel strong {
  color: var(--color-gold);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.recognition-archive .recognition-category {
  margin-bottom: 3.25rem;
}
.recognition-archive .recognition-section-heading {
  border-bottom-color: rgba(255,255,255,.16);
  margin-bottom: 1.05rem;
}
.recognition-archive .recognition-section-heading h2 {
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 300;
  letter-spacing: -.025em;
  margin-top: .28rem;
}
.recognition-type-section {
  border-top: 1px solid rgba(255,255,255,.16);
  margin-top: 3.2rem;
  padding-top: 2rem;
}
.recognition-type-section--recognition {
  margin-top: 4.5rem;
}
.recognition-type-heading {
  margin-bottom: 2rem;
  text-align: center;
}
.recognition-type-heading h2 {
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 300;
  letter-spacing: -.035em;
  margin: .25rem 0 0;
}
.recognition-archive .recognition-section-heading h3 {
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  font-weight: 300;
  letter-spacing: -.025em;
  margin: .28rem 0 0;
}
.recognition-archive .recognition-section-heading {
  display: block;
  text-align: center;
}
.recognition-archive .recognition-category,
.recognition-archive .recognition-category .recognition-section-heading,
.recognition-archive .recognition-category .recognition-section-heading > div {
  text-align: center;
}
.recognition-archive .recognition-section-heading .recognition-count {
  display: block;
  margin-top: .4rem;
}
.recognition-empty-inline {
  border: 1px dashed rgba(255,255,255,.2);
  color: rgba(255,255,255,.6);
  margin: 0;
  padding: 1.2rem 1rem;
  text-align: center;
}
.recognition-archive .recognition-count {
  color: rgba(255,255,255,.52);
}
.recognition-archive .recognition-card-row {
  display: flex;
  gap: .85rem;
  overflow-x: auto;
  padding: .15rem .1rem .75rem;
  scroll-behavior: smooth;
  scrollbar-color: rgba(201,162,39,.8) rgba(255,255,255,.08);
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.recognition-archive .recognition-card-row::-webkit-scrollbar {
  height: 6px;
}
.recognition-archive .recognition-card-row::-webkit-scrollbar-thumb {
  background: rgba(201,162,39,.8);
}
.recognition-archive .recognition-card {
  background: #19171e;
  border: 1px solid rgba(201,162,39,.8);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  color: #fff;
  flex: 0 0 clamp(185px, 18vw, 225px);
  scroll-snap-align: start;
}
.recognition-archive .recognition-card:hover {
  box-shadow: 0 14px 34px rgba(0,0,0,.35);
}
.recognition-archive .recognition-card-image {
  background:
    radial-gradient(circle at 50% 20%, rgba(97,73,141,.35), transparent 35%),
    linear-gradient(145deg, #282038, #09080c);
  height: clamp(165px, 17vw, 205px);
}
.recognition-archive .recognition-card h3 a {
  color: #fff;
}
.recognition-archive .recognition-card h3 a:hover {
  color: #f6d86b;
}
.recognition-archive .recognition-card-organization {
  color: rgba(255,255,255,.82);
}
.recognition-archive .recognition-card-subtitle {
  color: rgba(255,255,255,.58);
}
.recognition-archive .recognition-empty {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.16);
  color: #fff;
}
.recognition-archive .recognition-empty h2 {
  color: #fff;
}
.recognition-archive .recognition-empty p {
  color: rgba(255,255,255,.62);
}

/* ── Global People biographies and directory ─────────────────────────────── */
.biography-archive,
.biography-single {
  background: #f7f7f5;
  color: #171717;
}
.biography-hero {
  background: linear-gradient(135deg, #17131f, #0d0c10);
  color: #fff;
  padding: 4.25rem 0 4.5rem;
  text-align: center;
}
.biography-hero .breadcrumbs ol {
  justify-content: center;
}
.biography-hero h1 {
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 300;
  letter-spacing: -.05em;
  margin: 1rem auto .8rem;
}
.biography-hero > .container > p:last-child {
  color: rgba(255,255,255,.72);
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0 auto;
  max-width: 680px;
}
.biography-kicker,
.biography-card-kicker {
  color: var(--color-gold);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
  margin: 0;
  text-transform: uppercase;
}
.biography-content {
  padding-bottom: 5rem;
  padding-top: 3rem;
}
.biography-grid,
.gpm-people-directory-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.biography-card,
.gpm-person-card {
  background: #fff;
  border: 1px solid #e3e3df;
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
  overflow: hidden;
}
.biography-card-media {
  background: #e9e9e6;
  display: block;
  aspect-ratio: 4 / 3;
}
.biography-card-media img,
.gpm-person-card > a img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.biography-card-copy,
.gpm-person-card-copy {
  padding: 1.25rem;
}
.biography-card h2,
.gpm-person-card h2 {
  font-size: 1.35rem;
  line-height: 1.12;
  margin: .45rem 0 .7rem;
}
.biography-card h2 a,
.gpm-person-card h2 a {
  color: #171717;
}
.biography-card p:last-child,
.gpm-person-card p:last-child {
  color: #626262;
  line-height: 1.6;
  margin-bottom: 0;
}
.biography-empty,
.gpm-directory-empty {
  background: #fff;
  border: 1px dashed #c9c9c4;
  padding: 3rem 1.5rem;
  text-align: center;
}
.biography-single .article-main {
  padding-bottom: 5rem;
  padding-top: 2rem;
}
.biography-entry {
  background: #fff;
  margin: 2rem auto 0;
  max-width: 900px;
  padding: clamp(1.5rem, 4vw, 4rem);
}
.biography-entry-header {
  text-align: center;
}
.biography-entry-header h1 {
  font-size: clamp(2.4rem, 6vw, 4.8rem);
  line-height: 1;
  margin: .65rem 0 1.5rem;
}
.biography-entry-image {
  margin: 0 auto 2rem;
  max-width: 720px;
}
.biography-entry-image img {
  display: block;
  height: auto;
  margin: auto;
  width: 100%;
}
.biography-entry-content {
  font-size: 1.08rem;
  line-height: 1.8;
  margin: auto;
  max-width: 720px;
}
@media (max-width: 800px) {
  .biography-grid,
  .gpm-people-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 540px) {
  .biography-grid,
  .gpm-people-directory-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .recognition-highlight-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .recognition-archive .recognition-card {
    flex-basis: 210px;
  }
}
@media (max-width: 640px) {
  .recognition-archive .recognition-hero {
    min-height: 0;
    padding: 2rem 0 2.35rem;
  }
  .recognition-hero h1 {
    font-size: clamp(2.45rem, 13vw, 4rem);
    margin-top: 1.25rem;
  }
  .recognition-highlight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .recognition-highlight {
    min-height: 68px;
  }
  .recognition-highlight-mark {
    flex-basis: 38px;
    height: 38px;
  }
  .recognition-explorer {
    align-items: start;
    flex-direction: column;
  }
  .recognition-explorer form {
    width: 100%;
  }
  .recognition-explorer select {
    flex: 1;
    min-width: 0;
  }
  .recognition-archive .recognition-card {
    flex-basis: min(72vw, 235px);
  }
}
@media (max-width: 390px) {
  .recognition-highlight-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Awards & Recognition: keep the complete filter block centered ───────── */
.recognition-archive .recognition-hero-inner,
.gpm-awards-page .recognition-hero-inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.recognition-archive .recognition-hero-inner .breadcrumbs,
.recognition-archive .recognition-hero-inner .recognition-kicker,
.recognition-archive .recognition-hero-inner h1,
.recognition-archive .recognition-hero-inner .recognition-hero-intro,
.recognition-archive .recognition-hero-inner .recognition-hero-actions,
.recognition-archive .recognition-hero-inner .recognition-year-filter,
.gpm-awards-page .recognition-hero-inner .breadcrumbs,
.gpm-awards-page .recognition-hero-inner .recognition-kicker,
.gpm-awards-page .recognition-hero-inner h1,
.gpm-awards-page .recognition-hero-inner .recognition-hero-intro,
.gpm-awards-page .recognition-hero-inner .recognition-hero-actions,
.gpm-awards-page .recognition-hero-inner .recognition-year-filter {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.recognition-archive .recognition-year-filter,
.gpm-awards-page .recognition-year-filter {
  align-items: center;
  justify-content: center;
  width: min(100%, 720px);
}
.recognition-archive .recognition-explorer,
.gpm-awards-page .recognition-explorer {
  align-items: center;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.recognition-archive .recognition-explorer form,
.gpm-awards-page .recognition-explorer form {
  align-items: center;
  justify-content: center;
}
.recognition-archive .recognition-subgroup-heading,
.gpm-awards-page .recognition-subgroup-heading {
  margin: 0 0 1.35rem;
  text-align: center;
}
.recognition-archive .recognition-subgroup-heading .recognition-eyebrow,
.gpm-awards-page .recognition-subgroup-heading .recognition-eyebrow {
  margin: 0;
}

/* The homepage keeps its Home navigation link, but not the page title. */
body.home .fm-page-header,
body.home .page-title,
body.home .entry-title {
  display: none !important;
}

/* ── Pages: clean reading layout ───────────────────────────────────────────
   This is intentionally limited to page.php. Regular posts keep their
   existing design. */
.fm-page-main:not(.fm-contact-page-main) .fm-page-article {
  max-width: 860px;
  margin: 0 auto;
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-header {
  margin: 0 0 2rem;
  padding: 0 0 1rem;
  border-bottom: 2px solid var(--color-primary);
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-title {
  margin: 0;
  font-size: clamp(1.9rem, 5vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content {
  max-width: 100%;
  color: var(--color-dark-alt);
  font-size: var(--font-size-md);
  line-height: 1.75;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content > p {
  margin: 0 0 1.35rem;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h2,
.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h3,
.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h4 {
  color: var(--color-dark);
  line-height: 1.25;
  margin: 2rem 0 0.65rem;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h2 {
  padding-left: 0.75rem;
  border-left: 3px solid var(--color-gold);
  font-family: var(--font-serif);
  font-size: var(--font-size-2xl);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h3 {
  color: var(--color-primary);
  font-size: var(--font-size-xl);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content strong {
  color: var(--color-dark);
  font-weight: var(--font-weight-bold);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content ul,
.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content li {
  margin-bottom: 0.45rem;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content blockquote {
  margin: 1.75rem 0;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--color-gold);
  background: var(--color-bg-alt);
  color: var(--color-dark);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content img {
  max-width: 100%;
  height: auto;
  margin: 1.5rem auto;
  border-radius: var(--radius-sm);
}

/* Table of Contents: keeps the existing contents and only improves layout. */
.fm-page-main:not(.fm-contact-page-main) .ez-toc-container,
.fm-page-main:not(.fm-contact-page-main) #ez-toc-container,
.fm-page-main:not(.fm-contact-page-main) .lwptoc,
.fm-page-main:not(.fm-contact-page-main) .table-of-contents,
.fm-page-main:not(.fm-contact-page-main) .toc {
  margin: 0 0 2rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-md);
  background: var(--color-bg-alt);
}

.fm-page-main:not(.fm-contact-page-main) .ez-toc-container ul,
.fm-page-main:not(.fm-contact-page-main) #ez-toc-container ul,
.fm-page-main:not(.fm-contact-page-main) .lwptoc ul,
.fm-page-main:not(.fm-contact-page-main) .table-of-contents ul,
.fm-page-main:not(.fm-contact-page-main) .toc ul {
  margin: 0;
  padding-left: 1.25rem;
}

.fm-page-main:not(.fm-contact-page-main) .ez-toc-container a,
.fm-page-main:not(.fm-contact-page-main) #ez-toc-container a,
.fm-page-main:not(.fm-contact-page-main) .lwptoc a,
.fm-page-main:not(.fm-contact-page-main) .table-of-contents a,
.fm-page-main:not(.fm-contact-page-main) .toc a {
  color: var(--color-primary);
}

/* ── Public pages: consistent editorial frame ─────────────────────────────
   Keeps page content intact while giving About, Privacy, and other standard
   pages the same intentional magazine treatment as the rest of the theme. */
.fm-page-main:not(.fm-contact-page-main) .single-post-center {
  max-width: 920px;
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-article {
  padding: clamp(1.25rem, 3vw, 2.5rem);
  background: #fff;
  border-top: 4px solid var(--color-dark);
  box-shadow: 0 8px 28px rgba(17, 17, 17, 0.07);
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-header {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--color-border);
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-title {
  color: var(--color-dark);
  font-family: var(--font-serif);
  font-weight: var(--font-weight-extrabold);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content {
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h1 {
  color: var(--color-dark);
  font-family: var(--font-serif);
  font-size: clamp(1.65rem, 3.5vw, 2.35rem);
  line-height: 1.15;
  margin: 0 0 1rem;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h2 {
  margin-top: 2.25rem;
  padding: 0 0 0.55rem 0.85rem;
  border-left: 3px solid var(--color-gold);
  border-bottom: 1px solid var(--color-border);
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content a {
  color: var(--color-primary);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.fm-page-main:not(.fm-contact-page-main) .page-content.entry-content a:hover {
  color: var(--color-dark);
}

/* Make regular pages visibly designed on mobile as well as desktop. */
.fm-page-main:not(.fm-contact-page-main) {
  padding-bottom: clamp(2.5rem, 7vw, 5rem);
  background:
    linear-gradient(180deg, #f7f7f7 0%, #fff 34rem);
}

.fm-page-main:not(.fm-contact-page-main) .single-post-center {
  padding-top: clamp(1rem, 3vw, 2rem);
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-header {
  position: relative;
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-header::before {
  display: block;
  width: 3.25rem;
  height: 0.22rem;
  margin-bottom: 0.8rem;
  background: var(--color-gold);
  content: "";
}

.fm-page-main:not(.fm-contact-page-main) .fm-page-article {
  border: 1px solid var(--color-border);
  border-top: 4px solid var(--color-dark);
}

/* Contact fallback rendered when the saved Contact Form 7 shortcode has no
   registered handler. */
.fm-fallback-contact {
  width: 100%;
  max-width: 860px;
  margin: 1.5rem auto 0;
}

.fm-fallback-contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: clamp(1.25rem, 4vw, 2.5rem);
  background: #fff;
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--color-dark);
  box-shadow: 0 12px 34px rgba(17, 17, 17, .08);
}

.fm-contact-field {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  margin: 0;
}

.fm-contact-field--trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.fm-contact-field label {
  color: var(--color-dark);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.fm-contact-field input,
.fm-contact-field textarea {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
  padding: .75rem .85rem;
  color: var(--color-dark);
  background: #fff;
  border: 1px solid #cfd5dc;
  border-radius: 2px;
  outline: none;
}

.fm-contact-field textarea {
  min-height: 180px;
  resize: vertical;
}

.fm-contact-field input:focus,
.fm-contact-field textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(10, 102, 194, .12);
}

.fm-contact-actions {
  margin: 0;
}

.fm-contact-actions button {
  min-height: 46px;
  padding: .7rem 1.4rem;
  color: #fff;
  background: var(--color-dark);
  border: 1px solid var(--color-dark);
  border-radius: 2px;
  cursor: pointer;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fm-contact-actions button:hover {
  color: var(--color-dark);
  background: var(--color-gold);
  border-color: var(--color-gold);
}

.fm-contact-notice {
  margin: 0 0 1rem;
  padding: .85rem 1rem;
  border-left: 3px solid var(--color-gold);
  background: #fff;
}

.fm-contact-notice--error {
  border-left-color: #c0392b;
}

/* Every public Awards section title gets a clear gold editorial accent and
   a restrained hover animation, including empty sections. */
.recognition-stage-heading h2,
.recognition-explorer h2,
.recognition-type-heading h2,
.recognition-section-heading h3 {
  position: relative;
  display: inline-block;
  padding-bottom: .55rem;
  text-shadow: 0 0 18px rgba(201, 162, 39, .18);
}

.recognition-stage-heading h2::after,
.recognition-explorer h2::after,
.recognition-type-heading h2::after,
.recognition-section-heading h3::after {
  display: block;
  width: 2.75rem;
  height: 2px;
  margin-top: .5rem;
  background: linear-gradient(90deg, var(--color-gold), rgba(201, 162, 39, 0));
  content: "";
  transition: width .35s ease;
}

.recognition-category:hover .recognition-section-heading h3::after,
.recognition-type-section:hover .recognition-type-heading h2::after,
.recognition-explorer:hover h2::after,
.recognition-highlights:hover h2::after {
  width: 100%;
}

.recognition-category {
  position: relative;
  padding: 0 .75rem 1.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.recognition-category::before {
  position: absolute;
  top: .2rem;
  left: 0;
  width: 2px;
  height: 1.8rem;
  background: var(--color-gold);
  content: "";
  opacity: .7;
  transition: height .35s ease;
}

.recognition-category:hover::before {
  height: 3.2rem;
}

@media (max-width: 767px) {
  .fm-page-main:not(.fm-contact-page-main) .fm-page-header {
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
  }

  .fm-page-main:not(.fm-contact-page-main) .fm-page-title {
    font-size: 2rem;
  }

  .fm-page-main:not(.fm-contact-page-main) .page-content.entry-content {
    font-size: var(--font-size-base);
    line-height: 1.75;
  }

  .fm-page-main:not(.fm-contact-page-main) .fm-page-article {
    padding: 1rem;
    border-top-width: 3px;
    box-shadow: none;
  }

  .fm-fallback-contact-form {
    padding: 1rem;
    box-shadow: none;
  }

  .fm-contact-actions button {
    width: 100%;
  }

  .fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h2 {
    margin-top: 1.75rem;
    font-size: 1.35rem;
  }

  .fm-page-main:not(.fm-contact-page-main) .page-content.entry-content h3 {
    margin-top: 1.5rem;
    font-size: 1.15rem;
  }

  .fm-page-main:not(.fm-contact-page-main) .page-content.entry-content > p {
    margin-bottom: 1.25rem;
  }

  .fm-page-main:not(.fm-contact-page-main) .ez-toc-container,
  .fm-page-main:not(.fm-contact-page-main) #ez-toc-container,
  .fm-page-main:not(.fm-contact-page-main) .lwptoc,
  .fm-page-main:not(.fm-contact-page-main) .table-of-contents,
  .fm-page-main:not(.fm-contact-page-main) .toc {
    margin-bottom: 1.75rem;
    padding: 0.85rem 0.9rem;
  }
}

/* ── Single posts: calm editorial reading layout ───────────────────────────
   The automatic featured image is intentionally not rendered by single.php.
   Images inserted in the article body remain visible. */
.fm-single-post-main {
  padding-bottom: clamp(2.5rem, 7vw, 5rem);
  background:
    linear-gradient(180deg, #f7f7f7 0%, #fff 34rem);
}

.fm-single-post-main .single-post-center {
  max-width: 920px;
  padding-top: clamp(1rem, 3vw, 2rem);
}

.fm-single-post-main .fm-single-post-article {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 1px solid var(--color-border);
  border-top: 4px solid var(--color-dark);
  background: #fff;
  box-shadow: 0 8px 28px rgba(17, 17, 17, 0.07);
}

.fm-single-post-main .article-header {
  position: relative;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--color-border);
}

.fm-single-post-main .article-header::before {
  display: block;
  width: 3.25rem;
  height: 0.22rem;
  margin-bottom: 0.8rem;
  background: var(--color-gold);
  content: "";
}

.fm-single-post-main .article-labels {
  margin-bottom: 0.85rem;
}

.fm-single-post-main .article-title {
  color: var(--color-dark);
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 5vw, 3rem);
  font-weight: var(--font-weight-extrabold);
  margin: 0 0 1rem;
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.fm-single-post-main .article-standfirst {
  margin: 0 0 1.25rem;
  padding-left: 1rem;
  border-left-width: 3px;
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.65;
}

.fm-single-post-main .article-byline {
  margin-bottom: 0;
  padding-top: 0.85rem;
  border-top: 1px solid var(--color-border);
  border-bottom: 0;
}

.fm-single-post-main .article-body.entry-content {
  max-width: 820px;
  margin: 0 auto;
  color: var(--color-dark-alt);
  font-size: var(--font-size-md);
  line-height: 1.75;
}

.fm-single-post-main .article-body.entry-content > p {
  margin-bottom: 1.35rem;
}

.fm-single-post-main .article-body.entry-content h2,
.fm-single-post-main .article-body.entry-content h3,
.fm-single-post-main .article-body.entry-content h4 {
  color: var(--color-dark);
  line-height: 1.25;
  scroll-margin-top: 5rem;
  margin: 2rem 0 0.65rem;
}

.fm-single-post-main .article-body.entry-content h2 {
  padding: 0 0 0.55rem 0.85rem;
  border-left: 3px solid var(--color-gold);
  border-bottom: 1px solid var(--color-border);
  font-family: var(--font-serif);
  font-size: var(--font-size-2xl);
}

.fm-single-post-main .article-body.entry-content h3 {
  color: var(--color-primary);
  font-size: var(--font-size-xl);
}

.fm-single-post-main .article-body.entry-content strong {
  color: var(--color-dark);
  font-weight: var(--font-weight-bold);
}

.fm-single-post-main .article-body.entry-content ul,
.fm-single-post-main .article-body.entry-content ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
}

.fm-single-post-main .article-body.entry-content li {
  margin-bottom: 0.45rem;
}

.fm-single-post-main .article-body.entry-content img {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 1.75rem auto;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
}

.fm-single-post-main .article-body.entry-content figure {
  margin: 1.75rem 0;
}

.fm-single-post-main .article-body.entry-content figcaption {
  padding-top: 0.45rem;
  color: var(--color-light-gray);
  font-size: var(--font-size-xs);
  font-style: italic;
  text-align: center;
}

.fm-single-post-main .article-body.entry-content blockquote {
  margin: 1.75rem 0;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--color-gold);
  background: var(--color-bg-alt);
  color: var(--color-dark);
}

.fm-single-post-main .article-body.entry-content a {
  color: var(--color-primary);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.fm-single-post-main .article-body.entry-content a:hover {
  color: var(--color-dark);
}

.fm-single-post-main .article-tags {
  max-width: 760px;
  margin-right: auto;
  margin-left: auto;
}

.fm-single-post-main .author-box {
  max-width: 760px;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 767px) {
  .fm-single-post-main .fm-single-post-article {
    padding: 1rem;
    border-radius: 0;
    border-right: 0;
    border-left: 0;
    border-top-width: 3px;
    box-shadow: none;
  }

  .fm-single-post-main .article-header {
    margin-bottom: 1.35rem;
    padding-bottom: 1rem;
  }

  .fm-single-post-main .article-title {
    font-size: 2rem;
    line-height: 1.12;
  }

  .fm-single-post-main .article-byline {
    align-items: flex-start;
  }

  .fm-single-post-main .publish-info {
    line-height: 1.6;
  }

  .fm-single-post-main .article-body.entry-content {
    font-size: var(--font-size-base);
    line-height: 1.75;
  }

  .fm-single-post-main .article-body.entry-content h2 {
    margin-top: 1.75rem;
    font-size: 1.35rem;
  }

  .fm-single-post-main .article-body.entry-content h3 {
    margin-top: 1.5rem;
    font-size: 1.15rem;
  }
}
