/* ==========================================================================
   Hello Elementor SEO Agency — Custom CSS
   Only rules that cannot be set through Elementor's Site Settings UI
   live here. Colours, spacing and standard typography are controlled
   in Elementor > Site Settings so the site owner can edit them
   visually without touching code.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Self-hosted fonts (WOFF2). Files are added to /assets/fonts/ and
   referenced here instead of loading Google Fonts from an external
   domain, removing a third-party render-blocking request.
   Replace the file names below with the actual files you add.
   -------------------------------------------------------------------------- */
@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins/poppins-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Poppins';
	src: url('../fonts/poppins/poppins-700.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter';
	src: url('../fonts/inter/inter-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Inter';
	src: url('../fonts/inter/inter-500.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

/* --------------------------------------------------------------------------
   Accessible focus states. Applied globally so keyboard users always
   get a visible outline, including inside Elementor Nav Menu and
   Form widgets where the default outline is sometimes suppressed.
   -------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.elementor-element:focus-visible {
	outline: 2px solid #2563EB;
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Respect reduced-motion preferences. Elementor entrance animations
   and CSS transitions are switched off for users who have requested
   reduced motion at the OS level.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* --------------------------------------------------------------------------
   Minimum tap target size on touch devices (WCAG 2.2 target size
   guidance), applied to nav and mobile menu links.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.elementor-nav-menu a,
	.elementor-button {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
}

/* --------------------------------------------------------------------------
   Prevent layout shift on images that haven't finished loading,
   above and beyond Elementor's own width/height attributes.
   -------------------------------------------------------------------------- */
img {
	height: auto;
	max-width: 100%;
}
