/* Rites & Liturgy (v19). Text uses the site's palette tokens (>= 4.5:1 in both themes); map fills are
   generated below by tools/build_rites.py to reach >= 3:1 against land and sea in each theme, and are
   always paired with a hatch pattern and a text list (tests/test_rites.py checks both). */
/* palette:start (generated by tools/build_rites.py; do not edit by hand) */
:root{--rm-sea:#e3ebee;--rm-land:#d9cfb9;--rm-border:#a39477;--rm-fill-lat:#0072b2;--rm-ink-lat:#00314c;--rm-fill-alex:#b64584;--rm-ink-alex:#6c294e;--rm-fill-ant:#007f5d;--rm-ink-ant:#001f16;--rm-fill-arm:#1676ac;--rm-ink-arm:#0a3852;--rm-fill-chal:#b85100;--rm-ink-chal:#522400;--rm-fill-byz:#946700;--rm-ink-byz:#2e2000}
[data-theme=dark]{--rm-sea:#0f131a;--rm-land:#3b414d;--rm-border:#646c7c;--rm-fill-lat:#0097eb;--rm-ink-lat:#7bd0ff;--rm-fill-alex:#cc79a7;--rm-ink-alex:#f3e0eb;--rm-fill-ant:#00a477;--rm-ink-ant:#34ffc7;--rm-fill-arm:#56b4e9;--rm-ink-arm:#d4ecf9;--rm-fill-chal:#ed6900;--rm-ink-chal:#ffb67d;--rm-fill-byz:#e69f00;--rm-ink-byz:#ffd576}
/* palette:end */
.rites-page .section-intro{max-width:72ch}
.rites-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin:18px 0 26px}
@media(min-width:1100px){.rites-layout{grid-template-columns:minmax(0,1fr) 430px;align-items:start}.rites-aside{position:sticky;top:12px}}
.rites-table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:13.5px;line-height:1.4}
.rites-table caption{text-align:left;font:600 16px var(--serif);color:var(--ink);padding:0 0 8px}
.rites-table th,.rites-table td{text-align:left;vertical-align:top;padding:7px 8px;border-bottom:1px solid var(--line)}
.rites-table thead th{font-weight:600;color:var(--ink2);background:var(--bg2)}
.rites-table tbody th{font-weight:600}.rites-table tbody th a{text-decoration:none}
.rites-table .small{font-size:12px}
.rites-show{margin-top:4px;font:500 12px var(--sans);padding:3px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);cursor:pointer}
.rites-show:hover{border-color:var(--rubric)}
.rites-show:focus-visible,.rmap select:focus-visible,.rmap input:focus-visible,.table-wrap:focus-visible{outline:2px solid var(--rubric);outline-offset:2px}
.rites-nyv{font-style:italic;color:var(--muted)}
.rites-unv{display:inline-block;font:600 11px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--rubric);border:1px solid currentColor;border-radius:4px;padding:0 4px;vertical-align:1px}
.rsrc{font:12px var(--sans);color:var(--muted)}.rsrc a{color:var(--ink2)}
.rites-terms h3{font-size:17px;margin:14px 0 6px}
.rites-page .panel{margin:18px 0}
.rites-facts{display:grid;gap:0;margin:16px 0}
.rites-facts>div{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:4px 16px;padding:9px 0;border-top:1px solid var(--line)}
.rites-facts>div:first-child{border-top:0}
.rites-facts dt{font:600 13.5px var(--sans);color:var(--ink2)}.rites-facts dd{margin:0}
@media(max-width:640px){.rites-facts>div{grid-template-columns:minmax(0,1fr)}}
.rites-ms{padding-left:20px}.rites-ms li{margin:6px 0}.rites-when{font-weight:600;font-family:var(--sans);font-size:14px}
.rites-res{list-style:none;padding:0}.rites-res li{padding:8px 0;border-top:1px solid var(--line)}.rites-res li:first-child{border-top:0}
/* map */
.rmap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 14px 10px}
.rmap h2{font-size:20px;margin:0 0 8px}
.rmap-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0 0 8px;font-family:var(--sans);font-size:14px}
.rmap-controls[hidden]{display:none}
.rmap-sel{display:grid;gap:4px}.rmap-sel span{font-weight:600;color:var(--ink2);font-size:13px}
.rmap select{font:inherit;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);width:100%;max-width:100%;min-width:0}
.rmap-view{border:0;padding:0;margin:0;min-width:0;display:flex;flex-wrap:wrap;gap:4px 14px}.rmap-view legend{font-weight:600;color:var(--ink2);font-size:13px;padding:0;margin-bottom:2px}
.rmap-view label{display:inline-flex;align-items:center;gap:6px;min-height:32px}
.rmap-status{margin:2px 0 6px}
.rmap-fig{margin:0}
.rmap-svg svg{display:block;width:100%;height:auto;border-radius:6px}
.rm-sea{fill:var(--rm-sea)}
.rm-land path{fill:var(--rm-land);stroke:var(--rm-border);stroke-width:.35;stroke-linejoin:round}
.rmap-inset .rm-land path{stroke-width:.8}
.rm-locbox{fill:none;stroke:var(--ink);stroke-width:.8;stroke-dasharray:2 1.5}
.rm-loclbl{fill:var(--ink);font:700 10px var(--sans)}
.rm-region{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-dasharray:3 2}
.rm-regionlbl{fill:var(--ink);font:700 10px var(--sans);paint-order:stroke;stroke:var(--rm-land);stroke-width:2.5px}
.rm-clbl{fill:var(--ink);font:700 10px var(--sans);paint-order:stroke;stroke:var(--rm-land);stroke-width:3px;stroke-linejoin:round}
.rmap-insets{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.rmap-inset{margin:0;flex:1 1 110px;max-width:180px}
.rmap-inset svg{display:block;width:100%;height:auto;max-height:170px;border-radius:4px}
.rmap-inset figcaption{font:500 12px/1.3 var(--sans);color:var(--ink2);margin-top:3px}
.rmap-info{font-family:var(--sans);font-size:14px;margin-top:6px}
.rmap-cap{margin:4px 0}
.rmap-legend{display:flex;gap:8px;align-items:center;margin:6px 0}
.rm-sw{flex:none;border:1px solid var(--rm-border);border-radius:3px}
.rmap-list summary{cursor:pointer;font-weight:600;color:var(--ink2)}
.rmap-countries{columns:2 140px;margin:6px 0;padding-left:18px}
.rmap-disclaimer{margin:8px 0 0}
.rmf-lat{fill:var(--rm-fill-lat)}.rmi-lat{fill:var(--rm-ink-lat)}.rmx-lat{stroke:var(--rm-ink-lat);stroke-width:1.2}
.rmap[data-fam=lat][data-view=present] .rm-land path.on{fill:url(#rmp-lat)}.rmap[data-fam=lat][data-view=heartland] .rm-land path.on{fill:url(#rmh-lat)}
.rmf-alex{fill:var(--rm-fill-alex)}.rmi-alex{fill:var(--rm-ink-alex)}.rmx-alex{stroke:var(--rm-ink-alex);stroke-width:1.2}
.rmap[data-fam=alex][data-view=present] .rm-land path.on{fill:url(#rmp-alex)}.rmap[data-fam=alex][data-view=heartland] .rm-land path.on{fill:url(#rmh-alex)}
.rmf-ant{fill:var(--rm-fill-ant)}.rmi-ant{fill:var(--rm-ink-ant)}.rmx-ant{stroke:var(--rm-ink-ant);stroke-width:1.2}
.rmap[data-fam=ant][data-view=present] .rm-land path.on{fill:url(#rmp-ant)}.rmap[data-fam=ant][data-view=heartland] .rm-land path.on{fill:url(#rmh-ant)}
.rmf-arm{fill:var(--rm-fill-arm)}.rmi-arm{fill:var(--rm-ink-arm)}.rmx-arm{stroke:var(--rm-ink-arm);stroke-width:1.2}
.rmap[data-fam=arm][data-view=present] .rm-land path.on{fill:url(#rmp-arm)}.rmap[data-fam=arm][data-view=heartland] .rm-land path.on{fill:url(#rmh-arm)}
.rmf-chal{fill:var(--rm-fill-chal)}.rmi-chal{fill:var(--rm-ink-chal)}.rmx-chal{stroke:var(--rm-ink-chal);stroke-width:1.2}
.rmap[data-fam=chal][data-view=present] .rm-land path.on{fill:url(#rmp-chal)}.rmap[data-fam=chal][data-view=heartland] .rm-land path.on{fill:url(#rmh-chal)}
.rmf-byz{fill:var(--rm-fill-byz)}.rmi-byz{fill:var(--rm-ink-byz)}.rmx-byz{stroke:var(--rm-ink-byz);stroke-width:1.2}
.rmap[data-fam=byz][data-view=present] .rm-land path.on{fill:url(#rmp-byz)}.rmap[data-fam=byz][data-view=heartland] .rm-land path.on{fill:url(#rmh-byz)}
/* narrow screens: each row becomes a card with one labelled line per column (as on /licensing/), nothing hidden */
@media(max-width:720px){
  .rites-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .rites-table,.rites-table tbody,.rites-table tr,.rites-table th,.rites-table td{display:block;width:100%}
  .rites-table caption{display:block}
  .rites-table tr{border:1px solid var(--line);border-radius:8px;padding:6px 4px;margin:0 0 10px;background:var(--card)}
  .rites-table th,.rites-table td{border-bottom:0;padding:4px 8px}
  .rites-table tbody th{font-size:15px}
  .rites-table td::before{content:attr(data-label);display:block;font-weight:600;font-size:12px;color:var(--ink2)}
  .rmap-inset{flex-basis:90px}
}
.rites-page{overflow-wrap:break-word}
@media(max-width:720px){.rites-page{overflow-wrap:anywhere}}
.rites-record .rmap{max-width:860px}
.rites-record .rmap-insets{max-width:600px}

/* Nav: the second row must not wrap more than it did before v19 */
@media (min-width:721px) and (max-width:1199px){.nav-secondary .nav-long{display:none}}
@media (min-width:721px) and (max-width:1040px){.nav-secondary{column-gap:3px}.nav-secondary a{padding-left:3px;padding-right:3px}}
