/* Mapa de las peñas flamencas de Sevilla — sf-mama-pato
 * Todos los selectores van bajo .sfm para no depender de los estilos del tema. */
.sfm {
	--sfm-navy: #05153B;
	--sfm-blue: #2E5588;
	--sfm-carmin: #C83259;
	--sfm-carmin-dark: #9E2446;
	--sfm-carmin-soft: #FBEAEF;
	--sfm-beige: #D7C5C3;
	--sfm-cream: #F7F2EF;
	--sfm-paper: #FFFFFF;
	--sfm-ink: #1B2130;
	--sfm-muted: #555B6B;
	--sfm-line: #E4DCD8;
	--sfm-shadow: 0 8px 24px rgba(5, 21, 59, .16);
	--sfm-panel: 400px;
	--sfm-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--sfm-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	position: relative;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	height: var(--sfm-height, 86vh);
	min-height: 600px;
	border-radius: 18px;
	overflow: hidden;
	background: var(--sfm-paper);
	color: var(--sfm-ink);
	font-family: var(--sfm-body);
	font-size: 15px;
	line-height: 1.45;
	text-align: left;
	border: 1px solid var(--sfm-line);
	isolation: isolate;
}
.sfm--full { --sfm-vw: calc(100vw - var(--sfm-sbw, 0px)); width: var(--sfm-vw); max-width: var(--sfm-vw); margin-left: calc(50% - var(--sfm-vw) / 2); margin-right: calc(50% - var(--sfm-vw) / 2); border-radius: 0; border-width: 1px 0; }

/* Neutralizar estilos heredados del tema dentro del mapa */
.sfm *, .sfm *::before, .sfm *::after { box-sizing: border-box; }
.sfm h2, .sfm h3, .sfm p, .sfm ul, .sfm li { margin: 0; padding: 0; border: 0; background: none; letter-spacing: normal; text-transform: none; font-style: normal; }
.sfm ul { list-style: none; }
.sfm button, .sfm select, .sfm input {
	margin: 0; font-family: var(--sfm-body); letter-spacing: normal; text-transform: none; text-shadow: none;
	min-height: 0; min-width: 0; line-height: 1.2; box-shadow: none; outline: none;
}
.sfm button { cursor: pointer; -webkit-appearance: none; appearance: none; }
.sfm a, .sfm a:visited { color: inherit; text-decoration: none; border: 0; box-shadow: none; }
.sfm img { max-width: none; height: auto; border: 0; border-radius: 0; box-shadow: none; }

/* ── Filtros ──────────────────────────────────────────── */
.sfm .sfm__filters {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; padding: 10px 20px;
	background: var(--sfm-cream); border-bottom: 1px solid var(--sfm-line);
}
.sfm .sfm__group { display: flex; gap: 6px; align-items: center; flex: none; }
.sfm .sfm__label { flex: none; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sfm-muted); margin-right: 2px; }
.sfm .sfm__sep { flex: none; width: 1px; height: 26px; background: var(--sfm-line); margin: 0 4px; }
.sfm .sfm-chip {
	display: inline-flex; align-items: center; gap: 7px; flex: none; position: static; float: none;
	width: auto; max-width: none; margin: 0; vertical-align: middle;
	height: 36px; padding: 0 14px; border-radius: 999px;
	border: 1px solid #D9CFCB; background: var(--sfm-paper); color: var(--sfm-ink);
	font-size: 14px; font-weight: 500; white-space: nowrap;
	transition: background-color .15s, color .15s, border-color .15s;
}
.sfm .sfm-chip:hover { background: var(--sfm-paper); color: var(--sfm-navy); border-color: var(--sfm-navy); }
.sfm .sfm-chip[aria-pressed="true"] { background: var(--sfm-navy); border-color: var(--sfm-navy); color: #fff; }
.sfm .sfm-chip--carmin[aria-pressed="true"] { background: var(--sfm-carmin); border-color: var(--sfm-carmin); color: #fff; }
.sfm .sfm-chip__dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.sfm .sfm-chip__dot--pena { background: var(--sfm-navy); box-shadow: 0 0 0 2px #fff; }
.sfm .sfm-chip__dot--evento { background: var(--sfm-carmin); box-shadow: 0 0 0 2px #fff; }
.sfm select.sfm-select {
	flex: none; width: auto; min-width: 0; max-width: 220px; height: 36px; padding: 0 34px 0 14px; border-radius: 999px; margin: 0; float: none;
	border: 1px solid #D9CFCB; background-color: var(--sfm-paper); color: var(--sfm-ink); -webkit-text-fill-color: var(--sfm-ink);
	font-size: 14px; font-weight: 500; line-height: 34px; text-indent: 0;
	-webkit-appearance: none; appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--sfm-navy) 50%), linear-gradient(135deg, var(--sfm-navy) 50%, transparent 50%);
	background-position: calc(100% - 18px) 15px, calc(100% - 13px) 15px; background-size: 5px 5px; background-repeat: no-repeat;
}
.sfm select.sfm-select option, .sfm select.sfm-select optgroup { color: var(--sfm-ink); background: #fff; }
.sfm select.sfm-select optgroup { font-weight: 700; }
.sfm .sfm-chip:focus-visible, .sfm select.sfm-select:focus-visible, .sfm .sfm-card:focus-visible, .sfm .sfm-btn:focus-visible, .sfm .sfm__tab:focus-visible, .sfm .sfm__search:focus-visible {
	outline: 3px solid var(--sfm-carmin); outline-offset: 2px;
}

/* ── Cuerpo: mapa + listado ───────────────────────────── */
.sfm .sfm__body { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--sfm-panel); min-height: 0; }
.sfm .sfm__map { position: relative; min-height: 0; background: #E9E1DC; }
.sfm .sfm__map .leaflet-container { height: 100%; width: 100%; background: #E9E1DC; font-family: var(--sfm-body); }
.sfm .sfm__map .leaflet-tile-pane { filter: grayscale(.6) sepia(.3) saturate(.9) hue-rotate(-18deg) brightness(1.04) contrast(.94); }
.sfm .sfm__map .leaflet-control-attribution { font-size: 10px; background: rgba(255, 255, 255, .85); color: #333; }
.sfm .sfm__map .leaflet-control-attribution a { color: var(--sfm-blue); }
.sfm .sfm__map .leaflet-control-zoom { border: 0; box-shadow: var(--sfm-shadow); border-radius: 12px; overflow: hidden; }
.sfm .sfm__map .leaflet-control-zoom a { width: 38px; height: 38px; line-height: 38px; color: var(--sfm-navy); background: #fff; font-size: 20px; }
.sfm .sfm__legend {
	position: absolute; z-index: 700; right: 12px; bottom: 26px; display: flex; gap: 12px; padding: 8px 12px; border-radius: 10px;
	background: rgba(255, 255, 255, .94); box-shadow: var(--sfm-shadow); font-size: 12.5px; font-weight: 500; color: var(--sfm-ink); pointer-events: none;
}
.sfm .sfm__legend span { display: inline-flex; align-items: center; gap: 6px; }
.sfm .sfm__legend i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }

/* Listado */
.sfm .sfm__panel { display: flex; flex-direction: column; min-height: 0; background: var(--sfm-paper); border-left: 1px solid var(--sfm-line); }
.sfm .sfm__panel-head { padding: 14px 16px 10px; border-bottom: 1px solid var(--sfm-line); background: var(--sfm-paper); }
.sfm .sfm__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--sfm-cream); }
.sfm .sfm__tab { height: 38px; border: 0; border-radius: 9px; background: transparent; color: var(--sfm-muted); font-size: 15px; font-weight: 600; }
.sfm .sfm__tab:hover { background: rgba(255, 255, 255, .6); color: var(--sfm-navy); }
.sfm .sfm__tab[aria-selected="true"] { background: var(--sfm-paper); color: var(--sfm-navy); box-shadow: 0 1px 3px rgba(5, 21, 59, .15); }
.sfm .sfm__tab b { font-variant-numeric: tabular-nums; margin-left: 6px; color: var(--sfm-carmin); font-weight: 700; }
.sfm input.sfm__search {
	display: block; margin-top: 10px; width: 100%; height: 40px; padding: 0 14px; border-radius: 10px;
	border: 1px solid #D9CFCB; background: var(--sfm-paper); color: var(--sfm-ink); font-size: 14px;
}
.sfm input.sfm__search::placeholder { color: #7A7F8C; opacity: 1; }
.sfm .sfm__list { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 10px 24px; scroll-behavior: smooth; background: var(--sfm-paper); }
.sfm .sfm__day {
	position: sticky; top: 0; z-index: 1; margin: 0 -10px; padding: 12px 16px 6px; background: var(--sfm-paper);
	font-family: var(--sfm-display); font-size: 18px; font-weight: 700; color: var(--sfm-navy);
}
.sfm .sfm__day small { font-family: var(--sfm-body); font-size: 12.5px; font-weight: 500; color: var(--sfm-muted); margin-left: 8px; }
.sfm .sfm__empty { padding: 36px 20px; text-align: center; color: var(--sfm-muted); }
.sfm .sfm__empty strong { display: block; font-family: var(--sfm-display); font-size: 18px; color: var(--sfm-navy); margin-bottom: 6px; }

.sfm a.sfm-card, .sfm a.sfm-card:visited {
	display: grid; grid-template-columns: 68px 1fr; gap: 12px; align-items: start;
	width: 100%; padding: 10px; margin: 2px 0; border-radius: 12px; background: transparent; color: var(--sfm-ink);
	text-decoration: none; transition: background-color .15s;
}
.sfm a.sfm-card:hover, .sfm a.sfm-card:focus, .sfm a.sfm-card.is-hot { background: var(--sfm-cream); color: var(--sfm-ink); }
.sfm a.sfm-card.is-active { background: var(--sfm-carmin-soft); color: var(--sfm-ink); box-shadow: inset 4px 0 0 var(--sfm-carmin); }
.sfm .sfm-card__img { display: block; width: 68px; height: 86px; border-radius: 8px; object-fit: cover; background: var(--sfm-beige); }
.sfm a.sfm-card--pena { grid-template-columns: 52px 1fr; align-items: center; }
.sfm .sfm-card--pena .sfm-card__img { width: 52px; height: 52px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--sfm-navy); }
.sfm .sfm-card--pena .sfm-card__ini { display: grid; place-items: center; background: var(--sfm-navy); color: #fff; font-family: var(--sfm-display); font-weight: 700; font-size: 16px; }
.sfm .sfm-card__meta { display: block; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sfm-carmin-dark); font-variant-numeric: tabular-nums; }
.sfm .sfm-card__title {
	display: -webkit-box; margin: 3px 0 3px; font-family: var(--sfm-display); font-size: 16.5px; font-weight: 700; line-height: 1.25; color: var(--sfm-navy);
	-webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.sfm .sfm-card__where { display: block; font-size: 13px; color: var(--sfm-muted); }
.sfm .sfm-card__tags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 6px; }
.sfm .sfm-tag { display: inline-block; font-size: 11.5px; font-weight: 600; line-height: 1.5; padding: 1px 8px; border-radius: 999px; background: #EFE7E3; color: var(--sfm-navy); }
.sfm .sfm-tag--gratis { background: #E3F2E9; color: #17613D; }
.sfm .sfm-tag--aprox { background: #FFF1D6; color: #7A4F00; }
.sfm .sfm-tag--dist { background: var(--sfm-navy); color: #fff; }

/* ── Marcadores ───────────────────────────────────────── */
.sfm .sfm-marker { background: none; border: 0; }
.sfm .sfm-pin { position: relative; transform-origin: 50% 100%; animation: sfm-drop .45s cubic-bezier(.2, .9, .3, 1.3) both; }
.sfm .sfm-pin--pena {
	width: 46px; height: 46px; border-radius: 50%; background: #fff;
	box-shadow: 0 0 0 3px var(--sfm-navy), 0 6px 14px rgba(5, 21, 59, .35);
	display: grid; place-items: center;
}
.sfm .leaflet-marker-pane .sfm-pin--pena img { width: 40px !important; height: 40px !important; max-width: 40px !important; object-fit: cover; border-radius: 50%; }
.sfm .sfm-pin--pena .sfm-pin__fallback { width: 100%; height: 100%; border-radius: 50%; display: grid; place-items: center; background: var(--sfm-navy); color: #fff; font-family: var(--sfm-display); font-weight: 700; font-size: 15px; }
.sfm .sfm-pin__badge {
	position: absolute; top: -6px; right: -8px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px;
	background: var(--sfm-carmin); color: #fff; font-size: 12px; font-weight: 700; line-height: 22px; text-align: center; box-shadow: 0 0 0 2px #fff;
}
.sfm .sfm-pin--evento {
	width: 44px; height: 44px; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg);
	background: linear-gradient(160deg, #D8466C, var(--sfm-carmin) 60%, var(--sfm-carmin-dark));
	box-shadow: 0 6px 14px rgba(158, 36, 70, .45), inset 0 0 0 2px rgba(255, 255, 255, .9);
	animation-name: sfm-drop-rot;
}
.sfm .sfm-pin--evento .sfm-pin__date { position: absolute; inset: 0; transform: rotate(45deg); display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; line-height: 1; }
.sfm .sfm-pin__d { font-family: var(--sfm-display); font-weight: 700; font-size: 18px; font-variant-numeric: tabular-nums; color: #fff; }
.sfm .sfm-pin__m { font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-top: 2px; color: #fff; }
.sfm .sfm-pin--aprox { opacity: .8; }
.sfm .sfm-marker.is-hot .sfm-pin, .sfm .sfm-marker.is-active .sfm-pin { animation: sfm-pulse .9s ease-in-out infinite alternate; }
.sfm .sfm-marker.is-active { z-index: 9999 !important; }
.sfm .sfm-cluster { background: none; border: 0; }
.sfm .sfm-cluster__ring {
	width: 100%; height: 100%; border-radius: 50%; padding: 5px;
	background: conic-gradient(var(--sfm-carmin) 0 var(--p), var(--sfm-navy) var(--p) 100%);
	box-shadow: 0 6px 16px rgba(5, 21, 59, .35); animation: sfm-drop .4s ease-out both;
}
.sfm .sfm-cluster__core { width: 100%; height: 100%; border-radius: 50%; background: #fff; display: grid; place-items: center; font-family: var(--sfm-display); font-weight: 700; color: var(--sfm-navy); font-size: 17px; font-variant-numeric: tabular-nums; }
.sfm .sfm-me { width: 18px; height: 18px; border-radius: 50%; background: #2F80ED; box-shadow: 0 0 0 4px rgba(47, 128, 237, .25), 0 0 0 8px rgba(47, 128, 237, .12); }

/* ── Ventana emergente ────────────────────────────────── */
.sfm .sfm-popup .leaflet-popup-content-wrapper { padding: 0; border-radius: 14px; overflow: hidden; background: #fff; color: var(--sfm-ink); box-shadow: var(--sfm-shadow); }
.sfm .sfm-popup .leaflet-popup-content { margin: 0; width: 290px !important; font-family: var(--sfm-body); font-size: 14px; line-height: 1.45; color: var(--sfm-ink); }
.sfm .sfm-popup .leaflet-popup-tip { background: #fff; box-shadow: none; }
.sfm .sfm-popup a.leaflet-popup-close-button { width: 30px; height: 30px; top: 8px; right: 8px; border-radius: 50%; background: rgba(5, 21, 59, .75); color: #fff; font: 20px/28px var(--sfm-body); text-align: center; }
.sfm .sfm-pop__media { position: relative; height: 150px; background: var(--sfm-navy); overflow: hidden; }
.sfm .sfm-pop__media::before { content: ""; position: absolute; inset: -20px; background: var(--img) center / cover; filter: blur(16px) brightness(.65); }
.sfm .leaflet-popup-pane .sfm-pop__media img { position: relative; display: block; height: 100%; width: auto; max-width: 100%; margin: 0 auto; object-fit: contain; }
.sfm .sfm-pop__media--logo { background: var(--sfm-cream); display: grid; place-items: center; }
.sfm .sfm-pop__media--logo::before { display: none; }
.sfm .leaflet-popup-pane .sfm-pop__media--logo img { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; background: #fff; box-shadow: 0 0 0 3px var(--sfm-navy); }
.sfm .sfm-pop__ini { width: 104px; height: 104px; border-radius: 50%; display: grid; place-items: center; background: var(--sfm-navy); color: #fff; font-family: var(--sfm-display); font-size: 32px; font-weight: 700; }
.sfm .sfm-pop__body { padding: 14px 16px 16px; background: #fff; }
.sfm .sfm-pop__meta { display: block; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--sfm-carmin-dark); }
.sfm .sfm-pop__title { display: block; margin: 4px 0 6px; font-family: var(--sfm-display); font-size: 19px; font-weight: 700; line-height: 1.22; color: var(--sfm-navy); }
.sfm .sfm-pop__where { display: block; margin: 0 0 8px; font-size: 13px; color: var(--sfm-muted); }
.sfm .sfm-pop__people { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 12px; }
.sfm a.sfm-btn, .sfm a.sfm-btn:visited {
	display: flex; align-items: center; justify-content: center; width: 100%;
	height: 42px; border-radius: 10px; background: var(--sfm-carmin); color: #fff; font-weight: 600; font-size: 14.5px; text-decoration: none;
}
.sfm a.sfm-btn:hover, .sfm a.sfm-btn:focus { background: var(--sfm-carmin-dark); color: #fff; }
.sfm a.sfm-btn--navy, .sfm a.sfm-btn--navy:visited { background: var(--sfm-navy); color: #fff; }
.sfm a.sfm-btn--navy:hover, .sfm a.sfm-btn--navy:focus { background: var(--sfm-blue); color: #fff; }
.sfm .sfm-pop__next { margin: 0 0 12px; font-size: 13px; color: var(--sfm-ink); }
.sfm .sfm-pop__next li { padding: 6px 0; border-top: 1px solid var(--sfm-line); }
.sfm .sfm-pop__next b { color: var(--sfm-carmin-dark); font-variant-numeric: tabular-nums; margin-right: 6px; }

/* Acciones: cómo llegar / al calendario */
.sfm .sfm-pop__actions { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; margin-top: 8px; }
.sfm a.sfm-act, .sfm a.sfm-act:visited, .sfm .sfm-cal > summary.sfm-act {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 100%;
	height: 54px; padding: 0 4px; border-radius: 10px; border: 1px solid #D9CFCB; background: #fff;
	color: var(--sfm-navy); font-size: 12.5px; font-weight: 600; line-height: 1.1; text-decoration: none; cursor: pointer; white-space: nowrap;
	list-style: none;
}
.sfm .sfm-cal > summary.sfm-act::-webkit-details-marker { display: none; }
.sfm a.sfm-act:hover, .sfm a.sfm-act:focus, .sfm .sfm-cal > summary.sfm-act:hover, .sfm .sfm-cal[open] > summary.sfm-act { background: var(--sfm-cream); color: var(--sfm-navy); border-color: var(--sfm-navy); }
.sfm a.sfm-act:focus-visible, .sfm .sfm-cal > summary.sfm-act:focus-visible { outline: 3px solid var(--sfm-carmin); outline-offset: 2px; }
.sfm .sfm-act svg { flex: none; color: var(--sfm-carmin); }
.sfm .sfm-cal { position: relative; }
.sfm .sfm-cal__menu {
	position: absolute; left: 50%; transform: translateX(-50%); bottom: calc(100% + 6px); z-index: 5; width: 200px; padding: 6px;
	border-radius: 10px; background: #fff; box-shadow: var(--sfm-shadow); border: 1px solid var(--sfm-line);
}
.sfm .sfm-pop__actions > :last-child .sfm-cal__menu { left: auto; right: 0; transform: none; }
.sfm .sfm-pop__actions > :first-child .sfm-cal__menu { left: 0; right: auto; transform: none; }
.sfm .sfm-cal__menu a, .sfm .sfm-cal__menu a:visited, .sfm .sfm-cal__menu button {
	display: block; width: 100%; padding: 9px 10px; border: 0; border-radius: 7px; background: transparent; text-align: left;
	color: var(--sfm-ink); font-size: 13.5px; font-weight: 500; line-height: 1.3; text-decoration: none;
}
.sfm .sfm-cal__menu a:hover, .sfm .sfm-cal__menu a:focus, .sfm .sfm-cal__menu button:hover, .sfm .sfm-cal__menu button:focus { background: var(--sfm-cream); color: var(--sfm-navy); }

/* ── Móvil ────────────────────────────────────────────── */
.sfm .sfm__sheet-toggle { display: none; }
@media (max-width: 900px) {
	.sfm { height: var(--sfm-height-mobile, 88vh); border-radius: 0; }
	.sfm .sfm__filters { flex-wrap: nowrap; overflow-x: auto; padding: 8px 16px; scrollbar-width: none; }
	.sfm .sfm__filters::-webkit-scrollbar { display: none; }
	.sfm .sfm__label { display: none; }
	.sfm .sfm__body { grid-template-columns: 1fr; }
	.sfm .sfm__legend { bottom: 76px; }
	.sfm .sfm__map .leaflet-control-zoom { display: none; }
	.sfm .sfm__panel {
		position: absolute; z-index: 900; left: 0; right: 0; bottom: 0; height: 70%;
		border-radius: 16px 16px 0 0; border-left: 0; box-shadow: 0 -8px 24px rgba(5, 21, 59, .2);
		transform: translateY(calc(100% - 58px)); transition: transform .3s ease;
	}
	.sfm.is-sheet-open .sfm__panel { transform: none; }
	.sfm button.sfm__sheet-toggle {
		position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 44px; margin: -6px 0 6px;
		border: 0; background: transparent; color: var(--sfm-navy); font-size: 15px; font-weight: 700;
	}
	.sfm button.sfm__sheet-toggle::before { content: ""; position: absolute; top: 4px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 4px; background: #CFC4BF; }
}

@keyframes sfm-drop { from { opacity: 0; transform: translateY(-14px) scale(.6); } to { opacity: 1; transform: none; } }
@keyframes sfm-drop-rot { from { opacity: 0; transform: rotate(-45deg) translate(-10px, -10px) scale(.6); } to { opacity: 1; transform: rotate(-45deg); } }
@keyframes sfm-pulse { from { filter: drop-shadow(0 0 0 rgba(200, 50, 89, 0)); } to { filter: drop-shadow(0 0 10px rgba(200, 50, 89, .85)); } }
@media (prefers-reduced-motion: reduce) {
	.sfm .sfm-pin, .sfm .sfm-cluster__ring { animation: none !important; }
	.sfm .sfm-marker.is-hot .sfm-pin, .sfm .sfm-marker.is-active .sfm-pin { animation: none !important; filter: drop-shadow(0 0 8px rgba(200, 50, 89, .9)); }
	.sfm .sfm__panel { transition: none; }
	.sfm .sfm__list { scroll-behavior: auto; }
}

/* ── [sf_circuito_actuaciones] ───────────────────────── */
.sfc { --sfc-navy: #05153B; --sfc-carmin: #9E2446; --sfc-muted: #555B6B; --sfc-line: #E4DCD8; font-family: "Inter", system-ui, sans-serif; color: #1B2130; }
.sfc ul.sfc__cifras { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.sfc ul.sfc__cifras li { margin: 0; padding: 10px 16px; border-radius: 12px; background: #F7F2EF; color: var(--sfc-navy); font-size: 15px; }
.sfc ul.sfc__cifras b { font-family: "Playfair Display", Georgia, serif; font-size: 24px; margin-right: 4px; }
.sfc ol.sfc__lista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--sfc-line); }
.sfc .sfc__item { display: grid; gap: 2px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--sfc-line); }
.sfc .sfc__fecha { font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sfc-carmin); }
.sfc a.sfc__evento { font-family: "Playfair Display", Georgia, serif; font-size: 18px; font-weight: 700; color: var(--sfc-navy); text-decoration: none; }
.sfc a.sfc__evento:hover { text-decoration: underline; color: var(--sfc-navy); background: none; }
.sfc .sfc__pena { font-size: 14px; color: var(--sfc-muted); }
.sfc .sfc__reparto { font-size: 13.5px; color: #1B2130; }

/* ── Selector de día ─────────────────────────────────── */
.sfm label.sfm-fecha {
	display: inline-flex; align-items: center; gap: 6px; flex: none; height: 36px; margin: 0; padding: 0 6px 0 14px;
	border: 1px solid #D9CFCB; border-radius: 999px; background: var(--sfm-paper); color: var(--sfm-ink); cursor: pointer;
	font-size: 14px; font-weight: 500; white-space: nowrap;
}
.sfm label.sfm-fecha:hover, .sfm label.sfm-fecha:focus-within { border-color: var(--sfm-navy); }
.sfm label.sfm-fecha:focus-within { outline: 3px solid var(--sfm-carmin); outline-offset: 2px; }
.sfm .sfm-fecha__txt { color: var(--sfm-muted); }
.sfm label.sfm-fecha input[type="date"] {
	width: 138px; height: 32px; margin: 0; padding: 0 4px; border: 0; border-radius: 999px; background: transparent; box-shadow: none;
	color: var(--sfm-ink); -webkit-text-fill-color: var(--sfm-ink); font: 500 14px/32px var(--sfm-body, "Inter", system-ui, sans-serif); color-scheme: light;
}
.sfm label.sfm-fecha input[type="date"]:focus { outline: none; }
.sfm label.sfm-fecha.is-activa { background: var(--sfm-navy); border-color: var(--sfm-navy); }
.sfm label.sfm-fecha.is-activa .sfm-fecha__txt { color: rgba(255, 255, 255, .75); }
.sfm label.sfm-fecha.is-activa input[type="date"] { color: #fff; -webkit-text-fill-color: #fff; color-scheme: dark; }
.sfm .sfm__empty .sfm-chip--ir { margin-top: 14px; }
@media (max-width: 600px) {
	.sfm .sfm-fecha__txt { display: none; }
	.sfm label.sfm-fecha { padding-left: 8px; }
}
.sfm .sfm__day--curso { margin-top: 10px; border-top: 1px dashed var(--sfm-line); }
