/* Coral Polifónica Ecijana — estilo común.
 * Colores sacados de la propia coral: el negro del uniforme, el turquesa de la estola y el oro de los retablos. */
:root {
	--cpe-tinta: #16181b;
	--cpe-texto: #2b2d31;
	--cpe-suave: #5f6268;
	--cpe-papel: #faf8f3;
	--cpe-piedra: #efe9dd;
	--cpe-linea: #e0d8c8;
	--cpe-turquesa: #2aa7b5;
	--cpe-turquesa-osc: #12707b;
	--cpe-oro: #b08a3e;
	--cpe-serif: "Cormorant Garamond", Georgia, serif;
	--cpe-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body { background: var(--cpe-papel); color: var(--cpe-texto); font-family: var(--cpe-sans); font-size: 17px; line-height: 1.6; }
h1, h2, h3, h4, .elementor-heading-title { font-family: var(--cpe-serif); color: var(--cpe-tinta); font-weight: 600; line-height: 1.15; }
a { color: var(--cpe-turquesa-osc); }
a:hover { color: var(--cpe-tinta); }

/* ---------- Cabecera y pie del tema Hello ---------- */
.site-header { background: var(--cpe-tinta); padding-block: 14px !important; max-width: none !important; padding-inline: max(16px, calc((100vw - 1140px) / 2)) !important; position: sticky; top: 0; z-index: 50; }
.admin-bar .site-header { top: 32px; }
.site-header .site-branding { display: flex; align-items: center; gap: 12px; }
.site-header .site-logo img { max-height: 54px; width: auto; border-radius: 3px; }
.site-header .site-title a, .site-header .site-title { font-family: var(--cpe-serif); color: #fff !important; font-size: 1.35rem; font-weight: 600; letter-spacing: .02em; text-decoration: none; margin: 0; }
.site-header .site-description { display: none; }
.site-navigation ul.menu li a { color: #e9e5dc !important; font-weight: 600; font-size: .95rem; letter-spacing: .03em; padding: 8px 12px; }
.site-navigation ul.menu li.current-menu-item > a, .site-navigation ul.menu li a:hover { color: var(--cpe-turquesa) !important; }
.site-navigation-toggle { color: #fff !important; background: transparent !important; border: 1px solid rgba(255,255,255,.3) !important; }
.site-navigation-dropdown ul.menu li a { background: var(--cpe-tinta) !important; color: #fff !important; }
.site-footer { display: none !important; } /* lo sustituye .cpe-pie (coral.php) */
.page-header { display: none; }

/* Elementor trae su propio color y fuente en cada widget: aquí manda la coral. */
.elementor-widget-heading .elementor-heading-title { font-family: var(--cpe-serif) !important; color: var(--cpe-tinta) !important; }
.elementor-widget-text-editor { font-family: var(--cpe-sans); color: var(--cpe-texto); font-size: 1.05rem; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.cpe-centrado > .e-con-inner { align-items: center; text-align: center; max-width: 720px !important; }
.cpe-centrado .cpe-filete { margin-inline: auto; }

/* ---------- Bloques reutilizables (clases que se ponen en Elementor) ---------- */
.cpe-hero { position: relative; color: #fff; }
.cpe-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,14,.30) 0%, rgba(10,12,14,.55) 45%, rgba(10,12,14,.88) 100%); z-index: 0; pointer-events: none; }
.cpe-hero > .e-con-inner, .cpe-hero > * { position: relative; z-index: 1; }
.cpe-hero .elementor-heading-title { color: #fff !important; }
.cpe-hero .elementor-widget-text-editor { color: #eee9df; font-size: 1.15rem; }

.cpe-antetitulo .elementor-heading-title { font-family: var(--cpe-sans) !important; font-size: .82rem !important; font-weight: 700 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--cpe-turquesa) !important; }
.cpe-hero .cpe-antetitulo .elementor-heading-title { color: #7fd6df !important; }
.cpe-titular .elementor-heading-title { font-size: clamp(2.2rem, 5vw, 3.6rem) !important; }
.cpe-h2 .elementor-heading-title { font-size: clamp(1.8rem, 3.4vw, 2.5rem) !important; }
hr.cpe-filete { width: 64px; height: 3px; background-color: var(--cpe-oro) !important; border: 0 !important; margin: 4px 0 8px; opacity: 1; }

.cpe-fondo-piedra { background: var(--cpe-piedra); }
.cpe-fondo-tinta { background: var(--cpe-tinta); color: #e9e5dc; }
.cpe-fondo-tinta .elementor-heading-title { color: #fff !important; }
.cpe-fondo-tinta .elementor-widget-text-editor { color: #d9d4c8; }
.cpe-fondo-tinta a { color: #7fd6df; }

.cpe-boton .elementor-button { background: var(--cpe-turquesa-osc) !important; color: #fff !important; font-family: var(--cpe-sans); font-weight: 700; letter-spacing: .03em; border-radius: 999px; padding: 14px 26px; }
.cpe-boton .elementor-button:hover { background: var(--cpe-tinta) !important; }
.cpe-boton-claro .elementor-button { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,.7); border-radius: 999px; font-weight: 700; padding: 13px 24px; }
.cpe-boton-claro .elementor-button:hover { background: #fff !important; color: var(--cpe-tinta) !important; }

.cpe-foto img { border-radius: 6px; box-shadow: 0 18px 40px -22px rgba(0,0,0,.45); }
.cpe-cita { border-left: 3px solid var(--cpe-oro); padding-left: 18px; font-family: var(--cpe-serif); font-size: 1.35rem; font-style: italic; color: var(--cpe-tinta); }

.cpe-tarjeta { background: #fff; border: 1px solid var(--cpe-linea); border-radius: 8px; }
.cpe-tarjeta .elementor-heading-title { font-size: 1.5rem !important; }

/* ---------- Cifras ---------- */
.cpe-cifras { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; text-align: center; }
.cpe-cifra b { display: block; font-family: var(--cpe-serif); font-size: clamp(2.4rem, 5vw, 3.4rem); color: var(--cpe-oro); line-height: 1; font-weight: 600; }
.cpe-cifra span { display: block; margin-top: 6px; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: inherit; opacity: .85; }

/* ---------- Conciertos ---------- */
.cpe-etiqueta { font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cpe-turquesa-osc); margin: 0 0 10px; }
.cpe-concierto { display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--cpe-linea); }
.cpe-concierto:last-child { border-bottom: 0; }
.cpe-concierto__fecha { text-align: center; background: var(--cpe-tinta); color: #fff; border-radius: 6px; padding: 8px 4px; line-height: 1.05; }
.cpe-concierto__fecha .d { display: block; font-family: var(--cpe-serif); font-size: 1.7rem; font-weight: 600; }
.cpe-concierto__fecha .m { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #7fd6df; }
.cpe-concierto__fecha .a { display: block; font-size: .7rem; opacity: .7; margin-top: 2px; }
.cpe-concierto__texto h3 { font-size: 1.25rem; margin: 0 0 2px; }
.cpe-concierto__texto p { margin: 0; color: var(--cpe-suave); font-size: .95rem; }
.cpe-concierto--cartel { grid-template-columns: 72px 1fr 64px; }
.cpe-concierto__cartel img { display: block; width: 64px; height: auto; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.18); }

.cpe-anios { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 28px; position: sticky; top: 82px; z-index: 5; background: var(--cpe-papel); padding: 10px 0; }
.admin-bar .cpe-anios { top: 114px; }
.cpe-anios a { font-weight: 700; font-size: .9rem; text-decoration: none; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--cpe-linea); background: #fff; color: var(--cpe-tinta); }
.cpe-anios a:hover { background: var(--cpe-tinta); color: #fff; border-color: var(--cpe-tinta); }
.cpe-anio { scroll-margin-top: 150px; margin-bottom: 36px; }
.cpe-anio h2 { font-size: 2.2rem; border-bottom: 2px solid var(--cpe-oro); padding-bottom: 6px; margin: 0 0 6px; }
.cpe-anio h2 small { font-family: var(--cpe-sans); font-size: .9rem; color: var(--cpe-suave); font-weight: 400; margin-left: 8px; }
.cpe-lista { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
.cpe-lista .cpe-concierto:last-child { border-bottom: 1px solid var(--cpe-linea); }

/* ---------- Repertorio ---------- */
.cpe-repertorio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.cpe-seccion h3 { font-size: 1.7rem; border-bottom: 2px solid var(--cpe-oro); padding-bottom: 6px; margin: 0 0 4px; }
.cpe-obras { list-style: none; margin: 0; padding: 0; }
.cpe-obras li { display: grid; grid-template-columns: 1fr auto; column-gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--cpe-linea); }
.cpe-obra__titulo { font-family: var(--cpe-serif); font-size: 1.25rem; font-weight: 600; color: var(--cpe-tinta); line-height: 1.2; }
.cpe-obra__autor { grid-column: 1; font-size: .9rem; color: var(--cpe-suave); }
.cpe-obra__video { grid-column: 2; grid-row: 1 / span 2; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; color: var(--cpe-turquesa-osc); border: 1px solid var(--cpe-turquesa); border-radius: 999px; padding: 4px 11px 4px 9px; white-space: nowrap; }
.cpe-obra__video::before { content: "▶"; font-size: .7em; margin-right: 5px; }
.cpe-obra__video:hover { background: var(--cpe-turquesa-osc); color: #fff; }

/* ---------- Vídeos ---------- */
.cpe-videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.cpe-video__ficha { margin: 0; }
.cpe-video { display: block; position: relative; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 6px; overflow: hidden; background: var(--cpe-tinta); cursor: pointer; }
.cpe-video img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s, opacity .3s; opacity: .9; }
.cpe-video:hover img { transform: scale(1.03); opacity: 1; }
.cpe-video__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: rgba(18,112,123,.92); box-shadow: 0 6px 20px rgba(0,0,0,.35); }
.cpe-video__play::after { content: ""; position: absolute; left: 26px; top: 20px; border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #fff; }
iframe.cpe-video { cursor: auto; }
.cpe-video__ficha figcaption { margin-top: 10px; line-height: 1.3; }
.cpe-video__ficha figcaption b { display: block; font-family: var(--cpe-serif); font-size: 1.2rem; font-weight: 600; color: var(--cpe-tinta); }
.cpe-video__ficha figcaption span { display: block; font-size: .9rem; color: var(--cpe-suave); margin-top: 2px; }
.cpe-fondo-tinta .cpe-video__ficha figcaption b { color: #fff; }
.cpe-fondo-tinta .cpe-video__ficha figcaption span { color: #b9b4a8; }

/* ---------- Pie ---------- */
.cpe-pie { background: var(--cpe-tinta); color: #b9b4a8; font-size: .95rem; line-height: 1.55; padding-top: 22px; }
/* Cinco líneas de pentagrama en oro, como remate entre la página y el pie */
.cpe-pie__pentagrama { height: 25px; background: repeating-linear-gradient(180deg, rgba(176,138,62,.45) 0 1px, transparent 1px 6px) top / 100% 25px no-repeat; }
.cpe-pie__rejilla { max-width: 1140px; margin: 0 auto; padding: 56px 16px 40px; display: grid; grid-template-columns: 1.5fr 1fr 1.3fr 1fr; gap: 40px; }
.cpe-pie a { color: #e9e5dc; text-decoration: none; }
.cpe-pie a:hover { color: #7fd6df; }
.cpe-pie h2 { font-family: var(--cpe-sans); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cpe-oro); margin: 0 0 14px; }
.cpe-pie ul { list-style: none; margin: 0; padding: 0; }
.cpe-pie li { margin: 0 0 8px; }
.cpe-pie p { margin: 0 0 12px; }
.cpe-pie__logo { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.cpe-pie__logo img { width: 52px; height: auto; border-radius: 3px; }
.cpe-pie__logo span { font-family: var(--cpe-serif); font-size: 1.55rem; font-weight: 600; line-height: 1.05; color: #fff; }
.cpe-pie__prox { border-left: 2px solid var(--cpe-turquesa); padding-left: 12px; color: #e9e5dc; }
.cpe-pie__prox small { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: #7fd6df; }
.cpe-pie__menu { columns: 2; column-gap: 20px; }
.cpe-pie__menu li { break-inside: avoid; }
.cpe-pie .current-menu-item > a { color: #7fd6df; }
.cpe-pie__nota { font-size: .88rem; color: #8f8a7f; }
.cpe-pie__nota a { color: #7fd6df; text-decoration: underline; text-underline-offset: 3px; }
.cpe-pie__redes { display: flex; gap: 10px; margin-bottom: 16px; }
.cpe-pie__redes a { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; transition: background .2s, border-color .2s; }
.cpe-pie__redes a:hover { background: var(--cpe-turquesa-osc); border-color: var(--cpe-turquesa-osc); }
.cpe-pie__redes svg { width: 19px; height: 19px; fill: currentColor; }
.cpe-pie__base { max-width: 1140px; margin: 0 auto; padding: 18px 16px 22px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; color: #8f8a7f; }

@media (max-width: 1024px) {
	.cpe-repertorio, .cpe-videos { grid-template-columns: 1fr 1fr; }
	.cpe-pie__rejilla { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.cpe-pie__rejilla { grid-template-columns: 1fr; gap: 32px; padding-top: 44px; }
	.cpe-pie__base { flex-direction: column; gap: 2px; }
}

@media (max-width: 767px) {
	body { font-size: 16px; }
	.cpe-repertorio, .cpe-videos { grid-template-columns: 1fr; }
	.cpe-cifras { grid-template-columns: 1fr 1fr; row-gap: 24px; }
	.cpe-lista { grid-template-columns: 1fr; }
	.cpe-anios { top: 72px; overflow-x: auto; flex-wrap: nowrap; }
	.cpe-anios a { flex: 0 0 auto; }
	.site-header .site-title a { font-size: 1.1rem; }
	.site-header .site-logo img { max-height: 44px; }
}

/* ---------- Área de coralistas ---------- */
.cpe-area { max-width: 880px; margin: 0 auto; }
.cpe-area--entrar { max-width: 460px; }
.cpe-area__login { padding: 32px; }
.cpe-area__login h2 { font-size: 1.9rem; margin: 0 0 8px; }
.cpe-area__login label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: 4px; }
.cpe-area__login input[type=text], .cpe-area__login input[type=password] { width: 100%; padding: 11px 12px; border: 1px solid var(--cpe-linea); border-radius: 6px; font-size: 1rem; background: #fff; }
.cpe-area__login .login-remember label { font-weight: 400; display: flex; gap: 8px; align-items: center; }
.cpe-area__login input[type=submit] { background: var(--cpe-turquesa-osc); color: #fff; border: 0; border-radius: 999px; padding: 13px 28px; font-weight: 700; font-size: 1rem; cursor: pointer; }
.cpe-area__login input[type=submit]:hover { background: var(--cpe-tinta); }
.cpe-area__olvido { font-size: .9rem; margin: 6px 0 0; }
.cpe-area__cabeza { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; border-bottom: 2px solid var(--cpe-oro); padding-bottom: 14px; margin-bottom: 20px; }
.cpe-area__cabeza h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); margin: 0; }
.cpe-area__cuerda { margin: 4px 0 0; color: var(--cpe-suave); }
.cpe-area__cuerda b { color: var(--cpe-turquesa-osc); }
.cpe-area__acciones { display: flex; gap: 16px; align-items: center; font-size: .92rem; }
.cpe-area__boton { background: var(--cpe-tinta); color: #fff !important; text-decoration: none; padding: 8px 16px; border-radius: 999px; font-weight: 700; }
.cpe-area__vercomo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 24px; font-size: .9rem; }
.cpe-area__vercomo span { color: var(--cpe-suave); margin-right: 4px; }
.cpe-area__vercomo a { text-decoration: none; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--cpe-linea); background: #fff; color: var(--cpe-tinta); font-weight: 600; }
.cpe-area__vercomo a[aria-current] { background: var(--cpe-turquesa-osc); border-color: var(--cpe-turquesa-osc); color: #fff; }
.cpe-area__bloque { margin-bottom: 40px; }
.cpe-area__bloque > h3 { font-size: 1.6rem; margin: 0 0 14px; }
.cpe-area__vacio { color: var(--cpe-suave); font-style: italic; }
.cpe-estudio { padding: 22px 24px; margin-bottom: 16px; }
.cpe-estudio__titulo { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.cpe-estudio__titulo h4 { font-size: 1.45rem; margin: 0; }
.cpe-estudio__titulo span { color: var(--cpe-suave); font-size: .92rem; }
.cpe-estudio__notas { border-left: 3px solid var(--cpe-oro); padding: 2px 0 2px 12px; margin: 0 0 14px; color: var(--cpe-texto); }
.cpe-audio { display: grid; grid-template-columns: 210px 1fr; gap: 12px; align-items: center; padding: 6px 0; }
.cpe-audio span { font-weight: 600; font-size: .95rem; }
.cpe-audio audio { width: 100%; height: 40px; }
.cpe-estudio__pdfs { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0 0; }
.cpe-estudio__pdfs a { text-decoration: none; font-weight: 700; font-size: .9rem; border: 1px solid var(--cpe-turquesa); border-radius: 999px; padding: 6px 14px; }
.cpe-estudio__pdfs a::before { content: "PDF · "; color: var(--cpe-suave); font-weight: 400; }
@media (max-width: 600px) {
	.cpe-audio { grid-template-columns: 1fr; gap: 4px; padding: 8px 0; }
	.cpe-estudio { padding: 18px 16px; }
}
.cpe-area__actuacion { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--cpe-linea); }
.cpe-area__actuacion .cpe-concierto { border-bottom: 0; }
.cpe-area__programa { grid-column: auto; grid-row: auto; }
.cpe-area__sinprograma { font-size: .85rem; color: var(--cpe-suave); font-style: italic; }
.cpe-area__volver { margin: 0 0 16px; }
.cpe-area__volver a { text-decoration: none; font-weight: 600; }
.cpe-estudio__num { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--cpe-tinta); color: #fff; font-size: .9rem; align-self: center; }
@media (max-width: 600px) {
	.cpe-area__actuacion { grid-template-columns: 1fr; gap: 0; padding-bottom: 12px; }
	.cpe-area__actuacion a { justify-self: start; margin-left: 88px; }
}

/* ---------- Estudio con afinación ---------- */
.cpe-estudio__grabar { margin: 14px 0 0; }
.cpe-estudio__grabar a { display: inline-block; text-decoration: none; font-weight: 700; font-size: .95rem; background: var(--cpe-turquesa-osc); color: #fff; border-radius: 999px; padding: 8px 16px; }
.cpe-estudio__grabar a:hover { background: var(--cpe-tinta); color: #fff; }
.cpe-afina { padding: 22px 24px; }
.cpe-afina__aviso { background: var(--cpe-piedra); border-radius: 6px; padding: 10px 14px; margin: 0 0 16px; font-size: .95rem; }
.cpe-afina__mandos { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-bottom: 14px; }
.cpe-afina__mandos label { display: inline-flex; align-items: center; gap: 8px; font-size: .95rem; font-weight: 600; }
.cpe-afina__boton { font: 700 1rem var(--cpe-sans); background: #c8483b; color: #fff; border: 0; border-radius: 999px; padding: 10px 20px; cursor: pointer; }
.cpe-afina__boton[data-accion="parar"] { background: var(--cpe-tinta); }
.cpe-afina__boton:disabled { opacity: .6; cursor: wait; }
.cpe-afina__ahora { display: flex; align-items: baseline; gap: 14px; min-height: 2.2rem; margin-bottom: 6px; }
.cpe-afina__ahora [data-ahora="nota"] { font-family: var(--cpe-serif); font-size: 1.9rem; font-weight: 700; color: var(--cpe-tinta); min-width: 4.5rem; }
.cpe-afina__ahora [data-ahora="desvio"] { font-weight: 700; color: var(--cpe-suave); }
.cpe-afina__ahora [data-clase="ok"] { color: #2e9e5b; }
.cpe-afina__ahora [data-clase="casi"] { color: #b7860f; }
.cpe-afina__ahora [data-clase="mal"] { color: #c8483b; }
.cpe-afina__lienzo { border: 1px solid var(--cpe-linea); border-radius: 6px; background: #fff; }
.cpe-afina__lienzo canvas { display: block; width: 100%; height: 300px; }
.cpe-afina__leyenda { font-size: .85rem; color: var(--cpe-suave); margin: 8px 0 0; }
.cpe-afina__leyenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin: 0 4px 0 8px; vertical-align: -1px; }
.cpe-afina__leyenda i:first-child { margin-left: 0; }
.cpe-afina__leyenda .ok { background: #2e9e5b; } .cpe-afina__leyenda .casi { background: #d9a21b; } .cpe-afina__leyenda .mal { background: #c8483b; }
.cpe-afina__resultado { border-top: 1px solid var(--cpe-linea); margin-top: 18px; padding-top: 16px; }
.cpe-afina__cifras { display: flex; gap: 28px; flex-wrap: wrap; margin-bottom: 6px; }
.cpe-afina__cifras p { margin: 0; display: flex; flex-direction: column; }
.cpe-afina__cifras b { font-family: var(--cpe-serif); font-size: 2.2rem; line-height: 1; color: var(--cpe-turquesa-osc); }
.cpe-afina__cifras span { font-size: .9rem; color: var(--cpe-suave); }
.cpe-afina__pasajes { margin: 0 0 14px; padding-left: 0; list-style: none; }
.cpe-afina__pasajes li { padding: 3px 0; }
.cpe-afina__pasajes button { font: 700 .9rem var(--cpe-sans); border: 1px solid var(--cpe-turquesa); background: none; color: var(--cpe-turquesa-osc); border-radius: 999px; padding: 2px 10px; margin-right: 8px; cursor: pointer; }
.cpe-afina__resultado audio { width: 100%; }
.cpe-afina__descargar { font-weight: 700; }
@media (max-width: 640px) {
	.cpe-afina { padding: 18px 16px; }
	.cpe-afina__lienzo canvas { height: 220px; }
}
.cpe-afina__aguja { position: relative; flex: 0 1 220px; height: 10px; border-radius: 5px; align-self: center;
	background: linear-gradient(90deg, #f3d9d5 0 15%, #f6e9c4 15% 32.5%, #d5eedd 32.5% 67.5%, #f6e9c4 67.5% 85%, #f3d9d5 85%); }
.cpe-afina__aguja::after { content: ""; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--cpe-suave); }
.cpe-afina__aguja i { position: absolute; top: -4px; left: 50%; width: 6px; height: 18px; margin-left: -3px; border-radius: 3px; background: var(--cpe-linea); transition: left .08s linear; }
.cpe-afina__aguja i[data-clase="ok"] { background: #2e9e5b; } .cpe-afina__aguja i[data-clase="casi"] { background: #d9a21b; } .cpe-afina__aguja i[data-clase="mal"] { background: #c8483b; }
.cpe-afina__vistas { display: flex; gap: 6px; margin: 4px 0 10px; }
.cpe-afina__vistas button { font: 600 .9rem var(--cpe-sans); border: 1px solid var(--cpe-linea); background: #fff; color: var(--cpe-texto); border-radius: 999px; padding: 5px 14px; cursor: pointer; }
.cpe-afina__vistas button[aria-selected="true"] { background: var(--cpe-turquesa-osc); border-color: var(--cpe-turquesa-osc); color: #fff; }
.cpe-afina__pentagrama { border: 1px solid var(--cpe-linea); border-radius: 6px; background: #fff; max-height: 420px; overflow-y: auto; padding: 4px; }
.cpe-afina__pentagrama[hidden], .cpe-afina__lienzo[hidden] { display: none; }
.cpe-afina__pentagrama svg { display: block; width: 100%; height: auto; }
.cpe-afina__pentagrama g.note { cursor: pointer; }
.cpe-afina__pentagrama g.note.ahora { color: #12707b; fill: #12707b; }
.cpe-afina__pentagrama g.note.ok { color: #2e9e5b; fill: #2e9e5b; }
.cpe-afina__pentagrama g.note.casi { color: #d9a21b; fill: #d9a21b; }
.cpe-afina__pentagrama g.note.mal { color: #c8483b; fill: #c8483b; }
.cpe-afina__pentagrama g.note.sin { color: #a8a39a; fill: #a8a39a; }
.cpe-afina__leyenda .sin { background: #a8a39a; }
@media (max-width: 640px) { .cpe-afina__pentagrama { max-height: 340px; } .cpe-afina__aguja { flex-basis: 120px; } }
.cpe-afina__modos { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 12px; font-weight: 600; font-size: .95rem; }
.cpe-afina__modos label { display: inline-flex; align-items: center; gap: 6px; }
.cpe-afina__aviso[hidden] { display: none; }
.cpe-afina__guardar { background: var(--cpe-turquesa-osc); }
.cpe-afina__historial { border-top: 1px solid var(--cpe-linea); margin-top: 18px; padding-top: 14px; }
.cpe-afina__historial h4 { font-size: 1.25rem; margin: 0 0 6px; }
.cpe-afina__historial ul { list-style: none; padding: 0; margin: 0; }
.cpe-afina__historial li { padding: 4px 0; border-bottom: 1px dashed var(--cpe-linea); }
.cpe-afina__historial button { font: 600 .85rem var(--cpe-sans); border: 1px solid var(--cpe-turquesa); background: none; color: var(--cpe-turquesa-osc); border-radius: 999px; padding: 1px 10px; margin-left: 6px; cursor: pointer; }

/* ---------- Ensayos, lista y avisos ---------- */
.cpe-ensayo { border-bottom: 1px solid var(--cpe-linea); padding: 12px 0; }
.cpe-ensayo__cuando { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.cpe-ensayo__cuando b { font-family: var(--cpe-serif); font-size: 1.3rem; color: var(--cpe-tinta); }
.cpe-ensayo__cuando span { color: var(--cpe-suave); font-size: .95rem; }
.cpe-ensayo__obras, .cpe-ensayo__notas { margin: 4px 0 0; font-size: .95rem; }
.cpe-ensayo__notas { color: var(--cpe-suave); }
.cpe-ensayo__falta { margin: 8px 0 0; font-size: .92rem; }
.cpe-ensayo__falta summary { display: inline-block; cursor: pointer; font-weight: 700; color: #a23b30; border: 1px solid #e3b8b2; border-radius: 999px; padding: 3px 12px; list-style: none; }
.cpe-ensayo__falta summary::-webkit-details-marker { display: none; }
.cpe-ensayo__falta details[open] summary { margin-bottom: 8px; }
.cpe-ensayo__falta input[type="text"] { width: min(100%, 280px); padding: 5px 8px; border: 1px solid var(--cpe-linea); border-radius: 4px; margin-right: 6px; }
.cpe-ensayo__falta button { font: 700 .9rem var(--cpe-sans); background: var(--cpe-tinta); color: #fff; border: 0; border-radius: 999px; padding: 6px 14px; cursor: pointer; }
.cpe-ensayo__avisado { color: #a23b30; font-weight: 600; }
.cpe-ensayo__gestion { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .92rem; }
.cpe-ensayo__gestion a { font-weight: 700; }
.cpe-ensayo__gestion span { color: #a23b30; }
.cpe-lista h4 { font-size: 1.3rem; margin: 20px 0 6px; }
.cpe-lista h4 span { font-family: var(--cpe-sans); font-size: .85rem; color: var(--cpe-suave); }
.cpe-lista ul { list-style: none; margin: 0; padding: 0; }
.cpe-lista li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 8px 0; border-bottom: 1px solid var(--cpe-linea); }
.cpe-lista__nombre { font-weight: 600; }
.cpe-lista__nombre small { display: block; font-weight: 400; color: #a23b30; }
.cpe-lista__estados { display: inline-flex; border: 1px solid var(--cpe-linea); border-radius: 999px; overflow: hidden; }
.cpe-lista__estados label { cursor: pointer; }
.cpe-lista__estados input { position: absolute; opacity: 0; pointer-events: none; }
.cpe-lista__estados span { display: block; padding: 7px 13px; font-size: .88rem; font-weight: 600; color: var(--cpe-suave); }
.cpe-lista__estados label + label span { border-left: 1px solid var(--cpe-linea); }
.cpe-lista__estados .presente input:checked + span { background: #2e9e5b; color: #fff; }
.cpe-lista__estados .justificada input:checked + span { background: #d9a21b; color: #fff; }
.cpe-lista__estados .falta input:checked + span { background: #c8483b; color: #fff; }
.cpe-lista__estados input:focus-visible + span { outline: 2px solid var(--cpe-turquesa-osc); outline-offset: -2px; }
.cpe-lista__todos { font: 600 .9rem var(--cpe-sans); border: 1px solid var(--cpe-turquesa); background: none; color: var(--cpe-turquesa-osc); border-radius: 999px; padding: 6px 14px; cursor: pointer; }
.cpe-lista__guardar { position: sticky; bottom: 0; background: var(--cpe-papel); padding: 12px 0; margin: 0; }
.cpe-lista__guardar button { border: 0; font: 700 1rem var(--cpe-sans); cursor: pointer; padding: 11px 24px; }
.cpe-lista__hecho { background: #e3f3e8; color: #1d6b3d; border-radius: 6px; padding: 8px 12px; font-weight: 600; }
.cpe-aviso { border-left: 3px solid var(--cpe-linea); padding: 4px 0 4px 14px; margin: 0 0 14px; }
.cpe-aviso--nuevo { border-left-color: var(--cpe-turquesa); }
.cpe-aviso__cabeza { margin: 0; font-size: .85rem; color: var(--cpe-suave); display: flex; gap: 10px; align-items: center; }
.cpe-aviso__cabeza b { background: var(--cpe-turquesa-osc); color: #fff; border-radius: 999px; padding: 0 9px; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }
.cpe-aviso h4 { font-size: 1.3rem; margin: 2px 0 4px; }
.cpe-aviso__texto p { margin: 0 0 6px; }
@media (max-width: 640px) { .cpe-lista__estados span { padding: 7px 10px; } }
.cpe-afina__enviar { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: end; margin: 10px 0 14px; }
.cpe-afina__enviar label { display: flex; flex-direction: column; font-size: .9rem; font-weight: 600; flex: 1 1 260px; }
.cpe-afina__enviar input { padding: 7px 9px; border: 1px solid var(--cpe-linea); border-radius: 4px; font: inherit; font-weight: 400; }

/* ---------- Convocatoria, calendario y cuotas ---------- */

.cpe-conv { grid-column: 1 / -1; margin: -4px 0 12px; padding-left: 84px; }
.cpe-conv__datos { margin: 0 0 6px; font-size: .93rem; color: var(--cpe-texto); }
.cpe-conv__respuesta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .92rem; }
.cpe-conv__respuesta span { font-weight: 700; margin-right: 4px; }
.cpe-conv__respuesta button { font: 600 .88rem var(--cpe-sans); border: 1px solid var(--cpe-linea); background: #fff; color: var(--cpe-texto); border-radius: 999px; padding: 5px 13px; cursor: pointer; }
.cpe-conv__respuesta button.voy[aria-pressed="true"] { background: #2e9e5b; border-color: #2e9e5b; color: #fff; }
.cpe-conv__respuesta button.duda[aria-pressed="true"] { background: #d9a21b; border-color: #d9a21b; color: #fff; }
.cpe-conv__respuesta button.no[aria-pressed="true"] { background: #c8483b; border-color: #c8483b; color: #fff; }
.cpe-conv__cuenta { margin: 6px 0 0; font-size: .88rem; color: var(--cpe-suave); }
.cpe-calendario { margin: 10px 0 24px; background: #fff; border: 1px solid var(--cpe-linea); border-radius: 6px; padding: 12px 16px; }
.cpe-calendario summary { cursor: pointer; font-weight: 700; }
.cpe-calendario input { padding: 6px 8px; border: 1px solid var(--cpe-linea); border-radius: 4px; font-size: .85rem; }
.cpe-cuotas { margin: 0 0 18px; padding: 8px 14px; border-radius: 6px; background: #e3f3e8; color: #1d6b3d; font-weight: 600; }
.cpe-cuotas--debe { background: #fbeee0; color: #8a5a12; }
@media (max-width: 640px) { .cpe-conv { padding-left: 0; } }
