/*
 * Practice Point RCM theme styles.
 *
 * Elementor renders the designed pages; this file covers the base document, the fallback
 * header/footer, blog and plain-page templates, plus the styling hooks used by the Elementor content
 * (classes starting with ppr-: header, mega menu, forms, process timeline, footer).
 * Colours follow the Elementor global colours when the kit is active.
 */

:root {
	--ppr-blue: var(--e-global-color-accent, #0B55B8);
	--ppr-navy: var(--e-global-color-26b2883, #0A2E73);
	--ppr-green: var(--e-global-color-ee7c5f2, #2E9E24);
	--ppr-heading: var(--e-global-color-6708366, #0C2140);
	--ppr-text: var(--e-global-color-text, #333B48);
	--ppr-alt: var(--e-global-color-e88f284, #F2F7FF);
	--ppr-border: var(--e-global-color-27a31af, #E3EAF4);
	--ppr-shadow: 0 5px 30px rgba(11, 85, 184, 0.14);
	--ppr-radius: 10px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: #fff;
	color: var(--ppr-text);
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 18px;
	line-height: 1.5;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	color: var(--ppr-heading);
	font-family: "Plus Jakarta Sans", "Inter", sans-serif;
	font-weight: 700;
	line-height: 1.25;
}
h1 { font-size: 50px; }
h2 { font-size: 40px; }
h3 { font-size: 28px; }
h4 { font-size: 22px; font-weight: 600; }
h5 { font-size: 18px; font-weight: 600; }
h6 { font-size: 15px; font-weight: 600; }

p { margin: 0 0 1em; }
a { color: var(--ppr-blue); text-decoration: none; }
a:hover, a:focus { color: var(--ppr-green); }
img { max-width: 100%; height: auto; }
figure { margin: 0 0 1em; }

/* anchors (specialty cards) should clear the overlaid header */
[id] { scroll-margin-top: 110px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000;
	left: 10px; top: 10px; padding: 12px 18px; background: #fff; color: var(--ppr-navy); border-radius: 6px; box-shadow: var(--ppr-shadow);
}

.ppr-container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 20px; }

.ppr-button,
.ppr-main input[type="submit"],
.ppr-comments input[type="submit"],
.search-form .search-submit {
	display: inline-block;
	padding: 15px 30px;
	border: 1px solid var(--ppr-blue);
	border-radius: var(--ppr-radius);
	background: var(--ppr-blue);
	color: #fff;
	font: 600 17px/1.5 "Inter", sans-serif;
	cursor: pointer;
	transition: background-color .25s, border-color .25s;
}
.ppr-button:hover, .ppr-button:focus,
.ppr-main input[type="submit"]:hover,
.ppr-comments input[type="submit"]:hover,
.search-form .search-submit:hover { background: var(--ppr-green); border-color: var(--ppr-green); color: #fff; }

/* ---------- fallback header ---------- */
.ppr-header { position: sticky; top: 0; z-index: 99; background: #fff; box-shadow: 0 2px 18px rgba(12, 33, 64, .08); }
.ppr-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 90px; gap: 24px; }
.ppr-header__logo img { display: block; width: auto; max-height: 56px; }
.ppr-menu, .ppr-menu ul, .ppr-footer__menu { list-style: none; margin: 0; padding: 0; }
.ppr-menu { display: flex; align-items: center; gap: 6px; }
.ppr-menu li { position: relative; }
.ppr-menu a { display: block; padding: 10px 14px; color: var(--ppr-text); font-weight: 600; }
.ppr-menu a:hover, .ppr-menu .current-menu-item > a { color: var(--ppr-green); }
.ppr-menu ul {
	position: absolute; top: 100%; left: 0; min-width: 260px; padding: 8px 0;
	background: #fff; border-top: 3px solid var(--ppr-blue); border-radius: 0 0 var(--ppr-radius) var(--ppr-radius); box-shadow: var(--ppr-shadow);
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s;
}
.ppr-menu li:hover > ul, .ppr-menu li:focus-within > ul { opacity: 1; visibility: visible; transform: none; }
.ppr-menu ul a { padding: 9px 20px; font-size: 16px; }
.ppr-nav-toggle { display: none; width: 46px; height: 46px; border: 0; border-radius: var(--ppr-radius); background: var(--ppr-blue); cursor: pointer; }
.ppr-nav-toggle__bars, .ppr-nav-toggle__bars::before, .ppr-nav-toggle__bars::after {
	content: ""; display: block; width: 22px; height: 2px; margin: 0 auto; background: #fff; position: relative;
}
.ppr-nav-toggle__bars::before { position: absolute; top: -7px; }
.ppr-nav-toggle__bars::after { position: absolute; top: 7px; }

/* ---------- page banner (plain pages, blog) ---------- */
.ppr-banner {
	padding: 80px 0 70px;
	background: linear-gradient(120deg, var(--ppr-alt) 0%, #fff 60%, #e9f6e8 100%);
	border-bottom: 1px solid var(--ppr-border);
}
.ppr-banner__title { margin: 0 0 12px; }
.ppr-banner__crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 16px; font-weight: 600; text-transform: uppercase; }
.ppr-banner__crumbs a { color: var(--ppr-text); }
.ppr-banner__crumbs a:hover { color: var(--ppr-green); }
.ppr-banner__crumbs span:last-child { color: var(--ppr-blue); }

/* ---------- content ---------- */
.ppr-main { padding-top: 80px; padding-bottom: 100px; }
.ppr-main--narrow { max-width: 900px; }
.ppr-entry__content > * { max-width: 100%; }
.ppr-entry__content h2 { font-size: 32px; margin-top: 1.4em; }
.ppr-entry__content h3 { margin-top: 1.3em; }
.ppr-entry__content ul, .ppr-entry__content ol { padding-left: 1.3em; margin: 0 0 1em; }
.ppr-entry__content blockquote { margin: 1.5em 0; padding: 20px 26px; border-left: 4px solid var(--ppr-blue); background: var(--ppr-alt); border-radius: 0 var(--ppr-radius) var(--ppr-radius) 0; }
.ppr-entry__content table { width: 100%; border-collapse: collapse; margin-bottom: 1.5em; }
.ppr-entry__content th, .ppr-entry__content td { padding: 10px 14px; border: 1px solid var(--ppr-border); text-align: left; }
.ppr-entry__thumb img { display: block; width: 100%; border-radius: var(--ppr-radius); margin: 16px 0 28px; }
.ppr-meta { display: block; margin-bottom: 10px; color: var(--ppr-blue); font-size: 15px; font-weight: 600; }
.ppr-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 12px; border-radius: 30px; background: var(--ppr-alt); font-size: 15px; }

.ppr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.ppr-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: var(--ppr-radius); box-shadow: var(--ppr-shadow); }
.ppr-card__thumb img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ppr-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 26px; height: 100%; }
.ppr-card__title { font-size: 22px; margin: 0; }
.ppr-card__title a { color: var(--ppr-heading); }
.ppr-card__title a:hover { color: var(--ppr-blue); }
.ppr-card__excerpt { font-size: 16px; }
.ppr-card .ppr-button { margin-top: auto; padding: 10px 22px; font-size: 16px; }
.ppr-empty { text-align: center; }

.navigation.pagination, .post-navigation { margin-top: 50px; }
.nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.post-navigation .nav-links { justify-content: space-between; font-weight: 600; }
.page-numbers { display: inline-block; min-width: 44px; padding: 9px 12px; border: 1px solid var(--ppr-border); border-radius: var(--ppr-radius); text-align: center; font-weight: 600; }
.page-numbers.current, a.page-numbers:hover { background: var(--ppr-blue); border-color: var(--ppr-blue); color: #fff; }

.ppr-main input[type="text"], .ppr-main input[type="email"], .ppr-main input[type="url"], .ppr-main input[type="search"], .ppr-main textarea,
.ppr-404 input[type="search"] {
	width: 100%; padding: 12px 14px; border: 1px solid var(--ppr-border); border-radius: 7px; font: inherit; color: var(--ppr-text); background: #fff;
}
.ppr-main input:focus, .ppr-main textarea:focus { outline: none; border-color: var(--ppr-blue); }
.search-form { display: flex; gap: 10px; max-width: 520px; margin: 20px auto 0; }
.search-form label { flex: 1; }

.ppr-comments { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--ppr-border); }
.ppr-comments__list { list-style: none; margin: 0 0 40px; padding: 0; }
.ppr-comments__list .comment-body { margin-bottom: 20px; padding: 20px; border-radius: var(--ppr-radius); background: var(--ppr-alt); }
.ppr-comments__list .children { list-style: none; padding-left: 30px; }
.ppr-comments .avatar { float: left; margin-right: 12px; border-radius: 50%; }
.comment-form label { display: block; margin-bottom: 4px; font-weight: 600; }

.ppr-404 { padding: 120px 0 120px; text-align: center; background: linear-gradient(120deg, var(--ppr-alt) 0%, #fff 60%, #e9f6e8 100%); }
.ppr-404__code { margin: 0; font: 700 140px/1 "Plus Jakarta Sans", sans-serif; color: var(--ppr-blue); }

/* ---------- fallback footer ---------- */
.ppr-footer { padding: 28px 0; background: var(--ppr-alt); border-top: 1px solid var(--ppr-border); font-size: 16px; }
.ppr-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.ppr-footer__copy { margin: 0; }
.ppr-footer__menu { display: flex; gap: 20px; }

/* ============================================================
   Elementor content
   ============================================================ */

body { font-size: 17px; }
.ppr-accent { color: var(--ppr-blue); background: linear-gradient(90deg, var(--ppr-blue), var(--ppr-green)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.ppr-auto { width: auto !important; flex: 0 1 auto !important; }

.elementor-button, .ppr-button { transition: background-color .25s, border-color .25s, color .25s, transform .25s, box-shadow .25s; }
.elementor-button:hover, .ppr-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(11, 85, 184, .22); }
.elementor-button .elementor-button-icon svg { width: .85em; height: .85em; }

/* ---------- header ---------- */
.elementor-location-header { position: sticky; top: calc(var(--ppr-topbar, 0px) * -1); z-index: 99; }
.ppr-mainbar { transition: box-shadow .3s; }
body.ppr-scrolled .ppr-mainbar { box-shadow: 0 6px 26px rgba(12, 33, 64, .10); }
.admin-bar .elementor-location-header { top: calc(32px - var(--ppr-topbar, 0px)); }
.ppr-topbar a { transition: color .2s; }
.ppr-topbar .elementor-icon-list-item, .ppr-topbar .elementor-icon-list-text { white-space: nowrap; }
.ppr-logo img { display: block; }
.ppr-header-cta .elementor-button { padding: 13px 24px; border-radius: 50px; white-space: nowrap; }
.ppr-social .elementor-social-icon { transition: background-color .25s, transform .25s; }
.ppr-social .elementor-social-icon:hover { background-color: var(--ppr-green) !important; transform: translateY(-2px); }

/* menu (Elementor Pro Menu widget). Variables can still be overridden from the widget's Style tab. */
.ppr-nav {
	--n-menu-title-color-normal: var(--ppr-heading);
	--n-menu-title-color-hover: var(--ppr-blue);
	--n-menu-title-color-active: var(--ppr-heading);
	--n-menu-title-font-size: 16px;
	--n-menu-title-space-between: 4px;
	--n-menu-title-padding: 10px 16px;
	--n-menu-icon-size: 10px;
	--n-menu-icon-color: #8794a8;
	--n-menu-icon-color-hover: var(--ppr-blue);
	--n-menu-icon-color-active: var(--ppr-blue);
	--n-menu-title-distance-from-content: 0px;
	--n-menu-toggle-icon-size: 20px;
	--n-menu-toggle-icon-color: #fff;
	--n-menu-toggle-icon-color-hover: #fff;
	--n-menu-toggle-icon-color-active: #fff;
}
.ppr-nav .e-n-menu-title { border-radius: 50px; font-family: "Inter", sans-serif; font-weight: 600; transition: background-color .25s, color .25s; }
.ppr-nav .e-n-menu-title:hover, .ppr-nav .e-n-menu-title:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) { background: var(--ppr-alt); }
.ppr-nav .e-n-menu-title:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) .e-n-menu-title-text { color: var(--ppr-blue); }
.ppr-nav .e-n-menu-title .e-n-menu-title-text, .ppr-nav .e-n-menu-title .e-n-menu-title-text a { color: var(--ppr-heading) !important; transition: color .2s; }
.ppr-nav .e-n-menu-title:hover .e-n-menu-title-text, .ppr-nav .e-n-menu-title:hover .e-n-menu-title-text a,
.ppr-nav .e-n-menu-title:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) .e-n-menu-title-text,
.ppr-nav .e-n-menu-title.ppr-current .e-n-menu-title-text, .ppr-nav .e-n-menu-title.ppr-current .e-n-menu-title-text a { color: var(--ppr-blue) !important; }
.ppr-nav .e-n-menu-title.ppr-current { background: var(--ppr-alt); }
.ppr-nav .e-n-menu-title .e-n-menu-dropdown-icon svg { fill: #8794a8 !important; }
.ppr-nav .e-n-menu-title:hover .e-n-menu-dropdown-icon svg, .ppr-nav .e-n-menu-title.ppr-current .e-n-menu-dropdown-icon svg,
.ppr-nav .e-n-menu-dropdown-icon[aria-expanded="true"] svg { fill: var(--ppr-blue) !important; }
.ppr-nav .e-n-menu-title-container { font-weight: 600; }
.ppr-nav .e-n-menu-dropdown-icon { margin-left: 2px; transition: transform .25s; }
.ppr-nav .e-n-menu-dropdown-icon svg { width: 10px; height: 10px; }
.ppr-nav .e-n-menu-dropdown-icon[aria-expanded="true"] { transform: translateY(1px); }
.ppr-nav .e-n-menu-toggle { width: 46px; height: 46px; border-radius: 12px; background: var(--ppr-blue) !important; justify-content: center; align-items: center; }
.ppr-nav .e-n-menu-toggle svg { fill: #fff !important; width: 20px; height: 20px; }
.ppr-nav .e-n-menu-toggle[aria-expanded="true"] { background: var(--ppr-navy) !important; }

/* mega menu panels */
.ppr-nav .e-n-menu-content > .e-con { background: #fff; border-top: 1px solid var(--ppr-border); box-shadow: 0 30px 60px rgba(12, 33, 64, .16); }
.ppr-mega-col { background: var(--ppr-alt); border: 1px solid var(--ppr-border); border-radius: 16px !important; transition: border-color .25s, box-shadow .25s, background-color .25s; }
.ppr-mega-col:hover { background: #fff; border-color: #c9d8ee; box-shadow: 0 14px 30px rgba(11, 85, 184, .10); }
.ppr-mega-head .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 12px; text-align: left; padding-bottom: 14px; border-bottom: 1px solid var(--ppr-border); }
.ppr-mega-head .elementor-icon-box-icon { margin: 0 !important; }
.ppr-mega-head .elementor-icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg, #0b55b8, #2e9e24); font-size: 17px; }
.ppr-mega-head .elementor-icon svg { width: 17px; height: 17px; fill: #fff !important; }
.ppr-mega-head .elementor-icon-box-title { margin: 0 0 2px !important; line-height: 1.2; }
.ppr-mega-head .elementor-icon-box-title a { transition: color .2s; }
.ppr-mega-head:hover .elementor-icon-box-title a { color: var(--ppr-blue) !important; }
.ppr-mega-head .elementor-icon-box-description { margin: 0; color: #5b6472; font-size: 13px !important; }
.ppr-mega-list .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ppr-mega-list .elementor-icon-list-item > a { display: flex !important; align-items: center; gap: 12px; margin: 0 -10px; padding: 6px 10px; border-radius: 10px; transition: background-color .2s; }
.ppr-mega-list .elementor-icon-list-item > a:hover { background: var(--ppr-alt); }
.ppr-mega-col:hover .ppr-mega-list .elementor-icon-list-item > a:hover { background: var(--ppr-alt); }
.ppr-mega-list .elementor-icon-list-icon {
	width: 32px; height: 32px; flex: 0 0 32px; display: flex !important; align-items: center; justify-content: center; margin: 0 !important; padding: 0 !important; line-height: 1;
	border-radius: 9px; background: #fff; border: 1px solid var(--ppr-border); transition: background-color .2s, border-color .2s;
}
.ppr-mega-list .elementor-icon-list-icon svg, .ppr-mega-list .elementor-icon-list-icon i { display: block; margin: 0 !important; width: 14px !important; height: 14px !important; font-size: 14px; fill: var(--ppr-blue) !important; color: var(--ppr-blue) !important; transition: fill .2s, color .2s; }
.ppr-mega-list .elementor-icon-list-item > a:hover .elementor-icon-list-icon { background: var(--ppr-blue); border-color: var(--ppr-blue); }
.ppr-mega-list .elementor-icon-list-item > a:hover .elementor-icon-list-icon svg, .ppr-mega-list .elementor-icon-list-item > a:hover .elementor-icon-list-icon i { fill: #fff !important; color: #fff !important; }
.ppr-mega-list .elementor-icon-list-item > a .elementor-icon-list-text { padding: 0 !important; font-size: 15px; line-height: 1.3; transition: color .2s; }
.ppr-mega-list .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: var(--ppr-blue) !important; }
.ppr-mega-cta { box-shadow: 0 16px 34px rgba(11, 85, 184, .28); position: relative; overflow: hidden !important; }
.ppr-mega-cta::after { content: ""; position: absolute; right: -50px; top: -50px; width: 160px; height: 160px; border-radius: 50%; background: rgba(255, 255, 255, .10); pointer-events: none; }
.ppr-mega-cta > * { position: relative; z-index: 1; }
.ppr-mega-cta p:last-child { margin-bottom: 0; }
.ppr-mega-foot { border-top: 1px solid var(--ppr-border); }
.ppr-mega-chips .elementor-icon-list-item::after { display: none !important; }
.ppr-mega-chips .elementor-icon-list-text { font-size: 14px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; }

.ppr-btn-white .elementor-button { background: #fff !important; border-color: #fff !important; color: var(--ppr-navy) !important; fill: var(--ppr-navy) !important; border-radius: 50px; }
.ppr-btn-white .elementor-button:hover { background: var(--ppr-heading) !important; border-color: var(--ppr-heading) !important; color: #fff !important; fill: #fff !important; }
.ppr-btn-ghost .elementor-button { background: transparent !important; border: 1px solid rgba(255, 255, 255, .7) !important; color: #fff !important; border-radius: 50px; }
.ppr-btn-ghost .elementor-button:hover { background: #fff !important; color: var(--ppr-navy) !important; }

/* ---------- inner page banner ---------- */
.ppr-banner-x { position: relative; overflow: hidden !important; isolation: isolate; }
.ppr-banner-x::after {
	content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none;
	background:
		radial-gradient(520px 520px at 88% -10%, rgba(46, 158, 36, .38), transparent 62%),
		radial-gradient(420px 420px at -6% 110%, rgba(61, 139, 255, .32), transparent 62%),
		radial-gradient(rgba(255, 255, 255, .09) 1px, transparent 1.4px);
	background-size: auto, auto, 26px 26px;
}
.ppr-banner-x .elementor-heading-title { text-wrap: balance; }
.ppr-crumbs .elementor-icon-list-items { flex-wrap: wrap; }
.ppr-crumbs .elementor-icon-list-item { margin: 0 !important; }
.ppr-crumbs .elementor-icon-list-text { font-size: 13px !important; letter-spacing: .08em; }
.ppr-crumbs .elementor-icon-list-item:last-child .elementor-icon-list-text { color: #6fd460 !important; }
.ppr-banner-lead { max-width: 620px; font-size: 18px; line-height: 1.6; }
.ppr-banner-lead p:last-child { margin-bottom: 0; }
.ppr-banner-photo { position: relative; z-index: 0; }
.ppr-banner-photo::before { content: ""; position: absolute; z-index: -1; inset: 22px -18px -18px 22px; border-radius: 26px; background: linear-gradient(135deg, #2e9e24, #3d8bff); opacity: .9; }
.ppr-banner-photo img { display: block; width: 100% !important; border-radius: 22px !important; border: 6px solid rgba(255, 255, 255, .92) !important; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }

/* services page feature cards */
.ppr-feature .elementor-icon-box-wrapper { align-items: flex-start; gap: 18px; }
.ppr-feature .elementor-icon-box-title { margin-bottom: 8px; }
.ppr-points .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px; }
.ppr-points .elementor-icon-list-item { margin: 0 !important; padding: 6px 12px 6px 10px !important; border-radius: 30px; background: var(--ppr-alt); border: 1px solid var(--ppr-border); }
.ppr-points .elementor-icon-list-item::after { display: none !important; }
.ppr-points .elementor-icon-list-text { font-size: 14px !important; color: var(--ppr-heading) !important; }
.ppr-points .elementor-icon-list-icon svg { fill: var(--ppr-green) !important; width: 13px !important; height: 13px !important; }
.ppr-link .elementor-button { padding: 0 !important; background: none !important; border: 0 !important; color: var(--ppr-blue) !important; fill: var(--ppr-blue) !important; font-weight: 600; box-shadow: none !important; transform: none !important; }
.ppr-link .elementor-button .elementor-button-icon { transition: transform .25s; }
.ppr-link .elementor-button:hover { color: var(--ppr-green) !important; fill: var(--ppr-green) !important; }
.ppr-link .elementor-button:hover .elementor-button-icon { transform: translateX(5px); }
.ppr-narrow { max-width: 860px; margin-left: auto; margin-right: auto; }
.ppr-side-cta { box-shadow: 0 18px 38px rgba(11, 85, 184, .28); position: relative; overflow: hidden !important; }
.ppr-side-cta::after { content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: rgba(255, 255, 255, .10); pointer-events: none; }
.ppr-side-cta > * { position: relative; z-index: 1; }
.ppr-side-cta p:last-child { margin-bottom: 0; }

/* service switcher under the banner */
.ppr-pillbar { background: #fff; border-bottom: 1px solid var(--ppr-border); box-shadow: 0 8px 24px rgba(12, 33, 64, .05); position: relative; z-index: 2; }
.ppr-pill .elementor-button {
	padding: 9px 18px !important; border-radius: 40px !important; background: var(--ppr-alt) !important; border: 1px solid var(--ppr-border) !important;
	color: var(--ppr-heading) !important; font: 600 14px/1.3 "Inter", sans-serif !important; box-shadow: none !important;
}
.ppr-pill .elementor-button:hover { background: #fff !important; border-color: var(--ppr-blue) !important; color: var(--ppr-blue) !important; transform: translateY(-1px); }
.ppr-pill.is-current .elementor-button { background: var(--ppr-blue) !important; border-color: var(--ppr-blue) !important; color: #fff !important; }
.elementor-widget.ppr-tiles .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.elementor-widget.ppr-tiles .elementor-icon-list-item {
	margin: 0 !important; padding: 16px 18px !important; align-items: flex-start; border-radius: 14px; background: #fff; border: 1px solid var(--ppr-border);
	box-shadow: 0 4px 16px rgba(12, 33, 64, .05); transition: transform .25s, box-shadow .25s, border-color .25s;
}
.elementor-widget.ppr-tiles .elementor-icon-list-item::after { display: none !important; }
.elementor-widget.ppr-tiles .elementor-icon-list-item:hover { transform: translateY(-3px); border-color: #bcd3f2; box-shadow: 0 12px 26px rgba(11, 85, 184, .12); }
.elementor-widget.ppr-tiles .elementor-icon-list-icon { flex: 0 0 26px; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #e7f6e5; margin: 0 4px 0 0; }
.elementor-widget.ppr-tiles .elementor-icon-list-icon svg { width: 12px !important; height: 12px !important; fill: var(--ppr-green) !important; }
.elementor-widget.ppr-tiles .elementor-icon-list-text { font-size: 15px !important; line-height: 1.45; color: var(--ppr-heading) !important; font-weight: 500; }

/* ---------- cards ---------- */
.ppr-lift { transition: transform .3s ease, box-shadow .3s ease; position: relative; overflow: hidden; }
.ppr-lift::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: linear-gradient(90deg, var(--ppr-blue), var(--ppr-green)); transform: scaleX(0); transform-origin: left; transition: transform .35s ease;
}
.ppr-lift:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(11, 85, 184, .20) !important; }
.ppr-lift:hover::after { transform: scaleX(1); }
/* a card with a linked title is clickable everywhere */
.ppr-lift:has(.elementor-icon-box-title a) { cursor: pointer; }
.ppr-lift > .elementor-widget-icon-box, .ppr-lift .elementor-icon-box-wrapper, .ppr-lift .elementor-icon-box-content, .ppr-lift .elementor-icon-box-title { position: static !important; }
.ppr-lift .elementor-icon-box-title a::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.ppr-lift:has(.elementor-icon-box-title a:focus-visible) { outline: 3px solid rgba(11, 85, 184, .45); outline-offset: 3px; }
.ppr-lift:hover .elementor-icon-box-title a { color: var(--ppr-blue); }
.ppr-lift .elementor-icon { transition: transform .3s ease, background-color .3s, color .3s, fill .3s; }
.ppr-lift:hover .elementor-icon { transform: scale(1.08) rotate(-4deg); }

.ppr-float { animation: ppr-float 5s ease-in-out infinite; opacity: 1 !important; visibility: visible !important; }
.ppr-float--late { animation-delay: -2.5s; }
@keyframes ppr-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }

.elementor-widget.ppr-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.elementor-widget.ppr-chips .elementor-icon-list-items .elementor-icon-list-item {
	margin: 0 !important; padding: 8px 16px 8px 12px !important; border-radius: 40px; background: #fff; border: 1px solid var(--ppr-border);
	box-shadow: 0 4px 14px rgba(11, 85, 184, .08); transition: transform .25s, box-shadow .25s, border-color .25s;
}
.elementor-widget.ppr-chips .elementor-icon-list-item::after { display: none !important; }
.elementor-widget.ppr-chips .elementor-icon-list-item:hover { transform: translateY(-2px); border-color: #bcd3f2; box-shadow: 0 8px 20px rgba(11, 85, 184, .14); }
.elementor-widget.ppr-chips .elementor-icon-list-icon { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #e7f6e5; margin-right: 2px; }
.elementor-widget.ppr-chips .elementor-icon-list-icon svg { width: 11px !important; height: 11px !important; fill: var(--ppr-green) !important; }
.elementor-widget.ppr-chips .elementor-icon-list-text { text-transform: none !important; letter-spacing: 0 !important; font: 600 14px/1.2 "Inter", sans-serif !important; color: var(--ppr-heading) !important; padding-left: 6px !important; }

/* ---------- home hero visual ---------- */
.ppr-hero-media { position: relative; width: 100%; max-width: 540px; margin-left: auto; min-height: 500px; display: flex !important; align-items: flex-end; justify-content: center; }
.ppr-hero-photo { position: relative; z-index: 0; width: 100%; display: flex; justify-content: center; align-items: flex-end; min-height: 500px; }
.ppr-hero-photo::before {
	content: ""; position: absolute; z-index: -1; left: 9%; right: 9%; top: 15%; bottom: 0; border-radius: 240px 240px 34px 34px;
	background: linear-gradient(165deg, #1668d6 0%, #0b55b8 45%, #0a2e73 100%); box-shadow: 0 30px 60px rgba(11, 85, 184, .28);
}
.ppr-hero-photo::after {
	content: ""; position: absolute; z-index: -2; left: 0; right: 0; top: 6%; bottom: -3%; border-radius: 260px 260px 46px 46px;
	border: 2px dashed rgba(46, 158, 36, .45); animation: ppr-spin-soft 9s ease-in-out infinite alternate;
}
@keyframes ppr-spin-soft { from { transform: rotate(-2.5deg); } to { transform: rotate(2.5deg); } }
.ppr-hero-photo img { display: block; width: auto !important; max-width: 88% !important; max-height: 520px; border-radius: 0 0 34px 34px !important; }
.ppr-hero-card {
	position: absolute !important; z-index: 2; width: auto !important; padding: 12px 18px 12px 12px !important; border-radius: 16px !important;
	background: rgba(255, 255, 255, .96); border: 1px solid #fff; box-shadow: 0 18px 40px rgba(12, 33, 64, .16);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.ppr-hero-card .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 12px; text-align: left; }
.ppr-hero-card .elementor-icon-box-icon { margin: 0 !important; }
.ppr-hero-card .elementor-icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg, #0b55b8, #2e9e24); color: #fff; fill: #fff; font-size: 18px; }
.ppr-hero-card .elementor-icon svg { width: 18px; height: 18px; fill: #fff; }
.ppr-hero-card .elementor-icon-box-title { margin: 0 0 2px !important; line-height: 1.1; white-space: nowrap; }
.ppr-hero-card .elementor-icon-box-description { margin: 0; white-space: nowrap; color: #5b6472; }
.ppr-hero-card--a { left: 0; top: 30%; }
.ppr-hero-card--b { right: 0; bottom: 12%; }
.ppr-hero-card--c { right: 4%; top: 9%; animation-delay: -1.2s; }

/* testimonials */
.ppr-quote::before { content: "\201D"; position: absolute; top: 4px; right: 26px; font: 800 110px/1 Georgia, serif; color: var(--ppr-alt); pointer-events: none; }
.ppr-quote > * { position: relative; }
.ppr-stars .elementor-heading-title { color: #f5a623; letter-spacing: 3px; font-size: 18px; line-height: 1; }

/* FAQ accordion */
.ppr-faq .elementor-accordion-item { margin-bottom: 12px; border: 1px solid var(--ppr-border) !important; border-radius: 12px; overflow: hidden; background: #fff; transition: box-shadow .25s, border-color .25s; }
.ppr-faq .elementor-accordion-item:hover { border-color: #c9d8ee !important; }
.ppr-faq .elementor-accordion-item:has(.elementor-active) { box-shadow: var(--ppr-shadow); border-color: transparent !important; }
.ppr-faq .elementor-tab-title { display: flex; align-items: center; gap: 14px; margin: 0; padding: 18px 20px; border: 0 !important; cursor: pointer; }
.ppr-faq .elementor-tab-title, .ppr-faq .elementor-tab-title a { font: 600 17px/1.4 "Plus Jakarta Sans", sans-serif; color: var(--ppr-heading); }
.ppr-faq .elementor-accordion-title { flex: 1; }
.ppr-faq .elementor-accordion-icon {
	order: 2; float: none !important; position: relative; width: 32px; height: 32px; flex: 0 0 32px; margin: 0 !important; border-radius: 50%;
	background: var(--ppr-alt); transition: background-color .25s, transform .3s;
}
.ppr-faq .elementor-accordion-icon > span { display: none !important; }
.ppr-faq .elementor-accordion-icon::before, .ppr-faq .elementor-accordion-icon::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 2px;
	background: var(--ppr-blue); transition: transform .3s, background-color .25s;
}
.ppr-faq .elementor-accordion-icon::after { transform: rotate(90deg); }
.ppr-faq .elementor-tab-title.elementor-active .elementor-accordion-icon { background: var(--ppr-blue); }
.ppr-faq .elementor-tab-title.elementor-active .elementor-accordion-icon::before,
.ppr-faq .elementor-tab-title.elementor-active .elementor-accordion-icon::after { background: #fff; }
.ppr-faq .elementor-tab-title.elementor-active .elementor-accordion-icon::after { transform: rotate(0deg); }
.ppr-faq .elementor-tab-title.elementor-active, .ppr-faq .elementor-tab-title.elementor-active a { color: var(--ppr-blue); }
.ppr-faq .elementor-tab-content { padding: 0 20px 18px; border: 0 !important; font-size: 16px; }
.ppr-faq .elementor-tab-content p:last-child { margin-bottom: 0; }

/* ---------- forms (Elementor Pro Form widget) ---------- */
.ppr-form .elementor-form-fields-wrapper { row-gap: 14px; }
.ppr-form .elementor-field-group { margin-bottom: 0 !important; }
.ppr-form .elementor-field-group .elementor-field-textual,
.ppr-form .elementor-field-group .elementor-select-wrapper select {
	min-height: 50px; padding: 12px 14px; border: 1px solid var(--ppr-border) !important; border-radius: 10px !important; background-color: #fff; color: var(--ppr-text);
	font: 400 16px/1.4 "Inter", sans-serif; text-align: left; transition: border-color .2s, box-shadow .2s;
}
.ppr-form .elementor-field-group .elementor-select-wrapper select { padding-right: 34px; appearance: none; -webkit-appearance: none; }
.ppr-form .elementor-field-group textarea.elementor-field-textual { min-height: 130px; }
.ppr-form .elementor-field-textual::placeholder { color: #6b7686; opacity: 1; }
.ppr-form .elementor-field-group .elementor-field-textual:focus,
.ppr-form .elementor-field-group .elementor-select-wrapper select:focus { border-color: var(--ppr-blue) !important; box-shadow: 0 0 0 4px rgba(11, 85, 184, .12); outline: 0; }
.ppr-form .elementor-select-wrapper select.ppr-empty { color: #6b7686; }
.ppr-form .elementor-select-wrapper .select-caret-down-wrapper { right: 14px; font-size: 11px; color: var(--ppr-blue); fill: var(--ppr-blue); }
.ppr-form .elementor-select-wrapper .select-caret-down-wrapper svg { width: 11px; height: 11px; }
.ppr-form .elementor-field-type-submit .elementor-button { min-height: 52px; border-radius: 10px; font-weight: 600; font-size: 16px; }
.ppr-form .elementor-message { margin-top: 12px; padding: 12px 16px; border-radius: 10px; font-size: 15px; }
.ppr-form .elementor-message-success { background: #e9f7e7; color: #1f6d18; }
.ppr-form .elementor-message-danger { background: #fdecec; color: #a12020; }
.ppr-form .elementor-message::before { display: none; }
.ppr-form .elementor-help-inline { font-size: 13px; }
.ppr-form--inline .elementor-form-fields-wrapper { flex-wrap: nowrap !important; margin: 0 !important; gap: 6px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); border-radius: 12px; padding: 5px; }
.ppr-form--inline .elementor-field-group { padding: 0 !important; width: auto !important; max-width: none !important; }
.ppr-form--inline .elementor-field-group.elementor-field-type-email { flex: 1 1 auto; min-width: 0; }
.ppr-form--inline .elementor-field-group.elementor-field-type-submit { flex: 0 0 auto; }
.ppr-form--inline .elementor-field-group .elementor-field-textual { background: transparent !important; border: 0 !important; color: #fff; min-height: 44px; box-shadow: none !important; }
.ppr-form--inline .elementor-field-textual::placeholder { color: #a9b8d2; }
.ppr-form--inline .elementor-field-type-submit .elementor-button { min-height: 44px; padding: 0 18px; border-radius: 9px; background: var(--ppr-green); border-color: var(--ppr-green); font-size: 15px; }
.ppr-form--inline .elementor-message { color: #fff; background: rgba(255, 255, 255, .1); }

/* validation messages (inline, under the field) */
.ppr-form .elementor-field-group { position: relative; align-content: flex-start; }
.ppr-form .ppr-invalid .elementor-field-textual,
.ppr-form .ppr-invalid .ppr-select__button,
.ppr-form .elementor-error .elementor-field-textual { border-color: #d93a4c !important; background-color: #fff7f8 !important; box-shadow: 0 0 0 4px rgba(217, 58, 76, .10) !important; }
.ppr-form .ppr-invalid .ppr-select .ppr-select__button { border-color: #d93a4c !important; background: #fff7f8 !important; }
.ppr-form .ppr-field-error,
.ppr-form .elementor-message.elementor-message-danger.elementor-help-inline {
	display: flex; align-items: center; gap: 7px; width: 100%; margin: 6px 0 0; padding: 0; background: none; border-radius: 0;
	color: #c22a3d; font: 500 13px/1.35 "Inter", sans-serif; animation: ppr-error-in .25s ease;
}
.ppr-form .ppr-field-error::before,
.ppr-form .elementor-message.elementor-message-danger.elementor-help-inline::before {
	content: "!"; display: inline-flex !important; flex: 0 0 16px; width: 16px; height: 16px; align-items: center; justify-content: center;
	border-radius: 50%; background: #d93a4c; color: #fff; font: 700 11px/1 "Inter", sans-serif;
}
.ppr-form .ppr-invalid.ppr-shake { animation: ppr-shake .35s ease; }
@keyframes ppr-error-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes ppr-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
.ppr-form--inline .ppr-field-error { position: absolute; left: 6px; top: 100%; color: #ffb4bd; white-space: nowrap; }
.ppr-form--inline .ppr-invalid .elementor-field-textual { background: transparent !important; box-shadow: none !important; }

/* custom dropdown that replaces the browser's own list for select fields (built by theme.js) */
.ppr-select { position: relative; }
.ppr-select select { position: absolute !important; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.ppr-form .ppr-select .ppr-select__button, .ppr-select__button {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 50px; padding: 12px 14px;
	border: 1px solid var(--ppr-border) !important; border-radius: 10px !important; background: #fff !important; color: var(--ppr-text) !important;
	font: 400 16px/1.4 "Inter", sans-serif !important; text-align: left; cursor: pointer; transition: border-color .2s, box-shadow .2s;
	box-shadow: none; transform: none !important; text-transform: none; letter-spacing: 0;
}
.ppr-form .ppr-select .ppr-select__button.is-placeholder { color: #6b7686 !important; }
.ppr-select__button span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ppr-select__button::after { content: ""; flex: 0 0 auto; width: 8px; height: 8px; margin-top: -4px; border-right: 2px solid var(--ppr-blue); border-bottom: 2px solid var(--ppr-blue); transform: rotate(45deg); transition: transform .25s, margin .25s; }
.ppr-form .ppr-select .ppr-select__button:hover { border-color: #bcd3f2 !important; }
.ppr-form .ppr-select.is-open .ppr-select__button, .ppr-form .ppr-select .ppr-select__button:focus-visible { border-color: var(--ppr-blue) !important; box-shadow: 0 0 0 4px rgba(11, 85, 184, .12); outline: 0; }
.ppr-select.is-open .ppr-select__button::after { transform: rotate(-135deg); margin-top: 4px; }
.ppr-select__list {
	position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; right: 0; max-height: 264px; margin: 0; padding: 6px; list-style: none; overflow-y: auto;
	background: #fff; border: 1px solid var(--ppr-border); border-radius: 12px; box-shadow: 0 18px 40px rgba(12, 33, 64, .18);
	opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s, transform .18s, visibility .18s;
}
.ppr-select.is-open .ppr-select__list { opacity: 1; visibility: visible; transform: none; }
.ppr-select.is-up .ppr-select__list { top: auto; bottom: calc(100% + 6px); }
.ppr-select__option { padding: 9px 12px; border-radius: 8px; font: 400 15px/1.35 "Inter", sans-serif; color: var(--ppr-text); cursor: pointer; }
.ppr-select__option.is-focused { background: var(--ppr-alt); color: var(--ppr-heading); }
.ppr-select__option[aria-selected="true"] { background: var(--ppr-blue); color: #fff; font-weight: 600; }
.ppr-select__list::-webkit-scrollbar { width: 8px; }
.ppr-select__list::-webkit-scrollbar-thumb { background: #c9d8ee; border-radius: 8px; }
.ppr-select .select-caret-down-wrapper { display: none !important; }
.elementor-error .ppr-select__button { border-color: #d72651; }

/* ---------- service pages ---------- */
@media (min-width: 1025px) { .ppr-sticky { position: sticky !important; top: 108px; align-self: flex-start; } }
.elementor-widget-button.ppr-side-link .elementor-button {
	display: flex; background-color: #fff !important; color: var(--ppr-heading) !important; fill: var(--ppr-heading) !important;
	border-color: var(--ppr-border) !important; text-align: left; padding: 12px 16px;
}
.elementor-widget-button.ppr-side-link .elementor-button-content-wrapper { justify-content: flex-start; width: 100%; }
.elementor-widget-button.ppr-side-link .elementor-button-text { flex-grow: 1; text-align: left; position: relative; padding-right: 22px; }
.elementor-widget-button.ppr-side-link .elementor-button-text::after {
	content: ""; position: absolute; right: 2px; top: 50%; width: 8px; height: 8px; margin-top: -5px;
	border-top: 2px solid var(--ppr-green); border-right: 2px solid var(--ppr-green); transform: rotate(45deg); transition: right .2s;
}
.elementor-widget-button.ppr-side-link .elementor-button:hover,
.elementor-widget-button.ppr-side-link.is-current .elementor-button {
	background-color: var(--ppr-blue) !important; border-color: var(--ppr-blue) !important; color: #fff !important; transform: none; box-shadow: none;
}
.elementor-widget-button.ppr-side-link .elementor-button:hover .elementor-button-text::after,
.elementor-widget-button.ppr-side-link.is-current .elementor-button-text::after { border-color: #fff; right: -2px; }
.ppr-stat { background: var(--ppr-alt); border: 1px solid var(--ppr-border); border-radius: 14px; }

/* ---------- process timeline ----------
   Markup: a grid container .ppr-process holding .ppr-step containers, each with one icon box.
   The script adds .ppr-inview, cycles .is-active through the steps and fills the rail. */
.ppr-process-section { position: relative; overflow: hidden !important; isolation: isolate; }
.ppr-process-section::after {
	content: ""; position: absolute; width: 520px; height: 520px; right: -160px; top: -200px; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle, rgba(46, 158, 36, .30), transparent 65%);
}
.ppr-process-section > .e-con-inner, .ppr-process-section > .e-con { position: relative; z-index: 1; }

.ppr-process { position: relative; counter-reset: ppr-step; width: 100%; padding-top: 34px !important; }
.ppr-rail { position: absolute; top: 0; left: 0; right: 0; height: 6px; border-radius: 6px; background: var(--ppr-border); overflow: hidden; }
.ppr-rail > span { display: block; height: 100%; width: 0; border-radius: 6px; background: linear-gradient(90deg, var(--ppr-blue), var(--ppr-green)); transition: width .7s cubic-bezier(.4, 0, .2, 1); position: relative; }
.ppr-rail > span::after { content: ""; position: absolute; top: 0; right: 0; width: 70px; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .85)); animation: ppr-shine 1.6s linear infinite; }
@keyframes ppr-shine { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

.ppr-step {
	position: relative; counter-increment: ppr-step; padding: 26px 22px 24px !important; border-radius: 18px !important; background: #fff;
	border: 1px solid var(--ppr-border); box-shadow: 0 6px 22px rgba(12, 33, 64, .05);
	transition: transform .45s cubic-bezier(.34, 1.4, .64, 1), border-color .35s, box-shadow .35s, background-color .35s, opacity .5s;
}
.ppr-step .elementor-icon-box-wrapper { display: block; position: relative; text-align: left !important; }
.ppr-step .elementor-icon-box-wrapper::before {
	content: counter(ppr-step, decimal-leading-zero); position: absolute; top: 4px; right: 0;
	font: 800 36px/1 "Plus Jakarta Sans", sans-serif; color: rgba(11, 85, 184, .14); transition: color .35s;
}
.ppr-step .elementor-icon-box-content { text-align: left; }
.ppr-step .elementor-icon-box-icon { margin: 0 0 18px !important; display: block; }
.ppr-step .elementor-icon {
	width: 58px; height: 58px; display: inline-flex; align-items: center; justify-content: center; border-radius: 16px;
	background: var(--ppr-alt); color: var(--ppr-blue); fill: var(--ppr-blue); font-size: 22px;
	transition: background .35s, color .35s, fill .35s, transform .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .35s;
}
.ppr-step .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.ppr-step .elementor-icon-box-title { margin: 0 0 8px !important; }
.ppr-step .elementor-icon-box-description { margin: 0; }

/* arrow between steps (desktop) */
@media (min-width: 1025px) {
	.ppr-step:not(:last-child)::after {
		content: ""; position: absolute; top: 47px; right: -15px; width: 12px; height: 12px; z-index: 2;
		border-top: 2px solid #b9c7dc; border-right: 2px solid #b9c7dc; transform: rotate(45deg); transition: border-color .35s;
	}
	.ppr-step.is-done:not(:last-child)::after, .ppr-step.is-active:not(:last-child)::after { border-color: var(--ppr-green); }
}

.ppr-step.is-done .elementor-icon { background: var(--ppr-blue); color: #fff; fill: #fff; }
.ppr-step.is-active { transform: translateY(-10px); border-color: var(--ppr-blue); box-shadow: 0 22px 44px rgba(11, 85, 184, .22); }
.ppr-step.is-active .elementor-icon-box-wrapper::before { color: var(--ppr-green); }
.ppr-step.is-active .elementor-icon { background: linear-gradient(135deg, var(--ppr-blue), var(--ppr-green)); color: #fff; fill: #fff; transform: scale(1.08); box-shadow: 0 10px 22px rgba(11, 85, 184, .35); }

/* entrance: steps rise in one after another once the block is in view */
.ppr-js .ppr-process:not(.ppr-inview) .ppr-step { opacity: 0; transform: translateY(28px); }
.ppr-process.ppr-inview .ppr-step:nth-child(2) { transition-delay: .08s; }
.ppr-process.ppr-inview .ppr-step:nth-child(3) { transition-delay: .16s; }
.ppr-process.ppr-inview .ppr-step:nth-child(4) { transition-delay: .24s; }
.ppr-process.ppr-inview .ppr-step:nth-child(5) { transition-delay: .32s; }
.ppr-process.ppr-inview .ppr-step:nth-child(6) { transition-delay: .40s; }
.ppr-process.ppr-ready .ppr-step { transition-delay: 0s !important; }

/* dark variant (home) */
.ppr-dark .ppr-rail { background: rgba(255, 255, 255, .14); }
.ppr-dark .ppr-step { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); box-shadow: none; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ppr-dark .ppr-step .elementor-icon-box-wrapper::before { color: rgba(255, 255, 255, .16); }
.ppr-dark .ppr-step .elementor-icon-box-title, .ppr-dark .ppr-step .elementor-icon-box-title a { color: #fff; }
.ppr-dark .ppr-step .elementor-icon-box-description { color: #c2cfe6; }
.ppr-dark .ppr-step .elementor-icon { background: rgba(255, 255, 255, .10); color: #fff; fill: #fff; }
.ppr-dark .ppr-step.is-done .elementor-icon { background: var(--ppr-blue); }
.ppr-dark .ppr-step.is-active { background: rgba(255, 255, 255, .12); border-color: #6fd460; box-shadow: 0 24px 50px rgba(0, 0, 0, .35), 0 0 0 1px rgba(111, 212, 96, .35); }
.ppr-dark .ppr-step.is-active .elementor-icon-box-wrapper::before { color: #6fd460; }
.ppr-dark .ppr-step:not(:last-child)::after { border-color: rgba(255, 255, 255, .35); }
.ppr-dark .ppr-step.is-done:not(:last-child)::after, .ppr-dark .ppr-step.is-active:not(:last-child)::after { border-color: #6fd460; }
.ppr-results .elementor-icon-list-items { justify-content: center; gap: 10px 0; }
.ppr-results .elementor-icon-list-item { padding: 9px 18px !important; border-radius: 40px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); margin: 0 6px !important; }
.ppr-results .elementor-icon-list-item::after { display: none !important; }

.ppr-process--compact .ppr-step { padding: 22px 16px 20px !important; }
.ppr-process--compact .ppr-step .elementor-icon-box-wrapper::before { font-size: 28px; }
.ppr-process--compact .elementor-icon { width: 50px; height: 50px; border-radius: 14px; font-size: 19px; }
.ppr-process--compact .ppr-step:not(:last-child)::after { top: 40px; }

/* ---------- footer ---------- */
.ppr-footer { position: relative; padding-bottom: 0 !important; }
.ppr-footer > .e-con-inner { padding-bottom: 20px !important; }
.ppr-footer-cta { margin-top: -90px !important; box-shadow: 0 24px 50px rgba(6, 23, 55, .35); position: relative; overflow: hidden !important; }
.ppr-footer-cta::after { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; background: rgba(255, 255, 255, .10); pointer-events: none; }
.ppr-footer-cta > * { position: relative; z-index: 1; }
.ppr-footer-cta p:last-child, .ppr-footer p:last-child { margin-bottom: 0; }
.ppr-footer-title .elementor-heading-title { position: relative; padding-bottom: 12px; }
.ppr-footer-title .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #3d8bff, #6fd460); }
.ppr-footer .elementor-icon-list-item > a { transition: transform .2s; }
.ppr-footer .elementor-icon-list-item > a:hover { transform: translateX(4px); }
.ppr-footer .elementor-icon-list-icon svg { transition: fill .2s; }
.ppr-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }
.ppr-footer-bottom p { margin: 0 !important; }
.ppr-footer-bottom .elementor-widget { margin-bottom: 0 !important; }
.ppr-footer a { color: #fff; }
.ppr-credit a { color: #fff !important; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.ppr-credit a:hover { color: #6fd460; text-decoration-color: #6fd460; }

@media (max-width: 1024px) {
	h1 { font-size: 40px; }
	h2 { font-size: 32px; }
	.ppr-grid { grid-template-columns: repeat(2, 1fr); }
	.ppr-nav-toggle { display: block; }
	.ppr-nav:not(.elementor-widget) {
		display: none; position: absolute; top: 90px; left: 20px; right: 20px; padding: 10px;
		background: #fff; border-radius: var(--ppr-radius); box-shadow: var(--ppr-shadow);
	}
	.ppr-nav.is-open { display: block; }
	.ppr-menu { flex-direction: column; align-items: stretch; }
	.ppr-menu ul { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding-left: 14px; }

	/* mobile / tablet menu panel */
	.ppr-nav .e-n-menu-wrapper { background: #fff; box-shadow: 0 24px 40px rgba(12, 33, 64, .16); border-top: 1px solid var(--ppr-border); max-height: calc(100vh - 90px); overflow-y: auto; padding: 8px 14px 18px; }
	.ppr-nav .e-n-menu-title { border-radius: 10px; width: 100%; justify-content: space-between !important; }
	.ppr-nav .e-n-menu-heading { align-items: stretch; }
	.ppr-nav .e-n-menu-title { padding: 12px 14px !important; margin: 0 !important; }
	.ppr-nav .e-n-menu-title-container { padding: 0 !important; }
	.ppr-nav .e-n-menu-title-container { justify-content: flex-start; }
	.ppr-nav .e-n-menu-content > .e-con { box-shadow: none; border-top: 0; background: transparent; }
	.ppr-mega-col { padding: 14px !important; }
	.ppr-sticky { position: static !important; }
	.ppr-mega-title .elementor-heading-title:empty, .ppr-mega-title:has(.elementor-heading-title:empty) { display: none; }
	.ppr-footer-cols > .e-con { width: calc(50% - 20px) !important; }
	.ppr-process .ppr-step:nth-child(n) { transition-delay: 0s; }
	.ppr-hero-media { margin: 0 auto; }
}

@media (max-width: 767px) {
	body { font-size: 16px; }
	h1 { font-size: 32px; }
	h2 { font-size: 28px; }
	h3 { font-size: 24px; }
	.ppr-grid { grid-template-columns: 1fr; }
	.ppr-banner { padding: 50px 0 44px; }
	.ppr-main { padding-top: 50px; padding-bottom: 70px; }
	.ppr-404__code { font-size: 96px; }
	.ppr-footer__inner { flex-direction: column; text-align: center; }
	.ppr-footer-cols > .e-con { width: 100% !important; }
	.elementor-widget.ppr-tiles .elementor-icon-list-items { grid-template-columns: 1fr; }
	.ppr-pillbar .e-con-inner > .e-con, .ppr-pillbar > .e-con { flex-wrap: nowrap !important; justify-content: flex-start !important; overflow-x: auto; padding-bottom: 4px !important; -webkit-overflow-scrolling: touch; }
	.ppr-pillbar .elementor-widget-button.ppr-pill { flex: 0 0 auto !important; width: auto !important; max-width: none !important; }
	.ppr-pill .elementor-button { white-space: nowrap; }
	.ppr-pillbar .e-con { scrollbar-width: none; }
	.ppr-pillbar .e-con::-webkit-scrollbar { display: none; }
	.ppr-hero-media, .ppr-hero-photo { min-height: 380px; }
	.ppr-hero-photo img { max-height: 400px; }
	.ppr-hero-card { padding: 9px 12px 9px 9px !important; border-radius: 13px !important; }
	.ppr-hero-card .elementor-icon { width: 34px; height: 34px; border-radius: 10px; }
	.ppr-hero-card .elementor-icon-box-title { font-size: 16px !important; }
	.ppr-hero-card .elementor-icon-box-description { font-size: 12px !important; }
	.ppr-hero-card--a { top: 34%; left: -4px; }
	.ppr-hero-card--b { right: -4px; bottom: 8%; }
	.ppr-hero-card--c { right: 0; top: 4%; }
	.ppr-footer-cta { margin-top: -60px !important; }
	.ppr-banner-photo::before { inset: 14px -10px -10px 14px; }
	.ppr-banner-lead { font-size: 16px; }
	.ppr-step { padding: 20px 18px !important; }
	.ppr-step .elementor-icon-box-wrapper { display: flex !important; gap: 16px; align-items: flex-start; }
	.ppr-step .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
	.ppr-step.is-active { transform: translateX(6px); }
	.ppr-results .elementor-icon-list-item { margin: 0 4px !important; padding: 7px 14px; }
	.ppr-form--inline .elementor-form-fields-wrapper { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
	.ppr-js .ppr-process:not(.ppr-inview) .ppr-step { opacity: 1; transform: none; }
}
