/* Christmas carol pages: layouts/_partials/charts/pages/carol.html and carols-hub.html (scripts: static/js/carols.js).
   Kept in its own file so adding the pages does not change extras.css / chart-print.css, which every chart page links. */

/* ---- at a glance ---------------------------------------------------------------------------------------------- */
.mtp-cl-glance { margin: 0 0 22px; }
.mtp-cl-glance > h2 { margin: 0 0 8px; }
.mtp-cl-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 0 26px; margin: 0; padding: 0; }
.mtp-cl-facts > div { padding: 8px 0; border-bottom: 1px solid var(--mtp-line); min-width: 0; }
.mtp-cl-facts dt { margin: 0; color: var(--mtp-muted); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; }
.mtp-cl-facts dd { margin: 2px 0 0; font-size: 15.5px; line-height: 1.45; }
.mtp-cl-facts a { color: var(--mtp-brass-bright); }

/* ---- the play bar --------------------------------------------------------------------------------------------- */
.mtp-cl-player { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 20px; padding: 12px 16px; background: var(--mtp-raised); border: 1px solid var(--mtp-line); border-left: 3px solid var(--mtp-brass); border-radius: 2px; }
.mtp-cl-player[hidden] { display: none; }
.mtp-cl-playbtn { padding: 10px 18px; font-size: 16px; min-height: 44px; }
.mtp-cl-player label { font-size: 14px; color: var(--mtp-muted); display: inline-flex; align-items: center; gap: 6px; }
.mtp-cl-player select { font-size: 14px; padding: 6px 8px; min-height: 36px; max-width: 100%; }
.mtp-cl-player label { max-width: 100%; flex-wrap: wrap; }
.mtp-cl-player input[type=checkbox], .mtp-cl-player input[type=radio] { width: 18px; height: 18px; }
.mtp-cl-labels { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0; padding: 0; border: 0; }
.mtp-cl-labels legend { float: left; padding: 0 10px 0 0; font-size: 14px; color: var(--mtp-muted); }
.mtp-cl-player > .mtp-chart-small { flex: 1 1 100%; margin: 0; }

/* ---- the printable sheets ------------------------------------------------------------------------------------- */
.mtp-cl-sheet .mtp-cl-page { font-size: 14px; font-weight: 400; color: #333; font-family: "Source Sans 3", sans-serif; }
.mtp-cl-line { display: flex; flex-wrap: wrap; gap: 2px 20px; margin: 0 0 6px; font-size: 13px; line-height: 1.4; color: #222; }
.mtp-cl-line b { font-weight: 700; margin-right: 4px; }
.mtp-cl-staff { margin: 4px auto 4px; max-width: 680px; }
.mtp-cl-system { margin: 0; line-height: 0; }
.mtp-cl-system svg { display: block; max-width: 100%; height: auto; }
.mtp-cl-staff text.cl-name { font-family: "Source Sans 3", -apple-system, "Segoe UI", sans-serif; }
.mtp-cl-staff text.cl-chord { font-family: "Source Sans 3", -apple-system, "Segoe UI", sans-serif; }
.mtp-cl-staff .cl-now path, .mtp-cl-staff .cl-now rect { fill: #c2791c !important; stroke: #c2791c !important; }
.mtp-cl-staff .cl-now text { fill: #c2791c !important; }
.mtp-cl-scale { margin-top: 8px; }
@media (max-width: 640px) {
  .mtp-cl-sheet.mtp-ws { padding: 16px 12px 14px; }
  .mtp-cl-sheet .mtp-ws-head h2 { font-size: 24px; }
}

/* ---- text blocks under the sheets ----------------------------------------------------------------------------- */
.mtp-cl-block { margin: 0 0 30px; }
.mtp-cl-block > h2 { margin: 0 0 8px; }
.mtp-cl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.mtp-cl-table { width: 100%; }
.mtp-cl-table .mtp-cl-letters { font-weight: 600; letter-spacing: .02em; }
.mtp-cl-table th .mtp-chart-small { display: block; font-weight: 400; margin-top: 2px; }
.mtp-cl-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.mtp-cl-diffrow td { font-size: 13.5px; color: var(--mtp-muted); background: transparent; }
.mtp-cl-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 8px 36px; }
.mtp-cl-cols h3 { margin: 6px 0 2px; }
.mtp-cl-bars { list-style: none; margin: 8px 0 12px; padding: 0; }
.mtp-cl-bars li { display: grid; grid-template-columns: 10.5em 1fr 5.5em; align-items: center; gap: 10px; padding: 3px 0; font-size: 14.5px; }
.mtp-cl-bl { color: var(--mtp-paper); }
.mtp-cl-bt { display: block; height: 10px; background: rgba(255, 255, 255, .06); border: 1px solid var(--mtp-line); }
.mtp-cl-bt i { display: block; height: 100%; background: var(--mtp-brass); }
.mtp-cl-bv { color: var(--mtp-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mtp-cl-bv strong { color: var(--mtp-paper); }
@media (max-width: 520px) { .mtp-cl-bars li { grid-template-columns: 1fr 5.5em; } .mtp-cl-bt { grid-column: 1 / -1; grid-row: 2; } }

.mtp-cl-verses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 4px 28px; }
.mtp-cl-grp { margin: 16px 0 4px; font-size: 1.25rem; }
.mtp-cl-verse h4 { margin: 10px 0 2px; font-size: 1.05rem; color: var(--mtp-brass-bright); }
.mtp-cl-verse p { margin: 0; line-height: 1.6; font-size: 16px; }
.mtp-cl-src { margin-top: 12px; }
.mtp-cl-src a { color: var(--mtp-brass-bright); }

.mtp-cl-faq h3 { margin: 18px 0 4px; font-size: 1.15rem; }
.mtp-cl-faq p { margin: 0 0 6px; max-width: 74ch; line-height: 1.65; }

/* ---- the hub: the list of carols ------------------------------------------------------------------------------ */
.mtp-cl-hubtable { width: 100%; border-collapse: collapse; }
.mtp-cl-hubtable th, .mtp-cl-hubtable td { vertical-align: top; }
.mtp-cl-hubtable .mtp-cl-title { font-family: "Cormorant Garamond", serif; font-size: 1.15rem; font-weight: 600; }
.mtp-cl-sub { display: block; font-size: 12.5px; color: var(--mtp-muted); font-weight: 400; margin-top: 2px; line-height: 1.4; }
.mtp-cl-lvl { display: inline-block; padding: 1px 8px; border: 1px solid var(--mtp-line); border-radius: 10px; font-size: 12.5px; white-space: nowrap; }
.mtp-cl-lvl-Easy { border-color: #4a9a3c; color: #8fd47f; }
.mtp-cl-lvl-Medium { border-color: #c2791c; color: #e0bd72; }
.mtp-cl-lvl-Harder { border-color: #b3362f; color: #e58d86; }
.mtp-cl-cards { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); gap: 14px; }
.mtp-cl-cards li { background: var(--mtp-raised); border: 1px solid var(--mtp-line); border-top: 3px solid var(--mtp-brass); padding: 12px 14px; }
.mtp-cl-cards h3 { margin: 0 0 4px; font-size: 1.2rem; }
.mtp-cl-cards h3 a { color: var(--mtp-paper); text-decoration: none; }
.mtp-cl-cards p { margin: 0 0 4px; font-size: 14px; color: var(--mtp-muted); line-height: 1.5; }
.mtp-cl-cards .mtp-cl-notes { color: var(--mtp-paper); letter-spacing: .03em; font-weight: 600; }
.mtp-cl-hubsheet { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.mtp-cl-hubsheet th, .mtp-cl-hubsheet td { padding: 3px 5px; border-bottom: 1px solid #bbb; text-align: left; vertical-align: top; }
.mtp-cl-hubsheet thead th { border-bottom: 2px solid #111; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.mtp-cl-hubsheet .mtp-cl-title { font-family: "Cormorant Garamond", serif; font-size: 14px; font-weight: 700; }

@media print {
  .mtp-cl-sheet .mtp-cl-staff { margin: 2pt 0; }
  .mtp-cl-system svg { width: 100%; height: auto; }
  .mtp-cl-line { font-size: 8.5pt; gap: 1pt 12pt; margin-bottom: 4pt; }
  .mtp-cl-sheet .mtp-ws-head h2 { font-size: 20pt; }
  .mtp-cl-sheet .mtp-ws-credit { font-size: 7.5pt; }
  .mtp-cl-hubsheet { font-size: 8pt; }
  .mtp-cl-hubsheet thead th { font-size: 7.5pt; }
  .mtp-cl-hubsheet .mtp-cl-title { font-size: 9.5pt; }
}

/* ---- range chart on the hub ------------------------------------------------------------------------------------ */
.mtp-cl-range { margin: 14px 0 8px; }
.mtp-cl-range-axis { position: relative; height: 18px; margin-left: 238px; font-size: 11.5px; color: var(--mtp-muted); }
.mtp-cl-range-axis span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.mtp-cl-range-row { display: grid; grid-template-columns: 230px 1fr; gap: 8px; align-items: center; padding: 3px 0; }
.mtp-cl-range-name { font-size: 14.5px; color: var(--mtp-paper); }
.mtp-cl-range-track { position: relative; display: block; height: 24px; background: rgba(255, 255, 255, .04); border: 1px solid var(--mtp-line); }
.mtp-cl-tick { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--mtp-line); }
.mtp-cl-range-track b { position: absolute; top: 3px; bottom: 3px; display: flex; justify-content: space-between; align-items: center; background: var(--mtp-brass); color: #161209; min-width: 2px; }
.mtp-cl-range-track b em { font-style: normal; font-size: 11px; font-weight: 700; padding: 0 4px; white-space: nowrap; }
@media (max-width: 640px) {
  .mtp-cl-range-axis { margin-left: 0; }
  .mtp-cl-range-row { grid-template-columns: 1fr; gap: 2px; padding: 5px 0; }
}
