/* Tokens del portal. El tema puede redefinirlos en su CSS (p. ej. Elementor → Ajustes del sitio → CSS personalizado)
   con :root { --sf-navy: …; }. Van con :where() para que cualquier regla del tema gane sin importar el orden de carga. */
:where(:root) {
	--sf-navy: #05153B;         /* titulares, botones principales */
	--sf-carmin: #9E2446;       /* acento: fechas, etiquetas, enlaces destacados */
	--sf-tinta: #1B2130;        /* texto */
	--sf-gris: #555B6B;         /* texto secundario */
	--sf-linea: #E4DCD8;        /* separadores */
	--sf-crema: #F7F2EF;        /* fondos suaves */
	--sf-ambar: #7A4F00;        /* aplazado, ubicación aproximada (texto) */
	--sf-ambar-fondo: #FFF1D6;  /* aplazado, ubicación aproximada (fondo) */
	--sf-verde: #17613D;        /* gratis, confirmado */
	--sf-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--sf-texto: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Componentes ligeros (sin Leaflet): suscripción a calendarios y agenda semanal. Todo bajo su propio prefijo. */
.sfcal { --sfc-navy: var(--sf-navy); --sfc-carmin: var(--sf-carmin); --sfc-line: var(--sf-linea); font-family: var(--sf-texto); margin: 24px 0; padding: 18px 20px; border: 1px solid var(--sfc-line); border-radius: 14px; background: #FBF8F6; color: var(--sf-tinta); }
.sfcal p.sfcal__titulo { margin: 0; font-family: var(--sf-display); font-size: 19px; font-weight: 700; color: var(--sfc-navy); }
.sfcal p.sfcal__sub { margin: 2px 0 12px; font-size: 14px; color: var(--sf-gris); }
.sfcal .sfcal__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.sfcal a.sfcal__btn, .sfcal button.sfcal__btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--sfc-navy); border-radius: 999px; background: #fff; color: var(--sfc-navy); font: 600 14px/1 var(--sf-texto); text-decoration: none; cursor: pointer; box-shadow: none; }
.sfcal a.sfcal__btn:hover, .sfcal button.sfcal__btn:hover { background: var(--sfc-navy); color: #fff; }
.sfcal a.sfcal__btn:focus-visible, .sfcal button.sfcal__btn:focus-visible { outline: 3px solid var(--sfc-carmin); outline-offset: 2px; }

.sfag { --sfc-navy: var(--sf-navy); --sfc-carmin: var(--sf-carmin); --sfc-line: var(--sf-linea); font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfag p.sfag__rango { margin: 0 0 8px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--sfc-carmin); font-weight: 700; }
.sfag h3.sfag__dia { margin: 22px 0 6px; font-family: var(--sf-display); font-size: 21px; color: var(--sfc-navy); }
.sfag ul.sfag__lista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sfc-line); }
.sfag li.sfag__item { display: grid; grid-template-columns: 56px 1fr; gap: 0 12px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--sfc-line); }
.sfag .sfag__hora { grid-row: span 2; font-weight: 700; color: var(--sfc-carmin); font-variant-numeric: tabular-nums; }
.sfag a.sfag__titulo { font-weight: 700; color: var(--sfc-navy); text-decoration: none; }
.sfag a.sfag__titulo:hover { text-decoration: underline; }
.sfag .sfag__lugar { font-size: 14px; color: var(--sf-gris); }
.sfag .sfag__estado { grid-column: 2; justify-self: start; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 1px 8px; border-radius: 3px; background: var(--sfc-carmin); color: #fff; }
.sfag li.sfag__item--postponed .sfag__estado { background: var(--sf-ambar-fondo); color: var(--sf-ambar); }
.sfag li.sfag__item--canceled .sfag__hora, .sfag li.sfag__item--postponed .sfag__hora { grid-row: span 3; }
.sfag li.sfag__item--canceled a.sfag__titulo { text-decoration: line-through; opacity: .7; }

/* ── [sf_minimapa] ─────────────────────────────────────── */
.sfmm { --sfc-navy: var(--sf-navy); --sfc-carmin: var(--sf-carmin); --sfc-line: var(--sf-linea); margin: 20px 0; border: 1px solid var(--sfc-line); border-radius: 14px; overflow: hidden; background: #fff; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfmm .sfmm__mapa { width: 100%; z-index: 0; background: #EFE9E4; }
.sfmm .sfmm__mapa img { max-width: none !important; }
.sfmm .sfmm__pin span { display: block; width: 30px; height: 30px; border-radius: 50% 50% 50% 0; border: 3px solid #fff; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(5, 21, 59, .35); }
.sfmm .sfmm__info { display: grid; gap: 10px; padding: 14px 16px 16px; }
.sfmm p.sfmm__dir { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: 15px; color: var(--sfc-navy); }
.sfmm p.sfmm__dir svg { flex: none; margin-top: 3px; color: var(--sfc-carmin); }
.sfmm p.sfmm__aviso { margin: 0; font-size: 13px; color: #6b5a2e; background: #FBF4E4; border-radius: 8px; padding: 6px 10px; }
.sfmm .sfmm__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.sfmm a.sfmm__btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--sfc-navy); border-radius: 999px; background: #fff; color: var(--sfc-navy); font: 600 14px/1 var(--sf-texto); text-decoration: none; }
.sfmm a.sfmm__btn:hover { background: var(--sfc-navy); color: #fff; }
.sfmm a.sfmm__btn--principal { background: var(--sfc-navy); color: #fff; }
.sfmm a.sfmm__btn--principal:hover { background: var(--sfc-carmin); border-color: var(--sfc-carmin); }
.sfmm a.sfmm__btn:focus-visible { outline: 3px solid var(--sfc-carmin); outline-offset: 2px; }

/* Estado del evento: cancelado / aplazado ([sf_estado_evento] y minimapa) */
.sfest { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 0 0 20px; padding: 14px 18px; border-radius: 6px; background: #FBEAEF; border-left: 4px solid var(--sf-carmin); font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfest--postponed { background: #FFF6E3; border-left-color: #C98A00; }
.sfest .sfest__etq { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--sf-carmin); }
.sfest--postponed .sfest__etq { color: var(--sf-ambar); }
.sfest .sfest__txt { font-size: 15px; }
.sfmm .sfmm__estado { display: inline-block; margin: 0 0 8px; padding: 1px 8px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--sf-carmin); color: #fff; }
.sfmm .sfmm__estado--postponed { background: var(--sf-ambar-fondo); color: var(--sf-ambar); }

/* Datos prácticos de la sede ([sf_datos_sede]) */
.sfsede { margin: 0 0 24px; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfsede h3.sfsede__titulo { margin: 0 0 10px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfsede dl.sfsede__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 24px; margin: 0; border-top: 1px solid var(--sf-linea); }
.sfsede .sfsede__fila { padding: 10px 0; border-bottom: 1px solid var(--sf-linea); }
.sfsede dt { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sf-carmin); }
.sfsede dd { margin: 2px 0 0; font-size: 15px; }
.sfsede .sfsede__socio { margin-top: 16px; padding: 14px 18px; border-radius: 6px; background: var(--sf-crema); }
.sfsede .sfsede__socio h4 { margin: 0 0 4px; font-size: 15px; color: var(--sf-navy); }
.sfsede .sfsede__socio p { margin: 0 0 6px; font-size: 15px; }

/* Boletín semanal ([sf_boletin]) */
.sfbol { max-width: 640px; margin: 0 0 24px; padding: 22px 24px; border-radius: 8px; background: var(--sf-crema); font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfbol h3.sfbol__titulo { margin: 0 0 4px; font-family: var(--sf-display); font-size: 22px; color: var(--sf-navy); }
.sfbol p.sfbol__sub { margin: 0 0 16px; font-size: 15px; color: var(--sf-gris); }
.sfbol .sfbol__aviso { margin: 0 0 16px; padding: 12px 14px; border-radius: 6px; background: #fff; border-left: 4px solid #C98A00; font-size: 15px; }
.sfbol .sfbol__aviso--ok { border-left-color: var(--sf-verde); }
.sfbol .sfbol__aviso--error { border-left-color: var(--sf-carmin); }
.sfbol .sfbol__form { display: grid; gap: 14px; }
.sfbol .sfbol__campo span { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; }
.sfbol .sfbol__campo input { width: 100%; padding: 10px 12px; border: 1px solid #C9C2BE; border-radius: 8px; background: #fff; font: 400 16px/1.4 var(--sf-texto); }
.sfbol fieldset.sfbol__ambito { margin: 0; padding: 0; border: 0; }
.sfbol .sfbol__ambito legend { margin-bottom: 6px; font-size: 14px; font-weight: 600; }
.sfbol label.sfbol__radio { display: block; margin: 4px 0; font-size: 15px; }
.sfbol .sfbol__elegir { margin-top: 10px; padding: 10px 14px; border-radius: 8px; background: #fff; }
.sfbol .sfbol__ayuda { margin: 0 0 6px; font-size: 13px; color: var(--sf-gris); }
.sfbol details.sfbol__comarca { border-bottom: 1px solid var(--sf-linea); padding: 6px 0; }
.sfbol details.sfbol__comarca summary { cursor: pointer; font-weight: 600; }
.sfbol .sfbol__n { font-weight: 400; font-size: 13px; color: var(--sf-gris); }
.sfbol label.sfbol__pena { display: block; margin: 4px 0 4px 26px; font-size: 14px; }
.sfbol label.sfbol__check { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.sfbol label.sfbol__check input { margin-top: 3px; }
.sfbol .sfbol__botones { display: flex; flex-wrap: wrap; gap: 10px; }
.sfbol button.sfbol__btn { justify-self: start; padding: 12px 22px; border: 0; border-radius: 8px; background: var(--sf-carmin); color: #fff; font: 700 16px/1 var(--sf-texto); cursor: pointer; }
.sfbol button.sfbol__btn:hover, .sfbol button.sfbol__btn:focus-visible { background: var(--sf-navy); }
.sfbol button.sfbol__btn--baja { background: transparent; color: var(--sf-carmin); border: 1px solid var(--sf-carmin); }
.sfbol .sfbol__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Lista de eventos ([sf_eventos]) */
.sfev { margin: 0 0 24px; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfev h3.sfev__titulo { margin: 0 0 10px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfev ul.sfev__lista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sf-linea); }
.sfev li.sfev__item { display: grid; grid-template-columns: 56px 1fr; gap: 14px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--sf-linea); }
.sfev .sfev__fecha { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 56px; border-radius: 8px; background: var(--sf-crema); line-height: 1; }
.sfev .sfev__dia { font-family: var(--sf-display); font-size: 24px; font-weight: 700; color: var(--sf-navy); font-variant-numeric: tabular-nums; }
.sfev .sfev__mes { margin-top: 3px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sf-carmin); }
.sfev .sfev__cuerpo { min-width: 0; }
.sfev p.sfev__meta { margin: 0; font-size: 13px; color: var(--sf-gris); }
.sfev a.sfev__evento { display: block; margin: 2px 0; font-weight: 700; color: var(--sf-navy); text-decoration: none; }
.sfev a.sfev__evento:hover, .sfev a.sfev__evento:focus-visible { text-decoration: underline; }
.sfev p.sfev__lugar, .sfev p.sfev__circuito { margin: 0; font-size: 14px; color: var(--sf-gris); }
.sfev p.sfev__circuito { color: var(--sf-carmin); font-weight: 600; }
.sfev .sfev__estado { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 3px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--sf-carmin); color: #fff; }
.sfev li.sfev__item--postponed .sfev__estado { background: var(--sf-ambar-fondo); color: var(--sf-ambar); }
.sfev li.sfev__item--canceled a.sfev__evento { text-decoration: line-through; opacity: .65; }
.sfev__vacio { color: var(--sf-gris); }

/* Web y redes ([sf_redes]): cada enlace lleva sfredes__link--instagram, --facebook, --youtube, --tiktok, --spotify, --x o --web */
.sfredes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; font-family: var(--sf-texto); }
.sfredes li { margin: 0; }
.sfredes a.sfredes__link { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--sf-navy); border-radius: 999px; color: var(--sf-navy); font-size: 14px; font-weight: 600; text-decoration: none; }
.sfredes a.sfredes__link:hover, .sfredes a.sfredes__link:focus-visible { background: var(--sf-navy); color: #fff; }

/* Destacado de portada ([sf_destacado]) */
.sfdest { margin: 0 0 32px; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfdest h2.sfdest__titulo { margin: 0 0 14px; font-family: var(--sf-display); font-size: clamp(24px, 3vw, 32px); color: var(--sf-navy); }
.sfdest .sfdest__rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.sfdest a.sfdest__tarjeta { display: flex; flex-direction: column; min-width: 0; border-radius: 10px; overflow: hidden; background: #fff; border: 1px solid var(--sf-linea); color: inherit; text-decoration: none; }
.sfdest a.sfdest__tarjeta:hover, .sfdest a.sfdest__tarjeta:focus-visible { border-color: var(--sf-navy); }
.sfdest .sfdest__img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--sf-crema); }
.sfdest .sfdest__cuerpo { display: grid; gap: 4px; padding: 12px 14px 14px; }
.sfdest .sfdest__cuando { font-size: 13px; font-weight: 700; color: var(--sf-carmin); }
.sfdest .sfdest__estado { justify-self: start; padding: 1px 7px; border-radius: 3px; font-size: 11px; font-weight: 700; text-transform: uppercase; background: var(--sf-ambar-fondo); color: var(--sf-ambar); }
.sfdest .sfdest__evento { font-weight: 700; color: var(--sf-navy); line-height: 1.3; }
.sfdest .sfdest__lugar { font-size: 14px; color: var(--sf-gris); }

/* Historial de la peña ([sf_historial_pena]) */
.sfhist { margin: 0 0 28px; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfhist h3.sfhist__titulo { margin: 0 0 4px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfhist p.sfhist__resumen { margin: 0 0 12px; color: var(--sf-gris); font-size: 14px; }
.sfhist details.sfhist__anio { border-top: 1px solid var(--sf-linea); padding: 8px 0; }
.sfhist details.sfhist__anio summary { cursor: pointer; }
.sfhist .sfhist__num { font-family: var(--sf-display); font-size: 19px; font-weight: 700; color: var(--sf-navy); }
.sfhist .sfhist__n { font-size: 13px; color: var(--sf-gris); }
.sfhist ul.sfhist__lista { margin: 8px 0 4px; padding: 0; list-style: none; display: grid; gap: 4px; }
.sfhist .sfhist__fecha { display: inline-block; min-width: 46px; font-size: 13px; font-weight: 700; color: var(--sf-carmin); font-variant-numeric: tabular-nums; }
.sfhist .sfhist__lista a { color: var(--sf-navy); text-decoration: none; }
.sfhist .sfhist__lista a:hover { text-decoration: underline; }
.sfhist h4.sfhist__sub { margin: 18px 0 8px; font-size: 15px; color: var(--sf-navy); }
.sfhist ul.sfhist__artistas { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.sfhist ul.sfhist__artistas li { margin: 0; padding: 2px 10px; border-radius: 999px; background: var(--sf-crema); font-size: 14px; }
.sfhist ul.sfhist__artistas a { color: var(--sf-navy); text-decoration: none; }
.sfhist .sfhist__veces { font-size: 12px; color: var(--sf-gris); }

/* Galería del evento ([sf_galeria_evento]) */
.sfgal { margin: 0 0 28px; font-family: var(--sf-texto); }
.sfgal h3.sfgal__titulo { margin: 0 0 10px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfgal .sfgal__rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.sfgal a.sfgal__foto { display: block; border-radius: 8px; overflow: hidden; background: var(--sf-crema); }
.sfgal a.sfgal__foto img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s; }
.sfgal a.sfgal__foto:hover img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .sfgal a.sfgal__foto img { transition: none; } }

/* Contacto con la peña ([sf_contacto_pena]) */
.sfcon { max-width: 640px; margin: 0 0 28px; font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfcon h3.sfcon__titulo { margin: 0 0 10px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfcon .sfcon__form { display: grid; gap: 12px; }
.sfcon .sfcon__fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.sfcon .sfcon__campo span { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; }
.sfcon .sfcon__campo input, .sfcon .sfcon__campo textarea { width: 100%; padding: 10px 12px; border: 1px solid #C9C2BE; border-radius: 8px; background: #fff; font: 400 16px/1.4 var(--sf-texto); color: var(--sf-tinta); }
.sfcon .sfcon__campo input:focus, .sfcon .sfcon__campo textarea:focus { outline: 3px solid rgba(158, 36, 70, .25); border-color: var(--sf-carmin); }
.sfcon label.sfcon__check { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.sfcon label.sfcon__check input { margin-top: 3px; }
.sfcon button.sfcon__btn { justify-self: start; padding: 12px 22px; border: 0; border-radius: 8px; background: var(--sf-carmin); color: #fff; font: 700 16px/1 var(--sf-texto); cursor: pointer; }
.sfcon button.sfcon__btn:hover, .sfcon button.sfcon__btn:focus-visible { background: var(--sf-navy); }
.sfcon .sfcon__aviso { margin: 0 0 12px; padding: 12px 14px; border-radius: 6px; background: var(--sf-crema); border-left: 4px solid var(--sf-verde); }
.sfcon .sfcon__aviso--error { border-left-color: var(--sf-carmin); }
.sfcon .sfcon__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Agenda semanal con carteles ([sf_agenda_semana imagenes="si"]) */
.sfag.sfag--img li.sfag__item { grid-template-columns: 72px 56px 1fr; gap: 0 14px; }
.sfag.sfag--img .sfag__img { grid-column: 1; grid-row: 1 / span 4; display: block; width: 72px; height: 96px; border-radius: 6px; overflow: hidden; background: var(--sf-crema); }
.sfag.sfag--img .sfag__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sfag.sfag--img .sfag__hora { grid-column: 2; grid-row: 1 / span 3; }
.sfag.sfag--img .sfag__titulo, .sfag.sfag--img .sfag__lugar, .sfag.sfag--img .sfag__estado { grid-column: 3; }
@media (max-width: 480px) {
	.sfag.sfag--img li.sfag__item { grid-template-columns: 64px 1fr; }
	.sfag.sfag--img .sfag__img { width: 64px; height: 86px; }
	.sfag.sfag--img .sfag__hora, .sfag.sfag--img .sfag__titulo, .sfag.sfag--img .sfag__lugar, .sfag.sfag--img .sfag__estado { grid-column: 2; grid-row: auto; }
}

/* [sf_compartir] — botones para compartir */
.sfcomp { margin: 2rem 0 1rem; }
.sfcomp__titulo { margin: 0 0 .5rem; font-family: var(--sf-texto); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sf-gris); }
.sfcomp__botones { display: flex; flex-wrap: wrap; gap: .5rem; }
.sfcomp__btn { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--sf-linea); border-radius: 999px; background: #fff; color: var(--sf-tinta); font: 600 .95rem/1.2 var(--sf-texto); text-decoration: none; cursor: pointer; transition: border-color .15s, background .15s; }
.sfcomp__btn:hover, .sfcomp__btn:focus-visible { border-color: var(--sf-navy); color: var(--sf-navy); }
.sfcomp__btn:focus-visible { outline: 2px solid var(--sf-navy); outline-offset: 2px; }
.sfcomp__btn--whatsapp, .sfcomp__btn--nativo { border-color: var(--sf-verde); background: var(--sf-verde); color: #fff; }
.sfcomp__btn--whatsapp:hover, .sfcomp__btn--whatsapp:focus-visible, .sfcomp__btn--nativo:hover { border-color: var(--sf-verde); color: #fff; filter: brightness(.92); }
.sfcomp__btn[hidden] { display: none; }

/* [sf_colaboradores] — logos de colaboradores */
.sfcol { margin: 2.5rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid var(--sf-linea); text-align: center; }
.sfcol__titulo { margin: 0 0 1rem; font-family: var(--sf-texto); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sf-gris); }
.sfcol__logos { display: flex; flex-wrap: wrap; gap: 1.25rem 2.5rem; align-items: center; justify-content: center; }
.sfcol__logo { display: inline-flex; align-items: center; }
.sfcol__logo img { display: block; width: auto; max-width: 160px; height: 56px; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.sfcol__logo:hover img, .sfcol__logo:focus-visible img { filter: none; opacity: 1; }
@media (prefers-reduced-motion: reduce) { .sfcomp__btn, .sfcol__logo img { transition: none; } }

/* [sf_cuando] / [sf_cerca] — qué hay hoy, este finde, cerca de ti */
.sfcu { font-family: var(--sf-texto); color: var(--sf-tinta); margin: 0 0 32px; }
.sfcu .sfcu__cab { margin-bottom: 12px; }
.sfcu h2.sfcu__titulo { margin: 0; font-family: var(--sf-display); font-size: clamp(26px, 4vw, 36px); line-height: 1.15; color: var(--sf-navy); text-wrap: balance; }
.sfcu p.sfcu__rango { margin: 4px 0 0; font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sf-carmin); }
.sfcu .sfcu__pestanas { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.sfcu button.sfcu__pestana { min-height: 40px; padding: 0 16px; border: 1px solid var(--sf-linea); border-radius: 999px; background: #fff; color: var(--sf-tinta); font: 600 15px/1 var(--sf-texto); cursor: pointer; }
.sfcu button.sfcu__pestana[aria-pressed="true"] { border-color: var(--sf-navy); background: var(--sf-navy); color: #fff; }
.sfcu .sfcu__cerca { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0 0 8px; }
.sfcu .sfcu__cerca[hidden] { display: none; }
.sfcu button.sfcu__btn-cerca { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--sf-carmin); color: #fff; font: 700 15px/1 var(--sf-texto); cursor: pointer; }
.sfcu button.sfcu__btn-cerca::before { content: ""; width: 10px; height: 10px; border: 2px solid currentColor; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.sfcu button.sfcu__btn-cerca:disabled { opacity: .75; cursor: default; }
.sfcu .sfcu__nota { font-size: 13px; color: var(--sf-gris); }
.sfcu h3.sfcu__fecha, .sfcu h3.sfcu__siguientes { margin: 20px 0 6px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); }
.sfcu .sfcu__dia[hidden] { display: none; }
.sfcu ul.sfcu__lista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sf-linea); }
.sfcu li.sfcu__item { display: grid; grid-template-columns: 64px 1fr; gap: 0 14px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--sf-linea); }
.sfcu .sfcu__img { display: block; width: 64px; height: 86px; border-radius: 4px; overflow: hidden; background: var(--sf-crema); }
.sfcu .sfcu__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sfcu p.sfcu__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 2px; font-size: 14px; }
.sfcu .sfcu__hora { font-weight: 700; color: var(--sf-carmin); font-variant-numeric: tabular-nums; }
.sfcu .sfcu__estado { padding: 1px 8px; border-radius: 3px; background: var(--sf-ambar-fondo); color: var(--sf-ambar); font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sfcu .sfcu__dist { padding: 1px 8px; border-radius: 999px; background: var(--sf-crema); color: var(--sf-navy); font-size: 12.5px; font-weight: 700; }
.sfcu .sfcu__dist[hidden] { display: none; }
.sfcu a.sfcu__evento { font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--sf-navy); text-decoration: none; }
.sfcu a.sfcu__evento:hover, .sfcu a.sfcu__evento:focus-visible { text-decoration: underline; }
.sfcu p.sfcu__lugar { margin: 2px 0 0; font-size: 14px; color: var(--sf-gris); }
.sfcu p.sfcu__vacio { margin: 8px 0; padding: 14px 18px; border-radius: 6px; background: var(--sf-crema); font-size: 16px; }
.sfcu p.sfcu__vacio[hidden] { display: none; }
.sfcu button:focus-visible { outline: 2px solid var(--sf-navy); outline-offset: 2px; }

/* [sf_avisame] — avisos de actuaciones de un artista */
.sfavi { max-width: 640px; margin: 24px 0; padding: 20px 22px; border-radius: 8px; background: var(--sf-crema); font-family: var(--sf-texto); color: var(--sf-tinta); }
.sfavi h3.sfavi__titulo { margin: 0 0 4px; font-family: var(--sf-display); font-size: 21px; color: var(--sf-navy); text-wrap: balance; }
.sfavi p.sfavi__sub { margin: 0 0 14px; font-size: 15px; color: var(--sf-gris); }
.sfavi .sfavi__aviso { margin: 0 0 14px; padding: 12px 14px; border-radius: 6px; background: #fff; border-left: 4px solid #C98A00; font-size: 15px; }
.sfavi .sfavi__aviso--ok { border-left-color: var(--sf-verde); }
.sfavi .sfavi__aviso--error { border-left-color: var(--sf-carmin); }
.sfavi .sfavi__form { display: grid; gap: 12px; }
.sfavi .sfavi__fila { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.sfavi .sfavi__campo { flex: 1 1 240px; }
.sfavi .sfavi__campo span { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; }
.sfavi .sfavi__campo input { width: 100%; padding: 10px 12px; border: 1px solid #C9C2BE; border-radius: 8px; background: #fff; font: 400 16px/1.4 var(--sf-texto); }
.sfavi label.sfavi__check { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.sfavi label.sfavi__check input { margin-top: 3px; }
.sfavi .sfavi__botones { display: flex; flex-wrap: wrap; gap: 10px; }
.sfavi button.sfavi__btn { padding: 12px 22px; border: 0; border-radius: 8px; background: var(--sf-carmin); color: #fff; font: 700 16px/1 var(--sf-texto); cursor: pointer; }
.sfavi button.sfavi__btn:hover, .sfavi button.sfavi__btn:focus-visible { background: var(--sf-navy); }
.sfavi button.sfavi__btn--sec { background: transparent; color: var(--sf-carmin); border: 1px solid var(--sf-carmin); }
.sfavi .sfavi__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
