/**
 * Componente público reutilizable de búsqueda de servicios.
 * El contexto contenedor aporta el acento y, cuando corresponde, los gutters.
 */

.turismo33-services {
	--turismo33-services-accent: var(--turismo33-accent, var(--turismo33-green-light, #a7c01a));
	--turismo33-services-ink: var(--turismo33-locality-ink, #253025);
	--turismo33-services-muted: var(--turismo33-locality-muted, #667064);
	color: var(--turismo33-services-ink);
	font-family: var(--turismo33-font-body, "DM Sans", sans-serif);
	inline-size: 100%;
}

.turismo33-services.turismo33-public--standalone {
	margin-inline: auto;
	max-inline-size: 80rem;
	padding: clamp(1.25rem, 4vw, 4rem);
}

.turismo33-services__header {
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-block-end: clamp(1.5rem, 3vw, 2.5rem);
}

.turismo33-services__intro {
	max-inline-size: 48rem;
}

.turismo33-services__eyebrow {
	color: var(--turismo33-services-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin: 0 0 0.35rem;
	text-transform: uppercase;
}

.turismo33-services__intro h2 {
	font-family: var(--turismo33-font-display, "Outfit", sans-serif);
	font-size: clamp(1.75rem, 4vw, 3rem);
	line-height: 1.05;
	margin: 0 0 0.65rem;
}

.turismo33-services__intro > :last-child,
.turismo33-services__card p {
	margin-block-end: 0;
}

.turismo33-services__categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-block-end: 1.25rem;
}

.turismo33-services .turismo33-busqueda-chip {
	align-items: center;
	background: color-mix(in srgb, var(--turismo33-services-accent) 12%, white);
	border: 1px solid color-mix(in srgb, var(--turismo33-services-accent) 45%, transparent);
	border-radius: 999px;
	color: var(--turismo33-services-ink);
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 700;
	min-block-size: 2.5rem;
	padding: 0.45rem 0.9rem;
	text-decoration: none;
}

.turismo33-services .turismo33-busqueda-chip:hover,
.turismo33-services .turismo33-busqueda-chip:focus-visible,
.turismo33-services .turismo33-busqueda-chip--activo {
	background: var(--turismo33-services-accent);
	color: #172000;
}

.turismo33-services__filters {
	align-items: end;
	background: #f6f7f3;
	border: 0;
	border-radius: 1rem;
	box-shadow: none;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	margin-block-end: 2rem;
	padding: 1rem;
}

.turismo33-services__filters .turismo33-campo {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-inline-size: 0;
}

.turismo33-services__filters label {
	font-size: 0.85rem;
	font-weight: 700;
}

.turismo33-services__filters :where(input, select) {
	background: #fff;
	border: 1px solid #cbd2c7;
	border-radius: 0.65rem;
	font: inherit;
	inline-size: 100%;
	min-block-size: 2.75rem;
	padding: 0.55rem 0.75rem;
}

.turismo33-services__filters :where(input, select):focus-visible {
	border-color: var(--turismo33-services-accent);
	outline: 3px solid color-mix(in srgb, var(--turismo33-services-accent) 35%, transparent);
}

.turismo33-services .turismo33-boton {
	align-items: center;
	background: var(--turismo33-services-accent);
	border: 1px solid transparent;
	border-radius: 999px;
	color: #172000;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	min-block-size: 2.75rem;
	padding: 0.55rem 1rem;
	text-decoration: none;
}

.turismo33-services .turismo33-boton-secundario {
	background: transparent;
	border-color: color-mix(in srgb, var(--turismo33-services-accent) 60%, #777);
}

.turismo33-services .turismo33-mapa-servicios__link {
	align-items: center;
	border: 1px solid var(--turismo33-services-accent);
	border-radius: 999px;
	color: inherit;
	display: inline-flex;
	font-weight: 700;
	min-block-size: 2.75rem;
	padding: 0.55rem 1rem;
	text-decoration: none;
}

.turismo33-services .turismo33-mapa-servicios__link:hover,
.turismo33-services .turismo33-mapa-servicios__link:focus-visible {
	background: var(--turismo33-services-accent);
	color: #172000;
}

.turismo33-services .turismo33-alerta {
	background: #f4f8fc;
	border: 1px solid #d7e3f1;
	border-radius: 1rem;
	margin-block-end: 1.5rem;
	padding: 1rem;
}

.turismo33-services .turismo33-boton:hover,
.turismo33-services .turismo33-boton:focus-visible {
	box-shadow: 0 0.4rem 1rem rgb(37 48 37 / 16%);
	transform: translateY(-1px);
}

.turismo33-services__grid {
	display: grid;
	gap: clamp(1rem, 2.5vw, 1.5rem);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.turismo33-services__card {
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--turismo33-services-accent) 32%, #d9ded6);
	border-block-start: 0.3rem solid var(--turismo33-services-accent);
	border-radius: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	overflow: hidden;
	padding: 1.1rem;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.turismo33-services__card:hover,
.turismo33-services__card:focus-within {
	box-shadow: 0 0.75rem 2rem rgb(37 48 37 / 14%);
	transform: translateY(-0.2rem);
}

.turismo33-services__card-media {
	display: grid;
	gap: 1rem;
	grid-template-columns: 4.5rem minmax(0, 1fr);
}

.turismo33-services .turismo33-busqueda-card__logo {
	align-items: center;
	aspect-ratio: 1;
	background: color-mix(in srgb, var(--turismo33-services-accent) 14%, #f5f5f5);
	border-radius: 0.75rem;
	display: flex;
	font-family: var(--turismo33-font-display, "Outfit", sans-serif);
	font-weight: 700;
	justify-content: center;
	overflow: hidden;
}

.turismo33-services .turismo33-busqueda-card__logo-img {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	object-fit: cover;
}

.turismo33-services__card-title {
	font-family: var(--turismo33-font-display, "Outfit", sans-serif);
	font-size: 1.35rem;
	line-height: 1.15;
	margin: 0 0 0.6rem;
}

.turismo33-services__card-title a {
	color: inherit;
	text-decoration-color: transparent;
	text-underline-offset: 0.15em;
}

.turismo33-services__card-title a:hover,
.turismo33-services__card-title a:focus-visible {
	color: var(--turismo33-services-accent);
	text-decoration-color: currentcolor;
}

.turismo33-services__card-category,
.turismo33-services__card-action {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.turismo33-services .turismo33-badge {
	background: #f0f3ed;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.25rem 0.55rem;
}

.turismo33-services__card-meta {
	display: grid;
	font-size: 0.9rem;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.turismo33-services__card-action {
	margin-block-start: auto;
}

.turismo33-services__map {
	border-radius: 1rem;
	margin-block-start: 2rem;
	overflow: hidden;
}

.turismo33-services__map iframe {
	border: 0;
	display: block;
	inline-size: 100%;
	min-block-size: 22rem;
}

.turismo33-services__empty {
	margin-block: 1.5rem 0;
}

.turismo33-services .turismo33-busqueda-resumen {
	color: var(--turismo33-services-muted);
	font-weight: 600;
}

.turismo33-services .turismo33-busqueda-paginacion {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-block-start: 2rem;
}

.turismo33-services .turismo33-busqueda-paginacion__link {
	align-items: center;
	border: 1px solid var(--turismo33-services-accent);
	border-radius: 50%;
	color: inherit;
	display: inline-flex;
	justify-content: center;
	min-block-size: 2.75rem;
	min-inline-size: 2.75rem;
	text-decoration: none;
}

.turismo33-services .turismo33-busqueda-paginacion__link:hover,
.turismo33-services .turismo33-busqueda-paginacion__link:focus-visible,
.turismo33-services .turismo33-busqueda-paginacion__link--actual {
	background: var(--turismo33-services-accent);
	color: #172000;
}

@media (max-width: 75rem) {
	.turismo33-services__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 56rem) {
	.turismo33-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {
	.turismo33-services__header {
		flex-direction: column;
	}

	.turismo33-services__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.turismo33-services__filters .turismo33-boton,
	.turismo33-services__card-action .turismo33-boton {
		inline-size: 100%;
	}

	.turismo33-services__card-media {
		grid-template-columns: 3.75rem minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.turismo33-services__card,
	.turismo33-services .turismo33-boton {
		transition: none;
	}
}
