.clc-service-public { max-width: 52rem; margin: 0 auto; padding-bottom: 4rem; }
.clc-service-date-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  margin-block: 0.55rem 1rem;
}
.clc-service-date-row .clc-service-date {
  margin: 0 !important;
  color: #555;
  font-size: 0.95rem;
  line-height: 1.4;
}
.clc-service-controls {
  /* Floating source/music selectors remain in view throughout the service.
     Use viewport and device safe-area offsets rather than the text column. */
  position: fixed;
  left: calc(0.75rem + env(safe-area-inset-left, 0px));
  bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 2147483647;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: nowrap;
  margin: 0;
  padding: 0;
}
.clc-service-controls button,
.clc-service-date-row button {
  cursor: pointer;
  position: relative;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  color: #171717;
  box-shadow: none;
  line-height: 1;
  padding: 0;
}
.clc-service-controls button:focus-visible,
.clc-service-date-row button:focus-visible {
  outline: 3px solid #6b1f2a;
  outline-offset: 3px;
}
.clc-service-controls .clc-service-icon-toggle {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  min-width: 2.35rem;
  min-height: 2.35rem;
  border: 1.8px solid currentColor;
  border-radius: 50%;
  background: #fff;
  font-size: 1.35rem;
  font-weight: 600;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.12);
}
.clc-service-controls .clc-service-toggle-symbol { display: block; line-height: 1; }
.clc-service-controls .clc-service-icon-toggle[aria-pressed="false"]::after {
  content: "";
  position: absolute;
  width: 110%;
  height: 2px;
  top: calc(50% - 1px);
  left: -5%;
  transform: rotate(-45deg);
  background: #000;
  border-radius: 1px;
  pointer-events: none;
}
.clc-service-controls .clc-service-icon-toggle:disabled { opacity: 1; cursor: not-allowed; }
.clc-service-date-row .clc-service-print-icon {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  min-width: 2.35rem;
  min-height: 2.35rem;
  border: 0;
}
.clc-service-date-row .clc-service-print-icon svg { display: block; }
.clc-service-date-row .clc-service-print-icon:hover { color: #5d2634; }

/* A small traditional Luther rose closes every public service. The
   bibliography belongs AFTER the copyright and follows the α layer. */
.clc-service-public .clc-service-colophon {
  margin: 3.25rem auto 1.5rem;
  text-align: center;
  color: #3f4549;
}
.clc-service-public .clc-service-luther-rose {
  width: 4.6rem;
  height: 4.6rem;
  margin: 0 auto 0.6rem;
}
.clc-service-public .clc-service-luther-rose svg {
  display: block;
  width: 100%;
  height: 100%;
}
.clc-service-public .clc-service-copyright {
  margin: 0 !important;
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.5;
  color: #656565;
}
.clc-service-public .clc-service-colophon [hidden] { display: none !important; }
.clc-service-public .clc-service-sources-index:not([hidden]) {
  display: block;
  margin-block-start: 2.5rem;
  text-align: left;
}
.clc-service-public .clc-service-sources-index h1 {
  margin: 0 auto 1.15rem !important;
  font-size: 20pt !important;
  font-weight: 700 !important;
  text-align: center;
  line-height: 1.2;
}
.clc-service-public .clc-service-source-list {
  max-width: 42rem;
  margin: 0 auto 1rem;
  padding-left: 1.6em;
  list-style: disc outside;
  color: #4d4d4d;
  font-size: 0.9em;
  line-height: 1.5;
}
.clc-service-public .clc-service-source-list li { margin: 0.3rem 0; }
.clc-service-public .clc-service-no-sources {
  margin: 0 auto !important;
  text-align: center;
  color: #666;
  font-size: 0.85rem;
}
@media print {
  .clc-service-public .clc-service-colophon { margin-block-start: 2rem; }
  .clc-service-public .clc-service-luther-rose { break-inside: avoid; }
  .clc-service-public .clc-service-source-list li { break-inside: avoid; }
}

.clc-service-elements { line-height: 1.7; }
.clc-service-item { margin: 2rem 0; }
.clc-service-item > h2 { margin-top: 2rem; font-size: 1.45em; }
/* Grouped Proper sections are individually ordered nodes. The canonical
   group prints its title once; moving an inserted Psalm into that group must
   not duplicate the Proper or add a large gap before each section. */
.clc-service-item--group { margin-bottom: 0.45rem; }
.clc-service-item--group > h2 { margin-bottom: 0.45rem; }
.clc-service-item--part { margin-block: 0.7rem; }
.clc-service-item--part.clc-service-item--proper { margin-block: 0.65rem; }
.clc-service-item[data-tree-depth]:not([data-tree-depth="0"]) > h2 {
  font-size: 1.12em;
  margin: 0.6rem 0 0.35rem;
}
.clc-service-part-heading { margin: 0.3rem 0; font-size: 1.05em; }

/* Psalter: the headings belong to the whole Psalm, not to its selected
   superscription/verses/antiphon parts. Set compact continuous chant lines. */
.clc-service-item--psalm.clc-service-item--part { margin-block: 0 !important; }
.clc-service-item--psalm.clc-service-item--group { margin-block-end: 0 !important; }
.clc-service-item--psalm > h2 { margin-bottom: 0.65rem; }
.clc-service-elements .clc-service-psalm {
  padding-inline-start: 0;
  line-height: 1.5;
  max-width: 100%;
}
/* The marker column is shared by "Ant." and every superscript number.
   A dedicated text column keeps the second half-lines and wrapped lines
   flush with the verse text, not with the marker. */
.clc-service-elements .clc-service-psalm p,
.clc-service-elements .clc-service-psalm p + p {
  display: grid;
  grid-template-columns: 2em minmax(0, 1fr);
  column-gap: 0.35em;
  align-items: baseline;
  margin: 0 !important;
  padding: 0;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-marker {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  white-space: nowrap;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-content {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  overflow-wrap: break-word;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-title {
  margin-block: 0 0.55rem !important;
  font-style: italic;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-antiphon--opening {
  margin-block: 0 0.7rem !important;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-stanza-start {
  margin-block-start: 0.85rem !important;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-gloria {
  margin-block: 0.8rem 0.55rem !important;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-antiphon--reprise {
  margin-block: 0.45rem 0 !important;
}
.clc-service-elements .clc-service-psalm .clc-service-verse-number {
  font-size: 0.7em !important;
  font-weight: 400;
  vertical-align: baseline;
}
/* Keep terminal Selah on the last verse line, in its own right edge
   position, without inheriting the bold response text. Long half-lines
   wrap in the left cell while Selah remains aligned with their end. */
.clc-service-elements .clc-service-psalm .clc-service-psalm-first-line {
  display: block;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-selah-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  column-gap: 0.7em;
  align-items: end;
  width: 100%;
}
.clc-service-elements .clc-service-psalm .clc-service-psalm-selah {
  font-style: italic !important;
  font-weight: 400 !important;
  text-align: right;
  justify-self: end;
  white-space: nowrap;
}
.clc-service-elements .clc-service-psalm strong { font-weight: 700 !important; }

.clc-service-item h3 { margin: 1.5rem 0 0.45rem; font-size: 1.15em; }
.clc-service-item p { white-space: normal; }
.clc-service-item p + p { margin-top: 0.5rem; }
.clc-service-verse { font-size: 1em !important; }
.clc-service-reference {
  display: block;
  width: 100%;
  font-size: 8pt !important;
  line-height: 1.25;
  text-align: right;
  font-style: italic;
  font-weight: normal;
  color: #555;
  margin: 0.25rem 0 0.4rem;
}
.clc-service-rubric { font-style: italic; color: #555; }
/* Imported liturgical dialogue consists of adjacent spoken lines, not
   prose paragraphs. Suppress browser/theme paragraph gaps inside each
   canonical source block while retaining breaks between distinct blocks. */
.clc-service-elements .clc-service-source-block {
  line-height: 1.45;
}
.clc-service-elements .clc-service-source-block + .clc-service-source-block {
  margin-block-start: 0.75rem;
}
.clc-service-elements .clc-service-source-block p {
  margin-block: 0 !important;
  padding-block: 0;
}
.clc-service-elements .clc-service-source-block p.clc-service-reference {
  margin-block: 0.4rem 0.1rem !important;
}
.clc-service-elements .clc-service-source-block p.clc-service-reference:first-child {
  margin-block-start: 0 !important;
}
.clc-service-elements .clc-service-source-block p.clc-service-rubric {
  margin-block: 0.2rem !important;
}
.clc-service-elements .clc-service-congregation,
.clc-service-elements .clc-service-congregation p,
.clc-service-elements .clc-service-congregation strong {
  font-weight: 700 !important;
}

/* Editorially paired congregational lines and biblical citations.
   A true table keeps every reference on the same line as its statement,
   unlike a pair of unrelated paragraphs. Themes must not add cell borders,
   zebra backgrounds or tall per-line padding. */
.clc-service-item--aligned-citations > h2 {
  text-align: center;
  font-size: 1.5em;
  margin: 1.4rem 0 1rem;
}
.clc-service-elements table.clc-service-aligned-citations {
  display: table;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  table-layout: fixed;
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  margin: 0 0 1.2rem;
}
.clc-service-elements .clc-service-aligned-citations tbody,
.clc-service-elements .clc-service-aligned-citations tr,
.clc-service-elements .clc-service-aligned-citations td {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.clc-service-elements .clc-service-aligned-citations tr {
  break-inside: avoid;
  page-break-inside: avoid;
}
.clc-service-elements .clc-service-aligned-citations td {
  vertical-align: top;
  padding: 0 0.25rem 0.03rem 0 !important;
  line-height: 1.35;
}
.clc-service-elements .clc-service-aligned-citations .clc-service-aligned-text {
  width: 76%;
  white-space: pre-wrap;
  overflow-wrap: break-word;
}
.clc-service-elements .clc-service-aligned-citations .clc-service-aligned-text strong {
  font-weight: 700 !important;
}
.clc-service-elements .clc-service-aligned-citations .clc-service-aligned-reference {
  width: 24%;
  font-size: 8pt !important;
  font-weight: normal !important;
  font-style: italic;
  text-align: right;
  white-space: normal;
  color: #555;
  padding-left: 0.35rem !important;
}
.clc-service-elements .clc-service-aligned-citations tr.clc-service-aligned-row--article > td {
  padding-top: 1.1rem !important;
}
.clc-service-elements .clc-service-aligned-citations tr.clc-service-aligned-row--section > td {
  padding-top: 0.55rem !important;
}
.clc-service-elements .clc-service-aligned-citations .clc-service-aligned-indent-1 {
  padding-left: 1.25rem !important;
}
.clc-service-elements .clc-service-aligned-citations .clc-service-aligned-indent-2 {
  padding-left: 2.5rem !important;
}
@media (max-width: 520px) {
  .clc-service-elements .clc-service-aligned-citations .clc-service-aligned-text { width: 72%; }
  .clc-service-elements .clc-service-aligned-citations .clc-service-aligned-reference { width: 28%; }
  .clc-service-elements .clc-service-aligned-citations .clc-service-aligned-indent-1 { padding-left: 0.7rem !important; }
}

/* Standard liturgical section headers. Canonical material determines the
   label (Preparation / Propers / Sacrament), not a particular Sunday or rite. */
.clc-service-section-title {
  text-align: center;
  margin: 1.8rem 0 1rem;
}
.clc-service-section-title > h2 {
  font-size: 1.48em;
  font-weight: 750;
  text-align: center;
  margin: 0;
}
.clc-service-section-subtitle {
  font-size: 0.79em;
  line-height: 1.3;
  font-weight: 400;
  color: #555;
  text-align: center;
  margin: 0.2rem 0 0.65rem !important;
}
/* Proper element headings are now visible: flush-left, stronger than body
   copy but subordinate to the centred section title. */
.clc-service-item--proper .clc-service-proper-heading {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  border: 0;
  font-size: 1.17em;
  font-weight: 750;
  line-height: 1.3;
  text-align: left;
  margin: 0.9rem 0 0.3rem;
}
.clc-service-elements .clc-service-proper-element {
  margin-block: 0.85rem;
  line-height: 1.45;
}
.clc-service-elements .clc-service-proper-element > p {
  margin-block: 0 !important;
  padding-block: 0;
}
.clc-service-elements .clc-service-proper-element > p.clc-service-reference {
  margin-block: 0.35rem 0.12rem !important;
}
.clc-service-elements .clc-service-proper-element > p.clc-service-reading-introduction {
  margin-block: 0.1rem 0.2rem !important;
  color: inherit;
  font-style: normal;
}
.clc-service-elements .clc-service-proper-element > p.clc-service-scripture-text {
  margin-block: 0.55rem !important;
  line-height: 1.55;
}
/* One continuous paragraph for a reading, retaining small superscript
   verse numbers and normal word wrapping at any viewport or print size. */
.clc-service-scripture-text { white-space: normal; }
.clc-service-scripture-verse { display: inline; }
.clc-service-verse-number {
  font-size: 0.7em;
  vertical-align: baseline;
  font-weight: normal;
  letter-spacing: 0;
  white-space: nowrap;
}


.clc-service-layer-unavailable { color: #555; font-style: italic; }
.clc-service-score-wrap { width: 100%; overflow-x: auto; margin: 0.75rem 0 1.25rem; }
.clc-service-score { display: block; width: max-content; min-width: 100%; height: auto; max-height: none; color: #171717; }
.clc-service-score line { stroke: currentColor; stroke-width: 1; }
.clc-service-score ellipse { fill: currentColor; }
.clc-service-score ellipse[fill="white"] { fill: #fff; stroke: currentColor; }
.clc-service-score .clc-service-score-ledger { stroke-width: 1; }
.clc-service-score .clc-service-score-stem, .clc-service-score .clc-service-score-barline { stroke-width: 1.5; }
.clc-service-score .clc-service-score-flag, .clc-service-score .clc-service-score-slur { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.clc-service-score .clc-service-score-signature { font-size: 18px; font-weight: 700; }
.clc-service-score .clc-service-score-breath { font-size: 18px; }
.clc-service-score text { fill: currentColor; font-family: Georgia, "Times New Roman", serif; }
.clc-service-score .clc-service-score-lyric { font-size: 14px; }
.clc-service-score .clc-service-score-label { font-size: 15px; font-weight: 700; }
.clc-service-score .clc-service-score-accidental { font-size: 15px; }
.clc-service-score .clc-service-score-join { font-size: 14px; }
/* Interlinear originals stay within the exact English verse/stanza column.
   Canonical hard line breaks are retained; different languages naturally
   wrap differently unless the source provides explicit matching boundaries. */
.clc-service-elements .clc-service-original-inline:not([hidden]) {
  display: block;
  margin: 0.08em 0 0.3em;
  min-width: 0;
  font-size: 0.78em !important;
  line-height: 1.4;
  font-weight: 400 !important;
  color: #666 !important;
  overflow-wrap: anywhere;
}
.clc-service-elements .clc-service-original-text {
  display: block;
  color: inherit !important;
  font-weight: 400 !important;
  text-align: start;
  unicode-bidi: isolate;
}
.clc-service-elements .clc-service-original-text + .clc-service-original-text {
  margin-block-start: 0.2em;
}
.clc-service-elements .clc-service-original-credit {
  color: #666 !important;
  font-size: 0.88em;
  font-style: italic;
  font-weight: 400 !important;
}
/* Verse boundaries stay inline, with or without original languages.
   When α is enabled, the complete passage—not each verse—is measured as
   continuous prose before inserting visual English/Greek display lines. */
.clc-service-elements .clc-service-scripture-text[data-measuring="true"] .clc-service-original-inline {
  display: none !important;
}
/* Source stanzas with matching hard lines retain that original lineation. */
.clc-service-elements .clc-service-hymn-line-pair,
.clc-service-elements .clc-service-hymn-english-line {
  display: block;
}
.clc-service-elements .clc-service-hymn-line-pair > .clc-service-original-inline:not([hidden]) {
  display: block;
  margin: 0 0 0.25em;
}

/* Hebrew is RTL within the English verse's text column. Each deliberately
   marked English phrase provides the right boundary of its Hebrew phrase;
   the browser-side layout sets its width from the English endpoint. */
.clc-service-elements .clc-service-psalm-bilingual-line {
  display: block;
  min-width: 0;
  max-width: 100%;
}
.clc-service-elements .clc-service-psalm-english-phrase {
  display: inline-block;
  max-width: 100%;
}
.clc-service-elements .clc-service-psalm-bilingual-line > .clc-service-original-inline:not([hidden]) {
  display: block;
  max-width: 100%;
  margin: 0.05em 0 0.24em;
}
.clc-service-elements .clc-service-psalm-bilingual-line .clc-service-original-text[lang="he"] {
  direction: rtl;
  text-align: right;
  font-weight: 400 !important;
}
.clc-service-elements .clc-service-psalm-bilingual-line .clc-service-original-hebrew-selah-row:not([hidden]) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  column-gap: 0.7em;
  align-items: baseline;
  direction: ltr;
}
.clc-service-elements .clc-service-original-selah {
  direction: rtl;
  text-align: right;
  font-weight: 400 !important;
  color: #666 !important;
}
/* English wraps at the service reader's current width. For Greek and Latin,
   a progressive line layout distributes the unchanged source words across
   the same number of visible English lines: a visual aid, not a gloss. */
.clc-service-elements .clc-service-scripture-interlinear {
  display: none;
  margin-block: 0.55rem !important;
  line-height: 1.55;
  font-size: inherit;
  color: inherit;
}
.clc-service-public[data-original-visible="true"] .clc-service-scripture-text[data-line-aligned="true"] {
  display: none !important;
}
.clc-service-public[data-original-visible="true"] .clc-service-scripture-text[data-line-aligned="true"] + .clc-service-scripture-interlinear {
  display: block;
}
.clc-service-elements .clc-service-scripture-interlinear-row {
  display: block;
  margin: 0.08em 0 0.3em;
}
.clc-service-elements .clc-service-scripture-interlinear-english {
  display: block;
  color: inherit;
}
.clc-service-elements .clc-service-scripture-interlinear-source {
  display: block;
  font-size: 0.78em !important;
  line-height: 1.4;
  color: #666 !important;
  font-weight: 400 !important;
  overflow-wrap: anywhere;
}

/* Historical English liturgical speeches use the SAME displayed-line rows
   and small grey source typography as Greek/Latin Scripture. They retain
   modern minister/congregation roles, including bold spoken responses.
   On source-hide, the original paragraph—not a reconstructed copy—returns. */
.clc-service-elements .clc-service-source-block > p[data-measuring="true"] > .clc-service-original-inline {
  display: none !important;
}
.clc-service-elements .clc-service-spoken-interlinear {
  display: none;
  margin: 0;
  line-height: inherit;
  color: inherit;
  font-size: inherit;
}
.clc-service-public[data-original-visible="true"] .clc-service-source-block > p[data-line-aligned="true"] {
  display: none !important;
}
.clc-service-public[data-original-visible="true"] .clc-service-source-block > p[data-line-aligned="true"] + .clc-service-spoken-interlinear {
  display: block;
}
/* Unpaired archival texts and record-level citations cannot truthfully be
   assigned to a single English line: retain them after their section. */
.clc-service-elements .clc-service-layer--original:not([hidden]) {
  display: block;
  margin: 0.4rem 0 0.8rem;
  padding: 0;
  background: transparent;
  border: 0;
  color: #666 !important;
  font-size: 0.78em !important;
  line-height: 1.45;
  font-weight: 400;
  overflow-wrap: anywhere;
}
.clc-service-elements .clc-service-original-unpaired,
.clc-service-elements .clc-service-original-sources {
  margin-block: 0.15em;
}
.clc-service-elements .clc-service-original-label {
  font-weight: 600;
  color: inherit;
}
.clc-service-source-id { color: inherit; font-size: 0.9em; }
.clc-service-custom p { white-space: pre-wrap; }
.clc-service-elements [hidden] { display: none !important; }
.clc-service-archive-card { padding: 1.25rem 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); }
@media (max-width: 600px) {
  .clc-service-public { padding-inline: 0.25rem; }
  .clc-service-controls {
    gap: 0.4rem;
    left: calc(0.5rem + env(safe-area-inset-left, 0px));
    bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
  }
  .clc-service-controls button { min-height: 2.35rem; }
}
@media print {
  .clc-service-controls, .clc-service-date-row .clc-service-print-icon,
  .wp-site-blocks > header, .wp-site-blocks > footer { display: none !important; }
  .clc-service-public { padding-bottom: 0; }
  .clc-service-date-row { display: block; margin-block: 0.55rem 1rem; }
  /* Print the layers the reader selected, not every hidden layer. */
  .clc-service-elements [hidden] { display: none !important; }
  .clc-service-layer--music, .clc-service-layer--original { break-inside: avoid; }
  .clc-service-score-wrap { overflow: visible; }
  .clc-service-score { max-width: 100%; }
  a { color: inherit; text-decoration: none; }
}

/* Compact fabric stole beside the canonical service title. The church
   calendar supplies the colour through --clc-stole-colour; no white centre
   stripe or hard-coded seasonal palette. The Chi-Rho is impressed into the
   cloth with opposing light and dark shading. */
body[class*="clc-service-liturgical-"] .clc-service-single h1.wp-block-post-title {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
body[class*="clc-service-liturgical-"] .clc-service-single h1.wp-block-post-title::before {
  content: "☧";
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.95rem;
  border-radius: 0.23rem 0.23rem 0.12rem 0.12rem;
  border: 1px solid rgba(0,0,0,.18);
  box-sizing: border-box;
  color: rgba(0,0,0,.20);
  font-family: "Times New Roman", Georgia, serif;
  font-size: 1.55rem;
  font-weight: normal;
  line-height: 1;
  background-color: var(--clc-stole-colour);
  background-image:
    linear-gradient(90deg, rgba(0,0,0,.17), rgba(255,255,255,.13) 19%,
      transparent 35%, rgba(0,0,0,.07) 53%, rgba(255,255,255,.16) 80%,
      rgba(0,0,0,.12)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 1px,
      transparent 1px 3px);
  text-shadow: 0 1px 1px rgba(255,255,255,.55), 0 -1px 1px rgba(0,0,0,.35);
  box-shadow: inset 1px 0 2px rgba(255,255,255,.25),
    inset -1px 0 2px rgba(0,0,0,.20), 0 1px 2px rgba(0,0,0,.16);
}
@media print {
  body[class*="clc-service-liturgical-"] .clc-service-single h1.wp-block-post-title::before {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}

/* Sacrament titles and speech roles come from verified canonical source
   segments; these rules are generic for any sacramental liturgical unit. */
.clc-service-item--sacrament .clc-service-source-block h3 {
  font-size: 1.14em;
  font-weight: 700;
  text-align: left;
  margin: 0.85rem 0 0.3rem;
}
.clc-service-item--sacrament .clc-service-source-block p.clc-service-rubric {
  font-style: italic;
  color: #555;
  margin-block: 0.4rem !important;
}
.clc-service-item--sacrament .clc-service-source-block p.clc-service-congregation {
  font-weight: 700 !important;
}

/* Our Father: modern and traditional text are independently selected
   English columns, never interleaved from an extracted two-column page. */
.clc-service-elements .clc-service-prayer-forms {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  column-gap: 1.7rem;
  row-gap: 0.3rem;
  margin: 0.4rem 0 1.4rem;
}
.clc-service-elements .clc-service-prayer-forms--parallel {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.clc-service-elements .clc-service-prayer-forms > .clc-service-reference {
  grid-column: 1 / -1;
  text-align: right;
  font-size: 0.75em;
  font-style: italic;
  margin: 0 0 0.45rem;
}
.clc-service-elements .clc-service-prayer-column { min-width: 0; }
.clc-service-elements .clc-service-prayer-line,
.clc-service-elements .clc-service-prayer-line + .clc-service-prayer-line {
  margin: 0 !important;
  line-height: 1.45;
}
.clc-service-elements .clc-service-prayer-line strong { font-weight: 700 !important; }
.clc-service-elements .clc-service-prayer-indent-1 { padding-inline-start: 1.1em; }
.clc-service-elements .clc-service-prayer-indent-2 { padding-inline-start: 2.2em; }
@media (max-width: 600px) {
  .clc-service-elements .clc-service-prayer-forms--parallel {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 1rem;
  }
}

/* Service-book title hierarchy, independent of HTML heading defaults. */
.clc-service-elements .clc-service-item--primary > .clc-service-section-title > h2,
.clc-service-elements .clc-service-item--primary > h2 {
  font-size: 20pt !important;
  font-weight: 700 !important;
  text-align: center !important;
  line-height: 1.2;
}
.clc-service-elements .clc-service-item--primary > .clc-service-section-title {
  margin-block: 1.45rem 0.85rem;
  text-align: center;
}
.clc-service-elements .clc-service-item--secondary > h2,
.clc-service-elements .clc-service-item--secondary > h3,
.clc-service-elements .clc-service-title-level-2,
.clc-service-elements .clc-service-item .clc-service-proper-heading {
  font-size: 16pt !important;
  font-weight: 700 !important;
  line-height: 1.25;
  text-align: left;
}
.clc-service-elements .clc-service-source-block h3:not(.clc-service-title-level-3) {
  font-size: 16pt !important;
  font-weight: 700 !important;
  text-align: left;
  line-height: 1.25;
}
.clc-service-elements .clc-service-title-level-3 {
  font-size: 1em !important;
  font-weight: 600 !important;
  font-variant: small-caps;
  text-align: left;
}
.clc-service-elements .clc-service-item--creed .clc-service-creed-subtitle {
  margin-block: 0.75rem 0.4rem !important;
}
.clc-service-elements .clc-service-item--hymn > h2 {
  margin: 1rem 0 0.7rem !important;
}
.clc-service-elements .clc-service-heading-reference {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  margin-block: 0.65rem 0.25rem;
}
.clc-service-elements .clc-service-item--secondary > .clc-service-heading-reference > h2,
.clc-service-elements .clc-service-item--secondary > .clc-service-heading-reference > h3 {
  font-size: 16pt !important;
  font-weight: 700 !important;
  line-height: 1.25;
  text-align: left;
}
.clc-service-elements .clc-service-heading-reference > h2,
.clc-service-elements .clc-service-heading-reference > h3,
.clc-service-elements .clc-service-heading-reference > h4 {
  margin: 0 !important;
  min-width: 0;
  flex: 1 1 auto;
}
.clc-service-elements .clc-service-heading-reference > .clc-service-reference {
  display: inline;
  flex: 0 0 auto;
  width: auto;
  margin: 0 !important;
  font-size: 8pt !important;
  font-style: italic;
  font-weight: 400;
  text-align: right;
  white-space: normal;
}
@media (max-width: 420px) {
  .clc-service-elements .clc-service-heading-reference {
    flex-wrap: wrap;
  }
  .clc-service-elements .clc-service-heading-reference > .clc-service-reference {
    margin-left: auto !important;
  }
}

/* Two hymn stanzas per row where the service's *own* width allows it.
   Each stanza uses the same left marker / inset text structure as Psalms. */
.clc-service-elements .clc-service-item--hymn { container-type: inline-size; }
.clc-service-elements .clc-service-hymn-stanzas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1.5rem;
  row-gap: 1.05rem;
  margin: 0.6rem 0 1.25rem;
}
.clc-service-elements .clc-service-hymn-stanza {
  display: grid;
  grid-template-columns: 2em minmax(0, 1fr);
  column-gap: 0.35em;
  align-content: start;
  break-inside: avoid;
  page-break-inside: avoid;
  min-width: 0;
}
.clc-service-elements .clc-service-hymn-marker {
  font-size: 0.75em;
  line-height: 1.65;
  font-weight: 400;
  text-align: left;
}
.clc-service-elements .clc-service-hymn-lines {
  line-height: 1.65;
  overflow-wrap: break-word;
}
@container (max-width: 650px) {
  .clc-service-elements .clc-service-hymn-stanzas {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 700px) {
  .clc-service-elements .clc-service-hymn-stanzas {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Responsive Litany: a petition and congregational response are two
   semantic fields, not unrelated paragraphs or a flattened tab. */
.clc-service-elements .clc-service-dialogue-layout {
  container-type: inline-size;
  line-height: 1.4;
}
.clc-service-elements .clc-service-dialogue-layout .clc-service-dialogue-line {
  margin: 0 !important;
  padding: 0;
}
.clc-service-elements .clc-service-dialogue-layout .clc-service-rubric {
  margin: 0.6rem 0 0.4rem !important;
  font-style: italic;
}
.clc-service-elements .clc-service-dialogue-indent-1 { padding-left: 1em !important; }
.clc-service-elements .clc-service-dialogue-indent-2 { padding-left: 2em !important; }
.clc-service-elements .clc-service-dialogue-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  column-gap: 0.8rem;
  align-items: end;
  break-inside: avoid;
  padding: 0;
}
.clc-service-elements .clc-service-dialogue-petition {
  display: block;
  margin: 0.85rem 0 !important;
  break-inside: avoid;
}
.clc-service-elements .clc-service-dialogue-petition-response {
  display: block;
  padding-left: 1em;
  font-weight: 700 !important;
  text-align: left;
}
.clc-service-elements .clc-service-dialogue-response {
  text-align: right;
  align-self: end;
  font-weight: 700 !important;
}
.clc-service-elements .clc-service-dialogue-speaker-row {
  display: grid;
  grid-template-columns: 6em minmax(0,1fr);
  gap: 0.4rem;
  align-items: baseline;
}
@container (max-width: 540px) {
  .clc-service-elements .clc-service-dialogue-pair {
    grid-template-columns: minmax(0,1fr);
    row-gap: 0.1rem;
  }
  .clc-service-elements .clc-service-dialogue-response {
    text-align: left;
    padding-left: 1em;
  }
}
@media (max-width: 600px) {
  .clc-service-elements .clc-service-dialogue-pair {
    grid-template-columns: minmax(0,1fr);
  }
  .clc-service-elements .clc-service-dialogue-response {
    text-align: left;
    padding-left: 1em;
  }
}
