/**
 * Berke 0.3.20 — site-wide typography and restrained UI polish.
 * Loaded last under a release-specific filename to prevent stale mixed assets.
 */

body.berke-release-0320 {
	--berke-text-xs: 0.84rem;
	--berke-text-sm: 0.95rem;
	--berke-text-base: 1.05rem;
	--berke-text-lg: 1.18rem;
	--berke-leading-body: 1.84;
	--berke-transition-fast: 150ms cubic-bezier(.2,.7,.2,1);
	--berke-transition-smooth: 260ms cubic-bezier(.2,.75,.2,1);
	font-family: "IRANYekanX", Tahoma, Arial, sans-serif !important;
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

body.berke-release-0320 :where(
	.berke-site-header,
	.berke-site-header *,
	.berke-site-footer,
	.berke-site-footer *,
	.berke-home,
	.berke-home *
) {
	font-family: "IRANYekanX", Tahoma, Arial, sans-serif !important;
	font-synthesis: none;
}

/* Persian typography reads better without artificial tracking. */
body.berke-release-0320 :where(
	.berke-site-header,
	.berke-site-footer,
	.berke-home
) :where(h1,h2,h3,h4,h5,h6,p,a,button,span,small,strong,li,dt,dd) {
	letter-spacing: normal !important;
}

/* Header — clearer hierarchy, comfortable navigation, restrained glass surface. */
body.berke-release-0320 .berke-site-header {
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 0.35rem 1.6rem rgba(15, 36, 57, 0.075);
	backdrop-filter: blur(14px) saturate(125%);
	-webkit-backdrop-filter: blur(14px) saturate(125%);
}

body.berke-release-0320 .berke-site-branding__title {
	font-size: 1.08rem !important;
	font-weight: 800 !important;
	line-height: 1.4 !important;
}

body.berke-release-0320 .berke-site-branding__tagline {
	font-size: 0.8rem !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
	color: #536f80 !important;
}

body.berke-release-0320 :where(.berke-menu > li > a, .berke-mega-menu__trigger) {
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	line-height: 1.55 !important;
}

body.berke-release-0320 .berke-header-cta {
	min-block-size: 2.85rem;
	padding-inline: 1.15rem !important;
	font-size: 0.92rem !important;
	font-weight: 700 !important;
	box-shadow: 0 0.55rem 1.3rem rgba(34, 61, 101, 0.14);
	transition: transform var(--berke-transition-fast), box-shadow var(--berke-transition-fast), background-color var(--berke-transition-fast);
}

body.berke-release-0320 .berke-header-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 0.75rem 1.65rem rgba(34, 61, 101, 0.19);
}

body.berke-release-0320 .berke-header-tool {
	transition: transform var(--berke-transition-fast), background-color var(--berke-transition-fast), border-color var(--berke-transition-fast);
}

body.berke-release-0320 .berke-header-tool:hover {
	transform: translateY(-1px);
	border-color: rgba(75, 184, 221, 0.48);
	background: #f5fbfd;
}

body.berke-release-0320 .berke-mega-menu__title {
	font-size: 1.08rem !important;
	font-weight: 700 !important;
}

body.berke-release-0320 .berke-mega-menu__overview-copy strong {
	font-size: 1rem !important;
	font-weight: 700 !important;
}

body.berke-release-0320 .berke-mega-menu__overview-copy small,
body.berke-release-0320 .berke-mega-menu__description {
	font-size: 0.86rem !important;
	font-weight: 500 !important;
	line-height: 1.75 !important;
}

body.berke-release-0320 .berke-mega-menu__item-copy strong {
	font-size: 0.94rem !important;
	font-weight: 700 !important;
	line-height: 1.6 !important;
}

body.berke-release-0320 .berke-mega-menu__item-copy span {
	font-size: 0.82rem !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

body.berke-release-0320 :where(.berke-mobile-drawer__heading strong, .berke-mobile-tool, .berke-mobile-cta) {
	font-weight: 700 !important;
}

body.berke-release-0320 .berke-mobile-drawer__heading span {
	font-size: 0.82rem !important;
	font-weight: 500 !important;
}

/* Footer — raise minimum readable sizes and give links a more deliberate feel. */
body.berke-release-0320 .berke-footer-eyebrow {
	font-size: 0.82rem !important;
	font-weight: 700 !important;
}

body.berke-release-0320 .berke-footer-cta h2 {
	font-weight: 800 !important;
	line-height: 1.48 !important;
}

body.berke-release-0320 .berke-footer-cta p {
	font-size: 0.98rem !important;
	font-weight: 500 !important;
	line-height: 1.9 !important;
}

body.berke-release-0320 .berke-footer-call {
	transition: transform var(--berke-transition-smooth), box-shadow var(--berke-transition-smooth), border-color var(--berke-transition-smooth);
}

body.berke-release-0320 .berke-footer-call:hover {
	transform: translateY(-2px);
	box-shadow: 0 1rem 2.3rem rgba(15, 36, 57, 0.18);
}

body.berke-release-0320 .berke-footer-call__copy small {
	font-size: 0.82rem !important;
	font-weight: 500 !important;
}

body.berke-release-0320 .berke-footer-principle strong {
	font-size: 0.96rem !important;
	font-weight: 700 !important;
}

body.berke-release-0320 .berke-footer-principle span:not(.berke-footer-principle__icon) {
	font-size: 0.82rem !important;
	font-weight: 500 !important;
	line-height: 1.75 !important;
}

body.berke-release-0320 .berke-footer-brand__description {
	font-size: 0.94rem !important;
	font-weight: 500 !important;
	line-height: 1.9 !important;
}

body.berke-release-0320 .berke-footer-brand__promise {
	font-size: 0.86rem !important;
	font-weight: 600 !important;
	line-height: 1.8 !important;
}

body.berke-release-0320 .berke-footer-section h2 {
	font-size: 1.02rem !important;
	font-weight: 800 !important;
}

body.berke-release-0320 :where(.berke-footer-scope-list li, .berke-footer-guides a, .berke-footer-contact li) {
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	line-height: 1.85 !important;
}

body.berke-release-0320 .berke-footer-guides a {
	position: relative;
	transition: color var(--berke-transition-fast), transform var(--berke-transition-fast);
}

body.berke-release-0320 .berke-footer-guides a:hover {
	color: #ffffff;
	transform: translateX(-2px);
}

body.berke-release-0320 .berke-footer-contact small {
	font-size: 0.8rem !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

body.berke-release-0320 .berke-footer-bottom p {
	font-size: 0.78rem !important;
	font-weight: 500 !important;
	line-height: 1.75 !important;
}

body.berke-release-0320 :where(.berke-footer-contact__icon, .berke-footer-principle__icon) {
	transition: transform var(--berke-transition-fast), background-color var(--berke-transition-fast), border-color var(--berke-transition-fast);
}

body.berke-release-0320 .berke-footer-contact li:hover .berke-footer-contact__icon,
body.berke-release-0320 .berke-footer-principle:hover .berke-footer-principle__icon {
	transform: translateY(-2px);
	border-color: rgba(75, 184, 221, 0.42);
}

/* Focus quality across coded UI. */
body.berke-release-0320 :where(
	.berke-site-header a,
	.berke-site-header button,
	.berke-site-footer a,
	.berke-site-footer button
):focus-visible {
	outline: 3px solid rgba(75, 184, 221, 0.44) !important;
	outline-offset: 3px !important;
}

@media (max-width: 63.999rem) {
	body.berke-release-0320 .berke-menu > li > a,
	body.berke-release-0320 .berke-mega-menu__trigger {
		font-size: 0.98rem !important;
	}

	body.berke-release-0320 .berke-mobile-tool {
		font-size: 0.92rem !important;
	}
}

@media (max-width: 35rem) {
	body.berke-release-0320 {
		--berke-text-xs: 0.82rem;
		--berke-text-sm: 0.93rem;
		--berke-text-base: 1.02rem;
	}

	body.berke-release-0320 .berke-footer-cta p,
	body.berke-release-0320 .berke-footer-brand__description {
		font-size: 0.95rem !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.berke-release-0320 :where(.berke-site-header *, .berke-site-footer *) {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}


/* ==========================================================
 * Berke 0.3.20 — Global UI refinement / Typography System 2.0
 * ========================================================== */
body.berke-release-0320 {
    --berke-text-xs: 0.90rem;
    --berke-text-sm: 0.99rem;
    --berke-text-base: 1.075rem;
    --berke-text-lg: 1.22rem;
    --berke-leading-body: 1.9;
    --berke-ui-border: rgba(34, 61, 101, 0.13);
    --berke-ui-border-active: rgba(75, 184, 221, 0.42);
    --berke-ui-shadow-soft: 0 0.85rem 2.5rem rgba(15, 36, 57, 0.07);
    --berke-ui-shadow-raised: 0 1.15rem 3rem rgba(15, 36, 57, 0.11);
}

/* Guarantee readable Persian text and real installed font weights. */
body.berke-release-0320 :where(.berke-site-header, .berke-site-footer, .berke-home) {
    font-family: "IRANYekanX", Tahoma, Arial, sans-serif !important;
    font-synthesis: none !important;
}

body.berke-release-0320 :where(
    .berke-site-header p, .berke-site-header a, .berke-site-header button,
    .berke-site-footer p, .berke-site-footer a, .berke-site-footer li,
    .berke-site-footer small, .berke-home p, .berke-home a, .berke-home small,
    .berke-home dt, .berke-home dd
) {
    text-rendering: optimizeLegibility;
}

/* Header: more comfortable scale and a clearer interaction surface. */
body.berke-release-0320 .berke-site-header {
    border-bottom-color: rgba(34, 61, 101, 0.10);
    box-shadow: 0 0.55rem 1.8rem rgba(15, 36, 57, 0.065);
}

body.berke-release-0320 .berke-site-branding__title {
    font-size: 1.14rem !important;
    font-weight: 800 !important;
}

body.berke-release-0320 .berke-site-branding__tagline {
    font-size: 0.86rem !important;
    font-weight: 500 !important;
    color: #49697b !important;
}

body.berke-release-0320 :where(.berke-menu > li > a, .berke-mega-menu__trigger) {
    min-block-size: 3.15rem !important;
    padding-inline: 0.78rem !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    border-radius: 0.78rem !important;
    transition: color 160ms ease, background-color 160ms ease, transform 160ms ease !important;
}

body.berke-release-0320 :where(.berke-menu > li > a, .berke-mega-menu__trigger):hover,
body.berke-release-0320 :where(.berke-menu > li > a, .berke-mega-menu__trigger):focus-visible,
body.berke-release-0320 .berke-mega-menu__trigger[aria-expanded="true"] {
    background: #f3f9fc !important;
    transform: translateY(-1px);
}

body.berke-release-0320 .berke-header-tool {
    width: 3.05rem !important;
    height: 3.05rem !important;
    min-width: 3.05rem !important;
    min-height: 3.05rem !important;
    border-radius: 0.9rem !important;
    box-shadow: 0 0.35rem 1rem rgba(15, 36, 57, 0.05) !important;
}

body.berke-release-0320 .berke-header-tool svg {
    width: 1.22rem !important;
    height: 1.22rem !important;
}

body.berke-release-0320 .berke-header-cta {
    min-block-size: 3.15rem !important;
    padding-inline: 1.3rem !important;
    font-size: 0.98rem !important;
    font-weight: 700 !important;
    background: linear-gradient(135deg, #223d65, #182d4c) !important;
    border-color: rgba(34, 61, 101, 0.88) !important;
    box-shadow: 0 0.7rem 1.65rem rgba(34, 61, 101, 0.18) !important;
}

body.berke-release-0320 .berke-header-cta:hover,
body.berke-release-0320 .berke-header-cta:focus-visible {
    background: linear-gradient(135deg, #182d4c, #132c46) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 0.95rem 2rem rgba(34, 61, 101, 0.24) !important;
}

body.berke-release-0320 .berke-mega-menu__title {
    font-size: 1.12rem !important;
}

body.berke-release-0320 .berke-mega-menu__overview-copy small,
body.berke-release-0320 .berke-mega-menu__description,
body.berke-release-0320 .berke-mega-menu__item-copy span {
    font-size: 0.90rem !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;
}

body.berke-release-0320 .berke-mega-menu__item-copy strong {
    font-size: 0.98rem !important;
}

body.berke-release-0320 .berke-mega-menu__list a {
    transition: background-color 170ms ease, border-color 170ms ease, transform 170ms ease !important;
}

body.berke-release-0320 .berke-mega-menu__list a:hover,
body.berke-release-0320 .berke-mega-menu__list a:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(75, 184, 221, 0.28) !important;
}

/* Footer: increase legibility and visual hierarchy without turning it into cards. */
body.berke-release-0320 .berke-footer-cta {
    padding-block: clamp(2rem, 4vw, 3.2rem);
    background:
        radial-gradient(circle at 12% 18%, rgba(75, 184, 221, 0.23), transparent 34%),
        linear-gradient(135deg, #f7fcfe, #eaf5f9);
}

body.berke-release-0320 .berke-footer-eyebrow {
    font-size: 0.88rem !important;
    min-block-size: 2rem;
    padding-inline: 0.85rem;
}

body.berke-release-0320 .berke-footer-cta h2 {
    font-size: clamp(1.7rem, 2.7vw, 2.35rem) !important;
    font-weight: 800 !important;
}

body.berke-release-0320 .berke-footer-cta p {
    font-size: 1.03rem !important;
    font-weight: 500 !important;
    color: #415f72 !important;
}

body.berke-release-0320 .berke-footer-call {
    min-inline-size: min(100%, 20rem);
    padding: 0.95rem 1rem;
    border-radius: 1.15rem;
    box-shadow: 0 0.95rem 2.2rem rgba(34, 61, 101, 0.19);
}

body.berke-release-0320 .berke-footer-call__icon {
    width: 2.9rem;
    height: 2.9rem;
}

body.berke-release-0320 .berke-footer-call__copy small {
    font-size: 0.88rem !important;
    font-weight: 500 !important;
}

body.berke-release-0320 .berke-footer-call__copy strong {
    font-size: 1.08rem !important;
}

body.berke-release-0320 .berke-footer-principles {
    background:
        linear-gradient(90deg, rgba(75, 184, 221, 0.035), transparent 50%),
        #102b43;
}

body.berke-release-0320 .berke-footer-principle {
    min-block-size: 6.8rem;
    padding: 1.15rem clamp(1rem, 2.6vw, 1.9rem);
    transition: background-color 180ms ease, border-color 180ms ease;
}

body.berke-release-0320 .berke-footer-principle:hover {
    background: rgba(255, 255, 255, 0.025);
}

body.berke-release-0320 .berke-footer-principle__icon {
    width: 2.95rem;
    height: 2.95rem;
    border-radius: 0.86rem;
}

body.berke-release-0320 .berke-footer-principle strong {
    font-size: 1rem !important;
    font-weight: 700 !important;
}

body.berke-release-0320 .berke-footer-principle > div > span {
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    line-height: 1.78 !important;
    color: rgba(255, 255, 255, 0.68) !important;
}

body.berke-release-0320 .berke-footer-main {
    padding-block: clamp(3rem, 6vw, 5rem);
}

body.berke-release-0320 .berke-footer-brand__identity h2 {
    font-size: 1.28rem !important;
}

body.berke-release-0320 .berke-footer-brand__identity > div > span {
    font-size: 0.88rem !important;
    font-weight: 600 !important;
}

body.berke-release-0320 .berke-footer-brand__description {
    font-size: 0.98rem !important;
    font-weight: 500 !important;
    line-height: 1.95 !important;
    color: rgba(255, 255, 255, 0.76) !important;
}

body.berke-release-0320 .berke-footer-brand__promise {
    font-size: 0.91rem !important;
    font-weight: 600 !important;
    line-height: 1.85 !important;
    padding: 0.95rem 1rem;
    border-color: rgba(75, 184, 221, 0.16);
    background: rgba(255, 255, 255, 0.065);
}

body.berke-release-0320 .berke-footer-section h2 {
    font-size: 1.09rem !important;
    font-weight: 800 !important;
    padding-block-end: 0.9rem;
}

body.berke-release-0320 .berke-footer-section h2::after {
    width: 2.8rem;
    height: 3px;
}

body.berke-release-0320 :where(.berke-footer-scope-list li, .berke-footer-guides a) {
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;
}

body.berke-release-0320 .berke-footer-guides a {
    min-block-size: 3.25rem;
    padding-inline: 0.15rem;
}

body.berke-release-0320 .berke-footer-guides a:hover,
body.berke-release-0320 .berke-footer-guides a:focus-visible {
    transform: translateX(-3px);
}

body.berke-release-0320 .berke-footer-link-arrow {
    width: 1.9rem;
    height: 1.9rem;
    transition: transform 170ms ease, background-color 170ms ease;
}

body.berke-release-0320 .berke-footer-guides a:hover .berke-footer-link-arrow,
body.berke-release-0320 .berke-footer-guides a:focus-visible .berke-footer-link-arrow {
    transform: translateX(-2px);
    background: rgba(75, 184, 221, 0.15);
}

body.berke-release-0320 .berke-footer-contact li {
    min-block-size: 3.55rem;
    gap: 0.8rem;
}

body.berke-release-0320 .berke-footer-contact__icon {
    width: 2.4rem;
    height: 2.4rem;
}

body.berke-release-0320 .berke-footer-contact small {
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.58) !important;
}

body.berke-release-0320 :where(.berke-footer-contact li > div > span, .berke-footer-contact a) {
    font-size: 0.93rem !important;
    font-weight: 500 !important;
    line-height: 1.82 !important;
}

body.berke-release-0320 .berke-footer-bottom p {
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.62) !important;
}

/* Mobile/tablet typography must not collapse back to tiny legacy values. */
@media (max-width: 63.999rem) {
    body.berke-release-0320 .berke-site-branding__tagline {
        font-size: 0.84rem !important;
    }

    body.berke-release-0320 :where(.berke-mobile-tool, .berke-mobile-cta) {
        font-size: 0.96rem !important;
        font-weight: 700 !important;
    }

    body.berke-release-0320 .berke-mobile-drawer__heading span {
        font-size: 0.88rem !important;
    }
}

@media (max-width: 47.999rem) {
    body.berke-release-0320 {
        --berke-text-xs: 0.88rem;
        --berke-text-sm: 0.97rem;
        --berke-text-base: 1.04rem;
    }

    body.berke-release-0320 .berke-footer-cta h2 {
        font-size: 1.55rem !important;
    }

    body.berke-release-0320 .berke-footer-cta p,
    body.berke-release-0320 .berke-footer-brand__description {
        font-size: 0.98rem !important;
    }

    body.berke-release-0320 :where(.berke-footer-scope-list li, .berke-footer-guides a) {
        font-size: 0.96rem !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.berke-release-0320 *,
    body.berke-release-0320 *::before,
    body.berke-release-0320 *::after {
        scroll-behavior: auto !important;
    }
}
