/* Siempre Fiel – perros. Usa los colores del tema (Kadence) con alternativa propia. */
.sfp {
	--sfp-accent: var(--global-palette1, #1b7d64);
	--sfp-accent-dark: var(--global-palette2, #14614d);
	--sfp-text: var(--global-palette4, #1f2937);
	--sfp-muted: var(--global-palette5, #4b5563);
	--sfp-line: var(--global-gray-400, #d9dee3);
	--sfp-soft: var(--global-palette8, #f3f7f5);
	--sfp-radius: 14px;
	color: var(--sfp-text);
}
.sfp-wrap.content-area { width: 100%; }
.sfp-archive, .sfp-single { max-width: 1140px; margin: 0 auto; padding: 24px 16px 56px; box-sizing: border-box; }
.sfp *, .sfp *::before, .sfp *::after { box-sizing: border-box; }

/* ---- Botones y enlaces ---- */
.sfp-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 22px;
	border: 2px solid var(--sfp-accent); border-radius: 999px; background: var(--sfp-accent); color: #fff;
	font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background .15s, color .15s;
}
.sfp-btn:hover, .sfp-btn:focus-visible { background: var(--sfp-accent-dark); border-color: var(--sfp-accent-dark); color: #fff; }
.sfp-btn--ghost { background: transparent; color: var(--sfp-accent); }
.sfp-btn--ghost:hover, .sfp-btn--ghost:focus-visible { background: var(--sfp-accent); color: #fff; }
.sfp-link { color: var(--sfp-accent); font-weight: 600; }
.sfp-more { text-align: center; margin-top: 28px; }

/* ---- Estado ---- */
.sfp-badge { display: inline-block; padding: 4px 12px; border-radius: 999px; background: #50575e; color: #fff; font-size: .8rem; font-weight: 700; line-height: 1.3; }
.sfp-badge--en_adopcion { background: #1b7d64; }
.sfp-badge--reservado { background: #8a5a00; }
.sfp-badge--en_acogida { background: #2b5fa8; }
.sfp-badge--adoptado { background: #50575e; }

/* ---- Listado ---- */
.sfp-archive__header { text-align: center; max-width: 720px; margin: 0 auto 24px; }
.sfp-archive__header h1 { margin-bottom: 8px; }
.sfp-archive__header p { color: var(--sfp-muted); margin: 0; }

.sfp-filters {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px 16px; align-items: end;
	margin: 0 0 28px; padding: 16px; border-radius: var(--sfp-radius); background: var(--sfp-soft);
}
.sfp-filters label span { display: block; margin-bottom: 4px; font-size: .85rem; font-weight: 700; }
.sfp-filters select { width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid var(--sfp-line); border-radius: 8px; background: #fff; color: var(--sfp-text); font-size: 1rem; }
.sfp-filters__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

.sfp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.sfp-grid > li { margin: 0; padding: 0; }
.sfp-empty { text-align: center; padding: 40px 0; color: var(--sfp-muted); }

.sfp-card { height: 100%; border: 1px solid var(--sfp-line); border-radius: var(--sfp-radius); background: #fff; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.sfp-card:hover, .sfp-card:focus-within { box-shadow: 0 8px 24px rgba(0, 0, 0, .12); transform: translateY(-2px); }
.sfp-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.sfp-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--sfp-soft); overflow: hidden; }
.sfp-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sfp-card__media .sfp-badge { position: absolute; top: 10px; left: 10px; box-shadow: 0 1px 4px rgba(0, 0, 0, .3); }
.sfp-card--adoptado .sfp-card__media img { filter: grayscale(.6); }
.sfp-card__body { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 18px; }
.sfp-card__name { font-size: 1.25rem; font-weight: 800; line-height: 1.2; }
.sfp-card__meta { color: var(--sfp-muted); font-size: .9rem; }
.sfp-card__excerpt { margin-top: 4px; font-size: .95rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.sfp-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: 3rem; opacity: .5; }
.sfp-noimg--big { aspect-ratio: 4 / 3; border-radius: var(--sfp-radius); background: var(--sfp-soft); }

.sfp-archive .navigation.pagination { margin-top: 32px; }
.sfp-archive .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.sfp-archive .page-numbers { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; justify-content: center; padding: 0 14px; border: 1px solid var(--sfp-line); border-radius: 999px; color: inherit; text-decoration: none; }
.sfp-archive .page-numbers.current { background: var(--sfp-accent); border-color: var(--sfp-accent); color: #fff; }

/* ---- Ficha ---- */
.sfp-back { margin: 0 0 12px; }
.sfp-back a { color: var(--sfp-accent); font-weight: 600; text-decoration: none; }
.sfp-dog__header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 20px; }
.sfp-dog__header h1 { margin: 0; }
.sfp-dog__top { display: grid; gap: 28px; }
@media (min-width: 800px) {
	.sfp-dog__top { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: start; }
}

.sfp-photos__main { margin: 0; border-radius: var(--sfp-radius); overflow: hidden; background: var(--sfp-soft); }
.sfp-photos__main img { display: block; width: 100%; height: auto; }
.sfp-photos__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.sfp-photos__thumbs li { margin: 0; }
.sfp-photos__thumbs a { display: block; aspect-ratio: 1; border: 3px solid transparent; border-radius: 10px; overflow: hidden; }
.sfp-photos__thumbs a[aria-current="true"] { border-color: var(--sfp-accent); }
.sfp-photos__thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; }

.sfp-dog__lead { margin: 0 0 18px; font-size: 1.15rem; line-height: 1.5; }
.sfp-facts { margin: 0 0 22px; border: 1px solid var(--sfp-line); border-radius: var(--sfp-radius); overflow: hidden; }
.sfp-facts > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; padding: 12px 16px; }
.sfp-facts > div:nth-child(odd) { background: var(--sfp-soft); }
.sfp-facts dt { font-weight: 700; margin: 0; }
.sfp-facts dd { margin: 0; text-align: right; }
.sfp-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.sfp-cta__done { margin: 0; padding: 14px 16px; border-radius: var(--sfp-radius); background: var(--sfp-soft); font-weight: 600; }

.sfp-video, .sfp-story { max-width: 820px; margin: 40px auto 0; }
.sfp-video__embed { position: relative; aspect-ratio: 16 / 9; }
.sfp-video__embed iframe, .sfp-video__embed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--sfp-radius); }
.sfp-video .wp-video { max-width: 100%; }

/* ---- Solicitud de adopción ---- */
.sfp-adopt { max-width: 680px; margin: 48px auto 0; padding: 28px 24px; border-radius: var(--sfp-radius); background: var(--sfp-soft); scroll-margin-top: 90px; }
.sfp-adopt h2 { margin-top: 0; }
.sfp-adopt .wpcf7-form p { margin-bottom: 1rem; }
.sfp-adopt .wpcf7-form input[type="text"], .sfp-adopt .wpcf7-form input[type="tel"], .sfp-adopt .wpcf7-form input[type="email"],
.sfp-adopt .wpcf7-form select, .sfp-adopt .wpcf7-form textarea { width: 100%; background: #fff; }
@media (min-width: 800px) { .sfp-adopt { padding: 36px 40px; } }
.sfp-adopt fieldset { border: 0; margin: 0 0 1rem; padding: 0; }
.sfp-adopt legend { padding: 0; font-weight: 600; }
.sfp-adopt .wpcf7-list-item { margin: 0 1.25rem 0 0; }
