:root {
  --ink: #080808;
  --muted: #5f5f5f;
  --line: #cfc7bb;
  --paper: #ffffff;
  --soft: #f7f5f1;
  --blue: #075aaa;
  --gold: #b49b75;
  --red: #a94425;
  --brown: #7b6246;
}

* { box-sizing: border-box; }
html {
  min-height: 100%;
  height: 100%;
  scroll-behavior: smooth;
  background: var(--paper);
}
body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
  display: flex;
  flex-direction: column;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select {
  font: inherit;
  border: 1px solid #b8a98f;
  border-radius: 0;
}
button {
  cursor: pointer;
  background: var(--paper);
  padding: 10px 16px;
  text-transform: uppercase;
  font-size: 13px;
}
.primary, .button {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
  border-radius: 0;
  font-weight: 700;
}
.danger { color: #b42318; border-color: #f3b5af; }
.muted { color: var(--muted); }
.eyebrow {
  color: #d96277;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.mourning { filter: grayscale(1); }
body:not(.mourning) { filter: none; }

.info-bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px max(18px, calc((100vw - 1240px) / 2 + 18px));
  border-bottom: 3px solid #8a1f2d;
  background: #111a2b;
  color: #d8e0ef;
  font-size: 15px;
  line-height: 1.35;
}
.info-bar span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gold);
  color: #111a2b;
  font-size: 13px;
  font-weight: 800;
}
.info-bar strong {
  font-weight: 600;
}
.info-bar a {
  color: #fff;
  text-decoration: underline;
  font-weight: 700;
  white-space: nowrap;
}
.mourning-bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px max(18px, calc((100vw - 1240px) / 2 + 18px));
  border-bottom: 1px solid #111;
  background: #f2f2f2;
  color: #111;
}
.mourning-bar span {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 2px solid #111;
  border-radius: 50%;
}
.mourning-bar strong {
  text-transform: uppercase;
  letter-spacing: 1px;
}
.mourning-bar p {
  margin: 0;
  color: #333;
}

.site-header {
  width: 100%;
  margin: 0;
  padding-top: 0;
  border-bottom: 6px solid var(--gold);
  background: #fff;
}
.top-strip {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 14px 20px 4px;
  color: var(--blue);
  font-size: 14px;
  text-transform: uppercase;
}
.top-strip a:not(.login-chip) {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
}
.top-strip .social-icon {
  overflow: hidden;
  background: #fff;
}
.top-strip .social-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}
.top-strip .social-icon svg path {
  fill: currentColor;
}
.top-strip .social-icon.discord {
  width: 30px;
  height: 30px;
  color: #fff;
  border-color: transparent;
  border-radius: 9px;
  background: #5865f2;
}
.top-strip .social-icon.discord svg {
  width: 26px;
  height: 26px;
}
.top-strip .social-icon.discord svg rect {
  fill: #5865f2;
}
.top-strip .social-icon.discord svg path {
  fill: #fff;
}
.top-strip .social-icon.tiktok {
  color: #050505;
  border-color: #050505;
}
.top-strip .social-icon.x {
  color: #000;
  border-color: #000;
}
.top-strip .social-icon.youtube {
  color: #ff0000;
  border-color: #ff0000;
}
.settings-button {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 2px solid var(--blue);
  border-radius: 50%;
  color: var(--blue);
  background: #fff;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  flex: 0 0 auto;
}
.settings-button svg {
  width: 17px;
  height: 17px;
  display: block;
}
.settings-button svg path {
  fill: currentColor;
}
.settings-button:hover,
.settings-button:focus-visible {
  color: #fff;
  background: var(--blue);
  outline: 0;
}
.login-chip {
  padding: 6px 12px;
  border: 1px solid var(--blue);
  border-radius: 0;
  font-weight: 700;
}
.link-button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  text-decoration: underline;
}
.brand-row {
  display: grid;
  grid-template-columns: minmax(330px, 1fr) minmax(250px, 360px) auto;
  align-items: center;
  max-width: 1210px;
  margin: 0 auto;
  padding: 36px 20px 28px;
  gap: 22px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  color: var(--brown);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.18;
  text-transform: uppercase;
}
.brand img {
  width: 78px;
  height: 78px;
  object-fit: contain;
}
.search-box {
  display: flex;
  width: 100%;
  min-width: 0;
}
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  min-width: max-content;
  color: #8e7554;
  text-transform: uppercase;
  font-size: 12px;
  white-space: nowrap;
}
.header-actions a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 13px;
  border-left: 1px solid #b8a98f;
}
.header-actions a:last-child {
  padding-right: 0;
}
.header-actions span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  font-size: 22px;
  line-height: 1;
}
.search-box input {
  width: 100%;
  border-right: 0;
  padding: 10px;
}
.search-box button {
  border-radius: 0;
  color: #987a52;
}
.main-nav-shell {
  position: relative;
  z-index: 60;
  border-bottom: 5px solid var(--gold);
}
.main-nav {
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  max-width: 1210px;
  margin: 0 auto;
  padding: 0 20px 24px;
  gap: 0;
  text-transform: uppercase;
}
.main-nav a,
.nav-trigger {
  font-size: 15px;
  line-height: 1.35;
}
.nav-trigger {
  min-height: 42px;
  width: 100%;
  padding: 0 18px 0 0;
  border: 0;
  background: transparent;
  color: #000;
  text-align: left;
  text-transform: uppercase;
  font: inherit;
  cursor: pointer;
  overflow-wrap: normal;
}
.nav-trigger:hover,
.nav-trigger:focus-visible,
.nav-trigger.active {
  color: var(--brown);
  outline: 0;
}
.mega-nav-panel {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 70;
  padding: 0;
  background: #fff;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.1);
}
.main-nav-shell:hover .mega-nav-panel,
.main-nav-shell:focus-within .mega-nav-panel,
.mega-nav-panel.is-open {
  display: block;
}
.mega-nav-inner {
  width: min(1210px, calc(100vw - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 0;
  align-items: start;
}
.mega-nav-column {
  min-height: 100%;
  padding: 16px 16px 24px;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.mega-nav-column.is-active,
.mega-nav-column:hover {
  background: #c9b692;
}
.mega-nav-column h3 {
  margin: 0 0 9px;
  font-size: 14px;
  line-height: 1.35;
  text-transform: uppercase;
}
.mega-nav-column ul {
  margin: 0;
  padding-left: 16px;
}
.mega-nav-column li {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.35;
  text-transform: uppercase;
}
.mega-nav-column a {
  display: inline-block;
  padding: 1px 0;
}
.mega-nav-column a:hover,
.mega-nav-column a:focus-visible {
  color: #fff;
  outline: 0;
}
.nav-group {
  position: relative;
  flex: 0 1 130px;
}
.nav-group > a {
  display: block;
  min-height: 42px;
  overflow-wrap: anywhere;
}

main {
  width: min(1260px, calc(100vw - 40px));
  margin: 0 auto;
  flex: 1 0 auto;
}
.home-page {
  width: min(1260px, calc(100vw - 48px));
}
.home-diocese-hero {
  min-height: 430px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 52px 0 70px;
  text-align: center;
  border-bottom: 0;
}
.home-diocese-hero img {
  width: 76px;
  height: 76px;
  object-fit: contain;
  margin-bottom: 18px;
}
.home-diocese-hero h1 {
  max-width: 790px;
  margin: 6px 0 0;
  color: var(--blue);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.12;
  text-transform: uppercase;
}
.home-diocese-hero .home-diocese-kicker {
  margin: 0;
  color: #8a6b43;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.home-diocese-hero span {
  width: min(360px, 70vw);
  height: 4px;
  margin: 18px auto 0;
  background: var(--blue);
}
.home-diocese-hero p {
  max-width: 720px;
  margin: 14px auto 0;
  color: var(--blue);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
}
.hero {
  min-height: 430px;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
}
.hero img { width: 92px; height: 92px; object-fit: contain; }
.hero h1 {
  margin: 18px 0 4px;
  color: var(--blue);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.05;
  text-transform: uppercase;
}
.hero p {
  max-width: 680px;
  margin: 0 auto;
  color: var(--blue);
  font-size: 20px;
  font-weight: 700;
}
.quick-links-band {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 10px;
  margin: 0 0 42px;
  padding: 20px 0 36px;
}
.quick-link {
  position: relative;
  min-height: 86px;
  display: flex;
  align-items: center;
  padding: 18px 26px;
  border: 0;
  color: #000;
  background: #eee8dc;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
}
.quick-link img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quick-link span {
  position: relative;
  z-index: 1;
  max-width: 70%;
}
.quick-link:has(img)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.76);
}
.quick-link.image-only::after { display: none; }
.quick-link.image-only { min-height: 140px; }
.quick-link:hover {
  filter: brightness(0.96);
}
.quick-link.ql-right {
  justify-content: flex-end;
  text-align: right;
}
.quick-link.ql-a { background: #eee7da; }
.quick-link.ql-b { background: #e5d8c5; }
.quick-link.ql-c { background: #f4f1ea; }
.quick-link.ql-d { background: #eadfce; }
.home-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 30px;
  align-items: start;
  margin: 24px auto 46px;
}
.home-main-column {
  display: grid;
  gap: 34px;
  min-width: 0;
}
.home-slider {
  position: relative;
  min-height: 420px;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  background: var(--soft);
  contain: layout paint;
}
.home-slide {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  transition: opacity 520ms ease;
}
.read-more-link {
  display: inline-block;
  margin-top: 24px;
  text-transform: uppercase;
  font-size: 14px;
}
.home-site-events {
  width: min(1260px, calc(100vw - 48px));
  margin: 42px auto 54px;
}
.home-site-events h2 {
  margin: 0 0 26px;
  text-transform: uppercase;
  font-size: 26px;
  letter-spacing: 0;
}
.site-event-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.site-event-card {
  position: relative;
  display: block;
  border: 1px solid #1b1b1b;
  min-height: 428px;
  overflow: hidden;
  background: #0b2338;
  color: #fff;
  contain: layout paint;
}
.site-event-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: absolute;
  inset: 0;
}
.site-event-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 36%;
  background: linear-gradient(0deg, rgba(0,0,0,.82), rgba(0,0,0,.28));
}
.site-event-overlay {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: end;
}
.site-event-overlay time {
  min-height: 94px;
  display: grid;
  align-content: center;
  justify-items: center;
  background: #fff;
  color: #000;
  text-align: center;
}
.site-event-overlay time strong {
  font-size: 28px;
  line-height: 1;
}
.site-event-overlay time span {
  margin-top: 7px;
  font-size: 13px;
  text-transform: capitalize;
}
.site-event-overlay time small {
  margin-top: 2px;
  font-size: 12px;
}
.site-event-card h3 {
  margin: 0;
  padding: 0 14px 16px;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 800;
  color: #fff;
}
.site-event-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}
.site-event-dots span {
  width: 10px;
  height: 10px;
  border: 2px solid #aaa;
  border-radius: 50%;
}
.site-event-dots span:first-child {
  background: #999;
}
.home-slide.is-active {
  opacity: 1;
  z-index: 1;
}
.home-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
}
.home-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.08));
}
.home-slide span {
  position: absolute;
  left: 36px;
  bottom: 32px;
  z-index: 2;
  max-width: min(620px, calc(100% - 72px));
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.05;
  text-transform: uppercase;
}
.home-side-stack {
  display: grid;
  gap: 10px;
  align-content: start;
}
.met-card {
  position: relative;
  min-height: 190px;
  display: block;
  overflow: hidden;
  border: 1px solid #111;
  background: #ddd;
}
.met-card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  filter: saturate(.92);
}
.met-card span {
  position: absolute;
  left: 20px;
  top: 78px;
  bottom: auto;
  max-width: 190px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.sidebar-button,
.discord-main-link,
.discord-large {
  display: grid;
  place-items: center;
  min-height: 80px;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  font-size: 13px;
  font-weight: 400;
  text-transform: uppercase;
}
.sidebar-button.listen {
  color: var(--gold);
  font-size: 26px;
  font-weight: 800;
  text-transform: none;
}
.discord-main-link,
.discord-large {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}
.temporary-contact-card {
  display: grid;
  gap: 9px;
  padding: 18px 20px;
  border: 1px solid #111;
  background: #fff;
}
.temporary-contact-card h2 {
  margin: 0;
  font-size: 15px;
  line-height: 1.25;
  text-transform: uppercase;
}
.temporary-contact-card p {
  margin: 0;
  color: #333;
  font-size: 13px;
  line-height: 1.45;
}
.temporary-contact-card a {
  color: var(--blue);
  font-size: 18px;
  font-weight: 800;
}
.liturgy-sidebar-card {
  display: grid;
  gap: 16px;
  min-height: 420px;
  padding: 22px 20px;
  border: 3px solid #b8b8b8;
  text-align: center;
  align-content: start;
}
.liturgy-sidebar-card h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
}
.liturgy-sidebar-card strong {
  font-size: 22px;
  font-weight: 400;
}
.liturgy-sidebar-card > a:not(.tiny-link) {
  color: var(--blue);
  font-size: 20px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}
.liturgy-sidebar-card small {
  display: block;
  color: #111;
  margin-top: 12px;
  text-align: left;
  font-size: 14px;
  line-height: 1.65;
}
.tiny-link {
  justify-self: end;
  align-self: end;
  font-size: 13px;
  text-decoration: underline;
}
.liturgical-readings {
  display: grid;
  gap: 10px;
  margin: 14px 0 30px;
}
.liturgical-reading {
  border: 1px solid #111;
  background: #fff;
}
.liturgical-reading summary {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}
.liturgical-reading summary::-webkit-details-marker {
  display: none;
}
.liturgical-reading summary::after {
  content: "+";
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: start;
  justify-self: end;
  font-weight: 800;
}
.liturgical-reading[open] summary::after {
  content: "-";
}
.liturgical-reading summary strong {
  text-transform: uppercase;
}
.liturgical-reading summary span {
  color: #333;
  line-height: 1.45;
}
.liturgical-reading-body {
  padding: 2px 18px 18px;
  border-top: 1px solid #ddd;
  line-height: 1.72;
}
.liturgical-reading-body p {
  margin: 12px 0 0;
}
.liturgical-color {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.liturgical-color span {
  width: 18px;
  height: 18px;
  border: 1px solid #111;
  background: #fff;
}
.liturgical-color.color-bia-y span,
.liturgical-color.color-bialy span {
  background: #fff;
}
.liturgical-color.color-czerwony span {
  background: #b51f2a;
}
.liturgical-color.color-zielony span {
  background: #188047;
}
.liturgical-color.color-fioletowy span {
  background: #6b3fa0;
}
.liturgical-color.color-r-owy span,
.liturgical-color.color-rozowy span {
  background: #e68bad;
}
.liturgical-color.color-czarny span {
  background: #111;
}
.upload-preview {
  display: block;
  width: min(220px, 100%);
  max-height: 150px;
  margin-top: 8px;
  border: 1px solid var(--line);
  object-fit: contain;
  background: #fff;
}
.vatican-news {
  border: 0;
  font-size: 11px;
}
.vatican-head {
  display: block;
  padding: 8px 10px;
  background: #e00012;
  color: #fff;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}
.vatican-news ul {
  margin: 8px 0 0;
  padding-left: 16px;
}
.vatican-news li {
  margin: 5px 0;
  color: var(--blue);
  line-height: 1.25;
}
.visits-card {
  padding: 14px 18px 16px;
  border: 1px solid #ddcbb8;
  background: #fffaf5;
  color: #5c1b00;
  font-size: 12px;
}
.visits-card h2 {
  margin: 0 0 10px;
  font-size: 12px;
  text-transform: none;
}
.visits-card dl {
  display: grid;
  gap: 2px;
  margin: 0 0 8px;
}
.visits-card dl div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}
.visits-card dt {
  display: flex;
  align-items: center;
  gap: 4px;
}
.visits-card dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.visits-card p {
  margin: 8px 0 0;
  text-align: center;
  font-size: 11px;
}
.visits-card > strong {
  display: block;
  margin: 2px auto 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid #7b2317;
  text-align: center;
}
.visits-card small {
  display: block;
  text-align: center;
}
.home-news-grid .post-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.home-news-panel {
  min-height: 220px;
  padding: 0;
  background: #fff;
}
.home-news-panel h2 {
  margin: 0 0 26px;
  font-size: 25px;
}
.home-news-panel .post-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px 32px;
  align-items: start;
}
.home-news-panel .post-card {
  border: 0;
  overflow: visible;
}
.home-news-panel .post-card img {
  aspect-ratio: 16 / 9;
  border: 1px solid #222;
  display: block;
}
.home-news-panel .post-card h3 {
  margin: 6px 0 10px;
  font-size: 21px;
  line-height: 1.18;
}
.home-news-panel .post-card p {
  font-size: 16px;
  line-height: 1.65;
}
.home-news-panel .post-card div {
  padding: 14px 0 0;
}
.home-news-panel .post-card span {
  color: #8a6b43;
  font-size: 14px;
  font-weight: 400;
  text-transform: none;
}
.home-events-panel {
  margin: 36px 0;
}
.home-events-panel .event-line {
  grid-template-columns: 180px 1fr;
  align-items: start;
  gap: 18px;
}
.event-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.event-panel-head h2 {
  margin: 0;
}
.today-masses-panel {
  padding: 28px 30px;
  border: 1px solid #111;
  background:
    linear-gradient(90deg, rgba(196, 172, 130, .18), transparent 44%),
    #fff;
}
.today-masses-panel .event-panel-head {
  align-items: flex-end;
  padding-bottom: 18px;
  border-bottom: 1px solid #c9b58f;
}
.today-masses-panel time {
  color: var(--brown);
  font-weight: 800;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .5px;
}
.today-masses-label {
  margin: 0 0 5px;
  color: var(--brown);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.today-masses-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}
.today-mass-line {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 4px 18px;
  align-items: start;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.today-mass-line:last-child {
  border-bottom: 0;
}
.today-mass-line strong {
  color: #111;
  font-size: 24px;
  line-height: 1;
}
.today-mass-line span {
  color: #111;
  font-weight: 800;
  line-height: 1.35;
}
.today-mass-line small {
  grid-column: 2;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.event-tabs {
  display: inline-flex;
  border: 1px solid var(--gold);
  background: #fff;
}
.event-tabs button {
  min-width: 112px;
  border: 0;
  border-right: 1px solid var(--gold);
  background: #fff;
  color: #111;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.event-tabs button:last-child {
  border-right: 0;
}
.event-tabs button.active,
.event-tabs button:hover {
  background: #f3eadb;
  color: var(--brown);
}
.event-tab-panel {
  display: none;
}
.event-tab-panel.active {
  display: block;
}
.content-grid, .band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
  margin: 40px 0;
}
.band {
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
  padding-top: 32px;
}
h1, h2, h3 { line-height: 1.2; }
h1 {
  margin: 0 0 24px;
  font-size: clamp(30px, 4vw, 48px);
  text-transform: uppercase;
}
h2 {
  margin: 0 0 18px;
  font-size: 26px;
  text-transform: uppercase;
}
.post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 30px;
}
.post-card {
  border: 0;
  border-bottom: 1px solid #111;
  border-radius: 0;
  overflow: hidden;
  background: #fff;
}
.post-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: var(--soft);
}
.post-card div { padding: 16px 0 18px; }
.post-card span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.post-card h2,
.post-card h3 {
  margin: 8px 0 10px;
  font-size: 20px;
  text-transform: none;
}
.post-card p {
  margin: 0;
  color: #333;
}
.narrow.news-index {
  width: min(1240px, calc(100% - 84px));
  max-width: none;
  padding-top: 14px;
}
.news-index h1 {
  margin: 0 0 28px;
  font-size: 24px;
  line-height: 1.2;
  text-transform: uppercase;
}
.news-index .post-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px 40px;
}
.news-index .post-card {
  border: 0;
}
.news-index .post-image-link {
  display: block;
  background: var(--soft);
}
.news-index .post-card img,
.news-index .post-image-link {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.news-index .post-card img {
  display: block;
  height: 100%;
  object-fit: cover;
}
.news-index .post-card div {
  padding: 14px 0 0;
}
.news-index .post-card span {
  display: block;
  margin-bottom: 4px;
  color: #111;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.25;
  text-transform: none;
}
.news-index .post-card h2 {
  margin: 0 0 10px;
  font-size: 20px;
  line-height: 1.15;
  font-weight: 800;
}
.news-index .post-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
  color: #111;
}
.side-panel, .panel-card, .calendar-mini {
  border: 1px solid #222;
  border-radius: 0;
  background: #fff;
  padding: 20px;
}
.event-line {
  display: grid;
  gap: 3px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.event-line:last-child { border-bottom: 0; }
.event-line span { color: var(--muted); font-size: 14px; }
.parish-list {
  display: grid;
  gap: 12px;
}
.parish-list a {
  padding: 13px 0;
  border-bottom: 1px solid #111;
  background: #fff;
  font-weight: 700;
}
.video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 0;
}
.narrow {
  max-width: 920px;
  margin: 0 auto;
  padding: 44px 0;
}
.article-page {
  width: min(1240px, calc(100% - 72px));
  max-width: none;
  padding-top: 46px;
}
.prose {
  white-space: pre-line;
  font-size: 18px;
}
.prose.rich { white-space: normal; }
.prose.rich h2,
.prose.rich h3 {
  margin-top: 30px;
  padding: 8px 10px;
  border: 1px solid #222;
  font-size: 18px;
}
.prose.rich p {
  margin: 0 0 16px;
}
.breadcrumb {
  margin: 0 0 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid #222;
  color: #111;
  font-size: 14px;
  text-transform: uppercase;
}
.breadcrumb a {
  color: inherit;
}
.privacy-shell {
  width: min(1120px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 38px 0 70px;
}
.privacy-language {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 16px;
}
.privacy-language.inline-language {
  justify-content: flex-start;
  align-items: center;
  margin: 16px 0 0;
}
.privacy-language span {
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.privacy-language a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 36px;
  border: 1px solid #d8cbb8;
  border-radius: 999px;
  background: #fff;
  color: #002653;
  font-weight: 900;
}
.privacy-language a.active,
.privacy-language a:hover {
  background: #002653;
  color: #fff;
  border-color: #002653;
}
.privacy-hero,
.privacy-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.privacy-card {
  padding: 28px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(15, 37, 64, .08);
}
.privacy-card h1,
.privacy-card h2,
.privacy-card h3 {
  margin: 0 0 14px;
  color: #001f4a;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.08;
}
.privacy-card h1 {
  font-size: clamp(42px, 6vw, 58px);
}
.privacy-card h2 {
  font-size: 22px;
}
.privacy-card p {
  margin: 0 0 14px;
  color: #374151;
  line-height: 1.75;
}
.privacy-card a {
  color: inherit;
  font-weight: 800;
}
.privacy-intro span {
  display: inline-flex;
  margin-bottom: 18px;
  padding: 8px 18px;
  border-radius: 999px;
  background: #ffe8ee;
  color: #d91d47;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.privacy-section {
  margin-top: 20px;
}
.privacy-section.accent {
  border-left: 6px solid #d91d47;
}
.privacy-card ul {
  display: grid;
  gap: 10px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}
.privacy-card li {
  position: relative;
  padding-left: 28px;
  color: #374151;
  line-height: 1.65;
}
.privacy-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #d91d47;
  font-weight: 900;
}
.privacy-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 4px;
  padding: 12px 22px;
  border-radius: 999px;
  background: #002653;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(0, 38, 83, .22);
}
.secondary-privacy-button {
  margin-left: 8px;
  background: #fff;
  color: #002653 !important;
  border: 1px solid #002653;
  box-shadow: none;
}
.privacy-data-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 18px;
}
.privacy-data-grid article {
  padding: 24px 18px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  text-align: center;
}
.privacy-data-grid strong {
  display: block;
  margin-bottom: 8px;
  color: #d91d47;
  font-size: 42px;
  line-height: 1;
}
.privacy-modules {
  display: grid;
  grid-template-columns: minmax(160px, .35fr) 1fr;
  gap: 12px 22px;
  margin: 0;
}
.privacy-modules dt {
  color: #d91d47;
  font-weight: 900;
}
.privacy-modules dd {
  margin: 0;
  color: #374151;
  line-height: 1.65;
}
.privacy-alert {
  margin-top: 20px;
  padding: 28px;
  border-radius: 14px;
  background: #173f78;
  color: #fff;
}
.privacy-alert p {
  margin: 0 0 14px;
  line-height: 1.7;
}
.privacy-alert strong {
  text-transform: uppercase;
}
.church-layout {
  display: grid;
  grid-template-columns: 1fr 290px;
  gap: 34px;
}
.plain-list { display: grid; gap: 18px; }
.list-row {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #111;
}
.list-row img {
  width: 170px;
  height: 130px;
  object-fit: cover;
  border: 1px solid #111;
}
.list-row h2, .list-row h3 { margin: 0 0 8px; font-size: 17px; text-transform: none; }
.parish-masses {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.parish-masses-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.parish-masses strong {
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .4px;
}
.parish-masses-head span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: none;
}
.parish-masses-table-wrap {
  margin-top: 2px;
  overflow-x: auto;
  border: 1px solid var(--line);
  background: #fbfaf8;
}
.parish-masses-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 12px;
}
.parish-masses-table th,
.parish-masses-table td {
  padding: 9px 10px;
  border-bottom: 1px solid #e8e2da;
  text-align: left;
  vertical-align: top;
}
.parish-masses-table th {
  color: var(--muted);
  background: #f1ece5;
  font-size: 10px;
  letter-spacing: .7px;
  text-transform: uppercase;
}
.parish-masses-table tr:last-child td { border-bottom: 0; }
.parish-masses-table td:first-child,
.parish-masses-table td:nth-child(2) {
  color: var(--brown);
  font-weight: 800;
  white-space: nowrap;
}
.parish-masses-table td:first-child strong {
  margin-bottom: 0;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}
.parish-masses p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}
.filter-box {
  border: 1px solid #888;
  padding: 16px;
  margin-bottom: 18px;
}
.filter-box h3 {
  display: flex;
  justify-content: space-between;
  margin: 0 0 14px;
  font-size: 13px;
  text-transform: uppercase;
}
.filter-box ul {
  max-height: 190px;
  overflow: auto;
  list-style: none;
  margin: 0;
  padding: 0;
}
.filter-box li { margin: 7px 0; font-size: 13px; }
.filter-box a {
  display: inline-block;
  padding: 2px 0;
}
.filter-box a.active {
  color: var(--blue);
  font-weight: 800;
  text-decoration: underline;
}
.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin: -6px 0 20px;
  color: var(--muted);
}
.active-filters a {
  color: var(--blue);
  text-decoration: underline;
  font-weight: 700;
}
.metropolitan-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  min-height: 360px;
  display: grid;
  align-items: center;
  background: linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.12)), var(--metropolitan-hero, url("/assets/herb-wroclaw.png")) center / cover no-repeat;
  color: #fff;
}
.metropolitan-hero-inner {
  width: min(1240px, calc(100vw - 64px));
  margin: 0 auto;
}
.metropolitan-hero h1 { margin: 0; font-size: clamp(36px, 4vw, 58px); text-transform: uppercase; }
.metropolitan-main {
  width: min(1240px, calc(100vw - 64px));
  margin: 0 auto;
  padding: 0 0 64px;
}
.metropolitan-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding: 34px 0 30px;
  text-transform: uppercase;
  color: #444;
  font-size: 14px;
  align-items: center;
}
.metropolitan-tabs a.active { color: var(--gold); }
.metropolitan-page {
  display: grid;
  grid-template-columns: minmax(0, 780px) minmax(280px, 340px);
  gap: 72px;
  align-items: start;
}
.metropolitan-page .prose {
  font-size: 17px;
  line-height: 1.78;
}
.section-title {
  border: 1px solid #111;
  padding: 12px 14px;
  margin: 0 0 30px;
  font-size: 18px;
  text-transform: uppercase;
}
.heraldry-card {
  text-align: center;
  position: sticky;
  top: 96px;
}
.heraldry-card img {
  width: min(100%, 280px);
  max-height: 280px;
  object-fit: contain;
}
.heraldry-card p {
  margin: 18px 0;
  font-size: 15px;
  line-height: 1.55;
}
.heraldry-actions {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #111;
  text-align: center;
}
.heraldry-actions strong {
  display: block;
  margin-bottom: 14px;
  font-size: 13px;
  text-transform: uppercase;
}
.outline-button {
  display: block;
  margin: 16px 0 0;
  padding: 22px;
  border: 1px solid #111;
  text-transform: uppercase;
}
.heraldry-actions .outline-button {
  display: inline-flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 14px 16px;
  font-size: 13px;
  letter-spacing: .5px;
}
.bishops-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  min-height: 170px;
  display: grid;
  align-items: center;
  background: linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.18)), url("/assets/herb-wroclaw.png") center / 180px auto repeat-x;
  background-color: #8c2340;
  color: #fff;
}
.bishops-hero-inner {
  width: min(1120px, calc(100vw - 40px));
  margin: 0 auto;
}
.bishops-hero h1 {
  margin: 0;
  font-size: clamp(30px, 4vw, 52px);
  text-transform: uppercase;
}
.bishops-page {
  width: min(900px, calc(100vw - 40px));
  margin: 36px auto 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  gap: 42px;
  align-items: start;
}
.bishops-list {
  display: grid;
  gap: 18px;
}
.bishops-list h2 {
  margin: 10px 0 2px;
  font-size: 13px;
  text-transform: uppercase;
}
.bishop-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  min-height: 112px;
  color: #111;
}
.bishop-row img {
  display: block;
  width: 96px !important;
  height: 112px !important;
  max-width: 96px;
  max-height: 112px;
  object-fit: cover;
  border: 1px solid #111;
  background: #f7f4ef;
}
.bishop-row span {
  font-weight: 800;
  line-height: 1.25;
}
.bishops-actions {
  display: grid;
  align-content: start;
  gap: 10px;
  padding-top: 30px;
}
.bishops-actions a,
.bishop-calendar-picker button {
  display: block;
  border: 1px solid #111;
  padding: 10px 12px;
  text-align: center;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 13px;
  background: #fff;
}
.bishop-calendar-page h2 {
  margin: 26px 0 18px;
  font-size: 18px;
  text-transform: uppercase;
}
.bishop-calendar-picker {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 14px;
  margin: 18px 0;
}
.bishop-calendar-picker label {
  display: grid;
  gap: 8px;
  min-width: min(360px, 100%);
  font-weight: 700;
  text-transform: uppercase;
}
.bishop-calendar-picker select {
  border: 1px solid #111;
  padding: 11px 12px;
  background: #fff;
  font: inherit;
  text-transform: none;
}
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 865px) 320px;
  gap: 55px;
  align-items: start;
}
.article-body img, .article-body iframe {
  display: block;
  width: 100%;
  max-width: 100%;
}
.article-body {
  min-width: 0;
}
.article-date {
  margin: 0 0 16px;
  font-size: 14px;
}
.article-body h1 {
  margin: 0 0 18px;
  font-size: 26px;
  line-height: 1.2;
  text-transform: uppercase;
}
.article-lead {
  margin: 0 0 28px;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 800;
}
.latest-posts {
  padding-top: 42px;
}
.latest-posts h3 {
  margin: 0 0 22px;
  font-size: 21px;
}
.latest-list {
  display: grid;
  gap: 22px;
}
.latest-list small {
  display: block;
  margin-bottom: 2px;
  font-size: 14px;
  color: #111;
}
.latest-list a {
  display: block;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.15;
}
.liturgical-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 36px;
}
.liturgical-box {
  border: 1px solid #222;
  padding: 10px;
  margin: 24px 0 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.liturgical-month-head {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: center;
  gap: 10px;
  margin: 18px 0 14px;
  text-align: center;
}
.liturgical-month-head h2 {
  margin: 0;
  font-size: 20px;
  text-transform: capitalize;
}
.liturgical-month-head a {
  color: #000;
  font-weight: 800;
}
.month-mini {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  gap: 4px;
}
.month-mini a,
.month-mini span {
  display: block;
  padding: 9px 4px;
  color: #000;
  text-decoration: none;
  border-radius: 8px;
}
.month-mini a:hover {
  background: #eef4fb;
}
.month-mini .today,
.month-mini .today:hover {
  border-radius: 8px;
  background: #2488cf;
  color: #fff;
}
.month-mini .muted-day {
  color: #c9c9c9;
}
.filter-box ul {
  max-height: 170px;
  overflow: auto;
  padding-left: 0;
  list-style: none;
}
.filter-box li {
  margin: 0 0 9px;
}
.filter-box li a {
  color: #000;
  font-size: 13px;
  line-height: 1.35;
}
.verification-page {
  padding: 44px 0;
}
.verification-simple-page {
  min-height: 74vh;
  display: grid;
  place-items: center;
  padding: 70px 16px;
  background:
    radial-gradient(circle at 18% 16%, rgba(0, 94, 176, 0.16), transparent 32%),
    radial-gradient(circle at 86% 18%, rgba(197, 170, 126, 0.28), transparent 28%),
    linear-gradient(135deg, #f7fbff 0%, #ffffff 48%, #f6efe3 100%);
  overflow: hidden;
}
.verification-shell {
  position: relative;
  width: min(960px, 100%);
}
.verification-glow {
  position: absolute;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  filter: blur(12px);
  opacity: 0.42;
  pointer-events: none;
}
.verification-glow-one {
  left: -80px;
  top: -70px;
  background: rgba(0, 94, 176, 0.2);
}
.verification-glow-two {
  right: -70px;
  bottom: -80px;
  background: rgba(197, 170, 126, 0.3);
}
.verification-simple-panel {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
  padding: 46px;
  border: 1px solid rgba(197, 170, 126, 0.42);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  text-align: center;
  box-shadow: 0 26px 70px rgba(10, 31, 68, 0.16);
  backdrop-filter: blur(18px);
}
.verification-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 9px 16px 9px 10px;
  border: 1px solid rgba(0, 94, 176, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}
.verification-simple-logo {
  width: 46px;
  height: 46px;
  object-fit: contain;
}
.verification-simple-panel h1 {
  margin: 6px 0 16px;
  color: var(--blue);
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1.1;
}
.verification-simple-lead {
  max-width: 680px;
  margin: 0 auto 24px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
}
.verification-actions,
.verification-legal-links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.verification-primary-button {
  min-width: 220px;
  border-radius: 999px;
  box-shadow: 0 16px 34px rgba(0, 94, 176, 0.2);
}
.verification-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 24px;
}
.verification-steps span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  border: 1px solid rgba(197, 170, 126, 0.34);
  border-radius: 14px;
  background: rgba(249, 246, 239, 0.78);
  color: var(--ink);
  font-weight: 700;
}
.verification-steps strong {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 13px;
}
.verification-legal-links {
  margin-top: 24px;
  color: var(--muted);
  font-size: 14px;
}
.verification-legal-links a {
  color: var(--blue);
  font-weight: 700;
}
.verification-redirect-note {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 14px;
}
.verification-hero {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px;
  align-items: center;
  margin-bottom: 28px;
}
.verification-hero img {
  width: 110px;
  height: 110px;
  object-fit: contain;
}
.verification-hero h1 {
  margin: 0 0 10px;
  font-size: clamp(30px, 4vw, 48px);
  color: var(--blue);
}
.verification-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.verification-guide {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 20px;
  margin-bottom: 20px;
  align-items: start;
}
.verification-guide span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.verification-guide h2 {
  margin: 0;
  color: var(--blue);
  font-size: 24px;
}
.verification-guide ol {
  margin: 0;
  padding-left: 22px;
  line-height: 1.8;
}
.verification-guide p {
  grid-column: 2;
  margin: -8px 0 0;
  color: var(--muted);
}
.verification-terms {
  margin-bottom: 20px;
}
.verification-terms div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.verification-card span {
  width: fit-content;
  padding: 4px 10px;
  border-radius: 999px;
  color: #fff;
  background: var(--blue);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.verification-card.preferred {
  border-color: #9fc3ec;
  box-shadow: 0 18px 40px rgba(7, 90, 170, 0.12);
}
.secondary-button {
  background: var(--ink);
  border-color: var(--ink);
}
.verification-result {
  margin: 20px 0;
  padding: 28px;
  border-radius: 18px;
  border: 1px solid var(--line);
}
.verification-result.success {
  border-color: #98d8ae;
  background: linear-gradient(135deg, #f0fff5, #ffffff);
}
.verification-result.error {
  border-color: #f3b5af;
  background: linear-gradient(135deg, #fff4f2, #ffffff);
}
.verification-result-icon {
  display: grid;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  place-items: center;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 30px;
  font-weight: 900;
}
.verification-result.error .verification-result-icon {
  background: #bf2f24;
}
.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: var(--soft);
  padding: 24px;
}
.login-panel {
  width: min(860px, 100%);
  display: grid;
  gap: 18px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 27, 58, 0.12);
}
.login-panel > img {
  width: 78px;
  height: 78px;
  object-fit: contain;
}
.login-panel h1, .login-panel h2 {
  margin: 0;
}
.login-methods {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.login-methods form, .discord-method {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.form-error {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #f3b5af;
  border-radius: 6px;
  color: #b42318;
  background: #fff4f2;
}
.discord-login, .back-link {
  text-align: center;
}
.back-link {
  color: var(--muted);
  text-decoration: underline;
}

.site-footer {
  width: 100%;
  margin-top: auto;
  padding: 30px 0;
  background: #a88f68;
  color: #fff;
  border-left: 0;
}
.footer-inner {
  width: min(1240px, calc(100vw - 32px));
  margin: 0 auto;
  padding-left: 4px;
  border-left: 4px solid var(--red);
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) auto;
  gap: 48px;
  align-items: start;
}
.footer-brand strong {
  display: block;
  margin-bottom: 12px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  line-height: 1.05;
  text-transform: uppercase;
}
.footer-brand small {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.footer-brand nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11px;
  text-transform: uppercase;
}
.footer-note {
  max-width: 720px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
}
.footer-note p { margin: 0 0 8px; }
.footer-socials {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.footer-socials a {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 800;
}

.cookie-banner {
  position: fixed;
  left: 20px;
  right: 20px;
  bottom: 20px;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 27, 58, 0.18);
}
.cookie-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cookie-modal {
  width: min(760px, calc(100vw - 24px));
  border: 0;
  border-radius: 22px;
  padding: 28px;
  box-shadow: 0 30px 80px rgba(7, 27, 58, 0.35);
}
.site-settings-modal {
  width: min(620px, calc(100vw - 28px));
  border: 1px solid #222;
  padding: 0;
}
.site-settings-modal:not([open]):not(.is-open) {
  display: none;
}
.site-settings-modal::backdrop {
  background: rgba(0,0,0,.36);
}
.site-settings-modal.is-open {
  display: block;
  position: fixed;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  z-index: 45;
}
.site-settings-modal form {
  display: grid;
  gap: 14px;
  padding: 26px;
}
.cookie-modal:not([open]):not(.is-open) { display: none; }
.cookie-modal.is-open {
  display: block;
  position: fixed;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  z-index: 45;
}
body.cookie-lock::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 44;
  background: rgba(7, 27, 58, 0.55);
}
.cookie-modal::backdrop { background: rgba(7, 27, 58, 0.55); }
.modal-close {
  float: right;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: #f1f4f9;
  font-size: 26px;
}
.cookie-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 16px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.cookie-option small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
}
.cookie-option input {
  width: 56px;
  height: 30px;
  accent-color: var(--red);
}
.privacy-note {
  padding: 14px;
  background: var(--soft);
  border-radius: 12px;
}
.privacy-note a { color: var(--red); font-weight: 700; text-decoration: underline; }
.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.recruitment-page {
  padding: 42px 0 70px;
}
.recruitment-page h1 {
  margin: 0 0 24px;
  font-size: clamp(30px, 5vw, 48px);
}
.recruitment-grid,
.recruitment-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}
.recruitment-card h2,
.recruitment-application h2 {
  margin: 0;
  font-size: 22px;
}
.recruitment-closed,
.recruitment-closed-box {
  border-left: 5px solid var(--red);
}
.recruitment-form-shell {
  max-width: 760px;
}
.recruitment-form-head {
  border-top: 7px solid #5b42d6;
  border-radius: 6px 6px 0 0;
  background: #fff;
  padding: 22px;
  border-left: 1px solid #d8d1c8;
  border-right: 1px solid #d8d1c8;
  border-bottom: 1px solid #d8d1c8;
}
.recruitment-form-head h1 {
  margin: 0 0 12px;
  font-size: clamp(26px, 5vw, 38px);
  line-height: 1.22;
}
.recruitment-form {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}
.recruitment-form label,
.recruitment-error {
  display: grid;
  gap: 12px;
  padding: 22px;
  border: 1px solid #d8d1c8;
  border-radius: 6px;
  background: #fff;
  font-weight: 700;
}
.recruitment-form input,
.recruitment-form textarea {
  border: 0;
  border-bottom: 1px solid #c8c8c8;
  padding: 10px 0;
}
.recruitment-form textarea {
  min-height: 130px;
}
.recruitment-form button {
  justify-self: start;
}
.recruitment-ai-box {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid #d3c3ad;
  background: #faf7f1;
}
.recruitment-ai-box p {
  white-space: pre-wrap;
}
.admin-actions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.dm-admin-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr) 280px;
  gap: 18px;
  align-items: start;
}
.dm-thread-list,
.dm-side-tools {
  position: sticky;
  top: 88px;
}
.dm-thread-list {
  max-height: calc(100vh - 130px);
  overflow: auto;
}
.dm-thread {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid #e1d6c7;
  background: #fff;
}
.dm-thread + .dm-thread {
  margin-top: 8px;
}
.dm-thread.active,
.dm-thread:hover {
  border-color: var(--ink);
  background: #f6efe4;
}
.dm-thread span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.dm-thread em {
  min-width: 22px;
  padding: 2px 6px;
  background: var(--red);
  color: #fff;
  font-style: normal;
  font-size: 11px;
  text-align: center;
}
.dm-thread small {
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dm-chat-card {
  min-height: 620px;
}
.dm-chat-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e6dacb;
}
.dm-chat-head h3 {
  margin: 0;
}
.dm-chat-head a {
  border: 1px solid #cbb99c;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.dm-message-window {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 360px;
  max-height: 55vh;
  overflow: auto;
  padding: 14px;
  background: #f7f3ed;
}
.dm-message {
  max-width: min(680px, 82%);
  padding: 11px 13px;
  border: 1px solid #dccfbd;
  background: #fff;
}
.dm-message.out {
  justify-self: end;
  border-color: #1d1d1d;
  background: #111;
  color: #fff;
}
.dm-message small {
  display: block;
  margin-bottom: 5px;
  color: inherit;
  opacity: .68;
}
.dm-message p {
  margin: 0;
  white-space: pre-wrap;
}
.dm-reply-form {
  display: grid;
  gap: 10px;
}
.dm-reply-form textarea {
  min-height: 88px;
}

.admin-body {
  min-height: 100vh;
  background: #f4f1eb;
}
.admin-topbar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: min(1240px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 22px 0 18px;
}
.admin-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--brown);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
  text-transform: uppercase;
}
.admin-brand img { width: 56px; height: 56px; object-fit: contain; }
.admin-userbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  color: var(--muted);
  font-size: 13px;
  text-transform: uppercase;
}
.admin-userbar span {
  color: var(--ink);
  font-weight: 800;
}
.admin-userbar a,
.admin-userbar button {
  border: 1px solid #b9a381;
  background: #fff;
  color: var(--brown);
  padding: 8px 13px;
  font-weight: 800;
}
.admin-tabs {
  position: sticky;
  top: 0;
  z-index: 25;
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  width: 100%;
  padding: 10px max(16px, calc((100vw - 1240px) / 2));
  overflow-x: auto;
  border-top: 1px solid #ddd4c7;
  border-bottom: 5px solid var(--gold);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 12px 28px rgba(20, 16, 10, .07);
}
.admin-tabs a {
  flex: 0 0 auto;
  padding: 10px 14px;
  border: 1px solid #d8cbb8;
  background: #fff;
  color: #2b2925;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.admin-tabs a:first-child { border-left: 1px solid #d8cbb8; }
.admin-tabs a.active,
.admin-tabs a:hover {
  color: #fff;
  border-color: var(--ink);
  background: var(--ink);
}
.admin-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 30px;
  width: min(1380px, calc(100vw - 40px));
  margin: 0 auto;
  align-items: start;
}
.admin-sidebar {
  position: sticky;
  top: 16px;
  z-index: 20;
  display: grid;
  gap: 18px;
  max-height: calc(100vh - 32px);
  padding: 18px;
  overflow: auto;
  border: 1px solid #d7cab8;
  border-bottom: 5px solid var(--gold);
  background: #fbfaf8;
  box-shadow: 0 16px 42px rgba(28, 22, 14, .07);
}
.admin-sidebar-head {
  display: grid;
  gap: 3px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5dacb;
}
.admin-sidebar-head strong {
  color: var(--brown);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
}
.admin-sidebar-head span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.admin-nav-group {
  display: grid;
  gap: 6px;
  padding-top: 4px;
}
.admin-nav-group h2 {
  margin: 0 0 4px;
  padding: 0 2px 6px;
  border-bottom: 1px solid #d8cbb8;
  color: #79694f;
  font-size: 11px;
  letter-spacing: 0;
  text-transform: uppercase;
}
.admin-nav-group a {
  display: block;
  padding: 11px 12px;
  border: 1px solid transparent;
  background: #fff;
  color: #2b2925;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.admin-nav-group a.active,
.admin-nav-group a:hover {
  color: #111;
  border-color: #c5ad84;
  background: #eadfcf;
  transform: translateX(2px);
}
.panel-toast {
  position: fixed;
  right: 22px;
  top: 92px;
  z-index: 1000;
  display: grid;
  gap: 3px;
  width: min(340px, calc(100vw - 32px));
  padding: 14px 16px;
  border: 1px solid #1f7a38;
  background: #f2fff5;
  color: #12391d;
  box-shadow: 0 14px 38px rgba(0, 0, 0, .16);
  opacity: 1;
  transform: translateY(0);
  transition: opacity .24s ease, transform .24s ease;
}
.panel-toast strong {
  font-size: 13px;
  text-transform: uppercase;
}
.panel-toast span {
  font-weight: 700;
}
.panel-toast.is-error {
  border-color: #a92020;
  background: #fff4f4;
  color: #5a1111;
}
.panel-toast.is-hiding {
  opacity: 0;
  transform: translateY(-8px);
}
.admin-main {
  width: 100%;
  max-width: none;
  padding: 30px 0 76px;
}
.admin-section {
  margin-bottom: 34px;
  scroll-margin-top: 100px;
  content-visibility: auto;
  contain-intrinsic-size: 900px;
}
.admin-body[data-active-section]:not([data-active-section="dashboard"]) .admin-section {
  display: none;
}
.admin-body[data-active-section="site"] #site,
.admin-body[data-active-section="curia-documents"] #curia-documents,
.admin-body[data-active-section="posts"] #posts,
.admin-body[data-active-section="site-events"] #site-events,
.admin-body[data-active-section="bishop-pages"] #bishop-pages,
.admin-body[data-active-section="pages"] #pages,
.admin-body[data-active-section="navigation"] #navigation,
.admin-body[data-active-section="events"] #events,
.admin-body[data-active-section="lso"] #lso,
.admin-body[data-active-section="bishop-calendar"] #bishop-calendar,
.admin-body[data-active-section="parishes"] #parishes,
.admin-body[data-active-section="clergy-directory"] #clergy-directory,
.admin-body[data-active-section="dm"] #dm,
.admin-body[data-active-section="punishments"] #punishments,
.admin-body[data-active-section="roles"] #roles,
.admin-body[data-active-section="verifications"] #verifications,
.admin-body[data-active-section="applications"] #applications,
.admin-body[data-active-section="accounts"] #accounts,
.admin-body[data-active-section="cathedral"] #cathedral,
.admin-body[data-active-section="logs"] #logs {
  display: block;
}
.admin-body[data-active-section="dashboard"] .admin-section:not(#dashboard) {
  display: none;
}
.admin-section:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 24px;
  align-items: start;
}
.admin-section:first-child > div:first-child {
  display: grid;
  gap: 10px;
  padding: 24px;
  border: 1px solid #d7cab8;
  background: #fff;
  box-shadow: 0 16px 42px rgba(28, 22, 14, .07);
}
.admin-section:first-child h1 {
  margin: 0;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.1;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--brown);
}
.admin-section:first-child .muted {
  margin: 0;
}
.admin-grid {
  display: grid;
  grid-template-columns: minmax(320px, 440px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.panel-card {
  display: grid;
  gap: 14px;
  align-content: start;
  padding: 22px;
  border: 1px solid #d7cab8;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 16px 42px rgba(28, 22, 14, .07);
}
.admin-section > .panel-card,
.admin-grid > .panel-card,
.admin-grid > form.panel-card {
  border-top: 4px solid #c5ad84;
}
.admin-body .calendar-mini {
  border: 1px solid #d7cab8;
  background: #fff;
  box-shadow: 0 16px 42px rgba(28, 22, 14, .07);
}
.admin-body .event-line {
  padding: 12px;
  border: 1px solid #eadfd1;
  background: #fbfaf8;
}
.admin-body .event-line + .event-line {
  margin-top: 8px;
}
.compact-item form {
  display: grid;
  gap: 10px;
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid #eee4d7;
}
.compact-item form:only-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.admin-body label {
  display: grid;
  gap: 8px;
  color: #222;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
.admin-body input,
.admin-body textarea,
.admin-body select {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  background: #fff;
  color: var(--ink);
  border-color: #cbb99c;
  outline: none;
}
.admin-body input[type="file"] {
  padding: 9px;
  background: #fbfaf8;
  border-style: dashed;
}
.admin-body input:focus,
.admin-body textarea:focus,
.admin-body select:focus {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px rgba(180, 155, 117, .24);
}
.admin-body button,
.admin-body .button {
  min-height: 40px;
  border-color: #b9a381;
  font-weight: 800;
}
.admin-body .primary {
  border-color: var(--ink);
  background: var(--ink);
}
.admin-body .danger {
  background: #fff8f7;
  color: #9f2418;
}
textarea { min-height: 112px; resize: vertical; }
.rich-editor {
  min-height: 220px;
  font-family: Consolas, "Courier New", monospace;
  line-height: 1.45;
}
.rich-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
  border: 1px solid #cbb99c;
  border-bottom: 0;
  background: #f7f1e8;
}
.rich-toolbar button {
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid #b9a381;
  background: #fff;
  color: #342719;
  font-size: 12px;
  font-weight: 900;
}
.rich-toolbar button:hover,
.rich-toolbar button:focus-visible {
  background: #342719;
  color: #fff;
}
.rich-toolbar + .rich-editor {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.switch-row, .inline-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
}
.switch-row input, .inline-check input {
  width: auto;
  min-height: auto;
}
.compact-item {
  display: grid;
  gap: 9px;
  padding: 14px;
  border: 1px solid #e1d6c7;
  background: #fff;
}
.compact-item + .compact-item { margin-top: 10px; }
.compact-item:last-child { border-bottom: 1px solid #e1d6c7; }
.compact-item small { color: var(--muted); line-height: 1.45; }
.compact-item p { margin: 0; }
.stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 10px;
}
.stats-row span {
  display: grid;
  gap: 2px;
  padding: 13px;
  border: 1px solid #ded2c1;
  background: #fbfaf8;
  color: #4b4032;
  text-transform: uppercase;
  font-size: 12px;
}
.stats-row strong {
  color: #000;
  font-size: 22px;
  line-height: 1;
}
.admin-quick-card,
.admin-stats-card {
  grid-column: 1 / -1;
}
.admin-quick-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}
.admin-quick-grid a {
  display: grid;
  align-items: center;
  min-height: 58px;
  padding: 12px 14px;
  border: 1px solid #d8cbb8;
  background: #fbfaf8;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.admin-quick-grid a:hover {
  border-color: var(--gold);
  background: #f4eee6;
}
.celebration-chart {
  display: grid;
  gap: 12px;
}
.chart-row {
  display: grid;
  grid-template-columns: minmax(170px, 260px) minmax(120px, 1fr) 42px;
  gap: 12px;
  align-items: center;
}
.chart-label {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.chart-label strong,
.chart-label small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chart-label small {
  color: var(--muted);
}
.chart-track {
  height: 16px;
  border: 1px solid #dfd4c6;
  background: #f4efe8;
}
.chart-track span {
  display: block;
  height: 100%;
  background: var(--gold);
}
.chart-row b {
  text-align: right;
}
.admin-page-editor {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.admin-page-list {
  position: sticky;
  top: 92px;
  display: grid;
  max-height: calc(100vh - 120px);
  overflow: auto;
  border: 1px solid #d7cab8;
  background: #fff;
  box-shadow: 0 12px 32px rgba(28, 22, 14, .05);
}
.admin-page-link {
  display: grid;
  gap: 4px;
  width: 100%;
  padding: 13px 14px;
  border: 0;
  border-bottom: 1px solid #e4dacd;
  background: #fff;
  color: #000;
  text-align: left;
  cursor: pointer;
}
.admin-page-link:last-child { border-bottom: 0; }
.admin-page-link span {
  font-weight: 800;
  text-transform: uppercase;
}
.admin-page-link small {
  color: var(--muted);
  font-size: 12px;
}
.admin-page-link.active,
.admin-page-link:hover {
  background: #f2eadf;
}
.admin-page-panels {
  min-width: 0;
}
.admin-page-panel {
  display: none;
  padding: 0;
}
.admin-page-panel.active {
  display: grid;
}
.admin-page-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 16px;
  border: 1px solid #d7cab8;
  background: #fff;
}
.admin-page-heading h3 {
  margin: 0;
  font-size: 20px;
}
.admin-page-heading small {
  color: var(--muted);
}
.admin-page-heading a {
  flex: 0 0 auto;
  padding: 9px 12px;
  border: 1px solid var(--gold);
  color: var(--brown);
  text-decoration: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
}
.narrow-form { max-width: 620px; margin-top: 20px; }
.permission-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 8px 12px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #d7cab8;
  border-radius: 0;
  background: #fbfaf8;
}
.permission-list legend {
  padding: 0 6px;
  font-weight: 800;
}
.permission-list .inline-check {
  justify-content: flex-start;
  font-size: 13px;
  font-weight: 600;
}
.admin-section > h2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 24px;
  padding: 13px 16px;
  border: 1px solid #d4c4ad;
  border-left: 5px solid var(--gold);
  background: #fff;
  color: #000;
  font-size: 18px;
  box-shadow: 0 10px 28px rgba(28, 22, 14, .05);
}
.admin-section h3 {
  margin: 0 0 4px;
  font-size: 15px;
  text-transform: uppercase;
  color: #17130f;
}
.admin-section .eyebrow {
  color: var(--brown);
}

.calendar-page { padding: 40px 0; }
.calendar-shell {
  border-radius: 16px;
  background: #eef3f9;
  padding: 14px;
}
.calendar-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 0 12px;
}
.calendar-toolbar h2 {
  margin: 0;
  text-transform: none;
  font-size: 20px;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
}
.calendar-day {
  min-height: 105px;
  padding: 8px;
  border-right: 1px solid #d6dee9;
  border-bottom: 1px solid #d6dee9;
}
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day header {
  display: flex;
  justify-content: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 800;
}
.calendar-event {
  display: block;
  max-width: 100%;
  margin-top: 6px;
  padding: 3px 6px;
  border-radius: 5px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cathedral-body {
  display: block;
  background: #fff;
  color: #111820;
  font-family: Arial, Helvetica, sans-serif;
}
.cathedral-page {
  width: 100%;
  max-width: none;
  margin: 0;
}
.cathedral-hero {
  position: relative;
  min-height: 92vh;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background-image:
    linear-gradient(180deg, rgba(0, 0, 0, .45), rgba(0, 0, 0, .54)),
    var(--hero-image);
  background-position: center;
  background-size: cover;
}
.cathedral-hero-slider {
  background-image: none;
}
.cathedral-hero-slides {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #111;
}
.cathedral-hero-slides span {
  position: absolute;
  inset: 0;
  opacity: 0;
  background-image:
    linear-gradient(180deg, rgba(0, 0, 0, .44), rgba(0, 0, 0, .56)),
    var(--slide-image);
  background-position: center;
  background-size: cover;
  transform: scale(1);
  animation: cathedralHeroKenburns 28s infinite ease-in-out;
  animation-delay: calc(var(--slide-index) * 7s);
  will-change: opacity, transform;
}
@keyframes cathedralHeroKenburns {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  7% {
    opacity: 1;
  }
  25% {
    opacity: 1;
  }
  32% {
    opacity: 0;
    transform: scale(1.1);
  }
  100% {
    opacity: 0;
    transform: scale(1.1);
  }
}
.cathedral-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 7px;
  background: #a26100;
}
.cathedral-nav {
  position: fixed;
  inset: 0 0 auto;
  z-index: 120;
  box-sizing: border-box;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(12px, 1.45vw, 22px);
  min-height: 150px;
  padding: 82px clamp(14px, 2.2vw, 32px) 0;
  background: linear-gradient(180deg, rgba(43, 25, 11, .45), rgba(43, 25, 11, .1));
  box-shadow: none;
  text-transform: uppercase;
  letter-spacing: 2.7px;
  font-size: clamp(11px, .72vw, 13px);
  font-weight: 800;
  backdrop-filter: blur(1px);
}
.cathedral-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  color: #fff;
  line-height: 1.16;
  text-align: center;
}
.cathedral-nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 58px;
}
.cathedral-nav a.active::after,
.cathedral-nav a:hover::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: #f4c260;
}
.cathedral-nav span {
  margin-left: 7px;
  color: #f4c260;
}
.cathedral-subnav {
  position: absolute;
  top: 100%;
  left: 0;
  width: 200px;
  padding: 0;
  background: #f3f3f3;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.cathedral-nav-item:hover .cathedral-subnav,
.cathedral-nav-item:focus-within .cathedral-subnav {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cathedral-subnav a {
  display: flex;
  min-height: 40px;
  padding: 0 20px;
  border-bottom: 1px solid #e3e3e3;
  color: #555;
  text-transform: none;
  letter-spacing: 0;
  font-size: 15px;
  font-weight: 500;
}
.cathedral-subnav a:hover {
  background: #fff;
  color: #a46100;
}
.cathedral-subnav a::after {
  display: none !important;
}
.cathedral-mark {
  position: absolute !important;
  top: 24px;
  left: 50%;
  width: min(340px, 70vw);
  min-height: 64px !important;
  justify-content: center;
  transform: translateX(-50%);
  pointer-events: auto;
}
.cathedral-mark::before,
.cathedral-mark::after {
  content: "";
  display: block !important;
  width: 118px;
  height: 24px;
  border-top: 1px solid rgba(255, 255, 255, .82);
  border-bottom: 1px solid rgba(255, 255, 255, .45);
  opacity: .9;
}
.cathedral-mark::before {
  margin-right: 12px;
  border-radius: 60% 0 0 60%;
}
.cathedral-mark::after {
  position: static !important;
  height: 24px !important;
  margin-left: 12px;
  background: none !important;
  border-radius: 0 60% 60% 0;
}
.cathedral-mark img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  filter: drop-shadow(0 2px 5px rgba(0,0,0,.35));
}
.cathedral-donate {
  min-width: 118px;
  justify-content: center;
  padding: 0 18px;
  background: #ad6400;
}
.cathedral-donate::after {
  display: none !important;
}
.cathedral-hero-content {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 18px;
  width: min(1120px, calc(100vw - 48px));
  margin: 0 auto;
  padding-top: 80px;
  text-align: center;
}
.cathedral-hero-content img {
  width: 84px;
  height: 84px;
  object-fit: contain;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.35));
}
.cathedral-hero-content h1,
.cathedral-parish h2,
.cathedral-section h2,
.cathedral-callout h2,
.cathedral-announcements h2,
.cathedral-news h2,
.cathedral-info h2,
.cathedral-contact h2 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .02em;
  text-transform: none;
}
.cathedral-hero-content h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(58px, 8vw, 116px);
  font-style: italic;
  font-weight: 400;
  line-height: .98;
  text-shadow: 0 5px 18px rgba(0, 0, 0, .5);
}
.cathedral-hero-content p {
  margin: 0;
  color: #f5b64a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3.4vw, 48px);
  font-style: italic;
  text-shadow: 0 4px 12px rgba(0, 0, 0, .45);
}
.cathedral-live {
  margin-top: 120px;
  color: #ff2424;
  font-size: 20px;
  font-weight: 900;
  text-shadow: 0 0 14px rgba(255,0,0,.55);
}
.cathedral-parish {
  min-height: 460px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 16px;
  padding: 74px 24px;
  border-bottom: 1px solid #b77a23;
  text-align: center;
}
.cathedral-eyebrow {
  margin: 0;
  color: #111;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.cathedral-parish h2 {
  margin: 0;
  color: #9c5900;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.08;
  text-transform: uppercase;
}
.cathedral-parish strong {
  color: #9c5900;
  font-size: 18px;
  text-transform: uppercase;
}
.cathedral-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 26px;
}
.cathedral-actions-left {
  justify-content: flex-start;
}
.cathedral-actions a,
.cathedral-button,
.cathedral-callout a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 24px;
  border: 1px solid #a46100;
  background: #a46100;
  color: #fff;
  font-weight: 800;
}
.cathedral-section {
  width: min(1220px, calc(100vw - 56px));
  margin: 0 auto;
  padding: 90px 0;
}
.cathedral-history,
.cathedral-cultural,
.cathedral-liturgy {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.2fr);
  gap: 68px;
  align-items: center;
}
.cathedral-section h2,
.cathedral-callout h2,
.cathedral-announcements h2,
.cathedral-news h2,
.cathedral-info h2,
.cathedral-contact h2 {
  margin: 12px 0 20px;
  font-size: clamp(42px, 4.4vw, 64px);
  line-height: 1.06;
}
.cathedral-section p,
.cathedral-announcements p,
.cathedral-info p,
.cathedral-contact p {
  font-size: 17px;
  line-height: 1.75;
}
.cathedral-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.cathedral-gallery img,
.cathedral-cultural img,
.cathedral-liturgy img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.cathedral-cultural {
  padding-top: 54px;
}
.cathedral-callout {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 16px;
  padding: 92px 24px;
  border-top: 1px solid #b77a23;
  border-bottom: 1px solid #b77a23;
  background:
    radial-gradient(circle at 18% 50%, rgba(255,255,255,.42), transparent 22%),
    radial-gradient(circle at 82% 50%, rgba(255,255,255,.42), transparent 22%),
    #e2d5c4;
  text-align: center;
}
.cathedral-callout h2 {
  margin: 0;
}
.cathedral-callout p {
  max-width: 760px;
  margin: 0;
  font-size: 22px;
  line-height: 1.35;
}
.cathedral-event-list {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}
.cathedral-event-list p {
  margin: 0;
  padding: 12px 0;
  border-top: 1px solid #d9c5a6;
}
.cathedral-event-list strong,
.cathedral-event-list span {
  display: block;
}
.cathedral-announcements {
  width: min(1080px, calc(100vw - 56px));
  margin: 0 auto;
  padding: 86px 0;
}
.cathedral-announcements article {
  padding: 20px 0 26px;
  border-bottom: 1px solid #e0d4c3;
}
.cathedral-announcements article a {
  color: #a46100;
  font-size: 17px;
  font-weight: 900;
  text-transform: uppercase;
}
.cathedral-announcements small {
  display: block;
  margin: 8px 0 10px;
}
.cathedral-news {
  padding: 86px max(24px, calc((100vw - 1230px) / 2));
  background: #e3d8c8;
}
.cathedral-news h2 {
  text-align: center;
}
.cathedral-news > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
}
.cathedral-news article img {
  width: 100%;
  aspect-ratio: 1 / .8;
  object-fit: cover;
}
.cathedral-news small {
  display: block;
  margin: 18px 0 8px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.cathedral-news h3 {
  margin: 0 0 14px;
  font-size: 25px;
  line-height: 1.12;
}
.cathedral-news p {
  font-size: 16px;
  line-height: 1.45;
}
.cathedral-subhero-slim {
  min-height: 250px;
}
.cathedral-announcement-index {
  width: min(1030px, calc(100vw - 72px));
  margin: 0 auto;
  padding: 78px 0 110px;
  background: #fff;
}
.cathedral-announcement-index h1 {
  margin: 0 0 62px;
  color: #121820;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 4.4vw, 56px);
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.cathedral-announcement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 70px 94px;
}
.cathedral-announcement-card {
  display: grid;
  min-height: 210px;
  align-content: start;
  gap: 14px;
}
.cathedral-announcement-card small {
  color: #0d141d;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}
.cathedral-announcement-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.16;
  text-transform: uppercase;
}
.cathedral-announcement-card h2 a {
  color: #111820;
}
.cathedral-announcement-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}
.cathedral-read-more {
  justify-self: end;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid #ece5dc;
  color: #a46100;
  font-size: 14px;
  font-weight: 700;
}
.cathedral-empty {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}
.cathedral-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 36px;
  color: #5f7280;
  font-size: 42px;
  line-height: 1;
}
.cathedral-announcement-detail {
  max-width: 1070px;
}
.cathedral-announcement-detail > small {
  color: #111820;
  font-size: 14px;
  text-transform: none;
}
.cathedral-rich {
  margin-top: 52px;
  color: #111820;
  font-size: 16px;
  line-height: 1.75;
}
.cathedral-rich p,
.cathedral-rich li {
  margin-bottom: 16px;
}
.cathedral-rich strong {
  font-weight: 900;
}
.cathedral-rich ol,
.cathedral-rich ul {
  display: grid;
  gap: 16px;
  padding-left: 22px;
}
.cathedral-parish-signature {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  margin-top: 32px;
  padding: 24px 30px;
  border: 1px solid #eee4d7;
}
.cathedral-parish-signature img {
  width: 88px;
  height: 88px;
  object-fit: contain;
}
.cathedral-parish-signature a {
  color: #b16a00;
  font-size: 18px;
  text-transform: uppercase;
}
.cathedral-share-line {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #eee4d7;
}
.cathedral-share-line a {
  color: #111820;
  font-weight: 900;
}
.cathedral-cookie-banner {
  z-index: 220;
  border: 1px solid rgba(244, 194, 96, .45);
  background: rgba(20, 16, 13, .94);
  color: #fff;
  box-shadow: 0 22px 70px rgba(0, 0, 0, .38);
}
.cathedral-cookie-banner p {
  color: #e8ddce;
}
.cathedral-cookie-banner button {
  border-color: #e0a13c;
  color: #fff;
}
.cathedral-cookie-banner .primary {
  background: #a46100;
  border-color: #a46100;
}
.cathedral-cookie-modal {
  border: 1px solid #e0a13c;
}
.cathedral-admin-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid rgba(244, 194, 96, .55);
  background: rgba(17, 24, 32, .46);
  color: #fff;
  box-shadow: none;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.cathedral-admin-entry:hover {
  transform: translateY(-1px);
  border-color: #f4c260;
  background: #b87812;
}
@media (max-width: 1280px) {
  .cathedral-nav {
    gap: 8px;
    padding-left: 12px;
    padding-right: 12px;
    letter-spacing: 1.2px;
    font-size: 10.5px;
  }
  .cathedral-donate,
  .cathedral-admin-entry {
    min-width: auto;
    padding: 0 10px;
  }
}
@media (max-width: 1180px) {
  .cathedral-nav {
    gap: 4px;
    letter-spacing: .8px;
    font-size: 10px;
  }
  .cathedral-nav > a,
  .cathedral-nav-item > a {
    white-space: normal;
    max-width: 112px;
  }
  .cathedral-mark {
    max-width: 260px;
  }
}
@media (max-width: 1080px) {
  .cathedral-nav {
    justify-content: flex-start;
    align-content: flex-end;
    flex-wrap: wrap;
    gap: 0 16px;
    min-height: auto;
    padding: 76px 16px 8px;
    background: rgba(160, 92, 0, .92);
  }
  .cathedral-nav a,
  .cathedral-nav-item {
    min-height: 42px;
  }
  .cathedral-subhero {
    padding-top: 120px;
  }
  .cathedral-parish-top {
    min-height: 460px;
  }
  .cathedral-parish-card {
    width: min(100% - 32px, 960px);
    padding: 34px 24px 48px;
  }
  .cathedral-parish-columns {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}
.cathedral-visit-page {
  background: #111;
  color: #fff;
}
.cathedral-visit-hero {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background-image: linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.42)), var(--hero-image);
  background-size: cover;
  background-position: center;
}
.cathedral-visit-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 34%;
  background: linear-gradient(180deg, transparent, #111);
  pointer-events: none;
}
.cathedral-visit-intro {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, 380px) minmax(0, 1fr);
  gap: 34px 76px;
  width: min(1080px, calc(100vw - 56px));
  margin: 0 auto;
  padding: 250px 0 80px;
}
.cathedral-visit-intro h1 {
  grid-column: 1 / -1;
  max-width: 840px;
  margin: 0 auto 20px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(44px, 5vw, 76px);
  font-weight: 400;
  line-height: .98;
  text-align: center;
  text-shadow: 0 8px 28px rgba(0, 0, 0, .55);
}
.cathedral-visit-quote {
  display: contents;
}
.cathedral-visit-quote img {
  width: 100%;
  min-height: 420px;
  object-fit: cover;
  box-shadow: 0 22px 60px rgba(0,0,0,.35);
}
.cathedral-visit-quote div {
  display: grid;
  align-content: center;
  gap: 12px;
}
.cathedral-visit-quote span {
  color: #eda332;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 72px;
  line-height: .6;
}
.cathedral-visit-quote p {
  max-width: 680px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(36px, 4vw, 54px);
  font-weight: 700;
  line-height: .95;
  text-shadow: 0 5px 20px rgba(0,0,0,.45);
}
.cathedral-visit-note {
  grid-column: 2;
  max-width: 650px;
  padding: 42px 46px;
  background: #eda332;
  color: #fff;
  font-weight: 800;
  line-height: 1.55;
}
.cathedral-visit-note p {
  margin: 0 0 16px;
}
.cathedral-visit-note p:last-child {
  margin-bottom: 0;
}
.cathedral-visit-online {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  align-items: center;
  gap: 28px;
}
.cathedral-visit-online strong {
  max-width: 390px;
  font-size: 15px;
  line-height: 1.35;
  text-align: right;
}
.cathedral-visit-online a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  background: #fff;
  color: #a46100;
  font-weight: 800;
  text-transform: uppercase;
}
.cathedral-visit-links {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 64px;
  width: min(1080px, calc(100vw - 56px));
  margin: -10px auto 0;
  padding: 80px 0 110px;
  background: #111;
}
.cathedral-visit-links article {
  display: grid;
  justify-items: center;
  gap: 16px;
  text-align: center;
}
.cathedral-visit-links img {
  width: 100%;
  aspect-ratio: 1.42 / 1;
  object-fit: cover;
}
.cathedral-visit-links article::before {
  content: "";
  width: 100%;
  height: 1px;
  margin-top: 14px;
  background: rgba(255,255,255,.22);
  order: 1;
}
.cathedral-visit-links h2 {
  order: 2;
  margin: 18px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
}
.cathedral-visit-links p {
  order: 3;
  margin: 0;
  color: #fff;
  line-height: 1.55;
}
.cathedral-visit-links a {
  order: 4;
  color: #eda332;
  font-size: 13px;
  font-weight: 900;
  text-decoration: underline;
  text-transform: uppercase;
}
.cathedral-privacy-page {
  width: min(980px, calc(100vw - 72px));
  margin: 0 auto;
  padding: 82px 0 110px;
}
.cathedral-privacy-page h1,
.cathedral-privacy-page h2 {
  font-family: Georgia, "Times New Roman", serif;
}
.cathedral-privacy-page h1 {
  margin: 10px 0 26px;
  font-size: clamp(42px, 5vw, 64px);
  line-height: 1;
}
.cathedral-privacy-page section {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #e3d8c8;
}
.cathedral-privacy-page p,
.cathedral-privacy-page li {
  font-size: 17px;
  line-height: 1.75;
}
.cathedral-privacy-note {
  margin-top: 36px;
  padding: 22px 26px;
  background: #f4eadb;
  border-left: 4px solid #a46100;
}
.cathedral-info {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  min-height: 620px;
}
.cathedral-info > div {
  padding: 86px max(44px, calc((100vw - 1220px) / 2));
}
.cathedral-info nav {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin: 0 0 24px;
}
.cathedral-info nav a {
  color: #a46100;
  font-weight: 800;
  text-decoration: underline;
  text-transform: uppercase;
}
.cathedral-info img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
}
.cathedral-contact {
  width: min(900px, calc(100vw - 56px));
  margin: 0 auto;
  padding: 86px 0;
  text-align: center;
}
.cathedral-temporary-contact {
  display: inline-grid;
  gap: 8px;
  min-width: min(100%, 360px);
  margin: 18px auto 8px;
  padding: 18px 24px;
  border: 1px solid #a46100;
  background: #fffaf3;
  text-align: center;
}
.cathedral-temporary-contact strong {
  color: #9c5900;
  font-size: 18px;
  text-transform: uppercase;
}
.cathedral-temporary-contact span {
  color: #333;
}
.cathedral-temporary-contact a {
  color: #9c5900;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 800;
}
.cathedral-footer {
  position: relative;
  overflow: hidden;
  padding: 64px max(28px, calc((100vw - 1120px) / 2)) 38px;
  background: #282726;
  color: #f5f1e8;
  border-top: 1px solid rgba(244, 194, 96, .32);
}
.cathedral-footer::before {
  content: "†";
  position: absolute;
  left: 50%;
  top: 50%;
  color: rgba(255, 255, 255, .045);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 420px;
  line-height: .75;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.cathedral-footer-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(280px, 1.2fr) minmax(220px, .85fr);
  gap: 56px;
}
.cathedral-footer h2,
.cathedral-footer-brand strong {
  display: block;
  margin: 0 0 18px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.1;
  text-transform: uppercase;
}
.cathedral-footer p {
  margin: 0 0 12px;
  color: #d8d0c5;
  font-size: 14px;
  line-height: 1.55;
}
.cathedral-footer a,
.cathedral-footer button {
  color: #b8b0a6;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cathedral-footer a:hover,
.cathedral-footer button:hover {
  color: #eda332;
}
.cathedral-footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
}
.cathedral-footer-links a::before {
  content: "→";
  margin-right: 10px;
  color: #eda332;
  text-decoration: none;
}
.cathedral-footer-mini {
  display: grid;
  justify-items: start;
  gap: 10px;
  margin-top: 20px;
}
.cathedral-footer-mini button {
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  cursor: pointer;
}
.cathedral-footer-note {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin-top: 36px !important;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: #c6bcae !important;
}
.cathedral-accessibility {
  position: fixed;
  top: 92px;
  left: 0;
  z-index: 240;
  display: flex;
  align-items: flex-start;
  transform: translateX(-180px);
  transition: transform .22s ease;
}
.cathedral-accessibility.is-open {
  transform: translateX(0);
}
.cathedral-access-trigger {
  order: 2;
  width: 58px;
  height: 58px;
  border: 1px solid #fff;
  background: #4566ca;
  color: #fff;
  font-size: 31px;
  line-height: 1;
  box-shadow: 0 7px 18px rgba(0, 0, 0, .22);
}
.cathedral-access-panel {
  width: 180px;
  padding: 18px 16px 16px;
  background: #e79d27;
  color: #131313;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .2);
}
.cathedral-access-panel h2 {
  margin: 0 0 16px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.75;
}
.cathedral-access-panel button,
.cathedral-access-panel a {
  display: block;
  width: 100%;
  min-height: 34px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  line-height: 1.25;
  text-align: left;
}
.cathedral-access-panel button:hover,
.cathedral-access-panel a:hover {
  text-decoration: underline;
}
.cathedral-access-panel a {
  margin: 12px -16px -16px;
  padding: 15px 16px;
  border-top: 1px solid #111;
}
.cathedral-side-menu {
  position: fixed;
  top: 470px;
  left: 0;
  z-index: 220;
  display: grid;
  place-items: center;
  width: 28px;
  height: 58px;
  border-radius: 0 4px 4px 0;
  background: #fff;
  color: #1a1a1a;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .15);
  font-size: 21px;
}
.cathedral-language-bar {
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 230;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  padding: 6px 12px 8px;
  background: #fff;
  box-shadow: 0 -2px 12px rgba(0, 0, 0, .08);
}
.cathedral-language-bar a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 18px;
  font-size: 17px;
  line-height: 1;
}
.cathedral-font-lg .cathedral-body {
  font-size: 112%;
}
.cathedral-font-sm .cathedral-body {
  font-size: 92%;
}
.cathedral-gray .cathedral-page {
  filter: grayscale(1);
}
.cathedral-negative .cathedral-page {
  filter: invert(1) hue-rotate(180deg);
}
.cathedral-contrast .cathedral-body {
  background: #000;
  color: #fff;
}
.cathedral-contrast .cathedral-page,
.cathedral-contrast .cathedral-parish,
.cathedral-contrast .cathedral-callout,
.cathedral-contrast .cathedral-news,
.cathedral-contrast .cathedral-info,
.cathedral-contrast .cathedral-contact {
  background: #000 !important;
  color: #fff !important;
}
.cathedral-contrast .cathedral-page a {
  color: #ffd75f !important;
}
.cathedral-light .cathedral-body,
.cathedral-light .cathedral-page,
.cathedral-light .cathedral-parish,
.cathedral-light .cathedral-callout,
.cathedral-light .cathedral-news,
.cathedral-light .cathedral-info,
.cathedral-light .cathedral-contact {
  background: #fffbe9 !important;
  color: #111 !important;
}
.cathedral-underline .cathedral-page a {
  text-decoration: underline !important;
}
.cathedral-readable .cathedral-body {
  font-family: Verdana, Arial, Helvetica, sans-serif;
}
.cathedral-access-trigger svg {
  width: 34px;
  height: 34px;
  fill: currentColor;
}
.cathedral-nav > a,
.cathedral-nav-item > a {
  white-space: nowrap;
}
.cathedral-subnav {
  z-index: 150;
}
.cathedral-subnav a {
  justify-content: flex-start;
}
@keyframes cathedralFadeUp {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.cathedral-section,
.cathedral-parish,
.cathedral-callout,
.cathedral-announcements,
.cathedral-news,
.cathedral-info,
.cathedral-contact,
.cathedral-subpage,
.cathedral-devotions-page,
.cathedral-clergy-page,
.cathedral-parish-card,
.cathedral-content-page,
.cathedral-disabled {
  animation: cathedralFadeUp .55s ease both;
}
.cathedral-subhero {
  position: relative;
  box-sizing: border-box;
  min-height: 420px;
  display: grid;
  place-items: center;
  padding-top: 150px;
  overflow: visible;
  color: #fff;
  background-image:
    linear-gradient(180deg, rgba(0, 0, 0, .48), rgba(0, 0, 0, .58)),
    var(--hero-image);
  background-position: center;
  background-size: cover;
}
.cathedral-subhero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 4px;
  background: #a26100;
}
.cathedral-subhero > p {
  position: relative;
  z-index: 1;
  margin: 160px 0 0;
  font-size: 15px;
  letter-spacing: .02em;
}
.cathedral-subhero span {
  color: #d89a35;
  margin: 0 10px;
}
.cathedral-subpage,
.cathedral-devotions-page,
.cathedral-clergy-page,
.cathedral-archbishop-page,
.cathedral-content-page,
.cathedral-disabled,
.cathedral-parish-card {
  width: min(1210px, calc(100vw - 72px));
  margin: 0 auto;
  padding: 86px 0;
}
.cathedral-subpage h1,
.cathedral-devotions-page h1,
.cathedral-clergy-page h1,
.cathedral-archbishop-page h1,
.cathedral-content-page h1,
.cathedral-disabled h1,
.cathedral-parish-card h2,
.cathedral-parish-top h1 {
  margin: 10px 0 22px;
  font-family: Georgia, "Times New Roman", serif;
  color: #111820;
  font-size: clamp(44px, 5vw, 66px);
  line-height: 1.05;
}
.cathedral-archbishop-page {
  display: grid;
  gap: 62px;
}
.cathedral-archbishop-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 58px;
  align-items: start;
}
.cathedral-archbishop-card {
  display: grid;
  gap: 18px;
  justify-items: center;
  padding: 34px 28px;
  border: 1px solid #b27a34;
  background: #fff;
  text-align: center;
}
.cathedral-archbishop-card img {
  width: min(220px, 100%);
  max-height: 240px;
  object-fit: contain;
}
.cathedral-archbishop-card a,
.cathedral-archbishop-list a {
  color: #a26100;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cathedral-archbishop-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 42px;
}
.cathedral-archbishop-panels section,
.cathedral-archbishop-contact {
  padding: 34px;
  border: 1px solid #d6c5a8;
  background: #fbf8f1;
}
.cathedral-archbishop-panels h2,
.cathedral-archbishop-contact h2 {
  margin: 0 0 22px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 32px;
}
.cathedral-archbishop-list {
  display: grid;
  gap: 18px;
}
.cathedral-archbishop-list a {
  display: grid;
  gap: 6px;
  color: #111820;
  text-decoration: none;
}
.cathedral-archbishop-list span {
  color: #4f4f4f;
  font-weight: 500;
  line-height: 1.55;
}
.cathedral-lead {
  max-width: 760px;
  font-size: 19px;
  line-height: 1.65;
}
.cathedral-table-wrap {
  margin-top: 34px;
  overflow-x: auto;
  border: 1px solid #a26100;
  background: #fff;
}
.cathedral-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}
.cathedral-table th,
.cathedral-table td {
  padding: 16px 18px;
  border-bottom: 1px solid #eadcc8;
  text-align: left;
  vertical-align: top;
}
.cathedral-table th {
  background: #a26100;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 12px;
}
.cathedral-devotions-page {
  width: 100%;
  padding: 78px max(32px, calc((100vw - 1190px) / 2));
  background: #f7efc7;
}
.cathedral-devotions-page h1,
.cathedral-clergy-page h1 {
  text-align: center;
}
.cathedral-devotions-layout {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.cathedral-devotions-layout aside h2 {
  margin: 0 0 16px;
  color: #a26100;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 36px;
}
.cathedral-devotion-list {
  display: grid;
  gap: 36px;
}
.cathedral-devotion-list article {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}
.cathedral-devotion-list img {
  width: 80px;
  height: 80px;
  border-radius: 4px;
  object-fit: cover;
}
.cathedral-devotion-list h3 {
  margin: 0 0 8px;
  text-transform: uppercase;
  font-size: 17px;
}
.cathedral-devotion-list p {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
}
.cathedral-clergy-page {
  background: #e4d8c9;
}
.cathedral-clergy-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 76px 96px;
  max-width: 1060px;
  margin: 38px auto 0;
}
.cathedral-clergy-grid article {
  min-height: 360px;
}
.cathedral-clergy-grid img,
.cathedral-clergy-placeholder {
  width: 142px;
  height: 142px;
  margin-bottom: 28px;
  border-radius: 11px;
}
.cathedral-clergy-grid img {
  object-fit: cover;
}
.cathedral-clergy-placeholder {
  display: grid;
  place-items: center;
  color: #eca52d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 76px;
  line-height: 1;
}
.cathedral-clergy-grid h2 {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.2;
}
.cathedral-clergy-grid p {
  font-size: 15px;
  line-height: 1.55;
}
.cathedral-parish-top {
  min-height: 520px;
  background-color: #e3d8c8;
}
.cathedral-parish-top > div {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100vw - 48px));
  margin-top: 0;
  text-align: center;
}
.cathedral-parish-top h1 {
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
  text-transform: uppercase;
}
.cathedral-parish-card {
  position: relative;
  z-index: 2;
  margin-top: -46px;
  padding: 44px 56px 70px;
  border: 1px solid #c98925;
  border-radius: 12px;
  background: #fff;
  font-size: 16px;
  line-height: 1.7;
}
.cathedral-parish-card h2 {
  color: #a26100;
  font-size: clamp(30px, 3.2vw, 42px);
}
.cathedral-parish-columns {
  display: grid;
  grid-template-columns: .7fr 1fr;
  gap: 52px;
}
.cathedral-content-page {
  max-width: 940px;
}
.cathedral-content-page > small {
  display: block;
  margin-bottom: 16px;
  color: #a26100;
  font-weight: 800;
}
.cathedral-content-page > img {
  width: 100%;
  max-height: 540px;
  margin: 28px 0;
  object-fit: cover;
}
.cathedral-disabled {
  display: grid;
  justify-items: center;
  min-height: 380px;
  text-align: center;
}
.cathedral-disabled p {
  max-width: 560px;
  font-size: 20px;
  line-height: 1.5;
}
.cathedral-disabled a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid #a26100;
  background: #a26100;
  color: #fff;
  font-weight: 800;
}
.cathedral-admin-grid {
  align-items: start;
}

@media (max-width: 1100px) {
  .brand-row, .top-strip, .site-footer, .content-grid, .band, .admin-section:first-child, .admin-grid, .admin-page-editor, .home-lead, .footer-inner {
    grid-template-columns: 1fr;
  }
  .brand-row, .site-footer, .cookie-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .brand-row {
    display: grid;
    gap: 18px;
  }
  .header-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
    min-width: 0;
  }
  .header-actions a:first-child {
    border-left: 0;
    padding-left: 0;
  }
  main {
    width: min(100% - 24px, 1240px);
  }
  .main-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 28px;
    padding: 0 16px 18px;
  }
  .nav-trigger {
    min-width: 0;
    flex-basis: auto;
    min-height: auto;
    padding: 8px 0;
  }
  .mega-nav-panel {
    position: static;
    box-shadow: none;
  }
  .mega-nav-inner {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mega-nav-column {
    padding: 14px 18px;
  }
  .church-layout, .metropolitan-page, .article-layout, .liturgical-layout, .bishops-page {
    grid-template-columns: 1fr;
  }
  .metropolitan-main,
  .metropolitan-hero-inner {
    width: min(100% - 32px, 1240px);
  }
  .heraldry-card {
    position: static;
  }
  .bishops-page {
    gap: 28px;
  }
  .bishops-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-top: 0;
  }
  .list-row { grid-template-columns: 1fr; }
  .verification-simple-page {
    padding: 36px 14px;
  }
  .verification-simple-panel {
    padding: 30px 18px;
    border-radius: 18px;
  }
  .verification-simple-panel h1 {
    font-size: 34px;
  }
  .verification-badge {
    flex-direction: column;
    border-radius: 18px;
  }
  .verification-steps {
    grid-template-columns: 1fr;
  }
  .verification-actions .button {
    width: 100%;
  }
  .verification-hero, .verification-options, .verification-guide {
    grid-template-columns: 1fr;
  }
  .verification-guide p {
    grid-column: auto;
  }
  .search-box { width: 100%; }
  .home-slider {
    min-height: 280px;
    aspect-ratio: 16 / 9;
  }
  .home-slide span {
    left: 22px;
    bottom: 22px;
    max-width: calc(100% - 44px);
    font-size: clamp(24px, 8vw, 38px);
  }
  .home-side-stack {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .home-side-stack .met-card,
  .home-side-stack .sidebar-button,
  .home-side-stack .discord-main-link,
  .home-side-stack .liturgy-sidebar-card,
  .home-side-stack .vatican-news,
  .home-side-stack .visits-card {
    width: 100%;
  }
  .met-card,
  .met-card img {
    min-height: 160px;
    height: 160px;
  }
  .met-card span {
    top: 58px;
  }
  .liturgy-sidebar-card,
  .vatican-news {
    grid-column: 1 / -1;
  }
  .footer-inner {
    gap: 22px;
  }
  .footer-socials {
    justify-content: flex-start;
  }
  .event-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .event-tabs {
    width: 100%;
  }
  .event-tabs button {
    flex: 1;
  }
  .today-mass-line {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .today-mass-line small {
    grid-column: 1;
  }
  .login-methods { grid-template-columns: 1fr; }
  .admin-topbar {
    flex-direction: column;
    align-items: flex-start;
  }
  .admin-userbar {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .admin-tabs {
    position: static;
    padding: 0 16px;
  }
  .admin-tabs a {
    flex: 1 1 140px;
    border-left: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
  .admin-layout {
    grid-template-columns: 1fr;
    width: min(100%, calc(100vw - 32px));
  }
  .admin-sidebar {
    position: static;
    max-height: none;
  }
  .admin-nav-group {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
  .admin-nav-group h2 {
    grid-column: 1 / -1;
  }
  .chart-row {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .chart-row b {
    text-align: left;
  }
  .admin-page-list {
    position: static;
    max-height: 280px;
  }
  .admin-page-heading {
    flex-direction: column;
  }
  .dm-admin-layout {
    grid-template-columns: 1fr;
  }
  .dm-thread-list,
  .dm-side-tools {
    position: static;
    max-height: none;
  }
  .dm-chat-card {
    min-height: auto;
  }
  .calendar-grid { grid-template-columns: 1fr; }
  .calendar-day { min-height: auto; border-right: 0; }
  .article-layout {
    gap: 26px;
  }
  .cathedral-nav {
    position: sticky;
    flex-wrap: wrap;
    gap: 0 18px;
    justify-content: flex-start;
    min-height: auto;
    padding: 70px 16px 8px;
    letter-spacing: 2px;
    background: rgba(160, 92, 0, .92);
  }
  .cathedral-nav a {
    min-height: 42px;
  }
  .cathedral-nav-item {
    min-height: 42px;
  }
  .cathedral-mark {
    top: 8px;
    width: min(260px, calc(100vw - 32px));
    min-height: 54px !important;
  }
  .cathedral-mark::before,
  .cathedral-mark::after {
    width: 74px;
    height: 16px !important;
  }
  .cathedral-mark img {
    width: 54px;
    height: 54px;
  }
  .cathedral-subnav {
    width: 190px;
  }
  .cathedral-donate {
    min-width: auto;
  }
  .cathedral-hero {
    min-height: 760px;
  }
  .cathedral-history,
  .cathedral-cultural,
  .cathedral-liturgy,
  .cathedral-info,
  .cathedral-devotions-layout,
  .cathedral-parish-columns {
    grid-template-columns: 1fr;
  }
  .cathedral-clergy-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 52px;
  }
  .cathedral-news > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cathedral-archbishop-intro,
  .cathedral-archbishop-panels {
    grid-template-columns: 1fr;
  }
  .cathedral-info > div {
    padding: 64px 28px;
  }
  .cathedral-info img {
    min-height: 340px;
  }
  .cathedral-accessibility {
    top: 82px;
  }
  .privacy-hero,
  .privacy-two,
  .privacy-data-grid {
    grid-template-columns: 1fr;
  }
  .privacy-modules {
    grid-template-columns: 1fr;
  }
  .privacy-shell {
    width: min(100% - 24px, 1120px);
  }
  .cookie-banner {
    left: 12px;
    right: 12px;
    bottom: 12px;
    max-height: calc(100vh - 24px);
    overflow: auto;
  }
}

@media (max-width: 900px) {
  .cathedral-visit-hero {
    min-height: auto;
  }
  .cathedral-visit-intro {
    grid-template-columns: 1fr;
    width: min(100% - 28px, 680px);
    padding: 170px 0 54px;
  }
  .cathedral-visit-quote,
  .cathedral-visit-quote div {
    display: grid;
  }
  .cathedral-visit-quote img,
  .cathedral-visit-note,
  .cathedral-visit-online {
    grid-column: 1;
  }
  .cathedral-visit-quote img {
    min-height: 280px;
  }
  .cathedral-visit-note {
    padding: 28px 24px;
  }
  .cathedral-visit-online {
    grid-template-columns: 1fr;
  }
  .cathedral-visit-online strong {
    max-width: none;
    text-align: left;
  }
  .cathedral-visit-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px 24px;
    width: min(100% - 28px, 680px);
    padding: 56px 0 74px;
  }
  .cathedral-footer {
    padding: 52px 22px 32px;
  }
  .cathedral-footer-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .cathedral-footer-links {
    grid-template-columns: 1fr;
  }
  .cathedral-privacy-page {
    width: min(100% - 28px, 980px);
    padding: 58px 0 76px;
  }
  .main-nav {
    grid-template-columns: 1fr 1fr;
  }
  .top-strip {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}


/* Mega-menu: wide, calm columns with a visible category and link hover state. */
.mega-nav-panel {
  border-top: 1px solid var(--gold);
  box-shadow: 0 20px 34px rgba(30, 24, 16, .14);
}
.mega-nav-inner {
  width: min(1320px, calc(100vw - 48px));
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: stretch;
}
.mega-nav-column {
  min-width: 0;
  min-height: 330px;
  padding: 18px 14px 28px;
}
.mega-nav-column.is-active,
.mega-nav-column:hover {
  background: #c8b18d;
}
.mega-nav-column h3 {
  margin-bottom: 16px;
  font-weight: 700;
}
.mega-nav-column ul { padding-left: 17px; }
.mega-nav-column li {
  margin-bottom: 9px;
  font-size: 12px;
}
.mega-nav-column a {
  display: block;
  padding: 2px 4px;
  margin-left: -4px;
  transition: color .12s ease, background-color .12s ease;
}
.mega-nav-column a:hover,
.mega-nav-column a:focus-visible {
  color: #fff;
  background: #b28d5d;
}
.upload-preview {
  display: block;
  width: min(220px, 100%);
  max-height: 150px;
  margin-top: 8px;
  border: 1px solid var(--line);
  object-fit: contain;
  background: #fff;
}
.admin-body.cathedral-admin {
  --admin-accent: #a86108;
  --admin-ink: #2b2118;
  background: #f3ecdf;
}
.admin-body.cathedral-admin .admin-topbar {
  background: #2d2117;
  border-bottom: 4px solid #d08b2d;
}
.admin-body.cathedral-admin .admin-sidebar {
  background: #efe0c8;
  border-right: 1px solid #c99655;
}
.admin-body.cathedral-admin .admin-sidebar a.active,
.admin-body.cathedral-admin .admin-sidebar a:hover {
  background: #b36b18;
  color: #fff;
}
.admin-body.cathedral-admin .admin-main h1,
.admin-body.cathedral-admin .admin-main h2 {
  font-family: Georgia, "Times New Roman", serif;
  color: #6d3f0d;
}
.admin-body.cathedral-admin .panel-card {
  border-color: #d4b17b;
  box-shadow: 0 10px 24px rgba(95, 58, 20, .08);
}
@media (max-width: 900px) {
  .mega-nav-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mega-nav-column { min-height: 0; }
}
@media (max-width: 560px) {
  .mega-nav-inner { width: calc(100vw - 24px); grid-template-columns: 1fr; }
  .mega-nav-column { padding: 14px 16px 18px; }
}

@media (max-width: 560px) {
  .cathedral-visit-links {
    grid-template-columns: 1fr;
  }
  .cathedral-visit-intro h1 {
    font-size: clamp(38px, 14vw, 56px);
  }
  .cathedral-visit-quote p {
    font-size: clamp(30px, 10vw, 42px);
  }
}

@media (max-width: 560px) {
  .top-strip {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .brand {
    font-size: 20px;
    align-items: flex-start;
  }
  .brand img {
    width: 58px;
    height: 58px;
  }
  .main-nav {
    grid-template-columns: 1fr;
  }
  .mega-nav-inner {
    grid-template-columns: 1fr;
  }
  .hero {
    min-height: 300px;
    padding: 28px 0;
  }
  .home-diocese-hero {
    min-height: 300px;
    padding: 34px 0 44px;
  }
  .home-diocese-hero img {
    width: 62px;
    height: 62px;
  }
  .home-diocese-hero h1 {
    font-size: 28px;
  }
  .home-diocese-hero p {
    font-size: 15px;
  }
  .hero h1 {
    font-size: 30px;
  }
  .hero p {
    font-size: 16px;
  }
  .home-side-stack {
    grid-template-columns: 1fr;
  }
  .met-card,
  .met-card img {
    min-height: 150px;
    height: 150px;
  }
  .met-card span {
    top: 54px;
  }
  .sidebar-button,
  .discord-main-link,
  .discord-large {
    min-height: 64px;
  }
  .liturgy-sidebar-card {
    min-height: auto;
  }
  .home-slider {
    min-height: 220px;
  }
  .cathedral-hero {
    min-height: 680px;
  }
  .cathedral-hero-content {
    padding-top: 24px;
  }
  .cathedral-hero-content h1 {
    font-size: clamp(44px, 16vw, 72px);
  }
  .cathedral-hero-content p {
    font-size: clamp(24px, 8vw, 34px);
  }
  .cathedral-subnav {
    left: -8px;
    width: 176px;
  }
  .cathedral-subnav a {
    min-height: 38px;
    padding: 0 14px;
    font-size: 14px;
  }
  .cathedral-live {
    margin-top: 70px;
  }
  .cathedral-section,
  .cathedral-announcements,
  .cathedral-contact,
  .cathedral-subpage,
  .cathedral-clergy-page,
  .cathedral-content-page,
  .cathedral-disabled,
  .cathedral-parish-card {
    width: min(100% - 28px, 1220px);
    padding: 58px 0;
  }
  .cathedral-subhero {
    min-height: 300px;
  }
  .cathedral-subhero > p {
    margin-top: 118px;
  }
  .cathedral-devotions-page {
    padding: 58px 18px;
  }
  .cathedral-clergy-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .cathedral-clergy-grid article {
    min-height: auto;
  }
  .cathedral-parish-card {
    margin-top: 0;
    padding: 28px 20px 42px;
    border-radius: 0;
  }
  .cathedral-table {
    min-width: 620px;
  }
  .cathedral-gallery,
  .cathedral-news > div,
  .cathedral-announcement-grid {
    grid-template-columns: 1fr;
  }
  .cathedral-announcement-index {
    width: min(100% - 28px, 1030px);
    padding: 58px 0 76px;
  }
  .cathedral-announcement-grid {
    gap: 42px;
  }
  .cathedral-announcement-card {
    min-height: auto;
  }
  .cathedral-read-more {
    justify-self: start;
  }
  .cathedral-parish-signature {
    grid-template-columns: 1fr;
  }
  .cathedral-news {
    padding: 58px 18px;
  }
  .cathedral-parish {
    min-height: 360px;
  }
  .cathedral-actions {
    flex-direction: column;
    width: min(100%, 340px);
  }
  .cathedral-actions a,
  .cathedral-button,
  .cathedral-callout a {
    width: 100%;
  }
  .cathedral-callout {
    padding: 64px 18px;
  }
  .cathedral-callout p {
    font-size: 18px;
  }
  .cathedral-info nav {
    gap: 12px 18px;
  }
  .cathedral-accessibility {
    top: 76px;
    transform: translateX(-170px);
  }
  .cathedral-accessibility.is-open {
    transform: translateX(0);
  }
  .cathedral-access-panel {
    width: 170px;
    padding: 15px 14px;
  }
  .cathedral-access-trigger {
    width: 52px;
    height: 52px;
    font-size: 27px;
  }
  .cathedral-side-menu {
    top: 420px;
  }
  .post-grid {
    grid-template-columns: 1fr;
  }
  .news-index {
    width: min(100% - 24px, 1240px);
  }
  .news-index .post-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .quick-links-band {
    grid-template-columns: 1fr;
    margin-bottom: 28px;
    padding-bottom: 24px;
  }
  .quick-link,
  .quick-link.ql-right {
    justify-content: flex-start;
    text-align: left;
    min-height: 74px;
    padding: 16px;
    font-size: 17px;
  }
  .bishop-row {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 14px;
    min-height: 96px;
  }
  .bishop-row img {
    width: 82px !important;
    height: 96px !important;
    max-width: 82px;
    max-height: 96px;
  }
  .bishops-actions {
    grid-template-columns: 1fr;
  }
  h1 {
    font-size: 28px;
  }
  h2 {
    font-size: 22px;
  }
}

/* 2026-06-14 layout refinements */
.site-footer { flex-shrink: 0; }
.see-also + .site-footer { margin-top: 0; }
.footer-brand strong { font-weight: 600; }
.footer-brand small {
  display: block;
  margin-top: 8px;
  font-weight: 400;
  line-height: 1.4;
}
.see-also {
  width: min(1240px, calc(100vw - 32px));
  margin: 56px auto 0;
  padding: 0 0 30px;
  text-align: center;
  text-transform: uppercase;
}
.see-also > div {
  border-top: 1px solid #202020;
  margin-bottom: 12px;
}
.see-also p {
  margin: 0 0 14px;
  font-size: 14px;
}
.see-also nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.see-also a {
  border: 1px solid #111;
  padding: 24px 16px;
  letter-spacing: 1px;
}
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  grid-auto-flow: column;
  gap: 5px;
  background: #fff;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity .18s ease, visibility .18s ease;
}
.page-loader span {
  width: 4px;
  height: 32px;
  background: var(--gold);
  border-radius: 2px;
  transform-origin: center;
  animation: loaderBars .8s ease-in-out infinite;
}
.page-loader span:nth-child(2) { animation-delay: .08s; }
.page-loader span:nth-child(3) { animation-delay: .16s; }
.page-loader span:nth-child(4) { animation-delay: .24s; }
.page-loader span:nth-child(5) { animation-delay: .32s; }
.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@keyframes loaderBars {
  0%, 100% { transform: scaleY(.45); opacity: .55; }
  50% { transform: scaleY(1); opacity: 1; }
}
.post-card,
.list-row,
.plain-list article,
.home-news-panel,
.home-site-events,
.home-events-panel,
.latest-posts,
.vatican-news,
.visits-card {
  content-visibility: auto;
  contain-intrinsic-size: 1px 320px;
}
@media (prefers-reduced-motion: reduce) {
  .home-slide,
  .page-loader,
  .page-loader span {
    transition: none !important;
    animation: none !important;
  }
}
.mass-search {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin: 0 0 24px;
}
.mass-search label {
  display: grid;
  gap: 6px;
  min-width: min(360px, 100%);
  text-transform: uppercase;
  font-size: 12px;
}
.mass-search select {
  padding: 11px;
  min-width: 280px;
}
.button.light {
  display: inline-flex;
  align-items: center;
  border: 1px solid #b8a98f;
  color: #111;
  background: #fff;
  padding: 10px 16px;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 400;
}
.calendar-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  margin: 14px 0;
  text-align: center;
  color: #111;
}
.calendar-empty strong {
  font-size: 92px;
  line-height: 1;
  font-weight: 400;
}
.calendar-empty p {
  margin: 0;
  font-size: 20px;
  text-transform: uppercase;
}
.page-hero-slider {
  position: relative;
  width: 100%;
  min-height: 260px;
  margin: 0 0 34px;
  overflow: hidden;
  background: #fff;
}
.page-hero-slider .home-slide { cursor: default; }
.page-hero-slider figcaption {
  position: absolute;
  left: max(24px, calc((100vw - 1240px) / 2 + 24px));
  bottom: 28px;
  z-index: 2;
  padding: 10px 18px;
  background: #fff;
  color: #111;
  text-transform: uppercase;
  font-weight: 700;
}
.event-detail-layout {
  display: grid;
  grid-template-columns: minmax(280px, 390px) minmax(0, 1fr);
  gap: 30px;
  align-items: start;
  margin: 22px 0 44px;
}
.event-detail-layout img {
  width: 100%;
  max-height: 560px;
  object-fit: contain;
  object-position: top center;
}
.event-detail-layout section {
  font-size: 16px;
  line-height: 1.7;
}
.event-detail-layout section p {
  margin: 0 0 8px;
}
.event-description-title {
  margin-top: 28px !important;
}
.event-detail-page h1 {
  max-width: 1250px;
  margin-top: 22px;
  margin-bottom: 20px;
  font-size: 26px;
  line-height: 1.28;
  text-transform: uppercase;
}
.event-detail-page .breadcrumb {
  border-bottom: 1px solid #222;
  padding-bottom: 13px;
  line-height: 1.7;
}
.share-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 40px;
}
.share-bar a {
  padding: 16px 18px;
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 700;
}
.share-bar .facebook { background: #1454a3; }
.share-bar .twitter { background: #11aee2; }
.share-bar .instagram { background: #626a70; }
.curia-documents-page {
  padding-top: 34px;
}
.curia-document-list {
  display: grid;
  gap: 34px;
  margin-top: 26px;
}
.curia-document {
  border-top: 1px solid #111;
  padding-top: 20px;
}
.curia-document header span {
  display: block;
  margin-bottom: 8px;
  color: var(--brown);
  text-transform: uppercase;
  font-size: 13px;
}
.curia-document h2 {
  margin: 0 0 8px;
  text-transform: uppercase;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.2;
}
.curia-document header p {
  max-width: 780px;
  color: var(--muted);
}
.curia-scans {
  display: grid;
  gap: 22px;
  margin-top: 20px;
}
.curia-scans figure {
  margin: 0;
  border: 1px solid var(--line);
  background: #fff;
}
.curia-scans img {
  display: block;
  width: 100%;
  max-height: 1180px;
  object-fit: contain;
  background: #f7f7f7;
}
.curia-scans figcaption {
  padding: 10px 14px;
  color: var(--muted);
  font-size: 13px;
}
.theme-dark body {
  --ink: #f5f1e8;
  --muted: #c9c1b6;
  --paper: #111111;
  --soft: #1b1b1b;
  --line: #57534d;
  background: #111;
  color: #f5f1e8;
}
.theme-dark .site-header,
.theme-dark .brand-row,
.theme-dark .mega-nav-panel,
.theme-dark .post-card,
.theme-dark .panel-card,
.theme-dark .calendar-day,
.theme-dark .cookie-modal form,
.theme-dark .site-settings-modal form,
.theme-dark .site-event-card,
.theme-dark .curia-scans figure {
  background: #151515;
  color: #f5f1e8;
}
.theme-dark input,
.theme-dark textarea,
.theme-dark select,
.theme-dark button {
  background: #191919;
  color: #f5f1e8;
  border-color: #756b5b;
}
.theme-dark .quick-link,
.theme-dark .sidebar-button,
.theme-dark .latest-posts,
.theme-dark .liturgy-sidebar-card,
.theme-dark .visits-card {
  background: #1b1b1b;
  color: #f5f1e8;
}
.theme-dark html,
.theme-dark body {
  background: #0f0f0f;
}
.theme-dark .top-strip,
.theme-dark .main-nav,
.theme-dark .narrow,
.theme-dark .home-lead,
.theme-dark .home-news-panel,
.theme-dark .home-events-panel,
.theme-dark .side-panel,
.theme-dark .calendar-mini,
.theme-dark .latest-posts,
.theme-dark .filter-box,
.theme-dark .plain-list,
.theme-dark .article-body,
.theme-dark .metropolitan-main,
.theme-dark .bishops-page,
.theme-dark .liturgical-layout,
.theme-dark .event-detail-page,
.theme-dark .curia-documents-page,
.theme-dark .recruitment-card,
.theme-dark .login-card,
.theme-dark .verification-card {
  background: #0f0f0f;
  color: #f5f1e8;
}
.theme-dark .site-header {
  border-bottom-color: #8f7a58;
}
.theme-dark .brand,
.theme-dark .main-nav a,
.theme-dark .nav-trigger,
.theme-dark .nav-group > a,
.theme-dark .top-strip,
.theme-dark .breadcrumb,
.theme-dark .article-body h1,
.theme-dark .article-body p,
.theme-dark .news-index .post-card span,
.theme-dark .news-index .post-card p,
.theme-dark .event-line span,
.theme-dark .post-card p,
.theme-dark .muted,
.theme-dark .prose,
.theme-dark .rich,
.theme-dark .filter-box li,
.theme-dark .footer-note,
.theme-dark .footer-brand small,
.theme-dark .curia-document header p,
.theme-dark .curia-scans figcaption {
  color: #e9e1d6;
}
.theme-dark .top-strip a:not(.login-chip),
.theme-dark .settings-button,
.theme-dark .login-chip,
.theme-dark .search-box,
.theme-dark .search-box input,
.theme-dark .search-box button,
.theme-dark .header-actions a,
.theme-dark .mega-nav-panel,
.theme-dark .mega-nav-column,
.theme-dark .section-title,
.theme-dark .outline-button,
.theme-dark .filter-box,
.theme-dark .list-row,
.theme-dark .event-line,
.theme-dark .calendar-day,
.theme-dark .cookie-option,
.theme-dark .see-also a,
.theme-dark .event-tabs,
.theme-dark .event-tabs button,
.theme-dark .curia-document,
.theme-dark .curia-scans figure {
  border-color: #595247;
}
.theme-dark .top-strip .social-icon:not(.discord) {
  background: #111;
}
.theme-dark .top-strip .social-icon.tiktok,
.theme-dark .top-strip .social-icon.x {
  color: #f5f1e8;
  border-color: #f5f1e8;
}
.theme-dark .settings-button:hover,
.theme-dark .settings-button:focus-visible,
.theme-dark .event-tabs button.active,
.theme-dark .event-tabs button:hover {
  background: #b49b75;
  color: #111;
}
.theme-dark .home-slider,
.theme-dark .page-hero-slider,
.theme-dark .quick-links-band {
  background: #0f0f0f;
}
.theme-dark .post-card,
.theme-dark .home-news-panel,
.theme-dark .side-panel,
.theme-dark .panel-card,
.theme-dark .list-row,
.theme-dark .filter-box,
.theme-dark .latest-posts,
.theme-dark .liturgy-sidebar-card,
.theme-dark .visits-card,
.theme-dark .cookie-banner,
.theme-dark .privacy-note,
.theme-dark .site-footer,
.theme-dark .see-also,
.theme-dark .event-tabs button,
.theme-dark .calendar-shell,
.theme-dark .heraldry-card,
.theme-dark .met-card {
  background: #171717;
  color: #f5f1e8;
}
.theme-dark .site-event-overlay time {
  background: #f5f1e8;
  color: #111;
}
.theme-dark .page-loader {
  background: #0f0f0f;
}
.theme-dark .page-loader span {
  background: #b49b75;
}
.theme-dark .primary,
.theme-dark .button {
  background: #b49b75;
  border-color: #b49b75;
  color: #111;
}
.theme-dark a:hover {
  color: #d6bf91;
}
.theme-dark .site-footer a,
.theme-dark .footer-socials a {
  color: #fff;
}
.theme-dark .mourning-bar {
  background: #161616;
  color: #f5f1e8;
  border-color: #595247;
}
.theme-dark .mourning-bar p {
  color: #d8d0c5;
}
.theme-dark .info-bar {
  background: #0c1420;
}
.theme-high-contrast body {
  --ink: #000;
  --muted: #111;
  --line: #000;
  --blue: #003cff;
  --gold: #000;
  filter: contrast(1.15);
}
.theme-high-contrast a {
  text-decoration: underline;
}
.theme-high-contrast button,
.theme-high-contrast input,
.theme-high-contrast textarea,
.theme-high-contrast select,
.theme-high-contrast .quick-link,
.theme-high-contrast .post-card,
.theme-high-contrast .site-event-card,
.theme-high-contrast .see-also a {
  border: 2px solid #000;
}
.theme-dark.theme-high-contrast body {
  --ink: #fff;
  --muted: #fff;
  --line: #fff;
  --blue: #8ab4ff;
  --gold: #fff;
}
.theme-dark.theme-high-contrast button,
.theme-dark.theme-high-contrast input,
.theme-dark.theme-high-contrast textarea,
.theme-dark.theme-high-contrast select,
.theme-dark.theme-high-contrast .quick-link,
.theme-dark.theme-high-contrast .post-card,
.theme-dark.theme-high-contrast .site-event-card,
.theme-dark.theme-high-contrast .see-also a {
  border-color: #fff;
}
@media (max-width: 900px) {
  .header-actions,
  .site-event-grid,
  .event-detail-layout,
  .share-bar,
  .see-also nav {
    grid-template-columns: 1fr;
  }
  .header-actions {
    display: grid;
    width: 100%;
  }
}

@media (max-width: 720px) {
  .cathedral-admin-entry {
    min-height: 34px;
    padding: 0 12px;
    font-size: 11px;
    letter-spacing: 1px;
  }
}

/* 2026-07-29 editorial diocese visual direction */
:root {
  --blue: #075aaa;
  --gold: #b49b75;
  --brown: #8a6b43;
  --line: #d9c9ad;
  --soft: #fbfaf8;
}

body {
  color: #17213a;
  font-family: Arial, Helvetica, sans-serif;
  background: #fff;
}

.site-header {
  border-bottom: 6px solid var(--gold);
}

.top-strip {
  max-width: 1280px;
  padding-top: 10px;
  color: var(--blue);
}

.top-strip a:not(.login-chip),
.settings-button {
  color: var(--blue);
  border-color: var(--blue);
}

.brand-row {
  max-width: 1280px;
  padding-top: 30px;
  padding-bottom: 24px;
}

.brand {
  color: #765d3c;
  letter-spacing: .01em;
}

.brand img {
  width: 72px;
  height: 72px;
}

.search-box input,
.search-box button {
  border-color: #bcbcbc;
  color: #666;
}

.header-actions {
  color: var(--blue);
}

.header-actions a {
  border-color: var(--gold);
}

.main-nav-shell {
  border-bottom: 0;
}

.main-nav {
  max-width: 1280px;
  padding-bottom: 20px;
}

.nav-trigger {
  color: #222;
  font-size: 14px;
  letter-spacing: .015em;
}

.nav-trigger:hover,
.nav-trigger:focus-visible,
.nav-trigger.active {
  color: var(--blue);
}

.home-page {
  width: min(1280px, calc(100vw - 48px));
}

.home-diocese-hero {
  min-height: 300px;
  padding: 42px 24px 48px;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.home-diocese-hero img {
  width: 62px;
  height: 62px;
  margin-bottom: 12px;
}

.home-diocese-hero .home-diocese-kicker,
.home-diocese-hero p {
  color: var(--blue);
}

.home-diocese-hero h1 {
  color: var(--blue);
  font-size: clamp(30px, 3.2vw, 43px);
}

.home-diocese-hero span {
  height: 2px;
  background: var(--blue);
}

.home-lead {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 42px;
  margin-top: 48px;
}

.home-news-panel h2,
.home-site-events h2,
.home-events-panel h2 {
  color: #17213a;
  letter-spacing: .03em;
}

.home-news-panel h2,
.home-site-events h2 {
  border-top: 1px solid #222;
  padding-top: 14px;
}

.home-news-panel .post-grid {
  gap: 38px 34px;
}

.home-news-panel .post-card h3 {
  color: #17213a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  font-weight: 500;
}

.home-news-panel .post-card span {
  color: #8a6b43;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
}

.home-news-panel .post-card p {
  color: #4f5d70;
}

.met-card,
.sidebar-button,
.liturgy-sidebar-card,
.vatican-news,
.visits-card {
  border-color: var(--gold);
}

.met-card {
  min-height: 190px;
  display: grid;
  place-items: center;
  background: #e7dbc8;
  border-color: #b49b75;
}

.met-card span {
  position: static;
  max-width: 230px;
  color: #17213a;
  text-align: center;
  font-weight: 700;
}

.sidebar-button {
  background: #fff;
  color: var(--blue);
}

.discord-main-link,
.discord-large {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

.liturgy-sidebar-card,
.temporary-contact-card,
.visits-card {
  background: #fff;
  color: #17213a;
  border-color: #b49b75;
}

.sidebar-button:hover,
.sidebar-button:focus-visible,
.quick-link:hover,
.quick-link:focus-visible {
  background: #f3eadb;
  color: var(--blue);
}

.quick-link {
  background: #eee7da;
  color: #17213a;
}

.site-event-card {
  border-color: var(--gold);
}

.contact-chat-page {
  width: min(100% - 48px, 980px);
  margin: 0 auto;
  padding: 72px 0 88px;
}

.contact-chat-intro {
  max-width: 720px;
  margin-bottom: 32px;
}

.contact-chat-intro h1 {
  margin: 4px 0 12px;
  color: #444;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 58px);
  font-weight: 500;
  text-transform: none;
}

.contact-chat-intro > p:not(.eyebrow):not(.contact-chat-flash) {
  margin: 0;
  color: #666;
  font-size: 17px;
}

.contact-chat-flash {
  margin: 18px 0 0;
  padding: 12px 16px;
  border-left: 3px solid #777;
  background: #f1f1f1;
  color: #444;
}

.contact-chat-card {
  border: 1px solid #cfcfcf;
  background: #fff;
}

.contact-chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 24px;
  border-bottom: 1px solid #d7d7d7;
  background: #f5f5f5;
}

.contact-chat-header strong,
.contact-chat-header small {
  display: block;
}

.contact-chat-header strong {
  color: #444;
  font-size: 17px;
}

.contact-chat-header small {
  margin-top: 4px;
  color: #777;
}

.contact-chat-messages {
  display: grid;
  gap: 14px;
  min-height: 250px;
  max-height: 620px;
  overflow-y: auto;
  padding: 24px;
  background: #fafafa;
}

.contact-chat-message {
  width: min(82%, 720px);
  padding: 14px 16px;
  border: 1px solid #d5d5d5;
  background: #fff;
}

.contact-chat-message.is-user {
  justify-self: end;
  border-color: #b8b8b8;
  background: #f0f0f0;
}

.contact-chat-message.is-admin {
  justify-self: start;
  border-left: 3px solid #555;
}

.contact-chat-message-meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #555;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.contact-chat-message-meta time {
  color: #888;
  font-size: 11px;
  text-transform: none;
  letter-spacing: 0;
}

.contact-chat-message p {
  margin: 8px 0 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.contact-chat-empty {
  align-self: center;
  margin: auto;
  color: #777;
  text-align: center;
}

.contact-chat-form {
  display: grid;
  gap: 10px;
  padding: 24px;
  border-top: 1px solid #d7d7d7;
}

.contact-chat-form label {
  color: #444;
  font-weight: 700;
}

.contact-chat-form textarea {
  width: 100%;
  min-height: 120px;
  padding: 13px 14px;
  border-color: #bdbdbd;
  resize: vertical;
}

.contact-chat-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.contact-chat-form-footer small {
  color: #777;
}

@media (max-width: 640px) {
  .contact-chat-page {
    width: min(100% - 28px, 980px);
    padding: 48px 0 60px;
  }

  .contact-chat-header,
  .contact-chat-form-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .contact-chat-message {
    width: 94%;
  }
}

/* Modern contact conversation */
body.contact-site {
  background: #f4f6f8;
}
body.contact-site .contact-chat-page {
  width: min(100% - 48px, 1080px);
  padding: 64px 0 96px;
}
body.contact-site .contact-chat-intro {
  max-width: 820px;
  margin-bottom: 28px;
}
body.contact-site .contact-chat-intro h1 {
  margin: 6px 0 14px;
  color: #171b22;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 800;
  letter-spacing: -.045em;
}
body.contact-site .contact-chat-intro > p:not(.eyebrow):not(.contact-chat-flash) {
  color: #697386;
  font-size: 16px;
}
body.contact-site .contact-chat-card {
  overflow: hidden;
  border: 1px solid #e1e6ed;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(28, 39, 54, .10);
}
body.contact-site .contact-chat-header {
  min-height: 102px;
  padding: 22px 28px;
  border-bottom: 1px solid rgba(255,255,255,.15);
  background: linear-gradient(135deg, #1f2937 0%, #374151 100%);
  color: #fff;
}
body.contact-site .contact-chat-identity {
  display: flex;
  align-items: center;
  gap: 13px;
}
body.contact-site .contact-chat-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(135deg, #7c5cff, #4b8bff);
  color: #fff;
  font-size: 19px;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(0,0,0,.18);
}
body.contact-site .contact-chat-kicker {
  display: block;
  margin-bottom: 3px;
  color: #aeb8c7;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.contact-site .contact-chat-header strong {
  color: #fff;
  font-size: 17px;
}
body.contact-site .contact-chat-header small {
  margin-top: 4px;
  color: #c4ccd8;
}
body.contact-site .contact-chat-online {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 3px;
  border-radius: 50%;
  background: #54d68b;
  box-shadow: 0 0 0 3px rgba(84,214,139,.15);
}
body.contact-site .contact-chat-refresh {
  padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 10px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  transition: background .18s ease, border-color .18s ease;
}
body.contact-site .contact-chat-refresh:hover {
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.12);
}
body.contact-site .contact-chat-messages {
  gap: 18px;
  min-height: 360px;
  max-height: 560px;
  padding: 28px;
  background: #f8fafc;
}
body.contact-site .contact-chat-message {
  position: relative;
  width: min(76%, 680px);
  padding: 14px 17px;
  border: 1px solid #e3e8ef;
  border-radius: 17px 17px 17px 5px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(31,41,55,.045);
}
body.contact-site .contact-chat-message.is-user {
  border-color: #d6cfff;
  border-radius: 17px 17px 5px 17px;
  background: linear-gradient(135deg, #f0edff, #f6f8ff);
}
body.contact-site .contact-chat-message.is-admin {
  border-left: 1px solid #e3e8ef;
}
body.contact-site .contact-chat-message-meta {
  color: #344054;
  font-size: 11px;
  letter-spacing: .05em;
}
body.contact-site .contact-chat-message-meta time {
  color: #98a2b3;
}
body.contact-site .contact-chat-message p {
  margin-top: 9px;
  color: #273142;
  line-height: 1.6;
}
body.contact-site .contact-chat-form {
  gap: 12px;
  padding: 24px 28px 28px;
  border-top: 1px solid #e7ebf0;
  background: #fff;
}
body.contact-site .contact-chat-form label {
  color: #273142;
  font-size: 13px;
}
body.contact-site .contact-chat-form textarea {
  min-height: 112px;
  border: 1px solid #d8dee8;
  border-radius: 13px;
  background: #fbfcfe;
  color: #202938;
  transition: border-color .18s ease, box-shadow .18s ease;
}
body.contact-site .contact-chat-form textarea:focus {
  border-color: #7c5cff;
  outline: 0;
  box-shadow: 0 0 0 4px rgba(124,92,255,.12);
}
body.contact-site .contact-chat-form-footer small {
  color: #8b95a5;
}
body.contact-site .contact-chat-form-footer .primary {
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #6b4eff, #477bff);
  box-shadow: 0 8px 18px rgba(91,89,220,.22);
  text-transform: none;
}
body.contact-site .contact-chat-form-footer .primary:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  body.contact-site .contact-chat-page { width: min(100% - 28px, 1080px); padding: 42px 0 64px; }
  body.contact-site .contact-chat-header { align-items: flex-start; flex-direction: column; padding: 20px; }
  body.contact-site .contact-chat-messages { padding: 18px 14px; }
  body.contact-site .contact-chat-message { width: 92%; }
  body.contact-site .contact-chat-form { padding: 20px; }
}

/* Contact center polish */
.dm-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid #cfcfcf;
}

.dm-section-heading h2 {
  margin: 2px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 500;
  text-transform: none;
}

.dm-section-heading > p {
  max-width: 380px;
  margin: 0;
  color: #777;
  font-size: 14px;
  line-height: 1.45;
  text-align: right;
}

.dm-admin-layout {
  grid-template-columns: 280px minmax(0, 1fr) 260px;
  gap: 14px;
}

.dm-thread-list,
.dm-chat-card,
.dm-side-tools {
  border: 1px solid #cfcfcf;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .045);
}

.dm-thread-list {
  padding: 14px;
  background: #f7f7f7;
}

.dm-thread-list h3 {
  margin: 0 0 12px;
  padding: 0 2px 11px;
  border-bottom: 1px solid #d6d6d6;
  color: #555;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dm-thread {
  border-color: #d7d7d7;
  background: #fff;
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.dm-thread.active,
.dm-thread:hover {
  border-color: #555;
  background: #ededed;
  transform: translateX(2px);
}

.dm-thread strong {
  color: #3f3f3f;
}

.dm-thread em {
  border-radius: 999px;
  background: #555;
}

.dm-chat-card {
  min-height: 640px;
  padding: 22px;
  background: #fff;
}

.dm-chat-head {
  align-items: center;
  padding-bottom: 17px;
  border-bottom-color: #d2d2d2;
}

.dm-chat-kicker {
  margin: 0 0 3px;
  color: #888;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dm-chat-head h3 {
  color: #444;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 500;
}

.dm-chat-head small {
  color: #888;
}

.dm-chat-head a {
  border-color: #bdbdbd;
  color: #555;
  background: #f5f5f5;
}

.dm-message-window {
  min-height: 390px;
  margin: 18px 0;
  border: 1px solid #e0e0e0;
  background: #f7f7f7;
}

.dm-message {
  border-color: #d2d2d2;
  border-radius: 12px 12px 12px 3px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .03);
}

.dm-message.out {
  border-color: #555;
  border-radius: 12px 12px 3px 12px;
  background: #555;
}

.dm-reply-form {
  padding-top: 18px;
  border-top: 1px solid #e0e0e0;
}

.dm-reply-form textarea,
.dm-side-tools textarea,
.dm-side-tools input {
  border-color: #c8c8c8;
  background: #fafafa;
}

.dm-empty-state {
  display: grid;
  place-items: center;
  min-height: 540px;
  padding: 40px;
  text-align: center;
}

.dm-empty-state > span {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin-bottom: 16px;
  border: 1px solid #bdbdbd;
  border-radius: 50%;
  color: #666;
  font-size: 28px;
}

.dm-empty-state h3 {
  margin: 0 0 6px;
  color: #444;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 500;
}

.dm-empty-state p {
  max-width: 320px;
  margin: 0;
}

@media (max-width: 900px) {
  .dm-section-heading {
    align-items: start;
    flex-direction: column;
    gap: 8px;
  }

  .dm-section-heading > p {
    max-width: 520px;
    text-align: left;
  }
}

/* Metropolitan profile: use the full desktop canvas */
.metropolitan-hero-inner,
.metropolitan-main {
  width: min(1440px, calc(100vw - 64px));
}

.metropolitan-main {
  padding-bottom: 78px;
}

.metropolitan-page {
  grid-template-columns: minmax(0, 1fr) minmax(330px, 400px);
  gap: 64px;
}

.metropolitan-page > section {
  min-width: 0;
}

.metropolitan-page .prose {
  max-width: none;
  font-size: 18px;
  line-height: 1.82;
}

.metropolitan-page .prose p {
  max-width: 980px;
}

.metropolitan-tabs {
  gap: 20px;
  padding-top: 38px;
  padding-bottom: 34px;
}

.heraldry-card {
  padding: 28px 24px;
  border: 1px solid #d0d0d0;
  background: #f7f7f7;
}

.heraldry-card img {
  max-width: 270px;
  margin: 0 auto;
}

@media (max-width: 900px) {
  .metropolitan-hero-inner,
  .metropolitan-main {
    width: min(100% - 32px, 1240px);
  }

  .metropolitan-page {
    gap: 30px;
  }

  .metropolitan-page .prose {
    font-size: 17px;
  }
}

/* Keep the metropolitan page fluid even when the surrounding layout is zoomed or cached. */
body.metropolitan-site {
  width: 100%;
  max-width: none;
  overflow-x: hidden;
}
body.metropolitan-site > .mourning-bar,
body.metropolitan-site > .site-header,
body.metropolitan-site > .metropolitan-hero,
body.metropolitan-site > .metropolitan-main,
body.metropolitan-site > .see-also,
body.metropolitan-site > .site-footer {
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
}
body.metropolitan-site > .metropolitan-hero {
  margin-left: 0;
}
body.metropolitan-site .top-strip,
body.metropolitan-site .brand-row,
body.metropolitan-site .main-nav,
body.metropolitan-site .metropolitan-hero-inner,
body.metropolitan-site .metropolitan-main,
body.metropolitan-site .see-also,
body.metropolitan-site .footer-inner {
  width: min(100% - 48px, 1440px);
  max-width: none;
}
body.metropolitan-site .metropolitan-hero-inner,
body.metropolitan-site .metropolitan-main {
  width: min(100% - 64px, 1440px);
}
body.metropolitan-site .footer-inner,
body.metropolitan-site .see-also {
  width: min(100% - 32px, 1240px);
}
body.metropolitan-site .mourning-bar p {
  flex: 1 1 auto;
  min-width: 0;
}

/* Final public palette: keep the main site in the diocese blue and warm gold. */
body:not(.mourning) .info-bar {
  border-bottom-color: #b49b75;
  background: #17213a;
  color: #fff;
}

body:not(.mourning) .info-bar span {
  background: #b49b75;
  color: #17213a;
}

body:not(.mourning) .info-bar a {
  color: #fff;
}

body:not(.mourning) .site-header {
  border-bottom-color: #b49b75;
  background: #fff;
}

body:not(.mourning) .main-nav-shell {
  border-bottom: 5px solid #b49b75;
  background: #fff;
}

body:not(.mourning) .home-diocese-hero {
  background: #fbfaf8 !important;
  border-color: #d9c9ad;
}

body:not(.mourning) .home-diocese-hero h1,
body:not(.mourning) .home-diocese-hero .home-diocese-kicker,
body:not(.mourning) .home-diocese-hero p {
  color: #075aaa !important;
}

body:not(.mourning) .home-diocese-hero span {
  background: #075aaa !important;
}

body:not(.mourning) .home-news-panel h2,
body:not(.mourning) .home-news-panel .post-card h3 {
  color: #17213a !important;
}

body:not(.mourning) .home-news-panel .post-card span {
  color: #8a6b43 !important;
}

body:not(.mourning) .home-news-panel .post-card p {
  color: #4f5d70 !important;
}

body:not(.mourning) .met-card {
  background: #e7dbc8 !important;
  border-color: #b49b75 !important;
}

body:not(.mourning) .sidebar-button,
body:not(.mourning) .liturgy-sidebar-card,
body:not(.mourning) .temporary-contact-card,
body:not(.mourning) .visits-card {
  border-color: #b49b75 !important;
  background: #fff !important;
  color: #17213a !important;
}

body:not(.mourning) .sidebar-button {
  color: #075aaa !important;
}

body:not(.mourning) .discord-main-link,
body:not(.mourning) .discord-large {
  border-color: #075aaa !important;
  background: #075aaa !important;
  color: #fff !important;
}

@media (max-width: 900px) {
  body.metropolitan-site .top-strip,
  body.metropolitan-site .brand-row,
  body.metropolitan-site .main-nav,
  body.metropolitan-site .metropolitan-hero-inner,
  body.metropolitan-site .metropolitan-main,
  body.metropolitan-site .see-also,
  body.metropolitan-site .footer-inner {
    width: min(100% - 32px, 1240px);
  }
}
