/*
 * Solo Terrenos — catálogo y buscador
 * Todo está bajo .sto para no chocar con los estilos del tema.
 */

.sto,
.sto-archivo {
	--sto-acento: #C6A15B;
	/* La ficha ocupa toda la página, así que pinta su propio fondo: si lo dejara
	   transparente heredaría el del tema, que puede ser claro, y el texto se pierde. */
	--sto-fondo: #0E1714;
	--sto-tarjeta: #16211D;
	--sto-tarjeta-2: #1E2B26;
	--sto-tinta: #F2F4F0;
	--sto-tinta-2: #AEB8B1;
	--sto-tinta-3: #7E8A83;
	--sto-linea: #2A3832;
	--sto-linea-2: #3A4A43;
	--sto-wa: #25D366;
	--sto-radio: 12px;
	--sto-radio-sm: 8px;
	--sto-sombra: 0 1px 2px rgba(0,0,0,.25), 0 12px 32px -20px rgba(0,0,0,.8);

	box-sizing: border-box;
	color: var(--sto-tinta);
	font-size: 16px;
	line-height: 1.5;
}

.sto *,
.sto *::before,
.sto *::after { box-sizing: border-box; }

.sto img { max-width: 100%; height: auto; display: block; }

.sto-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* ---------------- Botones ---------------- */
.sto .sto-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	font: inherit;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .1s ease;
	white-space: nowrap;
}
.sto .sto-btn:active { transform: translateY(1px); }
.sto .sto-btn--solido { background: var(--sto-acento); color: #14201B; }
.sto .sto-btn--solido:hover { filter: brightness(1.08); color: #14201B; }
.sto .sto-btn--linea { background: transparent; border-color: var(--sto-linea-2); color: var(--sto-tinta); }
.sto .sto-btn--linea:hover { border-color: var(--sto-acento); color: var(--sto-acento); }
.sto .sto-btn--wa { background: var(--sto-wa); color: #06251A; }
.sto .sto-btn--wa:hover { filter: brightness(1.06); color: #06251A; }
.sto .sto-btn--ancho { width: 100%; }

.sto .sto-link {
	background: none;
	border: 0;
	padding: 6px 4px;
	font: inherit;
	font-size: .85rem;
	color: var(--sto-tinta-2);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.sto .sto-link:hover { color: var(--sto-acento); }

.sto a:focus-visible,
.sto button:focus-visible,
.sto input:focus-visible,
.sto select:focus-visible,
.sto textarea:focus-visible {
	outline: 2px solid var(--sto-acento);
	outline-offset: 2px;
	border-radius: 4px;
}

.sto .sto-ico { flex: none; }

/* ---------------- Barra de filtros ---------------- */
.sto-filtros { margin: 0 0 22px; }

.sto-filtros__barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 12px;
	background: var(--sto-tarjeta);
	border: 1px solid var(--sto-linea);
	border-radius: var(--sto-radio);
	box-shadow: var(--sto-sombra);
}

.sto-campo { position: relative; display: flex; align-items: center; }

.sto-campo--busca { flex: 1 1 220px; min-width: 180px; }
.sto-campo--busca .sto-ico--lupa {
	position: absolute;
	left: 12px;
	color: var(--sto-tinta-3);
	pointer-events: none;
}
.sto-campo--busca input {
	width: 100%;
	padding: 10px 12px 10px 34px;
}

.sto-filtros__resumen {
	/* Rejilla y no flex: con flex, cualquier regla del tema sobre los hijos
	   hacía saltar el conteo a un segundo renglón y se encimaba con las tarjetas. */
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 12px 16px;
	margin: 18px 0 16px;
}
@media (max-width: 600px) {
	.sto-filtros__resumen { grid-template-columns: 1fr; }
}
.sto-campo--orden select { min-width: 200px; }

.sto input[type="search"],
.sto input[type="text"],
.sto input[type="number"],
.sto input[type="tel"],
.sto input[type="email"],
.sto select,
.sto textarea {
	font: inherit;
	font-size: .875rem;
	color: var(--sto-tinta);
	background: var(--sto-tarjeta-2);
	border: 1px solid var(--sto-linea-2);
	border-radius: var(--sto-radio-sm);
	padding: 10px 12px;
	min-height: 42px;
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
}
.sto input::placeholder,
.sto textarea::placeholder { color: var(--sto-tinta-3); }

.sto select {
	padding-right: 32px;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 17px) 19px, calc(100% - 12px) 19px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	cursor: pointer;
}
.sto select option { background: #16211D; color: #F2F4F0; }

.sto .sto-pastilla {
	font: inherit;
	font-size: .875rem;
	font-weight: 500;
	color: var(--sto-tinta);
	background: var(--sto-tarjeta-2);
	border: 1px solid var(--sto-linea-2);
	border-radius: 999px;
	padding: 10px 15px;
	min-height: 42px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	cursor: pointer;
	white-space: nowrap;
}
.sto .sto-pastilla:hover { border-color: var(--sto-tinta-3); }
.sto .sto-pastilla.is-activo {
	border-color: var(--sto-acento);
	color: var(--sto-acento);
	background: color-mix(in srgb, var(--sto-acento) 12%, transparent);
}
.sto-caret {
	width: 0; height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	opacity: .65;
}

/* ---------------- Desplegables ---------------- */
.sto-desplegable { position: relative; }

.sto-pop {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 40;
	min-width: 290px;
	padding: 16px;
	background: var(--sto-tarjeta);
	border: 1px solid var(--sto-linea-2);
	border-radius: var(--sto-radio);
	box-shadow: 0 18px 40px -16px rgba(0,0,0,.85);
}
.sto-pop[hidden] { display: none; }
.sto-pop__titulo { margin: 0 0 10px; font-size: .8rem; color: var(--sto-tinta-2); }
.sto-radios { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.sto-radios label { display: flex; align-items: center; gap: 8px; font-size: .875rem; cursor: pointer; }
.sto-rango { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sto-rango label { display: flex; flex-direction: column; gap: 5px; }
.sto-rango span { font-size: .75rem; color: var(--sto-tinta-3); text-transform: uppercase; letter-spacing: .05em; }
.sto-pop__pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 14px; }

/* ---------------- Modal ---------------- */
.sto-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 20px; }
.sto-modal[hidden] { display: none; }
.sto-modal__fondo { position: absolute; inset: 0; background: rgba(6,12,10,.72); backdrop-filter: blur(2px); }
.sto-modal__caja {
	position: relative;
	width: min(560px, 100%);
	max-height: 85vh;
	display: flex;
	flex-direction: column;
	background: var(--sto-tarjeta);
	border: 1px solid var(--sto-linea-2);
	border-radius: 16px;
	box-shadow: 0 30px 70px -25px rgba(0,0,0,.9);
}
.sto-modal__cabeza,
.sto-modal__pie {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 16px 20px;
}
.sto-modal__cabeza { border-bottom: 1px solid var(--sto-linea); }
.sto-modal__pie { border-top: 1px solid var(--sto-linea); }
.sto-modal__cabeza h3 { margin: 0; font-size: 1.05rem; }
.sto-modal__cuerpo { padding: 20px; overflow-y: auto; display: grid; gap: 22px; }
.sto .sto-cerrar {
	background: none; border: 0; color: var(--sto-tinta-2);
	font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 4px 8px;
}
.sto .sto-cerrar:hover { color: var(--sto-tinta); }

.sto-grupo { border: 0; padding: 0; margin: 0; }
.sto-grupo legend { padding: 0; margin-bottom: 4px; font-size: .95rem; font-weight: 600; }
.sto-grupo__nota { margin: 0 0 10px; font-size: .78rem; color: var(--sto-tinta-3); }

.sto-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sto-chip { position: relative; }
.sto-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.sto-chip span {
	display: inline-block;
	padding: 8px 14px;
	font-size: .82rem;
	border: 1px solid var(--sto-linea-2);
	border-radius: 999px;
	cursor: pointer;
	transition: border-color .15s, background-color .15s, color .15s;
}
.sto-chip input:checked + span {
	border-color: var(--sto-acento);
	color: var(--sto-acento);
	background: color-mix(in srgb, var(--sto-acento) 14%, transparent);
}
.sto-chip input:focus-visible + span { outline: 2px solid var(--sto-acento); outline-offset: 2px; }

/* ---------------- Encabezado de resultados ---------------- */
.sto-encabezado { margin: 0; }
.sto-encabezado__titulo {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--sto-tinta-2);
}
.sto-encabezado__titulo strong { color: var(--sto-tinta); font-weight: 700; }

/* ---------------- Rejilla y tarjetas ---------------- */
.sto-resultados {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 18px;
	transition: opacity .18s ease;
}
.sto-resultados[aria-busy="true"] { opacity: .45; }

.sto-card {
	display: flex;
	flex-direction: column;
	background: var(--sto-tarjeta);
	border: 1px solid var(--sto-linea);
	border-radius: var(--sto-radio);
	overflow: hidden;
	transition: border-color .18s ease, transform .18s ease;
}
.sto-card:hover { border-color: var(--sto-linea-2); transform: translateY(-2px); }
.sto-card--vendido { opacity: .62; }

.sto-card__foto {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--sto-tarjeta-2);
	overflow: hidden;
}
.sto-card__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.sto-card:hover .sto-card__foto img { transform: scale(1.035); }
.sto-card__sinfoto {
	display: block; width: 100%; height: 100%;
	background: repeating-linear-gradient(45deg, var(--sto-tarjeta-2) 0 12px, var(--sto-tarjeta) 12px 24px);
}

.sto-card__badges {
	position: absolute;
	top: 10px; left: 10px; right: 10px;
	display: flex; flex-wrap: wrap; gap: 6px;
	pointer-events: none;
}
.sto-card__badges--inline { position: static; margin: 0 0 10px; }

.sto-badge {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 4px 9px;
	border-radius: 999px;
	background: rgba(9,16,13,.82);
	color: #fff;
	backdrop-filter: blur(3px);
}
.sto-badge--destacado { background: var(--sto-acento); color: #14201B; }
.sto-badge--lotes { background: rgba(9,16,13,.86); color: #fff; }
.sto-badge--estatus { background: #8A2F2F; color: #fff; }
/* Estatus del terreno: un color para cada estado. */
.sto-badge--apartado { background: #D98324; color: #1B1003; }
.sto-badge--vendido { background: #B3261E; color: #fff; }

.sto-card__cuerpo { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }

.sto-card__precio {
	margin: 0;
	font-size: 1.12rem;
	font-weight: 700;
	color: var(--sto-tinta);
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	font-variant-numeric: tabular-nums;
}
.sto-card__pm2 { font-size: .74rem; font-weight: 500; color: var(--sto-tinta-3); }

.sto-card__titulo { margin: 0; font-size: .95rem; font-weight: 600; line-height: 1.35; }
.sto-card__titulo a { color: var(--sto-tinta); text-decoration: none; }
.sto-card__titulo a:hover { color: var(--sto-acento); }

.sto-card__lugar { margin: 0; font-size: .82rem; color: var(--sto-tinta-2); }

.sto-card__datos {
	margin: 2px 0 0;
	display: flex; flex-wrap: wrap; gap: 6px 10px;
	font-size: .78rem; color: var(--sto-tinta-3);
}
.sto-card__datos span + span::before { content: "·"; margin-right: 10px; opacity: .6; }

.sto-card__acciones { display: flex; gap: 8px; margin-top: auto; padding-top: 12px; }
.sto-card__acciones .sto-btn { flex: 1; padding: 9px 12px; font-size: .8rem; }

/* ---------------- Vacío y cargar más ---------------- */
.sto-vacio {
	grid-column: 1 / -1;
	text-align: center;
	padding: 48px 20px;
	border: 1px dashed var(--sto-linea-2);
	border-radius: var(--sto-radio);
}
.sto-vacio__titulo { margin: 0 0 6px; font-size: 1.05rem; font-weight: 600; }
.sto-vacio__texto { margin: 0 0 16px; color: var(--sto-tinta-2); font-size: .9rem; }

.sto-mas { margin-top: 24px; display: flex; justify-content: center; }
.sto-mas[hidden] { display: none; }
.sto-mas .sto-btn { max-width: 320px; }

/* ---------------- Rejilla simple ---------------- */
.sto-grid-simple__titulo { margin: 0 0 16px; font-size: 1.4rem; }
.sto-grid-simple__pie { margin: 22px 0 0; text-align: center; }

/* ---------------- Ficha ---------------- */
.sto-ficha {
	background: var(--sto-fondo);
	padding: 32px 18px 60px;
}
.sto-ficha__cols { max-width: 1180px; margin: 0 auto; }
.sto-ficha__cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; max-width: 1180px; margin: 0 auto; }
.sto-ficha__principal {
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 26px;
}
/* Sin esto, cualquier hijo ancho (la tira de miniaturas, una tabla) estira
   la columna y saca la página de cuadro en móvil. */
.sto-ficha__principal > * { min-width: 0; }
.sto-ficha__lateral { min-width: 0; }

.sto-galeria { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.sto-galeria > * { min-width: 0; }
.sto-galeria__principal { position: relative; border-radius: var(--sto-radio); overflow: hidden; background: var(--sto-tarjeta-2); }
.sto-galeria__principal img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.sto-galeria__conteo {
	position: absolute; bottom: 12px; left: 12px;
	background: rgba(9,16,13,.8); color: #fff;
	font-size: .75rem; padding: 5px 10px; border-radius: 999px;
	font-variant-numeric: tabular-nums;
}
.sto-galeria__tira { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; min-width: 0; }
.sto .sto-galeria__mini {
	flex: none; width: 92px; height: 68px;
	padding: 0; border: 2px solid transparent; border-radius: var(--sto-radio-sm);
	overflow: hidden; cursor: pointer; background: var(--sto-tarjeta-2);
}
.sto .sto-galeria__mini img { width: 100%; height: 100%; object-fit: cover; }
.sto .sto-galeria__mini.is-activa { border-color: var(--sto-acento); }

.sto-ficha__encabezado { display: grid; gap: 6px; }
.sto-ficha__titulo { margin: 0; font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.15; }
.sto-ficha__lugar { margin: 0; color: var(--sto-tinta-2); }

.sto-datos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 1px;
	margin: 0;
	background: var(--sto-linea);
	border: 1px solid var(--sto-linea);
	border-radius: var(--sto-radio);
	overflow: hidden;
}
.sto-datos > div { background: var(--sto-tarjeta); padding: 14px 16px; }
.sto-datos dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sto-tinta-3); margin: 0 0 3px; }
.sto-datos dd { margin: 0; font-size: .95rem; font-weight: 600; font-variant-numeric: tabular-nums; }

.sto-ficha__bloque h2 { margin: 0 0 12px; font-size: 1.15rem; }
.sto-conteo-lotes { color: var(--sto-tinta-3); font-weight: 400; }

.sto-etiquetas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sto-etiquetas li {
	font-size: .82rem;
	padding: 7px 13px;
	border: 1px solid var(--sto-linea-2);
	border-radius: 999px;
	color: var(--sto-tinta-2);
}

.sto-tabla-wrap { overflow-x: auto; border: 1px solid var(--sto-linea); border-radius: var(--sto-radio); }
.sto-tabla { width: 100%; border-collapse: collapse; font-size: .875rem; min-width: 560px; }
.sto-tabla th, .sto-tabla td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--sto-linea); }
.sto-tabla thead th {
	background: var(--sto-tarjeta-2);
	font-size: .72rem; text-transform: uppercase; letter-spacing: .06em;
	color: var(--sto-tinta-3); font-weight: 600;
}
.sto-tabla tbody tr:last-child td { border-bottom: 0; }
.sto-tabla .sto-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sto-lote--vendido, .sto-lote--apartado { opacity: .55; }

.sto-pastilla-estatus {
	display: inline-block; font-size: .7rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .04em;
	padding: 3px 9px; border-radius: 999px;
	background: rgba(255,255,255,.08); color: var(--sto-tinta-2);
}
.sto-pastilla-estatus--disponible { background: rgba(37,211,102,.16); color: #6FE39C; }
.sto-pastilla-estatus--apartado { background: rgba(198,161,91,.18); color: var(--sto-acento); }
.sto-pastilla-estatus--vendido { background: rgba(180,70,70,.18); color: #E58A8A; }

.sto-ficha__descripcion p { color: var(--sto-tinta-2); }

/* ---------------- Tarjeta de contacto ---------------- */
.sto-ficha__lateral { position: sticky; top: 24px; }
.sto-contacto {
	background: var(--sto-tarjeta);
	border: 1px solid var(--sto-linea-2);
	border-radius: var(--sto-radio);
	padding: 20px;
	box-shadow: var(--sto-sombra);
}
.sto-contacto__precio {
	margin: 0;
	font-size: 1.5rem; font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-align: center;
}
.sto-contacto__sub { margin: 4px 0 16px; text-align: center; font-size: .82rem; color: var(--sto-tinta-3); }
.sto-contacto__lote {
	margin: 0 0 14px; padding: 9px 12px;
	background: color-mix(in srgb, var(--sto-acento) 14%, transparent);
	border: 1px solid var(--sto-acento);
	border-radius: var(--sto-radio-sm);
	font-size: .82rem; text-align: center;
}
.sto-contacto__lote[hidden] { display: none; }
.sto-contacto__botones { display: grid; gap: 9px; }

.sto-form { display: grid; gap: 11px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--sto-linea); }
.sto-form__titulo { margin: 0; font-size: .95rem; font-weight: 600; }
.sto-form__campo { display: grid; gap: 5px; }
.sto-form__campo > span { font-size: .76rem; color: var(--sto-tinta-3); text-transform: uppercase; letter-spacing: .05em; }
.sto-form__campo b { color: var(--sto-acento); }
.sto-form__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sto-form__aviso { margin: 0; font-size: .82rem; min-height: 1px; }
.sto-form__aviso.is-ok { color: #6FE39C; }
.sto-form__aviso.is-error { color: #E58A8A; }

/* ---------------- Responsivo ---------------- */
@media (max-width: 960px) {
	.sto-ficha__cols { grid-template-columns: 1fr; }
	.sto-ficha__lateral { position: static; }
}

@media (max-width: 720px) {
	.sto-filtros__barra {
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
		padding: 10px;
	}
	.sto-filtros__barra::-webkit-scrollbar { height: 0; }
	.sto-campo--busca { flex: 0 0 190px; min-width: 190px; }
	.sto-campo--orden { margin-left: 0; flex: 0 0 auto; }
	.sto-campo--orden select { min-width: 160px; }
	.sto-filtros__barra > * { scroll-snap-align: start; }

	.sto-pop { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; min-width: 0; }

	.sto-resultados { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }

	.sto-tabla { min-width: 0; }
	.sto-tabla thead { display: none; }
	.sto-tabla tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; padding: 12px 14px; border-bottom: 1px solid var(--sto-linea); }
	.sto-tabla tbody td { border: 0; padding: 3px 0; }
	.sto-tabla tbody td[data-th]::before {
		content: attr(data-th) ": ";
		font-size: .7rem; text-transform: uppercase; letter-spacing: .05em;
		color: var(--sto-tinta-3);
	}
	.sto-tabla tbody td:first-child { grid-column: 1 / -1; }
	.sto-tabla tbody td:first-child::before { content: none; }

	.sto-ficha { padding: 20px 14px 44px; }
}

@media (max-width: 420px) {
	.sto-resultados { grid-template-columns: 1fr; }
	.sto-card__acciones { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	.sto *, .sto *::before, .sto *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
	.sto-card:hover { transform: none; }
	.sto-card:hover .sto-card__foto img { transform: none; }
}

/* La columna de acción de la tabla de lotes no debe partirse en dos líneas. */
.sto-tabla td .sto-link { white-space: nowrap; }


/* ----------------------------------------------------------------
   Blindaje contra los estilos del tema.
   Muchos temas pintan color y fondo directamente sobre h1..h4, td, th,
   p y a. Como esas reglas ganan por especificidad a la herencia de .sto,
   aquí se reafirman los colores del catálogo.
   ---------------------------------------------------------------- */
.sto h1, .sto h2, .sto h3, .sto h4 { color: var(--sto-tinta); }
.sto p, .sto li, .sto dd, .sto label, .sto legend, .sto span { color: inherit; }
.sto dt { color: var(--sto-tinta-3); }
.sto a { color: inherit; }
.sto .sto-card__titulo a { color: var(--sto-tinta); }
.sto .sto-card__titulo a:hover { color: var(--sto-acento); }

.sto .sto-tabla,
.sto .sto-tabla tr,
.sto .sto-tabla td { background-color: transparent; color: var(--sto-tinta); }
.sto .sto-tabla thead th { background-color: var(--sto-tarjeta-2); color: var(--sto-tinta-3); }
.sto .sto-tabla tbody tr:nth-child(odd) td,
.sto .sto-tabla tbody tr:nth-child(even) td { background-color: transparent; }

/* Algunos temas ponen margen a los títulos dentro del contenido. */
.sto .sto-ficha__titulo,
.sto .sto-ficha__bloque h2,
.sto .sto-card__titulo { margin-top: 0; }

/* La plantilla de archivo no vive dentro de un contenedor del tema,
   así que el catálogo pone el suyo. Los shortcodes incrustados en
   Elementor no llevan esto: heredan el ancho de su sección. */
.sto-archivo {
	background: var(--sto-fondo);
	padding: 32px 18px 60px;
}
.sto-archivo .sto-buscador {
	max-width: 1180px;
	margin: 0 auto;
}
@media (max-width: 720px) {
	.sto-archivo { padding: 20px 14px 44px; }
}

/* Incrustado con shortcode dentro de una página de Elementor: el bloque pinta
   su propio fondo. Sin esto hereda el del tema —que aquí es claro— y el texto
   en tinta clara se pierde. */
.sto-buscador,
.sto-grid-simple {
	background: var(--sto-fondo);
	border-radius: 18px;
	padding: 26px 22px 32px;
}
/* En la plantilla de archivo el fondo ya lo pone .sto-archivo: el bloque
   interior vuelve a ser transparente para que la banda se vea completa. */
.sto-archivo .sto-buscador {
	background: none;
	border-radius: 0;
	padding: 0;
}
@media (max-width: 600px) {
	.sto-buscador,
	.sto-grid-simple { border-radius: 14px; padding: 18px 14px 24px; }
}
