/* ==========================================================================
   Offices Directory — searchable district cards.
   ========================================================================== */

.jcu-offices {
	--jcuo-purple: #68267e;
	--jcuo-soft: rgba(104, 38, 126, 0.08);
}

.jcu-offices__head {
	max-width: 720px;
	margin-bottom: 1.75rem;
}

.jcu-offices__kicker {
	display: block;
	color: var(--jcuo-purple);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
}

.jcu-offices__title {
	margin: 0;
	font-size: clamp(1.7rem, 3.5vw, 2.5rem);
	font-weight: 800;
	line-height: 1.15;
	color: #1c1c1f;
}

/* District search */

.jcu-offices__searchwrap {
	margin-bottom: 2rem;
}

.jcu-offices__search {
	width: 100%;
	max-width: 460px;
	border: 1px solid #d9d9d9;
	border-radius: 999px;
	padding: 0.7rem 1.3rem;
	font-family: inherit;
	font-size: 0.95rem;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.jcu-offices__search:focus {
	border-color: var(--jcuo-purple);
	box-shadow: 0 0 0 3px var(--jcuo-soft);
}

.jcu-offices__none {
	margin: 1rem 0 0;
	color: #777;
	font-size: 0.92rem;
}

/* Map */

/* display/width forced: an inherited inline-block was collapsing the
   wrapper to its (width-less) content, leaving a 2px-wide map. */
.jcu-offices__map {
	display: block !important;
	width: 100%;
	margin-bottom: 2rem;
}

.jcu-offices__map-canvas {
	width: 100%;
	height: 440px;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid #eee5f1;
	z-index: 1;
}

@media (max-width: 640px) {
	.jcu-offices__map-canvas {
		height: 320px;
	}
}

/* Purple CSS pin (no image assets needed) */

.jcu-map-pin {
	display: block;
	width: 22px;
	height: 22px;
	background: #68267e;
	border: 3px solid #fff;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 3px 10px rgba(30, 10, 38, 0.4);
}

.jcu-map-pin-wrap:hover .jcu-map-pin {
	background: #7d3269;
}

/* Popups */

.jcu-map-pop {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	font-family: "Google Sans Flex", -apple-system, sans-serif;
	font-size: 0.85rem;
	line-height: 1.5;
	min-width: 200px;
}

.jcu-map-pop strong {
	font-size: 0.98rem;
	color: #1c1c1f;
}

.jcu-map-pop__areas {
	color: #68267e;
	font-weight: 600;
	font-size: 0.78rem;
}

.jcu-map-pop__phones a {
	color: #68267e !important;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.jcu-map-pop__dir {
	margin-top: 0.2rem;
	color: #68267e !important;
	font-weight: 700;
	text-decoration: none;
}

.jcu-map-pop__dir:hover,
.jcu-map-pop__phones a:hover {
	text-decoration: underline;
}

.leaflet-popup-content-wrapper {
	border-radius: 12px;
}

/* Cards */

.jcu-offices__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.1rem;
}

.jcu-offices__card {
	background: #fff;
	border: 1px solid #eee5f1;
	border-radius: 14px;
	padding: 1.3rem 1.4rem;
	transition: transform 0.2s, box-shadow 0.2s;
}

.jcu-offices__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(30, 10, 38, 0.12);
}

.jcu-offices__name {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 0.6rem;
	font-size: 1.12rem;
	font-weight: 700;
	color: #1c1c1f;
}

.jcu-offices__name svg {
	width: 18px;
	height: 18px;
	color: var(--jcuo-purple);
	flex-shrink: 0;
}

.jcu-offices__areas {
	margin: 0 0 0.5rem;
	font-size: 0.88rem;
	line-height: 1.55;
	color: #555;
}

.jcu-offices__areas span {
	font-weight: 700;
	color: var(--jcuo-purple);
	font-size: 0.76rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-right: 0.3rem;
}

.jcu-offices__where {
	margin: 0 0 0.8rem;
	font-size: 0.9rem;
	color: #666;
}

.jcu-offices__phones {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0 0 0.7rem;
}

.jcu-offices__phones a {
	display: inline-block;
	background: var(--jcuo-soft);
	color: var(--jcuo-purple) !important;
	font-size: 0.85rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	transition: background 0.15s, color 0.15s;
}

.jcu-offices__phones a:hover {
	background: var(--jcuo-purple);
	color: #fff !important;
}

.jcu-offices__map {
	display: inline-block;
	color: var(--jcuo-purple) !important;
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: none;
}

.jcu-offices__map:hover {
	text-decoration: underline;
}
