/*
 * NGL v2 — inner pages drawn in Figma after the homepage (design/labs: the Labs page; the Lab Details
 * and Technical inspection frames use the same pieces): the page under a solid header, breadcrumb
 * trail, eyebrow, page title and intro, the hero with a photo (a lab's page, the inspection and metrology
 * pages), complaints band, FAQ, the closing "expert advice" section, and the sections those service
 * pages share (titles, highlights, section head, equipment, accreditation). The consultation dialog is
 * in dialog.css.
 *
 * Desktop values are the 1440px frame's and scale down with clamp(). Logical properties throughout, so
 * RTL (fa, ar) and LTR (en) share every rule; nothing has a fixed width that a longer translation
 * could overflow (buttons have a minimum width, not a width).
 */

.nglv2-ipage {
	--nglv2-igap: clamp(40px, 4.4445vw, 64px); /* between the page's blocks: 64 at 1440 */
	--nglv2-icon-green: #22a46f;               /* the design's line icons (Lab Details, inspection) */
	--nglv2-soft-green: #e2f5ec;               /* their circles and boxes */
	--nglv2-muted: #586965;                    /* grey-green secondary text (highlights, section leads) */
	display: block;
	padding-top: calc(var(--nglv2-header-h) + clamp(24px, 2.78vw, 40px));
	padding-bottom: clamp(24px, 2.78vw, 40px);
	background: var(--nglv2-bg);
	color: var(--nglv2-ink);
	overflow-wrap: break-word; /* a long word in a translation wraps instead of being cut off */
	overflow-x: clip;
	outline: none;
}

/* The fixed header sits under the admin bar (chrome.css). */
.admin-bar .nglv2-ipage {
	padding-top: calc(var(--nglv2-header-h) + 32px + clamp(24px, 2.78vw, 40px));
}

@media (max-width: 782px) {
	.admin-bar .nglv2-ipage {
		padding-top: calc(var(--nglv2-header-h) + 46px + 24px);
	}
}

/* Betheme hides horizontal overflow on <body> at phone widths, which makes body a scroll container;
 * clip hides it the same way without one (see pages.css). */
html body.nglv2-inner-page {
	overflow-x: clip;
}

/* ----------------------------------------------------------------------------------------------
 * Breadcrumb trail (Figma <Breadcrumbs> 154:12937)
 * ------------------------------------------------------------------------------------------- */

.nglv2 .nglv2-trail ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	font-weight: 500;
	font-size: 14px;
	line-height: 24px;
	/* Darker than drawn (#9cd7a9 / #28a745 fail WCAG AA on this background: 1.6 and 3.0). That first
	   darkening left both crumbs on the same lightness (5.2:1 and 5.0:1, a ratio of 1.05 between
	   them), so only their hue differed and the owner reported on 2026-10-06 that the page you are
	   on does not stand out. They are pulled apart again, as far as AA allows: the ancestors sit at
	   the 4.5:1 floor, the current page at 8.8:1 and bold (below), which restores roughly the
	   lightness gap the design draws between its light green and its green. The separators keep the
	   drawn light green. */
	color: #62796d;
}

.nglv2 .nglv2-trail li {
	display: flex;
	align-items: center;
}

.nglv2 .nglv2-trail li + li::before {
	content: "/";
	flex: 0 0 23px;
	color: #9cd7a9; /* Green/green-200 */
	font-family: Roboto, Arial, sans-serif;
	font-weight: 500; /* not the bold of the current crumb's own <li>, so every separator matches */
	font-size: 16px;
	letter-spacing: 0.15px;
	text-align: center;
}

.nglv2 .nglv2-trail a {
	color: inherit;
	transition: color 0.25s;
}

.nglv2 .nglv2-trail a:hover {
	color: #1e7e34; /* Green/green-700 (the design's green-500 #28a745 is 3.0:1) */
}

/* The page itself: the design's green, dark and bold enough to end the trail. A hovered ancestor
   stops at the lighter green above, so the two states never look alike. */
.nglv2 .nglv2-trail [aria-current] {
	color: #14532d;
	font-weight: 700;
}

.nglv2 .nglv2-trail a:focus-visible {
	outline: 2px solid var(--nglv2-green);
	outline-offset: 2px;
}

/* ----------------------------------------------------------------------------------------------
 * Eyebrow: the short label with a green bar at its start (Figma "Text" 160:13597)
 * ------------------------------------------------------------------------------------------- */

.nglv2 .nglv2-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 20px;
	font-weight: 700;
	font-size: 13px;
	line-height: 19.5px;
	color: #557063;
}

.nglv2 .nglv2-eyebrow::before {
	content: "";
	flex: 0 0 42px;
	height: 2px;
	background: #84b92b;
}

/* ----------------------------------------------------------------------------------------------
 * Page head: breadcrumbs, eyebrow, title, intro (Figma 149:10830)
 * ------------------------------------------------------------------------------------------- */

.nglv2-ihead__text {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2.2223vw, 32px);
	margin-top: clamp(20px, 2.2223vw, 32px);
}

.nglv2 .nglv2-ihead__title {
	font-family: var(--nglv2-font); /* IRANSansX ExtraBold; Vazirmatn until the designer's revision of 2026-10-02 */
	font-weight: 800;
	font-size: clamp(32px, calc(16px + 2.222vw), 48px);
	line-height: 1.3333;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-ihead__intro {
	font-size: clamp(17px, calc(8px + 1.111vw), 24px);
	line-height: 1.6667;
	color: var(--nglv2-grey);
}

.nglv2 .nglv2-ihead__intro > * {
	max-width: 1128px; /* the design's line length, inside the quote bar */
}

.nglv2 .nglv2-ihead__intro > * + * {
	margin-top: 12px;
}

/* ----------------------------------------------------------------------------------------------
 * Complaints band (inspection 233:8255, Labs page 271:7924): full width, dark green, padding 80
 * ------------------------------------------------------------------------------------------- */

.nglv2-complaints {
	--nglv2-complaints-bg: #0d4036;  /* #005B4D until the designer's revision of 2026-10-02 */
	--nglv2-complaints-ink: #005b4d; /* the button's text */
	margin-top: var(--nglv2-igap);
	padding-block: clamp(48px, 5.5556vw, 80px);
	background: var(--nglv2-complaints-bg);
}

.nglv2-complaints > .nglv2-container {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.nglv2 .nglv2-complaints .nglv2-eyebrow {
	color: var(--nglv2-bg);
}

/* Text at the inline-start; the headset and the button in a 327px column 154 from the text (the
 * design's text box is 29px wider than its 592px column). */
.nglv2-complaints__row {
	display: flex;
	align-items: stretch;
	gap: clamp(48px, 10.6945vw, 154px);
}

.nglv2-complaints__copy {
	display: flex;
	flex: 0 1 621px;
	flex-direction: column;
	gap: 32px;
	min-width: 0;
}

/* 40/64 ExtraBold, like the inspection page's section titles (.nglv2-ititle). */
.nglv2 .nglv2-complaints__title {
	font-weight: 800;
	font-size: clamp(28px, calc(12px + 1.945vw), 40px);
	line-height: 1.6;
	color: #fff;
}

.nglv2 .nglv2-complaints__text {
	font-size: clamp(17px, calc(9px + 0.9028vw), 22px);
	line-height: 1.4909;
	color: var(--nglv2-bg);
}

.nglv2-complaints__action {
	display: flex;
	flex: 0 1 327px;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	min-width: 0;
}

.nglv2 .nglv2-complaints__icon {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	color: #fff;
}

.nglv2 .nglv2-complaints__btn {
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 15px 32px;
	border: 0;
	border-radius: 20px;
	background: #fff;
	box-shadow: none;
	color: var(--nglv2-complaints-ink);
	font-size: 16px;
	font-weight: 600;
	line-height: normal;
	text-transform: none;
}

.nglv2 .nglv2-complaints__btn:hover {
	background: var(--nglv2-green-50);
	color: var(--nglv2-complaints-ink);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.nglv2 .nglv2-complaints__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* Two buttons (the metrology page, 275:7929): 18 apart, the second outlined in white. */
.nglv2-complaints__action--two {
	gap: 18px;
}

.nglv2 .nglv2-complaints__btn--outline {
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
}

.nglv2 .nglv2-complaints__btn--outline:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

/* Not drawn: the text first, then the headset and the button side by side, then the button alone. */
@media (max-width: 1023px) {
	.nglv2-complaints__row {
		flex-direction: column;
		align-items: stretch;
		gap: 32px;
	}

	.nglv2-complaints__copy {
		flex-basis: auto;
	}

	.nglv2-complaints__action {
		flex: 0 0 auto;
		flex-direction: row;
		justify-content: flex-start;
		gap: 24px;
	}

	.nglv2 .nglv2-complaints__icon {
		width: 48px;
		height: 48px;
	}

	.nglv2 .nglv2-complaints__btn {
		width: auto;
		min-width: 240px;
	}
}

@media (max-width: 639px) {
	.nglv2-complaints__action {
		flex-direction: column;
		align-items: stretch;
	}

	.nglv2 .nglv2-complaints__icon {
		display: none;
	}

	.nglv2 .nglv2-complaints__btn {
		width: 100%;
		min-width: 0;
	}
}

/* ----------------------------------------------------------------------------------------------
 * FAQ (Figma 165:17308) — square white rows; the chevron points up when open
 * ------------------------------------------------------------------------------------------- */

.nglv2-faq {
	margin-top: var(--nglv2-igap);
}

.nglv2-faq > .nglv2-container {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.nglv2-faq__list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.nglv2-faq__item {
	background: #fff;
}

.nglv2 .nglv2-faq__btn {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	margin: 0;
	padding: 18px 24px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--nglv2-ink);
	font-family: var(--nglv2-font);
	font-weight: 600;
	font-size: clamp(16px, calc(11px + 0.486vw), 18px);
	line-height: 1.2;
	text-align: start;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	transition: color 0.25s;
}

.nglv2 .nglv2-faq__btn:hover {
	color: var(--nglv2-green-dark);
}

.nglv2 .nglv2-faq__btn:focus-visible {
	outline: 2px solid var(--nglv2-green);
	outline-offset: -2px;
}

.nglv2-faq__text {
	flex: 1 1 auto;
	min-width: 0;
}

.nglv2-faq__icon {
	display: grid;
	flex: 0 0 24px;
	place-items: center;
	width: 24px;
	height: 24px;
	color: var(--nglv2-green);
	transition: transform 0.35s var(--nglv2-ease);
}

.nglv2 .nglv2-faq__icon .nglv2-icon {
	width: 13.5px;
	height: 7.5px;
}

.nglv2-faq__item.is-open .nglv2-faq__icon {
	transform: rotate(180deg);
}

/* Height animates between 0fr and 1fr: no measuring in JavaScript. */
.nglv2-faq__a {
	display: grid;
	grid-template-rows: 1fr;
}

.nglv2-faq__inner {
	min-height: 0;
	overflow: hidden;
}

.nglv2 .nglv2-faq__answer {
	padding: 0 24px 18px;
	font-size: clamp(16px, calc(11px + 0.486vw), 18px);
	line-height: 1.4;
	color: var(--nglv2-grey);
}

.nglv2 .nglv2-faq__answer > * + * {
	margin-top: 10px;
}

.nglv2 .nglv2-faq__answer a {
	color: #538212; /* secondary-shade700: readable on white */
	font-weight: 600;
	transition: color 0.25s;
}

.nglv2 .nglv2-faq__answer a:hover {
	color: var(--nglv2-green-dark);
}

.nglv2-js .nglv2-faq__a {
	transition: grid-template-rows 0.45s var(--nglv2-ease), visibility 0s linear 0.45s;
}

.nglv2-js .nglv2-faq__item:not(.is-open) .nglv2-faq__a {
	grid-template-rows: 0fr;
	visibility: hidden;
}

.nglv2-js .nglv2-faq__item.is-open .nglv2-faq__a {
	transition: grid-template-rows 0.45s var(--nglv2-ease), visibility 0s;
}

/* Without JavaScript every answer is open: no chevron that would do nothing. */
html:not(.nglv2-js) .nglv2-faq__icon {
	display: none;
}

/* The metrology page's prerequisites (233:8546): a title under the eyebrow (ExtraBold 24 in a 64px line)
 * and a note under the list. */
.nglv2 .nglv2-faq__title {
	font-weight: 800;
	font-size: 24px;
	line-height: 64px;
	color: var(--nglv2-ink);
}

/* A small grey note with an info icon, centred (Figma "Paragraph" 253:10614). */
.nglv2 .nglv2-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	font-size: 10px;
	line-height: 13.5px;
	color: #8a9794;
	text-align: center;
}

.nglv2 .nglv2-note .nglv2-icon {
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
}

@media (max-width: 639px) {
	.nglv2 .nglv2-faq__title {
		line-height: 1.6;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Closing "expert advice" section (Figma 165:16663)
 * ------------------------------------------------------------------------------------------- */

.nglv2-consult {
	margin-top: var(--nglv2-igap);
}

.nglv2-consult > .nglv2-container {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.nglv2-consult__copy {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.nglv2 .nglv2-consult__title {
	font-weight: 700;
	font-size: clamp(24px, calc(8px + 1.667vw), 32px);
	line-height: 2;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-consult__text {
	font-size: clamp(16px, calc(9px + 0.764vw), 20px);
	line-height: 1.48;
	color: var(--nglv2-grey);
}

.nglv2-consult__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 32px;
}

.nglv2 .nglv2-btn--consult,
.nglv2 .nglv2-btn--totop {
	min-width: 240px;
	height: 56px;
	margin: 0;
	box-shadow: none;
	font-size: 16px;
	font-weight: 600;
	line-height: normal;
	text-transform: none;
}

/* The 240px minimum is the drawn width. Padding 24, not the drawn 32: Chrome sets «گفت‌وگو با کارشناس
 * پذیرش» 2px wider than Figma, and 32 would push that button to 242. */
.nglv2 .nglv2-btn--consult {
	padding: 0 24px;
	border-radius: 20px;
	background: var(--nglv2-green);
	color: #f7fcfe;
}

.nglv2 .nglv2-btn--consult:hover {
	background: var(--nglv2-green-dark);
	color: #fff;
	box-shadow: 0 12px 28px rgba(129, 201, 29, 0.28);
}

.nglv2 .nglv2-btn--totop {
	padding: 0 24px;
	border-color: var(--nglv2-green);
	border-radius: 16px;
	background: transparent;
	color: var(--nglv2-green);
}

.nglv2 .nglv2-btn--totop:hover {
	border-color: var(--nglv2-green-dark);
	background: var(--nglv2-green-50);
	color: var(--nglv2-green-dark);
}

.nglv2 .nglv2-btn--totop .nglv2-icon {
	width: 24px;
	height: 24px;
	transition: transform 0.35s var(--nglv2-ease);
}

.nglv2 .nglv2-btn--totop:hover .nglv2-icon {
	transform: translateY(-3px);
}

@media (max-width: 479px) {
	.nglv2 .nglv2-btn--consult,
	.nglv2 .nglv2-btn--totop {
		flex: 1 1 100%;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Hero with a photo (Lab Details 165:17364, inspection 209:13681): text column 706, photo 494, 32
 * under the breadcrumbs. inspection.css holds the inspection page's differences.
 * ------------------------------------------------------------------------------------------- */

.nglv2-lhero__row {
	display: flex;
	align-items: stretch;
	margin-top: 32px;
}

.nglv2-lhero__text {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	align-items: flex-start;
	gap: 32px;
	min-width: 0;
	padding-inline-end: 64px; /* the title's box is 642 of the column's 706 */
}

.nglv2-lhero__copy {
	display: flex;
	flex-direction: column;
	gap: 32px;
	width: 100%;
}

.nglv2-lhero__heading {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.nglv2 .nglv2-lhero__title {
	font-weight: 700;
	font-size: clamp(32px, calc(12px + 2.5vw), 48px);
	line-height: 1.5;
	letter-spacing: -0.7137px;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-lhero__subtitle {
	font-weight: 500;
	font-size: clamp(17px, calc(13px + 0.417vw), 19px);
	line-height: 1.5;
	color: var(--nglv2-accent);
}

.nglv2 .nglv2-lhero__intro {
	max-width: 625px; /* 599 of text inside the quote bar */
	font-size: 16px;
	line-height: 30px;
	color: var(--nglv2-grey);
}

.nglv2 .nglv2-lhero__intro > * + * {
	margin-top: 12px;
}

.nglv2-lhero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.nglv2 .nglv2-lhero__btn,
.nglv2 .nglv2-lscope__chat {
	gap: 12px;
	min-height: 50px;
	margin: 0;
	padding: 0 22px;
	border-radius: 10px;
	box-shadow: none;
	font-size: 13px;
	font-weight: 600;
	line-height: 19.5px;
	text-transform: none;
}

.nglv2 .nglv2-lhero__btn--chat,
.nglv2 .nglv2-lscope__chat {
	background: var(--nglv2-accent);
	color: #fff;
}

/* The design of 2026-10-07 draws this button 180 wide on all three service pages, wider than its text
   («درخواست آزمون» / «درخواست بازرسی»); a longer translation grows past it. */
.nglv2 .nglv2-lhero__btn--chat {
	min-width: 180px;
}

.nglv2 .nglv2-lhero__btn--chat:hover,
.nglv2 .nglv2-lscope__chat:hover {
	background: var(--nglv2-accent-dark);
	color: #fff;
	box-shadow: 0 12px 28px rgba(109, 190, 69, 0.28);
}

.nglv2 .nglv2-lscope__chat .nglv2-icon {
	width: 24px;
	height: 24px;
}

.nglv2 .nglv2-lhero__btn--catalog {
	border: 0.8px solid rgba(25, 36, 49, 0.24);
	background: transparent;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-lhero__btn--catalog:hover {
	border-color: var(--nglv2-accent);
	background: #fff;
	color: var(--nglv2-ink);
}

/* The photo: 16px corners except the outer top one (180), a dark fade from the bottom and a green
 * tint from the outer side. */
.nglv2-lhero__media {
	position: relative;
	flex: 0 0 494px;
	min-height: 483px;
	overflow: hidden;
	border-radius: 16px;
	border-start-end-radius: 180px;
	background: var(--nglv2-navy);
	isolation: isolate;
}

.nglv2 .nglv2-lhero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nglv2-lhero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(0deg, rgba(5, 26, 33, 0.82) 0%, rgba(5, 26, 33, 0) 55%),
		linear-gradient(90deg, rgba(20, 128, 93, 0.2) 0%, rgba(20, 128, 93, 0) 100%);
	pointer-events: none;
}

html:not([dir="rtl"]) .nglv2-lhero__media::after {
	background:
		linear-gradient(0deg, rgba(5, 26, 33, 0.82) 0%, rgba(5, 26, 33, 0) 55%),
		linear-gradient(270deg, rgba(20, 128, 93, 0.2) 0%, rgba(20, 128, 93, 0) 100%);
}

/* "Accurate evaluation — from sample to report", flush with the photo's outer edge. */
.nglv2 .nglv2-lhero__badge {
	position: absolute;
	z-index: 1;
	inset-block-end: 78.4px; /* top 331.6 of 483 */
	inset-inline-end: 0;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 17px 20px;
	border-start-start-radius: 12px;
	border-end-start-radius: 12px;
	background: #fff;
	box-shadow: 0 22px 35px rgba(8, 37, 31, 0.1);
	color: #071d25;
}

.nglv2 .nglv2-lhero__badge .nglv2-icon {
	width: 24px;
	height: 24px;
	color: var(--nglv2-icon-green);
}

.nglv2-lhero__badge-text {
	display: flex;
	flex-direction: column;
	font-size: 10px;
	line-height: 17px;
	white-space: nowrap;
}

.nglv2 .nglv2-lhero__badge-text strong {
	font-weight: 700;
	font-size: 12px;
	line-height: 20.4px;
}

/* Titles: Figma applies the -0.7137px letter-spacing inside Persian words too, browsers do not, so
 * each line is about 8.5% wider than drawn. On RTL pages the title gets that width back from the
 * column's gap to the photo, so it breaks where the design breaks it (as on the Labs page). */
@media (min-width: 1200px) {
	html[dir="rtl"] .nglv2-lhero__text {
		padding-inline-end: 9px;
	}

	html[dir="rtl"] .nglv2 .nglv2-lhero__intro {
		margin-inline-end: 55px;
	}
}

/* The services' hero (inspection 209:13681, metrology 233:8301; modifier `service`): the title is
 * IRANSansX ExtraBold 48/64 without letter-spacing in the design's 642px box, and the paragraph is
 * looser (16/40). Each page sets its photo's height. */
.nglv2 .nglv2-lhero--service .nglv2-lhero__title {
	font-family: var(--nglv2-font); /* the inspection page's was Vazirmatn until the designer's revision of 2026-10-02 */
	font-weight: 800;
	font-size: clamp(32px, calc(16px + 2.222vw), 48px);
	line-height: 1.3333;
	letter-spacing: normal;
}

.nglv2 .nglv2-lhero--service .nglv2-lhero__intro {
	line-height: 2.5; /* 40 */
}

@media (min-width: 1200px) {
	html[dir="rtl"] .nglv2-lhero--service .nglv2-lhero__text {
		padding-inline-end: 64px;
	}

	html[dir="rtl"] .nglv2 .nglv2-lhero--service .nglv2-lhero__intro {
		margin-inline-end: 0;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Photo banner (About Us 324:10906; the Projects frame 306:12569 draws the same one): full width, 900
 * tall at 1440 and 32 under the breadcrumbs. The photo is 1512 wide in the design (72 past the frame's
 * end side) and darkened towards the text and the bottom; the text is centred in the top 860 at the
 * container's start.
 * ------------------------------------------------------------------------------------------- */

.nglv2-ibanner {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(560px, 62.5vw, 900px);
	margin-top: 32px;
	padding-block: 0 40px;
	overflow: hidden;
	background: #102c2a;
	color: #fff;
}

.nglv2-ibanner__media,
.nglv2-ibanner::before {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	width: 105%; /* 1512 of 1440 */
	pointer-events: none;
}

.nglv2-ibanner__media {
	z-index: -2;
}

.nglv2 .nglv2-ibanner__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Darkest under the text (the start side) and at the bottom. */
.nglv2-ibanner::before {
	content: "";
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(7, 27, 25, 0.24) 0%, rgba(7, 27, 25, 0.9) 72%),
		linear-gradient(0deg, rgba(7, 27, 25, 0.65) 0%, rgba(7, 27, 25, 0) 55%);
}

html:not([dir="rtl"]) .nglv2-ibanner::before {
	background:
		linear-gradient(270deg, rgba(7, 27, 25, 0.24) 0%, rgba(7, 27, 25, 0.9) 72%),
		linear-gradient(0deg, rgba(7, 27, 25, 0.65) 0%, rgba(7, 27, 25, 0) 55%);
}

.nglv2-ibanner__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.nglv2 .nglv2-ibanner__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 24px;
	font-weight: 700;
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0.24px;
	color: #9ee5cf;
}

.nglv2 .nglv2-ibanner__eyebrow::before {
	content: "";
	flex: 0 0 28px;
	height: 2px;
	background: var(--nglv2-green);
}

/* 94/120 with the design's -4.23px tracking (browsers keep it out of Persian words, so a line is wider
   than drawn; it stays on one line from 768px up and runs further towards the photo). */
.nglv2 .nglv2-ibanner__title {
	margin-bottom: 3px;
	font-weight: 800;
	font-size: clamp(40px, 6.5278vw, 94px);
	line-height: 1.2766;
	letter-spacing: -0.045em;
	color: #fff;
}

.nglv2-ibanner__line {
	display: block;
}

.nglv2-ibanner__accent {
	color: var(--nglv2-accent);
}

.nglv2 .nglv2-ibanner__text {
	max-width: 494px; /* 490 drawn; Chrome sets a line up to 2px wider than Figma */
	padding-bottom: 36px;
	font-size: clamp(16px, calc(12px + 0.4167vw), 18px);
	line-height: 2;
	color: rgba(255, 255, 255, 0.75);
}

.nglv2-ibanner__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px;
	width: min(490px, 100%);
}

.nglv2 .nglv2-ibanner__btn {
	display: inline-flex;
	flex: 0 1 240px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 8px 22px;
	border: 1px solid var(--nglv2-green);
	border-radius: 10px;
	font-weight: 600;
	font-size: 13px;
	line-height: 19.5px;
	text-align: center;
	transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}

.nglv2 .nglv2-ibanner__btn--primary {
	background: var(--nglv2-green);
	color: #fff;
}

.nglv2 .nglv2-ibanner__btn--primary:hover {
	border-color: var(--nglv2-green-dark);
	background: var(--nglv2-green-dark);
	color: #fff;
}

.nglv2 .nglv2-ibanner__btn--outline {
	padding-inline: 24px;
	background: transparent;
	color: var(--nglv2-green);
}

.nglv2 .nglv2-ibanner__btn--outline:hover {
	background: rgba(129, 201, 29, 0.12);
	color: var(--nglv2-green);
}

.nglv2 .nglv2-ibanner__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.nglv2 .nglv2-ibanner__btn .nglv2-icon {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
}

@media (min-width: 768px) {
	.nglv2-ibanner__line {
		white-space: nowrap;
	}
}

@media (max-width: 1023px) {
	.nglv2-ibanner {
		padding-block: 64px 72px;
	}
}

@media (max-width: 479px) {
	.nglv2 .nglv2-ibanner__btn {
		flex-basis: 100%;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Hero on narrower screens (not drawn)
 * ------------------------------------------------------------------------------------------- */

@media (max-width: 1199px) {
	.nglv2-lhero__media {
		flex-basis: 42%;
		min-height: 420px;
		border-start-end-radius: 140px;
	}

	.nglv2-lhero__text {
		padding-inline-end: 40px;
	}
}

@media (max-width: 1023px) {
	/* Photo above the text. */
	.nglv2-lhero__row {
		flex-direction: column-reverse;
		gap: 32px;
	}

	.nglv2-lhero__media {
		flex-basis: auto;
		min-height: 0;
		aspect-ratio: 16 / 10;
		border-start-end-radius: 120px;
	}

	.nglv2-lhero__text {
		padding-inline-end: 0;
	}

	.nglv2 .nglv2-lhero__intro {
		max-width: none;
	}
}

@media (max-width: 639px) {
	.nglv2-lhero__media {
		aspect-ratio: 4 / 3;
		border-start-end-radius: 96px;
	}

	.nglv2 .nglv2-lhero--service .nglv2-lhero__intro {
		line-height: 2;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Sections shared by the service pages (a lab's page, the inspection and metrology pages), moved
 * here from lab.css and inspection.css on 2026-10-03
 * ------------------------------------------------------------------------------------------- */

/* ----------------------------------------------------------------------------------------------
 * Section titles (40/64 ExtraBold) and leads (24/32.8, quote bar): accreditation, memberships
 * (inspection page) and the metrology page's sections
 * ------------------------------------------------------------------------------------------- */

.nglv2 .nglv2-ititle {
	font-weight: 800;
	font-size: clamp(28px, calc(12px + 1.945vw), 40px);
	line-height: 1.6;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-ilead {
	font-size: clamp(17px, calc(8px + 1.111vw), 24px);
	line-height: 1.3667;
	color: #455854;
}

/* ----------------------------------------------------------------------------------------------
 * Section head (Lab Details 224:8060): eyebrow, title, lead. A lab's standards and equipment, the
 * metrology page's equipment
 * ------------------------------------------------------------------------------------------- */

.nglv2-shead {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-bottom: 24px;
}

.nglv2-shead__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.nglv2 .nglv2-shead__title {
	font-weight: 800;
	font-size: clamp(28px, calc(12px + 1.945vw), 40px);
	line-height: 1.6;
	color: var(--nglv2-ink);
}

.nglv2 .nglv2-shead__lead {
	font-size: clamp(17px, calc(8px + 1.111vw), 24px);
	line-height: 1.5;
	color: var(--nglv2-muted);
}

@media (min-width: 1200px) {
	.nglv2 .nglv2-shead__lead {
		line-height: 24.7px; /* one line in the design */
	}
}

/* ----------------------------------------------------------------------------------------------
 * Highlights (Figma 171:22262): 48 under the hero, padding 32, four items spread evenly with thin
 * dividers between them (a lab's page; the metrology page has three wider ones, metrology.css)
 * ------------------------------------------------------------------------------------------- */

.nglv2-lhl {
	margin-top: 48px;
}

.nglv2-lhl__list {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 32px;
}

.nglv2-lhl__item {
	display: flex;
	flex: 0 1 auto;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.nglv2-lhl__icon {
	display: grid;
	flex: 0 0 45px;
	place-items: center;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	background: var(--nglv2-soft-green);
	color: var(--nglv2-icon-green);
}

.nglv2 .nglv2-lhl__icon .nglv2-icon {
	width: 24px;
	height: 24px;
}

.nglv2-lhl__text {
	display: flex;
	flex-direction: column;
	min-width: 151px;
	max-width: 220px;
}

.nglv2-lhl__title {
	font-size: 14px;
	line-height: 23px;
	color: var(--nglv2-ink);
}

.nglv2-lhl__desc {
	font-size: 11px;
	line-height: 24px;
	color: var(--nglv2-muted);
}

.nglv2-lhl__sep {
	flex: 0 0 1px;
	height: 48px;
	background: rgba(109, 190, 69, 0.35);
}

@media (max-width: 1199px) {
	.nglv2-lhl__list {
		padding-inline: 0;
	}
}

@media (max-width: 1023px) {
	/* Two by two, without the dividers. */
	.nglv2-lhl {
		margin-top: 32px;
	}

	.nglv2-lhl__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
		padding: 0;
	}

	.nglv2-lhl__sep {
		display: none;
	}

	.nglv2-lhl__text {
		min-width: 0;
		max-width: none;
	}
}

@media (max-width: 639px) {
	.nglv2-lhl__list {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Featured equipment (Figma 193:11581; metrology 251:10545): a tall tile at the inline-start, two small
 * ones and a wide one beside it
 * ------------------------------------------------------------------------------------------- */

.nglv2-leq {
	margin-top: var(--nglv2-igap);
}

.nglv2-leq__grid {
	display: grid;
	grid-template-columns: minmax(0, 557fr) minmax(0, 297.5fr) minmax(0, 297.5fr);
	grid-template-rows: 250px 250px;
	gap: 24px;
}

.nglv2-leq__tile:nth-child(1) {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.nglv2-leq__grid--4 .nglv2-leq__tile:nth-child(2) {
	grid-column: 2;
	grid-row: 1;
}

.nglv2-leq__grid--4 .nglv2-leq__tile:nth-child(3) {
	grid-column: 3;
	grid-row: 1;
}

.nglv2-leq__grid--4 .nglv2-leq__tile:nth-child(4),
.nglv2-leq__grid--3 .nglv2-leq__tile:nth-child(3) {
	grid-column: 2 / span 2;
	grid-row: 2;
}

.nglv2-leq__grid--3 .nglv2-leq__tile:nth-child(2) {
	grid-column: 2 / span 2;
	grid-row: 1;
}

.nglv2-leq__grid--2 .nglv2-leq__tile:nth-child(2) {
	grid-column: 2 / span 2;
	grid-row: 1 / span 2;
}

.nglv2-leq__grid--1 {
	grid-template-rows: 250px;
}

.nglv2-leq__grid--1 .nglv2-leq__tile:nth-child(1) {
	grid-column: 1 / -1;
	grid-row: 1;
}

.nglv2-leq__tile {
	position: relative;
	min-width: 0;
	overflow: hidden;
	border-radius: 18px;
	/* No photo yet: a dark tile with a green glow in the corner and the lab's line icon. */
	background:
		radial-gradient(90% 70% at 100% 0%, rgba(109, 190, 69, 0.16) 0%, rgba(109, 190, 69, 0) 70%),
		linear-gradient(to top, #081a20 0%, #173039 100%);
	isolation: isolate;
}

html:not([dir="rtl"]) .nglv2-leq__tile {
	background:
		radial-gradient(90% 70% at 0% 0%, rgba(109, 190, 69, 0.16) 0%, rgba(109, 190, 69, 0) 70%),
		linear-gradient(to top, #081a20 0%, #173039 100%);
}

.nglv2 .nglv2-leq__img {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nglv2-leq__tile.has-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to top, rgba(5, 28, 34, 0.92) 0%, rgba(5, 28, 34, 0.05) 70%);
}

.nglv2-leq__mark {
	position: absolute;
	inset-block-start: 24px;
	inset-inline-start: 24px;
	width: 56px;
	height: 56px;
	color: rgba(109, 190, 69, 0.55);
}

.nglv2-leq__tile:nth-child(1) .nglv2-leq__mark {
	width: 88px;
	height: 88px;
}

.nglv2 .nglv2-leq__mark .nglv2-icon {
	width: 100%;
	height: 100%;
}

.nglv2-leq__text {
	position: absolute;
	inset-inline: 24px;
	inset-block-end: 24px;
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding-bottom: 3.5px;
}

.nglv2 .nglv2-leq__title {
	font-weight: 400;
	font-size: 18px;
	line-height: 27px;
	color: #fff;
}

.nglv2 .nglv2-leq__area {
	font-size: 9px;
	line-height: 13.5px;
	color: rgba(255, 255, 255, 0.62);
}

@media (max-width: 1023px) {
	/* The first tile across the top, the others two by two. */
	.nglv2-leq__grid,
	.nglv2-leq__grid--1 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		grid-auto-rows: 220px;
	}

	.nglv2-leq__grid .nglv2-leq__tile:nth-child(n) {
		grid-column: auto;
		grid-row: auto;
	}

	.nglv2-leq__grid .nglv2-leq__tile:nth-child(1),
	.nglv2-leq__grid--3 .nglv2-leq__tile:nth-child(n + 2),
	.nglv2-leq__grid--4 .nglv2-leq__tile:nth-child(4) {
		grid-column: 1 / -1;
	}

	.nglv2-leq__grid .nglv2-leq__tile:nth-child(1) {
		grid-row: span 1;
	}
}

@media (max-width: 639px) {
	.nglv2-leq__grid,
	.nglv2-leq__grid--1 {
		grid-template-columns: minmax(0, 1fr);
		grid-auto-rows: 200px;
	}
}

/* ----------------------------------------------------------------------------------------------
 * Accreditations, permits and memberships (inspection 201:12792, metrology 411:9158; both redrawn
 * 2026-10-07, which is why this lives here and not in one page's file)
 *
 * The designer merged the old accreditation block and the memberships block under it into one
 * full-width section: the copy, 64, then the badges. The badge row is 282 tall (32 above and below the
 * drawn 218) and the design spreads four badges and five zero-width rules inside 80 of side padding,
 * so every gap is 30: a rule 30 before the first badge, 60 between two badges with the rule halfway,
 * and a rule 30 after the last. Centring the row rather than spreading it keeps that spacing while
 * staying right with fewer badges than the four drawn. The metrology page is the same section with
 * two badges, which that design spaces 80 apart: the "wide" modifier.
 * ------------------------------------------------------------------------------------------- */

.nglv2-icred {
	margin-top: var(--nglv2-igap);
}

.nglv2-icred__inner {
	display: flex;
	flex-direction: column;
	gap: 64px;
}

.nglv2-icred__copy {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

/* 499 at 1440 as drawn — a maximum, not a width: a translation may need another line. */
.nglv2 .nglv2-icred__title {
	max-width: 499px;
}

.nglv2-icred__badges {
	--nglv2-icred-gap: clamp(30px, 4.1667vw, 60px); /* 60 between two badges at 1440 */
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--nglv2-icred-gap);
	padding-block: 32px;
}

/* Metrology (411:9167): two badges 80 apart, every rule still half a gap out. */
.nglv2-icred--wide .nglv2-icred__badges {
	--nglv2-icred-gap: clamp(40px, 5.5556vw, 80px);
}

.nglv2 .nglv2-icred__badge {
	position: relative;
	flex: 0 0 clamp(128px, 13.8889vw, 200px);
	height: clamp(140px, 15.1389vw, 218px);
}

/* The hairline the design draws in each gap (Line 267: 48 tall, #6dbe45 at 35%). The design also puts
   one at each end of the row; those are the ::after of the first and last badge. */
.nglv2 .nglv2-icred__badge + .nglv2-icred__badge::before,
.nglv2 .nglv2-icred__badge:first-child::before,
.nglv2 .nglv2-icred__badge:last-child::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 1px;
	height: 48px;
	background: rgba(109, 190, 69, 0.35);
	transform: translateY(-50%);
}

/* Both the rule between two badges and the one before the first sit half a gap towards the start. */
.nglv2 .nglv2-icred__badge::before {
	inset-inline-start: calc(var(--nglv2-icred-gap) / -2);
}

.nglv2 .nglv2-icred__badge:last-child::after {
	inset-inline-end: calc(var(--nglv2-icred-gap) / -2);
}

.nglv2-icred__badge a {
	display: block;
	height: 100%;
	border-radius: 12px;
	transition: transform 0.35s var(--nglv2-ease);
}

.nglv2-icred__badge a:hover {
	transform: translateY(-4px);
}

.nglv2-icred__badge a:focus-visible {
	outline: 2px solid var(--nglv2-green);
	outline-offset: -6px;
}

/* The box is the drawn one (200 × 218) and the design fills it with the image, centred (cover): the
   membership and permit badges are a little wider than the box and lose 2px of their ribbon tips at
   each side, as drawn. The ISO/IEC 17020 badge (attachment 2978, 2026-10-11) is cut to the box's shape,
   so it shows whole. The metrology row keeps the whole image: its ISO/IEC 17025 badge is square. */
.nglv2 .nglv2-icred__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nglv2 .nglv2-icred--wide .nglv2-icred__img {
	object-fit: contain;
}

/* Below 768 the row wraps, and a rule at the start of the second line would read as a stray mark. */
@media (max-width: 767px) {
	.nglv2 .nglv2-icred__badge::before,
	.nglv2 .nglv2-icred__badge::after {
		display: none;
	}
}


/* ----------------------------------------------------------------------------------------------
 * Filter chips and page links (Figma: the news hub's 286:11350 and 286:11285, the careers list's
 * 331:13032 and 331:13154; moved from news.css on 2026-10-04). The news hub sets the chips' distance
 * from its head (news.css).
 * ------------------------------------------------------------------------------------------- */

/* Chips: 8 apart, wrapping on narrow screens. */
.nglv2 .nglv2-chips ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.nglv2 .nglv2-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding-inline: 24px;
	border: 1px solid #efefef;
	border-radius: 60px;
	background: #fff;
	font-weight: 600;
	font-size: 11px;
	line-height: 16.5px;
	color: #52636c;
	white-space: nowrap;
	transition: border-color 0.25s, background-color 0.25s, color 0.25s;
}

.nglv2 a.nglv2-chip:hover {
	border-color: var(--nglv2-accent);
	color: var(--nglv2-ink);
}

/* The active chip has no border (68 wide for «همه», as drawn). */
.nglv2 .nglv2-chip.is-active {
	border-width: 0;
	background: var(--nglv2-navy);
	color: var(--nglv2-bg);
}

/* Its label is light on navy, so the hover above (ink on white) would paint it the colour of its own
 * background and the chip would read as empty. It lightens instead. */
.nglv2 a.nglv2-chip.is-active:hover {
	border-color: transparent;
	background: var(--nglv2-navy-2);
	color: var(--nglv2-bg);
}

.nglv2 .nglv2-chip:focus-visible {
	outline: 2px solid var(--nglv2-green);
	outline-offset: 2px;
}

/* Page links (286:11285): 32 under the list. «قبلی» and «بعدی» filled green (pale when there is no
 * page that way), the numbers outlined, the current one filled. */
.nglv2-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 32px;
}

.nglv2 .nglv2-pager__pages {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.nglv2 .nglv2-pager__step,
.nglv2 .nglv2-pager__page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 34px;
	border-radius: 4px;
	transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}

.nglv2 .nglv2-pager__step {
	min-width: 60px;
	padding-inline: 12px;
	background: #22a46f;
	font-weight: 500;
	font-size: 14px;
	line-height: 18px;
	color: #fff;
}

.nglv2 a.nglv2-pager__step:hover {
	background: #1b8a5d;
}

.nglv2 .nglv2-pager__step.is-disabled {
	background: #eaf6ec;
	color: #9cd7a9;
	cursor: default;
}

.nglv2 .nglv2-pager__page {
	min-width: 33px;
	padding-inline: 8px;
	border: 1px solid #bce4c5;
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	color: #22a46f;
}

.nglv2 a.nglv2-pager__page:hover {
	border-color: #22a46f;
}

.nglv2 .nglv2-pager__page.is-current {
	border-color: #22a46f;
	background: #22a46f;
	color: #fff;
}

.nglv2 .nglv2-pager__gap {
	font-family: Inter, var(--nglv2-font);
	font-weight: 500;
	font-size: 12px;
}

.nglv2 :is(.nglv2-pager__step, .nglv2-pager__page):focus-visible {
	outline: 2px solid var(--nglv2-green);
	outline-offset: 2px;
}
