/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Match the version-14 source site's CTA lift and service-card image zoom. */
.elementor-45 .elementor-element-12dd5101:hover img,
.elementor-45 .elementor-element-63025f26:hover img,
.elementor-45 .elementor-element-77323ddd:hover img,
.elementor-45 .elementor-element-2a5461d6:hover img,
.elementor-45 .elementor-element-51ee093:hover img,
.elementor-45 .elementor-element-62fe7c8e:hover img {
	transform: scale(1.045);
}

/* Program-directory card interaction from the version-14 source. */
.elementor-63 .elementor-element-a71b440:hover img,
.elementor-63 .elementor-element-6749961a:hover img,
.elementor-63 .elementor-element-37189aab:hover img,
.elementor-63 .elementor-element-616999ed:hover img,
.elementor-63 .elementor-element-264bdc8:hover img,
.elementor-63 .elementor-element-9f1a883:hover img {
	transform: scale(1.04);
}

.avensia-button-primary:hover,
.avensia-button-outline-light:hover {
	transform: translateY(-2px);
}

/* Remove the header's old per-element green focus rings. Keep a clear
   keyboard cue through underlined labels and a dark logo treatment. */
.elementor-location-header :is(a, button):focus {
	outline: none !important;
	box-shadow: none !important;
}

.elementor-location-header :is(a, button):focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.elementor-location-header a:focus-visible img {
	filter: brightness(0.75);
}

/* The source desktop Programs flyout keeps its paper background on hover. */
.elementor-location-header .elementor-element-728cd4d > a:hover {
	background-color: transparent !important;
}

/* Atomic div blocks default to 10px padding; the source About hero is edge-to-edge. */
.elementor-118 .elementor-element-764b3af9 {
	padding: 0;
}

/* Match the September 2026 source mobile navigation redesign. */
@media (max-width: 980px) {
	.elementor-element-66e98e57 {
		box-sizing: border-box !important;
		height: calc(100dvh - 78px) !important;
		padding: 32px 24px max(28px, env(safe-area-inset-bottom)) !important;
		align-items: center !important;
		background: var(--avensia-navy) !important;
		overscroll-behavior: contain;
		z-index: 49 !important;
	}

	.elementor-element-66e98e57::before,
	.elementor-element-6b0e9b0f::after {
		display: block;
		width: min(620px, 100%);
		margin-inline: auto;
		padding-inline-start: 2px;
		color: var(--avensia-green);
		font-family: var(--avensia-font-sans);
		font-size: .67rem;
		font-weight: 700;
		letter-spacing: .18em;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.elementor-element-66e98e57::before {
		content: "Programs";
		position: static !important;
		margin-bottom: 8px;
	}

	.elementor-element-66e98e57 > * {
		width: min(620px, 100%) !important;
		margin-inline: auto !important;
	}

	.elementor-element-66e98e57 [data-id="759e5069"] {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		padding: 10px 2px 17px !important;
		font-size: 2rem !important;
	}

	.elementor-element-66e98e57 [data-id="759e5069"]::after {
		content: "\2197";
		color: var(--avensia-green);
		font-family: var(--avensia-font-sans);
		font-size: 1rem;
	}

	.elementor-element-6b0e9b0f {
		display: flex !important;
		flex-direction: column !important;
		gap: 0 !important;
		margin: 0 auto !important;
		padding: 0 !important;
		background: transparent !important;
		border-top: 1px solid rgba(255, 255, 255, .14);
	}

	.elementor-element-6b0e9b0f::after {
		content: "Explore";
		margin: 27px 0 8px;
	}

	.elementor-element-6b0e9b0f > a {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		min-height: 45px;
		padding: 10px 2px !important;
		color: rgba(255, 255, 255, .78) !important;
		background: transparent !important;
		border-bottom: 1px solid rgba(255, 255, 255, .14);
		font-size: .82rem !important;
	}

	.elementor-element-6b0e9b0f > a::after {
		content: "\2192";
		color: var(--avensia-green);
		font-weight: 400;
	}

	.elementor-element-66e98e57 [data-id="38519dac"],
	.elementor-element-66e98e57 [data-id="4d44c0fb"],
	.elementor-element-66e98e57 [data-id="434715"] {
		padding: 15px 2px !important;
		font-size: 1.55rem !important;
	}

	.elementor-element-66e98e57 [data-id="46c6b7df"] {
		min-height: 54px;
		margin-top: 24px !important;
		padding-inline: 20px !important;
		text-align: left !important;
	}

	body.admin-bar .elementor-element-66e98e57 {
		height: calc(100dvh - 110px) !important;
	}
}

@media (max-width: 782px) {
	body.admin-bar .elementor-element-66e98e57 {
		height: calc(100dvh - 124px) !important;
	}
}

@media (max-width: 767px) {
	.elementor-element-66e98e57 {
		height: calc(100dvh - 68px) !important;
		padding: 26px 20px max(24px, env(safe-area-inset-bottom)) !important;
	}

	body.admin-bar .elementor-element-66e98e57 {
		height: calc(100dvh - 114px) !important;
	}
}
/* Keep the Theme Builder wrapper sticky; the inner header is bounded by this wrapper. */
.elementor-location-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
}

body.admin-bar .elementor-location-header {
	inset-block-start: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .elementor-location-header {
		inset-block-start: 46px;
	}
}

/* Match the homepage CTA's balanced internal spacing. */
.elementor-63 .elementor-element.elementor-element-13594bea {
	margin-block-end: 0;
	padding-block-end: 60px;
}

/* Match the homepage CTA-to-footer gap without exposing the white body background. */
.elementor-63 .elementor-element.elementor-element-54f5ab8e {
	padding-block-end: 110px;
}

/* Match the source site's scroll-triggered reveal motion. */
.motionEnabled .motionTarget {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .46s ease var(--reveal-delay, 0ms), transform .46s cubic-bezier(.2, .75, .2, 1) var(--reveal-delay, 0ms);
}

.motionEnabled .motionTarget.isVisible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}


/* BugHerd TODOs 30-39, 47 and 48 — September 2026. */

/* #31: Present affiliations as static, full-color marks rather than implied links. */
.elementor-45 [data-id="32037ab"] img,
.elementor-45 [data-id="32037ab"] img:hover {
	filter: none !important;
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
	cursor: default;
}

/* #34: Give the About-page principles the same visual authority as their mobile treatment. */
.elementor-118 [data-id="7dc77852"] {
	color: #fff !important;
	font-size: clamp(1.05rem, 1.2vw, 1.2rem) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

.elementor-118 [data-id="19e9d451"] > span {
	color: #fff !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: clamp(1.05rem, 1.15vw, 1.2rem) !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	line-height: 1.45 !important;
}

/* #39: Keep the Programs introduction together in one clear reading column. */
.elementor-63 [data-id="7d2bbd8"] {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: clamp(22px, 2vw, 34px) !important;
}

.elementor-63 [data-id="644c0acf"] {
	max-width: 54rem !important;
	margin: 0 !important;
	font-size: clamp(1rem, 1.15vw, 1.15rem) !important;
	line-height: 1.65 !important;
}

/* #35–#38: Contain every Programs-card text block inside its image frame. */
.elementor-63 :is(
	[data-id="a71b440"],
	[data-id="6749961a"],
	[data-id="37189aab"],
	[data-id="616999ed"],
	[data-id="264bdc8"],
	[data-id="9f1a883"]
) > div:last-of-type {
	box-sizing: border-box !important;
	left: 30px !important;
	right: 30px !important;
	width: auto !important;
	max-width: none !important;
}

.elementor-63 :is(
	[data-id="a71b440"],
	[data-id="6749961a"],
	[data-id="37189aab"],
	[data-id="616999ed"],
	[data-id="264bdc8"],
	[data-id="9f1a883"]
) :is(h2, p) {
	max-width: 100% !important;
	overflow-wrap: anywhere;
}

/* #32: Replacement homepage CTA, adapted from the Locations-page reference. */
.avensia-home-start-cta {
	background: var(--avensia-paper, #fffdf8);
	padding: clamp(28px, 4vw, 64px) clamp(20px, 4vw, 64px);
}

.avensia-home-start-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(28px, 5vw, 72px);
	max-width: 1230px;
	margin: 0 auto;
	padding: clamp(38px, 4.5vw, 68px) clamp(30px, 4.5vw, 72px);
	background: var(--avensia-navy, #142440);
	color: #fff;
}

.avensia-home-start-cta__copy {
	max-width: 760px;
}

.avensia-home-start-cta h2 {
	margin: 0 0 8px;
	color: #fff;
	font-family: "Libre Caslon Display", serif;
	font-size: clamp(2rem, 3vw, 3.25rem);
	font-weight: 400;
	line-height: 1.08;
}

.avensia-home-start-cta p {
	margin: 0;
	color: rgba(255, 255, 255, 0.86);
	font-family: "DM Sans", sans-serif;
	font-size: clamp(1rem, 1.15vw, 1.12rem);
	line-height: 1.6;
}

.avensia-home-start-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 16px 26px;
	background: var(--avensia-green, #69be28);
	color: var(--avensia-navy, #142440) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: transform 0.2s ease, filter 0.2s ease;
	white-space: nowrap;
}

.avensia-home-start-cta__button:hover,
.avensia-home-start-cta__button:focus-visible {
	filter: brightness(1.05);
	transform: translateY(-2px);
}

@media (max-width: 767px) {
	.elementor-63 :is(
		[data-id="a71b440"],
		[data-id="6749961a"],
		[data-id="37189aab"],
		[data-id="616999ed"],
		[data-id="264bdc8"],
		[data-id="9f1a883"]
	) > div:last-of-type {
		left: 20px !important;
		right: 20px !important;
	}

	.avensia-home-start-cta {
		padding: 24px 16px;
	}

	.avensia-home-start-cta__inner {
		grid-template-columns: 1fr;
		padding: 36px 24px;
	}

	.avensia-home-start-cta__button {
		width: 100%;
		white-space: normal;
	}
}


/* BugHerd #42 — consistent program-page FAQ controls. */
body.parent-pageid-63 .e-accordion-base details summary [data-e-type="e-accordion-item-title"] [data-e-type="e-flexbox"] > :first-child {
  font-family: "DM Sans", sans-serif;
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.5;
}

/* Match the How It Works FAQ typography to the PPC reference. */
body.page-id-122 .e-accordion-base details summary [data-e-type="e-accordion-item-title"] > [data-e-type="widget"] {
  font-family: "DM Sans", sans-serif;
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.5;
}

/* Shared program labels: allow complete names and an opaque mobile menu. */
.elementor-45 [data-id="2bd5cdca"] {
	flex-wrap: wrap !important;
	gap: 16px 24px !important;
}
.elementor-45 [data-id="2bd5cdca"] > a {
	white-space: normal !important;
	text-align: center;
}
@media (min-width: 981px) {
	.elementor-45 [data-id="2bd5cdca"] { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px !important; align-items: center; }
	.elementor-45 [data-id="2bd5cdca"] > a { padding: 16px 5px !important; min-width: 0; }
	#avensia-program-menu { min-width: 330px; }
}
@media (max-width: 980px) {
	#avensia-mobile-menu {
		background: #142440 !important;
		backdrop-filter: none !important;
	}
	#avensia-mobile-menu.is-open { opacity: 1 !important; }
	#avensia-mobile-menu [data-id="6b0e9b0f"] > a {
		font-size: clamp(1.1rem, 4.7vw, 1.5rem) !important;
		line-height: 1.3 !important;
		white-space: normal !important;
	}
}

/* Keep program-menu dividers consistent when options are reordered. */
#avensia-program-menu > a { border-bottom: 1px solid rgba(20, 36, 64, 0.16) !important; }

/* Keep homepage program copy inside each image at every width. */
.elementor-45 #programs a[data-e-type="e-flexbox"] {
 display: flex !important; flex-direction: column !important; justify-content: flex-end !important;
 height: auto !important; min-height: 310px; min-width: 0 !important; box-sizing: border-box;
}
.elementor-45 #programs a[data-e-type="e-flexbox"] > div:last-child {
 position: relative !important; inset: auto !important; width: 100% !important; max-width: 100% !important;
 min-width: 0 !important; height: auto !important; padding: 30px !important; box-sizing: border-box;
 margin-top: auto; flex-shrink: 0 !important; align-items: flex-start !important;
}
.elementor-45 #programs a[data-e-type="e-flexbox"] > div:last-child > :is(h3,p) {
 width: 100% !important; max-width: 100% !important; min-width: 0 !important;
 white-space: normal !important; overflow-wrap: anywhere; box-sizing: border-box;
}
@media (max-width: 767px) {
 .elementor-45 #programs a[data-e-type="e-flexbox"] { min-height: 490px; }
 .elementor-45 #programs a[data-e-type="e-flexbox"] > div:last-child { padding: 24px !important; }
}

/* One shared plus/minus control for all site FAQ accordions. */
.e-accordion-base details > summary {
 display: flex !important; align-items: center !important; gap: 20px; list-style: none !important;
}
.e-accordion-base details > summary::-webkit-details-marker { display: none; }
.e-accordion-base details > summary::marker { content: ""; }
.e-accordion-base details > summary [data-e-type="e-accordion-item-icon"],
.e-accordion-base details > summary [data-e-type="e-accordion-item-title"] [data-e-type="e-flexbox"] > :last-child:not(:first-child),
.e-accordion-base details > summary [data-e-type="e-accordion-item-title"] > [data-e-type="widget"] > span:last-child {
 display: none !important;
}
.e-accordion-base details > summary [data-e-type="e-accordion-item-title"] {
 flex: 1 1 auto !important; width: auto !important; min-width: 0 !important;
}
.e-accordion-base details > summary::after {
 content: "+" !important; display: inline-flex !important; align-items: center; justify-content: center;
 flex: 0 0 24px; width: 24px; height: 24px; margin-left: auto;
 font-family: "DM Sans", sans-serif; font-size: 24px; font-weight: 700; line-height: 1;
 color: #142440; transform: none !important;
}
.e-accordion-base details[open] > summary::after { content: "−" !important; }

/* Present the MSC disclaimer as quiet supporting text. */
#regenReference .regenScienceIntro > strong {
 display: block; background: none !important; border: 0 !important; box-shadow: none !important;
 padding: 0 !important; margin-top: 24px; color: #b8c0ca !important;
 font-size: 14px !important; font-weight: 400 !important; font-style: italic;
 line-height: 1.6; letter-spacing: normal !important; text-transform: none !important;
}

/* Center the physician portrait beside the complete bio and review. */
@media (min-width: 768px) {
 .elementor-45 [data-id="3270f0ea"] { grid-template-rows: auto !important; }
 .elementor-45 [data-id="51753c7a"] { height: auto !important; }
 .elementor-45 [data-id="3649d186"] { align-self: center !important; }
}

/* Balance the green testimonial padding above the quote and below its attribution. */
.elementor-45 [data-id="42f34e8b"] { padding-top: 36px !important; }
.elementor-45 [data-id="679da355"] { padding-bottom: 36px !important; }

/* Homepage patient experiences and media. */
.avensia-patient-media { width: calc(100% - 48px); max-width: 1180px; margin: 0 auto; padding: 0 0 64px; box-sizing: border-box; }
.avensia-patient-media h2 { margin: 0 0 28px; font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .16em; line-height: 1.5; color: #6d7d6a; }
.avensia-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.avensia-review-grid figure { margin: 0; padding: 28px; border: 1px solid #d7ded5; background: #e8eee8; display: flex; flex-direction: column; min-width: 0; }
.avensia-review-grid blockquote { margin: 0 0 24px; border: 0; padding: 0; }
.avensia-review-grid blockquote p { margin: 0; font-family: "DM Serif Display", serif; font-size: 24px; font-weight: 400; line-height: 1.4; color: #142440; }
.avensia-review-grid figcaption { margin-top: auto; font-family: "DM Sans", sans-serif; font-size: 13px; font-weight: 700; color: #142440; }
.avensia-patient-media .avensia-review-note { margin: 18px 0 36px; font-family: "DM Sans", sans-serif; font-size: 14px; font-style: italic; line-height: 1.6; color: #626d65; }
.avensia-video-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.avensia-video-grid > a { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 32px; background: #142440; color: #fff; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.avensia-video-grid > a:hover { transform: translateY(-3px); background: #1b3155; }
.avensia-video-grid > a:focus-visible { outline: 3px solid #69be28; outline-offset: 4px; }
.avensia-video-play { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #69be28; color: #142440; font-size: 17px; }
.avensia-video-grid h3 { margin: 24px 0 28px; font-family: "DM Serif Display", serif; font-size: 36px; font-weight: 400; line-height: 1.15; color: #fff; overflow-wrap: anywhere; }
.avensia-video-link { margin-top: auto; font-family: "DM Sans", sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .08em; line-height: 1.5; color: #fff; }
@media (max-width: 767px) {
 .avensia-patient-media { width: calc(100% - 30px); padding-bottom: 48px; }
 .avensia-review-grid, .avensia-video-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
 .avensia-review-grid figure { padding: 24px; }
 .avensia-video-grid > a { padding: 28px; }
 .avensia-video-grid h3 { font-size: 32px; }
}

/* Draw a consistent play symbol without emoji styling. */
.avensia-video-play {font-size:0;}
.avensia-video-play::after {content:"";width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid #142440;margin-left:3px;}

/* Global footer: keep branding, legal links, and responsive columns readable. */
.elementor-location-footer [data-id="23c70d03"] { padding-inline: 0; }
.elementor-location-footer .avensia-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.elementor-location-footer [data-id="b8b9bb"] { grid-template-columns: minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap: 48px; }
.elementor-location-footer [data-id="b8b9bb"] > * { min-width: 0; grid-column: auto; }
.elementor-location-footer [data-id="7528c18e"],
.elementor-location-footer .avensia-stack-sm { flex-direction: column; align-items: flex-start; gap: 20px; }
.elementor-location-footer [data-id="49a09994"] { width: max-content; max-width: 100%; flex-shrink: 0; }
.elementor-location-footer [data-id="12198945"] { margin: 0; }
.elementor-location-footer [data-id="3cb0633d"] { white-space: nowrap; flex-shrink: 0; width: fit-content; }
.elementor-location-footer [data-id="3c2b76a1"] { grid-template-columns: .8fr 1.6fr 1.2fr; gap: 28px; align-items: start; }
.elementor-location-footer [data-id="6262c4be"] { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 0; margin: 0; }
.elementor-location-footer [data-id="6262c4be"] a { display: inline-flex; align-items: center; min-height: 28px; font-size: 12px; line-height: 1.5; white-space: nowrap; }
@media (max-width: 1024px) {
 .elementor-location-footer [data-id="b8b9bb"] { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
 .elementor-location-footer [data-id="3c2b76a1"] { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 767px) {
 .elementor-location-footer .avensia-shell { width: calc(100% - 40px); }
 .elementor-location-footer [data-id="b8b9bb"] { grid-template-columns: minmax(0,1fr); gap: 36px; }
 .elementor-location-footer [data-id="6262c4be"] { flex-direction: column; align-items: flex-start; gap: 0; }
 .elementor-location-footer [data-id="6262c4be"] a { min-height: 44px; }
}

/* Keep the combined weight-loss shortcut on one line. */
.elementor-45 [data-id="2bd5cdca"] > a { white-space: nowrap !important; }
@media (min-width: 768px) {
 .elementor-45 [data-id="2bd5cdca"] { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px !important; }
 .elementor-45 [data-id="2bd5cdca"] > a { flex: 0 0 auto; padding-inline: 5px !important; }
}
@media (max-width: 767px) {
 .elementor-45 [data-id="2bd5cdca"] > a[href="/programs/medical-weight-loss"] { grid-column: 1 / -1; width: 100%; }
}

/* Expand the consultation call button within its mobile content column. */
@media (max-width: 767px) {
 .elementor-132 .avensia-consult-call { width: 100% !important; box-sizing: border-box; }
}

/* Accessibility: readable footer small print and media heading. */
.elementor-location-footer [data-id="3c2b76a1"] > p,
.elementor-location-footer [data-id="3c2b76a1"] > p a { color: rgba(255,255,255,.5) !important; }
.avensia-patient-media #patient-media-title { color: #596258; }
main#content { scroll-margin-top: 112px; }
