/* WordPress/Elementor compatibility layer for the supplied Next.js design. */
:root {
	--font-vazirmatn: 'vazirmatn', 'vazirmatn Fallback', Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: #f8fafc;
	color: #0f172a;
	direction: rtl;
	font-family: var(--font-vazirmatn);
	overflow-x: hidden;
	text-align: right;
}

.bf-site-content { min-height: 1px; }
.befroosh-pixel-perfect { width: 100%; font-family: var(--font-vazirmatn); }
.befroosh-pixel-perfect *, .befroosh-pixel-perfect *::before, .befroosh-pixel-perfect *::after { box-sizing: border-box; }
.befroosh-pixel-perfect img { max-width: 100%; }
.befroosh-pixel-perfect a { text-decoration: none; }
.befroosh-pixel-perfect .bf-elementor-icon > svg,
.befroosh-pixel-perfect .bf-elementor-icon > i { display: block; width: 1.25rem; height: 1.25rem; font-size: 1.25rem; line-height: 1; color: currentColor; }

/* Elementor must not inject spacing around the exact section widgets. */
.elementor-widget-befroosh-header,
.elementor-widget-befroosh-hero,
.elementor-widget-befroosh-clients,
.elementor-widget-befroosh-demo,
.elementor-widget-befroosh-pricing,
.elementor-widget-befroosh-features,
.elementor-widget-befroosh-security,
.elementor-widget-befroosh-testimonials,
.elementor-widget-befroosh-faq,
.elementor-widget-befroosh-consultation,
.elementor-widget-befroosh-footer,
.elementor-widget-befroosh-customers-page { margin: 0 !important; width: 100%; }

.elementor-widget-befroosh-header > .elementor-widget-container,
.elementor-widget-befroosh-hero > .elementor-widget-container,
.elementor-widget-befroosh-clients > .elementor-widget-container,
.elementor-widget-befroosh-demo > .elementor-widget-container,
.elementor-widget-befroosh-pricing > .elementor-widget-container,
.elementor-widget-befroosh-features > .elementor-widget-container,
.elementor-widget-befroosh-security > .elementor-widget-container,
.elementor-widget-befroosh-testimonials > .elementor-widget-container,
.elementor-widget-befroosh-faq > .elementor-widget-container,
.elementor-widget-befroosh-consultation > .elementor-widget-container,
.elementor-widget-befroosh-footer > .elementor-widget-container,
.elementor-widget-befroosh-customers-page > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }

.elementor-page .e-con.e-parent:has(> .e-con-inner > .elementor-widget-befroosh-header),
.elementor-page .e-con.e-parent:has(> .e-con-inner > .elementor-widget-befroosh-hero),
.elementor-page .e-con.e-parent:has(> .e-con-inner > [class*="elementor-widget-befroosh-"]) {
	--container-max-width: 100%;
	--padding-top: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	padding: 0 !important;
	max-width: none !important;
}

/* WordPress admin bar must not cover the fixed original header. */
.admin-bar .befroosh-pixel-perfect #app-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .befroosh-pixel-perfect #app-header { top: 46px; } }

/* The React typewriter is recreated by the lightweight theme script. */
.bf-typewriter-text { min-width: 1px; }

/* FAQ answers are inserted only when requested, matching AnimatePresence. */
.bf-faq-answer { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .2s ease-in-out, opacity .2s ease-in-out; }
.bf-faq-answer.is-open { max-height: 240px; opacity: 1; }

.bf-mobile-menu { animation: bf-menu-in .2s ease-out both; }
@keyframes bf-menu-in { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: none; } }

.bf-sticky-cta.is-visible { display: flex; animation: bf-sticky-in .35s cubic-bezier(.16,1,.3,1) both; }
@keyframes bf-sticky-in { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: none; } }

/* /customers — mirrors Motion's entrance, hover and incremental loading. */
.bf-customers-title { animation: bf-customers-title-in .5s ease-out .1s both; }
.bf-customers-subtitle { animation: bf-customers-subtitle-in .5s ease-out .15s both; }
.bf-customer-card { animation: bf-customer-card-in .35s ease-out both; animation-delay: calc(min(var(--bf-card-index, 0), 13) * 30ms); will-change: transform, opacity; }
.bf-customer-card:hover { transform: translateY(-5px); }
.bf-customer-card:hover .bf-customer-avatar { transform: rotate(12deg); }
.befroosh-pixel-perfect .bf-customer-avatar,
.befroosh-pixel-perfect .bf-customer-avatar > div,
.befroosh-pixel-perfect .bf-customer-avatar img {
	border-radius: 9999px !important;
	overflow: hidden !important;
}
.befroosh-pixel-perfect .bf-customer-avatar img {
	display: block !important;
	width: 112px !important;
	height: 112px !important;
	object-fit: cover !important;
}
.bf-customer-stat { animation: bf-customers-subtitle-in .4s ease-out both; animation-delay: calc(var(--bf-card-index, 0) * 100ms); }
.bf-customer-stat-icon > svg, .bf-customer-stat-icon > i { display: block; width: 1.5rem; height: 1.5rem; font-size: 1.5rem; line-height: 1; }
.bf-customers-loader.is-visible { display: flex; }
.bf-customers-sticky.is-visible { display: flex; animation: bf-customers-sticky-in .45s cubic-bezier(.22,1,.36,1) both; }
@keyframes bf-customers-title-in { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: none; } }
@keyframes bf-customers-subtitle-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes bf-customer-card-in { from { opacity: 0; transform: translateY(15px) scale(.95); } to { opacity: 1; transform: none; } }
@keyframes bf-customers-sticky-in { from { opacity: 0; transform: translateY(120px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Native WordPress content pages inherit the same typography and shell. */
.bf-page-shell { margin: 0 auto; max-width: 896px; padding: 144px 24px 80px; }
.bf-page-shell h1 { color: #020617; font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 900; line-height: 1.2; margin: 0 0 24px; }
.bf-page-shell h2 { color: #0f172a; font-size: 1.4rem; font-weight: 900; margin: 36px 0 12px; }
.bf-page-shell p, .bf-page-shell li { color: #475569; font-size: 1rem; font-weight: 550; line-height: 2; }

@media (max-width: 767px) {
	.bf-page-shell { padding: 104px 18px 56px; }
}
