/* Oblate Martyrology — saints front-end. Inherits theme typography; adds
   liturgical color + layout specifics. */

:root {
	--om-red: #9b2226;
	--om-white: #b9962e; /* "white" feasts use a gold accent for contrast */
	--om-green: #3f6f4e;
	--om-violet: #5b4b8a;
	--om-rose: #c47a93;
	--om-black: #2b2b2b;
	--om-rule: #e3ddd2;
	--om-muted: #8a7f6b;
}

.om-color-red    { --om-ac: var(--om-red); }
.om-color-white  { --om-ac: var(--om-white); }
.om-color-green  { --om-ac: var(--om-green); }
.om-color-violet { --om-ac: var(--om-violet); }
.om-color-rose   { --om-ac: var(--om-rose); }
.om-color-black  { --om-ac: var(--om-black); }

/* --- Single header (Option C) --- */
.om-feast-header { text-align: center; border-bottom: 2px solid var(--om-ac, var(--om-white)); padding-bottom: 1.4rem; margin-bottom: 2rem; }
.om-feast-date { color: var(--om-ac, var(--om-white)); font-size: 1rem; letter-spacing: .03em; margin: 0 0 .5rem; }
.om-feast-label { display: block; margin-top: .25rem; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--om-muted); }
.om-feast-title { font-size: clamp(1.9rem, 4vw, 2.6rem); font-weight: 500; line-height: 1.1; margin: 0 0 .6rem; }
.om-feast-meta { font-size: .8rem; letter-spacing: .05em; text-transform: uppercase; color: var(--om-muted); }
.om-feast-meta .om-sep { color: var(--om-ac, var(--om-white)); opacity: .5; }

/* --- Index hero --- */
.om-index-hero { text-align: center; padding: 1rem 0 1.5rem; }
.om-kicker { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--om-muted); margin: 0; }
.om-datenav { display: flex; align-items: center; justify-content: center; gap: 1.1rem; margin: .3rem 0; }
.om-arw { width: 2.1rem; height: 2.1rem; border: 1px solid var(--om-rule); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--om-red); text-decoration: none; }
.om-date { font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 500; margin: 0; }
.om-jump { font-size: .8rem; }

/* --- Saint list --- */
.om-saint-list { list-style: none; margin: 0; padding: 0; }
.om-row { display: flex; gap: 1rem; align-items: baseline; padding: .8rem .25rem; border-top: 1px solid var(--om-rule); }
.om-num { width: 1.4rem; flex: 0 0 auto; text-align: right; font-size: .8rem; color: var(--om-muted); }
.om-dot { width: .55rem; height: .55rem; border-radius: 50%; flex: 0 0 auto; background: var(--om-ac, var(--om-white)); align-self: center; }
.om-row-main { flex: 1; }
.om-row-name { font-size: 1.15rem; text-decoration: none; color: inherit; }
.om-row-name:hover { text-decoration: underline; }
.om-row-meta { display: block; font-size: .78rem; letter-spacing: .03em; color: var(--om-muted); margin-top: .15rem; }

/* --- Browse directory --- */
.om-browse { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--om-rule); }
.om-browse-h { font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--om-muted); text-align: center; }
.om-search { display: flex; max-width: 28rem; margin: 0 auto 1.5rem; }
.om-search input[type="search"] { flex: 1; padding: .6rem .8rem; border: 1px solid var(--om-rule); border-right: none; border-radius: .5rem 0 0 .5rem; }
.om-search button { padding: 0 1.1rem; border: 1px solid var(--om-red); background: var(--om-red); color: #fff; border-radius: 0 .5rem .5rem 0; cursor: pointer; }
.om-tax-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
.om-tcard { display: block; border: 1px solid var(--om-rule); border-radius: .6rem; padding: 1rem 1.1rem; text-decoration: none; color: inherit; }
.om-tcard:hover { border-color: var(--om-rose); }
.om-tcard-t { display: block; font-size: 1.1rem; margin-bottom: .25rem; }
.om-tcard-ex { display: block; font-size: .78rem; color: var(--om-muted); }

/* --- Term index --- */
.om-termlist { list-style: none; padding: 0; columns: 2; gap: 2rem; }
.om-termlist li { break-inside: avoid; padding: .3rem 0; }
.om-termcount { color: var(--om-muted); font-size: .8rem; }

/* --- Single-page footer blocks --- */
.om-other-commem { margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid var(--om-rule); }
.om-other-commem ul { list-style: none; padding: 0; }
.om-other-date { color: var(--om-muted); font-size: .82rem; }
.om-latin { margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid var(--om-rule); color: var(--om-muted); font-style: italic; }
.om-latin-h { font-style: normal; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }

@media (max-width: 760px) {
	.om-tax-grid { grid-template-columns: 1fr 1fr; }
	.om-termlist { columns: 1; }
}
