/**
 * Global footer ("NT poraštė – Globali" widget in the ElementsKit footer template "NT Footer").
 *
 * Desktop: brand | Meniu | Mūsų paslaugos | Kontaktai + Sekite mus, then the legal bar.
 * Tablet:  brand | contacts, then Meniu | Mūsų paslaugos.
 * Phones:  brand, contacts (always visible), Meniu / Mūsų paslaugos as accordions
 *          (nt-footer.js adds .is-enhanced; without it the lists stay expanded), social, legal bar.
 *
 * Every rule is scoped to .nt-footer, so the header and page content are not affected.
 * Colours, sizes and spacing are Elementor controls that set the --ntf-* variables below.
 */

.nt-footer {
	--ntf-bg: #12382b;
	--ntf-bg-w: 60%;
	--ntf-overlay: 0.88;
	--ntf-bar-bg: rgba(0, 0, 0, 0.18);
	--ntf-heading: #fff;
	--ntf-text: #c3d7cc;
	--ntf-link: #e2ece6;
	--ntf-link-hover: #fff;
	--ntf-accent: #9ccab4;
	--ntf-icon-bg: rgba(156, 202, 180, 0.12);
	--ntf-legal: #a6bfb2;
	--ntf-max: 1300px;
	--ntf-col-gap: 56px;
	--ntf-row-gap: 40px;
	--ntf-logo-w: 150px;
	--ntf-link-gap: 12px;
	--ntf-icon: 18px;
	--ntf-icon-box: 38px;
	--ntf-social: 40px;
	--ntf-divider: rgba(255, 255, 255, 0.12);
	--ntf-divider-w: 1px;
	--ntf-heading-font: var(--e-global-typography-primary-font-family, "Libre Franklin"), sans-serif;
	--ntf-text-font: var(--e-global-typography-text-font-family, "Roboto"), sans-serif;

	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin: 0;
	background-color: var(--ntf-bg);
	color: var(--ntf-text);
	font-family: var(--ntf-text-font);
	font-size: 15px;
	line-height: 1.6;
}

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

/* ---------- Architectural photo: right side, darkened, fading into the background ---------- */

.nt-footer__bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	width: var(--ntf-bg-w);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
	pointer-events: none;
}

.nt-footer__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--ntf-bg);
	opacity: var(--ntf-overlay);
}

/* ---------- Main area ---------- */

.nt-footer__main {
	position: relative;
	padding: 84px 32px 64px;
}

.nt-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 1.25fr);
	grid-template-areas: "brand menu services aside";
	gap: var(--ntf-row-gap) var(--ntf-col-gap);
	max-width: var(--ntf-max);
	margin: 0 auto;
}

.nt-footer__brand {
	grid-area: brand;
	min-width: 0;
}

.nt-footer__group--menu {
	grid-area: menu;
}

.nt-footer__group--services {
	grid-area: services;
}

.nt-footer__aside {
	grid-area: aside;
	display: flex;
	flex-direction: column;
	gap: 32px;
	min-width: 0;
}

.nt-footer__col {
	position: relative;
	min-width: 0;
}

/* Thin vertical lines centred in the column gaps (desktop). */
@media (min-width: 1025px) {
	.nt-footer--dividers .nt-footer__grid > .nt-footer__col:not(.nt-footer__brand)::before {
		content: "";
		position: absolute;
		top: 4px;
		bottom: 0;
		left: calc(var(--ntf-col-gap) / -2);
		border-left: var(--ntf-divider-w) solid var(--ntf-divider);
	}
}

/* ---------- Brand ---------- */

.nt-footer .nt-footer__logo {
	display: inline-block;
	max-width: 100%;
	margin: 0 0 24px;
	line-height: 0;
}

.nt-footer .nt-footer__logo-img {
	display: block;
	width: var(--ntf-logo-w);
	max-width: 100%;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.nt-footer .nt-footer__intro {
	max-width: 34ch;
	margin: 0;
	color: var(--ntf-text);
	font-size: 15px;
	line-height: 1.7;
}

.nt-footer .nt-footer__values {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

.nt-footer .nt-footer__value {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	color: var(--ntf-link);
	font-size: 14.5px;
	line-height: 1.4;
}

.nt-footer__value-icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: var(--ntf-icon-bg);
	color: var(--ntf-accent);
}

/* ---------- Headings ---------- */

.nt-footer .nt-footer__title {
	position: relative;
	margin: 0 0 22px;
	padding: 0 0 14px;
	color: var(--ntf-heading);
	font-family: var(--ntf-heading-font);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.01em;
	text-transform: none;
}

.nt-footer .nt-footer__title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background-color: var(--ntf-accent);
	opacity: 0.8;
}

.nt-footer .nt-footer__title--small {
	margin-bottom: 16px;
	padding-bottom: 0;
	font-size: 15px;
}

.nt-footer .nt-footer__title--small::after {
	display: none;
}

/* The accordion heading is only used on phones (after nt-footer.js runs). */
.nt-footer .nt-footer__title--toggle {
	display: none;
}

/* ---------- Link lists ---------- */

.nt-footer .nt-footer__links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--ntf-link-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nt-footer .nt-footer__links li {
	margin: 0;
	padding: 0;
}

.nt-footer .nt-footer__link {
	display: inline-block;
	color: var(--ntf-link);
	font-size: 15.5px;
	line-height: 1.45;
	text-decoration: none;
	transition: color 0.2s ease;
}

.nt-footer .nt-footer__link:hover,
.nt-footer .nt-footer__link:focus-visible,
.nt-footer .nt-footer__link[aria-current="page"] {
	color: var(--ntf-link-hover);
	text-decoration: underline;
	text-decoration-color: var(--ntf-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

/* ---------- Contacts ---------- */

.nt-footer .nt-footer__contacts {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nt-footer .nt-footer__contact-item {
	margin: 0;
}

.nt-footer .nt-footer__contact-link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	max-width: 100%;
	min-height: 44px;
	color: var(--ntf-link);
	font-size: 15.5px;
	line-height: 1.4;
	text-decoration: none;
	transition: color 0.2s ease;
}

.nt-footer a.nt-footer__contact-link:hover,
.nt-footer a.nt-footer__contact-link:focus-visible {
	color: var(--ntf-link-hover);
}

.nt-footer .nt-footer__contact-text {
	min-width: 0;
	overflow-wrap: anywhere;
}

.nt-footer__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: var(--ntf-icon-box);
	height: var(--ntf-icon-box);
	border-radius: 50%;
	background-color: var(--ntf-icon-bg);
	color: var(--ntf-accent);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.nt-footer__icon svg {
	width: var(--ntf-icon);
	height: var(--ntf-icon);
}

.nt-footer a.nt-footer__contact-link:hover .nt-footer__icon,
.nt-footer a.nt-footer__contact-link:focus-visible .nt-footer__icon {
	background-color: var(--ntf-accent);
	color: var(--ntf-bg);
}

.nt-footer__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- Social ---------- */

.nt-footer .nt-footer__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nt-footer .nt-footer__social-list li {
	margin: 0;
}

.nt-footer .nt-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ntf-social);
	height: var(--ntf-social);
	border: 1px solid var(--ntf-divider);
	border-radius: 50%;
	background-color: var(--ntf-icon-bg);
	color: var(--ntf-link);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.nt-footer .nt-footer__social-link svg {
	width: calc(var(--ntf-social) * 0.42);
	height: calc(var(--ntf-social) * 0.42);
}

.nt-footer .nt-footer__social-link:hover,
.nt-footer .nt-footer__social-link:focus-visible {
	border-color: var(--ntf-accent);
	background-color: var(--ntf-accent);
	color: var(--ntf-bg);
}

/* ---------- Legal bar ---------- */

.nt-footer__bar {
	position: relative;
	border-top: var(--ntf-divider-w) solid var(--ntf-divider);
	background-color: var(--ntf-bar-bg);
	color: var(--ntf-legal);
	font-size: 14px;
	line-height: 1.5;
}

.nt-footer__bar-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 32px;
	max-width: calc(var(--ntf-max) + 64px);
	margin: 0 auto;
	padding: 20px 32px;
}

.nt-footer .nt-footer__copy {
	margin: 0;
	color: var(--ntf-legal);
	font-size: inherit;
}

.nt-footer .nt-footer__legal .nt-footer__links {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 4px 28px;
}

.nt-footer .nt-footer__legal-link {
	color: var(--ntf-legal);
	font-size: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.nt-footer .nt-footer__legal-link:hover,
.nt-footer .nt-footer__legal-link:focus-visible {
	color: var(--ntf-link-hover);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ---------- Focus and editor notices ---------- */

.nt-footer a:focus-visible,
.nt-footer .nt-footer__toggle:focus-visible {
	outline: 2px solid var(--ntf-accent);
	outline-offset: 3px;
	border-radius: 4px;
}

.nt-footer .nt-footer__notice {
	grid-column: 1 / -1;
	margin: 0;
	padding: 8px 12px;
	border: 1px dashed #c9b98f;
	background: #fbf8ef;
	color: #5c4a1a;
	font-size: 13px;
	line-height: 1.4;
}

/* ---------- Tablet: brand | contacts, then the two link groups ---------- */

@media (min-width: 768px) and (max-width: 1024px) {
	.nt-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas:
			"brand aside"
			"menu services";
	}

	.nt-footer__group {
		padding-top: 32px;
		border-top: var(--ntf-divider-w) solid var(--ntf-divider);
	}
}

/* ---------- Phones: compact stack with accordions ---------- */

@media (max-width: 767px) {
	.nt-footer {
		font-size: 15px;
	}

	.nt-footer:not(.nt-footer--bg-mobile) .nt-footer__bg {
		display: none;
	}

	.nt-footer__main {
		padding: 44px 20px 32px;
	}

	/* Contacts directly after the brand, the link groups after them, social links last. */
	.nt-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"brand"
			"contact"
			"menu"
			"services"
			"social";
		row-gap: 0;
	}

	.nt-footer__aside {
		display: contents;
	}

	.nt-footer__contact {
		grid-area: contact;
		margin-top: var(--ntf-row-gap);
		margin-bottom: var(--ntf-row-gap);
	}

	.nt-footer__social {
		grid-area: social;
		margin-top: var(--ntf-row-gap);
	}

	.nt-footer .nt-footer__logo {
		margin-bottom: 18px;
	}

	.nt-footer .nt-footer__intro {
		font-size: 15px;
		line-height: 1.65;
	}

	.nt-footer .nt-footer__values {
		display: none;
	}

	.nt-footer .nt-footer__values--mobile {
		display: flex;
		margin-top: 18px;
	}

	.nt-footer .nt-footer__title {
		margin-bottom: 14px;
		font-size: 17px;
	}

	.nt-footer__contact .nt-footer__title {
		margin-bottom: 10px;
		padding-bottom: 12px;
	}

	.nt-footer .nt-footer__contacts {
		gap: 4px;
	}

	.nt-footer .nt-footer__contact-link {
		gap: 12px;
		font-size: 15px;
	}

	.nt-footer__contact-item--address .nt-footer__contact-link {
		font-size: 14px;
	}

	/* Link groups: thin separators between the rows. */
	.nt-footer__group {
		border-top: var(--ntf-divider-w) solid var(--ntf-divider);
	}

	.nt-footer__group:last-of-type {
		border-bottom: var(--ntf-divider-w) solid var(--ntf-divider);
	}

	.nt-footer__group .nt-footer__title--static {
		margin: 0;
		padding: 16px 0 12px;
	}

	.nt-footer__group .nt-footer__title--static::after {
		display: none;
	}

	.nt-footer__group .nt-footer__links {
		padding-bottom: 14px;
	}

	.nt-footer .nt-footer__group .nt-footer__link {
		display: flex;
		align-items: center;
		min-height: 40px;
		font-size: 15.5px;
	}

	/* Accordion (nt-footer.js): the button heading replaces the plain one; lists open on demand. */
	.nt-footer--accordion.is-enhanced .nt-footer__title--static {
		display: none;
	}

	.nt-footer--accordion.is-enhanced .nt-footer__title--toggle {
		display: block;
		margin: 0;
		padding: 0;
	}

	.nt-footer--accordion.is-enhanced .nt-footer__title--toggle::after {
		display: none;
	}

	.nt-footer--accordion.is-enhanced .nt-footer__group:not(.is-open) .nt-footer__links {
		display: none;
	}

	.nt-footer .nt-footer__toggle,
	.nt-footer .nt-footer__toggle:hover,
	.nt-footer .nt-footer__toggle:focus,
	.nt-footer .nt-footer__toggle:active {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		min-height: 54px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		color: var(--ntf-heading);
		font: inherit;
		letter-spacing: inherit;
		text-align: left;
		text-transform: none;
		cursor: pointer;
	}

	.nt-footer .nt-footer__toggle:focus-visible {
		outline: 2px solid var(--ntf-accent);
		outline-offset: 2px;
	}

	.nt-footer__chevron {
		flex: none;
		width: 20px;
		height: 20px;
		color: var(--ntf-accent);
		transition: transform 0.2s ease;
	}

	.nt-footer__toggle[aria-expanded="true"] .nt-footer__chevron {
		transform: rotate(180deg);
	}

	.nt-footer .nt-footer__social-list {
		gap: 12px;
	}

	.nt-footer__social .nt-footer__title--small {
		margin-bottom: 12px;
	}

	/* Legal bar: two short lines. */
	.nt-footer__bar {
		font-size: 13px;
	}

	.nt-footer__bar-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		padding: 16px 20px 18px;
	}

	.nt-footer .nt-footer__legal .nt-footer__links {
		gap: 2px 20px;
	}

	.nt-footer .nt-footer__legal-link {
		display: inline-flex;
		align-items: center;
		min-height: 32px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nt-footer *,
	.nt-footer *::before,
	.nt-footer *::after {
		transition: none !important;
	}
}
