/* =====================================================
   CATHOLICG33K — FLYDOCK MASTER COMPATIBILITY CSS
   WPCode: CSS Snippet / Site Wide Header / Priority 999
   Purpose:
   - One canonical TOC design across Legacy, V2, and Manuscript
   - Shared section/panel rhythm
   - Key Truths support
   - Anchor offset and mobile behavior
===================================================== */

:root {
  --cg33k-master-gold: var(--cg-gold, #d9a300);
  --cg33k-master-bg: var(--cg-bg, #02030a);
  --cg33k-master-card: var(--cg-card, #090b12);
  --cg33k-master-text: var(--cg-text, #f5f1e8);
  --cg33k-master-muted: var(--cg-muted, #9297a3);
  --cg33k-master-border: rgba(217, 163, 0, .24);
  --cg33k-master-border-strong: rgba(217, 163, 0, .52);
  --cg33k-master-header-offset: 5.5rem;
}

html {
  scroll-padding-top: var(--cg33k-master-header-offset);
}

.cg33k-master-article,
.cg-flydock-manuscript-page,
.cg33k-flydock2,
.cg-article-page {
  color: var(--cg33k-master-text);
}

.cg33k-master-article *,
.cg-flydock-manuscript-page *,
.cg33k-flydock2 *,
.cg-article-page * {
  box-sizing: border-box;
}

.cg33k-master-article [id],
.cg-flydock-manuscript-page [id],
.cg33k-flydock2 [id],
.cg-article-page [id] {
  scroll-margin-top: var(--cg33k-master-header-offset);
}

/* ---------- Canonical article shell ---------- */

.cg33k-master-article .cg-flydock-manuscript-shell {
  width: min(100%, 56rem);
  margin-inline: auto;
}

.cg33k-master-article .cg-flydock-manuscript-header {
  margin-bottom: clamp(2.5rem, 7vw, 4.5rem);
}

.cg33k-master-article .cg-page-cross-img {
  width: 42px;
  height: 42px;
  margin-inline: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 16px rgba(217, 163, 0, .28));
}

.cg33k-master-article .cg-title {
  text-wrap: balance;
}

.cg33k-master-article .cg-subtitle {
  max-width: 48rem;
  margin-inline: auto;
  text-wrap: balance;
}

/* ---------- Sections ---------- */

.cg-flydock-manuscript-section,
.cg33k-master-section,
.cg33k-flydock2-section,
.cg-article-section {
  position: relative;
  margin: 0;
  padding: clamp(2.35rem, 6vw, 4rem) 0;
  border-bottom: 1px solid rgba(217, 163, 0, .12);
}

.cg-flydock-manuscript-section:last-child,
.cg33k-master-section:last-child,
.cg33k-flydock2-section:last-child,
.cg-article-section:last-child {
  border-bottom: 0;
}

.cg-flydock-manuscript-section > h2,
.cg33k-master-section > h2,
.cg33k-flydock2-section > h2,
.cg-article-section > h2,
.cg-flydock-manuscript-panel > h2,
.cg33k-master-panel > h2 {
  margin: 0 0 1.25rem;
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: clamp(1.28rem, 3.2vw, 1.85rem);
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
  text-wrap: balance;
}

.cg33k-section-eyebrow {
  margin: 0 0 .65rem;
  color: rgba(217, 163, 0, .72);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.cg-flydock-manuscript-prose {
  color: rgba(245, 241, 232, .84);
  font-size: 1rem;
  line-height: 1.88;
}

.cg-flydock-manuscript-prose > :first-child {
  margin-top: 0;
}

.cg-flydock-manuscript-prose > :last-child {
  margin-bottom: 0;
}

.cg-flydock-manuscript-prose p {
  margin: 0 0 1.2rem;
}

.cg-flydock-manuscript-prose ul,
.cg-flydock-manuscript-prose ol {
  margin: 1rem 0 1.5rem;
  padding-left: 1.45rem;
}

.cg-flydock-manuscript-prose li {
  margin-bottom: .55rem;
}

.cg-flydock-manuscript-prose li::marker {
  color: var(--cg33k-master-gold);
}

.cg-flydock-manuscript-prose a {
  color: var(--cg33k-master-gold);
  text-underline-offset: .2em;
}

/* ---------- Canonical panels ---------- */

.cg-flydock-manuscript-panel,
.cg33k-master-panel,
.cg33k-toc-panel {
  margin: clamp(1.8rem, 5vw, 3rem) 0;
  padding: clamp(1.35rem, 4vw, 2.15rem);
  background:
    linear-gradient(180deg, rgba(255,255,255,.026), rgba(255,255,255,.012)),
    var(--cg33k-master-card);
  border: 1px solid var(--cg33k-master-border);
  border-radius: 4px;
  box-shadow: 0 22px 58px rgba(0, 0, 0, .28);
}

.cg33k-master-article .cg-flydock-manuscript-panel:hover,
.cg33k-master-article .cg33k-master-panel:hover,
.cg33k-master-article .cg33k-toc-panel:hover {
  transform: none;
  border-color: rgba(217, 163, 0, .38);
}

.cg-flydock-manuscript-panel--key-truths {
  background:
    linear-gradient(135deg, rgba(217, 163, 0, .11), rgba(255,255,255,.018)),
    var(--cg33k-master-card);
  border-color: rgba(217, 163, 0, .42);
}

.cg-flydock-manuscript-panel--key-truths > h2::before {
  content: "☩";
  margin-right: .55rem;
  color: var(--cg33k-master-gold);
}

.cg-flydock-manuscript-panel--catechism {
  border-left: 3px solid rgba(217, 163, 0, .72);
}

.cg-flydock-manuscript-panel--misconceptions {
  border-color: rgba(217, 163, 0, .34);
}

.cg-flydock-manuscript-panel--prayer {
  text-align: center;
  background:
    radial-gradient(circle at top center, rgba(217, 163, 0, .09), transparent 68%),
    var(--cg33k-master-card);
  border-color: rgba(217, 163, 0, .42);
}

.cg-flydock-manuscript-panel--sources {
  background: rgba(255,255,255,.018);
}

/* ---------- Canonical TOC / link grid ---------- */

.cg-link-grid,
.cg33k-toc-grid,
.cg-article-nav-grid,
.cg-article-toc {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  width: 100%;
  margin-top: 1.25rem;
}

.cg33k-toc-panel {
  position: relative;
  overflow: hidden;
  border-color: rgba(217, 163, 0, .36);
}

.cg33k-toc-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(
    to bottom,
    transparent,
    var(--cg33k-master-gold),
    transparent
  );
  opacity: .72;
}

.cg-resource-link,
.cg33k-toc-link,
.cg-article-nav-grid a,
.cg-article-toc a,
.cg33k-flydock2-toc a {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 54px;
  padding: .9rem 1rem;
  background: rgba(255,255,255,.022);
  border: 1px solid rgba(217, 163, 0, .22);
  border-radius: 3px;
  color: rgba(245, 241, 232, .88);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.35;
  text-align: left;
  text-decoration: none !important;
  text-transform: uppercase;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.cg-resource-link > span:last-child,
.cg33k-toc-link > span:last-child {
  flex: 0 0 auto;
  color: var(--cg33k-master-gold);
  font-size: 1rem;
  line-height: 1;
}

.cg-resource-link:hover,
.cg-resource-link:focus-visible,
.cg33k-toc-link:hover,
.cg33k-toc-link:focus-visible,
.cg-article-nav-grid a:hover,
.cg-article-nav-grid a:focus-visible,
.cg-article-toc a:hover,
.cg-article-toc a:focus-visible,
.cg33k-flydock2-toc a:hover,
.cg33k-flydock2-toc a:focus-visible {
  transform: translateY(-1px);
  background: rgba(217, 163, 0, .085);
  border-color: var(--cg33k-master-border-strong);
  color: var(--cg33k-master-gold);
  outline: none;
}

.cg33k-toc-link.is-current,
.cg33k-toc-link[aria-current="location"] {
  background: rgba(217, 163, 0, .13);
  border-color: var(--cg33k-master-gold);
  color: var(--cg33k-master-gold);
}

.cg33k-toc-panel[data-cg33k-toc-ready="true"] .cg-flydock-manuscript-prose {
  display: contents;
}

/* Normalize old V2 details TOC when compatibility JS converts it. */

.cg33k-flydock2-toc {
  margin: 0 0 2.5rem;
  padding: clamp(1.35rem, 4vw, 2.15rem);
  background: var(--cg33k-master-card);
  border: 1px solid var(--cg33k-master-border);
}

.cg33k-flydock2-toc > summary {
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .82rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
}


/* ---------- V2 compatibility components ---------- */

.cg33k-master-misconception {
  margin: 1.25rem 0;
  padding: 1.2rem 1.25rem;
  background: rgba(255,255,255,.018);
  border-left: 3px solid rgba(217, 163, 0, .62);
}

.cg33k-master-misconception h3 {
  margin: 0 0 .65rem;
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .86rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cg33k-master-reference {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) 1fr;
  gap: 1rem;
  margin: .85rem 0;
  padding: 1rem;
  background: rgba(255,255,255,.018);
  border: 1px solid rgba(217, 163, 0, .18);
}

.cg33k-flydock2-reference-label {
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cg33k-flydock2-reference-body > :first-child,
.cg33k-master-misconception > div > :first-child {
  margin-top: 0;
}

.cg33k-flydock2-reference-body > :last-child,
.cg33k-master-misconception > div > :last-child {
  margin-bottom: 0;
}

/* ---------- Quotes ---------- */

.cg-flydock-manuscript-quote-wrap {
  margin: 2.4rem 0;
}

.cg-flydock-manuscript-quote {
  margin: 0;
  padding: clamp(1.35rem, 4vw, 2rem);
  background: rgba(217, 163, 0, .055);
  border-top: 1px solid rgba(217, 163, 0, .30);
  border-bottom: 1px solid rgba(217, 163, 0, .30);
  text-align: center;
}

.cg-flydock-manuscript-quote-text,
.cg-flydock-manuscript-quote-text p {
  margin: 0;
  color: rgba(255,255,255,.94);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.1rem, 2.7vw, 1.48rem);
  font-style: italic;
  line-height: 1.7;
}

.cg-flydock-manuscript-quote-cite {
  margin-top: .85rem;
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .68rem;
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
}

/* ---------- Previous / next ---------- */

.cg-flydock-manuscript-next,
.cg33k-master-next {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  margin-top: clamp(2.5rem, 7vw, 4rem);
}

.cg-flydock-manuscript-next .cg-article-next-btn,
.cg33k-master-next .cg-article-next-btn {
  flex: 1 1 260px;
  min-height: 62px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.25rem;
  border: 1px solid rgba(217, 163, 0, .35);
  background: rgba(255,255,255,.018);
  color: var(--cg33k-master-gold);
  font-family: var(--cg-font-heading, Cinzel, Georgia, serif);
  font-size: .74rem;
  letter-spacing: .09em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: .2s ease;
}

.cg-flydock-manuscript-next .cg-article-next-btn:hover,
.cg-flydock-manuscript-next .cg-article-next-btn:focus-visible,
.cg33k-master-next .cg-article-next-btn:hover,
.cg33k-master-next .cg-article-next-btn:focus-visible {
  background: var(--cg33k-master-gold);
  border-color: var(--cg33k-master-gold);
  color: #000;
  outline: none;
}

.cg-flydock-manuscript-next--single {
  justify-content: center;
}

/* ---------- Accessibility ---------- */

.cg33k-toc-link:focus-visible,
.cg-resource-link:focus-visible,
.cg-article-next-btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(217, 163, 0, .18);
}

@media (max-width: 700px) {
  :root {
    --cg33k-master-header-offset: 4.8rem;
  }

  .cg-link-grid,
  .cg33k-toc-grid,
  .cg-article-nav-grid,
  .cg-article-toc {
    grid-template-columns: 1fr;
  }

  .cg-resource-link,
  .cg33k-toc-link,
  .cg-article-nav-grid a,
  .cg-article-toc a,
  .cg33k-flydock2-toc a {
    min-height: 50px;
    padding: .82rem .9rem;
    font-size: .68rem;
  }

  .cg-flydock-manuscript-panel,
  .cg33k-master-panel,
  .cg33k-toc-panel {
    padding: 1.25rem;
  }

  .cg33k-master-reference {
    grid-template-columns: 1fr;
  }

  .cg-flydock-manuscript-next,
  .cg33k-master-next {
    flex-direction: column;
  }

  .cg-flydock-manuscript-next .cg-article-next-btn,
  .cg33k-master-next .cg-article-next-btn {
    flex-basis: auto;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cg-resource-link,
  .cg33k-toc-link,
  .cg-article-next-btn {
    transition: none;
  }

  html {
    scroll-behavior: auto;
  }
}
