/* Readability fixes from the multilingual public-page audit.
 * Important declarations live in one explicit layer so they can supersede old
 * Elementor emergency overrides without escalating selector specificity again.
 * Decorative display words, logo artwork and media are intentionally unchanged.
 */
@layer vj-locale-readability {
	body.vj-script-arabic { --vj-reading-font: "Noto Sans Arabic", Tahoma, Arial, sans-serif; }
	body.vj-script-hebrew { --vj-reading-font: "Noto Sans Hebrew", Arial, sans-serif; }
	body.vj-script-thai { --vj-reading-font: "Kanit", "Noto Sans Thai", Tahoma, sans-serif; }
	body.vj-script-devanagari { --vj-reading-font: "Noto Sans Devanagari", "Kohinoor Devanagari", Mangal, sans-serif; }
	body.vj-script-bengali { --vj-reading-font: "Noto Sans Bengali", "Kohinoor Bangla", Vrinda, sans-serif; }
	body.vj-script-japanese { --vj-reading-font: "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif; }
	body.vj-script-korean { --vj-reading-font: "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif; }
	body.vj-script-greek,
	body.vj-script-cyrillic { --vj-reading-font: "Noto Sans", "Segoe UI", Arial, sans-serif; }
	body.vj-script-tamil { --vj-reading-font: "Noto Sans Tamil", "Tamil Sangam MN", sans-serif; }
	body.vj-script-telugu { --vj-reading-font: "Noto Sans Telugu", "Kohinoor Telugu", "Telugu Sangam MN", "Nirmala UI", sans-serif; }
	body.vj-script-gujarati { --vj-reading-font: "Noto Sans Gujarati", "Kohinoor Gujarati", "Gujarati Sangam MN", "Nirmala UI", sans-serif; }
	body.vj-script-kannada { --vj-reading-font: "Noto Sans Kannada", "Kannada Sangam MN", "Nirmala UI", sans-serif; }
	body.vj-script-malayalam { --vj-reading-font: "Noto Sans Malayalam", "Malayalam Sangam MN", "Nirmala UI", sans-serif; }
	body.vj-script-odia { --vj-reading-font: "Noto Sans Odia", "Noto Sans Oriya", "Nirmala UI", sans-serif; }
	body.vj-script-gurmukhi { --vj-reading-font: "Noto Sans Gurmukhi", "Gurmukhi MN", "Nirmala UI", sans-serif; }
	body.vj-script-sinhala { --vj-reading-font: "Noto Sans Sinhala", "Sinhala Sangam MN", "Nirmala UI", sans-serif; }
	body.vj-script-myanmar { --vj-reading-font: "Noto Sans Myanmar", "Myanmar Sangam MN", sans-serif; }
	body.vj-script-khmer { --vj-reading-font: "Noto Sans Khmer", "Khmer Sangam MN", sans-serif; }
	body.vj-script-lao { --vj-reading-font: "Noto Sans Lao", "Lao Sangam MN", sans-serif; }
	body.vj-script-armenian { --vj-reading-font: "Noto Sans Armenian", "Arial Unicode MS", sans-serif; }
	body.vj-script-georgian { --vj-reading-font: "Noto Sans Georgian", "Arial Unicode MS", sans-serif; }
	body.vj-script-ethiopic { --vj-reading-font: "Noto Sans Ethiopic", Kefa, sans-serif; }

	body:is(.vj-script-arabic,.vj-script-hebrew,.vj-script-thai,.vj-script-devanagari,.vj-script-bengali,.vj-script-japanese,.vj-script-korean) :is([data-elementor-type="wp-page"],.vj-cn-case) :is(h1,h2,h3,h4,p,.wcf--text,.elementor-icon-list-text,.elementor-accordion-title,.wcf__btn a,button,label,input,textarea) {
		font-family: var(--vj-reading-font) !important;
	}
	body:is(.vj-script-tamil,.vj-script-telugu,.vj-script-gujarati,.vj-script-kannada,.vj-script-malayalam,.vj-script-odia,.vj-script-gurmukhi,.vj-script-sinhala,.vj-script-myanmar,.vj-script-khmer,.vj-script-lao,.vj-script-armenian,.vj-script-georgian,.vj-script-ethiopic) :is([data-elementor-type="wp-page"],.vj-cn-case) :is(h1,h2,h3,h4,p,.wcf--text,.elementor-icon-list-text,.elementor-accordion-title,.wcf__btn a,button,label,input,textarea) {
		font-family: var(--vj-reading-font) !important;
	}
	body:is(.vj-script-tamil,.vj-script-telugu,.vj-script-gujarati,.vj-script-kannada,.vj-script-malayalam,.vj-script-odia,.vj-script-gurmukhi,.vj-script-sinhala,.vj-script-myanmar,.vj-script-khmer,.vj-script-lao,.vj-script-ethiopic) :is([data-elementor-type="wp-page"],.vj-cn-case) :is(h1,h2,h3,h4,p,.wcf--text,.elementor-icon-list-text,.elementor-accordion-title,.wcf__btn a,button,label,input,textarea) {
		line-height: 1.55 !important;
	}
	/* Tall-script body copy benefits from extra leading, but display headings do not.
	 * Keep titles compact and let them wrap naturally instead of creating large gaps. */
	body:is(.vj-script-tamil,.vj-script-telugu,.vj-script-gujarati,.vj-script-kannada,.vj-script-malayalam,.vj-script-odia,.vj-script-gurmukhi,.vj-script-sinhala,.vj-script-myanmar,.vj-script-khmer,.vj-script-lao,.vj-script-ethiopic) .vj-cn-case :is(.vj-cn-case-hero,.vj-cn-case-heading,.vj-cn-case-notes,.vj-cn-case-cta) :is(h1,h2,h3,h4) {
		line-height: 1.12 !important;
		letter-spacing: normal !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
	}
	body:is(.vj-script-arabic,.vj-script-hebrew,.vj-script-thai,.vj-script-devanagari,.vj-script-bengali) :is([data-elementor-type="wp-page"],.vj-cn-case) :is(h1,h2,h3,h4,.elementor-icon-list-text,.elementor-accordion-title) {
		letter-spacing: normal !important;
		line-height: 1.3 !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
	}
	body.vj-reading-rtl :is(.vj-cn-case-kicker,.vj-cn-case-concept__label,.vj-cn-case-concept__core-flow p:first-child::before,.vj-cn-case-deliverables__label,.vj-cn-case-hero__meta-item span) {
		letter-spacing: normal !important;
		line-height: 1.5 !important;
	}

	/* English brand/navigation chrome stays in its established physical position. */
	body.vj-reading-rtl :is(.elementor-8648,.elementor-8217) { direction: ltr; }
	body.vj-reading-rtl .elementor-8217 :is(.elementor-icon-list-text,.ha-nav-link) { direction: rtl; unicode-bidi: isolate; }
	body.vj-reading-rtl .elementor-8653 .elementor-element-49c7dc44 .wcf--title { text-align: start !important; }
	body.vj-reading-rtl :is([data-elementor-type="wp-page"],.vj-cn-case) :is(.wcf--text,p,.elementor-icon-box-description,.wcf-service-description) { text-align: start; }
	body.vj-reading-rtl :is(a[href^="mailto:"],a[href^="tel:"]) { direction: ltr; unicode-bidi: isolate; display: inline-block; }
	body.vj-reading-rtl .vj-cn-case-hero :is(h1,.vj-cn-case-hero__intro) { margin-inline-start: 0; margin-inline-end: auto; }
	body.vj-reading-rtl .vj-cn-case-hero__shade {
		background: linear-gradient(180deg,rgba(5,7,9,.18),rgba(5,7,9,.08) 30%,rgba(5,7,9,.84)),linear-gradient(270deg,rgba(5,7,9,.64),rgba(5,7,9,.06) 66%);
	}
	body.vj-reading-rtl .vj-cn-case-cta p { text-align: center; }

	/* A real reading size, rather than reducing text until it fits a fixed rail. */
	body.page-id-8653 .elementor-element-60e16786 { width: 100% !important; max-width: 100% !important; margin: 20px 0 0 !important; padding: 0 !important; padding-inline-start: clamp(0px,3vw,50px) !important; box-sizing: border-box; }
	body.page-id-8653 .elementor-element-2be5d975 { width: 100% !important; max-width: 540px !important; min-width: 0; }
	body.translatepress-en_US.page-id-8653 :is(.elementor-element-49c7dc44,.elementor-element-7a971841,.elementor-element-1031ec9b,.elementor-element-6ce2493c,.elementor-element-1f8e9434) .wcf--title,
	body.translatepress-en_US.page-id-12 :is(.elementor-element-d157f59,.elementor-element-b9129ba) .wcf--title,
	body.translatepress-en_US.page-id-12 .wcf__iconbox .title,
	body.translatepress-en_US.page-id-2474 :is(.elementor-element-126144e,.elementor-element-5af6e88,.elementor-element-85bf875) .wcf--title {
		line-height: 1.14 !important;
		text-wrap: balance;
	}
	body.page-id-4307 .vj-work-filter { flex-wrap: wrap !important; overflow: visible !important; }
	body.page-id-4307 .vj-work-filter button { max-width: 100%; white-space: normal !important; line-height: 1.4 !important; }
	body.page-id-4307 .elementor-element-bac538b,
	body.page-id-4307 .elementor-element-bac538b p {
		font-size: 16px !important;
		line-height: 1.75 !important;
	}
	/* Finnish uses one long compound word for the Work title. Keep it on one
	 * line inside the fixed editorial rail instead of letting the English
	 * preview class enlarge it across the filter column. */
	body.vj-locale-fi.page-id-4307 .elementor-element-95f7b5d .wcf--title {
		font-size: clamp(40px, 2.8vw, 52px) !important;
		line-height: 1.05 !important;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
	/* Georgian's long project-page heading must wrap by word, not by an
	 * arbitrary character. Keep the shared rail dimensions unchanged and
	 * scale only this locale's display title to the available column. */
	body.vj-script-georgian.page-id-4307 .elementor-element-95f7b5d .wcf--title {
		overflow-wrap: normal !important;
		word-break: normal !important;
	}
	@media (min-width: 768px) {
		body.page-id-4307 .elementor-element-bac538b,
		body.page-id-4307 .elementor-element-bac538b p {
			font-size: 18px !important;
			line-height: 1.68 !important;
		}
		body.vj-script-georgian.page-id-4307 .elementor-element-95f7b5d .wcf--title {
			font-size: clamp(42px, 3.8vw, 56px) !important;
			line-height: 1.08 !important;
		}
	}
	body.page-id-12 .elementor-element-24898f5 .wcf__btn a {
		font-size: 14px !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		min-width: 160px !important;
		min-height: 160px !important;
		width: 160px !important;
		height: 160px !important;
		padding: 20px !important;
		white-space: normal !important;
		text-align: center !important;
		text-wrap: balance;
		hyphens: auto;
		overflow-wrap: break-word !important;
	}
	body.page-id-12 .elementor-element-24898f5 .wcf__btn a svg { width: 14px !important; height: 14px !important; flex-shrink: 0; }
	body.page-id-2474 .elementor-element-9739756 { width: 100% !important; max-width: 36rem !important; }
	body.page-id-2474 .elementor-element-9739756 .wcf--title { font-size: 18px !important; line-height: 1.6 !important; }
	body.page-id-2474 :is(input:not([type="submit"]),textarea,select) { font-size: 16px !important; line-height: 1.5 !important; }
	body.vj-script-khmer.page-id-2474 .wpcf7-submit.wcf-btn-default {
		font-size: 13px !important;
		letter-spacing: 0 !important;
		min-width: 180px !important;
		width: auto !important;
	}
	body.vj-reading-rtl.page-id-2474 :is(input[dir="auto"],textarea[dir="auto"]):placeholder-shown { text-align: right; }
	body.vj-reading-rtl.page-id-2474 input[dir="ltr"] { text-align: left; }
	body.page-id-2096 :is(.elementor-accordion-title,.wcf-accordion-title,.accordion-button) { font-size: 18px !important; line-height: 1.5 !important; white-space: normal !important; }
	body.page-id-2096 :is(.elementor-tab-content,.accordion-body,.wcf--content,.wcf--content p,.wcf--content li) { font-size: 17px !important; line-height: 1.75 !important; }
	body.page-id-2096 :is(.elementor-element-3485595,.elementor-element-3485595 p) { font-size: 16px !important; line-height: 1.75 !important; }

	body .vj-cn-case-notes p { font-size: 16px !important; line-height: 1.8 !important; }
	body .vj-cn-case-cta__inner > p { font-size: 14px !important; line-height: 1.6 !important; }
	@media (max-width: 1024px) {
		body .vj-cn-case-notes { grid-template-columns: 1fr !important; gap: 36px !important; }
		body.page-id-12 .elementor-element-13edeac > .e-con-inner { flex-wrap: wrap !important; align-items: baseline !important; gap: 8px !important; }
		body.page-id-12 .elementor-element-cffce6f { width: auto !important; flex-shrink: 0 !important; }
		body.page-id-12 .elementor-element-cffce6f .elementor-widget-container { transform: none !important; }
		body.page-id-12 .elementor-element-cffce6f h2 { white-space: nowrap; }
		body.page-id-12 .elementor-element-74d76d0 { width: auto !important; flex: 1 1 120px !important; }
	}
	@media (max-width: 767px) {
		/* Latvian needs a little more width for the homepage service heading.
		 * Reduce the display type rather than letting the character animation
		 * widen the page beyond the phone viewport. */
		body.vj-locale-lv.page-id-8653 .elementor-element-756b1acf .wcf--title {
			font-size: 46px !important;
			line-height: 1.08 !important;
			letter-spacing: normal !important;
		}
		/* Elementor shifts the two contact illustrations 40px to the right on
		 * phones. Keep them inside the same padded column as the form/content. */
		body.page-id-2474 :is(.elementor-element-fd4f834,.elementor-element-7a58664) {
			transform: none !important;
		}
		body:is(.vj-script-tamil,.vj-script-telugu,.vj-script-gujarati,.vj-script-kannada,.vj-script-malayalam,.vj-script-odia,.vj-script-gurmukhi,.vj-script-sinhala,.vj-script-myanmar,.vj-script-khmer,.vj-script-lao,.vj-script-ethiopic) .vj-cn-case-hero h1 {
			font-size: clamp(40px, 12vw, 56px) !important;
			line-height: 1.12 !important;
		}
		/* Armenian has several long, unbroken words. Keep the established case
		 * layout, but scale its display type to the phone column instead of
		 * letting a single word widen and crop the page. */
		body.vj-script-armenian .vj-cn-case :is(.vj-cn-case-hero h1,.vj-cn-case-heading h2,.vj-cn-case-notes h3,.vj-cn-case-cta h2) {
			white-space: normal !important;
			word-break: normal !important;
			overflow-wrap: break-word !important;
			letter-spacing: normal !important;
			line-height: 1.1 !important;
		}
		body.vj-script-armenian .vj-cn-case-hero h1 {
			font-size: clamp(38px, 11vw, 46px) !important;
		}
		body.vj-script-armenian .vj-cn-case-heading h2 {
			font-size: clamp(32px, 9.5vw, 40px) !important;
		}
		body.vj-script-armenian.page-id-4307 .elementor-element-95f7b5d .wcf--title,
		body.vj-script-armenian.page-id-2474 .elementor-element-126144e .wcf--title {
			max-width: 100% !important;
			font-size: clamp(36px, 10.5vw, 44px) !important;
			line-height: 1.12 !important;
			letter-spacing: normal !important;
			white-space: normal !important;
			overflow-wrap: break-word !important;
		}
		body.vj-script-armenian.page-id-2474 :is(.elementor-element-86b2b03,.elementor-element-126144e) {
			width: calc(100vw - 30px) !important;
			max-width: calc(100vw - 30px) !important;
			min-width: 0 !important;
			--width: calc(100vw - 30px) !important;
			--container-widget-width: calc(100vw - 30px) !important;
			flex: 0 0 calc(100vw - 30px) !important;
		}
		body.vj-script-armenian.page-id-2474 .elementor-element-86b2b03 {
			align-items: flex-start !important;
			padding-inline: 15px !important;
		}
		body.vj-script-armenian.page-id-2474 .elementor-element-126144e .wcf--title {
			font-size: 30px !important;
		}
		/* Lao is written without spaces between every word. On narrow screens the
		 * browser otherwise treats a whole heading/meta value as one unbreakable
		 * run and expands the document beyond the viewport. Keep the shared case
		 * layout intact while giving Lao copy natural, contained line breaking. */
		body.vj-script-lao .vj-cn-case :is(.vj-cn-case-hero h1,.vj-cn-case-heading h2,.vj-cn-case-notes h3,.vj-cn-case-cta h2) {
			overflow-wrap: anywhere !important;
			word-break: break-word !important;
		}
		body.vj-script-lao .vj-cn-case-heading h2 {
			font-size: clamp(32px, 9.6vw, 42px) !important;
			line-height: 1.16 !important;
		}
		body.vj-script-lao .vj-cn-case-hero__meta-item {
			padding-inline: 10px !important;
		}
		body.vj-script-lao .vj-cn-case-hero__meta-item strong {
			font-size: 14px !important;
			line-height: 1.3 !important;
			overflow-wrap: anywhere !important;
			word-break: break-word !important;
		}
		body.vj-script-lao :is([data-elementor-type="wp-page"],.vj-cn-case) :is(.wcf--title,.wcf--text,p,h1,h2,h3,h4,.elementor-icon-list-text,.elementor-accordion-title) {
			max-width: 100%;
			overflow-wrap: anywhere !important;
			word-break: break-word !important;
		}
		body .vj-cn-case-cta__inner > p { font-size: 12px !important; line-height: 1.6 !important; letter-spacing: .04em !important; }
		body.page-id-8653 .elementor-element-60e16786 { padding-inline-start: 0 !important; }
		body.page-id-12 .elementor-element-24898f5 { width: auto !important; max-width: 100% !important; }
		body.page-id-12 .elementor-element-24898f5 .wcf__btn a { min-width: 140px !important; min-height: 140px !important; width: 140px !important; height: 140px !important; padding: 16px !important; }
		body .vj-cn-case-notes p { font-size: 16px !important; line-height: 1.8 !important; }
		body .vj-cn-case-hero__intro,
		body .vj-cn-case-heading > p { font-size: 16px !important; line-height: 1.7 !important; }
		body.vj-reading-rtl .vj-cn-case-hero__content { position: relative; inset: auto; padding: 144px 18px 36px; }
		body.vj-reading-rtl .vj-cn-case-hero__meta { position: relative; inset: auto; margin: 0 12px 24px; }
	}
}
