/* Pantocrator's text face (Gentium Book Plus) is theme-scoped and not in the
   global font loader; pull it (with Marcellus) the way the prototype <link>s it,
   so the body type renders in Gentium instead of silently falling back to Georgia.
   Must remain the first statement in the sheet (CSS @import ordering rule). */
@import url("https://fonts.googleapis.com/css2?family=Marcellus&family=Gentium+Book+Plus:ital,wght@0,400;0,700;1,400&display=swap");

/* ============================================================
   PANTOCRATOR — Theme 15 · the iconostasis
   Demo organization: St. Nicholas Orthodox Church, Pittsburgh
   Type: Marcellus (caps display) · Gentium Book Plus (text)
   Grammar: fresco-dark grounds (midnight, burgundy), icon-gold
   arches, scalloped iconostasis edges, warm ivory registers,
   ornament borders. Imagery-forward and reverent.
   ============================================================ */

:root {
  --pk-midnight: oklch(0.23 0.05 262);
  --pk-burgundy: oklch(0.28 0.085 20);
  --pk-ivory: oklch(0.94 0.018 85);
  --pk-ivory-2: oklch(0.91 0.022 85);
  --pk-ink: oklch(0.28 0.035 50);
  --pk-ink-dim: oklch(0.28 0.035 50 / 0.66);
  --pk-gold: oklch(0.7 0.11 82);
  --pk-gold-deep: oklch(0.58 0.1 78);
  --pk-moss: oklch(0.42 0.05 145);
  --pk-display: "Marcellus", "Georgia", serif;
  --pk-text: "Gentium Book Plus", Georgia, serif;
  --pk-ease: cubic-bezier(0.32, 0.9, 0.3, 1);
}

/* ============================================================
   STUDIO BRIDGE — canonical --ad-* palette for the Parish Studio
   back-office, so it can reskin to PANTOCRATOR. Pantocrator's public
   face is a fresco-DARK theme (midnight + burgundy grounds), but a
   back-office must be readable for long working sessions — so the
   studio surface is the theme's own warm IVORY register (the paper
   side of the iconostasis) with the deep ink, and the gilt grammar is
   carried by the gold accents. Derived entirely from the theme's
   primitives above so it stays in colour. Ink-on-surface contrast is
   the native body pairing (deep ink on ivory ≈ 9:1).
   ============================================================ */
:root {
  --ad-surf:     var(--pk-ivory);                /* page = the ivory paper register */
  --ad-surf-2:   var(--pk-ivory-2);              /* a slightly deeper ivory for cards/panels */
  --ad-txt:      var(--pk-ink);                  /* deep warm ink — primary body */
  --ad-txt-dim:  var(--pk-ink-dim);              /* muted ink — secondary */
  --ad-accent:   var(--pk-gold-deep);            /* deep icon-gold — primary accent on ivory */
  --ad-accent-2: var(--pk-burgundy);             /* burgundy — the secondary (cool) accent */
  --ad-rule:     oklch(0.28 0.035 50 / 0.2);     /* hairline / divider on ivory */
  --ad-display:  "Marcellus", Georgia, serif;    /* caps display face */
  --ad-sans:     "Gentium Book Plus", Georgia, serif; /* body / UI text */
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--pk-ivory);
  color: var(--pk-ink);
  font-family: var(--pk-text);
  font-size: 18px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: oklch(0.7 0.11 82 / 0.32); }
img { max-width: 100%; display: block; }

/* ---------- ornament border band ---------- */

.pk-band {
  height: 30px;
  background:
    radial-gradient(circle 4px at 11px 50%, var(--pk-gold) 3px, transparent 4px),
    repeating-linear-gradient(90deg, transparent 0 6px, oklch(0.58 0.1 78 / 0.5) 6px 7px, transparent 7px 22px);
  background-size: 22px 100%, 22px 100%;
  border-top: 1.5px solid var(--pk-gold-deep);
  border-bottom: 1.5px solid var(--pk-gold-deep);
}

/* scalloped iconostasis edge (sits on a dark block, opens to ivory below) */
.pk-scallop {
  height: 34px;
  background: radial-gradient(circle 30px at 50% 130%, var(--pk-ivory) 29px, transparent 30px);
  background-size: 64px 34px;
  background-position: 50% 0;
  margin-top: -34px;
  position: relative;
  z-index: 4;
  filter: drop-shadow(0 -3px 0 var(--pk-gold-deep));
}

/* ---------- editor hooks ---------- */

main > [data-block] {
  --surf: var(--pk-ivory);
  --txt: var(--pk-ink);
  --txt-dim: var(--pk-ink-dim);
  --rule: oklch(0.28 0.035 50 / 0.2);
  --accent: var(--pk-gold-deep);
  background: var(--surf);
  color: var(--txt);
  padding-block: clamp(52px, 8vw, 120px);
  position: relative;
}
main > [data-block][data-surface="b"] {
  --surf: var(--pk-midnight);
  --txt: oklch(0.94 0.018 85);
  --txt-dim: oklch(0.94 0.018 85 / 0.72);
  --rule: oklch(0.94 0.018 85 / 0.2);
  --accent: var(--pk-gold);
}
main > [data-block][data-surface="c"] {
  --surf: var(--pk-burgundy);
  --txt: oklch(0.94 0.018 85);
  --txt-dim: oklch(0.94 0.018 85 / 0.72);
  --rule: oklch(0.94 0.018 85 / 0.2);
  --accent: var(--pk-gold);
}
main > [data-block][data-pad="s"]  { padding-block: clamp(26px, 3.5vw, 52px); }
main > [data-block][data-pad="m"]  { padding-block: clamp(52px, 8vw, 120px); }
main > [data-block][data-pad="l"]  { padding-block: clamp(78px, 11vw, 168px); }
main > [data-block][data-pad="xl"] { padding-block: clamp(104px, 15vw, 224px); }
main > [data-block][data-align="left"] { text-align: left; }
main > [data-block] { text-align: center; }

.pk-wrap { width: min(1100px, calc(100% - clamp(32px, 5vw, 88px))); margin-inline: auto; }
.pk-wrap--narrow { width: min(720px, calc(100% - clamp(32px, 5vw, 88px))); margin-inline: auto; }

/* ---------- typography ---------- */

.pk-kicker {
  font-family: var(--pk-display);
  font-size: 14px;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 24px;
}

.pk-display {
  font-family: var(--pk-display);
  font-weight: 400;
  font-size: clamp(38px, 5.8vw, 78px);
  line-height: 1.1;
  letter-spacing: 0.04em;
  margin: 0;
  text-wrap: balance;
}

.pk-h2 {
  font-family: var(--pk-display);
  font-weight: 400;
  font-size: clamp(28px, 3.8vw, 48px);
  line-height: 1.14;
  letter-spacing: 0.035em;
  margin: 0 0 22px;
  text-wrap: balance;
}

.pk-h3 { font-family: var(--pk-display); font-size: 18px; letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 10px; }

.pk-lede { font-size: clamp(19px, 1.9vw, 23px); line-height: 1.6; margin: 0; text-wrap: pretty; }
.pk-lede i { color: var(--accent); }
.pk-body { color: var(--txt-dim); margin: 0; text-wrap: pretty; }

/* ---------- buttons ---------- */

.pk-actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
[data-align="left"] .pk-actions { justify-content: flex-start; }
.pk-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--pk-display);
  font-size: 14px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--pk-ivory);
  background: var(--pk-burgundy);
  border: 1px solid var(--pk-gold-deep);
  padding: 16px 30px;
  box-shadow: inset 0 0 0 1px oklch(0.7 0.11 82 / 0.25), 0 14px 28px -18px oklch(0 0 0 / 0.7);
  transition: background 0.4s var(--pk-ease), transform 0.4s var(--pk-ease);
}
.pk-btn::before { content: "✛"; color: var(--pk-gold); font-size: 12px; }
.pk-btn:hover { background: var(--pk-gold-deep); transform: translateY(-2px); }
.pk-btn--ghost { background: transparent; color: var(--txt); border-color: var(--accent); box-shadow: none; }
.pk-btn--ghost::before { color: var(--accent); }
.pk-btn--ghost:hover { background: var(--accent); color: var(--pk-ivory); }
.pk-btn:active { transform: translateY(0); }

/* ---------- focus (keyboard) — one coherent gilt ring, no left bars ----------
   Every interactive node in the theme (buttons, nav, cards, links) shares the
   same offset gold ring so keyboard travel reads native to the gilded grammar.
   :focus-visible only, so mouse/touch presses stay clean. */
.pk-btn:focus-visible,
.pk-header nav a:focus-visible,
.pk-header__mark:focus-visible,
.pk-icon:focus-visible,
.pk-event:focus-visible,
.pk-go:focus-visible,
.pk-foot nav a:focus-visible,
main > [data-block] a:focus-visible {
  outline: 2px solid var(--pk-gold);
  outline-offset: 3px;
}
.pk-icon:focus-visible .pk-icon__arch { transform: translateY(-5px); box-shadow: 0 22px 40px -26px oklch(0 0 0 / 0.6); }
.pk-event:focus-visible { transform: translateY(-4px); }

/* ---------- header ---------- */

.pk-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--pk-midnight);
  color: oklch(0.94 0.018 85);
  border-bottom: 1px solid var(--pk-gold-deep);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px clamp(16px, 3.5vw, 40px);
}
.pk-header__mark { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.pk-header__mark svg { width: 15px; height: auto; color: var(--pk-gold); }
.pk-header__mark b { font-family: var(--pk-display); font-weight: 400; font-size: 16px; letter-spacing: 0.12em; line-height: 1.3; }
.pk-header__mark small { display: block; font-family: var(--pk-display); font-size: 9.5px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--pk-gold); }
.pk-header nav { display: flex; gap: clamp(10px, 2vw, 24px); align-items: center; }
.pk-header nav a {
  font-family: var(--pk-display);
  font-size: 12.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: oklch(0.94 0.018 85 / 0.8);
  text-decoration: none;
}
.pk-header nav a:hover { color: var(--pk-gold); }
.pk-header nav a.pk-portal-link { border: 1px solid var(--pk-gold-deep); padding: 9px 14px; background: oklch(0.94 0.018 85 / 0.06); }
.pk-header nav a.pk-give { border: 1px solid var(--pk-gold); padding: 9px 14px; color: var(--pk-gold); }
.pk-header nav a.pk-give:hover { background: var(--pk-gold); color: var(--pk-midnight); }

/* nav dropdown — gold-edged plate on the midnight ground */
.pk-header__item { position: relative; display: flex; align-items: center; }
.pk-header__drop {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 196px;
  display: flex;
  flex-direction: column;
  background: var(--pk-midnight);
  border: 1px solid var(--pk-gold-deep);
  padding: 6px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease;
  z-index: 950;
}
.pk-header__drop::after {
  content: "";
  position: absolute;
  top: -15px;
  left: 0;
  right: 0;
  height: 15px;
}
.pk-header__item:hover .pk-header__drop,
.pk-header__item:focus-within .pk-header__drop,
.pk-header__drop:hover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.pk-header nav .pk-header__drop a {
  display: block;
  padding: 9px 14px;
  text-align: left;
  letter-spacing: 0.16em;
}

/* ---------- mobile nav: the gilt toggle + the iconostasis drawer ----------
   The desktop row collapses at ≤860px behind a gilt toggle that opens a
   full-height midnight DRAWER dressed in the theme's own motifs: a gilt arch
   crown, a scalloped iconostasis edge, Marcellus caps that warm to gold. */
.pk-menubtn { display: none; }
.pk-drawer { display: none; }

.pk-menubtn {
  appearance: none; -webkit-appearance: none;
  background: transparent; border: 1px solid transparent; border-radius: 2px;
  width: 46px; height: 42px; cursor: pointer;
  align-items: center; justify-content: center; color: var(--pk-gold);
  transition: border-color 0.3s var(--pk-ease);
}
.pk-menubtn:hover { border-color: var(--pk-gold-deep); }
.pk-menubtn__bars { position: relative; display: block; width: 24px; height: 14px; }
.pk-menubtn__bars i {
  position: absolute; left: 0; height: 1.5px; background: var(--pk-gold); border-radius: 2px;
  transition: transform 0.4s var(--pk-ease), opacity 0.25s var(--pk-ease), width 0.4s var(--pk-ease);
}
.pk-menubtn__bars i:nth-child(1) { top: 0; width: 24px; }
.pk-menubtn__bars i:nth-child(2) { top: 6px; width: 17px; }   /* gilt detail — short middle bar */
.pk-menubtn__bars i:nth-child(3) { top: 12px; width: 24px; }
.pk-menubtn.is-open .pk-menubtn__bars i:nth-child(1) { top: 6px; transform: rotate(45deg); }
.pk-menubtn.is-open .pk-menubtn__bars i:nth-child(2) { opacity: 0; width: 0; }
.pk-menubtn.is-open .pk-menubtn__bars i:nth-child(3) { top: 6px; width: 24px; transform: rotate(-45deg); }

.pk-drawer { position: fixed; inset: 0; z-index: 1000; pointer-events: none; }
.pk-drawer__scrim {
  position: absolute; inset: 0; border: 0; padding: 0; cursor: pointer;
  background: oklch(0.16 0.04 262 / 0.55);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity 0.45s var(--pk-ease);
}
.pk-drawer__panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(384px, 87vw);
  display: flex; flex-direction: column;
  background-color: var(--pk-midnight); color: oklch(0.94 0.018 85);
  border-left: 1px solid var(--pk-gold-deep);
  box-shadow: -34px 0 60px -30px oklch(0 0 0 / 0.6);
  padding: 18px clamp(22px, 6vw, 34px) 30px;
  overflow-y: auto; overscroll-behavior: contain;
  transform: translateX(102%); transition: transform 0.5s var(--pk-ease);
}
.pk-drawer.is-open { pointer-events: auto; }
.pk-drawer.is-open .pk-drawer__scrim { opacity: 1; }
.pk-drawer.is-open .pk-drawer__panel { transform: translateX(0); }

.pk-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.pk-drawer__mark { display: flex; align-items: center; gap: 11px; color: inherit; }
.pk-drawer__mark svg { width: 15px; height: auto; color: var(--pk-gold); }
.pk-drawer__mark b { font-family: var(--pk-display); font-weight: 400; font-size: 16px; letter-spacing: 0.12em; }
.pk-drawer__close {
  appearance: none; -webkit-appearance: none; background: transparent; border: 0; cursor: pointer;
  width: 42px; height: 42px; font-size: 17px; color: var(--pk-gold);
  transition: transform 0.4s var(--pk-ease), color 0.3s var(--pk-ease);
}
.pk-drawer__close:hover { transform: rotate(90deg); color: oklch(0.78 0.085 82); }

/* gilt arch crown + scalloped iconostasis edge */
.pk-drawer__arch {
  display: block; width: 58px; height: 30px; margin: 22px 0 0; position: relative;
  border: 1.5px solid var(--pk-gold-deep); border-bottom: 0;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.pk-drawer__arch::after { content: "✛"; position: absolute; left: 50%; top: 7px; transform: translateX(-50%); color: var(--pk-gold); font-size: 12px; }
.pk-drawer__scallop {
  display: block; height: 12px; margin: 14px 0 8px; opacity: 0.5;
  background: radial-gradient(circle 9px at 9px 0, transparent 8px, var(--pk-gold-deep) 8px 8.6px, transparent 9px) repeat-x;
  background-size: 18px 12px;
}

.pk-drawer__nav { display: flex; flex-direction: column; padding: 6px 0 2px; }
.pk-drawer__link {
  font-family: var(--pk-display); font-weight: 400;
  font-size: clamp(21px, 6.2vw, 27px); letter-spacing: 0.1em; text-transform: uppercase;
  color: oklch(0.94 0.018 85 / 0.86); text-decoration: none;
  padding: 13px 0 13px 26px; position: relative;
  border-bottom: 1px solid oklch(0.94 0.018 85 / 0.08);
  transition: color 0.3s var(--pk-ease), padding-left 0.3s var(--pk-ease);
}
.pk-drawer__link::before {
  content: "✛"; position: absolute; left: 0; top: 50%; transform: translateY(-50%) scale(0.6);
  color: var(--pk-gold); font-size: 13px; opacity: 0;
  transition: opacity 0.3s var(--pk-ease), transform 0.3s var(--pk-ease);
}
.pk-drawer__link:hover, .pk-drawer__link:focus-visible { color: var(--pk-gold); padding-left: 32px; outline: none; }
.pk-drawer__link:hover::before, .pk-drawer__link:focus-visible::before { opacity: 1; transform: translateY(-50%) scale(1); }
.pk-drawer__sub { display: flex; flex-direction: column; padding: 2px 0 8px 26px; }
.pk-drawer__sub a {
  font-family: var(--pk-display); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase;
  color: oklch(0.94 0.018 85 / 0.62); text-decoration: none; padding: 7px 0;
  transition: color 0.3s var(--pk-ease);
}
.pk-drawer__sub a:hover { color: var(--pk-gold); }

.pk-drawer__foot { margin-top: auto; padding-top: 24px; display: flex; flex-direction: column; gap: 10px; }
.pk-drawer .pk-give {
  font-family: var(--pk-display); font-size: 12.5px; letter-spacing: 0.2em; text-transform: uppercase;
  text-align: center; text-decoration: none;
  padding: 13px 16px; border: 1px solid var(--pk-gold); color: var(--pk-gold);
  transition: background 0.4s var(--pk-ease), color 0.4s var(--pk-ease);
}
.pk-drawer .pk-give:hover { background: var(--pk-gold); color: var(--pk-midnight); }

/* staggered reveal once the drawer opens */
.pk-drawer__link, .pk-drawer__foot { opacity: 0; transform: translateX(14px); }
.pk-drawer.is-open .pk-drawer__link { animation: pk-drawer-in 0.5s var(--pk-ease) forwards; animation-delay: calc(var(--d) * 45ms + 160ms); }
.pk-drawer.is-open .pk-drawer__foot { animation: pk-drawer-in 0.5s var(--pk-ease) 0.36s forwards; }
@keyframes pk-drawer-in { to { opacity: 1; transform: translateX(0); } }

@media (max-width: 860px) {
  /* higher specificity than the base `.pk-header nav { display:flex }` (0,1,1)
     so the row actually collapses — was being out-specified before. */
  .pk-header nav.pk-header__nav { display: none !important; }
  .pk-menubtn { display: inline-flex !important; }
  .pk-drawer { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .pk-drawer__panel, .pk-drawer__scrim { transition-duration: 0.001ms; }
  .pk-drawer__link, .pk-drawer__foot { opacity: 1 !important; transform: none !important; animation: none !important; }
}

/* ---------- fresco hero ---------- */

main > .pk-hero[data-block] {
  background-color: var(--pk-midnight);
  --txt: oklch(0.94 0.018 85);
  --txt-dim: oklch(0.94 0.018 85 / 0.75);
  --accent: var(--pk-gold);
  color: var(--txt);
  padding-block: 0 !important;
  overflow: visible;
}
.pk-hero__stage {
  position: relative;
  min-height: clamp(480px, 72vh, 760px);
  display: grid;
  align-items: center;
  overflow: hidden;
}
.pk-hero__fresco {
  position: absolute;
  inset: 0;
}
.pk-hero__fresco img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 22%;
  filter: sepia(0.25) saturate(1.1) brightness(0.75) contrast(1.02);
}
.pk-hero__fresco::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse 60% 80% at 68% 30%, transparent 30%, oklch(0.23 0.05 262 / 0.75) 90%),
    linear-gradient(90deg, oklch(0.23 0.05 262 / 0.92) 0%, oklch(0.23 0.05 262 / 0.55) 42%, oklch(0.23 0.05 262 / 0.1) 75%);
}
.pk-hero__fresco.img-fallback {
  background:
    radial-gradient(ellipse 70% 90% at 65% 25%, oklch(0.5 0.09 70 / 0.55), transparent 70%),
    radial-gradient(ellipse 100% 120% at 50% 110%, oklch(0.28 0.085 20 / 0.8), transparent 60%),
    var(--pk-midnight);
}
.pk-hero__fresco.img-fallback::after {
  content: "✛";
  position: absolute;
  top: 22%; left: 65%;
  transform: translate(-50%, -50%);
  font-size: 120px;
  color: oklch(0.7 0.11 82 / 0.5);
  z-index: 1;
}
.pk-hero__copy {
  position: relative;
  z-index: 3;
  padding: clamp(64px, 9vw, 110px) 0 clamp(96px, 12vw, 150px);
  text-align: left;
  max-width: 540px;
}
/* The fresco copy ALWAYS sits over the dark fresco image, so its ink must be
   light regardless of the section surface the author picks — otherwise a
   surface-a (ivory) hero renders dark-ink-on-dark-image and disappears. */
.pk-hero__copy .pk-display { color: var(--pk-ivory); }
.pk-hero__copy .pk-lede { color: oklch(0.94 0.018 85 / 0.88); }
.pk-hero__copy .pk-kicker { color: var(--pk-gold); }

/* ---------- icon arch cards ---------- */

.pk-icons { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.5vw, 28px); }
.pk-icon {
  text-decoration: none;
  color: inherit;
  display: block;
}
.pk-icon__arch {
  display: block;
  width: min(150px, 70%);
  margin: 0 auto 18px;
  border: 1.5px solid var(--pk-gold-deep);
  outline: 1px solid oklch(0.58 0.1 78 / 0.45);
  outline-offset: 4px;
  border-radius: 999px 999px 4px 4px;
  overflow: hidden;
  padding: 7px;
  background: linear-gradient(170deg, oklch(0.7 0.11 82 / 0.3), oklch(0.7 0.11 82 / 0.06));
  transition: transform 0.45s var(--pk-ease), box-shadow 0.45s var(--pk-ease);
}
.pk-icon:hover .pk-icon__arch { transform: translateY(-5px); box-shadow: 0 22px 40px -26px oklch(0 0 0 / 0.6); }
.pk-icon__arch .pk-photo { border-radius: 999px 999px 2px 2px; overflow: hidden; aspect-ratio: 3 / 4; }
.pk-photo { display: block; position: relative; background: var(--pk-ivory-2); }
.pk-photo img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.2) saturate(1.05); }
.pk-photo.img-fallback { display: grid; place-items: center; min-height: 140px; }
.img-fallback::before {
  content: attr(data-alt);
  font-family: var(--pk-display);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--txt-dim);
  padding: 8px;
}
.pk-icon p { font-size: 14.5px; color: var(--txt-dim); margin: 0 0 10px; }
.pk-icon .pk-go { font-family: var(--pk-display); font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); transition: color 0.35s var(--pk-ease); }
.pk-icon:hover .pk-go, .pk-icon:focus-visible .pk-go { color: var(--pk-gold); }
.pk-icon .pk-h3 { transition: color 0.35s var(--pk-ease); }
.pk-icon:hover .pk-h3 { color: var(--accent); }

/* ---------- events on burgundy ---------- */

.pk-events { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pk-event {
  background: var(--pk-ivory);
  color: var(--pk-ink);
  border: 1px solid var(--pk-gold-deep);
  padding: 22px 18px;
  text-align: center;
  text-decoration: none;
  display: block;
  box-shadow: 0 16px 32px -24px oklch(0 0 0 / 0.7);
  transition: transform 0.4s var(--pk-ease);
}
.pk-event:hover { transform: translateY(-4px); }
.pk-event b { font-family: var(--pk-display); font-size: 15px; letter-spacing: 0.1em; display: block; margin-bottom: 8px; }
.pk-event span { font-size: 14.5px; color: var(--pk-ink-dim); display: block; }
.pk-event .pk-go { font-family: var(--pk-display); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pk-burgundy); display: inline-block; margin-top: 12px; transition: color 0.35s var(--pk-ease); }
.pk-event:hover, .pk-event:focus-visible { border-color: var(--pk-gold); }
.pk-event:hover .pk-go, .pk-event:focus-visible .pk-go { color: var(--pk-gold-deep); }

/* ---------- schedule panel ---------- */

.pk-sched {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  text-align: left;
}
.pk-panel {
  background: oklch(1 0 0 / 0.55);
  border: 1px solid var(--rule);
  padding: clamp(22px, 3.5vw, 40px);
  box-shadow: 0 24px 50px -38px oklch(0.28 0.035 50 / 0.55);
}
[data-surface="b"] .pk-panel, [data-surface="c"] .pk-panel { background: oklch(0.94 0.018 85 / 0.06); }
.pk-sched__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding: 13px 2px;
  border-bottom: 1px solid var(--rule);
}
.pk-sched__row:last-child { border-bottom: 0; }
.pk-sched__row b { font-family: var(--pk-display); font-size: 15.5px; letter-spacing: 0.08em; }
.pk-sched__row span { font-size: 16.5px; color: var(--accent); font-variant-numeric: tabular-nums; }

/* ---------- quote band ---------- */

.pk-quote {
  font-family: var(--pk-display);
  font-size: clamp(22px, 3vw, 36px);
  line-height: 1.45;
  letter-spacing: 0.03em;
  margin: 0;
  text-wrap: balance;
}
.pk-quote-cite {
  display: block;
  font-family: var(--pk-display);
  font-size: 13px;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 24px;
}
.pk-quote-band__glyphs {
  display: flex;
  justify-content: center;
  gap: 22px;
  color: var(--accent);
  margin-bottom: 22px;
  font-size: 14px;
  letter-spacing: 0.5em;
}

/* ---------- mosaic strip ---------- */

.pk-mosaic {
  border-block: 1.5px solid var(--pk-gold-deep);
  overflow: hidden;
}
.pk-mosaic .pk-photo { aspect-ratio: 21 / 6; }
.pk-mosaic img { filter: sepia(0.3) saturate(1.15) brightness(0.9); }

/* ---------- invitation (closing CTA) ---------- */

.pk-invite { position: relative; }
.pk-invite::before,
.pk-invite::after {
  content: "";
  display: block;
  height: 0;
  border-top: 1.5px solid var(--accent);
  width: min(220px, 60%);
  margin: 0 auto;
  opacity: 0.7;
}
.pk-invite::before { margin-bottom: clamp(26px, 4vw, 44px); }
.pk-invite::after  { margin-top: clamp(30px, 4.5vw, 52px); }
[data-align="left"] .pk-invite::before,
[data-align="left"] .pk-invite::after { margin-inline: 0; }

.pk-invite__crown {
  display: block;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1;
  color: var(--accent);
  margin-bottom: clamp(16px, 2.2vw, 26px);
}
.pk-invite__lede { color: var(--txt-dim); margin-inline: auto; max-width: 56ch; }
[data-align="left"] .pk-invite__lede { margin-inline: 0; }
.pk-invite__lede i { color: var(--accent); font-style: italic; }

/* ---------- footer ---------- */

.pk-foot {
  background: var(--pk-midnight);
  color: oklch(0.94 0.018 85 / 0.85);
  text-align: center;
  padding: clamp(48px, 7vw, 88px) 24px 42px;
  border-top: 1.5px solid var(--pk-gold-deep);
}
.pk-foot b {
  display: block;
  font-family: var(--pk-display);
  font-weight: 400;
  font-size: 21px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: oklch(0.94 0.018 85);
  margin-bottom: 10px;
}
.pk-foot p { font-size: 15px; margin: 4px 0; opacity: 0.75; }
.pk-foot nav { display: flex; justify-content: center; gap: 26px; margin-top: 20px; flex-wrap: wrap; }
.pk-foot nav a {
  font-family: var(--pk-display);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: oklch(0.94 0.018 85);
  text-decoration: none;
}
.pk-foot nav a:hover { color: var(--pk-gold); }

/* ---------- motion ---------- */

@media (prefers-reduced-motion: no-preference) {
  [data-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 1.2s var(--pk-ease), transform 1.2s var(--pk-ease);
    transition-delay: calc(var(--rd, 0) * 130ms);
  }
  [data-reveal].in { opacity: 1; transform: none; }
  .pk-hero__fresco img { animation: pk-drift 30s var(--pk-ease) infinite alternate; }
  @keyframes pk-drift { from { transform: scale(1); } to { transform: scale(1.07); } }

  /* arrow go-links nudge their caret on hover/focus — a quiet, reverent shift */
  .pk-go { display: inline-block; transition: transform 0.35s var(--pk-ease); }
  a:hover > .pk-go,
  a:focus-visible > .pk-go,
  .pk-go:hover,
  .pk-go:focus-visible { transform: translateX(4px); }
}

/* ---------- responsive ---------- */

@media (max-width: 980px) {
  .pk-icons { grid-template-columns: 1fr 1fr; }
  .pk-events { grid-template-columns: 1fr 1fr; }
  .pk-sched { grid-template-columns: 1fr; }
  .pk-header__mark small { display: none; }
  .pk-header nav a.pk-portal-link { display: none; }
}
@media (max-width: 620px) {
  .pk-events { grid-template-columns: 1fr; }
  .pk-hero__copy { padding-top: 48px; }
}

/* ---------- universal block adapter ----------
   The 22 generic blocks render off --surf/--txt/--txt-dim/--rule/--accent
   (set on each [data-block] above) plus --ab-display / --ab-accent and the
   six swatch tokens --ab-sw-1..6. Left to default the swatches would chain
   off the single gold accent → a flat monochrome set. PANTOCRATOR is a gilt
   duotone (icon-gold + burgundy) over warm ink, so curate the swatches by
   hand: ink, gold, burgundy, moss, quiet ink, pale gold. This keeps generic
   Stats / Numbered rows / accent chips / dividers reading native to the
   iconostasis grammar rather than as a bright widget dropped onto fresco. */
main {
  --ab-display: var(--pk-display);
  --ab-accent: var(--pk-gold-deep);
  --ab-sw-1: var(--txt);                          /* ink — primary figure */
  --ab-sw-2: var(--pk-gold-deep);                 /* deep gold — the gilt accent */
  --ab-sw-3: var(--pk-burgundy);                  /* burgundy — the deep accent */
  --ab-sw-4: var(--pk-moss);                      /* moss — the quiet cool note */
  --ab-sw-5: var(--txt-dim);                      /* muted ink */
  --ab-sw-6: oklch(0.78 0.085 82);                /* pale gold highlight */
}
/* generic headings inherit Marcellus' wide-tracked caps idiom so a universal
   Heading sits in the same display register as the signatures */
main > [data-block] :is(.ab-h1, .ab-h2, .ab-h3) { letter-spacing: 0.04em; }
main > [data-block] :is(.ab-h3) { letter-spacing: 0.16em; text-transform: uppercase; }
/* the generic eyebrow reads as pantocrator's wide gilt kicker */
main > [data-block] .ab-eyebrow { letter-spacing: 0.32em; text-transform: uppercase; }
/* generic figures (Stats / Numbered rows / Schedule times / Event dates) are
   Marcellus caps in TABULAR-NUMS so columns of numerals align — never monospace */
main > [data-block] :is(.ab-stat b, .ab-row__no, .ab-sched__time, .ab-event__date) {
  font-family: var(--pk-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

/* menu tokens */
:root { --menu-surf: oklch(0.23 0.05 262 / 0.97); --menu-txt: oklch(0.94 0.018 85); --menu-accent: oklch(0.7 0.11 82); --menu-display: "Marcellus", serif; }

/* ---- signature style variants ---- */
main > [data-block][data-style="2"] .pk-icons { grid-template-columns: 1fr 1fr; max-width: 720px; margin-inline: auto; }
main > [data-block][data-style="2"] .pk-icon { display: grid; grid-template-columns: 110px 1fr; gap: 0 22px; text-align: left; align-items: center; }
main > [data-block][data-style="2"] .pk-icon__arch { margin: 0; width: 110px; grid-row: span 3; }
main > [data-block][data-style="3"] .pk-icon__arch { border-radius: 6px; }
main > [data-block][data-style="3"] .pk-icon__arch .pk-photo { border-radius: 3px; aspect-ratio: 1; }
main > [data-block][data-style="4"] .pk-icons { gap: 0; border: 1.5px solid var(--pk-gold-deep); }
main > [data-block][data-style="4"] .pk-icon { padding: clamp(18px, 3vw, 32px) clamp(14px, 2vw, 24px); border-left: 1px solid var(--rule); }
main > [data-block][data-style="4"] .pk-icon:first-child { border-left: 0; }
main > [data-block][data-style="2"] .pk-events { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; }
main > [data-block][data-style="2"] .pk-event { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; text-align: left; align-items: center; }
main > [data-block][data-style="3"] .pk-event { background: transparent; color: inherit; border-color: var(--rule); box-shadow: none; }
main > [data-block][data-style="3"] .pk-event span { color: var(--txt-dim); }
main > [data-block][data-style="2"] .pk-sched > .pk-panel:last-child { order: -1; }
main > [data-block][data-style="3"] .pk-sched { grid-template-columns: 1fr; max-width: 640px; margin-inline: auto; }
/* Quote style-2 "Ruled": a drawn gold rule ABOVE the verse + a hanging gold
   open-quote — NOT a thin colored left bar (banned). Reads as an inscribed
   marginal note in the iconostasis register. */
main > [data-block][data-style="2"] .pk-quote-band__glyphs { justify-content: flex-start; }
main > [data-block][data-style="2"] .pk-quote {
  text-align: left;
  position: relative;
  padding-top: clamp(20px, 3vw, 34px);
  margin-top: clamp(20px, 3vw, 34px);
  border-top: 1.5px solid var(--accent);
}
main > [data-block][data-style="2"] .pk-quote::before {
  content: "“";
  position: absolute;
  top: clamp(-2px, 0.4vw, 6px);
  left: 0;
  font-family: var(--pk-display);
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1;
  color: var(--accent);
  opacity: 0.45;
  transform: translate(-0.18em, 0.18em);
}
main > [data-block][data-style="2"] .pk-quote-cite { text-align: left; }
main > .pk-hero[data-style="2"] .pk-hero__copy { margin-inline: auto; text-align: center; }
main > .pk-hero[data-style="2"] .pk-hero__copy .pk-actions { justify-content: center; }
main > .pk-hero[data-style="2"] .pk-hero__fresco::before { background: radial-gradient(ellipse 90% 100% at 50% 30%, transparent 20%, oklch(0.23 0.05 262 / 0.88) 95%); }
main > .pk-hero[data-style="3"] .pk-hero__fresco { opacity: 0.22; }
main > .pk-hero[data-style="3"] .pk-hero__fresco::before { background: none; }
main > .pk-hero[data-style="4"] .pk-hero__stage { min-height: 0; }
main > .pk-hero[data-style="4"] .pk-hero__fresco { display: none; }
main > .pk-hero[data-style="4"] .pk-hero__copy { padding-block: clamp(56px, 8vw, 96px); }
/* invitation: Plain (2) drops the crown + ornament rules; Framed (3) boxes it
   in a gold-edged plaster panel like the iconostasis registers. */
main > [data-block][data-style="2"] .pk-invite__crown { display: none; }
main > [data-block][data-style="2"] .pk-invite::before { display: none; }
main > [data-block][data-style="2"] .pk-invite::after { display: none; }
main > [data-block][data-style="3"] .pk-invite {
  border: 1.5px solid var(--accent);
  outline: 1px solid var(--rule);
  outline-offset: 6px;
  padding: clamp(34px, 5.5vw, 64px) clamp(26px, 4.5vw, 56px);
  background: oklch(1 0 0 / 0.4);
}
/* on the dark registers the white plaster wash would blow out — drop to a faint
   warm-gold film so the framed plate reads as a gilt register, not a white box */
main > [data-block][data-surface="b"][data-style="3"] .pk-invite,
main > [data-block][data-surface="c"][data-style="3"] .pk-invite {
  background: oklch(0.7 0.11 82 / 0.06);
}
main > [data-block][data-style="3"] .pk-invite::before { display: none; }
main > [data-block][data-style="3"] .pk-invite::after { display: none; }

@media (max-width: 920px) {
  main > [data-block][data-style="2"] .pk-icons { grid-template-columns: 1fr; }
  main > [data-block][data-style="4"] .pk-icon { border-left: 0; border-top: 1px solid var(--rule); }
  main > [data-block][data-style="4"] .pk-icon:first-child { border-top: 0; }
}

/* ============================================================
   ADDED SIGNATURE BLOCKS — clergy, splits, galleries, banners,
   timeline, ministries, FAQ, stats, giving, testimonies, feast,
   visit, newsletter, pull-quote, columns, sermon, sacraments,
   iconostasis row, triptych, rector welcome. All built from the
   theme's own --pk-* primitives + the existing pk-* idiom (arch
   frames, gold rules, ivory/midnight panels) so they read native
   to the iconostasis grammar.
   ============================================================ */

/* ---------- clergy / staff portraits ---------- */
.pk-clergy { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.5vw, 30px); }
.pk-clergy__card { text-decoration: none; color: inherit; display: block; }
.pk-clergy__card .pk-icon__arch {
  display: block; width: min(150px, 72%); margin: 0 auto 16px;
  border: 1.5px solid var(--pk-gold-deep);
  outline: 1px solid oklch(0.58 0.1 78 / 0.45); outline-offset: 4px;
  border-radius: 999px 999px 4px 4px; overflow: hidden; padding: 7px;
  background: linear-gradient(170deg, oklch(0.7 0.11 82 / 0.3), oklch(0.7 0.11 82 / 0.06));
  box-shadow: 0 14px 28px -20px oklch(0 0 0 / 0.5);
  transition: transform 0.45s var(--pk-ease), box-shadow 0.45s var(--pk-ease);
}
.pk-clergy__card .pk-icon__arch .pk-photo { border-radius: 999px 999px 2px 2px; overflow: hidden; aspect-ratio: 3 / 4; }
.pk-clergy__card:not(.pk-clergy__card--static):hover .pk-icon__arch { transform: translateY(-5px); box-shadow: 0 22px 40px -26px oklch(0 0 0 / 0.6); }
.pk-clergy__name { font-family: var(--pk-display); font-size: 19px; letter-spacing: 0.04em; margin: 0 0 4px; transition: color 0.35s var(--pk-ease); }
.pk-clergy__card:hover .pk-clergy__name { color: var(--accent); }
.pk-clergy__role { font-size: 13px; font-family: var(--pk-display); letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; }
main > [data-block][data-style="2"] .pk-clergy { grid-template-columns: 1fr 1fr; max-width: 760px; margin-inline: auto; }
main > [data-block][data-style="2"] .pk-clergy__card { display: grid; grid-template-columns: 110px 1fr; gap: 0 22px; text-align: left; align-items: center; }
main > [data-block][data-style="2"] .pk-clergy__card .pk-icon__arch { margin: 0; width: 110px; grid-row: span 3; }
main > [data-block][data-style="3"] .pk-clergy__card .pk-icon__arch { border-radius: 6px; }
main > [data-block][data-style="3"] .pk-clergy__card .pk-icon__arch .pk-photo { border-radius: 3px; aspect-ratio: 1; }

/* ---------- icon split (image + passage) ---------- */
/* the copy columns of the image+text splits are flow containers; keep them
   left-aligned within the split so the passage reads as a column beside the
   arch frame (the parent [data-block] may be center-aligned). */
.pk-split__copy,
.pk-feast__copy,
.pk-sermon__copy,
.pk-welcome__copy { text-align: left; }
.pk-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; text-align: left; }
.pk-split__frame {
  border: 1.5px solid var(--pk-gold-deep);
  outline: 1px solid oklch(0.58 0.1 78 / 0.4); outline-offset: 5px;
  border-radius: 220px 220px 6px 6px; overflow: hidden; padding: 9px;
  background: linear-gradient(168deg, oklch(0.7 0.11 82 / 0.22), oklch(0.7 0.11 82 / 0.04));
  box-shadow: 0 26px 52px -34px oklch(0 0 0 / 0.6);
}
.pk-split__frame .pk-photo { border-radius: 210px 210px 3px 3px; overflow: hidden; aspect-ratio: 4 / 5; }
main > [data-block][data-style="2"] .pk-split .pk-split__frame { order: 2; }
main > [data-block][data-style="3"] .pk-split { grid-template-columns: 1fr; text-align: center; max-width: 640px; margin-inline: auto; }
main > [data-block][data-style="3"] .pk-split .pk-actions { justify-content: center; }

/* ---------- icon gallery (gold-ruled mosaic) ---------- */
.pk-gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: clamp(8px, 1.4vw, 14px); border: 1.5px solid var(--pk-gold-deep); padding: clamp(8px, 1.4vw, 14px); }
.pk-gallery__tile { position: relative; display: block; text-decoration: none; color: inherit; overflow: hidden; border: 1px solid oklch(0.58 0.1 78 / 0.4); }
.pk-gallery__tile .pk-photo { aspect-ratio: 1; height: 100%; }
.pk-gallery__tile .pk-photo img { transition: transform 0.7s var(--pk-ease); }
.pk-gallery__tile:hover .pk-photo img { transform: scale(1.06); }
.pk-gallery__tile:first-child { grid-column: span 2; grid-row: span 2; }
.pk-gallery__tile:first-child .pk-photo { aspect-ratio: auto; }
.pk-gallery__cap {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 28px 14px 11px;
  font-family: var(--pk-display); font-size: 12px; letter-spacing: 0.06em; text-align: left;
  color: oklch(0.94 0.018 85); text-transform: none;
  background: linear-gradient(0deg, oklch(0.16 0.04 262 / 0.92), transparent);
}
main > [data-block][data-style="2"] .pk-gallery__tile:first-child { grid-column: span 1; grid-row: span 1; }
main > [data-block][data-style="2"] .pk-gallery__tile:first-child .pk-photo { aspect-ratio: 1; }
main > [data-block][data-style="3"] .pk-gallery { grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); grid-template-columns: none; grid-auto-rows: auto; overflow-x: auto; }
main > [data-block][data-style="3"] .pk-gallery__tile:first-child { grid-column: auto; grid-row: auto; }
main > [data-block][data-style="3"] .pk-gallery__tile:first-child .pk-photo { aspect-ratio: 1; }

/* ---------- arched full-bleed banner ---------- */
main > .pk-banner-wrap[data-block],
.pk-banner { position: relative; }
.pk-banner {
  min-height: clamp(440px, 64vh, 680px);
  display: grid; place-items: center; overflow: hidden;
  border-block: 1.5px solid var(--pk-gold-deep);
}
.pk-banner__fresco { position: absolute; inset: 0; }
.pk-banner__fresco img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.25) saturate(1.1) brightness(0.72) contrast(1.02); }
.pk-banner__fresco.img-fallback {
  background: radial-gradient(ellipse 80% 100% at 50% 30%, oklch(0.5 0.09 70 / 0.5), transparent 70%),
    radial-gradient(ellipse 120% 120% at 50% 120%, oklch(0.28 0.085 20 / 0.85), transparent 60%), var(--pk-midnight);
}
.pk-banner__veil {
  position: absolute; inset: 0; z-index: 2;
  background: radial-gradient(ellipse 70% 80% at 50% 36%, oklch(0.23 0.05 262 / 0.42) 0%, oklch(0.23 0.05 262 / 0.86) 92%);
}
/* the arch crop: a large gold-edged arch window centered over the fresco */
.pk-banner::before {
  content: ""; position: absolute; z-index: 3;
  top: clamp(26px, 5vw, 60px); bottom: clamp(26px, 5vw, 60px);
  left: clamp(26px, 6vw, 90px); right: clamp(26px, 6vw, 90px);
  border: 1.5px solid var(--pk-gold);
  border-radius: 50% 50% 6px 6px / 26% 26% 6px 6px;
  pointer-events: none; opacity: 0.7;
}
.pk-banner__copy { position: relative; z-index: 4; padding: clamp(48px, 8vw, 96px) clamp(28px, 8vw, 110px); max-width: 760px; text-align: center; }
.pk-banner__copy .pk-display { color: var(--pk-ivory); }
.pk-banner__copy .pk-lede { color: oklch(0.94 0.018 85 / 0.9); }
.pk-banner__copy .pk-invite__crown { color: var(--pk-gold); }
main > [data-block][data-style="2"] .pk-banner::before { border-radius: 6px; }
main > [data-block][data-style="3"] .pk-banner__fresco img { filter: sepia(0.25) saturate(1.05) brightness(0.5) contrast(1.02); }
main > [data-block][data-style="3"] .pk-banner::before { display: none; }

/* ---------- history timeline (gilt spine + cross nodes) ---------- */
.pk-timeline { list-style: none; margin: 0; padding: 0; text-align: left; }
.pk-timeline__row { position: relative; display: grid; grid-template-columns: 120px 1fr; gap: 0 clamp(20px, 3vw, 38px); padding: 0 0 clamp(28px, 3.5vw, 44px) clamp(22px, 3vw, 34px); }
.pk-timeline__row::before { /* the gilt spine */
  content: ""; position: absolute; left: 4px; top: 6px; bottom: -6px; width: 1.5px;
  background: linear-gradient(var(--accent), oklch(0.58 0.1 78 / 0.25));
}
.pk-timeline__row:last-child { padding-bottom: 0; }
.pk-timeline__row:last-child::before { bottom: auto; height: 1.4em; }
.pk-timeline__row::after { /* the cross node */
  content: "✛"; position: absolute; left: -3px; top: 0; font-size: 14px; line-height: 1.2;
  color: var(--pk-gold); background: var(--surf); padding: 2px 0;
}
.pk-timeline__year { font-family: var(--pk-display); font-size: clamp(20px, 2.4vw, 28px); letter-spacing: 0.04em; color: var(--accent); font-variant-numeric: tabular-nums; }
.pk-timeline__body { padding-top: 2px; }
.pk-timeline__body .pk-h3 { margin-bottom: 7px; }
@media (max-width: 700px) { .pk-timeline__row { grid-template-columns: 1fr; gap: 4px; } .pk-timeline__year { margin-bottom: 2px; } }

/* ---------- ministries grid (image-topped cards) ---------- */
.pk-ministries { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.2vw, 26px); }
.pk-ministry {
  display: block; text-decoration: none; color: inherit; text-align: left;
  border: 1px solid var(--pk-gold-deep); overflow: hidden; background: oklch(1 0 0 / 0.4);
  box-shadow: 0 16px 32px -26px oklch(0 0 0 / 0.7);
  transition: transform 0.4s var(--pk-ease), border-color 0.4s var(--pk-ease);
}
[data-surface="b"] .pk-ministry, [data-surface="c"] .pk-ministry { background: oklch(0.94 0.018 85 / 0.06); }
a.pk-ministry:hover { transform: translateY(-4px); border-color: var(--pk-gold); }
.pk-ministry__photo { display: block; aspect-ratio: 16 / 11; }
.pk-ministry__body { padding: 18px clamp(14px, 1.6vw, 20px) 20px; }
.pk-ministry__body .pk-h3 { margin-bottom: 8px; transition: color 0.35s var(--pk-ease); }
a.pk-ministry:hover .pk-h3 { color: var(--accent); }
.pk-ministry__body p { font-size: 14.5px; color: var(--txt-dim); margin: 0 0 10px; }
main > [data-block][data-style="2"] .pk-ministries { grid-template-columns: repeat(2, 1fr); }
main > [data-block][data-style="3"] .pk-ministries { gap: 0; border: 1.5px solid var(--pk-gold-deep); }
main > [data-block][data-style="3"] .pk-ministry { border: 0; border-left: 1px solid var(--rule); box-shadow: none; background: transparent; }
main > [data-block][data-style="3"] .pk-ministry:first-child { border-left: 0; }

/* ---------- FAQ accordion (gold-edged plates) ---------- */
.pk-faq { text-align: left; display: grid; gap: 12px; }
.pk-faq__item { border: 1px solid var(--rule); background: oklch(1 0 0 / 0.4); transition: border-color 0.3s var(--pk-ease); }
[data-surface="b"] .pk-faq__item, [data-surface="c"] .pk-faq__item { background: oklch(0.94 0.018 85 / 0.05); }
.pk-faq__item[open], .pk-faq__item:hover { border-color: var(--accent); }
.pk-faq__q {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font-family: var(--pk-display); font-size: clamp(16px, 1.7vw, 20px); letter-spacing: 0.03em;
  padding: clamp(16px, 2vw, 22px) clamp(18px, 2.4vw, 26px); color: var(--txt);
}
.pk-faq__q::-webkit-details-marker { display: none; }
.pk-faq__mark { color: var(--accent); font-size: 14px; font-style: normal; transition: transform 0.35s var(--pk-ease); flex: none; }
.pk-faq__item[open] .pk-faq__mark { transform: rotate(45deg); }
.pk-faq__a { margin: 0; padding: 0 clamp(18px, 2.4vw, 26px) clamp(18px, 2.4vw, 24px); color: var(--txt-dim); font-size: 16px; }
main > [data-block][data-style="2"] .pk-faq__item { border-left: 0; border-right: 0; border-top: 0; background: transparent; }
main > [data-block][data-style="2"] .pk-faq { gap: 0; }

/* ---------- stats band (gilt figures) ---------- */
.pk-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.pk-stat { padding: clamp(8px, 1.5vw, 18px) clamp(14px, 2vw, 26px); border-left: 1px solid var(--rule); }
.pk-stat:first-child { border-left: 0; }
.pk-stat__figure { display: block; font-family: var(--pk-display); font-weight: 400; font-size: clamp(38px, 5vw, 62px); line-height: 1; letter-spacing: 0.02em; color: var(--accent); font-variant-numeric: tabular-nums; }
.pk-stat__label { display: block; margin-top: 12px; font-family: var(--pk-display); font-size: 12.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--txt-dim); }
main > [data-block][data-style="2"] .pk-stats { gap: 0; border: 1.5px solid var(--pk-gold-deep); }
main > [data-block][data-style="2"] .pk-stat { padding-block: clamp(22px, 3vw, 40px); }
@media (max-width: 720px) { .pk-stats { grid-template-columns: 1fr 1fr; gap: 16px 0; } .pk-stat:nth-child(odd) { border-left: 0; } }

/* ---------- giving appeal (stewardship plate over fresco) ---------- */
.pk-give-plate {
  position: relative; overflow: hidden; text-align: left;
  border: 1.5px solid var(--pk-gold-deep); outline: 1px solid var(--rule); outline-offset: 6px;
  padding: clamp(34px, 5vw, 64px) clamp(26px, 4.5vw, 56px);
  box-shadow: 0 30px 60px -42px oklch(0 0 0 / 0.7);
}
.pk-give-plate__fresco { position: absolute; inset: 0; z-index: 0; }
.pk-give-plate__fresco img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.3) saturate(1.1) brightness(0.45); }
.pk-give-plate::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, oklch(0.23 0.05 262 / 0.92) 30%, oklch(0.23 0.05 262 / 0.62) 100%); }
.pk-give-plate > * { position: relative; z-index: 2; }
.pk-give-plate__copy .pk-h2 { color: var(--pk-ivory); }
.pk-give-plate__copy .pk-kicker { color: var(--pk-gold); }
.pk-give-plate__copy .pk-invite__lede { color: oklch(0.94 0.018 85 / 0.9); margin-inline: 0; }
.pk-give-plate__copy .pk-invite__lede i { color: var(--pk-gold); }
.pk-give-plate__copy .pk-actions { justify-content: flex-start; }
.pk-give-plate__copy .pk-btn--ghost { color: var(--pk-ivory); border-color: var(--pk-gold); }
main > [data-block][data-style="2"] .pk-give-plate { text-align: center; }
main > [data-block][data-style="2"] .pk-give-plate__copy .pk-invite__lede { margin-inline: auto; }
main > [data-block][data-style="2"] .pk-give-plate__copy .pk-actions { justify-content: center; }

/* ---------- testimonies (voices in plates) ---------- */
.pk-voices { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 28px); }
.pk-voice {
  margin: 0; text-align: left; border: 1px solid var(--rule); background: oklch(1 0 0 / 0.45);
  padding: clamp(24px, 3vw, 36px) clamp(20px, 2.6vw, 30px);
  box-shadow: 0 18px 38px -30px oklch(0 0 0 / 0.6); position: relative;
}
[data-surface="b"] .pk-voice, [data-surface="c"] .pk-voice { background: oklch(0.94 0.018 85 / 0.05); }
.pk-voice::before { content: "“"; display: block; font-family: var(--pk-display); font-size: 46px; line-height: 0.4; color: var(--accent); opacity: 0.5; margin-bottom: 14px; }
.pk-voice__quote { margin: 0 0 22px; font-family: var(--pk-text); font-style: italic; font-size: 17px; line-height: 1.6; color: var(--txt); }
.pk-voice__by { display: flex; align-items: center; gap: 14px; }
.pk-voice__photo { width: 52px; height: 52px; border-radius: 999px; overflow: hidden; flex: none; border: 1px solid var(--pk-gold-deep); }
.pk-voice__photo img { width: 100%; height: 100%; object-fit: cover; }
.pk-voice__id { display: flex; flex-direction: column; }
.pk-voice__id b { font-family: var(--pk-display); font-size: 16px; letter-spacing: 0.05em; }
.pk-voice__role { font-size: 12.5px; font-family: var(--pk-display); letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
main > [data-block][data-style="2"] .pk-voices { grid-template-columns: 1fr; max-width: 680px; margin-inline: auto; }

/* ---------- feast highlight (saint & icon) ---------- */
.pk-feast { display: grid; grid-template-columns: 0.85fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; text-align: left; }
.pk-feast__icon .pk-icon__arch {
  display: block; width: 100%; margin: 0;
  border: 1.5px solid var(--pk-gold-deep); outline: 1px solid oklch(0.58 0.1 78 / 0.4); outline-offset: 5px;
  border-radius: 260px 260px 6px 6px; overflow: hidden; padding: 10px;
  background: linear-gradient(168deg, oklch(0.7 0.11 82 / 0.24), oklch(0.7 0.11 82 / 0.05));
  box-shadow: 0 26px 52px -34px oklch(0 0 0 / 0.6);
}
.pk-feast__icon .pk-photo { border-radius: 250px 250px 3px 3px; overflow: hidden; aspect-ratio: 3 / 4; }
.pk-feast__date { font-family: var(--pk-display); font-size: 13.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); margin: 0 0 18px; }
main > [data-block][data-style="2"] .pk-feast .pk-feast__icon { order: 2; }
main > [data-block][data-style="3"] .pk-feast { grid-template-columns: 1fr; text-align: center; max-width: 560px; margin-inline: auto; }
main > [data-block][data-style="3"] .pk-feast .pk-feast__icon { width: min(280px, 70%); margin-inline: auto; }
main > [data-block][data-style="3"] .pk-feast .pk-actions { justify-content: center; }

/* ---------- visit band (map + directions) ---------- */
.pk-visit { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: stretch; text-align: left; }
.pk-visit__map { border: 1.5px solid var(--pk-gold-deep); overflow: hidden; }
.pk-visit__map .pk-photo { height: 100%; min-height: 280px; }
.pk-visit__panel { align-self: stretch; }
.pk-visit__rows { display: grid; gap: 0; }
.pk-visit__row { padding: 14px 0; border-bottom: 1px solid var(--rule); }
.pk-visit__row:last-child { border-bottom: 0; }
.pk-visit__key { display: block; font-family: var(--pk-display); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; }
.pk-visit__val { display: block; font-size: 16px; color: var(--txt); }
main > [data-block][data-style="2"] .pk-visit .pk-visit__map { order: 2; }
main > [data-block][data-style="3"] .pk-visit { grid-template-columns: 1fr; }

/* ---------- newsletter ---------- */
.pk-news { text-align: center; }
.pk-news .pk-invite__lede { margin-inline: auto; max-width: 50ch; }
.pk-news__form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; max-width: 520px; margin-inline: auto; }
.pk-news__input {
  flex: 1 1 240px; min-width: 0; font-family: var(--pk-text); font-size: 16px; color: var(--txt);
  background: oklch(1 0 0 / 0.55); border: 1px solid var(--rule); padding: 15px 18px;
  transition: border-color 0.3s var(--pk-ease);
}
[data-surface="b"] .pk-news__input, [data-surface="c"] .pk-news__input { background: oklch(0.94 0.018 85 / 0.08); color: var(--txt); }
.pk-news__input::placeholder { color: var(--txt-dim); }
.pk-news__input:focus-visible { outline: none; border-color: var(--pk-gold); }
.pk-news__form .pk-btn { flex: none; }
main > [data-block][data-style="2"] .pk-news { border: 0; background: transparent; box-shadow: none; padding: 0; }

/* ---------- pull quote (inscribed saying) ---------- */
.pk-pull { margin: 0; position: relative; padding-top: clamp(8px, 1.5vw, 18px); }
.pk-pull__mark { display: block; font-family: var(--pk-display); font-size: clamp(54px, 8vw, 96px); line-height: 0.4; color: var(--accent); opacity: 0.5; margin-bottom: clamp(8px, 1.5vw, 18px); }
.pk-pull__quote { margin: 0; font-family: var(--pk-display); font-weight: 400; font-size: clamp(24px, 3.4vw, 42px); line-height: 1.34; letter-spacing: 0.02em; text-wrap: balance; color: var(--txt); }
.pk-pull__cite { display: block; margin-top: clamp(20px, 3vw, 32px); font-family: var(--pk-display); font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--accent); }
.pk-pull__cite::before { content: "✛  "; opacity: 0.7; }
main > [data-block][data-style="2"] .pk-pull__mark { display: none; }
main > [data-block][data-style="2"] .pk-pull { padding-top: 0; }

/* ---------- feature columns (text register) ---------- */
.pk-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 52px); text-align: left; }
.pk-col__glyph { display: block; font-size: clamp(24px, 3vw, 34px); line-height: 1; color: var(--accent); margin-bottom: 16px; }
.pk-col .pk-h3 { margin-bottom: 10px; }
.pk-col__go { font-family: var(--pk-display); font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-decoration: none; display: inline-block; margin-top: 12px; transition: color 0.35s var(--pk-ease); }
.pk-col__go:hover { color: var(--pk-gold); }
main > [data-block][data-style="2"] .pk-cols { gap: 0; }
main > [data-block][data-style="2"] .pk-col { padding: clamp(8px, 1.6vw, 18px) clamp(20px, 3vw, 40px); border-left: 1px solid var(--rule); }
main > [data-block][data-style="2"] .pk-col:first-child { border-left: 0; }
@media (max-width: 860px) { .pk-cols { grid-template-columns: 1fr; } main > [data-block][data-style="2"] .pk-col { border-left: 0; border-top: 1px solid var(--rule); padding-block: 22px; } main > [data-block][data-style="2"] .pk-col:first-child { border-top: 0; } }

/* ---------- sermon feature ---------- */
.pk-sermon { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; text-align: left; }
.pk-sermon__still { position: relative; border: 1.5px solid var(--pk-gold-deep); overflow: hidden; box-shadow: 0 26px 52px -36px oklch(0 0 0 / 0.7); }
.pk-sermon__still .pk-photo { aspect-ratio: 16 / 10; }
.pk-sermon__still .pk-photo img { filter: sepia(0.2) saturate(1.05) brightness(0.78); }
.pk-sermon__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: clamp(58px, 7vw, 78px); height: clamp(58px, 7vw, 78px); display: grid; place-items: center;
  border: 1.5px solid var(--pk-gold); border-radius: 999px; color: var(--pk-gold); font-size: 22px;
  background: oklch(0.23 0.05 262 / 0.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  transition: transform 0.4s var(--pk-ease), background 0.4s var(--pk-ease);
}
.pk-sermon__still:hover .pk-sermon__play { transform: translate(-50%, -50%) scale(1.08); background: oklch(0.23 0.05 262 / 0.72); }
.pk-sermon__meta { font-family: var(--pk-display); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin: 0 0 18px; }
main > [data-block][data-style="2"] .pk-sermon .pk-sermon__still { order: 2; }
main > [data-block][data-style="3"] .pk-sermon { grid-template-columns: 1fr; text-align: center; }
main > [data-block][data-style="3"] .pk-sermon .pk-actions { justify-content: center; }

/* ---------- sacrament cards ---------- */
.pk-sacraments { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.2vw, 26px); }
.pk-sacrament {
  display: block; text-decoration: none; color: inherit; text-align: center;
  border: 1px solid var(--pk-gold-deep); background: oklch(1 0 0 / 0.4);
  padding: clamp(26px, 3.4vw, 40px) clamp(18px, 2.4vw, 26px);
  box-shadow: 0 16px 32px -26px oklch(0 0 0 / 0.7);
  transition: transform 0.4s var(--pk-ease), border-color 0.4s var(--pk-ease);
}
[data-surface="b"] .pk-sacrament, [data-surface="c"] .pk-sacrament { background: oklch(0.94 0.018 85 / 0.06); }
a.pk-sacrament:hover { transform: translateY(-4px); border-color: var(--pk-gold); }
.pk-sacrament__glyph { display: block; font-size: clamp(28px, 3.4vw, 40px); line-height: 1; color: var(--accent); margin-bottom: 16px; transition: color 0.35s var(--pk-ease); }
a.pk-sacrament:hover .pk-sacrament__glyph { color: var(--pk-gold); }
.pk-sacrament .pk-h3 { margin-bottom: 10px; }
.pk-sacrament p { font-size: 14.5px; color: var(--txt-dim); margin: 0 0 12px; }
main > [data-block][data-style="2"] .pk-sacraments { gap: 0; border: 1.5px solid var(--pk-gold-deep); }
main > [data-block][data-style="2"] .pk-sacrament { border: 0; border-left: 1px solid var(--rule); box-shadow: none; background: transparent; }
main > [data-block][data-style="2"] .pk-sacrament:first-child { border-left: 0; }
main > [data-block][data-style="3"] .pk-sacraments { grid-template-columns: repeat(2, 1fr); }

/* ---------- iconostasis row (the icon tier) ---------- */
.pk-tier { display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(10px, 1.8vw, 22px); align-items: end; }
.pk-tier__icon { text-decoration: none; color: inherit; display: block; }
.pk-tier__arch {
  display: block; border: 1.5px solid var(--pk-gold-deep); outline: 1px solid oklch(0.58 0.1 78 / 0.4); outline-offset: 3px;
  border-radius: 999px 999px 3px 3px; overflow: hidden; padding: 6px; margin-bottom: 12px;
  background: linear-gradient(170deg, oklch(0.7 0.11 82 / 0.26), oklch(0.7 0.11 82 / 0.05));
  box-shadow: 0 14px 28px -22px oklch(0 0 0 / 0.6);
  transition: transform 0.45s var(--pk-ease), box-shadow 0.45s var(--pk-ease);
}
.pk-tier__arch .pk-photo { border-radius: 999px 999px 2px 2px; overflow: hidden; aspect-ratio: 2 / 3; }
a.pk-tier__icon:hover .pk-tier__arch { transform: translateY(-5px); box-shadow: 0 24px 42px -28px oklch(0 0 0 / 0.6); }
.pk-tier__name { display: block; font-family: var(--pk-display); font-size: 13px; letter-spacing: 0.1em; color: var(--txt); transition: color 0.35s var(--pk-ease); }
a.pk-tier__icon:hover .pk-tier__name { color: var(--accent); }
main > [data-block][data-style="2"] .pk-tier { grid-template-columns: repeat(5, 1fr); }
main > [data-block][data-style="2"] .pk-tier__arch { border-radius: 6px; }
main > [data-block][data-style="2"] .pk-tier__arch .pk-photo { border-radius: 3px; aspect-ratio: 1; }
@media (max-width: 760px) { .pk-tier { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 460px) { .pk-tier { grid-template-columns: repeat(2, 1fr); } }

/* ---------- triptych (three hinged panels) ---------- */
.pk-triptych { display: grid; grid-template-columns: 1fr 1.18fr 1fr; gap: clamp(10px, 1.6vw, 18px); align-items: center; }
.pk-triptych__panel {
  display: block; text-decoration: none; color: inherit;
  border: 1.5px solid var(--pk-gold-deep); padding: clamp(14px, 1.8vw, 22px) clamp(14px, 1.8vw, 22px) clamp(20px, 2.4vw, 28px);
  background: oklch(1 0 0 / 0.4); box-shadow: 0 18px 40px -30px oklch(0 0 0 / 0.7);
  transition: transform 0.45s var(--pk-ease), border-color 0.4s var(--pk-ease);
}
[data-surface="b"] .pk-triptych__panel, [data-surface="c"] .pk-triptych__panel { background: oklch(0.94 0.018 85 / 0.05); }
.pk-triptych__panel:nth-child(2) { transform: translateY(-14px); }
a.pk-triptych__panel:hover { border-color: var(--pk-gold); }
a.pk-triptych__panel:nth-child(2):hover { transform: translateY(-18px); }
.pk-triptych__arch {
  display: block; border: 1px solid oklch(0.58 0.1 78 / 0.5); border-radius: 999px 999px 3px 3px; overflow: hidden; padding: 5px; margin-bottom: 14px;
  background: linear-gradient(170deg, oklch(0.7 0.11 82 / 0.2), oklch(0.7 0.11 82 / 0.04));
}
.pk-triptych__arch .pk-photo { border-radius: 999px 999px 2px 2px; overflow: hidden; aspect-ratio: 3 / 4; }
.pk-triptych__panel .pk-h3 { margin-bottom: 8px; }
.pk-triptych__panel .pk-body { font-size: 14px; }
main > [data-block][data-style="2"] .pk-triptych { grid-template-columns: repeat(3, 1fr); }
main > [data-block][data-style="2"] .pk-triptych__panel:nth-child(2) { transform: none; }
main > [data-block][data-style="2"] a.pk-triptych__panel:nth-child(2):hover { transform: translateY(-4px); }
@media (max-width: 760px) { .pk-triptych { grid-template-columns: 1fr; } .pk-triptych__panel:nth-child(2) { transform: none; } }

/* ---------- rector welcome (priest portrait + letter) ---------- */
.pk-welcome { display: grid; grid-template-columns: 0.82fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; text-align: left; }
.pk-welcome__portrait .pk-icon__arch {
  display: block; width: 100%; margin: 0;
  border: 1.5px solid var(--pk-gold-deep); outline: 1px solid oklch(0.58 0.1 78 / 0.4); outline-offset: 5px;
  border-radius: 260px 260px 6px 6px; overflow: hidden; padding: 10px;
  background: linear-gradient(168deg, oklch(0.7 0.11 82 / 0.24), oklch(0.7 0.11 82 / 0.05));
  box-shadow: 0 26px 52px -34px oklch(0 0 0 / 0.6);
}
.pk-welcome__portrait .pk-photo { border-radius: 250px 250px 3px 3px; overflow: hidden; aspect-ratio: 3 / 4; }
.pk-welcome__sign { font-family: var(--pk-display); font-size: clamp(20px, 2.2vw, 26px); letter-spacing: 0.04em; color: var(--accent); margin: 22px 0 2px; }
.pk-welcome__role { font-family: var(--pk-display); font-size: 12.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--txt-dim); margin: 0; }
main > [data-block][data-style="2"] .pk-welcome .pk-welcome__portrait { order: 2; }
main > [data-block][data-style="3"] .pk-welcome { grid-template-columns: 1fr; text-align: center; max-width: 620px; margin-inline: auto; }
main > [data-block][data-style="3"] .pk-welcome .pk-welcome__portrait { width: min(280px, 68%); margin-inline: auto; }

/* ---------- responsive collapse for the new image+text splits ---------- */
@media (max-width: 820px) {
  .pk-split,
  .pk-feast,
  .pk-visit,
  .pk-sermon,
  .pk-welcome { grid-template-columns: 1fr; text-align: center; }
  .pk-split .pk-actions,
  .pk-feast .pk-actions,
  .pk-sermon .pk-actions { justify-content: center; }
  .pk-split__frame,
  .pk-feast__icon .pk-icon__arch,
  .pk-welcome__portrait .pk-icon__arch { width: min(320px, 78%); margin-inline: auto; }
  .pk-visit__row,
  .pk-clergy__card[style] { text-align: left; }
}
@media (max-width: 980px) {
  .pk-clergy { grid-template-columns: 1fr 1fr; }
  .pk-ministries { grid-template-columns: 1fr 1fr; }
  .pk-sacraments { grid-template-columns: 1fr 1fr; }
  .pk-voices { grid-template-columns: 1fr; }
  .pk-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .pk-clergy,
  .pk-ministries,
  .pk-sacraments { grid-template-columns: 1fr; }
}

/* ---- material pass: fresco plaster · ivory linen ---- */
body {
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"),
    repeating-linear-gradient(0deg, oklch(0.28 0.035 50 / 0.018) 0 1px, transparent 1px 3px);
}
main > [data-block] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); }
main > [data-block][data-surface="b"], main > [data-block][data-surface="c"], main > .pk-hero[data-block] {
  background-image:
    radial-gradient(ellipse 130% 80% at 50% -10%, oklch(1 0 0 / 0.06), transparent 55%),
    radial-gradient(ellipse 150% 120% at 50% 120%, oklch(0 0 0 / 0.42), transparent 62%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
.pk-header, .pk-foot { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); }
.pk-panel { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(168deg, oklch(1 0 0 / 0.3), transparent 45%); }
[data-surface="b"] .pk-panel, [data-surface="c"] .pk-panel { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); }
.pk-event { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(170deg, oklch(1 0 0 / 0.4), transparent 50%); }
.pk-icon__arch { box-shadow: 0 14px 28px -20px oklch(0 0 0 / 0.5); }

/* readability hard pass */
main > .pk-hero[data-block] .pk-lede i { color: var(--pk-gold); }
.pk-event span { color: oklch(0.28 0.035 50 / 0.7); }

/* mobile scale guard */
@media (max-width: 640px) { .pk-display { font-size: clamp(28px, 8.5vw, 40px); } .pk-icon__arch { width: min(130px, 56%); } .pk-hero__stage { min-height: 420px; } }
