:root {
	--afa-navy: #2b2b5d;
	--afa-purple: #8224e3;
	--afa-cyan: #39c7ce;
	--afa-pink: #ee2a7b;
	--afa-dark: #3c3c3d;
	--afa-canvas: #f3f3f3;
	--afa-nav-active: #f3faff;
	--afa-max: 1300px;
}

html,
body {
	overflow-x: clip;
}

img,
video,
iframe,
svg {
	max-width: 100%;
}

.elementor-shape svg {
	max-width: none;
}

.elementor-widget-text-editor,
.elementor-heading-title {
	overflow-wrap: anywhere;
}

body.elementor-page .page-header {
	display: none;
}

body.elementor-page {
	background: var(--afa-canvas);
}

body.elementor-page .site-main {
	width: min(100%, var(--afa-max));
	margin-inline: auto;
	background: #fff;
	box-shadow: 0 0 8px rgba(33, 17, 15, 0.5);
}

.elementor-section-stretched {
	max-width: 100vw;
}

body.elementor-page .site-main .elementor-section-stretched {
	left: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

.wordpress-page:not(.home) .site-main {
	padding-top: 14px;
}

.wordpress-page:not(.home) .site-main > .page-content > .elementor > .elementor-section:first-child {
	margin-top: 0 !important;
}

.wordpress-page.home .site-main > .page-content > .elementor > .elementor-section:first-child {
	margin-top: 0 !important;
}

.afa-header-sentinel {
	height: 1px;
	margin-bottom: -1px;
	pointer-events: none;
	visibility: hidden;
}

.afa-header {
	position: sticky;
	z-index: 999;
	top: 0;
	width: 100%;
	border-bottom: 2px solid #e11fb5;
	background: #fff;
	box-shadow: none;
	transition: border-color 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
}

.admin-bar .afa-header {
	top: 0;
}

@media (min-width: 783px) {
	.admin-bar .afa-header.is-sticky {
		top: 32px;
	}
}

.afa-header.is-sticky {
	border-bottom-color: #a34ff2;
	background: rgba(255, 255, 255, 0.985);
	box-shadow: 0 8px 24px rgba(43, 43, 93, 0.18);
}

.afa-header__inner {
	display: flex;
	align-items: center;
	width: min(100% - 40px, var(--afa-max));
	min-height: 100px;
	margin: 0 auto;
	gap: 30px;
	transition: min-height 220ms ease;
}

.afa-header__logo {
	display: block;
	flex: 0 0 270px;
	line-height: 0;
	transition: flex-basis 220ms ease;
}

.afa-header__logo img {
	display: block;
	width: 270px;
	height: auto;
	transition: width 220ms ease;
}

.afa-nav {
	margin-left: auto;
}

.afa-nav ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.afa-nav__list {
	display: flex;
	align-items: center;
	gap: 34px;
}

.afa-nav__item {
	position: relative;
}

.afa-nav__item > a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 10px;
	border-radius: 8px;
	font: 500 16px/1.2 "Roboto", Arial, sans-serif;
	text-decoration: none;
	white-space: nowrap;
	transition: min-height 220ms ease, background-color 160ms ease, transform 160ms ease, opacity 160ms ease;
}

.afa-nav__item > a:hover,
.afa-nav__item > a:focus-visible,
.afa-nav__item > a:active,
.afa-nav__item > a.is-active {
	background: var(--afa-nav-active) !important;
	opacity: 1;
	transform: translateY(-1px);
}

.afa-nav__item--home > a {
	color: #ef0a76;
}

.afa-nav__item--services > a {
	color: #087ccf;
}

.afa-nav__item--about > a {
	color: #22afd1;
}

.afa-nav__item--faq > a {
	color: #eda600;
}

.afa-nav__item--contact > a {
	color: #e51c3c;
}

.afa-submenu-toggle {
	display: none;
}

.afa-submenu {
	position: absolute;
	top: calc(100% - 4px);
	left: 50%;
	z-index: 5;
	min-width: 220px;
	padding: 10px 0 !important;
	border-top: 3px solid var(--afa-cyan);
	border-radius: 0 0 10px 10px;
	background: #fff;
	box-shadow: 0 16px 36px rgba(43, 43, 93, 0.18);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 8px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.afa-submenu a {
	display: block;
	padding: 9px 18px;
	border-radius: 6px;
	color: #4a4a4a;
	font: 500 14px/1.35 "Roboto", Arial, sans-serif;
	text-decoration: none;
}

.afa-submenu a:hover,
.afa-submenu a:focus-visible,
.afa-submenu a:active,
.afa-submenu a.is-active {
	background: var(--afa-nav-active) !important;
	filter: none;
}

.afa-service-link--face-painting > a {
	color: #2196f3;
}

.afa-service-link--balloon-twisting > a {
	color: #e91e63;
}

.afa-service-link--party-add-ons > a {
	color: #ed0000;
}

.afa-service-link--henna-body-art > a {
	color: #a43ddb;
}

.afa-service-link--glitter-tattoos > a {
	color: #278e88;
}

.afa-service-link--airbrush-tattoos > a {
	color: #d7437b;
}

.afa-service-link--prenatal-art > a {
	color: #6e9d18;
}

.afa-service-link--body-painting > a {
	color: #d96b35;
}

@media (min-width: 1025px) {
	.afa-nav__item--has-children.is-desktop-open .afa-submenu {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
	}
}

.afa-call {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 126px;
	min-height: 60px;
	padding: 7px 12px;
	border: 2px solid #a34ff2;
	border-radius: 15px;
	background: #fff;
	text-decoration: none;
	box-shadow: inset 0 0 0 1px rgba(57, 199, 206, 0.28);
	transition: min-height 220ms ease, padding 220ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.afa-call:hover,
.afa-call:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 7px 18px rgba(130, 36, 227, 0.16), inset 0 0 0 1px rgba(57, 199, 206, 0.35);
}

.afa-call span {
	color: #0d8bd0;
	font: 700 15px/1.2 "Roboto", Arial, sans-serif;
}

.afa-call strong {
	margin-top: 3px;
	color: #2b2b2b;
	font: 700 16px/1.2 "Roboto", Arial, sans-serif;
}

.afa-menu-toggle {
	display: none;
}

.afa-menu-backdrop,
.afa-nav__drawer-header,
.afa-nav__contact {
	display: none;
}

.afa-footer {
	width: min(100%, var(--afa-max));
	margin-inline: auto;
	border-top: 2px solid var(--afa-cyan);
	background: linear-gradient(0deg, #575860 0%, #3a3a3a 100%);
	box-shadow: 0 4px 8px rgba(33, 17, 15, 0.34);
}

.afa-footer__main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: center;
	width: min(100% - 40px, 1140px);
	min-height: 170px;
	margin: 0 auto;
	gap: 20px;
	padding: 26px 0;
}

.afa-footer__review {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.afa-footer__review:first-child img {
	width: min(100%, 250px);
}

.afa-footer__review:last-child img {
	width: min(100%, 280px);
}

.afa-social {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}

.afa-social a {
	--afa-social-shadow: rgba(0, 0, 0, 0.28);
	display: grid;
	position: relative;
	isolation: isolate;
	width: 60px;
	height: 60px;
	overflow: hidden;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 17px;
	background: #080808;
	box-shadow: 0 10px 24px var(--afa-social-shadow);
	color: #fff;
	transition: border-color 180ms ease, box-shadow 180ms ease, filter 180ms ease, transform 180ms ease;
}

.afa-social a::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(circle at 28% 18%, rgba(255, 255, 255, 0.3), transparent 42%);
	content: "";
	opacity: 0.82;
}

.afa-social__link--facebook {
	--afa-social-shadow: rgba(24, 119, 242, 0.38);
	background: linear-gradient(145deg, #42a5ff 0%, #1877f2 56%, #0c5dcc 100%) !important;
}

.afa-social__link--x {
	--afa-social-shadow: rgba(0, 0, 0, 0.46);
	background: linear-gradient(145deg, #292929 0%, #050505 64%, #000 100%) !important;
}

.afa-social__link--instagram {
	--afa-social-shadow: rgba(225, 48, 108, 0.38);
	background: linear-gradient(135deg, #405de6 0%, #833ab4 31%, #c13584 50%, #e1306c 66%, #f77737 84%, #fcaf45 100%) !important;
}

.afa-social__link--youtube {
	--afa-social-shadow: rgba(255, 0, 0, 0.36);
	background: linear-gradient(145deg, #ff4a4a 0%, #ff0000 58%, #c90000 100%) !important;
}

.afa-social a:hover,
.afa-social a:focus-visible {
	border-color: rgba(255, 255, 255, 0.68);
	box-shadow: 0 15px 30px var(--afa-social-shadow);
	filter: brightness(1.06) saturate(1.08);
	transform: translateY(-5px) scale(1.06);
}

.afa-social a:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

.afa-social__icon {
	width: 34px;
	height: 34px;
	fill: currentColor;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.22));
}

.afa-footer__legal {
	display: flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	border-top: 2px solid #af7ce2;
	background: var(--afa-purple);
	padding: 12px 20px;
	text-align: center;
}

.afa-footer__legal p {
	margin: 0;
	color: #fff;
	font: 400 14px/1.4 "Roboto", Arial, sans-serif;
}

.afa-contact-form {
	width: min(100% - 32px, 820px);
	margin: 42px auto;
	padding: clamp(24px, 5vw, 44px);
	border: 2px solid #82ddff;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(43, 43, 93, 0.16);
}

.afa-contact-form__heading {
	margin-bottom: 28px;
	text-align: center;
}

.afa-contact-form__heading p {
	margin: 0 0 4px;
	color: var(--afa-pink);
	font: 700 13px/1.3 "Roboto", Arial, sans-serif;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.afa-contact-form__heading h2 {
	margin: 0;
	color: #a34ff2;
	font: 600 clamp(26px, 4vw, 34px)/1.15 "Raleway", Arial, sans-serif;
}

.afa-contact-form__heading span {
	display: block;
	margin-top: 9px;
	color: #5b5b62;
	font: 400 15px/1.5 "Roboto", Arial, sans-serif;
}

.afa-contact-form form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.afa-form-field {
	margin: 0;
}

.afa-form-field--wide,
.afa-form-actions {
	grid-column: 1 / -1;
}

.afa-form-field label {
	display: block;
	margin-bottom: 7px;
	color: #087ccf;
	font: 600 15px/1.3 "Roboto", Arial, sans-serif;
}

.afa-form-field label span {
	color: var(--afa-pink);
}

.afa-form-help {
	display: block;
	margin-top: 6px;
	color: #737580;
	font: 500 12px/1.35 "Roboto", Arial, sans-serif;
}

.afa-form-field input,
.afa-form-field select,
.afa-form-field textarea {
	width: 100%;
	border: 1px solid #cdd3dd;
	border-radius: 7px;
	background: #fff;
	color: #333;
	font: 400 16px/1.4 "Roboto", Arial, sans-serif;
}

.afa-form-field input,
.afa-form-field select {
	min-height: 48px;
	padding: 10px 12px;
}

.afa-form-field textarea {
	display: block;
	min-height: 150px;
	padding: 12px;
	resize: vertical;
}

.afa-form-field.is-valid input {
	border-color: #34a878;
	background-color: #f7fffb;
}

.afa-form-field.has-error input {
	border-color: #d82d58;
	background-color: #fff8fa;
}

.afa-form-field.has-error .afa-form-help {
	color: #a31342;
}

.afa-form-field input:focus,
.afa-form-field select:focus,
.afa-form-field textarea:focus {
	border-color: var(--afa-cyan);
	outline: 3px solid rgba(57, 199, 206, 0.22);
	outline-offset: 1px;
}

.afa-form-actions {
	margin: 2px 0 0;
	text-align: center;
}

.afa-form-actions button {
	min-height: 50px;
	padding: 12px 28px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, #d81886, #8b3fe3);
	color: #fff;
	font: 700 16px/1.2 "Roboto", Arial, sans-serif;
	cursor: pointer;
	box-shadow: 0 8px 18px rgba(130, 36, 227, 0.2);
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.afa-form-actions button:hover,
.afa-form-actions button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 11px 22px rgba(130, 36, 227, 0.27);
}

.afa-form-actions button:disabled {
	cursor: wait;
	opacity: 0.72;
	transform: none;
}

.afa-form-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.afa-form-notice {
	margin: 0 0 22px;
	padding: 12px 15px;
	border-radius: 7px;
	font: 600 14px/1.45 "Roboto", Arial, sans-serif;
}

.afa-form-notice--success {
	background: #e9fbf3;
	color: #176f4b;
}

.afa-form-notice--error {
	background: #fff0f3;
	color: #a31342;
}

/* Contact page: remove the recovered test border from the Email heading. */
.page-id-517 .elementor-element-9a2378c > .elementor-widget-container {
	border: 0 !important;
}

/* Restore the quote form to the empty column left by Gravity Forms. */
.page-id-517 .elementor-element-a428d6e > .elementor-widget-wrap {
	align-content: flex-start;
}

.page-id-517 .elementor-element-a428d6e .afa-contact-form {
	width: 100%;
	margin: 0;
	border-color: rgba(57, 199, 206, 0.7);
	box-shadow: 0 14px 36px rgba(43, 43, 93, 0.12);
}

.page-id-517 .elementor-element-a428d6e .afa-contact-form__heading {
	text-align: left;
}

.page-id-517 .elementor-element-a428d6e .afa-contact-form__heading span {
	margin-inline: 0;
}

.page-id-517 .elementor-element-d612586 {
	margin: 0 16px 16px !important;
}

.page-id-517 .elementor-element-d612586 > .elementor-element-populated {
	margin-top: 0 !important;
}

/* Contact page: modern rate summary replacing the obsolete award graphic. */
.afa-rates-card {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: clamp(30px, 4vw, 46px);
	border: 1px solid rgba(163, 79, 242, 0.3);
	border-radius: 18px;
	background:
		radial-gradient(circle at 100% 0%, rgba(57, 199, 206, 0.2), transparent 42%),
		linear-gradient(145deg, #fff 0%, #faf7ff 100%);
	box-shadow: 0 14px 36px rgba(43, 43, 93, 0.12);
}

.afa-rates-card::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--afa-pink), var(--afa-purple), var(--afa-cyan));
	content: "";
}

.afa-rates-card__eyebrow {
	margin: 0 0 8px !important;
	color: var(--afa-pink);
	font: 700 12px/1.3 "Roboto", Arial, sans-serif;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.afa-rates-card h3 {
	margin: 0 0 17px;
	color: var(--afa-navy);
	font: 700 clamp(25px, 3vw, 34px)/1.15 "Raleway", Arial, sans-serif;
}

.afa-rates-card > p:not(.afa-rates-card__eyebrow) {
	margin: 0;
	color: #555761;
	font: 400 16px/1.65 "Roboto", Arial, sans-serif;
}

.afa-rates-card__highlight {
	margin: 25px 0;
	padding: 18px 20px;
	border-left: 4px solid var(--afa-purple);
	border-radius: 0 12px 12px 0;
	background: rgba(130, 36, 227, 0.07);
}

.afa-rates-card__highlight strong,
.afa-rates-card__highlight span {
	display: block;
}

.afa-rates-card__highlight strong {
	color: var(--afa-purple);
	font: 700 19px/1.3 "Raleway", Arial, sans-serif;
}

.afa-rates-card__highlight span {
	margin-top: 4px;
	color: #686873;
	font: 500 14px/1.45 "Roboto", Arial, sans-serif;
}

.afa-rates-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin-top: 24px;
	padding: 12px 22px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--afa-pink), var(--afa-purple));
	box-shadow: 0 9px 20px rgba(130, 36, 227, 0.22);
	color: #fff !important;
	font: 700 15px/1.2 "Roboto", Arial, sans-serif;
	text-decoration: none !important;
	transition: box-shadow 160ms ease, transform 160ms ease;
}

.afa-rates-card__button:hover,
.afa-rates-card__button:focus-visible {
	box-shadow: 0 12px 25px rgba(130, 36, 227, 0.3);
	transform: translateY(-2px);
}

.afa-recovered-gallery .gallery {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 0 !important;
}

.afa-recovered-gallery .gallery-item {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.afa-recovered-gallery .gallery-icon,
.afa-recovered-gallery .gallery-icon a {
	display: block;
	height: 100%;
	line-height: 0;
}

.afa-recovered-gallery .gallery-icon img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 160px;
	aspect-ratio: 1 / 1;
	border: 2px solid rgba(130, 130, 140, 0.46) !important;
	border-radius: 8px;
	object-fit: cover;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.afa-recovered-gallery .gallery-icon a:hover img,
.afa-recovered-gallery .gallery-icon a:focus-visible img {
	transform: translateY(-2px);
	box-shadow: 0 7px 18px rgba(43, 43, 93, 0.2);
}

.afa-faq-page {
	width: min(100% - 40px, 1120px);
	margin: 0 auto;
	padding: clamp(38px, 6vw, 72px) 0;
}

/* Contact methods: keep the replacement Service Area card aligned with Email. */
.page-id-517 .elementor-element-a166ebe > .elementor-widget-container {
	margin: 10px 0 0 !important;
}

.page-id-517 .elementor-element-35a36f20 > .elementor-widget-container {
	margin: -22px 0 0 !important;
}

.page-id-517 .elementor-element-35a36f20 {
	font-size: 1.5em !important;
	font-weight: 300 !important;
	line-height: 1.6em !important;
}

.afa-page-intro {
	margin-bottom: 34px;
	text-align: center;
}

.afa-page-intro > p {
	margin: 0 0 6px;
	color: var(--afa-pink);
	font: 700 13px/1.3 "Roboto", Arial, sans-serif;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.afa-page-intro h1 {
	margin: 0;
	color: #a34ff2;
	font: 600 clamp(30px, 4vw, 42px)/1.15 "Raleway", Arial, sans-serif;
}

.afa-page-intro span {
	display: block;
	max-width: 680px;
	margin: 12px auto 0;
	color: #555761;
	font: 400 16px/1.55 "Roboto", Arial, sans-serif;
}

.afa-faq-list {
	overflow: hidden;
	border: 2px solid #82ddff;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(43, 43, 93, 0.14);
}

.afa-faq-item {
	border-bottom: 1px solid #dce8ee;
}

.afa-faq-item:last-child {
	border-bottom: 0;
}

.afa-faq-item summary {
	position: relative;
	padding: 19px 58px 19px 22px;
	color: #087ccf;
	font: 600 17px/1.35 "Raleway", "Roboto", Arial, sans-serif;
	cursor: pointer;
	list-style: none;
}

.afa-faq-item summary::-webkit-details-marker {
	display: none;
}

.afa-faq-item summary::after {
	position: absolute;
	top: 50%;
	right: 22px;
	width: 28px;
	height: 28px;
	border: 2px solid #cc66ff;
	border-radius: 50%;
	color: #a34ff2;
	content: "+";
	font: 500 21px/23px "Roboto", Arial, sans-serif;
	text-align: center;
	transform: translateY(-50%);
}

.afa-faq-item[open] summary {
	color: #a34ff2;
	background: #fbf8ff;
}

.afa-faq-item[open] summary::after {
	content: "–";
}

.afa-faq-item > div {
	padding: 0 58px 20px 22px;
	background: #fbf8ff;
}

.afa-faq-item p {
	margin: 0;
	color: #494949;
	font: 400 15px/1.65 "Roboto", Arial, sans-serif;
}

.afa-service-area {
	margin-top: 38px;
	padding: 22px 28px;
	border-top: 2px solid #82ddff;
	text-align: center;
}

.afa-service-area h2 {
	margin: 0 0 8px;
	color: #087ccf;
	font: 600 20px/1.3 "Raleway", Arial, sans-serif;
}

.afa-service-area p {
	margin: 0;
	color: #777a82;
	font: 400 14px/1.55 "Roboto", Arial, sans-serif;
}

/*
 * Elementor 3.26+ changed the Slides widget's wrapper sizing. The recovered
 * home page was designed against Elementor 3.1, where the slider contributed
 * its height to the 67% hero column. These explicit dimensions preserve the
 * static layout and keep the following cyan-framed panel out of the hero.
 */
@media (min-width: 1025px) {
	.home .elementor-element.elementor-element-67e3b4ed {
		z-index: 0 !important;
	}

	.home .elementor-element.elementor-element-67e3b4ed > .elementor-container {
		min-height: 363px !important;
	}

	.home .elementor-element.elementor-element-5c84056d {
		min-height: 345px;
	}

	.home .elementor-element.elementor-element-5c84056d > .elementor-element-populated {
		min-height: 345px;
		margin: -1px !important;
		padding: 0 !important;
	}

	.home .elementor-element.elementor-element-e96586a,
	.home .elementor-element.elementor-element-e96586a .elementor-slides-wrapper,
	.home .elementor-element.elementor-element-e96586a .swiper-slide {
		height: 345px !important;
	}

	.home .elementor-element.elementor-element-e96586a > .elementor-widget-container {
		margin: 0 !important;
	}

	.home .elementor-element.elementor-element-0302e22 {
		z-index: 0 !important;
		margin-top: 0 !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.afa-header *,
	.afa-footer * {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

@media (min-width: 1025px) {
	.elementor-hidden-desktop {
		display: none !important;
	}
}

@media (min-width: 861px) {
	.afa-header.is-sticky .afa-header__inner {
		min-height: 84px;
	}

	.afa-header.is-sticky .afa-header__logo {
		flex-basis: 225px;
	}

	.afa-header.is-sticky .afa-header__logo img {
		width: 225px;
	}

	.afa-header.is-sticky .afa-nav__item > a {
		min-height: 42px;
	}

	.afa-header.is-sticky .afa-call {
		min-height: 54px;
		padding-block: 5px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-hidden-tablet {
		display: none !important;
	}

	/* Recovered desktop spacing must not force content beyond tablet columns. */
	.page-id-593 .elementor-element-6dcb38e > .elementor-element-populated {
		width: 100% !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	.page-id-593 .elementor-element-1673e1a > .elementor-widget-container {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.page-id-1008 .elementor-element-9cc5ebc > .elementor-widget-container,
	.page-id-1000 .elementor-element-9cc5ebc > .elementor-widget-container {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}
}

@media (max-width: 1040px) {
	.afa-header__inner {
		gap: 20px;
	}

	.afa-nav__list {
		gap: 20px;
	}

	.afa-call {
		min-width: 116px;
	}

	.afa-recovered-gallery .gallery {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.admin-bar .afa-header {
		top: 0;
	}

	.afa-header__inner {
		position: relative;
		min-height: 82px;
	}

	.afa-header__logo {
		flex-basis: 155px;
	}

	.afa-header__logo img {
		width: 155px;
	}

	.afa-menu-toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		width: 46px;
		height: 46px;
		margin-left: auto;
		padding: 10px;
		gap: 5px;
		border: 0;
		border-radius: 8px;
		background: transparent;
		color: var(--afa-navy);
		cursor: pointer;
	}

	.afa-menu-toggle span:not(.screen-reader-text) {
		display: block;
		width: 100%;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: transform 160ms ease, opacity 160ms ease;
	}

	.afa-menu-toggle[aria-expanded="true"] span:nth-of-type(2) {
		transform: translateY(7px) rotate(45deg);
	}

	.afa-menu-toggle[aria-expanded="true"] span:nth-of-type(3) {
		opacity: 0;
	}

	.afa-menu-toggle[aria-expanded="true"] span:nth-of-type(4) {
		transform: translateY(-7px) rotate(-45deg);
	}

	body.afa-menu-open {
		overflow: hidden;
	}

	.afa-menu-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 1;
		padding: 0;
		border: 0;
		background: rgba(30, 25, 57, 0.54);
		-webkit-backdrop-filter: blur(2px);
		backdrop-filter: blur(2px);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transition: opacity 260ms ease, visibility 260ms ease;
	}

	.afa-menu-backdrop:hover,
	.afa-menu-backdrop:focus,
	.afa-menu-backdrop:active {
		background: rgba(30, 25, 57, 0.54) !important;
		background-image: none !important;
	}

	.afa-menu-backdrop.is-open {
		opacity: 1;
		visibility: visible;
	}

	.afa-nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		z-index: 2;
		display: flex;
		flex-direction: column;
		width: min(88vw, 380px);
		height: 100vh;
		height: 100dvh;
		margin: 0;
		overflow-x: hidden;
		overflow-y: auto;
		border: 0;
		background: #fff;
		box-shadow: -20px 0 50px rgba(31, 24, 67, 0.28);
		opacity: 0;
		visibility: hidden;
		transform: translateX(105%);
		transition: opacity 220ms ease, transform 320ms cubic-bezier(0.22, 0.75, 0.22, 1), visibility 320ms ease;
	}

	.afa-nav::before {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		width: 5px;
		background: linear-gradient(180deg, #ef0a76 0 20%, #087ccf 20% 40%, #22afd1 40% 60%, #eda600 60% 80%, #a34ff2 80% 100%);
		content: "";
	}

	.afa-nav.is-open {
		opacity: 1;
		visibility: visible;
		transform: translateX(0);
	}

	.admin-bar .afa-nav {
		top: 46px;
		height: calc(100vh - 46px);
		height: calc(100dvh - 46px);
	}

	.afa-nav__drawer-header {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: space-between;
		min-height: 82px;
		padding: 16px 22px 14px 27px;
		border-bottom: 1px solid #eceaf4;
	}

	.afa-nav__drawer-title {
		color: var(--afa-navy);
		font: 700 24px/1.1 "Roboto", Arial, sans-serif;
		letter-spacing: -0.02em;
	}

	.afa-nav__close {
		display: grid;
		position: relative;
		width: 46px;
		height: 46px;
		padding: 0;
		place-items: center;
		border: 1px solid #ddd8ed;
		border-radius: 50%;
		background: #fff;
		color: var(--afa-navy) !important;
		cursor: pointer;
		transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
	}

	.afa-nav__close:hover,
	.afa-nav__close:focus-visible {
		border-color: #a34ff2;
		background: #f8f4ff;
		transform: rotate(5deg);
	}

	.afa-nav__close span {
		position: absolute;
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transform: rotate(45deg);
	}

	.afa-nav__close span:last-child {
		transform: rotate(-45deg);
	}

	.afa-nav__list {
		display: block;
		flex: 0 0 auto;
		width: 100%;
		margin: 0 !important;
		padding: 13px 24px 18px 29px !important;
	}

	.afa-nav__item > a {
		display: flex;
		min-height: 52px;
		margin-inline: -12px;
		padding-inline: 12px;
		border-bottom: 1px solid #f0eef6;
		border-radius: 8px;
		font-size: 18px;
		font-weight: 600;
		transform: none;
	}

	.afa-nav__item--has-children {
		display: block;
	}

	.afa-nav__item--services > a {
		display: none;
	}

	.afa-submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		height: 52px;
		padding: 0;
		border: 0;
		border-bottom: 1px solid #f0eef6;
		border-radius: 0;
		background: transparent;
		color: #087ccf !important;
		cursor: pointer;
		text-align: left;
		transition: background-color 160ms ease;
	}

	.afa-submenu-toggle:hover,
	.afa-submenu-toggle:focus-visible,
	.afa-submenu-toggle:active,
	.afa-submenu-toggle.is-active {
		background: var(--afa-nav-active) !important;
		background-image: none !important;
	}

	.afa-submenu-toggle:focus:not(:focus-visible):not(:hover):not(.is-active) {
		background: transparent !important;
		background-image: none !important;
	}

	.afa-submenu-toggle__label {
		font: 600 18px/1.2 "Roboto", Arial, sans-serif;
	}

	.afa-submenu-toggle__icon {
		display: grid;
		flex: 0 0 36px;
		width: 36px;
		height: 36px;
		place-items: center;
		border: 2px solid #087ccf;
		border-radius: 50%;
		background: #087ccf;
		box-shadow: 0 4px 10px rgba(8, 124, 207, 0.22);
		transition: background-color 160ms ease, box-shadow 160ms ease, transform 220ms ease;
	}

	.afa-submenu-toggle__icon::before {
		width: 9px;
		height: 9px;
		margin-top: -4px;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		content: "";
		transform: rotate(45deg);
	}

	.afa-submenu-toggle[aria-expanded="true"] .afa-submenu-toggle__icon {
		background: var(--afa-navy);
		box-shadow: 0 4px 12px rgba(43, 43, 93, 0.25);
		transform: rotate(180deg);
	}

	.afa-submenu {
		position: static;
		display: block;
		grid-column: 1 / -1;
		min-width: 0;
		max-height: 0;
		overflow: hidden;
		padding: 0 0 0 14px !important;
		border: 0;
		border-left: 2px solid var(--afa-cyan);
		border-radius: 0;
		box-shadow: none;
		opacity: 0;
		visibility: visible;
		transform: none;
		transition: max-height 260ms ease, opacity 180ms ease, padding 260ms ease;
	}

	.afa-nav__item--has-children:hover .afa-submenu,
	.afa-nav__item--has-children:focus-within .afa-submenu {
		transform: none;
	}

	.afa-submenu.is-open {
		max-height: 520px;
		padding-block: 5px 10px !important;
		opacity: 1;
	}

	.afa-submenu a {
		padding: 8px 12px;
		font-size: 15px;
	}

	.afa-nav__contact {
		display: block;
		flex: 0 0 auto;
		margin: auto 24px 24px 29px;
		padding: 18px;
		border: 1px solid rgba(163, 79, 242, 0.32);
		border-radius: 18px;
		background: linear-gradient(145deg, #faf7ff 0%, #f3fbff 100%);
		box-shadow: 0 12px 30px rgba(43, 43, 93, 0.09);
	}

	.afa-nav__contact-kicker {
		display: block;
		margin-bottom: 10px;
		color: #59536f;
		font: 600 13px/1.3 "Roboto", Arial, sans-serif;
	}

	.afa-nav__phone {
		display: flex;
		flex-direction: column;
		text-decoration: none;
	}

	.afa-nav__phone span {
		color: #0d8bd0;
		font: 700 15px/1.2 "Roboto", Arial, sans-serif;
	}

	.afa-nav__phone strong {
		margin-top: 3px;
		color: var(--afa-navy);
		font: 800 22px/1.15 "Roboto", Arial, sans-serif;
		letter-spacing: -0.02em;
	}

	.afa-nav__contact-link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 42px;
		margin-top: 14px;
		padding: 0 13px;
		border-radius: 11px;
		background: var(--afa-navy);
		box-shadow: 0 7px 16px rgba(43, 43, 93, 0.18);
		color: #fff;
		font: 700 14px/1.2 "Roboto", Arial, sans-serif;
		text-decoration: none;
		transition: background-color 160ms ease, transform 160ms ease;
	}

	.afa-nav__contact-link:hover,
	.afa-nav__contact-link:focus-visible {
		background: var(--afa-purple);
		transform: translateY(-1px);
	}

	.afa-nav__contact-link span {
		font-size: 20px;
	}

	.afa-call {
		display: none;
	}
}

@media (min-width: 783px) and (max-width: 860px) {
	.admin-bar .afa-nav {
		top: 32px;
		height: calc(100vh - 32px);
		height: calc(100dvh - 32px);
	}
}

@media (max-width: 767px) {
	.wordpress-page:not(.home) .site-main {
		padding-top: 24px;
	}

	.wordpress-page:not(.home) .site-main > .page-content > .elementor > .elementor-section:first-child {
		margin-top: 0 !important;
	}

	.home #home-slide-mobile .elementor-slide-heading {
		display: inline-block;
		max-width: calc(100% - 16px);
		padding: 5px 10px 6px;
		border-radius: 6px;
		background: rgba(24, 18, 52, 0.74);
		box-shadow: 0 2px 10px rgba(10, 7, 24, 0.35);
		color: #fff !important;
		line-height: 1.25 !important;
		text-shadow: 0 2px 3px rgba(0, 0, 0, 0.95);
	}

	.page-id-517 .elementor-element-a166ebe > .elementor-widget-container {
		margin: 0 !important;
	}

	.page-id-517 .elementor-element-35a36f20 > .elementor-widget-container {
		margin: -18px 0 4px !important;
	}

	.page-id-517 .elementor-element-35a36f20 {
		font-size: 16px !important;
	}

	.elementor-hidden-phone {
		display: none !important;
	}

	body.elementor-page .elementor-section,
	body.elementor-page .elementor-container,
	body.elementor-page .elementor-column,
	body.elementor-page .elementor-widget-wrap,
	body.elementor-page .elementor-widget-container {
		max-width: 100%;
	}

	/*
	 * Keep readable copy away from the phone edge while preserving full-bleed
	 * photos, galleries, color bands, and card backgrounds.
	 */
	body.elementor-page main .elementor-widget-text-editor > .elementor-widget-container > p {
		padding-right: 8px;
		padding-left: 8px;
	}

	/* Remove two recovered negative mobile offsets that clipped real content. */
	.page-id-517 .elementor-element-f32fc0c > .elementor-widget-container {
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: 18px !important;
		padding-left: 18px !important;
	}

	.page-id-517 .elementor-element-f32fc0c > .elementor-widget-container > p {
		padding-right: 0;
		padding-left: 0;
	}

	.page-id-498 .elementor-element-da8f65f > .elementor-widget-container {
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: 10px !important;
		padding-left: 10px !important;
	}

	.afa-header__inner,
	.afa-footer__main {
		width: min(100% - 28px, 560px);
	}

	.afa-footer__main {
		grid-template-columns: 1fr;
		min-height: 0;
		padding: 30px 0;
	}

	.afa-footer__review:first-child img {
		max-width: 200px;
	}

	.afa-footer__legal p {
		font-size: 12px;
		line-height: 1.5;
	}

	.afa-contact-form form {
		grid-template-columns: 1fr;
	}

	.afa-contact-form {
		width: min(100% - 20px, 560px);
		margin: 28px auto;
		padding: 24px 18px;
	}

	.afa-recovered-gallery .gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
	}

	.afa-recovered-gallery .gallery-icon img {
		min-height: 145px;
	}

body.elementor-page .site-main,
.afa-footer {
	box-shadow: none;
}
}

/* About Us: keep every team portrait in the same visual frame. */
.page-id-470 .elementor-element-ddbccc7 .elementor-widget-image .elementor-widget-container {
	aspect-ratio: 44 / 31;
	overflow: hidden;
}

.page-id-470 .elementor-element-ddbccc7 .elementor-widget-image img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 50% 22%;
}

@media (min-width: 1025px) {
	/* Adriana moved from row two; match the first-row card inset it replaced. */
	.wordpress-page.page-id-470 .elementor-element.elementor-element-da5fe96 > .elementor-element-populated {
		margin-bottom: 80px;
	}
}

/* Home slider: retain white captions and protect them from busy photos. */
.home .elementor-element-e96586a .elementor-slide-heading {
	color: #fff !important;
	text-shadow: 0 2px 3px rgba(0, 0, 0, 0.92), 0 0 12px rgba(0, 0, 0, 0.72);
}

/* Home service photos: protect the white captions without changing their brand color. */
.home .elementor-widget-call-to-action .elementor-cta__content {
	overflow: hidden;
	isolation: isolate;
}

.home .elementor-widget-call-to-action .elementor-cta__content::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: linear-gradient(180deg, rgba(18, 13, 34, 0) 48%, rgba(18, 13, 34, 0.14) 63%, rgba(18, 13, 34, 0.88) 100%);
	content: "";
	pointer-events: none;
}

.home .elementor-widget-call-to-action .elementor-cta__content-item {
	position: relative;
	z-index: 1;
}

.home .elementor-widget-call-to-action .elementor-cta__title {
	text-shadow: 0 2px 3px rgba(0, 0, 0, 0.92), 0 0 9px rgba(0, 0, 0, 0.62);
}

.home .elementor-widget-call-to-action .elementor-cta__description {
	color: #fff !important;
	font-weight: 600;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.96), 0 0 7px rgba(0, 0, 0, 0.72);
}

/* Home Services title: match the service-page Gallery heading with rules above and below. */
.home .elementor-element-ed3b202 > .elementor-widget-container {
	display: block;
	width: min(100%, 240px);
	margin: 12px auto 0 !important;
	border-top: 2px solid #dd0289;
	border-right: 0 !important;
	border-bottom: 2px solid #dd0289;
	border-left: 0 !important;
}

.home .elementor-element-ed3b202 .elementor-heading-title {
	width: 100% !important;
	text-align: center;
}

/* Remove the recovered box around the lower feature heading and align it to its copy. */
.home .elementor-element-8d14add > .elementor-widget-container {
	margin: 15px 0 0 -12px !important;
	border: 0 !important;
}

/* Join the final content panel directly to the footer with side-only depth. */
body.elementor-page .site-main {
	box-shadow: -8px 0 8px -8px rgba(33, 17, 15, 0.5), 8px 0 8px -8px rgba(33, 17, 15, 0.5);
}

.home .elementor-element-ce29ab4 {
	margin-bottom: 0 !important;
}

.afa-footer {
	box-shadow: none;
}
