/* ==========================================================================
   Blog – FIT / Apex Strength
   Single posts + blog listing / archives (see inc/blog.php).
   ========================================================================== */

.fit-post,
.fit-blog {
   --fit-header-h: 64px;
   --fit-surface: #121212;
   --fit-surface-subtle: #1e1e1e;
   --fit-line: #2a2a2a;
   --fit-prose-w: 720px;
   --fit-font-text: 'Inter', system-ui, -apple-system, sans-serif;
   color: var(--fit-on-surface);
   font-family: var(--fit-font-text);
   letter-spacing: normal;
}

@media (min-width: 768px) {
   .fit-post,
   .fit-blog {
      --fit-header-h: 72px;
   }
}

/* Undo Hello Elementor's narrow .site-main box */
body:not([class*=elementor-page-]) .site-main.fit-post,
body:not([class*=elementor-page-]) .site-main.fit-blog {
   max-width: none;
   width: 100%;
   padding: 0;
   margin: 0;
}

.fit-container {
   max-width: var(--fit-container-max);
   margin-inline: auto;
   padding-inline: var(--fit-gutter);
}

@media (max-width: 575px) {
   .fit-post,
   .fit-blog {
      --fit-gutter: 16px;
   }
}

.fit-eyebrow {
   display: inline-block;
   font-family: var(--fit-font-text);
   font-size: 12px;
   font-weight: 700;
   line-height: 1;
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--fit-brand-red);
}

.fit-chip {
   display: inline-flex;
   align-items: center;
   padding: 6px 10px;
   font-size: 11px;
   font-weight: 700;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   line-height: 1;
   color: #fff !important;
   background: var(--fit-brand-red);
   border: 1px solid var(--fit-brand-red);
   border-radius: var(--fit-radius-lg);
   text-decoration: none !important;
   transition: background var(--fit-transition), color var(--fit-transition);
}

.fit-chip:hover {
   background: transparent;
   color: var(--fit-brand-red) !important;
}

.fit-chip--ghost {
   background: transparent;
   border-color: var(--fit-line);
   color: var(--fit-text-secondary) !important;
   text-transform: none;
   letter-spacing: 0.02em;
   font-size: 13px;
}

.fit-chip--ghost:hover {
   border-color: var(--fit-brand-red);
}

.fit-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   padding: 16px 28px;
   font-family: var(--fit-font-text);
   font-size: 14px;
   font-weight: 700;
   letter-spacing: 0.05em;
   text-transform: uppercase;
   line-height: 1;
   color: #fff !important;
   background: var(--fit-brand-red);
   border-radius: var(--fit-radius-lg);
   text-decoration: none !important;
   white-space: nowrap;
   transition: background var(--fit-transition), transform var(--fit-transition);
}

.fit-btn:hover {
   background: #c0161c;
   transform: translateY(-1px);
}

/* ---- Reading progress ---- */
.fit-progress {
   position: fixed;
   top: var(--fit-header-h, 64px);
   left: 0;
   right: 0;
   height: 3px;
   z-index: 9998;
   pointer-events: none;
}

@media (min-width: 768px) {
   .fit-progress {
      top: 72px;
   }
}

.fit-progress__bar {
   display: block;
   height: 100%;
   background: var(--fit-brand-red);
   transform: scaleX(0);
   transform-origin: 0 50%;
   box-shadow: 0 0 12px rgba(227, 30, 36, 0.6);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.fit-post-hero {
   position: relative;
   display: flex;
   align-items: flex-end;
   min-height: 380px;
   padding: calc(var(--fit-header-h) + 56px) 0 56px;
   background:
      radial-gradient(ellipse 60% 80% at 85% 0%, rgba(227, 30, 36, 0.22), transparent 70%),
      linear-gradient(180deg, #161616 0%, #000 100%);
   border-bottom: 1px solid var(--fit-line);
   overflow: hidden;
   isolation: isolate;
}

.fit-post-hero--image {
   min-height: min(78vh, 760px);
   background: #000;
}

.fit-post-hero__media {
   position: absolute;
   inset: 0;
   z-index: -1;
}

.fit-post-hero__media::after {
   content: '';
   position: absolute;
   inset: 0;
   background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 35%, rgba(0, 0, 0, 0.85) 75%, #000 100%),
      linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, transparent 70%);
}

.fit-post-hero__img {
   width: 100% !important;
   height: 100% !important;
   max-width: none !important;
   object-fit: cover;
   filter: grayscale(0.35) contrast(1.05);
   animation: fit-hero-zoom 1.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

@keyframes fit-hero-zoom {
   from {
      transform: scale(1.06);
   }
}

.fit-post-hero__inner {
   width: 100%;
   max-width: var(--fit-container-max);
   margin-inline: auto;
   padding-inline: var(--fit-gutter);
}

.fit-post-hero__inner > * {
   max-width: 920px;
}

@media (prefers-reduced-motion: reduce) {
   .fit-post-hero__img {
      animation: none;
   }
}

.fit-post-breadcrumb {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin-bottom: 20px;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--fit-text-secondary);
}

.fit-post-breadcrumb a {
   color: var(--fit-text-secondary) !important;
   text-decoration: none !important;
   transition: color var(--fit-transition);
}

.fit-post-breadcrumb a:hover {
   color: #fff !important;
}

.fit-post-hero__cats {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin-bottom: 20px;
}

.fit-post .fit-post-hero__title,
.fit-blog .fit-post-hero__title {
   margin: 0 0 20px;
   font-family: var(--fit-font-heading);
   font-size: clamp(36px, 6vw, 72px);
   font-weight: 900;
   line-height: 1.05;
   letter-spacing: -0.02em;
   color: #fff;
   text-wrap: balance;
   overflow-wrap: break-word;
}

.fit-post-hero__lead {
   margin: 0 0 28px;
   font-size: clamp(17px, 1.6vw, 20px);
   line-height: 1.6;
   color: #d4d4d4;
}

.fit-post-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 10px 24px;
   margin: 0;
   padding: 0;
   list-style: none;
   font-size: 14px;
   color: var(--fit-text-secondary);
}

.fit-post-meta li {
   display: inline-flex;
   align-items: center;
   gap: 10px;
}

.fit-post-meta li + li::before {
   content: none;
}

@media (min-width: 576px) {
   .fit-post-meta li + li::before {
      content: '';
   }
}

.fit-post-meta li + li::before {
   width: 4px;
   height: 4px;
   margin-right: 14px;
   background: var(--fit-brand-red);
   border-radius: 50%;
}

.fit-post-meta__author {
   color: #fff;
   font-weight: 700;
}

.fit-post-meta__avatar {
   width: 36px !important;
   height: 36px !important;
   border-radius: 50%;
   border: 2px solid var(--fit-brand-red);
}

/* ==========================================================================
   Layout: share rail + article
   ========================================================================== */
.fit-post-layout {
   position: relative;
   max-width: calc(var(--fit-prose-w) + 2 * var(--fit-gutter));
   margin: 0 auto;
   padding: 64px var(--fit-gutter) 32px;
}

.fit-share {
   display: flex;
   align-items: center;
   gap: 10px;
}

.fit-share--rail {
   display: none;
}

@media (min-width: 1100px) {
   .fit-share--rail {
      display: flex;
      flex-direction: column;
      position: absolute;
      top: 64px;
      bottom: 32px;
      left: -56px;
   }

   .fit-share--rail > * {
      position: sticky;
      top: calc(var(--fit-header-h) + 32px);
   }

   .fit-share--rail > :nth-child(2) { top: calc(var(--fit-header-h) + 82px); }
   .fit-share--rail > :nth-child(3) { top: calc(var(--fit-header-h) + 132px); }
   .fit-share--rail > :nth-child(4) { top: calc(var(--fit-header-h) + 182px); }
   .fit-share--rail > :nth-child(5) { top: calc(var(--fit-header-h) + 232px); }
}

.fit-share__label {
   margin-right: 6px;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--fit-text-secondary);
}

.fit-share__btn,
button.fit-share__btn {
   position: relative;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   padding: 0;
   color: var(--fit-on-surface) !important;
   background: var(--fit-surface-subtle);
   border: 1px solid var(--fit-line) !important;
   border-radius: 50%;
   cursor: pointer;
   text-decoration: none !important;
   transition: background var(--fit-transition), border-color var(--fit-transition), color var(--fit-transition);
}

.fit-share__btn:hover,
.fit-share__btn:focus-visible,
.fit-share__btn.is-copied {
   color: #fff !important;
   background: var(--fit-brand-red) !important;
   border-color: var(--fit-brand-red) !important;
}

.fit-share__btn[data-tooltip]::after {
   content: attr(data-tooltip);
   position: absolute;
   bottom: calc(100% + 8px);
   left: 50%;
   transform: translateX(-50%);
   padding: 6px 10px;
   font-size: 12px;
   white-space: nowrap;
   color: #fff;
   background: #000;
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
}

/* ==========================================================================
   Article typography
   ========================================================================== */
.fit-prose {
   font-size: 18px;
   line-height: 1.75;
   color: #d9d6d5;
   overflow-wrap: break-word;
}

.fit-prose > * {
   margin-top: 0;
   margin-bottom: 1.4em;
}

.fit-prose > :last-child {
   margin-bottom: 0;
}

/* Drop cap on the opening paragraph */
.fit-prose > p:first-child::first-letter {
   float: left;
   margin: 0.08em 0.12em 0 0;
   font-family: var(--fit-font-heading);
   font-size: 3.6em;
   font-weight: 900;
   line-height: 0.8;
   color: var(--fit-brand-red);
}

.fit-prose p:empty {
   display: none;
}

.fit-post .fit-prose h2,
.fit-post .fit-prose h3,
.fit-post .fit-prose h4 {
   font-family: var(--fit-font-heading);
   color: #fff !important;
   letter-spacing: -0.01em;
   text-wrap: balance;
   scroll-margin-top: calc(var(--fit-header-h) + 24px);
}

.fit-post .fit-prose h2 {
   position: relative;
   margin-top: 2.2em;
   margin-bottom: 0.7em;
   padding-top: 20px;
   font-size: clamp(26px, 3vw, 34px);
   font-weight: 800 !important;
   line-height: 1.2;
}

.fit-post .fit-prose h2::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 48px;
   height: 4px;
   background: var(--fit-brand-red);
}

.fit-post .fit-prose h3 {
   margin-top: 1.8em;
   margin-bottom: 0.6em;
   font-size: 22px;
   font-weight: 800;
   line-height: 1.35;
}

.fit-post .fit-prose h4 {
   margin-top: 1.6em;
   margin-bottom: 0.5em;
   font-size: 15px;
   font-weight: 800;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--fit-brand-red) !important;
}

.fit-prose strong,
.fit-prose b {
   color: #fff;
   font-weight: 700;
}

.fit-prose a {
   color: #fff !important;
   text-decoration: underline !important;
   text-decoration-color: var(--fit-brand-red) !important;
   text-decoration-thickness: 2px !important;
   text-underline-offset: 4px;
   transition: color var(--fit-transition), text-decoration-color var(--fit-transition);
}

.fit-prose a:hover {
   color: var(--fit-brand-red) !important;
}

/* Lists */
.fit-prose ul,
.fit-prose ol {
   padding-left: 0;
   list-style: none;
}

.fit-prose li {
   position: relative;
   margin-bottom: 0.6em;
   padding-left: 2em;
}

.fit-prose ul > li::before {
   content: '';
   position: absolute;
   top: 0.7em;
   left: 0.4em;
   width: 10px;
   height: 3px;
   background: var(--fit-brand-red);
}

.fit-prose ol {
   counter-reset: fit-ol;
}

.fit-prose ol > li {
   counter-increment: fit-ol;
}

.fit-prose ol > li::before {
   content: counter(fit-ol, decimal-leading-zero);
   position: absolute;
   top: 0.2em;
   left: 0;
   font-family: var(--fit-font-heading);
   font-size: 0.8em;
   font-weight: 900;
   color: var(--fit-brand-red);
}

.fit-prose li > ul,
.fit-prose li > ol {
   margin-top: 0.6em;
}

/* Quotes */
.fit-prose blockquote,
.fit-prose .wp-block-quote {
   position: relative;
   margin: 2.2em 0;
   padding: 28px 32px 28px 36px;
   background: var(--fit-surface);
   border: 0;
   border-left: 4px solid var(--fit-brand-red);
   border-radius: 0 var(--fit-radius-lg) var(--fit-radius-lg) 0;
}

.fit-prose blockquote p {
   margin: 0 0 0.6em;
   font-family: var(--fit-font-heading);
   font-size: 21px;
   font-weight: 700;
   line-height: 1.45;
   color: #fff;
}

.fit-prose blockquote cite,
.fit-prose blockquote footer {
   display: block;
   margin-top: 12px;
   font-size: 13px;
   font-style: normal;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--fit-text-secondary);
}

.fit-prose .wp-block-pullquote {
   margin: 2.4em 0;
   padding: 32px 0;
   text-align: center;
   border-top: 1px solid var(--fit-line);
   border-bottom: 1px solid var(--fit-line);
}

.fit-prose .wp-block-pullquote blockquote {
   margin: 0;
   padding: 0;
   background: none;
   border: 0;
}

.fit-prose .wp-block-pullquote p {
   font-size: clamp(24px, 3vw, 30px);
   font-weight: 900;
   line-height: 1.3;
}

/* Media */
.fit-prose img {
   max-width: 100%;
   height: auto;
   border-radius: var(--fit-radius-lg);
}

.fit-prose figure {
   margin-left: 0;
   margin-right: 0;
}

.fit-prose .wp-block-image,
.fit-prose .wp-block-gallery,
.fit-prose .wp-block-embed,
.fit-prose .wp-block-video {
   margin-top: 2.2em;
   margin-bottom: 2.2em;
}

.fit-prose figcaption,
.fit-prose .wp-element-caption {
   margin-top: 12px;
   font-size: 14px;
   line-height: 1.5;
   text-align: left;
   color: var(--fit-text-secondary);
}

.fit-prose .alignwide,
.fit-prose .alignfull {
   width: auto;
   max-width: none;
}

@media (min-width: 1024px) {
   .fit-prose .alignwide {
      margin-left: -120px;
      margin-right: -120px;
   }
}

.fit-prose .alignfull {
   margin-left: calc(50% - 50vw);
   margin-right: calc(50% - 50vw);
}

.fit-prose .alignfull img {
   width: 100%;
   border-radius: 0;
}

.fit-prose .alignleft {
   float: left;
   margin: 0.4em 1.5em 1em 0;
   max-width: 50%;
}

.fit-prose .alignright {
   float: right;
   margin: 0.4em 0 1em 1.5em;
   max-width: 50%;
}

.fit-prose .wp-block-embed iframe,
.fit-prose iframe {
   max-width: 100%;
}

.fit-prose .wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe {
   width: 100%;
   height: auto;
   aspect-ratio: 16 / 9;
}

/* Separator */
.fit-prose hr,
.fit-prose .wp-block-separator {
   height: 0;
   margin: 3em auto;
   border: 0;
   border-top: 1px solid var(--fit-line);
   overflow: visible;
   text-align: center;
}

.fit-prose hr::after,
.fit-prose .wp-block-separator::after {
   content: '';
   display: block;
   width: 48px;
   height: 4px;
   margin: -2px auto 0;
   background: var(--fit-brand-red);
}

/* Tables */
.fit-prose table {
   width: 100%;
   font-size: 15px;
   border-collapse: collapse;
}

.fit-prose .wp-block-table {
   overflow-x: auto;
}

.fit-prose th,
.fit-prose td {
   padding: 12px 14px;
   text-align: left;
   border: 0;
   border-bottom: 1px solid var(--fit-line);
}

.fit-prose th,
.fit-prose thead td {
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: #fff;
   background: var(--fit-surface-subtle);
}

.fit-prose tbody tr:nth-child(2n) td,
.fit-prose tbody tr:nth-child(2n) th {
   background: rgba(255, 255, 255, 0.02);
}

/* Code */
.fit-prose code,
.fit-prose kbd {
   padding: 0.15em 0.4em;
   font-size: 0.88em;
   color: #ffb4ab;
   background: var(--fit-surface-subtle);
   border-radius: 3px;
}

.fit-prose pre {
   padding: 20px 24px;
   font-size: 15px;
   line-height: 1.6;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   overflow-x: auto;
}

.fit-prose pre code {
   padding: 0;
   color: inherit;
   background: none;
}

/* Gutenberg buttons */
.fit-prose .wp-block-button__link {
   padding: 16px 28px;
   font-size: 14px;
   font-weight: 700;
   letter-spacing: 0.05em;
   text-transform: uppercase;
   text-decoration: none !important;
   color: #fff !important;
   background: var(--fit-brand-red);
   border-radius: var(--fit-radius-lg);
}

.fit-prose .wp-block-button__link:hover {
   background: #c0161c;
}

.fit-prose .is-style-outline .wp-block-button__link {
   color: var(--fit-brand-red) !important;
   background: transparent;
   border: 1px solid var(--fit-brand-red);
}

/* Group block with a background colour = highlight box */
.fit-prose .wp-block-group.has-background {
   padding: 28px 32px;
   border-radius: var(--fit-radius-lg);
}

.fit-prose::after {
   content: '';
   display: table;
   clear: both;
}

/* ---- Article footer ---- */
.fit-post-pages {
   margin-top: 32px;
   font-weight: 700;
}

.fit-post-footer {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   margin-top: 56px;
   padding-top: 28px;
   border-top: 1px solid var(--fit-line);
}

.fit-post-tags {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
}

/* ==========================================================================
   Prev / next
   ========================================================================== */
.fit-post-nav {
   display: grid;
   grid-template-columns: 1fr;
   gap: 16px;
   margin-top: 32px;
   margin-bottom: 64px;
   max-width: calc(960px + 2 * var(--fit-gutter));
}

@media (min-width: 768px) {
   .fit-post-nav {
      grid-template-columns: 1fr 1fr;
   }
}

.fit-post-nav__link {
   display: flex;
   flex-direction: column;
   gap: 12px;
   padding: 24px 28px;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   text-decoration: none !important;
   transition: border-color var(--fit-transition), transform var(--fit-transition);
}

.fit-post-nav__link--next {
   grid-column: -2;
   text-align: right;
}

.fit-post-nav__link:hover {
   border-color: var(--fit-brand-red);
   transform: translateY(-2px);
}

.fit-post-nav__title {
   font-family: var(--fit-font-heading);
   font-size: 18px;
   font-weight: 800;
   line-height: 1.35;
   color: #fff;
}

/* ==========================================================================
   CTA
   ========================================================================== */
.fit-post-cta {
   max-width: calc(960px + 2 * var(--fit-gutter));
   margin-bottom: 96px;
}

.fit-post-cta__box {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   gap: 28px;
   padding: 40px 28px;
   background:
      radial-gradient(ellipse 50% 120% at 100% 0%, rgba(227, 30, 36, 0.35), transparent 70%),
      var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   overflow: hidden;
}

.fit-post-cta__box::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
   width: 4px;
   background: var(--fit-brand-red);
}

@media (min-width: 900px) {
   .fit-post-cta__box {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      padding: 48px 56px;
   }
}

.fit-post .fit-post-cta__title {
   margin: 12px 0 10px;
   font-family: var(--fit-font-heading);
   font-size: clamp(24px, 3vw, 34px);
   font-weight: 900 !important;
   line-height: 1.2;
   color: #fff !important;
}

.fit-post-cta__box p {
   max-width: 560px;
   margin: 0;
   font-size: 16px;
   line-height: 1.6;
   color: var(--fit-text-secondary);
}

/* ==========================================================================
   Related posts
   ========================================================================== */
.fit-related {
   margin-bottom: 96px;
   text-align: center;
}

.fit-post .fit-related__title {
   margin: 12px 0 40px;
   font-family: var(--fit-font-heading);
   font-size: clamp(28px, 4vw, 44px);
   font-weight: 800 !important;
   line-height: 1.2;
   color: #fff !important;
}

.fit-related__grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
   gap: 24px;
   text-align: left;
}

.fit-card {
   display: flex;
   flex-direction: column;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   overflow: hidden;
   text-decoration: none !important;
   transition: border-color var(--fit-transition), transform var(--fit-transition);
}

.fit-card:hover {
   border-color: var(--fit-brand-red);
   transform: translateY(-4px);
}

.fit-card__media {
   aspect-ratio: 16 / 10;
   background:
      radial-gradient(ellipse 70% 90% at 80% 0%, rgba(227, 30, 36, 0.25), transparent 70%),
      var(--fit-surface-subtle);
   overflow: hidden;
}

.fit-card__media img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   filter: grayscale(1);
   transition: filter 0.4s ease, transform 0.6s ease;
}

.fit-card__media img.fit-card__logo {
   width: 40%;
   height: 100%;
   margin: 0 auto;
   display: block;
   object-fit: contain;
   opacity: 0.35;
   filter: none;
}

.fit-card:hover .fit-card__media img {
   filter: grayscale(0);
   transform: scale(1.04);
}

.fit-card__body {
   display: flex;
   flex: 1;
   flex-direction: column;
   gap: 10px;
   padding: 24px;
}

.fit-card__date {
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--fit-text-secondary);
}

.fit-card .fit-card__title {
   margin: 0;
   font-family: var(--fit-font-heading);
   font-size: 19px;
   font-weight: 800 !important;
   line-height: 1.35;
   color: #fff !important;
   transition: color var(--fit-transition);
}

.fit-card:hover .fit-card__title {
   color: var(--fit-brand-red) !important;
}

.fit-card__more {
   margin-top: auto;
   padding-top: 8px;
   font-size: 13px;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--fit-brand-red);
}

/* ==========================================================================
   Comments
   ========================================================================== */
.fit-post-comments {
   max-width: calc(var(--fit-prose-w) + 2 * var(--fit-gutter));
   margin-bottom: 96px;
}

.fit-post #comments {
   padding: 40px 28px;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
}

@media (min-width: 768px) {
   .fit-post #comments {
      padding: 48px;
   }
}

.fit-post #comments .title-comments,
.fit-post #comments .comment-reply-title {
   margin: 0 0 12px;
   font-family: var(--fit-font-heading);
   font-size: 26px;
   font-weight: 800 !important;
   color: #fff !important;
}

.fit-post #comments .comment-list + .comment-respond,
.fit-post #comments .comment-navigation + .comment-respond {
   margin-top: 40px;
}

.fit-post #comments .comment .comment-body {
   border-block-end-color: var(--fit-line);
}

.fit-post #comments a {
   color: var(--fit-on-surface);
   text-decoration: none;
}

.fit-post #comments a:hover {
   color: var(--fit-brand-red);
}

.fit-post .comment-notes,
.fit-post .logged-in-as {
   margin: 0 0 24px;
   font-size: 14px;
   color: var(--fit-text-secondary);
}

.fit-post .comment-form {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0 20px;
}

@media (min-width: 640px) {
   .fit-post .comment-form {
      grid-template-columns: 1fr 1fr;
   }

   .fit-post .comment-form > .comment-notes,
   .fit-post .comment-form > .logged-in-as,
   .fit-post .comment-form > .comment-form-comment,
   .fit-post .comment-form > .comment-form-url,
   .fit-post .comment-form > .comment-form-cookies-consent,
   .fit-post .comment-form > .form-submit {
      grid-column: 1 / -1;
   }
}

.fit-post .comment-form p {
   margin: 0 0 20px;
}

.fit-post .comment-form label {
   display: block;
   margin-bottom: 8px;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--fit-on-surface);
}

.fit-post .comment-form .required {
   color: var(--fit-brand-red);
}

.fit-post .comment-form input[type="text"],
.fit-post .comment-form input[type="email"],
.fit-post .comment-form input[type="url"],
.fit-post .comment-form textarea {
   width: 100%;
   padding: 14px 16px;
   font-family: var(--fit-font-text);
   font-size: 16px;
   color: #fff;
   background: #000;
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   transition: border-color var(--fit-transition), box-shadow var(--fit-transition);
}

.fit-post .comment-form textarea {
   min-height: 160px;
   resize: vertical;
}

.fit-post .comment-form input:focus,
.fit-post .comment-form textarea:focus {
   outline: none;
   border-color: var(--fit-brand-red);
   box-shadow: 0 0 0 3px rgba(227, 30, 36, 0.2);
}

.fit-post .comment-form-cookies-consent {
   display: flex;
   align-items: flex-start;
   gap: 10px;
}

.fit-post .comment-form-cookies-consent input {
   margin-top: 3px;
   accent-color: var(--fit-brand-red);
}

.fit-post .comment-form-cookies-consent label {
   margin: 0;
   font-size: 14px;
   font-weight: 400;
   letter-spacing: 0;
   text-transform: none;
   color: var(--fit-text-secondary);
}

.fit-post .comment-form .submit {
   padding: 16px 32px;
   font-family: var(--fit-font-text);
   font-size: 14px;
   font-weight: 700;
   letter-spacing: 0.05em;
   text-transform: uppercase;
   color: #fff;
   background: var(--fit-brand-red);
   border: 0 !important;
   border-radius: var(--fit-radius-lg);
   cursor: pointer;
   transition: background var(--fit-transition);
}

.fit-post .comment-form .submit:hover {
   background: #c0161c !important;
}

/* ==========================================================================
   Blog listing (home.php / archive.php)
   ========================================================================== */
.fit-blog-hero {
   min-height: 0;
   padding-top: calc(var(--fit-header-h) + 72px);
   padding-bottom: 64px;
   border-bottom: 0;
}

.fit-blog-hero .fit-eyebrow {
   margin-bottom: 16px;
}

.fit-blog-hero .fit-post-hero__lead {
   max-width: 640px;
   margin-bottom: 0;
}

/* Category filter */
.fit-blog-filter {
   position: sticky;
   top: var(--fit-header-h);
   z-index: 10;
   display: flex;
   gap: 8px;
   padding-top: 16px;
   padding-bottom: 16px;
   overflow-x: auto;
   scrollbar-width: none;
   background: rgba(0, 0, 0, 0.92);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   border-top: 1px solid var(--fit-line);
   border-bottom: 1px solid var(--fit-line);
   max-width: none;
}

.fit-blog-filter::-webkit-scrollbar {
   display: none;
}

@media (min-width: 1328px) {
   .fit-blog-filter {
      padding-inline: calc((100% - var(--fit-container-max)) / 2 + var(--fit-gutter));
   }
}

.fit-blog-filter__link {
   flex-shrink: 0;
   padding: 10px 16px;
   font-size: 13px;
   font-weight: 700;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   line-height: 1;
   color: var(--fit-text-secondary) !important;
   border: 1px solid var(--fit-line);
   border-radius: 999px;
   text-decoration: none !important;
   white-space: nowrap;
   transition: color var(--fit-transition), border-color var(--fit-transition), background var(--fit-transition);
}

.fit-blog-filter__link:hover {
   color: #fff !important;
   border-color: var(--fit-brand-red);
}

.fit-blog-filter__link.is-active {
   color: #fff !important;
   background: var(--fit-brand-red);
   border-color: var(--fit-brand-red);
}

.fit-blog-list {
   padding-top: 56px;
   padding-bottom: 120px;
}

/* Card meta + excerpt (listing) */
.fit-card__meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 6px 12px;
}

.fit-card__cat {
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--fit-brand-red);
}

.fit-card__cat + .fit-card__date::before {
   content: '/';
   margin-right: 12px;
   color: var(--fit-line);
}

.fit-card__excerpt {
   margin: 0;
   font-size: 15px;
   line-height: 1.6;
   color: var(--fit-text-secondary);
}

/* Featured (latest) post */
.fit-card--featured {
   margin-bottom: 24px;
}

.fit-card--featured .fit-card__media {
   position: relative;
}

.fit-card__badge {
   position: absolute;
   top: 16px;
   left: 16px;
}

.fit-card--featured .fit-card__body {
   gap: 16px;
   padding: 28px 24px 32px;
}

.fit-card--featured .fit-card__title {
   font-size: clamp(26px, 3.2vw, 40px);
   font-weight: 900 !important;
   line-height: 1.15;
   letter-spacing: -0.01em;
}

.fit-card--featured .fit-card__excerpt {
   font-size: 17px;
}

.fit-card__cta {
   align-self: flex-start;
   margin-top: 8px;
}

@media (min-width: 900px) {
   .fit-card--featured {
      flex-direction: row;
   }

   .fit-card--featured .fit-card__media {
      flex: 0 0 58%;
      aspect-ratio: auto;
      min-height: 420px;
   }

   .fit-card--featured .fit-card__body {
      justify-content: center;
      padding: 48px;
   }
}

.fit-card--featured:hover .fit-card__title {
   color: #fff !important;
}

/* Pagination */
.fit-blog-pagination {
   margin-top: 64px;
}

.fit-blog-pagination .nav-links {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 8px;
}

.fit-blog-pagination .page-numbers {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-width: 44px;
   height: 44px;
   padding: 0 12px;
   font-weight: 700;
   color: var(--fit-on-surface) !important;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
   text-decoration: none !important;
   transition: border-color var(--fit-transition), background var(--fit-transition);
}

.fit-blog-pagination a.page-numbers:hover {
   border-color: var(--fit-brand-red);
}

.fit-blog-pagination .page-numbers.current {
   color: #fff !important;
   background: var(--fit-brand-red);
   border-color: var(--fit-brand-red);
}

.fit-blog-pagination .page-numbers.dots {
   background: none;
   border: 0;
}

/* Empty state */
.fit-blog-empty {
   max-width: 560px;
   margin: 0 auto;
   padding: 56px 32px;
   text-align: center;
   background: var(--fit-surface);
   border: 1px solid var(--fit-line);
   border-radius: var(--fit-radius-lg);
}

.fit-blog-empty p {
   margin: 12px 0 28px;
   color: var(--fit-text-secondary);
}
