/* NextGen Med site-specific styles layered on top of the Elementor export. */

/* ---- Header: solid white once scrolled (or while the mobile menu is open) ---- */
.elementor-90 .elementor-element.elementor-element-1db6faf6 {
	transition: background-color 0.25s ease, box-shadow 0.25s ease, padding 0.25s ease;
}
body.ngm-header-scrolled .elementor-90 .elementor-element.elementor-element-1db6faf6,
body.ngm-menu-open .elementor-90 .elementor-element.elementor-element-1db6faf6 {
	background-color: #fff !important;
	background-image: none !important;
	box-shadow: 0 4px 20px rgba(51, 51, 51, 0.08);
	--padding-top: 12px;
	--padding-bottom: 12px;
}
body.ngm-header-scrolled .elementor-90 .elementor-element-1db6faf6 .elementor-motion-effects-layer,
body.ngm-menu-open .elementor-90 .elementor-element-1db6faf6 .elementor-motion-effects-layer {
	background-color: #fff !important;
	background-image: none !important;
	opacity: 1 !important;
}

/* ---- Mobile / tablet menu ---- */
.ngm-menu-toggle { display: none; }
.ngm-mobile-menu[hidden] { display: none !important; }

@media (max-width: 1024px) {
	.elementor-90 .elementor-element.elementor-element-5d98b140 {
		--flex-direction: row;
		--justify-content: flex-end;
		--align-items: center;
		--gap: 14px;
		flex-direction: row;
		justify-content: flex-end;
		align-items: center;
		gap: 14px;
	}
	.ngm-menu-toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 48px;
		height: 48px;
		padding: 0 12px;
		border: 1px solid var(--e-global-color-accent) !important;
		border-radius: 0 !important;
		background: #fff !important; /* beats the kit's global purple button style */
		cursor: pointer;
		flex-shrink: 0;
	}
	.ngm-menu-toggle:hover, .ngm-menu-toggle:focus-visible { background: #f4eef6 !important; }
	.ngm-menu-toggle { align-items: center; }
	.ngm-menu-toggle .ngm-menu-toggle__bar {
		display: block !important;
		flex: 0 0 2px;
		height: 2px;
		width: 22px;
		background-color: #6F3E7F !important;
		transition: transform 0.2s ease, opacity 0.2s ease;
	}
	.ngm-menu-toggle[aria-expanded="true"] .ngm-menu-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.ngm-menu-toggle[aria-expanded="true"] .ngm-menu-toggle__bar:nth-child(2) { opacity: 0; }
	.ngm-menu-toggle[aria-expanded="true"] .ngm-menu-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

	.elementor-90 .elementor-element.elementor-element-1db6faf6 > .e-con-inner { position: relative; }
	.ngm-mobile-menu {
		position: absolute;
		top: calc(100% + 12px);
		left: 0;
		right: 0;
		max-height: calc(100vh - 120px);
		overflow-y: auto;
		background: #fff;
		padding: 16px 24px 24px;
		box-shadow: 0 16px 30px rgba(51, 51, 51, 0.12);
		border-top: 3px solid var(--e-global-color-accent);
		z-index: 20;
	}
	.ngm-mobile-menu__list { list-style: none; margin: 0; padding: 0; }
	.ngm-mobile-menu__list a {
		display: block;
		padding: 13px 4px;
		border-bottom: 1px solid var(--e-global-color-dc5e03c);
		font-family: "Lora", serif;
		font-size: 16px;
		text-transform: uppercase;
		letter-spacing: 0.02em;
		color: #333;
		text-decoration: none;
	}
	.ngm-mobile-menu__list a.is-active,
	.ngm-mobile-menu__list a:hover { color: var(--e-global-color-accent); }
	.ngm-mobile-menu__label {
		margin: 20px 0 4px;
		font-family: "Lora", serif;
		font-size: 13px;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: var(--e-global-color-accent);
	}
	.ngm-mobile-menu__list--sub a {
		text-transform: none;
		font-size: 16px;
		padding: 10px 4px;
	}
	.ngm-mobile-menu__actions {
		display: grid;
		gap: 10px;
		margin-top: 20px;
	}
	.ngm-mobile-menu__actions .ngm-btn { text-align: center; margin: 0; }
	.ngm-mobile-menu .ngm-btn.ngm-btn--outline {
		background: #fff !important;
		color: var(--e-global-color-accent) !important;
		border: 1px solid var(--e-global-color-accent);
	}
}
@media (max-width: 767px) {
	.elementor-90 .elementor-element.elementor-element-1db6faf6 { --padding-left: 16px; --padding-right: 16px; }
	.ngm-mobile-menu { left: -16px; right: -16px; }
	/* The menu holds "Book a consultation" on phones, so the header shows logo + menu button only. */
	.elementor-90 .elementor-element.elementor-element-238f4437 { display: none; }
}

/* ---- Card background images (template's originals were stock spa photos or missing) ---- */
.elementor-98 .elementor-element.elementor-element-6d1d90c:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-f799b44:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-619d28cc:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/prp-plateletrich-plasma-injection-therapy-knee-joint-pain-relief_96616-1882.jpg");
}
.elementor-98 .elementor-element.elementor-element-7a5fc2d:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-154a35f:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-2494814f:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/high-angle-patient-getting-elbow-prp-treatment_23-2149404695-1.jpg");
}
.elementor-98 .elementor-element.elementor-element-21e6e86:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-1c00493:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-11a127f2:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/side-view-woman-getting-elbow-prp-treatment_23-2149404696.jpg");
}
.elementor-98 .elementor-element.elementor-element-44df2e3:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-1f3f62a:not(.elementor-motion-effects-element-type-background),
.elementor-197 .elementor-element.elementor-element-44cd0bca:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/woman-beauty-clinic-filler-treatment_23-2148878907.jpg");
}
.elementor-197 .elementor-element.elementor-element-662dc757:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/girl-receiving-facial-treatment-beauty-salon_23-2148194172.jpg");
}
.elementor-197 .elementor-element.elementor-element-3a5f73c1:not(.elementor-motion-effects-element-type-background) {
	background-image: url("../../wp-content/uploads/2025/11/young-woman-doing-special-procedure-improvements-skin_7502-7571.avif");
}
.elementor-197 .elementor-element.elementor-element-619d28cc,
.elementor-197 .elementor-element.elementor-element-2494814f,
.elementor-197 .elementor-element.elementor-element-11a127f2,
.elementor-197 .elementor-element.elementor-element-44cd0bca,
.elementor-197 .elementor-element.elementor-element-662dc757,
.elementor-197 .elementor-element.elementor-element-3a5f73c1 {
	background-size: cover;
	background-position: center;
}
/* Darken treatment-card photos so the titles stay legible. */
.elementor-98 .elementor-element-6d1d90c, .elementor-98 .elementor-element-7a5fc2d,
.elementor-98 .elementor-element-21e6e86, .elementor-98 .elementor-element-44df2e3,
.elementor-197 .elementor-element-f799b44, .elementor-197 .elementor-element-154a35f,
.elementor-197 .elementor-element-1c00493, .elementor-197 .elementor-element-1f3f62a {
	position: relative;
}
.elementor-98 .elementor-element-6d1d90c::before, .elementor-98 .elementor-element-7a5fc2d::before,
.elementor-98 .elementor-element-21e6e86::before, .elementor-98 .elementor-element-44df2e3::before,
.elementor-197 .elementor-element-f799b44::before, .elementor-197 .elementor-element-154a35f::before,
.elementor-197 .elementor-element-1c00493::before, .elementor-197 .elementor-element-1f3f62a::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(180deg, rgba(40, 20, 48, 0) 35%, rgba(40, 20, 48, 0.75) 100%);
	pointer-events: none;
}
.elementor-98 .elementor-icon-box-title a, .elementor-197 .elementor-icon-box-title a,
.elementor-98 .elementor-icon-box-title, .elementor-197 .elementor-icon-box-title {
	position: relative;
	z-index: 1;
	color: #fff !important;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}

/* The template's arrow icon file is missing; draw the arrow in CSS instead. */
.ngm-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--e-global-color-accent);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
}
.ngm-arrow:hover { background: #4f2a5c; color: #fff; }

/* Provider headshot (only a small brochure crop is available) */
.ngm-headshot img {
	width: 100%;
	max-width: 300px;
	height: auto;
	border: 6px solid #fff;
	box-shadow: 0 10px 30px rgba(51, 51, 51, 0.15);
}

.elementor-195 .elementor-element.elementor-element-43c904a3 {
	display: flex;
	justify-content: center;
	padding-top: 80px;
}
.elementor-195 .elementor-element.elementor-element-43c904a3 img,
.elementor-98 .elementor-element.elementor-element-139b220e img {
	width: 100% !important;
	max-width: 300px;
	height: auto !important;
	object-fit: contain !important;
	border: 6px solid #fff;
	box-shadow: 0 10px 30px rgba(51, 51, 51, 0.15);
}
@media (max-width: 767px) {
	.elementor-195 .elementor-element.elementor-element-43c904a3 { position: static; padding-top: 40px; }
}

/* ---- Price list ---- */
.ngm-section {
	padding: 90px 16px;
	background: #fff;
}
.ngm-section--tint { background: var(--e-global-color-e47486d); }
.ngm-wrap {
	max-width: 1200px;
	margin: 0 auto;
}
.ngm-eyebrow {
	display: block;
	font-family: "Lora", serif;
	font-size: 13px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--e-global-color-accent);
	margin-bottom: 12px;
}
.ngm-section h2 {
	font-family: "Playfair Display", serif;
	font-weight: 600;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.17;
	color: #333;
	margin: 0 0 16px;
}
.ngm-lead {
	max-width: 720px;
	margin: 0 0 40px;
}
.ngm-prices {
	width: 100%;
	max-width: 820px;
	border-collapse: collapse;
	background: #fff;
	box-shadow: 0 10px 30px rgba(51, 51, 51, 0.08);
}
.ngm-prices th,
.ngm-prices td {
	padding: 16px 22px;
	text-align: left;
	border-bottom: 1px solid var(--e-global-color-dc5e03c);
	vertical-align: top;
}
.ngm-prices thead th {
	background: var(--e-global-color-accent);
	color: #fff;
	font-family: "Lora", serif;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 400;
}
.ngm-prices td:last-child,
.ngm-prices th:last-child {
	text-align: right;
	white-space: nowrap;
	font-weight: 600;
}
.ngm-prices tbody tr:nth-child(even) { background: var(--e-global-color-e47486d); }
.ngm-note {
	font-size: 15px;
	color: #6b6b6b;
	margin-top: 18px;
	max-width: 820px;
}

/* ---- Individual service pages ---- */
.ngm-service-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	align-items: start;
}
.ngm-content h2 { margin-top: 48px; }
.ngm-content h2:first-child { margin-top: 0; }
.ngm-content h3 {
	font-family: "Playfair Display", serif;
	font-weight: 600;
	font-size: 26px;
	color: #333;
	margin: 32px 0 12px;
}
.ngm-content p { margin: 0 0 18px; }
.ngm-content ul {
	margin: 0 0 22px;
	padding-left: 0;
	list-style: none;
}
.ngm-content li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 10px;
}
.ngm-content li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0.6em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--e-global-color-accent);
}
.ngm-content img.ngm-feature {
	width: 100%;
	height: auto;
	margin: 0 0 32px;
}
.ngm-sidebar {
	position: sticky;
	top: 130px;
	display: grid;
	gap: 24px;
}
.ngm-card {
	background: var(--e-global-color-e47486d);
	padding: 28px;
	border-top: 4px solid var(--e-global-color-accent);
}
.ngm-card h4 {
	font-family: "Playfair Display", serif;
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 14px;
	color: #333;
}
.ngm-card p { margin: 0 0 12px; font-size: 16px; }
.ngm-card .ngm-price {
	font-family: "Playfair Display", serif;
	font-size: 30px;
	color: var(--e-global-color-accent);
	margin: 0 0 4px;
}
.ngm-card ul { list-style: none; margin: 0; padding: 0; font-size: 16px; }
.ngm-card li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--e-global-color-dc5e03c); }
.ngm-card li:last-child { border-bottom: 0; }
.ngm-card a { color: var(--e-global-color-accent); }
.ngm-btn {
	display: inline-block;
	background: var(--e-global-color-accent);
	color: #F9F6F4 !important;
	font-family: "Lora", serif;
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	padding: 16px 28px;
	text-decoration: none;
	margin-top: 8px;
}
.ngm-btn:hover { background: #4f2a5c; }
.ngm-disclaimer {
	font-size: 14px;
	color: #6b6b6b;
	border-left: 3px solid var(--e-global-color-dc5e03c);
	padding-left: 14px;
	margin-top: 32px;
}
.ngm-related {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.ngm-related a {
	display: block;
	background: #fff;
	padding: 22px;
	font-family: "Playfair Display", serif;
	font-size: 20px;
	color: #333;
	text-decoration: none;
	border-bottom: 3px solid var(--e-global-color-accent);
}
.ngm-related a:hover { color: var(--e-global-color-accent); }

/* ---- Client photo thumbnails (sources are ~250px wide, so keep them small) ---- */
.ngm-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 250px));
	gap: 16px;
	margin: 32px 0 8px;
}
.ngm-section .ngm-gallery { justify-content: center; }
@media (min-width: 1025px) {
	.ngm-gallery--row { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
.ngm-gallery figure {
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: 6px;
	box-shadow: 0 6px 18px rgba(51, 51, 51, 0.1);
}
.ngm-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.06); /* trims the light screenshot borders on the originals */
}

.ngm-gallery a {
	display: block;
	width: 100%;
	height: 100%;
	cursor: zoom-in;
}
.ngm-gallery a img { transition: transform 0.25s ease; }
.ngm-gallery a:hover img,
.ngm-gallery a:focus-visible img { transform: scale(1.12); }

/* ---- Lightbox (assets/js/lightbox.js) ---- */
.ngm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px 64px;
	background: rgba(25, 12, 30, 0.88);
}
.ngm-lightbox.is-open { display: flex; }
.ngm-lightbox__figure {
	margin: 0;
	text-align: center;
}
.ngm-lightbox__figure img {
	display: block;
	width: auto;
	max-width: 90vw;
	max-height: 82vh;
	object-fit: contain;
	margin: 0 auto;
	border-radius: 6px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
	background: #fff;
}
.ngm-lightbox__figure figcaption {
	margin-top: 14px;
	color: #f1eaf3;
	font-family: "Lora", serif;
	font-size: 16px;
}
.ngm-lightbox button {
	position: absolute;
	border: 0;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	border-radius: 50%;
	width: 48px;
	height: 48px;
	font-size: 32px;
}
.ngm-lightbox button:hover,
.ngm-lightbox button:focus-visible { background: var(--e-global-color-accent); }
.ngm-lightbox__close { top: 18px; right: 18px; }
.ngm-lightbox__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.ngm-lightbox__next { right: 12px; top: 50%; transform: translateY(-50%); }
.ngm-lightbox button[hidden] { display: none; }
@media (max-width: 767px) {
	.ngm-lightbox { padding: 64px 12px; }
	.ngm-lightbox__prev, .ngm-lightbox__next { top: auto; bottom: 14px; transform: none; }
	.ngm-lightbox__prev { left: calc(50% - 60px); }
	.ngm-lightbox__next { right: calc(50% - 60px); }
}

/* ---- Brochure / business card ---- */
.ngm-brochure {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}
.ngm-brochure a,
.ngm-card-image {
	display: block;
	box-shadow: 0 10px 30px rgba(51, 51, 51, 0.12);
	background: #fff;
}
.ngm-brochure img,
.ngm-card-image img {
	display: block;
	width: 100%;
	height: auto;
}
.ngm-brochure figcaption {
	margin-top: 10px;
	font-size: 15px;
	color: #6b6b6b;
	text-align: center;
}
.ngm-brochure figure { margin: 0; }
.ngm-card-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 663px);
	gap: 48px;
	align-items: center;
}

@media (max-width: 1024px) {
	.ngm-brochure, .ngm-card-row { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
	.ngm-service-grid { grid-template-columns: 1fr; }
	.ngm-sidebar { position: static; }
}
@media (max-width: 767px) {
	.ngm-section { padding: 60px 16px; }
	.ngm-prices th, .ngm-prices td { padding: 12px 14px; font-size: 15px; }
}

/* =====================================================================
   Responsive fixes (tablet <= 1024px, phone <= 767px)
   ===================================================================== */

/* Card arrow glyph: the kit's link colour was hiding it at every size. */
.ngm-arrow, .ngm-arrow:visited { color: #fff !important; font-size: 22px !important; }

/* Media never wider than its column. */
.page-content img, .ngm-section img { max-width: 100%; }

@media (max-width: 1024px) {
	/* Card rows wrap instead of stacking into a single column. */
	.elementor-98 .elementor-element.elementor-element-7f3c44d,
	.elementor-197 .elementor-element.elementor-element-25f8015 {
		--flex-direction: row;
		--flex-wrap: wrap;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 12px !important;
	}
	/* Treatment photo cards (Home + Services): 2 per row, shorter. */
	.elementor-98 .elementor-element.elementor-element-6d1d90c,
	.elementor-98 .elementor-element.elementor-element-7a5fc2d,
	.elementor-98 .elementor-element.elementor-element-21e6e86,
	.elementor-98 .elementor-element.elementor-element-44df2e3,
	.elementor-197 .elementor-element.elementor-element-f799b44,
	.elementor-197 .elementor-element.elementor-element-154a35f,
	.elementor-197 .elementor-element.elementor-element-1c00493,
	.elementor-197 .elementor-element.elementor-element-1f3f62a {
		--width: calc(50% - 6px);
		--min-height: 340px;
		width: calc(50% - 6px);
		flex: 0 0 calc(50% - 6px);
		--margin-right: 0px; --margin-left: 0px;
		margin: 0 !important;
		min-height: 340px;
	}
	/* Six treatment cards on Services: 2 per row. */
	.elementor-197 .elementor-element.elementor-element-619d28cc,
	.elementor-197 .elementor-element.elementor-element-2494814f,
	.elementor-197 .elementor-element.elementor-element-11a127f2,
	.elementor-197 .elementor-element.elementor-element-44cd0bca,
	.elementor-197 .elementor-element.elementor-element-662dc757,
	.elementor-197 .elementor-element.elementor-element-3a5f73c1 {
		--width: calc(50% - 18px); width: calc(50% - 18px); flex: 0 0 calc(50% - 18px);
		--min-height: 380px;
	}
	.ngm-gallery, .ngm-gallery--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	/* Headings sized for phones. */
	.elementor-widget-heading h1.elementor-heading-title { font-size: 36px !important; line-height: 1.15 !important; }
	.elementor-widget-heading h2.elementor-heading-title { font-size: 30px !important; line-height: 1.2 !important; }
	.ngm-content h2 { font-size: 28px; margin-top: 36px; }
	.ngm-content h3 { font-size: 22px; }

	/* Home hero: show the photo (template hid it) and drop the empty 300px gap. */
	.elementor-98 .elementor-element.elementor-element-595795e0 { --padding-bottom: 40px; --min-height: 0px; --gap: 32px; }
	.elementor-98 .elementor-element.elementor-element-6f9cec88.elementor-hidden-mobile { display: flex !important; --padding-bottom: 0px; }
	.elementor-98 .elementor-element.elementor-element-30ce96c img { width: 100%; height: 360px; object-fit: cover; object-position: center 20%; border-radius: 180px 180px 0 0; }

	/* Photo cards: 2 per row on phones too, but compact. */
	.elementor-98 .elementor-element.elementor-element-6d1d90c,
	.elementor-98 .elementor-element.elementor-element-7a5fc2d,
	.elementor-98 .elementor-element.elementor-element-21e6e86,
	.elementor-98 .elementor-element.elementor-element-44df2e3,
	.elementor-197 .elementor-element.elementor-element-f799b44,
	.elementor-197 .elementor-element.elementor-element-154a35f,
	.elementor-197 .elementor-element.elementor-element-1c00493,
	.elementor-197 .elementor-element.elementor-element-1f3f62a {
		--min-height: 230px;
		min-height: 230px;
		--border-radius: 120px 120px 0 0;
		border-radius: 120px 120px 0 0;
		--padding-left: 8px; --padding-right: 8px; --padding-bottom: 14px;
	}
	.elementor-98 .elementor-icon-box-title, .elementor-197 .elementor-icon-box-title { font-size: 18px !important; line-height: 1.2 !important; }

	/* Six treatment cards: one per row, shorter. */
	.elementor-197 .elementor-element.elementor-element-619d28cc,
	.elementor-197 .elementor-element.elementor-element-2494814f,
	.elementor-197 .elementor-element.elementor-element-11a127f2,
	.elementor-197 .elementor-element.elementor-element-44cd0bca,
	.elementor-197 .elementor-element.elementor-element-662dc757,
	.elementor-197 .elementor-element.elementor-element-3a5f73c1 {
		--width: 100%; width: 100%; flex: 0 0 100%;
		--min-height: 300px;
	}

	/* Photo strips: 2 per row. */
	.ngm-gallery, .ngm-gallery--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

	/* About: image cards were collapsing to thin strips. */
	.elementor-195 .elementor-element.elementor-element-5a0aff5,
	.elementor-195 .elementor-element.elementor-element-b9113e8 { min-height: 240px; --min-height: 240px; }
	/* About: bio box padding, and the photo before the bio. */
	.elementor-195 .elementor-element.elementor-element-41e4a473 { --padding-top: 0px; --min-height: 0px; }
	.elementor-195 .elementor-element.elementor-element-18a20e81 { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; }
	.elementor-195 .elementor-element.elementor-element-43c904a3 { order: -1; padding-top: 32px; padding-bottom: 24px; }
	/* About: knee photo was a fixed 500px tall (stretched on phones). */
	.elementor-195 .elementor-element.elementor-element-253c12f img { height: 320px; object-fit: cover; }
	.elementor-195 .elementor-element.elementor-element-278fd0a8 img { height: 130px; object-fit: cover; }

	/* Price table: keep the price column readable. */
	.ngm-prices td:first-child { padding-right: 8px; }
	.ngm-section h2 { font-size: 30px; }

	/* Contact "Visit us" row stacks with a little breathing room. */
	.ngm-card-row { gap: 28px; }
}

@media (max-width: 400px) {
	.elementor-widget-heading h1.elementor-heading-title { font-size: 32px !important; }
	.elementor-98 .elementor-icon-box-title, .elementor-197 .elementor-icon-box-title { font-size: 16px !important; }
}

/* Photo cards: the title widget carried a fixed 298px top padding; scale it down. */
@media (max-width: 1024px) {
	.elementor-98 .elementor-element-7f3c44d .elementor-widget-icon-box,
	.elementor-197 .elementor-element-25f8015 .elementor-widget-icon-box { padding-top: 220px !important; }
}
@media (max-width: 767px) {
	.elementor-98 .elementor-element-7f3c44d .elementor-widget-icon-box,
	.elementor-197 .elementor-element-25f8015 .elementor-widget-icon-box { padding-top: 150px !important; }
}
/* Round 2 responsive fixes */
@media (max-width: 1024px) {
	/* Six treatment cards on Services: wrap into rows. */
	.elementor-197 .elementor-element.elementor-element-66dbf8 {
		--flex-direction: row; --flex-wrap: wrap;
		flex-direction: row !important; flex-wrap: wrap !important;
	}
	/* "Our approach" labels were cramped (long words poked out of their columns). */
	.elementor-98 .elementor-element-28a1fdf7 .elementor-image-box-title { font-size: 15px !important; line-height: 1.35 !important; overflow-wrap: anywhere; }
	.ngm-gallery--row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.ngm-gallery--row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Headshot: the only source is a small brochure crop, so keep it modest on phones. */
	.elementor-195 .elementor-element.elementor-element-43c904a3 img { max-width: 220px; }
	/* FAQ side photo: shorter on phones. */
	.elementor-98 .elementor-element.elementor-element-3dd2d083 { --min-height: 260px; min-height: 260px; }
	/* Treatment pages: tighter section padding. */
	.ngm-service-grid { gap: 36px; }
	.ngm-related a { font-size: 18px; padding: 18px; }
}
