/**
 * Accessibility utilities — preserve existing design.
 * Scoped resets only; do not restyle shared UI controls as %btn.
 */

/* Screen-reader clip (theme had no utility) */
.screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	white-space: nowrap !important;
}

.screen-reader-text:focus {
	background-color: #fff;
	clip: auto !important;
	clip-path: none !important;
	color: #891d0d;
	display: block;
	font-size: 1rem;
	height: auto !important;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto !important;
	z-index: 100000;
	margin: 0 !important;
}

/* Focus ring — simple 2px (Tab only; mouse stays clean) */
:focus:not(:focus-visible) {
	outline: none !important;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
.btn:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible) {
	outline: none !important;
}

.wrapper a:focus-visible,
.wrapper button:focus-visible,
.wrapper input:focus-visible,
.wrapper select:focus-visible,
.wrapper textarea:focus-visible,
.wrapper summary:focus-visible,
.wrapper [tabindex]:not([tabindex="-1"]):focus-visible,
.wrapper .btn:focus-visible,
body a:focus-visible,
body button:focus-visible,
body .btn:focus-visible {
	outline: 2px solid #891d0d !important;
	outline-offset: 2px !important;
}

/*
 * Yellow Call Us / Review dropdowns — gold-on-gold was unreadable.
 * White inset ring stays inside the item as a single clean line.
 */
.wrapper .quick-dropdown a:focus-visible,
.wrapper .call-listing a:focus-visible,
.wrapper .review-list a:focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: -2px !important;
}

/* Dark red / dark surfaces — gold ring for contrast */
.wrapper .sub-menu a:focus-visible,
.wrapper .footer a:focus-visible,
.wrapper .footer button:focus-visible,
.wrapper .btn.primary:focus-visible,
.wrapper .mbnav a:focus-visible,
.wrapper .mbnav button:focus-visible,
.wrapper .advance-call-tracking a:focus-visible {
	outline-color: #f4b82b !important;
}

/* Landmark order under .wrapper: header, main, footer. Flex parent needs full width. */
.wrapper > .header-shell,
.wrapper > .header-space,
.wrapper > main.main-content {
	width: 100%;
}

/* Sticky shell: fixed outer, relative header */
.header-shell {
	position: fixed;
	z-index: 999;
	width: 100%;
	top: 0;
	left: 0;
	background-color: #fff;
	transition: 0.4s all;
}
.header-shell.is-sticky {
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
.header-shell .header {
	position: relative !important;
	width: 100%;
	background-color: transparent;
	box-shadow: none;
}
.header-shell .header.sticky {
	position: relative !important;
	box-shadow: none;
}

/* Footer location P:/F: labels — theme targeted span; a11y uses strong */
.footer p strong {
	padding-right: 0.31rem;
	font-weight: 700;
	color: inherit;
}

/* Address bar as region sibling before header */
.header-shell .address-bar {
	position: relative;
}

/* Mailto note */
.email-client-note {
	font-weight: normal !important;
	font-size: 14px !important;
	font-style: normal !important;
}

/* Disclosure Nav toggles — exclude from button/btn restyles */
.header-menu .desktop-submenu-toggle,
.header-links .header-dd-toggle {
	appearance: none;
	-webkit-appearance: none;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0;
	min-width: 0;
	min-height: 0;
	line-height: 1;
	cursor: pointer;
	color: inherit;
	font: inherit;
	text-transform: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}

/*
 * Desktop disclosure carets — inline next to the label (not position:absolute).
 * Absolute + min-width:max-content made the last has-children (Health Tips)
 * stretch under Contact and parked its caret in the gap above Contact.
 */
.header-menu ul.menu {
	flex-wrap: wrap;
	align-items: center;
	row-gap: 0.15rem;
}
.header-menu ul.menu > li {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	min-width: 0;
}
.header-menu ul.menu > li > a,
.header-menu ul.menu > li > button.menu-label {
	white-space: nowrap;
	overflow-wrap: normal;
	word-break: normal;
}
.header-menu ul.menu > li.menu-item-has-children {
	position: relative; /* submenu flyout anchor only */
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.2em;
}
.header-menu ul.menu > li.menu-item-has-children > a,
.header-menu ul.menu > li.menu-item-has-children > button.menu-label {
	display: inline-block;
	width: auto;
	padding-right: 0;
	box-sizing: border-box;
}
.header-menu ul.menu > li.menu-item-has-children > .desktop-submenu-toggle {
	position: static;
	top: auto;
	right: auto;
	transform: none;
	flex: 0 0 auto;
	align-self: center;
	width: 0.75em;
	height: 0.75em;
	margin: 0;
	z-index: 2;
}
/* Submenu must stay out of flex flow so it never widens the top-level item */
.header-menu ul.menu > li.menu-item-has-children > ul.sub-menu {
	position: absolute;
	left: 0;
}

/* Drawer carets — keep theme grid + ::before arrow; strip only %btn chrome */
.mbnav button.mbnav__caret {
	appearance: none;
	-webkit-appearance: none;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0;
	color: inherit;
	font: inherit;
	text-transform: none;
	cursor: pointer;
	/* theme expects grid + 30px hit area */
	display: grid !important;
	align-items: center;
	justify-content: flex-end;
	width: 1.875rem;
	height: auto;
	min-width: 1.875rem;
	min-height: 1.5rem;
	line-height: 1;
}
.header-menu .desktop-submenu-toggle::after {
	content: "";
	display: block;
	width: 0.35em;
	height: 0.35em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	margin-top: -0.2em;
	transition: transform 0.2s ease, margin-top 0.2s ease;
}
/* Open state — caret flips up when toggle (or hover) opens the submenu */
.header-menu .desktop-submenu-toggle[aria-expanded="true"]::after,
.header-menu .menu-item.is-submenu-open > .desktop-submenu-toggle::after,
.header-menu .menu-item:hover:not(.is-submenu-dismissed) > .desktop-submenu-toggle::after {
	transform: rotate(-135deg);
	margin-top: 0.15em;
}
/* Match theme hover open (opacity + top), including JS .is-submenu-open */
.header-menu ul.menu > li.is-submenu-open > ul.sub-menu,
.header-menu ul.menu > li:hover:not(.is-submenu-dismissed) > ul.sub-menu {
	top: 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: all !important;
}
.header-menu ul.menu > li:not(:hover):not(.is-submenu-open) > ul.sub-menu[aria-hidden="true"] {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.header-menu button.menu-label {
	appearance: none;
	-webkit-appearance: none;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0.63rem 0;
	margin: 0;
	font: inherit;
	color: inherit;
	text-transform: inherit;
	letter-spacing: inherit;
	cursor: pointer;
	line-height: inherit;
	white-space: nowrap;
}
.header-menu .menu > .menu-item > a,
.header-menu .menu > .menu-item > button.menu-label,
.header-links .call > a,
.header-links .review > a,
.mbnav__links .call > a,
.mbnav__links .review > a {
	cursor: pointer;
}

/*
 * iPad mini / iPad Pro / small laptop (< 1200px):
 * Desktop bar cannot fit 8 labels + disclosure carets (mid-word wraps).
 * Use the existing hamburger + drawer — same pattern as phone.
 */
@media (max-width: 1199px) {
	.header-menu {
		display: none !important;
	}
	.hamburger {
		display: flex !important;
	}
	.mbnav.d-md-none,
	.mbnav {
		display: block !important;
	}
	.header-navigation {
		display: flex;
		align-items: center;
		justify-content: flex-end;
	}
	/* CTAs stay; primary links live in the drawer */
	.header-wrapper {
		align-items: center;
	}
}

/* Large desktop: nowrap labels; never use max-content (pulls absolute submenus into width) */
@media (min-width: 1200px) {
	.header-menu ul.menu > li > a,
	.header-menu ul.menu > li > button.menu-label {
		white-space: nowrap;
	}
}

/* Last items open left — keep caret inline; only the flyout flips */
.header-menu ul.menu > li:nth-last-child(1).menu-item-has-children > ul.sub-menu,
.header-menu ul.menu > li:nth-last-child(2).menu-item-has-children > ul.sub-menu {
	left: auto;
	right: 0;
}

/* Mega column headers: keep label styling; hide extra carets inside open mega panels */
@media (min-width: 992px) {
	.header-menu .full-mega-menu > .sub-menu > .menu-item-has-children > .desktop-submenu-toggle,
	.header-menu .wide-menu > .sub-menu > .menu-item-has-children > .desktop-submenu-toggle {
		display: none;
	}
	.header-menu .full-mega-menu .full-submega-menu > button.menu-label,
	.header-menu .full-mega-menu .full-submega-menu > a {
		display: block;
		width: 100%;
		padding: 0.38rem;
		color: #fff;
		font-weight: 400;
		text-align: left;
	}
}

/* Header Call / Review — toggle sits INSIDE the painted Call Us control */
.header-links li.call,
.header-links li.review,
.mbnav__links li.call,
.mbnav__links li.review {
	position: relative;
}
.header-links .call-dd-control,
.mbnav__links .call-dd-control {
	display: inline-flex !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.35em;
	vertical-align: top;
}
.header-links .call-dd-control > .call-dd-trigger,
.mbnav__links .call-dd-control > .call-dd-trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	color: inherit !important;
	font: inherit;
	font-weight: inherit;
	text-decoration: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0;
	line-height: inherit;
}
.header-links .call-dd-control > .call-dd-trigger:hover,
.header-links .call-dd-control > .call-dd-trigger:focus,
.mbnav__links .call-dd-control > .call-dd-trigger:hover,
.mbnav__links .call-dd-control > .call-dd-trigger:focus {
	color: inherit !important;
	background: transparent !important;
}
.header-links .call-dd-control .header-dd-toggle,
.mbnav__links .call-dd-control .header-dd-toggle {
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	margin: 0;
	position: relative;
	color: inherit;
	align-self: center;
}
.header-links .call-dd-control .header-dd-toggle::after,
.mbnav__links .call-dd-control .header-dd-toggle::after,
.header-links .header-dd-toggle::after {
	content: "";
	display: block;
	width: 0.35em;
	height: 0.35em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	margin-top: -0.15em;
	transition: transform 0.2s ease, margin-top 0.2s ease;
}
.header-links .header-dd-toggle[aria-expanded="true"]::after,
.header-links .call.has-dropdown.is-submenu-open .header-dd-toggle::after,
.header-links .call:hover:not(.is-submenu-dismissed) .header-dd-toggle::after,
.header-links .review.has-dropdown.is-submenu-open .header-dd-toggle::after,
.mbnav__links .header-dd-toggle[aria-expanded="true"]::after {
	transform: rotate(-135deg);
	margin-top: 0.15em;
}
/* Mobile: Call Us shows icon only — keep toggle inside the circle */
@media (max-width: 720px) {
	.header-links .call .call-dd-control {
		padding: 0.5rem;
	}
	.header-links .call .call-dd-control .call-dd-label {
		/* theme already hides text via .call > .btn span — mirror for new markup */
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
	}
	.header-links .call .call-dd-control .icon-phone {
		display: block !important;
		width: 1.19rem;
		height: 1.19rem;
	}
}
.header-links .has-dropdown.is-submenu-open > .quick-dropdown,
.header-links .has-dropdown:hover:not(.is-submenu-dismissed) > .quick-dropdown,
.header-links li.call:hover > .quick-dropdown,
.header-links li.call.is-submenu-open > .quick-dropdown,
.mbnav__links .has-dropdown.is-submenu-open > .quick-dropdown {
	top: 100% !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: all !important;
}
.header-links .has-dropdown:not(:hover):not(.is-submenu-open) > .quick-dropdown[aria-hidden="true"],
.header-links li.call:not(:hover):not(.is-submenu-open) > .quick-dropdown[aria-hidden="true"],
.mbnav__links .has-dropdown:not(.is-submenu-open) > .quick-dropdown[aria-hidden="true"] {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Hamburger / address close as real buttons — keep prior look */
button.hamburger {
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	box-shadow: none;
	cursor: pointer;
	font: inherit;
	color: inherit;
}
button.address-close {
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	cursor: pointer;
	font: inherit;
	color: inherit;
}

/* Preserve .header-links flex when wrapper is a div */
.header .header-links > ul {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	list-style: none;
}

/* Closed mobile drawer */
.mbnav:not(.is-open) {
	visibility: hidden;
}
.mbnav.is-open {
	visibility: visible;
}

/* Pagination SR stay clipped inside links */
.navigation.pagination .nav-links .screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	white-space: nowrap !important;
}

/* Team filters: real buttons, same .btn look as the link chips */
.category-filter-list > li > button.btn {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

/* FAQ accordion toggles — exclude from %btn */
.accordion-item .accordion-title.faq-toggle,
button.accordion-title.faq-toggle {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	text-align: left;
	cursor: pointer;
	border: 0;
	box-shadow: none;
	font: inherit;
	color: inherit;
	background: inherit;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Breadcrumb list reset (keep theme look) */
.breadcrumbs ol.breadcrumbs-inner,
nav.breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35em;
}
.breadcrumbs ol.breadcrumbs-inner li,
nav.breadcrumbs ol li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.breadcrumbs ol.breadcrumbs-inner li.breadcrumb-sep::before,
nav.breadcrumbs ol li.breadcrumb-sep::before {
	content: "\00bb"; /* » — matches original theme separator look */
	speak: never;
}

/*
 * Theme colored Yoast <span>s — a11y uses <ol>/<li>.
 * Inner banner (dark): white links + current page (original look).
 * Titlebreadcrumbs block (gray chip): body text color.
 */
.inner-banner-wrapper .breadcrumbs,
.inner-banner-wrapper .breadcrumbs a,
.inner-banner-wrapper .breadcrumbs li,
.inner-banner-wrapper .breadcrumbs .breadcrumb_last,
.inner-banner-wrapper .breadcrumbs ol {
	color: #fff !important;
}
.inner-banner-wrapper .breadcrumbs a:hover {
	text-decoration: underline;
	color: #fff !important;
}
.inner-banner-wrapper .breadcrumbs a {
	font-weight: inherit;
}

.titlebreadcrumbs-block .breadcrumbs .breadcrumbs-inner,
.titlebreadcrumbs-block .breadcrumbs ol.breadcrumbs-inner {
	color: #eee; /* arrow border inherits this (theme $gray-100) */
}
.titlebreadcrumbs-block .breadcrumbs ol.breadcrumbs-inner li,
.titlebreadcrumbs-block .breadcrumbs ol.breadcrumbs-inner a,
.titlebreadcrumbs-block .breadcrumbs .breadcrumb_last {
	color: #000; /* theme $body-color on gray chip */
}
.titlebreadcrumbs-block .breadcrumbs a:hover {
	text-decoration: underline;
}

/* Decorative SVG defaults when helper applied */
svg[role="presentation"] {
	pointer-events: none;
}
