/* =========================================================
   Óptica La Curacao — Página Sucursales
   Banner + selector de zona + listado con scroll propio + mapa.
   ========================================================= */

/* ---------- Hero ---------- */
.oc-suc-hero,
.oc-suc-hero__img,
.oc-suc-hero__img img {
	display: block;
	margin: 0;
}

.oc-suc-hero__img img {
	width: 100%;
	height: auto;
}

.oc-suc-hero__img--movil {
	display: none;
}

/* ---------- Sección ---------- */
.oc-suc-seccion {
	padding-block: 64px 76px;
}

.oc-suc-title {
	color: var(--wp--preset--color--slate-soft, #616161);
	font-size: clamp(26px, 3.4vw, 46px);
	font-weight: 400;
	line-height: 1.18;
	letter-spacing: -.5px;
	margin: 0 0 44px;
}

.oc-suc-title strong {
	color: var(--wp--preset--color--teal-deep, #0186B1);
	font-weight: 800;
}

/* ---------- Selector de zona ---------- */
.oc-suc-selector {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(16px, 3vw, 46px);
	max-width: 860px;
	margin: 0 auto 44px;
	padding: 12px 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--blue-deep, #065B9C);
}

.oc-suc-selector__label {
	color: #fff;
	font-size: clamp(17px, 2.2vw, 30px);
	font-weight: 800;
	letter-spacing: -.3px;
}

/* El chevron va en el contenedor: el del navegador no se puede estilar. */
.oc-suc-selector__campo {
	position: relative;
	display: block;
}

.oc-suc-selector__campo::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--wp--preset--color--slate-soft, #616161);
	border-bottom: 2px solid var(--wp--preset--color--slate-soft, #616161);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}

.oc-suc-selector__select {
	appearance: none;
	-webkit-appearance: none;
	min-width: clamp(160px, 22vw, 290px);
	padding: 12px 46px 12px 22px;
	border: 0;
	border-radius: 12px;
	background: var(--wp--preset--color--border, #E2E8EE);
	color: var(--wp--preset--color--slate-soft, #616161);
	font-family: inherit;
	font-size: clamp(14px, 1.4vw, 19px);
	line-height: 1.3;
	cursor: pointer;
}

.oc-suc-selector__select:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/* ---------- Cuerpo: listado + mapa ---------- */
.oc-suc-cuerpo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 34px;
	align-items: start;
}

/* La lista tiene scroll propio, como en el diseño (la barra queda a la
   izquierda del listado). */
.oc-suc-lista {
	max-height: 640px;
	margin: 0;
	padding: 0 4px 0 18px;
	list-style: none;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: #C9C9C9 #EDEDED;
	direction: rtl;
}

/* `direction: rtl` sólo se usa para llevar la barra al lado izquierdo; el
   contenido vuelve a leerse de izquierda a derecha. */
.oc-suc-lista > * {
	direction: ltr;
}

.oc-suc-lista::-webkit-scrollbar {
	width: 8px;
}

.oc-suc-lista::-webkit-scrollbar-track {
	background: #EDEDED;
	border-radius: 999px;
}

.oc-suc-lista::-webkit-scrollbar-thumb {
	background: #C9C9C9;
	border-radius: 999px;
}

.oc-suc-item {
	display: grid;
	grid-template-columns: 38% 1fr;
	gap: 16px;
	align-items: stretch;
	margin-bottom: 18px;
	cursor: pointer;
}

.oc-suc-item[hidden] {
	display: none;
}

.oc-suc-item__foto {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 150px;
	object-fit: cover;
	border-radius: 10px;
}

/* Sucursal sin imagen destacada: la ficha ocupa toda la fila. */
.oc-suc-item.sin-foto {
	grid-template-columns: 1fr;
}

.oc-suc-item__ficha {
	position: relative;
	padding: 18px 58px 18px 22px;
	border-radius: 14px;
	background: var(--wp--preset--color--mist, #F2F2F2);
	transition: background .15s ease, box-shadow .15s ease;
}

.oc-suc-item.is-active .oc-suc-item__ficha {
	background: #E8F3F8;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--teal-deep, #0186B1);
}

.oc-suc-item__nombre {
	color: var(--wp--preset--color--slate-soft, #616161);
	font-size: clamp(15px, 1.5vw, 21px);
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 12px;
}

/* Etiqueta y valor en dos columnas, como en el diseño. */
.oc-suc-item__datos {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 12px;
	margin: 0;
	color: var(--wp--preset--color--slate-soft, #616161);
	font-size: clamp(11px, 1vw, 13.5px);
	line-height: 1.35;
}

.oc-suc-item__datos dt {
	font-weight: 800;
}

.oc-suc-item__datos dd {
	margin: 0;
}

.oc-suc-item__datos a {
	color: inherit;
	text-decoration: none;
}

.oc-suc-item__datos a:hover {
	text-decoration: underline;
}

/* Flecha circular: es el botón de «ver en el mapa». */
.oc-suc-item__ver {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 2px solid var(--wp--preset--color--teal-deep, #0186B1);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--teal-deep, #0186B1);
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}

.oc-suc-item__ver svg {
	width: 16px;
	height: 16px;
}

.oc-suc-item__ver:hover,
.oc-suc-item.is-active .oc-suc-item__ver {
	background: var(--wp--preset--color--teal-deep, #0186B1);
	color: #fff;
}

.oc-suc-item__ver:focus-visible {
	outline: 2px solid var(--wp--preset--color--teal-deep, #0186B1);
	outline-offset: 3px;
}

/* ---------- Mapa ---------- */
.oc-suc-mapa {
	position: sticky;
	top: 24px;
	overflow: hidden;
	border-radius: 8px;
	background: var(--wp--preset--color--border, #E2E8EE);
}

.oc-suc-mapa__frame {
	display: block;
	width: 100%;
	height: 640px;
	border: 0;
}

.oc-suc-sin-resultados,
.oc-suc-vacio {
	color: var(--wp--preset--color--slate-soft, #616161);
	text-align: center;
	margin: 24px 0 0;
}

/* =========================================================
   Responsive
   ========================================================= */

/* ---------- Tablet (<= 980px) ---------- */
@media (max-width: 980px) {
	.oc-suc-seccion {
		padding-block: 46px 56px;
	}

	.oc-suc-cuerpo {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.oc-suc-lista {
		max-height: 520px;
	}

	/* Apilado, el mapa fijo estorbaría al desplazarse. */
	.oc-suc-mapa {
		position: static;
	}

	.oc-suc-mapa__frame {
		height: 420px;
	}
}

/* ---------- Móvil (<= 640px) ---------- */
@media (max-width: 640px) {
	.oc-suc-hero__img--ancho {
		display: none;
	}

	.oc-suc-hero__img--movil {
		display: block;
	}

	.oc-suc-title {
		margin-bottom: 28px;
	}

	/* La píldora deja de ser píldora: el rótulo va encima del desplegable. */
	.oc-suc-selector {
		flex-direction: column;
		gap: 12px;
		margin-bottom: 30px;
		padding: 18px 20px;
		border-radius: 22px;
		text-align: center;
	}

	.oc-suc-selector__campo,
	.oc-suc-selector__select {
		width: 100%;
	}

	.oc-suc-lista {
		max-height: none;
		padding: 0;
		overflow: visible;
		direction: ltr;
	}

	.oc-suc-item {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-bottom: 24px;
	}

	.oc-suc-item__foto {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}

	.oc-suc-item__ficha {
		padding: 16px 54px 16px 18px;
	}

	.oc-suc-mapa__frame {
		height: 320px;
	}
}
