.tc-liturgie {
  --tcl-accent: red;
  --tcl-reading-width: min(1800px, 94vw);
  --tcl-reading-size: 1.8vw;
  --tcl-heading-size: 2.2vw;
  --tcl-title-top: 3vh;
  --tcl-line: color-mix(in srgb, currentColor 28%, transparent);
  --tcl-prompter-top: 8px;
  box-sizing: border-box;
  width: var(--tcl-reading-width);
  max-width: none;
  margin: 0 auto;
  margin-inline: calc((100% - var(--tcl-reading-width)) / 2) !important;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}
.tc-liturgie * { box-sizing: border-box; }
.tc-liturgie [hidden] { display: none !important; }
/* The parish theme clips its posts, including a reader wider than its wrapper. */
.page-office .post:has(.tc-liturgie) { overflow: visible; }
.tc-liturgie .tc-liturgie-office-header,
.tc-liturgie .tc-liturgie-reading,
.tc-liturgie .tc-liturgie-reading :is(h2, h3, h4, h5, p) {
  font-family: Georgia, 'Times New Roman', serif !important;
}
.tc-liturgie .tc-liturgie-layout :is(.tc-liturgie-current-office, .tc-liturgie-rubrique) {
  width: fit-content;
  margin: 1.2em 0 .4em !important;
  font-size: var(--tcl-heading-size) !important;
  font-weight: 700;
  line-height: inherit;
  color: red !important;
}
.tc-liturgie .tc-liturgie-office-header { padding-block: var(--tcl-title-top) 5vh; }
.tc-liturgie .tc-liturgie-office-header .tc-liturgie-current-office {
  margin: 0 !important;
  font-family: inherit !important;
}
.tc-liturgie .tc-liturgie-content :is(p, .tc-liturgie-texte, .tc-liturgie-antienne) {
  font-size: var(--tcl-reading-size) !important;
  line-height: 1.1;
  text-align: justify;
  overflow-wrap: break-word;
}
.tc-liturgie .tc-liturgie-content :is(span, strong, em, b, i, sup, sub, small, u) {
  font-family: inherit !important;
}
.tc-liturgie .tc-liturgie-content .tc-liturgie-reference {
  font-size: 70%;
  font-style: italic;
  color: inherit;
}
.tc-liturgie .tc-liturgie-content .tc-liturgie-signet { color: red !important; }
.tc-liturgie .tc-liturgie-content p,
.tc-liturgie-texte:has(> .tc-liturgie-preserve-lines),
.tc-liturgie .tc-liturgie-content .tc-liturgie-antienne { margin: 0 0 1.1em; }
.tc-liturgie-richtext p:empty { display: none; }
.tc-liturgie-preserve-lines, .tc-liturgie-hymnes .tc-liturgie-texte { white-space: pre-line; }
.tc-liturgie-antienne :is(.tc-liturgie-richtext, .tc-liturgie-richtext p) { display: inline; }
.tc-liturgie .tc-liturgie-content .tc-liturgie-hymn-title {
  font-size: 1.25em;
  font-weight: 400;
  font-style: italic;
  margin: .2em 0 .6em;
  color: inherit;
}
.tc-liturgie .tc-liturgie-aelf-link, .tc-liturgie .tc-liturgie-footer a {
  color: inherit;
  text-decoration: underline;
}
.tc-liturgie-footer { margin-top: 1.4rem; font-size: .85rem; }
.tc-liturgie .tc-liturgie-footer a { font-size: inherit; }


@media (max-width: 950px) {
  .tc-liturgie { --tcl-reading-size: 4.5vw; --tcl-heading-size: 5.2vw; }
  .tc-liturgie .tc-liturgie-content .tc-liturgie-hymn-title { font-size: 4vw !important; }
}

.tc-liturgie-sidebar {
  min-width: 0;
  position: relative;
  top: auto;
  z-index: 5;
  max-height: none;
  overflow: visible;
  padding: .4rem;
  margin-bottom: 1rem;
  font: .8rem/1.35 Roboto, Arial, sans-serif;
  overflow-wrap: anywhere;
  color-scheme: light dark;
  background: color-mix(in srgb, Canvas 4%, transparent);
  color: inherit;
}
.tc-liturgie .tc-liturgie-layout .tc-liturgie-sidebar :is(p, small, label, output) {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: 1.35;
  text-align: start;
}
.tc-liturgie-disclosure > summary { cursor: pointer; list-style: none; }
.tc-liturgie-disclosure > summary::-webkit-details-marker { display: none; }
.tc-liturgie-date-readable {
  display: block;
  font-size: 1.125rem;
  font-weight: 400;
  margin-top: .5rem;
}
.tc-liturgie-celebration { display: block; margin: .1rem 0 .2rem; font-style: italic; }
.tc-liturgie-disclosure-label {
  display: inline-flex;
  gap: .5em;
  align-items: center;
  margin: .25rem 0;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.tc-liturgie-disclosure-label::after {
  content: '';
  width: .42em;
  height: .42em;
  border: solid currentColor;
  border-width: 0 1px 1px 0;
  transform: rotate(45deg);
}
.tc-liturgie-disclosure[open] .tc-liturgie-disclosure-label::after { transform: rotate(225deg); }
.tc-liturgie-date-nav, .tc-liturgie-tabs, .tc-liturgie-hymn-options, .tc-prompter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
}
.tc-liturgie-date-nav, .tc-liturgie-tabs, .tc-liturgie-hymn-controls { margin-top: .7rem; }
.tc-liturgie .tc-liturgie-office-nav {
  margin: 0 0 .65rem;
  padding: .45rem 0;
  border-bottom: 1px solid var(--tcl-line);
  font: .85rem/1.35 Roboto, Arial, sans-serif;
  background: transparent;
}
.tc-liturgie .tc-liturgie-office-nav button { flex: 0 1 auto; }
.tc-liturgie-date-nav { flex-wrap: nowrap; }
.tc-liturgie input[type=date] { min-width: 0; width: 100%; max-width: 10rem; }
.tc-liturgie :where(button, input[type=date], select) {
  min-height: 36px;
  max-width: 100%;
  margin: 0;
  padding: .25rem .48rem;
  border: 1px solid var(--tcl-line);
  border-radius: 3px;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1.25;
}
.tc-liturgie button { cursor: pointer; white-space: normal; background: #6f6f6f; color: #fff; border: 0; border-radius: 0; }
.tc-liturgie button[aria-pressed=true] {
  background: #a82020;
  color: #fff;
}
.tc-liturgie button:disabled { cursor: default; opacity: .55; }
.tc-liturgie :is(summary, button, input, select, a):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.tc-liturgie .tc-liturgie-hymn-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .3rem .65rem;
  margin: .2rem 0 .65rem;
  font: .75rem/1.4 system-ui, sans-serif;
}
.tc-liturgie .tc-liturgie-content .tc-liturgie-hymn-select {
  flex: 0 1 auto;
  width: auto;
  min-height: 28px;
  max-width: 100%;
  margin: 0;
  padding: .2rem .35rem;
  font: inherit !important;
  background: Canvas;
  color: CanvasText;
  color-scheme: light dark;
}
.tc-liturgie .tc-liturgie-content .tc-liturgie-hymn-origin {
  flex: 1 1 12rem;
  min-width: 0;
  font: italic .75rem/1.4 system-ui, sans-serif !important;
  text-align: left;
  overflow-wrap: anywhere;
}

.tc-liturgie .tc-prompter { margin: .5rem 0 0; font-size: inherit; }
.tc-prompter-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
}
.tc-liturgie .tc-prompter-transport {
  min-width: 0;
  margin: 0;
  padding: .2rem .25rem .4rem;
  border: 1px solid var(--tcl-line);
  border-radius: 4px;
}
.tc-liturgie .tc-prompter-transport legend {
  width: auto;
  margin: 0;
  padding: 0 .3rem;
  font: inherit;
  color: inherit;
  background: transparent;
  text-transform: none;
  letter-spacing: normal;
}
.tc-prompter-transport-buttons { display: flex; justify-content: space-between; gap: .15rem; }
.tc-liturgie .tc-prompter-transport button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  min-width: 24px;
  min-height: 30px;
  padding: .2rem;
  background: #5d5d5d;
  color: white;
  border: 1px solid transparent;
  border-radius: 3px;
}
.tc-liturgie .tc-prompter-transport .tc-prompter-play { background: #a82020; }
.tc-liturgie .tc-prompter-transport[data-transport=synthesis] .tc-prompter-play { background: #234c74; }
.tc-liturgie .tc-prompter-transport button:enabled:hover { filter: brightness(1.2); }
.tc-prompter-transport svg { width: 14px; height: 14px; fill: currentColor; flex-shrink: 0; }
.tc-liturgie .tc-prompter-separator {
  height: 0;
  margin: .75rem 0;
  padding: 0;
  border: 0;
  border-top: 1px solid var(--tcl-line);
  background: none;
  width: 100%;
  max-width: none;
}
.tc-prompter-extras { display: grid; gap: .5rem; }
.tc-prompter-highlight-option { display: flex; align-items: center; gap: .35rem; margin: .65rem 0; }
.tc-prompter-power-note { display: block; font-size: .8em; }
.tc-prompter-power-note:empty { display: none; }
.tc-prompter-voice-setting { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.tc-prompter input[type=checkbox] { accent-color: var(--tcl-accent); }
.tc-prompter-voice-settings { display: grid; gap: .4rem; margin-top: .6rem; }
.tc-prompter-voice-setting input { width: 7rem; max-width: 100%; accent-color: var(--tcl-accent); }
.tc-prompter-voice-setting output { font-variant-numeric: tabular-nums; }
.tc-prompter-status, .tc-prompter-privacy { margin: .3rem 0; font-size: .82rem; }
.tc-liturgie .tc-prompter-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.tc-liturgie .tc-prompter-transport-active,
.tc-liturgie .tc-prompter-transport-active :is(legend, button) {
  color: red;
  border-color: red;
}
.tc-liturgie .tc-prompter-transport.tc-prompter-transport-active :is(.tc-prompter-play, .tc-prompter-pause, .tc-prompter-stop) { background: transparent; color: red; }
.tc-liturgie .tc-prompter-transport-active .tc-prompter-play:disabled { opacity: 1; }
.tc-prompter-help summary { cursor: pointer; text-decoration: underline; }
.tc-prompter-compact:not(.tc-prompter-in-sidebar) :is(.tc-prompter-extras, .tc-prompter-highlight-option, .tc-prompter-power-note, .tc-prompter-separator),
.tc-liturgie-disclosure:not([open]) + .tc-prompter :is(.tc-prompter-extras, .tc-prompter-highlight-option, .tc-prompter-power-note, .tc-prompter-separator) {
  display: none;
}
.tc-prompter-active .tc-prompter-word { cursor: pointer; }
html[data-dracula-scheme=dark] .tc-liturgie-sidebar { color-scheme: dark; }
.tc-liturgie .tc-prompter-passage { background: color-mix(in srgb, #bf8a36 17%, transparent); }
.tc-liturgie .tc-prompter-current { background: #eddbb8; color: #25221f; text-decoration: underline; }

.admin-bar .tc-liturgie { --tcl-prompter-top: 40px; }
@media (min-width: 601px) and (max-width: 782px) {
  .admin-bar .tc-liturgie { --tcl-prompter-top: 54px; }
}
@media (max-width: 600px) {
  .admin-bar .tc-liturgie { --tcl-prompter-top: 8px; }
}
@media (min-width: 1480px) {
  .tc-liturgie-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 218px;
    column-gap: 24px;
  }
  .tc-liturgie-office-header, .tc-liturgie-reading { grid-column: 1; }
  .tc-liturgie-office-header { grid-row: 1; }
  .tc-liturgie-reading { grid-row: 2; }
  .tc-liturgie-sidebar {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    justify-self: start;
    width: 218px;
    margin: var(--tcl-title-top) 0 0;
    margin-inline-start: 0;
    padding: .25rem;
    background: transparent;
    color: inherit;
    color-scheme: inherit;
  }
}
.tc-liturgie.tc-liturgie-tall-controls .tc-liturgie-sidebar {
  position: relative;
  top: auto;
}
@media print {
  .tc-liturgie-sidebar, .tc-liturgie .tc-prompter, .tc-liturgie-office-nav { display: none; }
  .tc-liturgie .tc-prompter-passage, .tc-liturgie .tc-prompter-current {
    background: transparent;
    color: inherit;
    text-decoration: none;
  }
}

/* 1.01k: compact right dock also on ordinary laptops and tablets.
   Keep the office header/date/saint rules and DOM unchanged. */
@media (min-width: 760px) and (max-width: 1479px) {
  .tc-liturgie-layout { display: grid; grid-template-columns: minmax(0, 1fr) 218px; column-gap: 16px; }
  .tc-liturgie-office-header { grid-column: 1; grid-row: 1; }
  .tc-liturgie-reading { grid-column: 1; grid-row: 2; min-width: 0; }
  .tc-liturgie-sidebar { grid-column: 2; grid-row: 1 / span 2; align-self: start; width: 218px; margin: var(--tcl-title-top) 0 0; padding: .25rem; }
}
@media (max-width: 759px) {
  .tc-liturgie-sidebar { width: min(218px, 100%); margin-left: auto; }
}
.tc-liturgie .tc-liturgie-sidebar { background: color-mix(in srgb, Canvas 4%, transparent); }
.tc-liturgie .tc-liturgie-content .tc-liturgie-rubrique + .tc-liturgie-texte > .tc-liturgie-richtext > :first-child { margin-top: 0; }
.tc-liturgie .tc-liturgie-gloria { margin-top: .4em; }
.tc-liturgie .tc-liturgie-confiteor { padding-block-end: calc(var(--tcl-reading-size) * 1.1); }
.tc-liturgie .tc-liturgie-response { margin-block: .55em; }
.tc-liturgie .tc-liturgie-response > .tc-liturgie-richtext,
.tc-liturgie .tc-liturgie-response .tc-liturgie-richtext p {
  display: inline;
  margin: 0;
  white-space: normal;
}
.tc-liturgie .tc-liturgie-gospel { display: flow-root; }
.tc-liturgie .tc-liturgie-gospel .tc-liturgie-richtext > p:first-child { text-indent: 0 !important; }
.tc-liturgie-initial { float: left; width: 6.2em; height: 6.2em; margin: .05em .1em .1em 0; object-fit: contain; }
.tc-liturgie-initial-word { white-space: nowrap; word-spacing: normal; letter-spacing: normal; }
.tc-liturgie-initial-fallback { float: left; font-size: 6em; line-height: 1; color: #b99139; margin-right: 0; }
.tc-liturgie-initial-letter { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }

/* Landscape touch devices (and small landscape viewports) keep the full reading width. */
@media (orientation: landscape) and (max-width: 1366px), (orientation: landscape) and (any-pointer: coarse) {
  .tc-liturgie { --tcl-reading-width: 96vw; }
  .tc-liturgie .tc-liturgie-layout { display: block; }
  .tc-liturgie .tc-liturgie-reading { width: 100%; min-width: 0; }
  .tc-liturgie .tc-liturgie-sidebar { width: min(218px, 100%); margin: 0 0 1rem auto; }
}

/* Hide the box without changing its geometry; only the pause target remains visible. */
.tc-liturgie-mini-controls .tc-liturgie-sidebar { visibility: hidden; pointer-events: none; }
.tc-liturgie .tc-prompter-mini-pause { display: none; }
.tc-liturgie-mini-controls .tc-liturgie-sidebar .tc-prompter-mini-pause {
  display: inline-flex;
  visibility: visible;
  pointer-events: auto;
  position: fixed;
  top: 0;
  right: max(8px, calc((100vw - var(--tcl-reading-width)) / 2));
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 8px;
  color: red;
  border: 1px solid red;
  border-radius: 4px;
  background: color-mix(in srgb, Canvas 4%, transparent);
}
.tc-prompter-mini-pause svg { width: 22px; height: 22px; fill: currentColor; }

/* Office pages only: remove the theme title and leave a short gap below the site banner. */
.post:has(.tc-liturgie) > .post-header,
.entry:has(.tc-liturgie) > .entry-header,
.wp-block-post-title:has(~ .wp-block-post-content .tc-liturgie) { display: none !important; }
.page-office .wrapper:has(.tc-liturgie) { padding-top: 8px !important; }

/* Existing Android and web cards retain their own download URLs and descriptions. */
.tc-liturgie-apps {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 1rem;
  width: min(1800px, 94vw);
  max-width: none;
  margin: 1.5rem calc((100% - min(1800px, 94vw)) / 2) 0;
  color: inherit;
}
.tc-liturgie-apps > .tc-liturgie-app-card {
  min-width: 0;
  margin: 0 !important;
  padding: 1rem !important;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent) !important;
  background: transparent;
  color: inherit;
  font: .875rem/1.45 system-ui, sans-serif !important;
  overflow-wrap: anywhere;
}
.post-content .tc-liturgie-apps .tc-liturgie-app-card h3,
.entry-content .tc-liturgie-apps .tc-liturgie-app-card h3 { margin: 0 0 .65rem; font: 600 1.125rem/1.3 system-ui, sans-serif !important; }
.post-content .tc-liturgie-apps .tc-liturgie-app-card p,
.entry-content .tc-liturgie-apps .tc-liturgie-app-card p { margin: 0 0 .65rem; font: inherit !important; }
.tc-liturgie-apps .tc-liturgie-app-card p:last-child { margin-bottom: 0; }
.tc-liturgie-apps .tc-liturgie-app-card small { font: .75rem/1.45 system-ui, sans-serif !important; }
.tc-liturgie-apps .tc-liturgie-app-card a { font: inherit !important; }
@media print { .tc-liturgie-apps, .tc-liturgie-hymn-controls { display: none !important; } }
