:root {
  /* create variable for colors using prefix --*) */
  --primary-color: #011750;
  --secondary-color: #d6070f;
  --black: #000208;
  --white: #ffff;
  --light-gray: #F6F6F6;
  --medium-gray: #e7e7e7;
  --bg-yellow: #fbf0f0;
  --primary-color-dark: #06278a;
  --background-color: #ffff;
  --background-gray: #e5e5e5;
  --badge-background-color: #f5f5f5;
  --badge-text-color: #333;
  --text-light: #6e6e6e;
  --transition: 0.3s all;
  --font-primary: "PT Serif", serif;
  --font-secondary: "Poppins", sans-serif;

  /* ========== typography tokens (Phase 0) ========== */
  /* fluid lock: 375px → 1200px */
  --fluid-min-width: 375px;
  --fluid-max-width: 1200px;
  --fluid-range: 825px;

  /* sizes */
  --fs-sm: 14px;
  --fs-base: 17px;
  --fs-md: 15px;
  --fs-lg: 18px;
  /* decks / emphasis body — 1px above base */

  --fs-h1-min: 1.8125rem;
  /* 29px */
  --fs-h1-max: 2.1875rem;
  /* 35px */
  --fs-h2-min: 1.4375rem;
  /* 23px */
  --fs-h2-max: 1.75rem;
  /* 28px */
  --fs-h3-min: 1.1875rem;
  /* 19px */
  --fs-h3-max: 1.375rem;
  /* 22px */
  --fs-h4-min: 1.0625rem;
  /* 17px — ≥ body */
  --fs-h4-max: 1.125rem;
  /* 18px */
  --fs-h5-min: 0.9375rem;
  /* 15px */
  --fs-h5-max: 1.0625rem;
  /* 17px */
  --fs-h6-min: 0.875rem;
  /* 14px */
  --fs-h6-max: 1rem;
  /* 16px */

  /* Fluid heading sizes (single source — use these, don't re-clamp) */
  --fs-h1: clamp(
    var(--fs-h1-min),
    calc(
      var(--fs-h1-min) + (var(--fs-h1-max) - var(--fs-h1-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h1-max)
  );
  --fs-h2: clamp(
    var(--fs-h2-min),
    calc(
      var(--fs-h2-min) + (var(--fs-h2-max) - var(--fs-h2-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h2-max)
  );
  --fs-h3: clamp(
    var(--fs-h3-min),
    calc(
      var(--fs-h3-min) + (var(--fs-h3-max) - var(--fs-h3-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h3-max)
  );
  --fs-h4: clamp(
    var(--fs-h4-min),
    calc(
      var(--fs-h4-min) + (var(--fs-h4-max) - var(--fs-h4-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h4-max)
  );
  --fs-h5: clamp(
    var(--fs-h5-min),
    calc(
      var(--fs-h5-min) + (var(--fs-h5-max) - var(--fs-h5-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h5-max)
  );
  --fs-h6: clamp(
    var(--fs-h6-min),
    calc(
      var(--fs-h6-min) + (var(--fs-h6-max) - var(--fs-h6-min)) *
        ((100vw - var(--fluid-min-width)) / var(--fluid-range))
    ),
    var(--fs-h6-max)
  );

  /* line-heights */
  --lh-tight: 1.25;
  --lh-snug: 1.4;
  --lh-heading-tight: 1.25;
  --lh-heading: 1.3;
  --lh-heading-relaxed: 1.4;
  --lh-base: 1.5;
  --lh-loose: 1.6;

  /* weights: 400 / 500 / 600 / 700 */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
}

body {
  background-color: var(--background-color);
  color: var(--black);
  font-family: var(--font-secondary); /* Poppins — UI default */
  font-size: var(--fs-base);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
}

/* Editorial / content type — sitewide */
:is(p, ul, ol, li, blockquote, figcaption),
.news-title,
.news-card :is(.h5, .h6, .h4),
.blog-post :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-primary); /* PT Serif */
}

/* UI chrome lists stay Poppins */
:where(
  .nav-links,
  .secondary-nav,
  .mobile-navbar,
  .top-header,
  .other-sites,
  .social-icons,
  .footer-icons,
  footer,
  .tab_list,
  .tab_item,
  .yoast-breadcrumbs,
  .page-numbers,
  .navigation,
  [class*="badge"]
) :is(ul, ol, li),
:where(
  .nav-links,
  .secondary-nav,
  .mobile-navbar,
  .top-header,
  .other-sites,
  .social-icons,
  .footer-icons,
  footer,
  .tab_list,
  .tab_item,
  .yoast-breadcrumbs,
  .page-numbers,
  .navigation,
  [class*="btn"],
  [class*="badge"],
  button,
  input,
  select,
  textarea,
  label
) {
  font-family: var(--font-secondary);
}

a {
  color: var(--black);
  transition: all 0.3s;
  text-decoration: none;
}

a:hover {
  color: var(--secondary-color);
}

label:has(+ input[required])::after,
label:has(+ select[required])::after,
label:has(+ textarea[required])::after {
  content: " *";
  color: #dc2626;
}

/* ========== component styles ========== */

.category-badge {
  background-color: var(--badge-background-color);
  color: var(--badge-text-color);
  border: 1px solid var(--background-gray);
}

.category-badge:hover {
  background-color: var(--background-color);
  border: 1px solid var(--secondary-color);
}

.btn-primary {
  background-color: var(--primary-color);
  color: var(--background-color);
  border: 1px solid var(--primary-color);
	border-radius: 4px;
}

.btn-primary:hover {
  background-color: var(--secondary-color);
  border: 1px solid var(--secondary-color);
  color: var(--white);
}

.btn-primary svg {
  fill: var(--white);
}

/* ========== utility styles ========== */
.bg-white {
  background-color: var(--background-color) !important;
}

.bg-yellow {
  background-color: var(--bg-yellow) !important;
}

.bg-gray {
  background-color: var(--medium-gray) !important;
}

.bg-light-gray {
  background-color: var(--light-gray) !important;
}

.text-white {
  color: var(--background-color) !important;
}

.text-secondary {
  color: var(--secondary-color) !important;
}

.border {
  border: 1px solid var(--background-gray);
}

.border-top {
  border-top: 1px solid var(--background-gray);
}

.border-bottom {
  border-bottom: 1px solid var(--background-gray);
}

.border-none {
  border: none !important;
}

.border-primary-2 {
  border: 2px solid var(--primary-color);
}

/* ========== custom styles ========== */
.top-header {
  background-color: var(--primary-color);
  color: var(--background-color);
}

.other-sites li a {
  color: var(--background-color);
  text-decoration: none;
  position: relative;
  padding: 2px 0;
}

.other-sites li a:after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  right: 0;
  opacity: 0;
  width: 0;
  height: 1px;
  margin: auto;
  background-color: var(--background-color);
  transition: 0.3s ease-in-out;
}

.other-sites li a:hover:after {
  opacity: 1;
  width: 100%;
}

.social-icons li {
  color: var(--background-color);
}

.social-icons li a {
  text-decoration: none;
}

.social-icons li a svg {
  fill: var(--background-color);
}

.social-icons li:hover a svg {
  fill: var(--secondary-color);
}

.facebook-icon svg,
.linkedin-icon svg,
.x-icon svg,
.youtube-icon svg,
.instagram-icon svg {
  fill: var(--black);
}

.facebook-icon:hover svg,
.linkedin-icon:hover svg,
.x-icon:hover svg,
.youtube-icon:hover svg,
.instagram-icon:hover svg {
  fill: var(--background-color);
}

.facebook-icon:hover {
  background-color: #1877f2;
}

.linkedin-icon:hover {
  background-color: #0a66c2;
}

.x-icon:hover {
  background-color: #1da1f2;
}

.youtube-icon:hover {
  background-color: #ff0000;
}

.instagram-icon:hover {
  background: radial-gradient(circle at 30% 107%,
      #fdf497 0%,
      #fdf497 5%,
      #fd5949 45%,
      #d6249f 60%,
      #285aeb 90%);
}

.search-input {
  background-color: var(--badge-background-color);
  border: 1px solid var(--background-gray);
  font-size: var(--fs-sm); /* only delta vs body/input */
}

.search-input:focus {
  border: 1px solid var(--secondary-color);
  background: none;
  transition: var(--transition);
}

.hamburger-menu {
  background-color: transparent;
  color: var(--black);
}

.nav-links li a {
  position: relative;
}

.nav-links li a:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 5px;
  height: 100%;
  background-color: var(--background-color);
  -webkit-transition: 0.4s;
  -moz-transition: 0.4s;
  transition: 0.4s;
}

.nav-links {
  border-bottom: 5px solid var(--background-gray);
}

.nav-links li {
  border-bottom: 1px solid var(--background-gray);
}

.nav-links li a:hover:after {
  background-color: var(--secondary-color);
}

.mobile-navbar {
  border-top: 1px solid #e5e5e5;
}

.mobile-navbar ul li a svg {
  fill: var(--text-light);
}

.mobile-navbar ul li.active a {
  color: var(--secondary-color);
}

.mobile-navbar ul li.active a svg {
  fill: var(--secondary-color);
}

.mobile-navbar ul li.active a .svg-container {
  background-color: var(--bg-yellow);
}

.secondary-nav li a:before {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0;
  right: 0;
  width: 0;
  height: 2px;
  background-color: var(--secondary-color);
  transition: 0.3s ease-in-out;
}

.secondary-nav li a:hover:before {
  width: 100%;
}

.more-link:hover svg {
  fill: var(--secondary-color);
}

.header ul .dropdown ul {
  background-color: var(--background-color);
  box-shadow: 0 0 30px rgb(127 137 161 / 0.25);
  transition: all 0.3s;
}

footer {
  background-color: var(--black);
  padding-block: 30px;
  text-align: center;
}

footer p {
  font-size: var(--fs-sm); /* only delta vs body/p */
}

.footer-icons li a {
  background-color: var(--background-color);
  color: var(--black);
  text-decoration: none;
}

footer:not(.footer-icons) li a {
  color: var(--background-color);
}

footer .other-sites li a:after {
  background-color: var(--secondary-color);
}

footer img {
  filter: brightness(0) invert(1);
}

/* ========== blog post page ========== */
/* breadcrumb */
.blog-post .heading {
  border-bottom: 1px solid var(--background-gray);
}

.blog-post .heading p {
  font-size: var(--fs-lg); /* only delta vs body/p */
  color: #777;
}

.author-section {
  color: #6b6b6b;
}

.author-section a:hover {
  color: var(--secondary-color);
}

span.text::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: #6b6b6b;
}

.blog-post a {
  color: var(--secondary-color);
}

.blog-post figcaption {
  color: var(--text-light);
  border-bottom: 1px solid var(--background-gray);
}

.blog-post blockquote {
  background-color: var(--background-gray);
  border-left: 4px solid var(--secondary-color);
}

.news-sidebar {
  /* Hides default numbers */
  list-style-type: none;
  /* Sets counter to 1, so the first item increments to 2 */
  counter-reset: custom-counter 1;
}

.news-sidebar li {
  padding-block: 12px;
  padding-left: 30px;
  counter-increment: custom-counter;
  position: relative;
}

.news-sidebar li:before {
  content: counter(custom-counter) "";
  color: #707070;
  position: absolute;
  left: 0;
  top: 5px;
  width: 0;
  text-align: right;
  font-size: 2rem;
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
}

/* ========== author page ========== */
/* ========== pagination ========== */

.navigation .nav-links {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
  border: none;
}

.page-numbers {
  width: 45px;
  height: 45px;
  align-items: center;
  justify-content: center;
  display: flex;
  background-color: var(--background-gray);
  border-radius: 999px;
}

.page-numbers.current {
  background-color: var(--primary-color);
  color: var(--white);
}

.page-numbers:hover {
  background-color: var(--primary-color);
  color: var(--white);
}

.page-numbers.dots {
  background-color: transparent;
  color: var(--black);
  cursor: default;
}

.scroll-top {
  border: 0;
  background: #fff;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  opacity: 0;
  visibility: hidden;
}

.progress-bg {
  fill: none;
  stroke: #e5e5e5;
  stroke-width: 3;
}

.progress-bar {
  fill: none;
  stroke: var(--primary-color);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 163.36;
  stroke-dashoffset: 163.36;
  transition: stroke-dashoffset 0.1s linear;
}

.wp-block-table .has-fixed-layout {
  table-layout: fixed;
  width: 100%
}

.wp-block-table .has-fixed-layout td,
.wp-block-table .has-fixed-layout th {
  word-break: break-word
}

.wp-block-table.is-style-stripes {
  background-color: initial;
  border-collapse: inherit;
  border-spacing: 0;
  border-bottom: 1px solid #f0f0f0
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: #f0f0f0
}

.wp-block-table.is-style-stripes td,
.wp-block-table.is-style-stripes th {
  border-color: #0000
}

@media (min-width: 1200px) {
  .xl-border-right {
    border-right: 1px solid #f0f0f0;
  }
}

.author-card ul a {
  background: var(--background-gray);
}

.sidebar-latest-news-category {
  font-family: var(--font-secondary);
}