/*
 * Call Glenn Again accessibility remediation.
 * Phases 1–5 plus the post-deployment assistive-technology follow-up.
 */

/* Phase 3: correct only the confirmed foreground/background combinations. */
.cga-a11y-remediation .elementor-element-14f5e050 .elementor-heading-title,
.cga-a11y-remediation.page-id-53 .ekit-heading--subtitle {
	color: #ffd43b !important;
}

.cga-a11y-remediation .elementor-element-336bb658 legend.wpforms-field-label {
	color: #fff !important;
}

.cga-a11y-remediation .elementor-element-6066a0b .elementor-heading-title,
.cga-a11y-remediation .elementor-element-6066a0b p,
.cga-a11y-remediation .elementor-element-6066a0b strong {
	color: #004565 !important;
}

/* Phase 4: enlarge the confirmed undersized icon and carousel hit areas. */
.cga-a11y-remediation .elementor-element-174e60fb .elementor-social-icon {
	width: 24px !important;
	height: 24px !important;
	min-width: 24px;
	min-height: 24px;
}

.cga-a11y-remediation .elementor-element-9ca15ab .swiper-pagination-bullet {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px !important;
	height: 24px !important;
	margin: 0 2px !important;
	background: transparent !important;
	opacity: 1 !important;
}

.cga-a11y-remediation .elementor-element-9ca15ab .swiper-pagination-bullet::before {
	width: 6px;
	height: 6px;
	background: #000;
	border-radius: 50%;
	content: '';
	opacity: 0.2;
}

.cga-a11y-remediation .elementor-element-9ca15ab .swiper-pagination-bullet-active::before {
	opacity: 1;
}

.cga-a11y-remediation .elementor-element-9ca15ab .swiper-pagination-bullet:focus-visible {
	outline: 2px solid #004565;
	outline-offset: 2px;
}

/* Keep form submission focus visible on both white and brand-color panels. */
.cga-a11y-remediation .wpforms-form button[type='submit']:focus-visible,
.cga-a11y-remediation .wpforms-form input[type='submit']:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #004565 !important;
}

.cga-a11y-remediation #menu-primary-menu a:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #004565 !important;
}

/* Give navigation submenus a separate keyboard-operable disclosure button. */
.cga-a11y-remediation #menu-primary-menu li.elementskit-dropdown-has {
	position: relative;
}

.cga-a11y-remediation #menu-primary-menu li.elementskit-dropdown-has > a {
	padding-inline-end: 38px !important;
}

.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle {
	position: absolute;
	top: 50%;
	inset-inline-end: 4px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	min-width: 30px;
	min-height: 30px;
	padding: 0;
	color: inherit;
	background: transparent;
	border: 0;
	border-radius: 50%;
	transform: translateY(-50%);
	cursor: pointer;
}

.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle:focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #004565 !important;
}

.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle[aria-expanded='true'] .elementskit-submenu-indicator,
.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle[aria-expanded='true'] .ekit-submenu-indicator-icon,
.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle[aria-expanded='true'] .cga-submenu-toggle-icon {
	transform: rotate(180deg);
}

.cga-a11y-remediation #menu-primary-menu li.cga-submenu-open > .elementskit-submenu-panel {
	display: block !important;
	max-height: 2500px !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: translateY(0) !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
	/* Elementor adds card margins outside the Contact information columns. */
	.cga-a11y-remediation.page-id-61 .elementor-element-2e7b89bd .elementor-top-column > .elementor-widget-wrap {
		width: calc(100% - 20px);
		max-width: calc(100% - 20px);
		flex-basis: calc(100% - 20px);
	}

	/* Keep the Contact email address inside its tablet-width column. */
	.cga-a11y-remediation .elementor-element-3c02d24 .elementor-heading-title {
		font-size: clamp(1.5rem, 4vw, 2rem) !important;
		line-height: 1.2 !important;
	}

	.cga-a11y-remediation .elementor-element-3c02d24 a {
		overflow-wrap: anywhere;
	}
}

@media (max-width: 1024px) {
	.cga-a11y-remediation #menu-primary-menu .cga-submenu-toggle {
		top: 7px;
		transform: none;
	}
}

@media (max-width: 767px) {
	/* Elementor keeps a 100% width even when a column wrap has side margins. */
	.cga-a11y-remediation .elementor-top-column > .elementor-widget-wrap {
		width: auto;
		max-width: 100%;
	}

	/* Home hero has explicit 20-pixel side margins on a full-width flex item. */
	.cga-a11y-remediation .elementor-element-1f1d3cb7 > .elementor-widget-wrap {
		width: calc(100% - 40px);
		max-width: calc(100% - 40px);
		flex-basis: calc(100% - 40px);
	}

	/* Keep the hero's longest word inside its corrected narrow content column. */
	.cga-a11y-remediation .elementor-element-46f03614 .elementor-heading-title {
		font-size: clamp(2rem, 10vw, 2.5rem) !important;
		line-height: 1.1 !important;
	}

	/* Shared mobile header wordmark must fit its intentionally narrow column. */
	.cga-a11y-remediation .elementor-element-75e3a13 .elementor-heading-title {
		font-size: clamp(1.5rem, 8vw, 1.625rem) !important;
		line-height: 1.05 !important;
	}

	/* Service-page hero titles include long words such as “Countertops” and “Management.” */
	.cga-a11y-remediation .elementor-element-a7cac06 .elementor-heading-title {
		font-size: clamp(2rem, 12.5vw, 2.5rem) !important;
		line-height: 1.1 !important;
	}

	/* Shared header and footer logo widgets must shrink with their columns. */
	.cga-a11y-remediation .elementor-element-655ef2ed,
	.cga-a11y-remediation .elementor-element-2beb1877 {
		width: 100% !important;
		max-width: 100% !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.cga-a11y-remediation .elementor-element-655ef2ed .elementor-widget-container,
	.cga-a11y-remediation .elementor-element-2beb1877 .elementor-widget-container {
		width: 100%;
		max-width: 100%;
	}

	.cga-a11y-remediation .elementor-element-655ef2ed a,
	.cga-a11y-remediation .elementor-element-2beb1877 a {
		display: inline-flex;
		width: auto;
		max-width: 100%;
	}

	.cga-a11y-remediation .elementor-element-655ef2ed img,
	.cga-a11y-remediation .elementor-element-2beb1877 img {
		width: auto;
		max-width: 100%;
		height: auto;
	}

	/* Remove desktop-only positioning from shared footer content. */
	.cga-a11y-remediation .elementor-element-3dfb9c9e,
	.cga-a11y-remediation .elementor-element-f9c08dc {
		width: 100% !important;
		max-width: 100% !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.cga-a11y-remediation .elementor-element-f9c08dc,
	.cga-a11y-remediation .elementor-element-f9c08dc p {
		white-space: normal;
		overflow-wrap: break-word;
	}

	/* Keep the long Contact email address inside the narrow content column. */
	.cga-a11y-remediation .elementor-element-3c02d24 .elementor-heading-title {
		font-size: clamp(1.125rem, 6vw, 1.25rem) !important;
		line-height: 1.25 !important;
	}

	.cga-a11y-remediation .elementor-element-3c02d24 a {
		overflow-wrap: anywhere;
	}

	/* The off-canvas panel must never exceed the available viewport. */
	.cga-a11y-remediation .elementskit-menu-container,
	.cga-a11y-remediation .elementskit-menu-overlay {
		max-width: 100%;
	}
}
