/*
Theme Name:   Ally Technical - Divi Child Theme
Description:  Ally Technical child theme, based on Divi 5.
Author:       SpinGroup
Author URI:   https://www.spingroup.com
Template:     Divi
Version:      1.0.0
*/

/*
* Global layer only: resets, element defaults, rules that genuinely apply site-wide.
* Anything belonging to one section or component goes in assets/css/<slug>.css.
*
* Brand colors, fonts and spacing belong in Divi's Global Variables and Presets, not here.
* Accessibility CSS is deliberately absent unless a rule patches a Divi gap that no builder
* setting reaches; when you add one, say which finding it closes. See docs/accessibility.md.
*/

/* Button icons: keep the glyph out of the accessible name.
*
* Divi draws button icons as ETmodules glyphs in ::before/::after content, and Chrome
* puts generated content into the accessible name, so "View the roadmap" reads as
* "View the roadmap 5". CSS alternative text (content: "x" / "") keeps the glyph and
* names it empty. These mirror Divi's own icon rules exactly (default glyph, data-icon,
* tablet and phone variants at Divi's breakpoints) one class more specific than its
* preset rules, which load after this sheet. Browsers without the alt syntax ignore
* the declaration and fall back to Divi's, so nothing breaks. Verified against Divi 5.13.
*/

html body #page-container .et_pb_section .et_pb_button::before,
html body #page-container .et_pb_section .et_pb_button::after {
	content: "5" / "";
}

html body #page-container .et_pb_section .et_pb_button[data-icon]:not([data-icon=""])::before,
html body #page-container .et_pb_section .et_pb_button[data-icon]:not([data-icon=""])::after {
	content: attr(data-icon) / "";
}

@media (max-width: 980px) {
	html body #page-container .et_pb_section .et_pb_button[data-icon-tablet]:not([data-icon-tablet=""])::before,
	html body #page-container .et_pb_section .et_pb_button[data-icon-tablet]:not([data-icon-tablet=""])::after {
		content: attr(data-icon-tablet) / "";
	}
}

@media (max-width: 767px) {
	html body #page-container .et_pb_section .et_pb_button[data-icon-phone]:not([data-icon-phone=""])::before,
	html body #page-container .et_pb_section .et_pb_button[data-icon-phone]:not([data-icon-phone=""])::after {
		content: attr(data-icon-phone) / "";
	}
}

html {
	overflow-x: hidden;
}

/* Courtesy Menu */

ul#menu-courtesy-menu .menu-item-260:before {
	content: "|";
	right: 10px;
	position: relative;
	bottom: 1px;
}

@media (max-width: 980px) {
	.pa-open-mobile-menu .et_pb_menu__menu { 
		display: flex !important; 
	}
	.pa-open-mobile-menu .et_mobile_nav_menu { 
		display: none !important; 
	}
}

/* Main Menu */

.et-menu .menu-item-has-children>a:first-child {
	padding-right: 16px!important;
}

@media (min-width: 981px) and (max-width: 1080px) {
	ul#menu-main-menu > li > a {
		font-size: 13px;
	}
	ul#menu-main-menu > li {
		padding-left: 10px!important;
		padding-right: 10px!important;
	}
}

ul#menu-main-menu ul.sub-menu {
	padding: 0px!important;
	border-radius: 8px;
	width: 100%!important;
	min-width: 180px;
	border-top: unset!important;
}

ul#menu-main-menu ul.sub-menu > li {
	padding: 0;
	min-width: 180px;
	width: 100%;
}

ul#menu-main-menu ul.sub-menu > li > a {
	padding: 7px 14px;
	width: 100%;
	min-width: 180px;
	border-radius: 8px;
	color: #2b3d63!important;
}

ul#menu-main-menu ul.sub-menu > li:first-child > a {
	padding-top: 10px;
}

ul#menu-main-menu ul.sub-menu > li:last-child > a {
	padding-bottom: 10px;
}

ul#menu-main-menu ul.sub-menu > li > a:hover {
	background: #EEEEEE;
	border-radius: 8px;
	color: #2b3d63!important;
}

ul#menu-main-menu > li {
	margin-top: 5px;
	margin-bottom: 3px;
}

ul#menu-main-menu > li > a {
	padding-bottom: 15px;
	margin-top: 15px;
}

#menu-main-menu .button-style {
	border-radius: 99px;
	background: white;
	padding-left: 20px;
	padding-right: 22px;
	margin-left: 10px;
}

#menu-main-menu .button-style a {
	color: #2B3D63;
	padding-bottom: 15px!important;
	display: flex;
	align-items: center;
}

/* Mobile menu */
/* 
.asm-menu .et-menu-nav li.menu-cta,
.asm-menu .et-menu li.menu-cta {
display: none !important;
} */

@media screen and (min-width: 981px) {
	.mobile-only {
		display: none!important;
	}
}

@media (max-width: 980px) {

	.asm-menu .mobile_menu_bar {
		position: relative;
		z-index: 100001;
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		padding: 0 !important;
		border-radius: 50%;
		cursor: pointer;
		background: transparent;
		transition: background-color .4s ease;
	}

	.asm-menu .mobile_menu_bar:before,
	.asm-menu .mobile_menu_bar:after {
		display: none !important;
	}

	.asm-menu .mobile_menu_bar:focus-visible {
		outline: 2px solid #5ccb95;
		outline-offset: 3px;
	}

	.asm-bars {
		position: relative;
		display: block;
		width: 26px;
		height: 18px;
		transition: width .4s ease;
	}

	.asm-bars span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2.5px;
		border-radius: 2px;
		background: #ffffff;
		transition: top .4s ease, transform .4s ease, opacity .2s ease, background-color .4s ease;
	}

	.asm-bars span:nth-child(1) {
		top: 0;
	}

	.asm-bars span:nth-child(2) {
		top: 7.75px;
	}

	.asm-bars span:nth-child(3) {
		top: 15.5px;
	}

	body.asm-open .asm-menu .mobile_menu_bar {
		background: #ffffff;
	}

	body.asm-open .asm-bars {
		width: 18px;
	}

	body.asm-open .asm-bars span {
		top: 7.75px;
		background: #2f3c5f;
	}

	body.asm-open .asm-bars span:nth-child(1) {
		transform: rotate(45deg);
	}

	body.asm-open .asm-bars span:nth-child(2) {
		opacity: 0;
	}

	body.asm-open .asm-bars span:nth-child(3) {
		transform: rotate(-45deg);
	}

	.asm-menu .et_pb_menu__logo-wrap,
	.asm-logo {
		position: relative;
		z-index: 100001;
	}

	.asm-menu .et_mobile_menu {
		display: flex !important;
		flex-direction: column;
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		height: calc(100vh - 84px) !important;
		height: calc(100dvh - 84px) !important;
		max-height: none !important;
		margin: 0 !important;
		/*     padding: 120px 24px calc(28px + env(safe-area-inset-bottom)) !important; */
		background: #2b3d63 !important;
		border: 0 !important;
		box-shadow: none !important;
		overflow-y: auto;
		overscroll-behavior: contain;
		z-index: 100000;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform .4s cubic-bezier(.7, 0, .3, 1), visibility 0s linear .4s;
		top: 84px !important;
		padding-top: 20px;
	}

	body.asm-open .asm-menu .et_mobile_menu {
		transform: translateX(0);
		visibility: visible;
		transition: transform .4s cubic-bezier(.7, 0, .3, 1), visibility 0s;
	}

	body.asm-open {
		overflow: hidden;
	}

	.asm-menu .et_mobile_menu li {
		list-style: none;
		margin: 0 !important;
		padding: 0 !important;
	}

	.asm-menu .et_mobile_menu li a {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		padding: 20px 14px !important;
		margin: 0 !important;
		color: #ffffff !important;
		background: transparent !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
		font-size: 18px !important;
		font-weight: 600 !important;
		line-height: 1.2 !important;
		text-decoration: none !important;
		opacity: 1 !important;
		transition: color .2s ease;
	}

	.asm-menu .et_mobile_menu li a:after {
		content: "" !important;
		flex: 0 0 22px;
		width: 22px;
		height: 22px;
		margin: 0 !important;
		position: static !important;
		background-color: #2bce9b;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18 18 6M9 6h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18 18 6M9 6h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
		transition: background-color .2s ease, transform .3s ease;
	}

	.asm-menu .et_mobile_menu li.current-menu-item > a,
	.asm-menu .et_mobile_menu li a:hover {
		color: #5ccb95 !important;
	}

	.asm-menu .et_mobile_menu li.current-menu-item > a:after,
	.asm-menu .et_mobile_menu li a:hover:after {
		background-color: #5ccb95;
	}

	/* Parent items: chevron icon instead of arrow */
	.asm-menu .et_mobile_menu li.menu-item-has-children > a:after {
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		background-color: white!important;
	}

	.asm-menu .et_mobile_menu li.menu-item-has-children.asm-sub-open > a:after {
		transform: rotate(180deg);
		background-color: #5ccb95;
	}

	.asm-menu .et_mobile_menu .sub-menu {
		display: none !important;
		position: static !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: auto !important;
		padding: 0 !important;
		margin: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	.asm-menu .et_mobile_menu li.asm-sub-open > .sub-menu {
		display: block !important;
	}

	.asm-menu .et_mobile_menu .sub-menu li a {
		padding: 18px 14px 18px 34px !important;
		font-size: 18px !important;
		font-weight: 500 !important;
	}

	.asm-menu .et_mobile_menu > li.menu-cta {
		display: block !important;
		margin-top: auto !important;
		padding-top: 32px !important;
	}

	.asm-menu .et_mobile_menu > li.menu-cta > a {
		justify-content: center;
		padding: 22px 24px !important;
		border: 0 !important;
		border-radius: 999px;
		background: #ffffff !important;
		color: #2f3c5f !important;
		font-size: 18px !important;
	}

	.asm-menu .et_mobile_menu > li.menu-cta > a:after {
		flex-basis: 18px;
		width: 18px;
		height: 18px;
		background-color: #5ccb95;
	}
}

@media (prefers-reduced-motion: reduce) {

	.asm-menu .et_mobile_menu,
	.asm-bars,
	.asm-bars span {
		transition: none !important;
	}
}

/* Back To Top Icon */

.et_pb_scroll_top.et-pb-icon {
	background: #2BCE9B;
	border-radius: 50%;
	height: 64px;
	width: 64px;
	align-content: center;
	right: 80px;
}

@media screen and (max-width: 767px) {
	.et_pb_scroll_top.et-pb-icon {
		right: 15px;
	}
}

/* Notification Bar */

#wpfront-notification-bar div.wpfront-close {
  border: unset !important;
  background-color: transparent !important;
  background-image: url('/wp-content/uploads/2026/10/x-icon.svg') !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  width: 12px !important;
  height: 12px !important;
  font-size: 0 !important;
  color: transparent !important;
  line-height: 0 !important;
  border-radius: 0 !important;
  top: unset;
  right: 20px;
  cursor: pointer;
}

div#wpfront-notification-bar {
	display: flex;
	align-items: center;
	flex-direction: column;
}

#wpfront-notification-bar .wpfront-message.wpfront-div {
    font-size: 14px;
	color: #2B3D63;
    font-weight: 600;
}

/* Testimonials */

.spin_testimonial_carousel_item {
    display: flex;
    justify-content: center;
    align-items: center;
}