/* Directorio Hispanos - Estilos públicos
   Paleta y tipografía alineadas al diseño de hispanosemprendedores.com
   (tema JNews + Elementor): acento rosa/vino F51957, títulos en Montserrat,
   texto en Lato, tarjetas blancas con esquinas de 12px y sombra suave. */

.dh-directorio,
.dh-form-wrapper,
.dh-single-negocio {
	--dh-accent: #f51957;
	--dh-accent-hover: #d10f45;
	--dh-heading-color: #121212;
	--dh-text-color: #5a5a5a;
	--dh-border-color: #e5e7eb;
	--dh-bg-suave: #ededed;
	--dh-bg-tenue: #faf6f7;
	--dh-accent-tint: rgba(245, 25, 87, 0.08);
	--dh-radius-tarjeta: 12px;
	--dh-radius-control: 8px;
	--dh-sombra-tarjeta: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	--dh-font-titulos: Montserrat, Helvetica, Arial, sans-serif;
	--dh-font-texto: Lato, Helvetica, Arial, sans-serif;

	font-family: var(--dh-font-texto);
	color: var(--dh-text-color);
}

.dh-directorio {
	max-width: 1200px;
	margin: 0 auto;
}

.dh-directorio h1,
.dh-directorio h2,
.dh-directorio h3,
.dh-form-wrapper h1,
.dh-form-wrapper h2,
.dh-single-negocio h1,
.dh-single-negocio h2 {
	font-family: var(--dh-font-titulos) !important;
	color: var(--dh-heading-color) !important;
	font-weight: 700 !important;
}

/* Encabezados de sección (Lo más destacado, Ubicación, Contacto…): tamaño
   contenido y una barra de acento, en vez de heredar el h2 gigante del tema.
   Con !important porque el tema del sitio suele traer su propio h2 con la
   misma especificidad (ej. ".entry-content h2"), y necesitamos ganar sí o sí. */
.dh-single-negocio h2 {
	font-size: 19px !important;
	line-height: 1.3 !important;
	margin: 30px 0 14px !important;
	padding-left: 13px !important;
	border-left: 3px solid var(--dh-accent);
}
.dh-single-sidebar h2:first-child {
	margin-top: 0 !important;
}

.dh-filtros {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
	align-items: center;
	background: #fff;
	border: 1px solid var(--dh-border-color);
	border-radius: var(--dh-radius-tarjeta);
	padding: 14px;
	box-shadow: var(--dh-sombra-tarjeta);
}

.dh-input-buscar,
.dh-select-rubro {
	padding: 10px 14px;
	border: 1px solid var(--dh-border-color);
	border-radius: var(--dh-radius-control);
	font-family: var(--dh-font-texto);
	font-size: 14px;
	flex: 1 1 200px;
	color: var(--dh-heading-color);
}

.dh-boton {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 999px;
	font-family: var(--dh-font-texto);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: none;
	transition: background-color 0.15s ease, opacity 0.15s ease;
}

.dh-boton:hover {
	opacity: 0.92;
}

.dh-boton-primario {
	background: var(--dh-accent);
	color: #fff;
}

.dh-boton-primario:hover {
	background: var(--dh-accent-hover);
	opacity: 1;
}

.dh-boton-secundario {
	background: var(--dh-accent-tint);
	color: var(--dh-accent);
	border: none;
	border-radius: var(--dh-radius-control);
	font-weight: 700;
}

.dh-boton-secundario:hover {
	background: var(--dh-accent);
	color: #fff;
	opacity: 1;
}

.dh-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 22px;
	margin-bottom: 30px;
}

.dh-tarjeta {
	border: 1px solid var(--dh-border-color);
	border-radius: var(--dh-radius-tarjeta);
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	box-shadow: var(--dh-sombra-tarjeta);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dh-tarjeta:hover {
	box-shadow: 0 10px 20px -4px rgba(0, 0, 0, 0.15), 0 4px 8px -2px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.dh-tarjeta-destacada {
	box-shadow: 0 0 0 2px var(--dh-accent), var(--dh-sombra-tarjeta);
}

.dh-tarjeta-imagen {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: #f3f4f6;
	overflow: hidden;
}

.dh-tarjeta-imagen img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dh-tarjeta-imagen-vacia {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 42px;
	color: #c1c7d0;
}

.dh-badge-destacado {
	position: absolute;
	top: 10px;
	left: 10px;
	background: var(--dh-accent);
	color: #fff;
	font-family: var(--dh-font-texto);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 5px 10px;
	border-radius: 999px;
}

.dh-tarjeta-contenido {
	padding: 16px;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 6px;
}

.dh-categoria-etiqueta {
	display: inline-block;
	align-self: flex-start;
	background: rgba(245, 25, 87, 0.08);
	color: var(--dh-accent);
	font-family: var(--dh-font-texto);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 4px 10px;
	border-radius: 999px;
}

.dh-tarjeta-titulo {
	margin: 4px 0 0;
	font-size: 18px;
	line-height: 1.3;
}

.dh-tarjeta-titulo a {
	color: var(--dh-heading-color);
	text-decoration: none;
}

.dh-estrellas-render {
	color: #f5a623;
	letter-spacing: 1px;
}

.dh-estrellas-total {
	color: #9a9a9a;
	font-size: 12px;
	margin-left: 4px;
}

.dh-tarjeta-extracto {
	color: var(--dh-text-color);
	font-size: 14px;
	margin: 4px 0;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dh-tarjeta-contacto {
	display: flex;
	gap: 12px;
	font-size: 18px;
	margin: 4px 0;
}

.dh-tarjeta-contacto a {
	text-decoration: none;
}

.dh-tarjeta-boton {
	text-align: center;
	margin-top: 6px;
}

.dh-paginacion {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 10px;
}

.dh-paginacion .page-numbers {
	padding: 8px 15px;
	border: 1px solid var(--dh-border-color);
	border-radius: 999px;
	text-decoration: none;
	color: var(--dh-heading-color);
	font-family: var(--dh-font-texto);
}

.dh-paginacion .page-numbers.current {
	background: var(--dh-accent);
	color: #fff;
	border-color: var(--dh-accent);
}

.dh-aviso {
	padding: 14px 16px;
	border-radius: var(--dh-radius-control);
	font-size: 14px;
	margin-bottom: 16px;
	font-family: var(--dh-font-texto);
}

.dh-aviso-info {
	background: #eff6ff;
	color: #1e40af;
}

.dh-aviso-exito {
	background: #ecfdf5;
	color: #065f46;
}

.dh-aviso-error {
	background: #fef2f2;
	color: #991b1b;
}

/* Formulario público */
.dh-form-wrapper {
	max-width: 680px;
}

.dh-formulario .dh-campo {
	margin-bottom: 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dh-formulario .dh-campo-grupo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

@media (max-width: 600px) {
	.dh-formulario .dh-campo-grupo {
		grid-template-columns: 1fr;
	}
}

.dh-formulario label {
	font-family: var(--dh-font-texto);
	font-weight: 600;
	font-size: 14px;
	color: var(--dh-heading-color);
}

.dh-formulario input[type="text"],
.dh-formulario input[type="email"],
.dh-formulario input[type="url"],
.dh-formulario input[type="file"],
.dh-formulario select,
.dh-formulario textarea {
	padding: 10px 14px;
	border: 1px solid var(--dh-border-color);
	border-radius: var(--dh-radius-control);
	font-family: var(--dh-font-texto);
	font-size: 14px;
	width: 100%;
	box-sizing: border-box;
	color: var(--dh-heading-color);
}

.dh-formulario input:focus,
.dh-formulario select:focus,
.dh-formulario textarea:focus {
	outline: none;
	border-color: var(--dh-accent);
	box-shadow: 0 0 0 3px rgba(245, 25, 87, 0.12);
}

.dh-nota {
	font-size: 12px;
	color: #9a9a9a;
}

/* Ficha individual */
.dh-single-negocio {
	max-width: 1100px;
	margin: 0 auto;
}

.dh-volver {
	display: inline-block;
	margin-bottom: 16px;
	text-decoration: none;
	color: var(--dh-accent);
	font-family: var(--dh-font-texto);
	font-weight: 600;
}

.dh-single-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	margin-bottom: 30px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--dh-border-color);
}

.dh-single-logo {
	flex: none;
	width: 104px;
	height: 104px;
	border-radius: var(--dh-radius-tarjeta);
	background: var(--dh-bg-tenue);
	border: 1px solid var(--dh-border-color);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.dh-single-logo img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: contain !important;
	padding: 10px;
	box-sizing: border-box;
}

.dh-single-titulo-wrap {
	flex: 1 1 260px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dh-single-etiquetas {
	display: flex;
	align-items: center;
	gap: 8px;
}

.dh-single-titulo-wrap h1 {
	margin: 0 !important;
	font-size: 28px !important;
	line-height: 1.25 !important;
}

.dh-single-titulo-wrap .dh-badge-destacado {
	position: static;
}

.dh-sin-resenas {
	margin: 0;
	font-size: 13px;
	color: var(--dh-text-color);
	font-style: italic;
}

.dh-single-cuerpo {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 34px;
}

@media (max-width: 782px) {
	.dh-single-cuerpo {
		grid-template-columns: 1fr;
	}
}

.dh-galeria-publica {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
	margin: 14px 0 26px;
}

.dh-galeria-publica img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: var(--dh-radius-control);
}

.dh-puntos-destacados {
	list-style: none !important;
	margin: 0 0 26px !important;
	padding: 0 !important;
	color: var(--dh-text-color);
	font-size: 14px;
	display: flex !important;
	flex-direction: column !important;
	gap: 9px !important;
}

.dh-puntos-destacados li {
	position: relative !important;
	padding-left: 22px !important;
	margin: 0 !important;
	line-height: 1.5;
	list-style: none !important;
}

.dh-puntos-destacados li::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	top: 7px !important;
	width: 7px !important;
	height: 7px !important;
	border-radius: 50% !important;
	background: var(--dh-accent) !important;
	display: block !important;
}

.dh-mapa {
	width: 100%;
	height: 320px;
	border-radius: var(--dh-radius-tarjeta);
	margin: 14px 0 26px;
	background: #f3f4f6;
}

.dh-single-sidebar {
	background: #fff;
	border: 1px solid var(--dh-border-color);
	border-radius: var(--dh-radius-tarjeta);
	box-shadow: var(--dh-sombra-tarjeta);
	padding: 20px;
	align-self: start;
}

.dh-contacto-lista,
.dh-redes-lista {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
}

.dh-contacto-lista a,
.dh-redes-lista a {
	color: var(--dh-heading-color);
	text-decoration: none;
}

.dh-contacto-lista a:hover,
.dh-redes-lista a:hover {
	color: var(--dh-accent);
}

.dh-horario {
	white-space: pre-line;
	font-size: 14px;
}

/* Reseñas */
.dh-resumen-calificacion {
	font-size: 16px;
	margin-bottom: 14px;
}

.dh-estrellas-selector {
	display: inline-flex;
	flex-direction: row-reverse;
	font-size: 26px;
	gap: 2px;
}

.dh-estrellas-selector input {
	display: none;
}

.dh-estrellas-selector label {
	color: #d1d5db;
	cursor: pointer;
}

.dh-estrellas-selector input:checked ~ label,
.dh-estrellas-selector label:hover,
.dh-estrellas-selector label:hover ~ label {
	color: #f5a623;
}

.dh-estrellas-resena {
	color: #f5a623;
	margin-bottom: 4px;
}
