/* =====================================================
   CATHOLICG33K — BLOG SHELL + UNLIMITED ARCHIVE
===================================================== */

/* Make the injected CatholicG33k shell explicit on single posts. */
.single-post .cg-blog-shell-header,
.single-post .cg-blog-shell-footer,
.single-post .cg-blog-shell-header .cg-header,
.single-post .cg-blog-shell-footer .cg-footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.single-post .cg-blog-shell-header {
  position: relative;
  z-index: 9999;
}

.single-post .cg-blog-shell-footer {
  position: relative;
  z-index: 2;
  width: 100%;
  margin-top: clamp(3rem, 7vw, 6rem);
}

/*
 * The existing global CSS intentionally hides the block-theme
 * template parts on single posts. Keep those hidden so the
 * WordPress theme header/footer do not duplicate the custom shell.
 */
.single-post .wp-site-blocks > .wp-block-template-part {
  display: none !important;
}

/* Keep article content clear of the fixed CatholicG33k header. */
.single-post .wp-site-blocks {
  min-height: 100vh;
}

.single-post main,
.single-post .wp-block-post-content,
.single-post article {
  position: relative;
  z-index: 1;
}

/* Unlimited archive additions. */
.cg-blog-page-unlimited .cg-blog-archive-count {
  width: fit-content;
  margin: 1.35rem auto 0;
  padding: .45rem .8rem;
  color: rgba(217,163,0,.78);
  background: rgba(217,163,0,.045);
  border: 1px solid rgba(217,163,0,.16);
  font-family: var(--cg-font-heading);
  font-size: .61rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.cg-blog-page-unlimited .cg-blog-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.cg-blog-page-unlimited .cg-blog-body {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.cg-blog-page-unlimited .cg-blog-body > p:not(.cg-blog-date) {
  flex: 1;
}

.cg-blog-page-unlimited .cg-blog-placeholder-image {
  width: 58px !important;
  height: 58px !important;
  margin: 61px auto !important;
  object-fit: contain !important;
  filter: drop-shadow(0 0 14px rgba(217,163,0,.22));
}

.cg-blog-page-unlimited .cg-blog-empty {
  grid-column: 1 / -1;
  padding: 2rem;
  text-align: center;
}

@media (max-width: 768px) {
  .single-post .cg-blog-shell-footer {
    margin-top: 3rem;
  }
}
/* =====================================================
   CATHOLICG33K — BLOG PREVIOUS / NEXT NAVIGATION
===================================================== */

/* Navigation container */
.single-post .wp-block-group:has(> .wp-block-post-navigation-link),
.single-post .post-navigation .nav-links {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1rem !important;

  width: min(940px, calc(100% - 2rem)) !important;
  max-width: 940px !important;

  margin: clamp(3rem, 6vw, 5rem) auto 0 !important;
  padding: 2rem 0 0 !important;

  border-top: 1px solid rgba(217, 163, 0, 0.18) !important;
}

/* Individual previous and next cards */
.single-post .wp-block-post-navigation-link,
.single-post .post-navigation .nav-previous,
.single-post .post-navigation .nav-next {
  position: relative !important;

  display: grid !important;
  align-items: center !important;
  gap: 0.9rem !important;

  min-width: 0 !important;
  min-height: 125px !important;

  margin: 0 !important;
  padding: 1.3rem 1.5rem !important;

  overflow: hidden !important;

  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(217, 163, 0, 0.08),
      transparent 48%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.025),
      rgba(255, 255, 255, 0.007)
    ),
    #070910 !important;

  border: 1px solid rgba(217, 163, 0, 0.25) !important;
  border-radius: 3px !important;

  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.025) !important;

  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease !important;
}

/* Gold line across the top */
.single-post .wp-block-post-navigation-link::before,
.single-post .post-navigation .nav-previous::before,
.single-post .post-navigation .nav-next::before {
  content: "" !important;

  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;

  height: 1px !important;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(217, 163, 0, 0.65),
    transparent
  ) !important;
}

/* Previous alignment */
.single-post .wp-block-post-navigation-link-previous,
.single-post .post-navigation .nav-previous {
  grid-template-columns: auto minmax(0, 1fr) !important;
  text-align: left !important;
}

/* Next alignment */
.single-post .wp-block-post-navigation-link-next,
.single-post .post-navigation .nav-next {
  grid-template-columns: minmax(0, 1fr) auto !important;
  text-align: right !important;
}

/* Link typography */
.single-post .wp-block-post-navigation-link a,
.single-post .post-navigation .nav-previous a,
.single-post .post-navigation .nav-next a {
  position: static !important;

  display: block !important;

  color: rgba(255, 255, 255, 0.92) !important;

  font-family: var(--cg-font-heading) !important;
  font-size: clamp(0.7rem, 1.5vw, 0.82rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.055em !important;
  line-height: 1.65 !important;

  text-decoration: none !important;
  text-transform: uppercase !important;

  transition: color 0.25s ease !important;
}

/* Make the entire card clickable */
.single-post .wp-block-post-navigation-link a::after,
.single-post .post-navigation .nav-previous a::after,
.single-post .post-navigation .nav-next a::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
}

/* Arrow styling */
.single-post .wp-block-post-navigation-link__arrow-previous,
.single-post .wp-block-post-navigation-link__arrow-next {
  position: relative !important;
  z-index: 2 !important;

  color: var(--cg-gold) !important;

  font-size: 1.3rem !important;
  line-height: 1 !important;
}

/* Hover effect */
.single-post .wp-block-post-navigation-link:hover,
.single-post .post-navigation .nav-previous:hover,
.single-post .post-navigation .nav-next:hover {
  transform: translateY(-4px) !important;

  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(217, 163, 0, 0.14),
      transparent 52%
    ),
    linear-gradient(
      180deg,
      rgba(217, 163, 0, 0.065),
      rgba(255, 255, 255, 0.008)
    ),
    #080a11 !important;

  border-color: rgba(217, 163, 0, 0.62) !important;

  box-shadow:
    0 25px 65px rgba(0, 0, 0, 0.42),
    0 0 28px rgba(217, 163, 0, 0.075) !important;
}

.single-post .wp-block-post-navigation-link:hover a,
.single-post .post-navigation .nav-previous:hover a,
.single-post .post-navigation .nav-next:hover a {
  color: var(--cg-gold) !important;
}

/* Keyboard accessibility */
.single-post .wp-block-post-navigation-link:focus-within,
.single-post .post-navigation .nav-previous:focus-within,
.single-post .post-navigation .nav-next:focus-within {
  border-color: var(--cg-gold) !important;

  box-shadow:
    0 0 0 3px rgba(217, 163, 0, 0.13),
    0 22px 58px rgba(0, 0, 0, 0.35) !important;
}

/* Mobile */
@media (max-width: 700px) {
  .single-post .wp-block-group:has(> .wp-block-post-navigation-link),
  .single-post .post-navigation .nav-links {
    grid-template-columns: 1fr !important;
  }

  .single-post .wp-block-post-navigation-link,
  .single-post .post-navigation .nav-previous,
  .single-post .post-navigation .nav-next {
    min-height: 105px !important;
  }

  .single-post .wp-block-post-navigation-link-next,
  .single-post .post-navigation .nav-next {
    grid-template-columns: auto minmax(0, 1fr) !important;
    text-align: left !important;
  }

  .single-post
    .wp-block-post-navigation-link-next
    .wp-block-post-navigation-link__arrow-next {
    order: -1 !important;
  }
}