/**
 * Location Detail (single hospital) — hero + floating contact card, styled map,
 * overview, key departments, doctors carousel, facilities.
 * .loc-hero and .ne-map mirror archive-hospital.css (per-template CSS convention).
 */

/* ---- Hero (shared) --------------------------------------------------- */
.loc-hero {
	position: relative;
	background: var(--ne-primary-500);
	background-image: var(--loc-hero-img, none);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
.loc-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(14,7,57,0.92) 0%, rgba(14,7,57,0.82) 50%, rgba(23,11,91,0.66) 100%);
}
.loc-hero__inner {
	position: relative;
	min-height: 380px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--ne-space-m);
	padding-block: var(--ne-space-5xl);
}
.loc-hero__title { margin: 0; color: var(--ne-neutral-100); font-size: var(--ne-h1-size); line-height: 1.08; }
.loc-hero__sub { margin: 0; color: var(--ne-neutral-200); font-size: var(--ne-h8-size); line-height: 1.6; max-width: 46ch; }

/* Split layout: lead text left, contact card right */
.loc-hero__inner--split {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: var(--ne-space-3xl);
}
.loc-hero__lead { flex: 1 1 auto; }

/* Floating contact card */
.loc-contact {
	flex: 0 0 340px;
	width: 340px;
	background: var(--ne-neutral-100);
	border-radius: 16px;
	padding: var(--ne-space-xl);
	box-shadow: var(--ne-shadow-deep);
	display: flex;
	flex-direction: column;
	gap: var(--ne-space-m);
}
.loc-contact__head {
	margin: 0 0 var(--ne-space-2xs);
	font-size: var(--ne-h8-size);
	font-weight: 700;
	color: var(--ne-primary-500);
}
.loc-contact__row { display: flex; align-items: flex-start; gap: var(--ne-space-s); }
.loc-contact__icon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 10px;
	background: var(--ne-secondary-a10); color: var(--ne-secondary-400);
}
.loc-contact__icon .ne-icon { width: 20px; height: 20px; }
.loc-contact__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.loc-contact__value { font-size: var(--ne-b1-size); font-weight: 700; color: var(--ne-primary-500); text-decoration: none; word-break: break-word; }
.loc-contact__value--sm { font-size: var(--ne-b2-size); font-weight: 600; line-height: 1.4; }
a.loc-contact__value:hover { color: var(--ne-secondary-400); }
.loc-contact__note { font-size: var(--ne-b3-size); color: var(--ne-neutral-700); }
.loc-contact__link {
	margin-top: 2px;
	font-size: var(--ne-b3-size);
	font-weight: 700;
	color: var(--ne-secondary-400);
	text-decoration: none;
}
.loc-contact__link:hover { text-decoration: underline; }

/* Styled/live map (.ne-map) now lives in components.css. */

/* ---- Accent heading (shared with emergency page) --------------------- */
.ne-accent-head {
	position: relative;
	margin: 0 0 var(--ne-space-l);
	padding-left: var(--ne-space-m);
	font-size: var(--ne-h6-size);
	line-height: 1.25;
	color: var(--ne-primary-500);
}
.ne-accent-head::before {
	content: "";
	position: absolute; left: 0; top: 4px; bottom: 4px;
	width: 5px; border-radius: 3px;
	background: linear-gradient(var(--ne-secondary-400), var(--ne-tertiary-400));
}

/* ---- Overview -------------------------------------------------------- */
.loc-overview__body { max-width: 78ch; color: var(--ne-neutral-800); line-height: var(--ne-b1-line); }
.loc-overview__body p { margin: 0 0 var(--ne-space-m); }

/* ---- Key departments ------------------------------------------------- */
.loc-dept { align-items: center; }
.loc-dept__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.loc-dept__title { font-weight: 700; color: var(--ne-primary-500); }
.loc-dept__sub { font-size: var(--ne-b3-size); font-weight: 400; color: var(--ne-neutral-700); }
.loc-dept .ne-btncard__icon img { width: 28px; height: 28px; object-fit: contain; }

/* ---- Facilities ------------------------------------------------------ */
.loc-facility { overflow: hidden; }
.loc-facility__media { aspect-ratio: 16 / 11; }
.loc-facility .ne-card__body { padding: var(--ne-space-m) var(--ne-space-l); }
.loc-facility .ne-card__title { font-size: var(--ne-h8-size); }

/* ---- Responsive ------------------------------------------------------ */
@media (max-width: 1024px) {
	.loc-hero__inner { min-height: 340px; padding-block: var(--ne-space-4xl); }
	.loc-hero__inner--split { flex-direction: column; align-items: flex-start; }
	.loc-contact { flex-basis: auto; width: 100%; max-width: 420px; }
}
@media (max-width: 640px) {
	.loc-hero__title { font-size: 30px; }
	.loc-contact { width: 100%; }
}

/* ================= unit websites ================= */
.ne-unitnav {
	background: #fff;
	border-bottom: 1px solid var(--ne-neutral-200);
	position: sticky; top: 0; z-index: 40;
}
.ne-unitnav__inner { display: flex; align-items: center; gap: var(--ne-space-xs); overflow-x: auto; }
.ne-unitnav__link {
	display: inline-block; padding: 14px 16px;
	font-weight: 600; font-size: 15px; white-space: nowrap;
	color: var(--ne-neutral-800); text-decoration: none;
	border-bottom: 3px solid transparent;
}
.ne-unitnav__link:hover { color: var(--ne-primary-400); }
.ne-unitnav__link.is-active { color: var(--ne-primary-500); border-bottom-color: var(--ne-secondary-300); }
.ne-unitnav__cta { margin-left: auto; flex: 0 0 auto; }

.loc-hero--unitsub { padding: 56px 0; }
/* Sub-page heroes wrap their copy in a plain .ne-container, which would
   otherwise paint UNDER the ::before gradient overlay. */
.loc-hero--unitsub .ne-container { position: relative; z-index: 1; }
.loc-hero--unitsub .loc-hero__title { margin: 0; }
.ne-unitpage__crumb { margin: 0 0 6px; font-size: 14px; }
.ne-unitpage__crumb a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.ne-unitpage__crumb a:hover { color: #fff; text-decoration: underline; }

.ne-unitcontact { display: grid; grid-template-columns: minmax(300px, 420px) 1fr; gap: var(--ne-space-xl); align-items: start; }
.loc-contact--flat { position: static; width: auto; box-shadow: none; border: 1px solid var(--ne-neutral-200); }
.ne-empty { color: var(--ne-neutral-700); }

@media (max-width: 900px) {
	.ne-unitcontact { grid-template-columns: 1fr; }
	.ne-unitnav__cta { display: none; }
}
