/**
 * NT Projektai – "Apie mus" widgets
 * (NT hero / įvadas / vertybės / procesas / kvietimas – Apie mus).
 *
 * Intro, values, process and CTA build on assets/css/nt-home-section.css.
 * Values below are defaults; the widgets' Style controls override them
 * through the custom properties (or direct selectors for typography).
 */

/* ------------------------------------------------------------------ */
/* Shared buttons                                                      */
/* ------------------------------------------------------------------ */

.nt-about-btn,
.nt-about-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 52px;
	padding: 14px 28px;
	border: 1px solid #1f5d48;
	border-radius: 999px;
	background-color: #1f5d48;
	color: #fff;
	font-family: var(--e-global-typography-secondary-font-family, "Libre Franklin"), sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-align: center;
	text-decoration: none;
	transition:
		background-color 0.3s cubic-bezier(0.25, 0.1, 0.25, 1),
		border-color 0.3s cubic-bezier(0.25, 0.1, 0.25, 1),
		color 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.nt-about-btn:hover,
.nt-about-btn:focus-visible {
	background-color: #164535;
	color: #fff;
	text-decoration: none;
}

/* Beats the theme/kit `a` underline (0,1,1) without touching global styles. */
.nt-about-btn.nt-about-btn,
.nt-about-btn.nt-about-btn:hover,
.nt-about-btn.nt-about-btn:focus-visible {
	text-decoration: none;
}

.nt-about-btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.nt-about-btn__arrow {
	display: block;
	flex: 0 0 auto;
	transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.nt-about-btn:hover .nt-about-btn__arrow,
.nt-about-btn:focus-visible .nt-about-btn__arrow {
	transform: translateX(3px);
}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */

.nt-about-hero {
	--ntah-width: 1300px;
	--ntah-height: 620px;
	--ntah-align: left;
	--ntah-box-margin: 0 auto 0 0;
	--ntah-dir: 90deg;
	--ntah-valign: flex-end;
	--ntah-box-width: 760px;
	--ntah-overlay: #0e1a14;
	--ntah-overlay-opacity: 0.72;
	--ntah-img-pos: center center;
	--ntah-line: #a3b18a;
	--ntah-font-heading: var(--e-global-typography-secondary-font-family, "Libre Franklin"), sans-serif;
	--ntah-font-body: var(--e-global-typography-text-font-family, "Roboto"), sans-serif;
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: var(--ntah-valign);
	width: 100%;
	min-height: var(--ntah-height);
	padding: 96px 20px;
	overflow: hidden;
	background-color: #1f2b25;
	isolation: isolate;
}

.nt-about-hero *,
.nt-about-hero *::before,
.nt-about-hero *::after {
	box-sizing: border-box;
}

.nt-about-hero .nt-about-hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	object-position: var(--ntah-img-pos);
}

.nt-about-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: var(--ntah-overlay);
	opacity: var(--ntah-overlay-opacity);
	pointer-events: none;
}

/* Darkest behind the text, fading towards the open side of the photo. */
.nt-about-hero--gradient .nt-about-hero__overlay {
	background-color: transparent;
	background-image: linear-gradient(
		var(--ntah-dir),
		var(--ntah-overlay) 0%,
		color-mix(in srgb, var(--ntah-overlay) 70%, transparent) 45%,
		color-mix(in srgb, var(--ntah-overlay) 18%, transparent) 100%
	);
}

.nt-about-hero__inner {
	position: relative;
	width: 100%;
	max-width: var(--ntah-width);
	margin: 0 auto;
}

.nt-about-hero__box {
	max-width: var(--ntah-box-width);
	margin: var(--ntah-box-margin);
	text-align: var(--ntah-align);
}

.nt-about-hero .nt-about-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 20px;
	padding: 0;
	color: #fff;
	font-family: var(--ntah-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.nt-about-hero__eyebrow--line::before {
	content: "";
	display: block;
	flex: 0 0 auto;
	width: 40px;
	height: 2px;
	border-radius: 2px;
	background-color: var(--ntah-line);
}

.nt-about-hero .nt-about-hero__title {
	margin: 0 0 20px;
	padding: 0;
	color: #fff;
	font-family: var(--ntah-font-heading);
	font-size: clamp(40px, 4.6vw, 68px);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.02em;
	text-transform: none;
	text-wrap: balance;
}

.nt-about-hero .nt-about-hero__text {
	max-width: 560px;
	margin: var(--ntah-box-margin);
	padding: 0;
	color: rgba(255, 255, 255, 0.86);
	font-family: var(--ntah-font-body);
	font-size: 19px;
	line-height: 1.6;
}

.nt-about-hero .nt-about-hero__box > :last-child {
	margin-bottom: 0;
}

/* ------------------------------------------------------------------ */
/* Intro                                                               */
/* ------------------------------------------------------------------ */

.nt-about-intro {
	--ntai-media-width: 52%;
	--ntai-valign: center;
}

.nt-about-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--ntai-media-width);
	align-items: var(--ntai-valign);
	gap: var(--nth-columns-gap);
}

.nt-about-intro--image-left .nt-about-intro__grid {
	grid-template-columns: var(--ntai-media-width) minmax(0, 1fr);
}

.nt-about-intro--image-left .nt-about-intro__media {
	order: -1;
}

.nt-about-intro--no-image .nt-about-intro__grid {
	grid-template-columns: minmax(0, 1fr);
	max-width: 760px;
}

.nt-about-intro__content {
	min-width: 0;
}

.nt-about-intro .nt-home-section__header {
	margin-bottom: 28px;
}

.nt-about-intro .nt-about-intro__text {
	color: #595c5d;
	font-family: var(--nth-font-body);
	font-size: 17px;
	line-height: 1.7;
}

.nt-about-intro .nt-about-intro__text p {
	margin: 0 0 16px;
	padding: 0;
	color: inherit;
	font: inherit;
}

.nt-about-intro .nt-about-intro__text > :last-child {
	margin-bottom: 0;
}

.nt-about-intro__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 36px;
}

/* ------------------------------------------------------------------ */
/* Values                                                              */
/* ------------------------------------------------------------------ */

.nt-about-values {
	--ntav-cols: 3;
	--ntav-gap: 24px;
	--ntav-align: left;
	--ntav-items: flex-start;
	--ntav-header-align: center;
	--ntav-header-margin: 0 auto;
	--ntav-card-bg: #fff;
	--ntav-card-border-color: #e9e3d8;
	--ntav-card-border-width: 1px;
	--ntav-card-radius: 20px;
	--ntav-icon-color: #2f5e46;
	--ntav-icon-bg: #e7ede4;
	--ntav-icon-size: 26px;
	--ntav-icon-circle: 60px;
	--nth-block-gap: 56px;
}

.nt-about-values .nt-about-values__header {
	max-width: 760px;
	margin: var(--ntav-header-margin);
	margin-bottom: var(--nth-block-gap);
	text-align: var(--ntav-header-align);
}

.nt-about-values .nt-about-values__header .nt-home-section__intro {
	max-width: 640px;
	margin: var(--ntav-header-margin);
}

.nt-about-values .nt-about-values__grid {
	display: grid;
	grid-template-columns: repeat(var(--ntav-cols), minmax(0, 1fr));
	gap: var(--ntav-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Grid rows stretch, so every card in a row has the same height. */
.nt-about-values .nt-about-values__card {
	display: flex;
	flex-direction: column;
	align-items: var(--ntav-items);
	min-width: 0;
	margin: 0;
	padding: 36px 32px 34px;
	border: var(--ntav-card-border-width) solid var(--ntav-card-border-color);
	border-radius: var(--ntav-card-radius);
	background-color: var(--ntav-card-bg);
	box-shadow: 0 1px 2px rgba(38, 41, 42, 0.04), 0 18px 40px -24px rgba(38, 41, 42, 0.16);
	text-align: var(--ntav-align);
}

.nt-about-values__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: var(--ntav-icon-circle);
	height: var(--ntav-icon-circle);
	border-radius: 50%;
	background-color: var(--ntav-icon-bg);
	color: var(--ntav-icon-color);
	line-height: 1;
}

.nt-about-values__icon .ntp-icon {
	display: block;
	width: var(--ntav-icon-size);
	height: var(--ntav-icon-size);
}

.nt-about-values__icon--library i {
	font-size: var(--ntav-icon-size);
	color: inherit;
}

.nt-about-values__icon--library svg {
	display: block;
	width: var(--ntav-icon-size);
	height: var(--ntav-icon-size);
	fill: currentColor;
}

.nt-about-values .nt-about-values__title {
	width: 100%;
	margin: 26px 0 10px;
	padding: 0;
	color: #26292a;
	font-family: var(--nth-font-heading);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.005em;
	text-transform: none;
}

.nt-about-values .nt-about-values__title:first-child {
	margin-top: 0;
}

.nt-about-values .nt-about-values__text {
	width: 100%;
	margin: 0;
	padding: 0;
	color: #595c5d;
	font-family: var(--nth-font-body);
	font-size: 16px;
	line-height: 1.6;
}

/* ------------------------------------------------------------------ */
/* Process                                                             */
/* ------------------------------------------------------------------ */

.nt-about-process {
	--ntap-count: 4;
	--ntap-gap: 32px;
	--ntap-circle: 64px;
	--ntap-circle-bg: #1f5d48;
	--ntap-circle-color: #fff;
	--ntap-line: #c9c1ae;
	--ntap-line-style: dashed;
	--nth-block-gap: 64px;
	background-color: #f7f4ee;
}

.nt-about-process .nt-about-process__header {
	max-width: 760px;
	margin: 0 auto var(--nth-block-gap);
	text-align: center;
}

.nt-about-process .nt-about-process__header .nt-home-section__intro {
	margin: 0 auto;
}

.nt-about-process .nt-about-process__steps {
	display: grid;
	grid-template-columns: repeat(var(--ntap-count), minmax(0, 1fr));
	gap: var(--ntap-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nt-about-process .nt-about-process__step {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}

/* Connector from this circle to the next one (same row on desktop). */
.nt-about-process--line .nt-about-process__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: calc(var(--ntap-circle) / 2 - 1px);
	left: calc(50% + var(--ntap-circle) / 2 + 14px);
	width: calc(100% + var(--ntap-gap) - var(--ntap-circle) - 28px);
	border-top: 2px var(--ntap-line-style) var(--ntap-line);
	pointer-events: none;
}

.nt-about-process .nt-about-process__number {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: var(--ntap-circle);
	height: var(--ntap-circle);
	border-radius: 50%;
	background-color: var(--ntap-circle-bg);
	color: var(--ntap-circle-color);
	font-family: var(--nth-font-heading);
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: lining-nums tabular-nums;
	box-shadow: 0 10px 24px -12px rgba(31, 93, 72, 0.55);
}

.nt-about-process__body {
	min-width: 0;
	margin-top: 26px;
}

.nt-about-process .nt-about-process__title {
	margin: 0 0 10px;
	padding: 0;
	color: #26292a;
	font-family: var(--nth-font-heading);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
}

.nt-about-process .nt-about-process__text {
	max-width: 280px;
	margin: 0 auto;
	padding: 0;
	color: #595c5d;
	font-family: var(--nth-font-body);
	font-size: 16px;
	line-height: 1.6;
}

/* ------------------------------------------------------------------ */
/* CTA                                                                 */
/* ------------------------------------------------------------------ */

.nt-about-cta {
	--ntac-panel-bg: #1f4a3a;
	--ntac-radius: 24px;
	--ntac-media-width: 50%;
	--ntac-min-height: 440px;
	--ntac-img-focus: center center;
	--ntac-mobile-ratio: 16 / 10;
}

.nt-about-cta__box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--ntac-media-width);
	min-height: var(--ntac-min-height);
	overflow: hidden;
	border-radius: var(--ntac-radius);
	background-color: var(--ntac-panel-bg);
	isolation: isolate;
}

.nt-about-cta--image-left .nt-about-cta__box {
	grid-template-columns: var(--ntac-media-width) minmax(0, 1fr);
}

.nt-about-cta--image-left .nt-about-cta__media {
	order: -1;
}

.nt-about-cta--no-image .nt-about-cta__box {
	grid-template-columns: minmax(0, 1fr);
}

.nt-about-cta__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 72px 64px;
}

.nt-about-cta .nt-home-section__eyebrow {
	color: #b9cdb0;
}

.nt-about-cta .nt-home-section__title {
	color: #fff;
}

.nt-about-cta .nt-home-section__intro {
	max-width: 520px;
	color: rgba(255, 255, 255, 0.84);
}

/* The photo fills its half; the text side decides the height. */
.nt-about-cta .nt-about-cta__media {
	position: relative;
	height: auto;
	min-height: 0;
	aspect-ratio: auto;
	border-radius: 0;
	background: #2a4a3d;
}

.nt-about-cta .nt-about-cta__media .nt-home-section__image {
	position: absolute;
	inset: 0;
	height: 100%;
	object-fit: cover;
	object-position: var(--ntac-img-focus);
}

.nt-about-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 36px;
}

.nt-about-cta .nt-about-btn--primary {
	border-color: #fff;
	background-color: #fff;
	color: #1f4a3a;
}

.nt-about-cta .nt-about-btn--primary:hover,
.nt-about-cta .nt-about-btn--primary:focus-visible {
	background-color: #e7ede4;
	color: #164535;
}

.nt-about-cta .nt-about-btn--secondary {
	border-color: rgba(255, 255, 255, 0.55);
	background-color: transparent;
	color: #fff;
}

.nt-about-cta .nt-about-btn--secondary:hover,
.nt-about-cta .nt-about-btn--secondary:focus-visible {
	background-color: rgba(255, 255, 255, 0.12);
	color: #fff;
}

/* ------------------------------------------------------------------ */
/* Responsive (Elementor breakpoints)                                  */
/* ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.nt-about-hero {
		padding: 72px 32px;
	}

	.nt-about-hero .nt-about-hero__text {
		font-size: 18px;
	}

	/* Intro stacks: text first, then the photo at full width. */
	.nt-about-intro .nt-about-intro__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nt-about-intro--image-left .nt-about-intro__media {
		order: 0;
	}

	.nt-about-intro .nt-about-intro__content {
		max-width: 720px;
	}

	.nt-about-values {
		--ntav-cols: 2;
		--ntav-gap: 20px;
		--nth-block-gap: 44px;
	}

	.nt-about-values .nt-about-values__card {
		padding: 32px 28px 30px;
	}

	.nt-about-process {
		--ntap-gap: 40px;
		--nth-block-gap: 48px;
	}

	.nt-about-process .nt-about-process__steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nt-about-process--line .nt-about-process__step:not(:last-child)::after {
		display: none;
	}

	.nt-about-cta__panel {
		padding: 56px 48px;
	}
}

@media (max-width: 767px) {
	.nt-about-hero {
		padding: 56px 20px;
	}

	.nt-about-hero .nt-about-hero__eyebrow {
		margin-bottom: 16px;
		font-size: 13px;
	}

	.nt-about-hero .nt-about-hero__title {
		font-size: 36px;
		line-height: 1.12;
	}

	.nt-about-hero .nt-about-hero__text {
		font-size: 17px;
	}

	/* Text spans the full width here, so darken from the bottom up. */
	.nt-about-hero.nt-about-hero--gradient .nt-about-hero__overlay {
		background-image: linear-gradient(
			0deg,
			var(--ntah-overlay) 0%,
			color-mix(in srgb, var(--ntah-overlay) 75%, transparent) 55%,
			color-mix(in srgb, var(--ntah-overlay) 35%, transparent) 100%
		);
	}

	.nt-about-intro .nt-about-intro__text {
		font-size: 16px;
	}

	.nt-about-intro__actions .nt-about-btn {
		width: 100%;
	}

	.nt-about-values {
		--ntav-cols: 1;
		--ntav-gap: 16px;
		--ntav-icon-circle: 54px;
		--nth-block-gap: 32px;
	}

	.nt-about-values .nt-about-values__card {
		padding: 28px 24px;
	}

	.nt-about-values .nt-about-values__title {
		margin-top: 22px;
		font-size: 19px;
	}

	/* Process becomes a vertical timeline: number on the left, text on the right. */
	.nt-about-process {
		--ntap-gap: 28px;
		--ntap-circle: 52px;
		--nth-block-gap: 36px;
	}

	.nt-about-process .nt-about-process__header {
		text-align: left;
	}

	.nt-about-process .nt-about-process__header .nt-home-section__intro {
		margin: 0;
	}

	.nt-about-process .nt-about-process__steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.nt-about-process .nt-about-process__step {
		flex-direction: row;
		align-items: flex-start;
		gap: 20px;
		text-align: left;
	}

	.nt-about-process--line .nt-about-process__step:not(:last-child)::after {
		display: block;
		top: calc(var(--ntap-circle) + 8px);
		left: calc(var(--ntap-circle) / 2 - 1px);
		width: 0;
		height: calc(100% + var(--ntap-gap) - var(--ntap-circle) - 16px);
		border-top: 0;
		border-left: 2px var(--ntap-line-style) var(--ntap-line);
	}

	.nt-about-process .nt-about-process__number {
		font-size: 19px;
	}

	.nt-about-process__body {
		flex: 1 1 auto;
		margin-top: 0;
		padding-top: calc((var(--ntap-circle) - 26px) / 2);
	}

	.nt-about-process .nt-about-process__title {
		font-size: 19px;
	}

	.nt-about-process .nt-about-process__text {
		max-width: none;
		margin: 0;
	}

	/* CTA: photo on top, text below. */
	.nt-about-cta__box {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.nt-about-cta--image-left .nt-about-cta__box {
		grid-template-columns: minmax(0, 1fr);
	}

	.nt-about-cta .nt-about-cta__media {
		order: -1;
		aspect-ratio: var(--ntac-mobile-ratio);
	}

	.nt-about-cta__panel {
		padding: 40px 24px;
	}

	.nt-about-cta__actions {
		flex-direction: column;
		margin-top: 28px;
	}

	.nt-about-cta__actions .nt-about-btn {
		width: 100%;
	}
}
