/*
 * blocks.css: layout rules for content converted from Elementor, keyed on the
 * classes tools/convert adds (act-sec, act-col, act-w...). They reproduce the
 * Elementor section/column/widget box model the live pages were built with,
 * so converted pages keep their exact spacing. Per-element overrides are in
 * pages.css.
 */

/* Sections */
.act-sec {
	position: relative;
	margin-top: 0;
	margin-bottom: 0;
}
.act-sec > * {
	margin-top: 0;
	margin-bottom: 0;
}
.act-minh {
	display: flex;
	flex-direction: column;
}
.act-minh > * {
	width: 100%;
}
.act-pos-middle { justify-content: center; }
.act-pos-top { justify-content: flex-start; }
.act-pos-bottom { justify-content: flex-end; }
.act-pos-stretch > * { flex: 1 1 auto; }

/* Columns: Elementor stacks at 767px, not core's 781px. */
.wp-block-columns.act-cols {
	margin: 0;
	gap: 0 !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
}
.act-cols > .wp-block-column {
	min-height: 1px;
	margin: 0;
	/* core sets break-word here; Elementor columns let long words overflow */
	word-break: normal;
	overflow-wrap: normal;
}
.act-cols > .wp-block-column[style*="flex-basis"] {
	flex-grow: 0;
	flex-shrink: 1;
}
.act-cols > .wp-block-column.act-col-thin {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.act-cols.act-cv-middle > .wp-block-column,
.act-sec.act-cv-middle > .act-col,
.act-sec .act-col.act-cv-middle,
.act-cols > .wp-block-column.act-cv-middle,
.act-cols > .wp-block-column.act-cv-center,
.act-sec .act-col.act-cv-center {
	align-content: center;
	align-items: center;
}
.act-cols.act-cv-bottom > .wp-block-column,
.act-sec.act-cv-bottom > .act-col,
.act-sec .act-col.act-cv-bottom,
.act-cols > .wp-block-column.act-cv-bottom {
	align-content: flex-end;
	align-items: flex-end;
}
.act-ch-center { text-align: center; }

/* Column background images (Elementor painted them behind the widget wrap). */
.act-has-bg {
	position: relative;
}
.act-col-bg {
	position: absolute;
	inset: 0;
	margin: 0 !important;
}
.act-has-bg > :not(.act-col-bg) {
	position: relative;
}

@media (max-width: 1024px) {
	.wp-block-columns.act-cols {
		flex-wrap: wrap !important;
	}
}
@media (max-width: 767px) {
	.act-cols > .wp-block-column,
	.act-cols > .wp-block-column[style*="flex-basis"] {
		flex-basis: 100% !important;
		width: 100%;
		max-width: 100%;
	}
}

/* Widget wrap: Elementor lays widgets out as full-width flex items, so
   margins never collapse into or between them. */
.act-col,
.act-cols > .wp-block-column {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
}
.act-col > *,
.act-cols > .wp-block-column > * {
	width: 100%;
}
.act-col {
	min-height: 1px;
}
.act-col > .act-w-auto,
.act-cols > .wp-block-column > .act-w-auto {
	width: auto;
}

/* Widgets */
.act-w {
	margin-bottom: 0;
}
.act-w:not(:last-child) {
	margin-bottom: 20px;
}
.act-w-auto {
	display: inline-block;
	width: auto;
}
.act-text {
	color: #000;
}
.act-text > :last-child:not(p):not(ul):not(ol):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
	margin-bottom: 0;
}

/* Heading widget (.elementor-heading-title) */
.wp-block-heading.act-w-heading {
	margin-top: 0;
	margin-bottom: 0;
	padding: 0;
	line-height: 1;
}
.wp-block-heading.act-w-heading:not(:last-child) {
	margin-bottom: 20px;
}

/* Image widget */
.wp-block-image.act-w-image {
	margin-left: 0;
	margin-right: 0;
	text-align: center;
}
.wp-block-image.act-w-image img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	height: auto;
}
.act-img-left { text-align: left !important; }
.act-img-right { text-align: right !important; }

/* Button widget (Elementor button, accent color) */
.act-w-button {
	margin-top: 0;
}
.act-elbtn .wp-block-button__link,
.act-elbtn .wp-block-button__link:visited {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 50px;
	background-color: #61ce70;
	color: #fff;
	font-family: "Roboto", sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	transition: all 0.3s;
}
.act-elbtn--xs .wp-block-button__link {
	padding: 10px 20px;
}
.act-elbtn .wp-block-button__link:hover,
.act-elbtn .wp-block-button__link:focus {
	background-color: #04295c;
	color: #fff;
	text-decoration: none;
}

/* Spacer widget */
.wp-block-spacer.act-w {
	clear: none;
}

/* Toggle widget -> details */
.act-toggle .act-toggle__item {
	margin: 0;
}
.act-toggle .act-toggle__item > summary {
	display: block;
	padding: 15px;
	border-bottom: 1px solid #efefef;
	color: #000;
	font-weight: 400;
	line-height: 16px;
	cursor: pointer;
	list-style: none;
}
.act-toggle .act-toggle__item > summary::-webkit-details-marker {
	display: none;
}
.act-toggle .act-toggle__item > summary::before {
	content: "";
	float: right;
	width: 16px;
	height: 17px;
	margin-right: 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'/%3E%3C/svg%3E") right center / 10px 16px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'/%3E%3C/svg%3E") right center / 10px 16px no-repeat;
}
.act-toggle .act-toggle__item[open] > summary {
	color: #077cbf;
}
.act-toggle .act-toggle__item[open] > summary::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.568 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3C/svg%3E") right center / 14px 16px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.568 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3C/svg%3E") right center / 14px 16px no-repeat;
}
.act-toggle .act-toggle__item[open] > summary {
	border-bottom: 0;
}
.act-toggle__content {
	margin: 0;
	padding: 15px;
	border-bottom: 1px solid #efefef;
	color: #000;
}
@media (max-width: 767px) {
	.act-toggle .act-toggle__item > summary {
		padding: 12px;
	}
	.act-toggle__content {
		padding: 12px 10px;
	}
}

/* How It Works numbered steps (was <dl class="faq">) */
#ndic-content ol.act-steps,
ol.act-steps {
	counter-reset: act-step;
	max-width: 800px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}
ol.act-steps > li {
	position: relative;
	padding: 4px 0 10px 70px;
	font-weight: 400;
}
ol.act-steps > li::before {
	content: counter(act-step);
	counter-increment: act-step;
	position: absolute;
	left: 0;
	top: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 100px;
	font: bold 28px/1 "Montserrat", sans-serif;
	text-align: center;
}
@media (min-width: 1200px) {
	ol.act-steps > li {
		padding-left: 95px;
	}
	ol.act-steps > li::before {
		width: 75px;
		height: 75px;
		font-size: 32px;
	}
}

/* Hide-on-device flags carried from Elementor */
@media (min-width: 1025px) { .act-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .act-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .act-hide-mobile { display: none !important; } }

/* Entrance animations (Elementor "Motion effects"). Waiting elements are
   transparent, not visibility:hidden, so keyboard users can still reach
   them (WCAG 2.1.1); site.js reveals them on scroll or on focus. */
.js .act-anim {
	opacity: 0;
}
.js .act-anim.is-visible {
	opacity: 1;
	animation-duration: 1.25s;
	animation-fill-mode: both;
}
.js .act-anim.act-anim--instant {
	animation: none !important;
	opacity: 1;
}
.js .act-anim.act-slow.is-visible { animation-duration: 2s; }
.act-delay-100 { animation-delay: 0.1s; }
.act-delay-200 { animation-delay: 0.2s; }
.act-delay-300 { animation-delay: 0.3s; }
.act-delay-400 { animation-delay: 0.4s; }
.act-delay-500 { animation-delay: 0.5s; }
.act-delay-600 { animation-delay: 0.6s; }
.act-delay-800 { animation-delay: 0.8s; }
.act-delay-900 { animation-delay: 0.9s; }
.is-visible.act-anim--fadeIn { animation-name: act-fadeIn; }
.is-visible.act-anim--fadeInUp { animation-name: act-fadeInUp; }
.is-visible.act-anim--fadeInDown { animation-name: act-fadeInDown; }
.is-visible.act-anim--fadeInLeft { animation-name: act-fadeInLeft; }
.is-visible.act-anim--fadeInRight { animation-name: act-fadeInRight; }
.is-visible.act-anim--slideInUp { animation-name: act-slideInUp; }
.is-visible.act-anim--slideInDown { animation-name: act-slideInDown; }
.is-visible.act-anim--slideInLeft { animation-name: act-slideInLeft; }
.is-visible.act-anim--slideInRight { animation-name: act-slideInRight; }
@keyframes act-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes act-fadeInUp { from { opacity: 0; transform: translate3d(0, 100%, 0); } to { opacity: 1; transform: none; } }
@keyframes act-fadeInDown { from { opacity: 0; transform: translate3d(0, -100%, 0); } to { opacity: 1; transform: none; } }
@keyframes act-fadeInLeft { from { opacity: 0; transform: translate3d(-100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes act-fadeInRight { from { opacity: 0; transform: translate3d(100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes act-slideInUp { from { transform: translate3d(0, 100%, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes act-slideInDown { from { transform: translate3d(0, -100%, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes act-slideInLeft { from { transform: translate3d(-100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes act-slideInRight { from { transform: translate3d(100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
	.js .act-anim {
		opacity: 1;
		animation: none !important;
	}
}


/* Testimonial carousel (was Elementor Pro testimonial-carousel, layout
   image_left). Markup: .act-testimonials > .act-testimonial > image + body.
   assets/js/site.js wraps the slides in a track and adds arrows and dots. */
.act-testimonials {
	position: relative;
	color: #5c6b80;
}
.act-tcar__viewport {
	position: relative;
	width: 95%;
	margin: 0 auto;
	padding-bottom: 40px;
	overflow: hidden;
}
.act-tcar__track {
	display: flex;
	align-items: stretch;
	transition: transform 1s ease;
	will-change: transform;
}
.act-testimonial {
	flex: 0 0 calc((100% - 10px * (var(--act-per-view, 2) - 1)) / var(--act-per-view, 2));
	box-sizing: border-box;
	display: flex;
	align-items: stretch;
	margin: 0 10px 0 0;
	padding: 20px;
	overflow: hidden;
}
.act-testimonial .act-testimonial__image {
	flex: 0 0 auto;
	box-sizing: content-box;
	width: 190px;
	margin: 0;
	padding: 0 20px 0 0;
	text-align: center;
}
.act-testimonial .act-testimonial__image img {
	display: inline;
	width: 190px;
	height: 190px;
	max-width: 100%;
	border-radius: 999px;
	object-fit: cover;
	vertical-align: middle;
}
.act-testimonial__body {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
}
.act-testimonial__body p {
	margin: 0;
}
.act-testimonial__content {
	color: #000;
	font-size: 18px;
	font-style: normal;
	line-height: 1.5;
}
.act-testimonial__name {
	margin-top: 25px !important;
	color: #000;
	font-weight: 700;
}
.act-testimonial__title {
	color: #9b9b9b;
}
.act-testimonials .act-tcar__arrow,
.act-testimonials .act-tcar__arrow:hover,
.act-testimonials .act-tcar__arrow:focus {
	position: absolute;
	top: calc((100% - 40px) / 2);
	z-index: 1;
	display: inline-flex;
	width: 21px;
	height: 20px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: rgba(237, 237, 237, 0.9);
	box-shadow: none;
	transform: translateY(-50%);
	cursor: pointer;
}
.act-tcar__arrow svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}
.act-testimonials .act-tcar__arrow--prev { left: 10px; }
.act-testimonials .act-tcar__arrow--next { right: 10px; }
.act-testimonials .act-tcar__arrow:focus-visible,
.act-testimonials .act-tcar__dot:focus-visible {
	outline: 2px solid #077cbf;
	outline-offset: 2px;
}
.act-tcar__dots {
	position: absolute;
	left: 0;
	bottom: 5px;
	width: 100%;
	line-height: 24px;
	text-align: center;
	font-size: 16px;
}
.act-testimonials .act-tcar__dot,
.act-testimonials .act-tcar__dot:hover,
.act-testimonials .act-tcar__dot:focus {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #000;
	box-shadow: none;
	opacity: 0.2;
	vertical-align: baseline;
	cursor: pointer;
}
.act-testimonials .act-tcar__dot[aria-current="true"] {
	opacity: 1;
}
@media (max-width: 1024px) {
	.act-testimonials { --act-per-view: 1; }
}
@media (max-width: 767px) {
	.act-testimonial .act-testimonial__image {
		width: 68px;
	}
	.act-testimonial .act-testimonial__image img {
		width: 68px;
		height: 68px;
	}
}
