/**
 * Site chrome — header, sticky header, mobile menu and footer (Task 2C).
 *
 * Styles the Elementor Theme Builder templates: Header (27), Footer (181)
 * and the "Mobile Canvas" popup (368). Page content is untouched; its
 * typography and brand UI live in elementor.css and ui.css.
 *
 * The templates' own structure is kept: the header still has a desktop
 * container (779a15b0) and a compact container (3dc1cbca). Selectors name
 * those containers and widgets by element id inside the template's location
 * class, one class above Elementor's per-element selector (0,3,0 – 0,5,1).
 * No !important is used. Full register: docs/header-footer.md.
 *
 *   1. Desktop header (≥ 1280px)
 *   2. Compact header (< 1280px) and the desktop/compact switch
 *   3. Mobile menu popup
 *   4. Footer
 *   5. Footer shortcodes ([hap_footer_menu], [hap_copyright])
 */

/* ==================================================================
 * 1. DESKTOP HEADER — container 779a15b0
 * ================================================================== */

/* Bar: 88px, 1320px wide with the page gutter, hairline instead of the
   template's soft shadow. Defeats: min-height 105px, 1140px content
   width, zero padding, box-shadow 0 0 15px rgba(0,0,0,.06). */
.elementor-location-header .elementor-element.elementor-element-779a15b0.e-con {
	--min-height: var(--hap-header-height);
	--container-max-width: var(--hap-header-width);
	--padding-left: var(--hap-gutter);
	--padding-right: var(--hap-gutter);
	--gap: 0 var(--hap-space-6);
	--column-gap: var(--hap-space-6);
	box-shadow: 0 1px 0 var(--hap-color-rule);
}

/* Sticky state: the one shadow in the design system. The template's
   custom CSS also turns every menu item black here; § 1 nav colours
   outrank it. */
.elementor-location-header .elementor-element.elementor-element-779a15b0.elementor-sticky--effects {
	box-shadow: var(--hap-shadow-header);
}

/* Logo column sizes to the logo; the navigation column takes the rest.
   Defeats: 25% / 75% column widths. */
.elementor-location-header .elementor-element.elementor-element-234ddf3.e-con {
	--width: auto;
	--flex-grow: 0;
	--flex-shrink: 0;
}
.elementor-location-header .elementor-element.elementor-element-bdb8ead.e-con {
	--width: auto;
	--flex-grow: 1;
	--gap: 0 var(--hap-space-5);
	--column-gap: var(--hap-space-5);
}

/* Logo: 150px, 165px from 1440px. Defeats: 165px at every desktop width. */
.elementor-location-header .elementor-element.elementor-element-51529e8e.elementor-widget-theme-site-logo img {
	width: 150px;
}

/* Navigation. Spacing comes from the column gap, not the widget margin.
   Defeats: 25px right margin, 25px item spacing. */
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu {
	--e-nav-menu-horizontal-menu-item-margin: calc(20px / 2);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu > .elementor-widget-container {
	margin: 0;
}

/* Menu items: ink, teal only for hover and the current page. Also defeats
   the sticky-state custom CSS (`.elementor-sticky--effects .elementor-item
   { color: #000 }`, 0,5,0). */
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item {
	color: var(--hap-color-ink);
	fill: var(--hap-color-ink);
	font-family: var(--hap-font-ui);
	font-size: var(--hap-fs-eyebrow);
	font-weight: var(--hap-font-weight-semibold);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition: color var(--hap-duration-fast) var(--hap-ease);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible {
	color: var(--hap-color-accent-strong);
	fill: var(--hap-color-accent-strong);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active {
	color: var(--hap-color-accent);
	fill: var(--hap-color-accent);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: 6px;
}

/* Expertise dropdown (HAP Primary menu). Defeats: #05152A text, #F3F3F3
   border, Accent hover background. */
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu--dropdown {
	min-width: 280px;
	padding-block: var(--hap-space-2);
	border: var(--hap-rule);
	border-top: 2px solid var(--hap-color-ink);
	border-radius: 0 0 var(--hap-radius-sm) var(--hap-radius-sm);
	background-color: var(--hap-color-surface);
	box-shadow: var(--hap-shadow-header);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu--dropdown a {
	padding: 10px 20px;
	background-color: transparent;
	color: var(--hap-color-ink);
	font-family: var(--hap-font-ui);
	font-size: 0.875rem;
	font-weight: var(--hap-font-weight-medium);
	letter-spacing: 0;
	text-transform: none;
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu--dropdown a:is(:hover, :focus-visible, .elementor-item-active, .highlighted) {
	background-color: var(--hap-color-surface-alt);
	color: var(--hap-color-ink);
}
.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-item-active {
	box-shadow: inset 3px 0 0 var(--hap-color-accent);
}

/* "Book A Discovery Session": the 0.3.0 primary button on one line.
   Defeats: kit button (Accent, 13px uppercase, 19×30 padding, hover
   Secondary), which let the button shrink and wrap to three lines. */
.elementor-location-header .elementor-element.elementor-element-4442b1dc.elementor-widget-button {
	flex-shrink: 0;
}
.elementor-location-header .elementor-element.elementor-element-4442b1dc.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--hap-btn-min-height);
	padding: var(--hap-btn-padding);
	border: var(--hap-btn-border-width) solid var(--hap-btn-primary-bg);
	border-radius: var(--hap-btn-radius);
	background-color: var(--hap-btn-primary-bg);
	color: var(--hap-btn-primary-fg);
	fill: currentColor;
	font-family: var(--hap-btn-font-family);
	font-size: var(--hap-btn-font-size);
	font-weight: var(--hap-btn-font-weight);
	letter-spacing: var(--hap-btn-tracking);
	line-height: var(--hap-lh-ui);
	text-transform: none;
	white-space: nowrap;
	transition: background-color var(--hap-duration-fast) var(--hap-ease),
		border-color var(--hap-duration-fast) var(--hap-ease);
}
.elementor-location-header .elementor-element.elementor-element-4442b1dc.elementor-widget-button .elementor-button:hover {
	border-color: var(--hap-btn-primary-bg-hover);
	background-color: var(--hap-btn-primary-bg-hover);
	color: var(--hap-btn-primary-fg-hover);
}
.elementor-location-header .elementor-element.elementor-element-4442b1dc.elementor-widget-button .elementor-button:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: var(--hap-focus-offset);
}
.elementor-location-header .elementor-element.elementor-element-4442b1dc.elementor-widget-button .elementor-button svg {
	fill: currentColor;
}

/* Fit check (Montserrat 600 12px, 0.05em): logo + nav + button need
   1210px at 1280px (1220px available) and 1289px at 1440px (1320px). */
@media (min-width: 1440px) {
	.elementor-location-header .elementor-element.elementor-element-51529e8e.elementor-widget-theme-site-logo img {
		width: 165px;
	}
	.elementor-location-header .elementor-element.elementor-element-bdb8ead.e-con {
		--gap: 0 var(--hap-space-6);
		--column-gap: var(--hap-space-6);
	}
	.elementor-location-header .elementor-element.elementor-element-65d8597c.elementor-widget-nav-menu {
		--e-nav-menu-horizontal-menu-item-margin: calc(28px / 2);
	}
}

/* ==================================================================
 * 2. COMPACT HEADER — container 3dc1cbca (logo + menu button)
 * ================================================================== */

/* The full navigation and a one-line button need about 1220px. Between
   Elementor's tablet breakpoint (1024px) and 1280px the desktop bar used
   to clip the button and wrap the menu, so the compact bar is shown there
   instead. Elementor's own visibility rules (0,2,0) are unchanged
   elsewhere. */
@media (min-width: 1025px) and (max-width: 1279px) {
	.elementor-location-header .elementor-element.elementor-element-779a15b0.elementor-hidden-tablet {
		display: none;
	}
	.elementor-location-header .elementor-element.elementor-element-3dc1cbca.elementor-hidden-desktop {
		display: flex;
	}
	/* Defeats: 160px desktop logo in the compact bar. */
	.elementor-location-header .elementor-element.elementor-element-547dc167.elementor-widget-theme-site-logo img {
		width: 140px;
	}
}

/* Bar: 64px at every width, page gutter, hairline. Defeats: min-height
   95 / 70 / 60px, zero padding, box-shadow 0 0 10px rgba(0,0,0,.07). */
.elementor-location-header .elementor-element.elementor-element-3dc1cbca.e-con {
	--min-height: var(--hap-header-height-compact);
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: var(--hap-gutter);
	--padding-right: var(--hap-gutter);
	box-shadow: 0 1px 0 var(--hap-color-rule);
}
.elementor-location-header .elementor-element.elementor-element-3dc1cbca.elementor-sticky--effects {
	box-shadow: var(--hap-shadow-header);
}

/* Menu button: ink icon with a 45px touch target (the icon stays where it
   was). Defeats: icon colour #000000. */
.elementor-location-header .elementor-element.elementor-element-fda81a2.elementor-widget-icon .elementor-icon {
	margin: -8px;
	padding: 8px;
}
.elementor-location-header .elementor-element.elementor-element-fda81a2.elementor-widget-icon.elementor-view-default .elementor-icon svg {
	fill: var(--hap-color-ink);
}
.elementor-location-header .elementor-element.elementor-element-fda81a2.elementor-widget-icon .elementor-icon:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: 0;
}

/* ==================================================================
 * 3. MOBILE MENU — popup 368 ("Mobile Canvas")
 * ================================================================== */

/* Backdrop in deep ink instead of black; flat panel with a hairline edge.
   Defeats: rgba(0,0,0,.8) backdrop, 2px 8px 23px panel shadow. */
#elementor-popup-modal-368.elementor-popup-modal {
	background-color: var(--hap-color-overlay);
}
#elementor-popup-modal-368 .dialog-widget-content.dialog-lightbox-widget-content {
	border-right: var(--hap-rule);
	box-shadow: none;
}

/* Panel 320px so the booking button fits on one line. Defeats: 290px. */
#elementor-popup-modal-368 .dialog-message.dialog-lightbox-message {
	width: min(320px, 100vw);
}

/* Close button: ink instead of 28% black (1.9:1), 44px target. */
#elementor-popup-modal-368 .dialog-close-button.dialog-lightbox-close-button {
	padding: 10px;
	font-size: 24px;
}
#elementor-popup-modal-368 .dialog-close-button.dialog-lightbox-close-button svg {
	fill: var(--hap-color-ink);
}
#elementor-popup-modal-368 .dialog-close-button.dialog-lightbox-close-button:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: 0;
}

/* Menu items: 48px rows, ink on white, hairline dividers. The current page
   is marked with a teal edge instead of a solid teal bar. Defeats: 12px
   weight 500, #ECECEC dividers, Accent hover and active backgrounds. */
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item {
	padding: 14px 24px;
	background-color: transparent;
	color: var(--hap-color-ink);
	fill: var(--hap-color-ink);
	font-family: var(--hap-font-ui);
	font-size: 0.8125rem; /* 13 */
	font-weight: var(--hap-font-weight-semibold);
	letter-spacing: 0.06em;
	line-height: 20px;
	text-transform: uppercase;
}
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item:focus-visible {
	background-color: var(--hap-color-surface-alt);
	color: var(--hap-color-ink);
}
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
	background-color: var(--hap-color-surface-alt);
	box-shadow: inset 3px 0 0 var(--hap-color-accent);
	color: var(--hap-color-ink);
}
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: -2px;
}
/* Sub-pages (Expertise) indented under their parent. */
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item {
	padding-left: 40px;
	font-size: 0.8125rem;
	font-weight: var(--hap-font-weight-medium);
	letter-spacing: 0;
	text-transform: none;
}
.elementor-368 .elementor-element.elementor-element-72671cfb.elementor-widget-nav-menu .elementor-nav-menu--dropdown li:not(:last-child) {
	border-bottom-color: var(--hap-color-rule);
}

/* Booking button (template edit P3: a Button widget below the menu, text
   "Book A Discovery Session", same link as the header button). Any Button
   widget in this popup gets the 0.3.0 primary button, full width. Below
   1280px this is the site's booking call to action. */
.elementor-368 .elementor-element.elementor-widget-button {
	align-self: stretch;
	width: 100%;
	padding: var(--hap-space-5) var(--hap-space-5) 0;
}
.elementor-368 .elementor-element.elementor-widget-button .elementor-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: var(--hap-btn-min-height);
	padding: var(--hap-btn-padding);
	border: var(--hap-btn-border-width) solid var(--hap-btn-primary-bg);
	border-radius: var(--hap-btn-radius);
	background-color: var(--hap-btn-primary-bg);
	color: var(--hap-btn-primary-fg);
	fill: currentColor;
	font-family: var(--hap-btn-font-family);
	font-size: var(--hap-btn-font-size);
	font-weight: var(--hap-btn-font-weight);
	letter-spacing: var(--hap-btn-tracking);
	line-height: var(--hap-lh-ui);
	text-align: center;
	text-transform: none;
	transition: background-color var(--hap-duration-fast) var(--hap-ease),
		border-color var(--hap-duration-fast) var(--hap-ease);
}
.elementor-368 .elementor-element.elementor-widget-button .elementor-button:hover {
	border-color: var(--hap-btn-primary-bg-hover);
	background-color: var(--hap-btn-primary-bg-hover);
	color: var(--hap-btn-primary-fg-hover);
}
.elementor-368 .elementor-element.elementor-widget-button .elementor-button:focus-visible {
	outline: var(--hap-focus-ring);
	outline-offset: var(--hap-focus-offset);
}
.elementor-368 .elementor-element.elementor-widget-button .elementor-button svg {
	fill: currentColor;
}

/* ==================================================================
 * 4. FOOTER — template 181
 * ================================================================== */

/* Deep ink instead of #1F1F1F (main band 2c003787, copyright bar
   78041999). */
.elementor-location-footer .elementor-element.elementor-element-2c003787.e-con:not(.elementor-motion-effects-element-type-background),
.elementor-location-footer .elementor-element.elementor-element-78041999.e-con:not(.elementor-motion-effects-element-type-background) {
	background-color: var(--hap-color-ink-deep);
}
.elementor-location-footer .elementor-element.elementor-element-78041999.e-con {
	--border-color: var(--hap-color-rule-inverse);
	border-color: var(--hap-color-rule-inverse);
}

/* Column labels ("Health Acquisition Partners", "Quick Links", "Contact
   Info") as eyebrow labels. Defeats: 17px weight 700, 1.7px tracking,
   white. */
.elementor-location-footer .elementor-element.elementor-widget-heading h3.elementor-heading-title {
	color: var(--hap-color-text-inverse-muted);
	font-family: var(--hap-font-ui);
	font-size: var(--hap-fs-eyebrow);
	font-weight: var(--hap-font-weight-semibold);
	letter-spacing: var(--hap-tracking-eyebrow);
	line-height: var(--hap-lh-ui);
	text-transform: uppercase;
}

/* Description. Defeats: 91% white, 16px. */
.elementor-location-footer .elementor-element.elementor-widget-text-editor,
.elementor-location-footer .elementor-element.elementor-widget-text-editor p {
	color: var(--hap-color-text-inverse-muted);
	font-family: var(--hap-font-body);
	font-size: var(--hap-fs-small);
	line-height: 1.6;
}

/* Link lists (Quick Links, Contact Info). Defeats: 91% white text and
   icons. */
.elementor-location-footer .elementor-element.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text {
	color: var(--hap-color-text-inverse);
	font-family: var(--hap-font-body);
	font-size: var(--hap-fs-small);
	line-height: 1.5;
	transition: color var(--hap-duration-fast) var(--hap-ease);
}
.elementor-location-footer .elementor-element.elementor-widget-icon-list .elementor-icon-list-item > a:hover .elementor-icon-list-text {
	color: var(--hap-color-accent-tint);
	text-decoration: underline;
	text-underline-offset: var(--hap-link-underline-offset);
}
.elementor-location-footer .elementor-element.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-icon svg {
	fill: var(--hap-color-text-inverse-muted);
}

/* Social icons: white on deep ink, 20px, visible focus. Defeats: 25px. */
.elementor-location-footer .elementor-element.elementor-element-67f54bf3.elementor-widget-social-icons {
	--icon-size: 20px;
	--grid-column-gap: var(--hap-space-5);
}
.elementor-location-footer .elementor-element.elementor-widget-social-icons .elementor-icon.elementor-social-icon svg {
	fill: var(--hap-color-text-inverse);
	transition: fill var(--hap-duration-fast) var(--hap-ease);
}
.elementor-location-footer .elementor-element.elementor-widget-social-icons .elementor-icon.elementor-social-icon:hover svg {
	fill: var(--hap-color-accent-tint);
}

/* Copyright line (Heading widget today, [hap_copyright] later).
   Defeats: 17px/24px white. */
.elementor-location-footer .elementor-element.elementor-widget-heading p.elementor-heading-title,
.elementor-location-footer .hap-copyright {
	color: var(--hap-color-text-inverse-muted);
	font-family: var(--hap-font-body);
	font-size: var(--hap-fs-caption);
	font-weight: var(--hap-font-weight-regular);
	line-height: 1.5;
}

/* Keyboard focus anywhere in the footer: white ring on deep ink. */
.elementor-location-footer a:focus-visible {
	outline: 2px solid var(--hap-color-focus-inverse);
	outline-offset: 4px;
	box-shadow: none;
}

/* ==================================================================
 * 5. FOOTER SHORTCODES (inc/footer.php)
 * ================================================================== */

.hap-footer-menu__list {
	display: grid;
	gap: var(--hap-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.elementor-location-footer .hap-footer-menu a {
	color: var(--hap-color-text-inverse);
	font-family: var(--hap-font-body);
	font-size: var(--hap-fs-small);
	line-height: 1.5;
	text-decoration: none;
	transition: color var(--hap-duration-fast) var(--hap-ease);
}
.elementor-location-footer .hap-footer-menu a:hover {
	color: var(--hap-color-accent-tint);
	text-decoration: underline;
	text-underline-offset: var(--hap-link-underline-offset);
}
.elementor-location-footer .hap-copyright {
	display: block;
	text-align: center;
}
