/* Cantos para Misa — tema v2 (sistema de diseño "Cantos para Misa", dirección moderna).
   Fuente: diseno/sistema-claude-design. Se carga en todo el sitio desde cpm-tema.php. */
:root{
  --purple:#5A3F99;--purple-deep:#3B2870;--on-purple:#FFFFFF;--on-purple-deep:#FFFFFF;
  --gold:#FFB300;--on-gold:#2A1D4D;--gold-tint:#FFF4D6;--on-gold-tint:#6B4E2E;
  --lavender:#B4B2D9;--lavender-tint:#EEEDF7;--ground:#FBFAFE;--surface:#FFFFFF;
  --ink:#1F1830;--ink-muted:#5E5672;--line:#E4E1EF;--line-strong:#8C86B0;--focus:#5A3F99;
  --lit-morado:#7A3E9D;--lit-verde:#2E7D4F;--lit-blanco:#8A6400;--lit-rojo:#B3261E;--lit-rosa:#B4467A;
  --bar-bg:#1F1830;--bar-text:#FFFFFF;--bar-muted:#DCD6F0;--bar-fill:rgba(255,255,255,0.08);
  --chip-on:#1F1830;--on-chip-on:#FFFFFF;
  --font-display:Rubik,"Trebuchet MS",system-ui,sans-serif;
  --font-text:"Atkinson Hyperlegible",Verdana,system-ui,sans-serif;
  --fs-display:34px;--lh-display:36px;--fs-display-lg:60px;--lh-display-lg:62px;--ls-tight:-0.02em;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;
  --radius-sm:6px;--radius-md:14px;--radius-lg:22px;--radius-xl:28px;--radius-2xl:36px;--radius-pill:999px;
  --shadow-card:0 1px 2px rgba(31,24,48,.06),0 4px 12px rgba(31,24,48,.06);--shadow-float:0 8px 24px rgba(31,24,48,.25);
  --tap-min:44px;--bar-inset:12px;--bar-bottom:16px;--content-max:1200px;--sheet-max:760px;--duration-fast:150ms;
}
/* Cantos para Misa — clases de componentes (prefijo cpm-). Las usan los componentes React y el sitio en Elementor. */
.cpm { font-family: var(--font-text); color: var(--ink); background: var(--ground); font-size: 17px; line-height: 26px; }
.cpm *, .cpm *::before, .cpm *::after { box-sizing: border-box; }
.cpm :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Button */
.cpm-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--tap-min); padding: var(--space-3) 22px; border-radius: var(--radius-pill); border: 1.5px solid transparent; font-family: var(--font-display); font-size: 16px; line-height: 20px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s; }
.cpm-btn--primary { background: var(--purple); color: var(--on-purple); }
.cpm-btn--primary:hover { background: var(--purple-deep); color: var(--on-purple-deep); }
.cpm-btn--action { background: var(--gold); color: var(--on-gold); }
.cpm-btn--action:hover { filter: brightness(0.95); }
.cpm-btn--secondary { background: transparent; color: var(--purple); border-color: var(--line-strong); }
.cpm-btn--secondary:hover { border-color: var(--purple); background: var(--lavender-tint); }
.cpm-btn--sm { min-height: 36px; padding: 6px 14px; font-size: 14px; }
.cpm-btn--lg { min-height: 52px; padding: 14px 26px; font-size: 16px; font-weight: 700; }
.cpm-btn--dark { background: var(--bar-bg); color: var(--bar-text); }
.cpm-btn svg { width: 18px; height: 18px; flex: none; }

/* Chip (filtros: momento, tiempo) */
.cpm-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.cpm-chips--scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.cpm-chip { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); padding: 0 18px; border-radius: var(--radius-pill); border: 1.5px solid var(--line-strong); background: var(--surface); color: var(--ink); font-family: var(--font-display); font-size: 15px; font-weight: 500; white-space: nowrap; cursor: pointer; text-decoration: none; }
.cpm-chip:hover { border-color: var(--purple); color: var(--purple); }
.cpm-chip[aria-pressed="true"] { background: var(--chip-on); border-color: var(--chip-on); color: var(--on-chip-on); font-weight: 600; }
.cpm-chip[aria-current] { background: var(--gold); border-color: var(--gold); color: var(--on-gold); font-weight: 600; }
.cpm-chip__count { font-family: var(--font-text); font-size: 13px; color: var(--ink-muted); }
.cpm-chip[aria-pressed="true"] .cpm-chip__count { color: var(--on-chip-on); }
.cpm-chip[aria-current] .cpm-chip__count { color: var(--on-gold); }

/* LiturgicalTag */
.cpm-lit { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px 2px 8px; border-radius: var(--radius-pill); background: var(--surface); border: 1px solid var(--line); font-family: var(--font-display); font-size: 13px; line-height: 20px; font-weight: 600; color: var(--lit, var(--ink-muted)); }
.cpm-lit::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.cpm-lit--morado { --lit: var(--lit-morado); }
.cpm-lit--verde { --lit: var(--lit-verde); }
.cpm-lit--blanco { --lit: var(--lit-blanco); }
.cpm-lit--rojo { --lit: var(--lit-rojo); }
.cpm-lit--rosa { --lit: var(--lit-rosa); }
.cpm-moment { display: inline-flex; align-items: center; padding: 2px 12px; border-radius: var(--radius-pill); background: var(--lavender-tint); color: var(--purple); font-family: var(--font-display); font-size: 13px; line-height: 20px; font-weight: 600; text-decoration: none; }

/* SongCard */
.cpm-song { position: relative; display: grid; gap: var(--space-2); padding: var(--space-4) var(--space-4) var(--space-4) var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.cpm-song:hover { box-shadow: var(--shadow-card); border-color: var(--lavender); }
.cpm-song__title { margin: 0; font-family: var(--font-display); font-size: 19px; line-height: 26px; font-weight: 600; color: var(--ink); }
.cpm-song__title a { color: inherit; text-decoration: none; }
.cpm-song__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-lg); }
.cpm-song__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.cpm-song__key { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 6px; border-radius: var(--radius-md); background: var(--purple); color: var(--on-purple); font-family: var(--font-display); font-size: 14px; font-weight: 700; }
.cpm-song__by { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.cpm-songlist { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* SearchBar */
.cpm-search { display: flex; align-items: center; gap: var(--space-2); padding: 6px 6px 6px var(--space-4); background: var(--surface); border: 1.5px solid var(--line-strong); border-radius: var(--radius-pill); }
.cpm-search:focus-within { border-color: var(--purple); outline: 2px solid var(--focus); outline-offset: 2px; }
.cpm-search svg { width: 20px; height: 20px; color: var(--ink-muted); flex: none; }
.cpm-search input { flex: 1; min-width: 0; min-height: 40px; border: 0; outline: 0; background: transparent; font-family: var(--font-text); font-size: 17px; color: var(--ink); }
.cpm-search input::placeholder { color: var(--ink-muted); }

/* MassPath (recorrido de la misa) */
.cpm-mass { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); counter-reset: paso; }
.cpm-mass__step a { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 14px 8px 8px; border-radius: var(--radius-pill); background: var(--surface); border: 1.5px solid var(--line); color: var(--ink); text-decoration: none; font-family: var(--font-display); font-size: 15px; font-weight: 500; line-height: 18px; }
.cpm-mass__step a::before { counter-increment: paso; content: counter(paso); flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--lavender-tint); color: var(--purple); font-weight: 700; font-size: 14px; }
.cpm-mass__step a:hover { border-color: var(--purple); }
.cpm-mass__step a[aria-current]::before { background: var(--gold); color: var(--on-gold); }
.cpm-mass__step a[aria-current] { border-color: var(--gold); font-weight: 600; }
.cpm-mass__n { margin-left: auto; font-family: var(--font-text); font-size: 13px; color: var(--ink-muted); }

/* ChordSheet */
.cpm-sheet { position: relative; max-width: var(--sheet-max); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); }
.cpm-sheet__tools { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); padding: var(--space-2); background: var(--lavender-tint); border-radius: var(--radius-md); }
.cpm-stepper { display: inline-flex; align-items: center; border: 1.5px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface); overflow: hidden; }
.cpm-stepper button { width: var(--tap-min); height: 40px; border: 0; background: transparent; color: var(--purple); font: 600 20px/1 var(--font-display); cursor: pointer; }
.cpm-stepper button:hover { background: var(--lavender-tint); }
.cpm-stepper output { min-width: 64px; text-align: center; font: 600 14px/1.1 var(--font-display); color: var(--ink); }
.cpm-stepper output small { display: block; font: 500 11px/1.2 var(--font-display); color: var(--ink-muted); letter-spacing: .04em; text-transform: uppercase; }
.cpm-sheet__body { padding: var(--space-6) var(--space-4); font-size: calc(19px * var(--cpm-scale, 1)); }
.cpm-section { display: inline-block; margin: var(--space-6) 0 var(--space-2); padding: 3px 10px; border-radius: var(--radius-sm); background: var(--lavender); color: var(--purple-deep); font: 600 13px/16px var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
[data-theme="dark"] .cpm-section { color: var(--on-purple-deep); }
.cpm-line { display: flex; flex-wrap: wrap; align-items: flex-end; row-gap: 4px; margin: 0 0 var(--space-3); }
.cpm-seg { display: inline-flex; flex-direction: column; white-space: pre; }
.cpm-seg__chord { min-height: 1.25em; padding-right: .5em; font: 600 0.84em/1.25 var(--font-display); color: var(--purple); }
.cpm-seg__lyric { font-family: var(--font-text); line-height: 1.45; color: var(--ink); }
.cpm-sheet--play { background: var(--ground); }

/* ProductCard */
.cpm-product { display: grid; grid-template-rows: auto 1fr auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; padding: 12px; gap: 8px; }
.cpm-product:hover { box-shadow: var(--shadow-card); }
.cpm-product__img { aspect-ratio: 1 / 1; max-width: 100%; display: grid; place-items: center; background: var(--lavender-tint); border-radius: 16px; overflow: hidden; }
.cpm-product__img img { width: 100%; height: 100%; object-fit: contain; }
.cpm-product__body { display: grid; gap: 6px; padding: 4px; align-content: start; }
.cpm-product__cat { font: 600 12px/16px var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.cpm-product__name { margin: 0; font: 600 17px/22px var(--font-display); color: var(--ink); }
.cpm-product__why { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.cpm-product__cta { padding: 0; }
.cpm-product__cta .cpm-btn { width: 100%; }
.cpm-disclosure { font-size: 13px; line-height: 18px; color: var(--ink-muted); }

/* ---------- Dirección moderna (v2) ---------- */

/* Coro marcado */
.cpm-section--chorus { background: var(--gold); color: var(--on-gold); }
.cpm-line--chorus { padding-left: 14px; border-left: 3px solid var(--gold); }
.cpm-line--chorus .cpm-seg__lyric { font-weight: 700; }

/* SongRow: fila de canto con insignia de tono y código */
.cpm-rows { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.cpm-row { display: flex; align-items: center; gap: 14px; min-height: 68px; padding: 12px 16px; color: var(--ink); text-decoration: none; }
.cpm-row + .cpm-row { border-top: 1px solid var(--line); }
.cpm-row:hover { background: var(--lavender-tint); }
.cpm-row__key { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radius-md); background: var(--purple); color: var(--on-purple); font: 700 16px var(--font-display); }
.cpm-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cpm-row__eyebrow { font: 600 12px/16px var(--font-display); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-muted); }
.cpm-row__title { font: 600 17px/22px var(--font-display); }
.cpm-row__sub { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.cpm-code { flex: none; padding: 2px 8px; border-radius: var(--radius-sm); background: var(--bar-bg); color: var(--bar-text); font: 700 12px/18px var(--font-display); letter-spacing: .06em; }
.cpm-code--quiet { background: transparent; color: var(--ink-muted); padding: 0; }

/* SongMeta: ficha del canto */
.cpm-meta { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.cpm-meta__row { display: flex; gap: 12px; align-items: baseline; padding: 12px 16px; }
.cpm-meta__row + .cpm-meta__row { border-top: 1px solid var(--line); }
.cpm-meta__label { flex: none; width: 104px; font: 600 13px var(--font-display); color: var(--ink-muted); }
.cpm-meta__value { font-size: 15px; line-height: 21px; }
.cpm-meta__strum { font: 700 18px var(--font-display); letter-spacing: .15em; color: var(--purple); }

/* MassGrid: "Arma tu misa" en bloques */
.cpm-bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cpm-bento__tile { display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; min-height: 92px; padding: 14px 16px; border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.cpm-bento__tile:hover { border-color: var(--purple); }
.cpm-bento__n { font: 700 12px var(--font-display); color: var(--purple); }
.cpm-bento__name { font: 600 17px/20px var(--font-display); }
.cpm-bento__count { font-size: 13px; color: var(--ink-muted); }
.cpm-bento__tile--lead { grid-column: span 2; min-height: 112px; background: var(--lavender-tint); border-color: transparent; }
.cpm-bento__tile--lead .cpm-bento__name { font: 700 24px/26px var(--font-display); }
.cpm-bento__tile--current { background: var(--gold); border-color: var(--gold); color: var(--on-gold); }
.cpm-bento__tile--current .cpm-bento__n, .cpm-bento__tile--current .cpm-bento__count { color: var(--on-gold); }
.cpm-bento__tile--wide { grid-column: span 2; min-height: 64px; }
@media (min-width: 900px) { .cpm-bento { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; } .cpm-bento__tile--lead { grid-row: span 2; } .cpm-bento__tile--wide { grid-column: auto; } }

/* SundayHero: panel principal */
.cpm-hero { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; padding: 24px 20px 20px; border-radius: var(--radius-xl); background: var(--purple-deep); color: #FFFFFF; }
.cpm-hero--season { background: var(--hero-season, var(--lit-verde)); }
.cpm-hero__eyebrow { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: var(--radius-pill); background: rgba(255,255,255,0.14); font: 600 13px/16px var(--font-display); }
.cpm-hero__title { margin: 0; font: 800 var(--fs-display)/var(--lh-display) var(--font-display); letter-spacing: var(--ls-tight); }
.cpm-hero__sub { margin: 0; font-size: 16px; line-height: 22px; color: #DCD6F0; }
.cpm-hero__disc { position: absolute; right: -36px; top: -36px; width: 132px; height: 132px; border-radius: 50%; background: var(--gold); }
@media (min-width: 900px) { .cpm-hero { padding: 44px 48px; border-radius: var(--radius-2xl); } .cpm-hero__title { font-size: var(--fs-display-lg); line-height: var(--lh-display-lg); } }

/* Barras flotantes oscuras */
.cpm-floatbar { position: fixed; left: var(--bar-inset); right: var(--bar-inset); bottom: calc(var(--bar-bottom) + env(safe-area-inset-bottom, 0px)); z-index: 50; background: var(--bar-bg); color: var(--bar-text); border-radius: 24px; box-shadow: var(--shadow-float); transition: transform var(--duration-fast) ease; }
.cpm-floatbar--hidden { transform: translateY(calc(100% + 32px)); }
.cpm-floatbar--inline { position: relative; left: auto; right: auto; bottom: auto; }

/* BottomNav (celular) */
.cpm-bottomnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 6px; }
.cpm-bottomnav a { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 52px; justify-content: center; border-radius: 18px; color: var(--bar-muted); font: 500 11px var(--font-display); text-decoration: none; }
.cpm-bottomnav a[aria-current] { background: var(--gold); color: var(--on-gold); font-weight: 600; }
.cpm-bottomnav svg { width: 22px; height: 22px; }
@media (min-width: 900px) { .cpm-bottomnav { display: none; } }

/* SongToolbar: panel de tono y pestañas */
.cpm-tools { display: flex; flex-direction: column; gap: 12px; padding: 14px 12px 8px; border-radius: 28px; }
.cpm-tools__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 0 4px; }
.cpm-tools__title { font: 700 16px var(--font-display); }
.cpm-tools__hint { font-size: 13px; color: var(--bar-muted); }
.cpm-keys { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.cpm-keys button { min-height: 44px; border: 0; border-radius: 12px; background: var(--bar-fill); color: var(--bar-text); font: 700 15px var(--font-display); cursor: pointer; }
.cpm-keys button[aria-pressed="true"] { background: var(--gold); color: var(--on-gold); }
.cpm-tabs { display: flex; gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--bar-fill); }
.cpm-tabs button { flex: 1; min-height: 44px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--bar-text); font: 600 14px var(--font-display); cursor: pointer; }
.cpm-tabs button[aria-selected="true"] { background: var(--gold); color: var(--on-gold); }
.cpm-tools__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cpm-tools__step { display: inline-flex; align-items: center; gap: 6px; }
.cpm-tools__step button { min-width: 48px; min-height: 44px; border: 0; border-radius: 12px; background: var(--bar-fill); color: var(--bar-text); font: 700 15px var(--font-display); cursor: pointer; }
.cpm-tools__step output { min-width: 56px; text-align: center; font: 700 15px var(--font-display); }

/* SegmentedToggle */
.cpm-toggle { display: inline-flex; padding: 3px; border-radius: var(--radius-pill); background: var(--lavender-tint); }
.cpm-toggle button { min-height: 36px; padding: 0 12px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ink-muted); font: 600 13px var(--font-display); cursor: pointer; }
.cpm-toggle button[aria-pressed="true"] { background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgba(31,24,48,.12); }
.cpm-tools .cpm-toggle { background: var(--bar-fill); }
.cpm-tools .cpm-toggle button { color: var(--bar-muted); }
.cpm-tools .cpm-toggle button[aria-pressed="true"] { background: var(--bar-text); color: var(--bar-bg); }

@media (prefers-reduced-motion: reduce) { .cpm * { transition: none !important; } }

/* ===================== Sitio (WordPress + Elementor) ===================== */
body.cpm-site{background:var(--ground);color:var(--ink);font-family:var(--font-text)}
.cpm-site .cpm a{text-decoration:none}
.cpm-wrap{width:100%;max-width:var(--content-max);margin:0 auto;padding-inline:var(--space-4);box-sizing:border-box}
.cpm-stack{display:flex;flex-direction:column;gap:var(--space-3)}
.cpm-h2{margin:0;font:700 22px/28px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.cpm-sechead{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.cpm-sechead__aside{font:500 14px var(--font-display);color:var(--ink-muted)}
.cpm-sechead__aside a{color:var(--purple);font-weight:600}
.cpm-label{font:600 13px/16px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
@media (min-width:900px){.cpm-h2{font-size:30px;line-height:36px}}

/* Encabezado y pie (plantillas de Elementor) */
.cpm-site .elementor-location-header{background:var(--surface);border-bottom:1px solid var(--line)}
.cpm-site .elementor-search-form__container{border-radius:var(--radius-pill)!important;overflow:hidden;border:1.5px solid var(--line-strong)!important}
.cpm-site .elementor-search-form__submit{border-radius:var(--radius-pill)!important;background:var(--gold)!important;color:var(--on-gold)!important;font-weight:700}
@media (max-width:899px){.cpm-site .elementor-location-header .elementor-widget-search-form,.cpm-site .elementor-location-header .elementor-widget-search{display:none}}

/* Portada: panel principal */
.cpm-hero__date{position:relative;display:inline-flex;align-items:center;gap:8px}
.cpm-hero__dot{width:9px;height:9px;border-radius:50%;background:#7CCB9C}
.cpm-hero__link{position:relative;color:#fff;text-decoration:underline!important;text-underline-offset:3px;font-size:16px;line-height:22px}
.cpm-hero__search{position:relative;display:flex;align-items:center;gap:8px;max-width:560px;padding:6px 6px 6px 16px;border-radius:var(--radius-pill);background:var(--surface)}
.cpm-hero__search input{flex:1;min-width:0;min-height:44px;border:0!important;outline:0;background:transparent!important;font:400 17px var(--font-text);color:var(--ink);padding:0!important;box-shadow:none!important}
.cpm-hero__search button{flex:none;min-width:48px;min-height:48px;border:0;border-radius:var(--radius-pill);background:var(--gold);color:var(--on-gold);font:700 16px var(--font-display);cursor:pointer;padding:0 20px}
.cpm-hero__grid{display:grid;gap:24px}
.cpm-hero__card{position:relative;background:var(--surface);color:var(--ink);border-radius:24px;overflow:hidden}
.cpm-hero__card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:16px 18px 8px;font:700 17px var(--font-display)}
.cpm-hero__card-head a{color:var(--ink)}
@media (min-width:900px){.cpm-hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center}.cpm-hero__sub{font-size:19px;line-height:28px}}
@media (max-width:899px){.cpm-hero__card{display:none}}

/* Filas de canto (versión sitio) */
.cpm-row__key--small{width:40px;height:40px;font-size:14px}
.cpm-row--empty{color:var(--ink-muted)}
.cpm-row--empty .cpm-row__title{font-weight:500;color:var(--ink-muted)}
.cpm-row__num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--lavender-tint);color:var(--purple);display:grid;place-items:center;font:700 13px var(--font-display)}

/* Tarjetas de tiempo litúrgico */
.cpm-seasons{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.cpm-season{flex:none;width:168px;min-height:128px;box-sizing:border-box;padding:16px;border-radius:var(--radius-lg);color:#fff;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}
.cpm-season:hover{filter:brightness(1.05);color:#fff}
.cpm-season__color{font:500 13px var(--font-display);opacity:.85}
.cpm-season__name{font:700 20px/22px var(--font-display)}
.cpm-season__n{font-size:14px;opacity:.85}
@media (min-width:900px){.cpm-season{width:auto;flex:1;min-height:168px}}

/* Siguiente momento */
.cpm-next{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--purple-deep);color:#fff;text-decoration:none}
.cpm-next:hover{color:#fff;filter:brightness(1.08)}
.cpm-next__eyebrow{font:600 13px var(--font-display);color:var(--gold)}
.cpm-next__name{font:700 22px var(--font-display)}
.cpm-next__arrow{flex:none;width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center}
.cpm-prevnext{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cpm-prev{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.cpm-prev__eyebrow{font:600 13px var(--font-display);color:var(--ink-muted)}
.cpm-prev__name,.cpm-prevnext .cpm-next__name{font:700 18px/22px var(--font-display)}
.cpm-prevnext .cpm-next{flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:4px;padding:16px}

/* Paneles de archivo (momento, tiempo, tema, todos, búsqueda) */
.cpm-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:22px 20px;border-radius:var(--radius-xl);background:var(--panel-bg,var(--purple-deep));color:var(--panel-ink,#fff)}
.cpm-panel__eyebrow{position:relative;font:600 13px var(--font-display);letter-spacing:.06em;text-transform:uppercase;opacity:.9}
.cpm-panel__title{position:relative;margin:0;font:800 40px/42px var(--font-display);letter-spacing:var(--ls-tight);color:inherit}
.cpm-panel__text{position:relative;margin:0;max-width:34em;font-size:16px;line-height:22px}
.cpm-panel__big{position:absolute;right:12px;bottom:-28px;font:800 132px/1 var(--font-display);opacity:.12;pointer-events:none}
@media (min-width:900px){.cpm-panel{padding:40px 44px;border-radius:var(--radius-2xl)}.cpm-panel__title{font-size:56px;line-height:58px}}

/* Página de canto */
.cpm-canto-head{display:flex;flex-direction:column;gap:12px}
.cpm-canto-head__tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cpm-site .elementor-widget-theme-post-title .elementor-heading-title{font-family:var(--font-display);font-weight:800;letter-spacing:var(--ls-tight);color:var(--ink)}
.cpm-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cpm-tile{padding:12px;border-radius:18px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.cpm-tile__label{font:600 12px var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}
.cpm-tile__value{font:700 22px var(--font-display);color:var(--ink)}
.cpm-tile__value--brand{color:var(--purple)}
.cpm-actions{display:flex;gap:8px;flex-wrap:wrap}
.cpm-actions .cpm-btn{flex:1;min-height:52px}

/* Hoja del canto: estilo para ChordPress */
.cpm-site .cpress{font-family:var(--font-text);font-size:calc(19px * var(--cpm-scale,1));color:var(--ink)}
.cpm-site .cpress-interaction,.cpm-site .cpress_interaction{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cpm-site .cpress_line{margin:.55em 0!important}
.cpm-palabra{float:left;display:flex;flex-wrap:wrap}
.cpm-palabra>.cpress_line_section{float:none}
.cpm-site .cpress_line_section .chord{font:700 .84em/1.3 var(--font-display);color:var(--purple)}
.cpm-site .cpress_line_section .lyric{color:var(--ink)!important;line-height:1.45}
.cpm-site span.cpress_comment{display:inline-block;margin-top:1.1em;padding:3px 10px!important;border-radius:var(--radius-sm);background:var(--lavender)!important;color:var(--purple-deep)!important;font:700 12px/16px var(--font-display)!important;letter-spacing:.08em;text-transform:uppercase}
.cpm-site span.cpress_comment.cpm-is-chorus{background:var(--gold)!important;color:var(--on-gold)!important}
.cpm-site .cpm-sheet-card{padding:20px 18px 28px;border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--line)}
@media (min-width:900px){.cpm-site .cpm-sheet-card{padding:36px 48px 44px}}
.cpm-site .single-cantos .elementor-widget-post-comments{display:none}

/* Barra de herramientas del canto (fija abajo) */
.cpm-tools{max-width:560px;margin:0 auto}
.cpm-floatbar.cpm-tools:not(.cpm-tools--abierta){padding:6px;gap:0}
.cpm-site.single-cantos{padding-bottom:110px}
.cpm-tools__panel[hidden]{display:none!important}
.cpm-tools .cpm-tabs button{font-size:14px}
@media (min-width:900px){.cpm-floatbar.cpm-tools{left:auto;right:24px;bottom:24px;width:420px}}

/* Barra inferior (celular) y búsqueda */
.cpm-site.cpm-has-bottomnav{padding-bottom:96px}
@media (min-width:900px){.cpm-site.cpm-has-bottomnav{padding-bottom:0}}
.cpm-bottomnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border:0;border-radius:18px;background:transparent;color:var(--bar-muted);font:500 11px var(--font-display);cursor:pointer;padding:0}
.cpm-bottomnav button svg{width:22px;height:22px}
.cpm-sheet-search{position:fixed;inset:0;z-index:60;background:rgba(31,24,48,.55);display:flex;align-items:flex-start;padding:16px}
.cpm-sheet-search[hidden]{display:none}
.cpm-sheet-search__box{width:100%;max-width:560px;margin:0 auto;padding:16px;border-radius:var(--radius-xl);background:var(--surface);display:flex;flex-direction:column;gap:12px}

/* Modo tocar */
html.cpm-play body{background:#14111B!important}
html.cpm-play .elementor-location-header,html.cpm-play .elementor-location-footer,html.cpm-play .cpm-hide-play,html.cpm-play .cpm-bottomnav{display:none!important}
html.cpm-play .cpm-sheet-card{background:#14111B;border-color:#2E2740}
html.cpm-play .cpress,html.cpm-play .cpm-site .cpress_line_section .lyric,html.cpm-play .cpress_line_section .lyric{color:#F1EDF8!important}
html.cpm-play .cpress_line_section .chord{color:#B9A6F0!important}
html.cpm-play .cpress{font-size:calc(24px * var(--cpm-scale,1))}
html.cpm-play .elementor-widget-theme-post-title .elementor-heading-title{color:#F1EDF8}
.cpm-playbar{display:none}
html.cpm-play .cpm-playbar{display:flex;position:fixed;top:0;left:0;right:0;z-index:70;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:#14111B}
html.cpm-play body{padding-top:68px}
.cpm-playbar a,.cpm-playbar button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:0;border-radius:var(--radius-pill);background:#241E33;color:#F1EDF8;font:600 15px var(--font-display);cursor:pointer}
.cpm-playbar .cpm-playbar__key{background:var(--gold);color:var(--on-gold);flex-shrink:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font:700 15px var(--font-display);padding:0 12px}
.cpm-playbar>*{flex-shrink:0}
.cpm-playbar__paso{font:600 13px var(--font-display);color:#B3AAC6;white-space:nowrap}
.cpm-playbar .cpm-playbar__sig{flex:1 1 auto;flex-shrink:1;min-width:0;justify-content:flex-end;background:var(--gold);color:var(--on-gold)}
.cpm-playbar__sig span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:420px){.cpm-playbar{gap:6px;padding:10px 12px}.cpm-playbar a,.cpm-playbar button{padding:0 12px}}

/* Misa del domingo (página y portada) */
.cpm-misa{display:flex;flex-direction:column;gap:14px}
.cpm-misa__hero{display:flex;flex-direction:column;gap:12px;padding:22px 20px 20px;border-radius:var(--radius-xl);color:#fff}
.cpm-misa__fecha{font:600 14px var(--font-display)}
.cpm-misa__nombre{margin:0;font:800 30px/33px var(--font-display);letter-spacing:var(--ls-tight);color:#fff}
.cpm-misa__chips{display:flex;flex-wrap:wrap;gap:8px}
.cpm-misa__chips span{padding:4px 12px;border-radius:var(--radius-pill);background:rgba(255,255,255,.16);font:600 13px/20px var(--font-display)}
.cpm-misa__acciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cpm-misa__acciones a,.cpm-misa__acciones button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:var(--radius-pill);font:700 15px var(--font-display);cursor:pointer;text-decoration:none}
.cpm-misa__compartir{background:var(--gold);color:var(--on-gold)}
.cpm-misa__imprimir{background:#fff;color:var(--ink)}
.cpm-misa__sub{display:flex;align-items:center;gap:8px;margin:0;font:600 15px var(--font-display);color:var(--ink-muted)}
.cpm-misa__nota{margin:0;font-size:13px;color:var(--ink-muted)}
@media (min-width:900px){.cpm-misa__hero{padding:36px 40px;border-radius:var(--radius-2xl)}.cpm-misa__nombre{font-size:48px;line-height:50px}}

/* Impresión: hoja del coro */
@media print{
  .elementor-location-header,.elementor-location-footer,.cpm-bottomnav,.cpm-tools,.cpm-misa__acciones,.cpm-misa__nota,.cpm-hide-print{display:none!important}
  body.cpm-site{background:#fff;padding:0!important}
  .cpm-misa__hero{color:#1F1830!important;background:#fff!important;border:2px solid #5A3F99;padding:12px 16px}
  .cpm-misa__nombre,.cpm-misa__chips span{color:#1F1830!important;background:none!important}
  .cpm-rows{border:0}
  .cpm-row{min-height:0;padding:6px 0}
}

/* ===================== Mi misa ===================== */
.cpm-mimisa{display:flex;flex-direction:column;gap:20px}
.cpm-mimisa [data-cpm-mimisa-app]{display:flex;flex-direction:column;gap:16px}
.cpm-mimisa__head{display:flex;flex-direction:column;gap:6px}
.cpm-mimisa__fecha{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cpm-input{min-height:44px;padding:8px 14px;border:1.5px solid var(--line-strong)!important;border-radius:var(--radius-md)!important;background:var(--surface)!important;font:400 16px var(--font-text);color:var(--ink)}
.cpm-input:focus{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--purple)!important}
.cpm-input--titulo{font:800 28px/34px var(--font-display)!important;letter-spacing:var(--ls-tight);border-color:transparent!important;background:transparent!important;padding:2px 0!important;width:100%}
.cpm-input--titulo:hover,.cpm-input--titulo:focus{border-color:var(--line-strong)!important;background:var(--surface)!important;padding:2px 10px!important}
.cpm-mimisa__acciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cpm-mimisa__accion{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;padding:12px 8px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 14px var(--font-display);text-decoration:none;cursor:pointer}
.cpm-mimisa__accion:hover{border-color:var(--purple);color:var(--ink)}
.cpm-mimisa__accion--wa{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.cpm-mimisa__accion--wa:hover{color:var(--on-gold)}
.cpm-mimisa__accion--dark{background:var(--bar-bg);border-color:var(--bar-bg);color:var(--bar-text)}
.cpm-iconbtn{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--purple);cursor:pointer;padding:0}
.cpm-iconbtn:hover{border-color:var(--purple)}
.cpm-chip svg{width:16px;height:16px}
.cpm-aviso{padding:18px;border-radius:var(--radius-lg);background:var(--gold-tint);color:var(--on-gold-tint)}
.cpm-vacio{display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line)}
.cpm-vacio p{margin:0;color:var(--ink-muted)}
.cpm-enlace-peligro{align-self:flex-start;margin-top:8px;padding:8px 0;border:0;background:none;color:var(--lit-rojo);font:600 14px var(--font-display);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.cpm-selector{max-height:calc(100vh - 32px);overflow:hidden}
.cpm-selector__lista{overflow-y:auto;max-height:60vh;display:flex;flex-direction:column;gap:8px}
@media (max-width:899px){.cpm-sheet-search{align-items:flex-end;padding:8px}.cpm-sheet-search__box{border-radius:28px 28px 20px 20px}}
.cpm-toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:80;max-width:min(92vw,480px);padding:12px 18px;border-radius:var(--radius-pill);background:var(--bar-bg);color:var(--bar-text);font:600 14px var(--font-display);box-shadow:var(--shadow-float)}
.cpm-toast[hidden]{display:none}
.cpm-actions .cpm-btn svg{width:20px;height:20px}
@media print{
  .cpm-hide-print,.cpm-panel,.cpm-toast,.cpm-sheet-search{display:none!important}
  .cpm-input--titulo{border:0!important;padding:0!important}
  .cpm-mimisa__head .cpm-label{display:none}
}

@media (max-width:420px){.cpm-mimisa .cpm-row{gap:10px;padding:12px}.cpm-mimisa .cpm-row__num{display:none}}

/* Tienda de afiliados (cpm-tienda.php) */
.cpm-tienda{display:flex;flex-direction:column;gap:28px}
.cpm-tienda__desc{margin:-4px 0 0;color:var(--ink-muted);font-size:15px;line-height:21px}
.cpm-tienda section{scroll-margin-top:90px}
.cpm-tienda__temporada{padding:18px 16px;border-radius:var(--radius-xl);background:color-mix(in srgb,var(--temporada) 10%,var(--surface));border:1.5px solid color-mix(in srgb,var(--temporada) 35%,transparent)}
.cpm-products{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cpm-product{position:relative}
.cpm-product__img{display:grid}
.cpm-product__img img{background:#fff}
.cpm-product__name{font-size:15px;line-height:20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cpm-product__why{font-size:13px;line-height:18px}
.cpm-product__cta .cpm-btn{min-height:44px;padding:0 12px;font-size:15px}
.cpm-products--rail{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(168px,46%);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.cpm-products--rail .cpm-product{scroll-snap-align:start}
@media (min-width:700px){.cpm-products{grid-template-columns:repeat(3,minmax(0,1fr))}.cpm-products--rail{grid-auto-columns:minmax(200px,31%)}}
@media (min-width:1000px){.cpm-products{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.cpm-product__name{font-size:17px;line-height:22px}.cpm-product__why{font-size:14px;line-height:20px}.cpm-products--rail{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));overflow:visible}}

/* Lecturas del domingo (citas; texto completo en Evangelio del Día) */
.cpm-lecturas{display:flex;flex-direction:column;gap:12px}
.cpm-lecturas__lista{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cpm-lecturas__lista li{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line)}
.cpm-lecturas__tipo{font:600 12px/16px var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.cpm-lecturas__cita{font:600 17px/23px var(--font-display);color:var(--ink)}
.cpm-misa__evangelio{margin:0;font:600 15px var(--font-display);color:var(--purple)}
@media (min-width:700px){.cpm-lecturas__lista{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.cpm-lecturas__lista{grid-template-columns:repeat(2,1fr);gap:4px}.cpm-lecturas__lista li{padding:4px 8px;border:0}.cpm-lecturas__cita{font-size:13px;line-height:17px}}

/* Guía: cantos para misa en orden ([cpm_orden_misa]) */
.cpm-orden__intro{margin:0;font-size:17px;line-height:26px;color:var(--ink)}
.cpm-orden__intro a,.cpm-enlace{color:var(--purple);font-weight:600}
.cpm-orden{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:26px}
.cpm-orden__item{display:flex;flex-direction:column;gap:10px}
.cpm-orden__item p{margin:0;color:var(--ink-muted);font-size:16px;line-height:24px}
.cpm-orden__num{display:inline-grid;place-items:center;min-width:40px;height:40px;margin-right:6px;border-radius:12px;background:var(--gold);color:var(--on-gold);font:800 17px var(--font-display);vertical-align:middle}
.cpm-enlace{align-self:flex-start;font-family:var(--font-display);text-decoration:none}

/* Celular: áreas de toque de 44px (Fase 6, prueba en celular) */
.elementor-location-footer .cpm-footlinks a,.elementor-location-footer .cpm-momentos-links a,.elementor-location-footer .elementor-widget-text-editor li a{display:inline-flex;align-items:center;min-height:44px}
.elementor-location-footer .cpm-footlinks li,.elementor-location-footer .elementor-widget-text-editor li{margin:0!important}
.cpm-sechead__aside a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.elementor-location-header .elementor-menu-toggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.cpm-enlace{display:inline-flex;align-items:center;min-height:44px}
.cpm-mimisa .cpm-row{min-height:48px}
.cpm-mimisa .cpm-btn,.cpm-enlace-peligro,.cpm-mimisa__acciones button,.cpm-mimisa__acciones a{min-height:44px}
.cpm-enlace-peligro{display:inline-flex;align-items:center}
.cpm-tile__value{white-space:nowrap}
@media (max-width:420px){.cpm-tile{padding:10px}.cpm-tile__value{font-size:clamp(16px,5.2vw,22px)}}
.cpm-mimisa a.cpm-row__body{min-height:44px;align-self:stretch;justify-content:center}

/* Acordes del canto (ficha) */
.cpm-acordes{display:flex;flex-wrap:wrap;gap:6px}
.cpm-acorde{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:10px;background:var(--lavender-tint);color:var(--purple);font:700 15px var(--font-display)}
