/* =====================================================================
   TRANSPAKAS

   modern.css is the 2B Group theme's stylesheet, copied unchanged: it
   supplies the warm paper, the navy, the type, the light header, the
   navy footer and the components the inner pages reuse (sv-, kt-,
   m-legal). This file is what is Transpakas's own.

   The brief: light, modern, quiet luxury. That is carried by restraint
   rather than by effects - one ground, one ink, type set large, thin
   rules instead of boxes, a lot of air, and photographs only where they
   show something (the two services). `t-` marks classes that exist
   only here.
   ===================================================================== */

/* =====================================================================
   SHARED
   ===================================================================== */

/* The numbered gutter and its rule are the group site's own signature;
   here every section runs the full container width. */
.m-inner { grid-template-columns: minmax(0, 1fr); border-top: 0 !important; }
.m-inner::before { display: none !important; }
.m-gut { display: none; }
.m-main { border-left: 0; padding-left: 0; }
.tp-page-hero-inner { padding-left: 0; }

.t-wrap { width: min(1320px, 100% - var(--m-pad) * 2); margin-inline: auto; }
.t-sec { padding-block: clamp(5rem, 10vw, 9rem); }
.t-sec + .t-sec { padding-top: 0; }

.t-sec .m-title, .t-partners .m-title, .m-legal .m-title {
	margin: 0; font-size: clamp(2.3rem, 5.2vw, 4.6rem); line-height: .98; letter-spacing: -.045em;
}
.t-partners .m-title, .m-legal .m-title { font-size: clamp(1.8rem, 3.4vw, 2.7rem); }
.m-legal .m-title { margin-bottom: clamp(1.8rem, 3.5vw, 2.6rem); }
/* The quieter half of a two-tone heading - still 3.6:1 on the paper. */
.t-soft { color: rgba(0, 0, 76, .5); }

.t-head { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.t-head--split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; }
.t-head--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.2rem 2rem; }
.t-lead { margin: 0; max-width: 50ch; font-size: clamp(1.05rem, 1.35vw, 1.22rem); line-height: 1.6; color: var(--p-muted); }
@media (max-width: 820px) { .t-head--split { grid-template-columns: minmax(0, 1fr); } }
/* A single long word (Russian, German) used to push a heading wider than
   a narrow phone. Each word sits in its own clipped box for the reveal,
   so the box is held to the line and the word may break inside it. */
.m-title, .m-close-title { overflow-wrap: break-word; }
.m-motion .m-split .m-w, .m-motion .m-split .m-w > span { max-width: 100%; }
.m-motion .m-split .m-w > span { overflow-wrap: anywhere; }
.m-title, .m-split .m-w > span, .t-sv-card h2, .ft-links a { -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 14 5 5; }

.t-link {
	display: inline-flex; align-items: center; gap: .55rem; padding-block: .6rem;
	font: 600 1.02rem/1 Inter, system-ui, sans-serif; color: var(--p-ink); text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
}
.t-link svg { width: 1.05rem; height: 1.05rem; transition: translate .3s ease; }
.t-link:hover svg { translate: 4px 0; }

.t-hero-acts { display: flex; flex-wrap: wrap; gap: .8rem; }
.t-btn--line { color: var(--p-ink); border: 1px solid var(--p-line-2); background: rgba(255, 255, 255, .5); }
.t-btn--line:hover { background: #fff; border-color: var(--p-ink); transform: translateY(-2px); }

/* A row of ruled columns: a small index, a name, a line under it. Used
   for the terminals, the principles and the terminal's figures, so the
   site has one way of listing things. */
.t-cols { margin: 0; padding: 0; list-style: none; display: grid; border-top: 1px solid var(--p-rule); }
.t-cols--5 { grid-template-columns: 1.3fr repeat(4, minmax(0, 1fr)); }
.t-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.t-cols li { display: flex; flex-direction: column; padding: clamp(1.4rem, 2.6vw, 2rem) clamp(1rem, 2vw, 1.8rem) clamp(.5rem, 1vw, 1rem) 0; }
.t-cols li + li { padding-left: clamp(1rem, 2vw, 1.8rem); border-left: 1px solid var(--p-line); }
.t-cols-n { font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); }
.t-cols b { margin-top: clamp(2.2rem, 5vw, 4.5rem); font: 700 clamp(1.4rem, 2.3vw, 2rem)/1.08 "Archivo", Inter, sans-serif; letter-spacing: -.035em; color: var(--p-ink); }
.t-cols-what { margin-top: .7rem; font-size: .98rem; line-height: 1.55; color: var(--p-muted); }
.t-cols li.is-hub b { font-size: clamp(2rem, 3.6vw, 3.2rem); letter-spacing: -.045em; }
.t-cols li.is-hub .t-cols-what { color: var(--p-ink); font-weight: 600; }
@media (max-width: 900px) {
	.t-cols--5, .t-cols--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.t-cols li { border-bottom: 1px solid var(--p-line); padding-bottom: clamp(1.4rem, 2.6vw, 2rem); }
	.t-cols li:nth-child(odd) { padding-left: 0; border-left: 0; }
	.t-cols--5 li.is-hub { grid-column: 1 / -1; }
	.t-cols--5 li:nth-child(even) { padding-left: 0; border-left: 0; }
	.t-cols--5 li:nth-child(odd):not(.is-hub) { padding-left: clamp(1rem, 2vw, 1.8rem); border-left: 1px solid var(--p-line); }
	.t-cols b { margin-top: 1.6rem; }
}
@media (max-width: 480px) {
	.t-cols--4 { grid-template-columns: 1fr; }
	.t-cols--4 li + li { padding-left: 0; border-left: 0; }
}

/* Small mono labels were 10-11px; nothing under 12. */
.kt-depts-k, .m-legal-label, .sv-sub, .sv-contact-label { font-size: .75rem; }
.ft-h { font-size: .75rem !important; }
.ft-logo-tag { font-size: .7rem; }
.m-legal-pairs dt { font-size: .74rem; }

/* One visible focus ring everywhere, for keyboard users. */
:where(a, button, input, textarea, summary):focus-visible { outline: 2px solid var(--p-ink); outline-offset: 3px; border-radius: 6px; }
.m-close :focus-visible, .ft :focus-visible { outline-color: #fff; }

/* Back to top. */
.t-top {
	position: fixed; z-index: 40; right: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem);
	display: grid; place-items: center; width: 3.1rem; height: 3.1rem; border-radius: 50%;
	border: 1px solid var(--p-line-2); background: rgba(252, 250, 247, .92); color: var(--p-ink);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 16px 34px -18px rgba(0, 0, 76, .5); cursor: pointer;
	opacity: 0; visibility: hidden; translate: 0 10px;
	transition: opacity .3s ease, translate .35s cubic-bezier(.2, .7, .2, 1), visibility .3s, background .3s ease, color .3s ease;
}
.t-top svg { width: 1.1rem; height: 1.1rem; rotate: -90deg; }
.t-top.is-on { opacity: 1; visibility: visible; translate: 0 0; }
.t-top:hover { background: var(--p-ink); color: #fff; border-color: var(--p-ink); }

/* =====================================================================
   HEADER
   ===================================================================== */

/* The wordmark beside the 2B mark, tracked the way the group sets
   "GROUP" - the two lock up as the unified company logo. */
.tp-logo-name { letter-spacing: .2em; }
@media (max-width: 420px) { .tp-logo-name { font-size: .82rem; letter-spacing: .14em; } }

/* The current page. The theme's "active" colour is the same navy as
   every other link, so nothing marked it. */
.tp-nav a { position: relative; }
.tp-nav a::after {
	content: ""; position: absolute; left: 50%; bottom: -.55rem; width: 1.4rem; height: 2px; margin-left: -.7rem;
	border-radius: 2px; background: var(--p-ink);
	transform: scaleX(0); transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.tp-nav a:hover::after { transform: scaleX(.6); }
.tp-nav a.is-active::after { transform: none; }
.tp-nav a.is-active { font-weight: 700; }
.tp-mobile-links a.is-active { font-weight: 800; padding-left: 1rem; border-left: 3px solid var(--p-ink); }

/* Call button, phones only: the number is otherwise inside the menu. */
.t-call { display: none; }
@media (max-width: 900px) {
	.t-call { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--p-ink); color: #fff !important; }
	.t-call svg { width: 1.1rem; height: 1.1rem; }
	.tp-header-right { gap: .6rem; }
}
/* The narrowest phones: the bar was 16px wider than the screen and the
   menu button was cut off. */
@media (max-width: 360px) {
	.tp-header-right { gap: .3rem; }
	.t-call { width: 2.4rem; height: 2.4rem; }
	.tp-logo-name { font-size: .68rem; letter-spacing: .06em; }
}
/* Long footer links (the German service names) wrap inside their column. */
.ft-links a { overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }

/* Six languages: the current one as a small button, the rest in a
   sheet under it; in the mobile menu, all six in a row. */
.t-lang { position: relative; }
.t-lang-btn {
	display: inline-flex; align-items: center; gap: .35rem;
	height: 2.35rem; padding: 0 .7rem 0 .8rem;
	border: 1px solid rgba(0, 0, 76, .12); border-radius: 8px;
	background: rgba(255, 255, 255, .6); color: var(--p-ink);
	font: 600 .75rem/1 Inter, system-ui, sans-serif; letter-spacing: .06em;
	cursor: pointer; transition: background .25s ease, border-color .25s ease;
}
.t-lang-btn:hover, .t-lang.is-open .t-lang-btn { background: #fff; border-color: var(--p-line-2); }
.t-lang-btn svg { width: .8rem; height: .8rem; transition: rotate .3s ease; }
.t-lang:hover .t-lang-btn svg, .t-lang:focus-within .t-lang-btn svg, .t-lang.is-open .t-lang-btn svg { rotate: 180deg; }
.t-lang-menu {
	position: absolute; top: calc(100% + .5rem); right: 0; z-index: 20;
	margin: 0; padding: .4rem; list-style: none; min-width: 11rem;
	border: 1px solid var(--p-line); border-radius: 12px;
	background: var(--p-raised); box-shadow: var(--p-shadow);
	opacity: 0; visibility: hidden; translate: 0 -6px;
	transition: opacity .2s ease, translate .25s cubic-bezier(.2, .7, .2, 1), visibility .2s;
}
/* A bridge over the gap, so the pointer can reach the sheet. */
.t-lang-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; }
.t-lang:hover .t-lang-menu, .t-lang:focus-within .t-lang-menu, .t-lang.is-open .t-lang-menu { opacity: 1; visibility: visible; translate: 0 0; }
.t-lang-menu a {
	display: flex; align-items: center; gap: .7rem; min-height: 2.75rem;
	padding: .55rem .65rem; border-radius: 8px;
	color: var(--p-ink) !important; text-decoration: none; transition: background .2s ease;
}
.t-lang-menu a:hover { background: rgba(0, 0, 76, .06); }
.t-lang-menu b { min-width: 1.6rem; font: 600 .75rem/1 Inter, system-ui, sans-serif; letter-spacing: .06em; }
.t-lang-menu span { font-size: .9rem; color: var(--p-muted); }
.t-lang-menu a.is-on { background: var(--p-ink); color: #fff !important; }
.t-lang-menu a.is-on span { color: var(--p-on-ink); }
@media (max-width: 900px) { .tp-header-right .t-lang { display: none; } }
.tb-lang--mobile { flex-wrap: wrap; justify-content: center; max-width: 100%; }
.tb-lang--mobile a { min-width: 2.7rem; }

/* =====================================================================
   HERO - paper, two slow fields of light, the lockup large and centred.
   ===================================================================== */

.t-h {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: 100svh; display: flex; flex-direction: column;
	padding: clamp(6rem, 12vh, 8rem) var(--m-pad) clamp(1.8rem, 4vh, 3rem);
	background: var(--p-paper);
}
.t-h .m-hero-aurora { z-index: -1; }
.t-h-inner { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
/* The lockup is 4.6:1 where the group mark is 2:1, so it takes more of
   the width to carry the same weight. Drawn through the artwork as a
   mask, so it is always exactly the page's ink. */
.t-h-mark {
	margin: 0; width: min(90vw, clamp(340px, 76vw, 1160px)); aspect-ratio: 1198 / 262;
	-webkit-mask: var(--mark-url) center / contain no-repeat; mask: var(--mark-url) center / contain no-repeat;
	background: var(--p-ink);
}
.t-h-tag {
	margin: clamp(2rem, 4.5vh, 3.2rem) 0 0;
	display: flex; align-items: center; justify-content: center; gap: clamp(.9rem, 2vw, 1.5rem);
	font: 500 clamp(.74rem, 1vw, .84rem)/1 "JetBrains Mono", ui-monospace, monospace;
	letter-spacing: .3em; text-transform: uppercase; color: var(--p-muted);
}
.t-h-tag::before, .t-h-tag::after { content: ""; height: 1px; width: clamp(1.5rem, 5vw, 4rem); background: var(--p-line-2); }
.t-h .t-hero-acts { justify-content: center; margin-top: clamp(1.9rem, 3.6vh, 2.7rem); }

@media (max-width: 760px) {
	.t-h-tag { letter-spacing: .14em; font-size: .7rem; }
	.t-h-tag::before, .t-h-tag::after { display: none; }
}

/* =====================================================================
   FRONT PAGE
   ===================================================================== */

/* The statement: centred, large, with the paper around it. */
.t-intro-head { max-width: 62rem; margin: 0 auto clamp(3rem, 6vw, 5.5rem); text-align: center; }
.t-intro-head .m-title { font-size: clamp(2.5rem, 6.4vw, 5.8rem); }
.t-intro-head .t-lead { margin: clamp(1.4rem, 2.6vw, 2.1rem) auto 0; max-width: 54ch; text-wrap: balance; }

/* Services: two photographic panels; the one in use opens wide. */
.t-acc { display: flex; gap: clamp(.75rem, 1.4vw, 1.1rem); height: clamp(32rem, 62vh, 42rem); }
.t-acc-p {
	position: relative; isolation: isolate; overflow: hidden; min-width: 0;
	flex: 1 1 0; display: flex; flex-direction: column; justify-content: space-between;
	padding: clamp(1.4rem, 2.6vw, 2.4rem);
	border-radius: 32px; background: var(--p-ink); color: #fff;
	transition: flex-grow .8s cubic-bezier(.2, .7, .2, 1);
}
.t-acc-p.is-open { flex-grow: 2.4; }
.t-acc-p > img {
	position: absolute; inset: -6% 0; z-index: -2; width: 100%; height: 112%; object-fit: cover;
	scale: var(--z, 1); filter: saturate(.8);
	transition: filter .8s ease;
}
.t-acc-p.is-open > img { filter: none; }
/* The wash: light on the open panel so the photograph reads, heavier on
   the closed one so its name does. */
.t-acc-p::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(to top, rgba(0, 0, 50, .94) 0%, rgba(0, 0, 50, .62) 46%, rgba(0, 0, 50, .2) 100%);
	transition: opacity .8s ease;
}
.t-acc-p::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0;
	background: linear-gradient(100deg, rgba(0, 0, 50, .9) 0%, rgba(0, 0, 50, .55) 48%, rgba(0, 0, 50, 0) 86%);
	transition: opacity .8s ease;
}
.t-acc-p.is-open::before { opacity: .55; }
.t-acc-p.is-open::after { opacity: 1; }

.t-acc-top { display: flex; align-items: center; justify-content: space-between; }
.t-acc-n {
	padding: .65em 1em; border-radius: 99px; background: rgba(255, 255, 255, .14);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .14em; color: #fff;
}
.t-acc-go {
	display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%;
	background: #fff; color: var(--p-ink);
	scale: .82; opacity: .9;
	transition: scale .5s cubic-bezier(.2, .7, .2, 1), rotate .5s cubic-bezier(.2, .7, .2, 1), opacity .3s ease;
}
.t-acc-go svg { width: 1.15rem; height: 1.15rem; }
.t-acc-p.is-open .t-acc-go { scale: 1; opacity: 1; rotate: -45deg; }
.t-acc-go:hover { scale: 1.08 !important; }

.t-acc-body h3 {
	margin: 0; color: #fff !important; text-wrap: balance;
	font: 700 clamp(1.7rem, 3vw, 2.6rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.045em;
	transition: font-size .6s cubic-bezier(.2, .7, .2, 1);
}
.t-acc-p.is-open .t-acc-body h3 { font-size: clamp(2.2rem, 4.4vw, 4rem); }
/* The list takes no room while closed, and is dealt out line by line. */
.t-acc-body ul {
	margin: 0; padding: 0; list-style: none; max-width: 34rem;
	display: grid; grid-template-rows: 0fr; overflow: hidden;
	max-height: 0; opacity: 0;
	transition: max-height .8s cubic-bezier(.2, .7, .2, 1), opacity .3s ease, margin .6s ease;
}
.t-acc-p.is-open .t-acc-body ul { max-height: 26rem; opacity: 1; margin-top: clamp(1.2rem, 2.4vw, 1.9rem); }
.t-acc-body li {
	display: flex; gap: .75rem; align-items: flex-start; padding: .5rem 0;
	font-size: clamp(.95rem, 1.15vw, 1.05rem); line-height: 1.4; color: rgba(255, 255, 255, .9); white-space: nowrap;
	opacity: 0; translate: 0 14px;
	transition: opacity .3s ease, translate .3s ease;
}
.t-acc-p.is-open .t-acc-body li {
	opacity: 1; translate: 0 0;
	transition: opacity .55s ease calc(var(--k) * 60ms + 260ms), translate .7s cubic-bezier(.2, .7, .2, 1) calc(var(--k) * 60ms + 260ms);
}
.t-acc-body li svg { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .12rem; padding: .16rem; border-radius: 50%; background: #fff; color: var(--p-ink); stroke-width: 3; }
.t-acc :focus-visible { outline-color: #fff; }

/* The panels arrive by being uncovered from below. Keyed to the
   section's own `is-on` (set by the motion script), not to the panel:
   an observer never reports a fully clipped element as visible, so a
   panel that hides itself could never find out it had been reached. */
.tp-js .t-acc-p.tp-anim { opacity: 1; transform: none; animation: none; }
.m-motion .m-sec:not(.is-on) .t-acc-p { clip-path: inset(100% 0 0 0 round 32px); }
.m-motion .m-sec.is-on .t-acc-p {
	clip-path: inset(0 0 0 0 round 32px);
	transition: clip-path 1.3s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 160ms + 250ms), flex-grow .8s cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 900px) {
	.t-acc { flex-direction: column; height: auto; }
	.t-acc-p, .t-acc-p.is-open { flex: none; min-height: 30rem; border-radius: 24px; gap: 3rem; }
	.t-acc-p::before { opacity: .55; }
	.t-acc-p::after { opacity: 1; background: linear-gradient(to top, rgba(0, 0, 50, .94) 0%, rgba(0, 0, 50, .7) 55%, rgba(0, 0, 50, .1) 100%); }
	.t-acc-p > img { filter: none; }
	.t-acc-body h3, .t-acc-p.is-open .t-acc-body h3 { font-size: clamp(1.7rem, 6.4vw, 2.4rem); overflow-wrap: anywhere; }
	.t-acc-body ul, .t-acc-p.is-open .t-acc-body ul { max-height: none; opacity: 1; margin-top: 1.2rem; }
	.t-acc-body li { opacity: 1; translate: 0 0; white-space: normal; }
	.t-acc-go, .t-acc-p.is-open .t-acc-go { scale: 1; rotate: -45deg; }
	.m-motion .m-sec .t-acc-p, .m-motion .m-sec.is-on .t-acc-p { clip-path: none; }
}
@media (prefers-reduced-motion: reduce) {
	.t-acc-p, .t-acc-p > img, .t-acc-body ul, .t-acc-body li, .t-acc-go, .t-acc-body h3 { transition: none !important; }
	.m-motion .m-sec .t-acc-p { clip-path: none !important; }
}
/* Partners: a centred title, then two rows of logos drifting in
   opposite directions and fading out at the edges. The artwork is drawn
   for white, so each sits on a white tile; quiet until pointed at. */
.t-partners { padding-block: 0 clamp(5rem, 10vw, 9rem); text-align: center; }
.t-partners .m-title { font-size: clamp(2.3rem, 5.2vw, 4.6rem); }
/* Below 900px the rows above end on a rule; the title needs air under it. */
@media (max-width: 900px) { .t-partners { padding-top: clamp(3.5rem, 10vw, 5rem); } }
.t-partners .tp-trust-strip { margin-top: clamp(2.5rem, 5vw, 4rem); padding: 0; background: transparent !important; border: 0 !important; overflow: visible; }
.t-partners .tp-trust-track-wrap {
	display: grid; gap: clamp(.75rem, 1.2vw, 1rem); padding-block: .5rem;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.t-partners .tp-trust-grid.tp-trust-track { gap: clamp(.75rem, 1.2vw, 1rem); margin: 0; padding: 0; animation-duration: 70s; }
.t-partners .tp-trust-grid.tp-trust-track.is-rev { animation-direction: reverse; animation-duration: 84s; }
.t-partners .tp-trust-card {
	width: clamp(11rem, 15vw, 14rem); height: clamp(5.6rem, 7.5vw, 7rem); padding: 1.1rem 1.7rem;
	background: #fff !important; border: 1px solid rgba(0, 0, 76, .07) !important;
	border-radius: 20px !important; box-shadow: none !important; opacity: 1;
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease, border-color .3s ease;
}
.t-partners .tp-trust-card--wide { width: clamp(15rem, 21vw, 19rem); }
.t-partners .tp-trust-card img { max-height: 40px; filter: grayscale(1) opacity(.62); transition: filter .45s ease, scale .45s cubic-bezier(.2, .7, .2, 1); }
.t-partners .tp-trust-card--lg img { max-height: 52px; }
.t-partners .tp-trust-card:hover { translate: 0 -5px; border-color: rgba(0, 0, 76, .16) !important; box-shadow: 0 22px 44px -26px rgba(0, 0, 76, .45) !important; }
.t-partners .tp-trust-card:hover img { filter: none; scale: 1.06; }
.t-partners .tp-trust-pause {
	position: static; transform: none; margin: clamp(1.5rem, 3vw, 2.2rem) auto 0;
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%;
	border: 1px solid var(--p-line-2); background: transparent; color: var(--p-ink);
	cursor: pointer; transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.t-partners .tp-trust-pause:hover { background: var(--p-ink); border-color: var(--p-ink); color: #fff; }
@media (prefers-reduced-motion: reduce) {
	.t-partners .tp-trust-track-wrap { justify-items: center; }
	.t-partners .tp-trust-card img { filter: none; }
}
/* The closing band is the group theme's (.m-close in modern.css): paper
   deepening into the footer's navy through a duotone photograph. Only
   its fit to this site is set here. */
.t-close .m-close-inner { padding-left: 0; }
/* No rule where the band begins - the point is that the paper melts into it. */
.t-close, .t-close::before, .t-close::after { border-top: 0 !important; box-shadow: none !important; }
.t-partners + .t-close { margin-top: 0 !important; }
/* A low strip: the statement, then the button and the number under it,
   all on the left where the ground is solid navy; the picture keeps the
   right to itself. The navy-and-paper duotone is baked into the file
   (cta-trailers-aerial.jpg), so its lights are already the paper's
   colour and its darks the footer's. */
.t-close.m-close { min-height: 0; padding-top: clamp(7rem, 9vw, 8rem); padding-bottom: clamp(2.25rem, 3.5vw, 3rem); }
.t-close .m-close-shot { filter: none; background-size: cover; background-position: center 8%; }
.t-close .m-close-inner { gap: clamp(1.2rem, 2vw, 1.6rem); }
.t-close.m-close .m-btn--light { padding: .95rem 1.4rem .95rem 1.6rem; font-size: 1rem; }
.t-close .m-close-title { font-size: clamp(2.2rem, 4.4vw, 3.8rem); }
.t-close .t-close-p { margin-top: 1rem; }
/* Paper to navy in one long eased fall across the whole width. The band
   itself is masked away towards its top, so what shows there is the
   page's own paper and not a paper-coloured wash laid over the navy -
   nothing can leak through at the edge, and no line shows where one
   ends and the other begins. */
.t-close.m-close {
	background: var(--p-ink);
	-webkit-mask-image: linear-gradient(180deg, transparent 0, rgba(0, 0, 0, .03) .5rem, rgba(0, 0, 0, .12) 1.2rem, rgba(0, 0, 0, .26) 2rem, rgba(0, 0, 0, .43) 2.9rem, rgba(0, 0, 0, .6) 3.8rem, rgba(0, 0, 0, .75) 4.7rem, rgba(0, 0, 0, .87) 5.6rem, rgba(0, 0, 0, .95) 6.5rem, #000 7.6rem);
	mask-image: linear-gradient(180deg, transparent 0, rgba(0, 0, 0, .03) .5rem, rgba(0, 0, 0, .12) 1.2rem, rgba(0, 0, 0, .26) 2rem, rgba(0, 0, 0, .43) 2.9rem, rgba(0, 0, 0, .6) 3.8rem, rgba(0, 0, 0, .75) 4.7rem, rgba(0, 0, 0, .87) 5.6rem, rgba(0, 0, 0, .95) 6.5rem, #000 7.6rem);
	/* The footer is laid over the band's last two pixels, so the seam
	   between them is the footer's own solid navy. */
	margin-bottom: -2px !important;
}
.t-close.m-close::after { display: none; }
.t-close + footer { position: relative; z-index: 1; }
/* Into the footer, and a navy ground under the statement that thins out
   to the right, where the picture is left to show. */
.t-close.m-close::before {
	background:
		linear-gradient(180deg, rgba(0, 0, 76, 0) 40%, rgba(0, 0, 76, .3) 60%, rgba(0, 0, 76, .68) 80%, rgba(0, 0, 76, .92) 93%, rgb(0, 0, 76) 100%),
		linear-gradient(90deg, rgb(0, 0, 76) 0%, rgba(0, 0, 76, .97) 24%, rgba(0, 0, 76, .86) 36%, rgba(0, 0, 76, .66) 48%, rgba(0, 0, 76, .5) 62%, rgba(0, 0, 76, .44) 100%);
}
@media (max-width: 860px) {
	.t-close.m-close { padding-top: 7.5rem; }
	.t-close.m-close::before { background: linear-gradient(180deg, rgba(0, 0, 76, .45) 0%, rgba(0, 0, 76, .82) 55%, rgb(0, 0, 76) 100%); }
}
/* Pages that end without the band (fuel, contacts) met the footer on a
   hard line. They get the same eased fall from paper to navy, as a
   plain strip above the footer. */
:not(.t-close) + footer.wp-block-template-part::before {
	content: ""; display: block; height: clamp(5rem, 9vw, 7.5rem); margin-bottom: -1px;
	background: linear-gradient(180deg, rgba(0, 0, 76, 0) 0, rgba(0, 0, 76, .03) 7%, rgba(0, 0, 76, .12) 16%, rgba(0, 0, 76, .26) 26%, rgba(0, 0, 76, .43) 38%, rgba(0, 0, 76, .6) 50%, rgba(0, 0, 76, .75) 62%, rgba(0, 0, 76, .87) 74%, rgba(0, 0, 76, .95) 86%, rgb(0, 0, 76) 100%);
}
.t-close-p { margin: 1.3rem 0 0; max-width: 44ch; font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.6; color: rgba(255, 255, 255, .8); }
.t-partners { padding-bottom: clamp(2rem, 4vw, 3.5rem); }
/* =====================================================================
   PASLAUGOS (its own page) - a centred title and jump links, then two
   blocks: the photograph beside a white card (name, one sentence, two
   figures, call to action), and what the service covers as a row of
   tiles under them. The second block mirrors the first.
   ===================================================================== */

.tp-page-hero--services { text-align: center; padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.tp-page-hero--services .wp-block-post-title { font-size: clamp(3rem, 9vw, 7.5rem) !important; }
.tp-page-hero--services .tp-page-hero-sub { margin-inline: auto; text-wrap: balance; }

.t-sv { --g: clamp(.9rem, 1.6vw, 1.25rem); padding-top: clamp(1rem, 2vw, 2rem); padding-bottom: clamp(5rem, 10vw, 9rem); }
.t-sv .t-ct-nav svg { rotate: 90deg; }
.t-sv-row { margin-top: clamp(3.5rem, 7vw, 6rem); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--g); scroll-margin-top: 6rem; }
.t-sv-row + .t-sv-row { margin-top: clamp(5rem, 10vw, 8.5rem); }
.t-sv-row:nth-of-type(even) .t-sv-photo { order: 2; }

/* The photograph, in its own colours; it settles as the page scrolls. */
.t-sv-photo { position: relative; grid-column: span 7; margin: 0; min-height: clamp(24rem, 38vw, 34rem); border-radius: 32px; overflow: hidden; background: var(--p-raised); }
.t-sv-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; scale: var(--z, 1); will-change: scale; }

.t-sv-card {
	grid-column: span 5; display: flex; flex-direction: column; align-items: flex-start;
	padding: clamp(1.8rem, 3.2vw, 2.8rem); border-radius: 32px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
}
.t-sv-n { font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); }
.t-sv-card h2 { margin: clamp(1.4rem, 2.6vw, 2.2rem) 0 0; font: 700 clamp(2.1rem, 3.7vw, 3.4rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.045em; color: var(--p-ink); text-wrap: balance; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
.t-sv-lead { margin: clamp(1rem, 1.8vw, 1.4rem) 0 clamp(1.8rem, 3vw, 2.6rem); max-width: 44ch; font-size: clamp(1.05rem, 1.3vw, 1.18rem); line-height: 1.6; color: var(--p-muted); }
.t-sv-figs { width: 100%; margin: auto 0 0; padding-top: clamp(1.4rem, 2.6vw, 2rem); border-top: 1px solid var(--p-line); display: grid; grid-template-columns: fit-content(60%) minmax(0, 1fr); gap: 1rem clamp(1.2rem, 3vw, 2.8rem); }
.t-sv-figs dt { font: 700 clamp(1.7rem, 2.7vw, 2.4rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.045em; color: var(--p-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.t-sv-figs dd { margin: .55rem 0 0; font-size: .9rem; line-height: 1.35; color: var(--p-muted); }
.t-sv-card .m-btn { margin-top: clamp(1.6rem, 3vw, 2.2rem); }

/* What it covers: one tile per line, the last row stretched to fill. */
.t-sv-items { order: 3; grid-column: 1 / -1; margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: var(--g); }
.t-sv-items li {
	flex: 1 1 calc((100% - var(--g) * (var(--per) - 1)) / var(--per)); min-width: 0;
	display: flex; align-items: center; gap: .9rem;
	padding: clamp(1.1rem, 1.8vw, 1.4rem) clamp(1.1rem, 1.8vw, 1.5rem); border-radius: 22px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	font: 600 clamp(.98rem, 1.1vw, 1.05rem)/1.35 Inter, system-ui, sans-serif; color: var(--p-ink);
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}
.t-sv-items li:hover { translate: 0 -4px; box-shadow: 0 24px 46px -30px rgba(0, 0, 76, .4); }
.t-sv-items svg { flex: none; width: 2rem; height: 2rem; padding: .5rem; border-radius: 50%; background: var(--p-ink); color: #fff; stroke-width: 3; }

/* Four to a row is too tight for the longer lines below 1180px. */
@media (max-width: 1180px) { .t-sv-items li { flex-basis: calc((100% - var(--g) * 2) / 3); } }
@media (max-width: 1000px) {
	.t-sv-photo, .t-sv-card { grid-column: 1 / -1; border-radius: 24px; }
	.t-sv-row:nth-of-type(even) .t-sv-photo { order: 0; }
	.t-sv-photo { min-height: 0; aspect-ratio: 4 / 3; }
	.t-sv-items li { flex-basis: calc((100% - var(--g)) / 2); }
}
@media (max-width: 600px) { .t-sv-items li { flex-basis: 100%; } }
/* =====================================================================
   APIE MUS
   ===================================================================== */

.t-ab-hero { background: var(--p-paper); padding: clamp(9rem, 20vh, 13rem) 0 clamp(1rem, 3vw, 2rem); text-align: center; }
.t-ab-hero .t-h-tag { margin-top: 0; }
.t-ab-h1 { margin: clamp(1.6rem, 3vw, 2.4rem) auto 0; max-width: 18ch; text-wrap: balance; font: 700 clamp(2.5rem, 6.2vw, 5.6rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.05em; color: var(--p-ink); }
.t-ab-sub { margin: clamp(1.4rem, 2.6vw, 2.1rem) auto 0; max-width: 50ch; text-wrap: balance; font-size: clamp(1.05rem, 1.35vw, 1.22rem); line-height: 1.6; color: var(--p-muted); }

/* Where / what / how: three cards, each a short list. */
.t-ab-text { padding-top: clamp(3rem, 6vw, 5rem); }
.t-facts3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.t-facts3 article {
	padding: clamp(1.6rem, 3vw, 2.6rem); border-radius: 28px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}
.t-facts3 article:hover { translate: 0 -5px; box-shadow: 0 26px 50px -32px rgba(0, 0, 76, .4); }
.t-facts3-ico { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--p-ink); color: #fff; }
.t-facts3-ico svg { width: 1.3rem; height: 1.3rem; stroke-width: 1.8; }
.t-facts3 h2 { margin: clamp(1.6rem, 3vw, 2.4rem) 0 0; font: 700 clamp(1.5rem, 2.4vw, 2rem)/1.1 "Archivo", Inter, sans-serif; letter-spacing: -.035em; color: var(--p-ink); }
.t-facts3 ul { margin: clamp(1rem, 2vw, 1.4rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--p-line); }
.t-facts3 li { position: relative; padding: .85rem 0 .85rem 1.5rem; border-bottom: 1px solid var(--p-line); font-size: 1.05rem; line-height: 1.45; color: var(--p-ink-2); }
.t-facts3 li:last-child { border-bottom: 0; padding-bottom: 0; }
.t-facts3 li::before { content: ""; position: absolute; left: 0; top: 1.45rem; width: .5rem; height: .5rem; border-radius: 50%; background: var(--p-ink); }
@media (max-width: 900px) { .t-facts3 { grid-template-columns: 1fr; } .t-facts3 article { border-radius: 22px; } }
/* The full account as four tiles: photograph, navy statement, and the
   two paragraphs. */
.t-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.t-mo { position: relative; overflow: hidden; margin: 0; border-radius: 32px; }

.t-mo--photo { grid-column: span 7; min-height: clamp(22rem, 38vw, 32rem); background: var(--p-raised); }
.t-mo--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; scale: var(--z, 1); will-change: scale; }
.t-mo--photo figcaption {
	position: absolute; left: clamp(1rem, 2vw, 1.5rem); bottom: clamp(1rem, 2vw, 1.5rem);
	display: inline-flex; align-items: center; gap: .55rem; padding: .75em 1.15em; border-radius: 99px;
	background: rgba(252, 250, 247, .94); color: var(--p-ink);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	font: 600 .9rem/1 Inter, system-ui, sans-serif;
}
.t-mo--photo figcaption svg { width: 1rem; height: 1rem; }

.t-mo--ink {
	grid-column: span 5; isolation: isolate;
	display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 2rem;
	padding: clamp(1.8rem, 3.2vw, 2.8rem); color: #fff;
	background: linear-gradient(155deg, #10107A, var(--p-ink) 62%);
}
.t-mo--ink::before {
	content: ""; position: absolute; z-index: -1; right: -14rem; top: -16rem; width: 36rem; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(circle, rgba(166, 166, 217, .34), transparent 62%); pointer-events: none;
	animation: m-drift-b 34s ease-in-out infinite;
}
.t-mo-mark { width: 3.4rem; height: 3.4rem; filter: brightness(0) invert(1); opacity: .9; }
.t-mo--ink p { margin: 0; font: 600 clamp(1.35rem, 2.1vw, 1.9rem)/1.3 "Archivo", Inter, sans-serif; letter-spacing: -.025em; color: #fff; text-wrap: pretty; }
.t-mo--ink :focus-visible { outline-color: #fff; }

.t-mo--text {
	grid-column: span 6; padding: clamp(1.8rem, 3.2vw, 2.8rem);
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}
.t-mo--text:hover { translate: 0 -5px; box-shadow: 0 26px 50px -32px rgba(0, 0, 76, .4); }
.t-mo--text header { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.t-mo-ico { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--p-ink); color: #fff; }
.t-mo-ico svg { width: 1.3rem; height: 1.3rem; stroke-width: 1.8; }
.t-mo-n { font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); }
.t-mo--text p { margin: 0; font-size: clamp(1.06rem, 1.3vw, 1.2rem); line-height: 1.72; color: var(--p-ink-2); }

@media (max-width: 900px) {
	.t-mo, .t-mo--photo, .t-mo--ink, .t-mo--text { grid-column: 1 / -1; border-radius: 24px; }
	.t-mo--photo { min-height: 0; aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) { .t-mo--ink::before { animation: none; } }
/* The terminal's figures: the same ruled row, with the numbers large. */
.t-tiles { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--p-rule); }
.t-tiles li { display: flex; flex-direction: column; padding: clamp(1.4rem, 2.6vw, 2rem) clamp(1rem, 2vw, 1.8rem) 0 0; }
.t-tiles li + li { padding-left: clamp(1rem, 2vw, 1.8rem); border-left: 1px solid var(--p-line); }
.t-tiles b { font: 700 clamp(2.4rem, 4.6vw, 4rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.05em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.t-tiles small { margin-left: .18em; font-size: .4em; letter-spacing: 0; color: var(--p-muted); }
.t-tiles span { margin-top: clamp(1.2rem, 2.4vw, 2rem); font-size: .95rem; line-height: 1.45; color: var(--p-muted); }
@media (max-width: 1000px) {
	.t-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.t-tiles li { padding-bottom: clamp(1.4rem, 2.6vw, 2rem); border-bottom: 1px solid var(--p-line); }
	.t-tiles li:nth-child(odd) { padding-left: 0; border-left: 0; }
}
.t-infra2 + .m-legal { padding-top: 0; }

/* =====================================================================
   KONTAKTAI - a centred title, jump links, then the two offices as two
   separate blocks (city, address, people, map), then the form beside
   the general phone and e-mail.
   ===================================================================== */

.tp-page-hero--contacts { text-align: center; padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.tp-page-hero--contacts .wp-block-post-title { font-size: clamp(3rem, 9vw, 7.5rem) !important; }
.tp-page-hero--contacts .tp-page-hero-sub { margin-inline: auto; text-wrap: balance; }

.t-ct { padding-top: clamp(1rem, 2vw, 2rem); padding-bottom: clamp(4rem, 8vw, 7rem); }
.t-ct-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.t-ct-nav a {
	display: inline-flex; align-items: center; gap: .6rem; padding: .9rem 1.4rem; border-radius: 99px;
	border: 1px solid var(--p-line-2); background: var(--p-raised); color: var(--p-ink); text-decoration: none;
	font: 600 1rem/1 Inter, system-ui, sans-serif; transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.t-ct-nav svg { width: 1.05rem; height: 1.05rem; }
.t-ct-nav a:hover { background: var(--p-ink); border-color: var(--p-ink); color: #fff; }

.t-ct-city { margin-top: clamp(4rem, 8vw, 7rem); padding-top: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--p-rule); scroll-margin-top: 5rem; }
.t-ct-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; }
.t-ct-n { display: block; font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); }
.t-ct-head h2 { margin: clamp(1rem, 2vw, 1.6rem) 0 0; font: 700 clamp(3.2rem, 9vw, 8rem)/.9 "Archivo", Inter, sans-serif; letter-spacing: -.06em; color: var(--p-ink); }
.t-ct-addr p { margin: 0 0 clamp(1.2rem, 2.2vw, 1.7rem); font: 600 clamp(1.25rem, 2vw, 1.7rem)/1.3 "Archivo", Inter, sans-serif; letter-spacing: -.02em; color: var(--p-ink); }
.t-ct-addr small { display: block; margin-top: .5rem; font: 400 1rem/1.5 Inter, system-ui, sans-serif; letter-spacing: 0; color: var(--p-muted); }
.t-ct-addr .m-btn svg { width: 1rem; height: 1rem; }

.t-ct-grid { margin-top: clamp(2.5rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(.9rem, 1.6vw, 1.25rem); align-items: stretch; }
.t-ct-people { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); align-content: start; }
.t-ct-people li {
	display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem 1rem; align-items: center;
	padding: clamp(1.3rem, 2.4vw, 1.9rem); border-radius: 24px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease;
}
.t-ct-people li:hover { translate: 0 -4px; box-shadow: 0 24px 46px -30px rgba(0, 0, 76, .4); }
.t-ct-av { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--p-ink); color: #fff; font: 700 1.25rem/1 "Archivo", Inter, sans-serif; }
.t-ct-av svg { width: 1.25rem; height: 1.25rem; stroke-width: 1.8; }
.t-ct-who b { display: block; font: 700 1.25rem/1.15 "Archivo", Inter, sans-serif; letter-spacing: -.025em; color: var(--p-ink); }
.t-ct-who small { display: block; margin-top: .25rem; font-size: .92rem; color: var(--p-muted); }
.t-ct-links { grid-column: 1 / -1; display: grid; gap: .1rem; padding-top: .9rem; border-top: 1px solid var(--p-line); }
.t-ct-links a { display: flex; align-items: center; gap: .6rem; padding: .45rem 0; color: var(--p-ink); text-decoration: none; font: 600 .98rem/1.3 Inter, system-ui, sans-serif; overflow-wrap: anywhere; }
.t-ct-links a + a { font-weight: 500; font-size: .9rem; color: var(--p-ink-2); }
.t-ct-links svg { flex: none; width: 1rem; height: 1rem; color: var(--p-muted); }
.t-ct-links a:hover { text-decoration: underline; text-underline-offset: 3px; }
.t-ct-map { min-height: 22rem; border-radius: 24px; overflow: hidden; border: 1px solid rgba(0, 0, 76, .08); background: #fff; }
.t-ct-map iframe { display: block; width: 100%; height: 100%; min-height: 22rem; border: 0; }
/* Two people: one column beside a wider map. */
#klaipeda .t-ct-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
#klaipeda .t-ct-people { grid-template-columns: 1fr; }

.t-ct-write { margin-top: clamp(5rem, 10vw, 9rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.t-ct-write .m-title { margin: 0; font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: .98; }
.t-ct-write .t-lead { margin: clamp(1.2rem, 2.2vw, 1.8rem) 0 clamp(1.8rem, 3.5vw, 2.8rem); }
.t-ct-big { display: block; width: max-content; max-width: 100%; padding: .35rem 0; font: 700 clamp(1.4rem, 2.4vw, 2rem)/1.2 "Archivo", Inter, sans-serif; letter-spacing: -.03em; color: var(--p-ink); text-decoration: none; overflow-wrap: anywhere; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size .4s cubic-bezier(.2, .7, .2, 1); }
.t-ct-big:hover { background-size: 100% 2px; }
.t-ct .kt-form-card { border-radius: 32px; }

/* After sending, the page lands on the form, where the result is. */
#tp-form { scroll-margin-top: 6.5rem; }
.kt-note { font-weight: 500; border: 1px solid currentColor; }
.kt-field label { color: var(--p-ink-2); }

@media (max-width: 900px) {
	.t-ct-head, .t-ct-grid, #klaipeda .t-ct-grid, .t-ct-write { grid-template-columns: 1fr; }
	.t-ct-people { grid-template-columns: 1fr; }
	.t-ct-map, .t-ct-map iframe { min-height: 18rem; }
}
/* =====================================================================
   KURO KAINA - the notice beside the current surcharge, three steps,
   the formula with its example, and the history as a chart with the
   monthly tables folded under it.
   ===================================================================== */

.tp-page-hero--fuel { text-align: center; padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.tp-page-hero--fuel .wp-block-post-title { font-size: clamp(3rem, 9vw, 7.5rem) !important; }
.tp-page-hero--fuel .tp-page-hero-sub { margin-inline: auto; text-wrap: balance; }
.t-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.t-fu { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(5rem, 10vw, 9rem); }
.t-fu-sec { margin-top: clamp(5rem, 10vw, 9rem); }
.t-fu-sec .m-title { margin: 0; font-size: clamp(2.1rem, 4.6vw, 4rem); line-height: 1; }

.t-fu-k { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .8rem; font: 500 .78rem/1.3 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--p-muted); }
.t-fu-badge { padding: .5em .85em; border-radius: 99px; background: var(--p-ink); color: #fff; letter-spacing: .14em; }
.t-fu-big { margin: clamp(1.6rem, 3.5vw, 3rem) 0 0; font: 700 clamp(3.6rem, 8.5vw, 7.5rem)/.9 "Archivo", Inter, sans-serif; letter-spacing: -.06em; color: inherit; font-variant-numeric: tabular-nums; }
.t-fu-big small { margin-left: .08em; font-size: .42em; letter-spacing: -.02em; opacity: .7; }
.t-fu-cap { margin: .9rem 0 0; font-size: 1.05rem; color: var(--p-muted); }
.t-fu-strong { margin: clamp(1.4rem, 2.6vw, 2rem) 0 0; padding-top: clamp(1.4rem, 2.6vw, 2rem); border-top: 1px solid var(--p-line); font: 600 clamp(1.05rem, 1.4vw, 1.25rem)/1.4 Inter, system-ui, sans-serif; color: var(--p-ink); }
.t-fu-note { margin: .7rem 0 0; max-width: 52ch; font-size: 1rem; line-height: 1.6; color: var(--p-muted); }

.t-fu-top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.t-fu-notice, .t-fu-now { border-radius: 32px; padding: clamp(1.8rem, 3.4vw, 3rem); }
.t-fu-notice { background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08); color: var(--p-ink); }
.t-fu-now {
	position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; color: #fff;
	background: linear-gradient(155deg, #10107A, var(--p-ink) 62%);
}
.t-fu-now::before {
	content: ""; position: absolute; z-index: -1; right: -14rem; top: -16rem; width: 36rem; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(circle, rgba(166, 166, 217, .34), transparent 62%); pointer-events: none;
	animation: m-drift-b 34s ease-in-out infinite;
}
.t-fu-now .t-fu-k, .t-fu-now .t-fu-cap { color: var(--p-on-ink); }
.t-fu-now .t-fu-note { margin-top: clamp(1.4rem, 2.6vw, 2rem); color: rgba(255, 255, 255, .78); }
.t-fu-acts { margin-top: auto; padding-top: clamp(1.6rem, 3vw, 2.4rem); display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.t-fu-acts .m-btn svg { width: 1rem; height: 1rem; }
.t-fu-tel { display: inline-flex; align-items: center; gap: .5rem; color: #fff; text-decoration: none; font: 600 1rem/1 Inter, system-ui, sans-serif; }
.t-fu-tel svg { width: 1rem; height: 1rem; color: var(--p-on-ink); }
.t-fu-now :focus-visible { outline-color: #fff; }

.t-fu-formula {
	margin-top: clamp(3.5rem, 7vw, 6rem); padding: clamp(1.8rem, 3.4vw, 3rem);
	display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start;
	border-radius: 32px; background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
}
.t-fu-code { margin: clamp(1.2rem, 2.4vw, 1.8rem) 0 0; font: 600 clamp(1.05rem, 1.7vw, 1.5rem)/1.6 "JetBrains Mono", ui-monospace, monospace; letter-spacing: -.02em; color: var(--p-ink); }
.t-fu-notes { margin: clamp(1.4rem, 2.6vw, 2rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--p-line); }
.t-fu-notes li { padding: .7rem 0; border-bottom: 1px solid var(--p-line); font-size: .98rem; line-height: 1.5; color: var(--p-muted); }
.t-fu-ex { margin: 0; }
.t-fu-ex > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--p-line); }
.t-fu-ex > div:first-of-type { margin-top: clamp(1.2rem, 2.4vw, 1.8rem); border-top: 1px solid var(--p-line); }
.t-fu-ex dt { font-size: 1rem; color: var(--p-muted); }
.t-fu-ex dd { margin: 0; font: 700 1.15rem/1 "Archivo", Inter, sans-serif; letter-spacing: -.02em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.t-fu-ex > div.is-result { margin-top: .8rem; padding: 1.1rem 1.3rem; border: 0; border-radius: 18px; background: var(--p-ink); }
.t-fu-ex > div.is-result dt { color: var(--p-on-ink); }
.t-fu-ex > div.is-result dd { color: #fff; font-size: 1.6rem; }
.t-fu-src { margin: 1.2rem 0 0; font-size: .88rem; line-height: 1.5; color: var(--p-muted); }
.t-fu-src a { color: var(--p-ink); text-underline-offset: 3px; }

/* The chart: one bar per month, growing from the floor as it arrives. */
.t-fu-chart { position: relative; padding: clamp(1.6rem, 3vw, 2.6rem); border-radius: 32px; background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08); }
.t-fu-chart-y { position: absolute; top: clamp(1.4rem, 2.6vw, 2.2rem); left: clamp(1.6rem, 3vw, 2.6rem); font: 700 clamp(1.4rem, 2.4vw, 2rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.04em; color: var(--p-ink); }
.t-fu-bars { display: flex; align-items: flex-end; gap: clamp(.4rem, 1.4vw, 1.4rem); height: clamp(15rem, 28vw, 22rem); padding-top: 3.5rem; }
.t-fu-bar { flex: 1 1 0; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: .6rem; }
.t-fu-bar i { display: block; width: 100%; max-width: 5rem; height: var(--h); border-radius: 12px 12px 4px 4px; background: rgba(0, 0, 76, .16); transform-origin: bottom; transition: background .3s ease; }
.t-fu-bar.is-now i { background: var(--p-ink); }
.t-fu-bar:hover i { background: var(--p-ink); }
.t-fu-bar b { font: 600 clamp(.7rem, 1vw, .9rem)/1 Inter, system-ui, sans-serif; color: var(--p-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.t-fu-bar span { font: 500 .74rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--p-muted); }
.tp-js .t-fu-chart .t-fu-bar i { transform: scaleY(0); }
.tp-js .t-fu-chart .t-fu-bar b { opacity: 0; }
.tp-js .t-fu-chart.in-view .t-fu-bar i { transform: none; transition: transform 1s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 70ms + 200ms), background .3s ease; }
.tp-js .t-fu-chart.in-view .t-fu-bar b { opacity: 1; transition: opacity .5s ease calc(var(--i) * 70ms + 800ms); }

/* Year tabs, and one set of bars on show at a time. */
.t-fu-chart-y { display: none; }
.t-fu-tabs { position: absolute; top: clamp(1.2rem, 2.4vw, 2rem); left: clamp(1.6rem, 3vw, 2.6rem); display: inline-flex; gap: 2px; padding: 4px; border-radius: 99px; background: rgba(0, 0, 76, .06); }
.t-fu-tabs button {
	padding: .6em 1.15em; border: 0; border-radius: 99px; background: none; cursor: pointer;
	font: 700 .95rem/1 "Archivo", Inter, sans-serif; letter-spacing: -.01em; color: var(--p-muted);
	transition: background .3s ease, color .3s ease;
}
.t-fu-tabs button:hover { color: var(--p-ink); }
.t-fu-tabs button.is-on { background: var(--p-ink); color: #fff; }
.t-fu-bars { display: none; }
.t-fu-bars.is-on { display: flex; }
/* Switching years replays the growth. */
.t-fu-bars.is-on .t-fu-bar i { animation: t-grow 1s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 55ms) both; }
.tp-js .t-fu-chart.in-view .t-fu-bar i { transform: none; transition: background .3s ease; }
.tp-js .t-fu-chart:not(.in-view) .t-fu-bars.is-on .t-fu-bar i { animation-play-state: paused; }
@keyframes t-grow { from { transform: scaleY(0); } to { transform: none; } }
/* The month's price, shown over the bar being pointed at. */
.t-fu-bar { position: relative; }
.t-fu-bar em {
	position: absolute; left: 50%; bottom: calc(var(--h) * .86 + 4.2rem); translate: -50% 6px; z-index: 2;
	padding: .55em .8em; border-radius: 10px; background: var(--p-ink); color: #fff; white-space: nowrap;
	font: 600 .78rem/1 Inter, system-ui, sans-serif; font-style: normal; font-variant-numeric: tabular-nums;
	opacity: 0; pointer-events: none; transition: opacity .25s ease, translate .3s cubic-bezier(.2, .7, .2, 1);
}
.t-fu-bar:hover em { opacity: 1; translate: -50% 0; }
.t-fu-bar:hover b { opacity: 0 !important; }
.t-fu-bars { padding-top: 5rem; }
@media (prefers-reduced-motion: reduce) { .t-fu-bars.is-on .t-fu-bar i { animation: none; } }

.t-fu-year { margin-top: 1rem; }
.t-fu-year summary {
	display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none;
	padding: clamp(1.1rem, 2vw, 1.5rem) 0; border-bottom: 1px solid var(--p-rule);
	font: 700 clamp(1.4rem, 2.4vw, 2rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.04em; color: var(--p-ink);
}
.t-fu-year summary::-webkit-details-marker { display: none; }
.t-fu-year summary svg { width: 2.6rem; height: 2.6rem; padding: .75rem; border-radius: 50%; border: 1px solid var(--p-line-2); rotate: 90deg; transition: rotate .4s cubic-bezier(.2, .7, .2, 1), background .3s ease, color .3s ease; }
.t-fu-year[open] summary svg { rotate: -90deg; background: var(--p-ink); border-color: var(--p-ink); color: #fff; }
.t-fu-table { overflow-x: auto; }
.t-fu-table table { width: 100%; border-collapse: collapse; }
.t-fu-table th, .t-fu-table td { padding: .95rem 0; border-bottom: 1px solid var(--p-line); text-align: right; font-size: 1.02rem; color: var(--p-ink); font-variant-numeric: tabular-nums; background: none; }
.t-fu-table th:first-child { text-align: left; }
.t-fu-table thead th { font: 500 .74rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--p-muted); }
.t-fu-table tbody th { font-weight: 600; }
.t-fu-table tr.is-now th, .t-fu-table tr.is-now td { font-weight: 700; }
.t-fu-table em { margin-left: .6rem; padding: .35em .7em; border-radius: 99px; background: var(--p-ink); color: #fff; font: 500 .66rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; font-style: normal; vertical-align: middle; }

@media (max-width: 900px) {
	.t-fu-top, .t-fu-formula { grid-template-columns: minmax(0, 1fr); }
	.t-fu-code { overflow-wrap: anywhere; }
	.t-fu-ex dt { min-width: 0; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
	.t-fu-ex dd { white-space: nowrap; }
	.t-fu-ex > div.is-result { padding-inline: 1rem; }
	.t-fu-ex > div.is-result dd { font-size: 1.35rem; }
	.t-fu-table { overflow-x: auto; }
	.t-fu-notice, .t-fu-now, .t-fu-formula, .t-fu-chart { border-radius: 24px; }
	.t-cols--3 { grid-template-columns: 1fr; }
	.t-cols--3 li + li { padding-left: 0; border-left: 0; }
	.t-cols--3 li:nth-child(odd) { padding-left: 0; }
	.t-fu-bar b { display: none; }
	.t-fu-bar.is-now b { display: block; }
}
@media (prefers-reduced-motion: reduce) { .t-fu-now::before { animation: none; } }
/* =====================================================================
   FOOTER, 404
   ===================================================================== */

.t-ft-legal { font-variant-numeric: tabular-nums; }
/* Finger-sized targets. */
.ft-links { gap: .35rem; }
.ft-links a { display: inline-block; padding-block: .3rem; }
.ft-big { padding-block: .3rem; }
/* The floating button does this job on every screen; leave it room
   beside the legal line. */
.ft-up { display: none; }
.ft-bottom { padding-right: clamp(4rem, 6vw, 5.5rem); }

.tp-404 .m-btn svg { width: 1rem; height: 1rem; }

/* =====================================================================
   PACE - nothing on the site should make a visitor wait for it.

   The inherited entrances were tuned for show: 1.1s rises staggered by
   140ms, headings revealed over a second with 60ms per word, panels
   uncovering after a quarter-second pause. Each is small; together they
   made every screen feel a beat late. Same motion, tightened: content
   is readable within about a third of a second of being reached, and
   nothing starts on a delay.
   ===================================================================== */

/* First screen: the mark and the title are there at once. */
.tp-js .ap-in { animation-duration: .6s; animation-delay: calc(var(--i) * 60ms); }
/* Scroll-ins. */
.tp-js .tp-anim.in-view, .tp-js .tp-anim-left.in-view, .tp-js .tp-anim-right.in-view { animation-duration: .5s; }
/* Headings, word by word. */
.m-motion .m-split .m-w > span { transition-duration: .6s; transition-delay: calc(var(--wi, 0) * 25ms); }
/* Service panels. */
.m-motion .m-sec.is-on .t-acc-p { transition: clip-path .8s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 80ms), flex-grow .55s cubic-bezier(.2, .7, .2, 1); }
.t-acc-p { transition-duration: .55s; }
.t-acc-p > img, .t-acc-p::before, .t-acc-p::after { transition-duration: .5s; }
.t-acc-body ul { transition-duration: .5s, .25s, .4s; }
.t-acc-p.is-open .t-acc-body li { transition-duration: .35s, .45s; transition-delay: calc(var(--k) * 30ms + 120ms); }
.t-acc-body h3 { transition-duration: .45s; }
/* Fuel chart. */
.t-fu-bars.is-on .t-fu-bar i { animation-duration: .6s; animation-delay: calc(var(--i) * 30ms); }
.tp-js .t-fu-chart.in-view .t-fu-bar b { transition: opacity .3s ease calc(var(--i) * 30ms + 250ms); }
/* Hover feedback answers immediately. */
.t-facts3 article, .t-mo--text, .t-ct-people li, .t-partners .tp-trust-card { transition-duration: .3s; }
/* The service panels were the one place scrolling dropped frames: each
   photograph was being rescaled on every scroll frame while also under
   a saturation filter and a clip-path, so it was repainted in full each
   time. The scroll-zoom and the filter are gone; the wash over the
   photograph does the dimming, which costs nothing. */
.t-acc-p > img { scale: none; filter: none !important; inset: 0; height: 100%; transition: none; }
.t-acc-p::before { opacity: 1; }
.t-acc-p.is-open::before { opacity: .5; }/* And they arrive by rising into place rather than by being unclipped:
   an animated clip-path repaints the photograph on every frame, while
   opacity and transform are handled by the compositor alone. */
.m-motion .m-sec:not(.is-on) .t-acc-p { clip-path: none; opacity: 0; transform: translateY(28px); }
.m-motion .m-sec.is-on .t-acc-p {
	clip-path: none; opacity: 1; transform: none;
	transition: opacity .5s ease calc(var(--i) * 70ms), transform .6s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * 70ms), flex-grow .55s cubic-bezier(.2, .7, .2, 1);
}/* Blur-behind is recomputed whenever what is behind it moves - which,
   for a chip on a photograph or a button fixed over the page, is every
   scroll frame. Solid fills instead. */
.t-acc-n, .t-top, .t-mo--photo figcaption, .t-story-photo figcaption { -webkit-backdrop-filter: none; backdrop-filter: none; }
.t-acc-n { background: rgba(0, 0, 60, .55); }
.t-top { background: var(--p-raised); }/* The header bar was the last source of dropped frames, on the front
   page: frosted glass has to re-blur everything passing under it on
   every scroll frame, and the bar was also cross-fading its background
   while sliding away. A near-solid paper fill reads the same and costs
   nothing; only the slide is animated. */
html body header.wp-block-template-part.wp-block-template-part {
	-webkit-backdrop-filter: none !important; backdrop-filter: none !important;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1) !important;
}
html body header.wp-block-template-part.wp-block-template-part:not(.tp-header--transparent),
html body header.wp-block-template-part.wp-block-template-part.is-scrolled { background: rgba(252, 250, 247, .97) !important; }
header.wp-block-template-part::before, header.wp-block-template-part::after { transition: none !important; }


/* =====================================================================
   KADUCEJUS - what only this site needs. Everything above is the shared
   sheet as the sister Transpakas site carries it.
   ===================================================================== */

/* The Kaducejus lockup is a little shorter than Transpakas's. */
.t-h-mark { aspect-ratio: 1114 / 262; }

/* Three figures instead of five. */
.t-tiles.k-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.t-tiles.k-tiles--3 b { font-size: clamp(3rem, 6.4vw, 5.6rem); }
.t-tiles.k-tiles--3 > li > span { max-width: 26ch; }
/* The counting number sits in a span of its own inside the figure. */
.t-tiles b span { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
@media (max-width: 700px) {
	.t-tiles.k-tiles--3 { grid-template-columns: 1fr; }
	.t-tiles.k-tiles--3 li, .t-tiles.k-tiles--3 li + li { padding-left: 0; border-left: 0; }
}

/* Recognitions: the card of the about page, with a sentence in place
   of a list. */
.k-facts-p { margin: clamp(1rem, 2vw, 1.4rem) 0 0; padding-top: clamp(1rem, 2vw, 1.4rem); border-top: 1px solid var(--p-line); font-size: 1.05rem; line-height: 1.55; color: var(--p-ink-2); }

/* Contacts: one office, so no rule or gap above it. */
.t-ct-city.k-ct-first { margin-top: clamp(1.5rem, 3vw, 2.5rem); padding-top: 0; border-top: 0; }
#kc-form { scroll-margin-top: 6.5rem; }
/* ---------------------------------------------------------------------
   First screen: the company in three figures along its foot, on one
   thin rule.
   --------------------------------------------------------------------- */
.k-h-foot {
	width: min(1320px, 100%); margin: clamp(2rem, 5vh, 3.5rem) auto 0; padding: 0; list-style: none;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--p-line-2);
}
.k-h-foot li { display: flex; align-items: baseline; gap: .9rem; padding: clamp(1.1rem, 2.2vh, 1.6rem) 1.5rem 0 0; }
.k-h-foot li + li { padding-left: clamp(1rem, 2vw, 1.8rem); border-left: 1px solid var(--p-line); }
.k-h-foot b { font: 700 clamp(1.9rem, 3.2vw, 2.9rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.045em; color: var(--p-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.k-h-foot b small { margin-left: .1em; font-size: .5em; letter-spacing: 0; color: var(--p-muted); }
.k-h-foot li > span { font-size: .95rem; line-height: 1.35; color: var(--p-muted); }
@media (max-width: 700px) {
	.k-h-foot li { flex-direction: column; gap: .45rem; padding-right: .5rem; }
	.k-h-foot li + li { padding-left: .9rem; }
	.k-h-foot li > span { font-size: .8rem; }
}

/* The statement runs straight into its photograph. */
.t-intro-head + .t-mosaic { margin-top: clamp(2.5rem, 5vw, 4.5rem); }

/* ---------------------------------------------------------------------
   Services on the front page: three cards. The one under the pointer
   turns to navy and its arrow swings up.
   --------------------------------------------------------------------- */
.k-svc { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.k-svc-card {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; flex-direction: column; min-height: clamp(19rem, 26vw, 23rem);
	padding: clamp(1.6rem, 2.8vw, 2.4rem); border-radius: 28px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	color: var(--p-ink); text-decoration: none;
	transition: translate .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease, color .35s ease, border-color .35s ease;
}
/* The navy ground rises from the foot of the card. */
.k-svc-card::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(155deg, #10107A, var(--p-ink) 62%);
	clip-path: inset(100% 0 0 0); transition: clip-path .5s cubic-bezier(.2, .7, .2, 1);
}
.k-svc-top { display: flex; align-items: center; justify-content: space-between; }
.k-svc-ico { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; background: var(--p-ink); color: #fff; transition: background .35s ease, color .35s ease; }
.k-svc-ico svg { width: 1.4rem; height: 1.4rem; stroke-width: 1.8; }
.k-svc-n { font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); transition: color .35s ease; }
.k-svc-card h3 { margin: auto 0 0; padding-top: clamp(2rem, 4vw, 3rem); font: 700 clamp(1.55rem, 2.3vw, 2.1rem)/1.05 "Archivo", Inter, sans-serif; letter-spacing: -.04em; color: inherit; text-wrap: balance; }
.k-svc-card p { margin: .8rem 0 0; max-width: 34ch; padding-right: 3.2rem; font-size: 1rem; line-height: 1.55; color: var(--p-muted); transition: color .35s ease; }
.k-svc-go {
	position: absolute; right: clamp(1.4rem, 2.4vw, 2rem); bottom: clamp(1.4rem, 2.4vw, 2rem);
	display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%;
	border: 1px solid var(--p-line-2); color: var(--p-ink);
	transition: rotate .45s cubic-bezier(.2, .7, .2, 1), background .35s ease, color .35s ease, border-color .35s ease;
}
.k-svc-go svg { width: 1.05rem; height: 1.05rem; }
.k-svc-card:hover, .k-svc-card:focus-visible { translate: 0 -6px; color: #fff; border-color: transparent; box-shadow: 0 30px 56px -30px rgba(0, 0, 76, .55); }
.k-svc-card:hover::before, .k-svc-card:focus-visible::before { clip-path: inset(0); }
.k-svc-card:hover .k-svc-ico, .k-svc-card:focus-visible .k-svc-ico { background: #fff; color: var(--p-ink); }
.k-svc-card:hover .k-svc-n, .k-svc-card:focus-visible .k-svc-n { color: var(--p-on-ink); }
.k-svc-card:hover p, .k-svc-card:focus-visible p { color: rgba(255, 255, 255, .82); }
.k-svc-card:hover .k-svc-go, .k-svc-card:focus-visible .k-svc-go { rotate: -45deg; background: #fff; border-color: #fff; color: var(--p-ink); }
/* Three lines kept for every description, so the names share a line. */
@media (min-width: 901px) { .k-svc-card p { min-height: calc(1.55em * 3); } }
@media (max-width: 900px) {
	.k-svc { grid-template-columns: 1fr; }
	.k-svc-card { min-height: 0; border-radius: 22px; }
	.k-svc-card h3 { padding-top: 2rem; }
}
@media (prefers-reduced-motion: reduce) { .k-svc-card, .k-svc-card::before, .k-svc-go { transition: none; } }

/* Services page: the tiles carry each service's own icon. */
.t-sv-items svg { stroke-width: 2; }

/* Contacts: four departments, two by two beside the map; each card
   starts at its top whatever it holds, and a second line of contacts
   in the same card gets its own rule. */
.t-ct-people li { align-content: start; }
.t-ct-people .t-ct-links + .t-ct-links { margin-top: -.2rem; }

/* =====================================================================
   MODERN LAYER - what the best current sites do, kept to what suits a
   light, quiet page: type that reacts to the scroll, a header that
   lifts off the page as a pill, a light that follows the pointer, and
   the name set very large to close the page.
   ===================================================================== */

/* --- Header: clear at the top of a page; once the page has moved it
   becomes a floating pill. --- */
html body header.wp-block-template-part.wp-block-template-part,
html body header.wp-block-template-part.wp-block-template-part:not(.tp-header--transparent),
html body header.wp-block-template-part.wp-block-template-part.is-scrolled {
	background: transparent !important; border-bottom-color: transparent !important; box-shadow: none !important;
}
header.wp-block-template-part.tp-header--transparent::before,
header.wp-block-template-part.tp-header--transparent::after { opacity: 0 !important; }
header.wp-block-template-part .tp-header-inner {
	position: relative; z-index: 1; border: 1px solid transparent; border-radius: 99px;
	transition: max-width .5s cubic-bezier(.2, .7, .2, 1), height .5s cubic-bezier(.2, .7, .2, 1), margin-top .5s cubic-bezier(.2, .7, .2, 1), padding .5s cubic-bezier(.2, .7, .2, 1), background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
header.wp-block-template-part.is-scrolled .tp-header-inner {
	height: calc(var(--nav-h) - 16px); margin-top: 10px;
	max-width: min(1180px, calc(100% - 1.5rem));
	padding-inline: 1.5rem .6rem;
	background: rgba(252, 250, 247, .96); border-color: rgba(0, 0, 76, .1);
	box-shadow: 0 22px 44px -26px rgba(0, 0, 76, .42);
}
header.wp-block-template-part.is-scrolled .tp-header-btn { border-radius: 99px; }
@media (max-width: 900px) {
	header.wp-block-template-part.is-scrolled .tp-header-inner { padding-inline: 1rem .5rem; max-width: calc(100% - 1rem); }
}
@media (prefers-reduced-motion: reduce) { header.wp-block-template-part .tp-header-inner { transition: none; } }

/* --- First screen: the pointer's light, and the mark easing back as
   the page leaves it. --- */
.k-h-light {
	position: absolute; left: 0; top: 0; width: 40rem; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(40, 40, 170, .16), rgba(40, 40, 170, .06) 50%, rgba(40, 40, 170, 0) 100%);
	transform: translate3d(calc(var(--lx, 50vw) - 50%), calc(var(--ly, 40vh) - 50%), 0);
	opacity: 0; transition: transform .9s cubic-bezier(.2, .7, .2, 1), opacity .6s ease;
}
.t-h.is-lit .k-h-light { opacity: 1; }
.m-motion .t-h-inner {
	transform: translate3d(0, calc(var(--hs, 0) * -60px), 0) scale(calc(1 - var(--hs, 0) * .08));
	opacity: calc(1 - var(--hs, 0) * 1.25);
}
.m-motion .k-h-foot { opacity: calc(1 - var(--hs, 0) * 2.2); }
@media (prefers-reduced-motion: reduce) { .k-h-light { display: none; } }

/* --- The sentence under the statement: large, and lit word by word as
   it crosses the screen. Fully lit when the script is not running. --- */
.k-say {
	margin: clamp(1.6rem, 3vw, 2.4rem) auto 0; max-width: 30ch; text-wrap: balance;
	font: 600 clamp(1.35rem, 2.5vw, 2.15rem)/1.28 "Archivo", Inter, sans-serif; letter-spacing: -.03em; color: var(--p-ink);
}
.k-say.is-live span { opacity: .2; transition: opacity .45s ease; }
.k-say.is-live span.on { opacity: 1; }

/* --- One line of very large type, alternately solid and drawn in
   outline, drifting across the page. --- */
.k-band { overflow: hidden; padding-block: clamp(1rem, 3vw, 2.5rem) clamp(4rem, 8vw, 7rem); }
.k-band-shift { transform: translate3d(var(--kx, 0px), 0, 0); will-change: transform; }
.k-band-run { display: flex; align-items: center; gap: clamp(1.5rem, 3.5vw, 3.5rem); width: max-content; animation: k-band 60s linear infinite; }
.k-band-run span {
	flex: none; white-space: nowrap;
	font: 800 clamp(3.4rem, 10vw, 9rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.055em; color: var(--p-ink);
}
.k-band-run span.is-line { color: transparent; -webkit-text-stroke: 1.5px rgba(0, 0, 76, .5); }
.k-band-run img { flex: none; width: clamp(2.2rem, 5vw, 4.2rem); height: auto; opacity: .85; }
/* The run holds the five words four times over; one quarter is one loop. */
@keyframes k-band { to { transform: translate3d(-25%, 0, 0); } }
@media (prefers-reduced-motion: reduce) { .k-band-run { animation: none; } }
.k-band + .t-sec { padding-top: 0; }

/* --- Footer: the name, very large and faint, cut by the page's edge. --- */
.k-ft-word {
	margin: clamp(.5rem, 2vw, 1.5rem) 0 0; overflow: hidden; text-align: center; white-space: nowrap; user-select: none;
	height: .74em; font: 800 clamp(3rem, 13.2vw, 13rem)/.9 "Archivo", Inter, sans-serif; letter-spacing: -.05em;
	color: transparent; background: linear-gradient(180deg, rgba(166, 166, 217, .34) 0%, rgba(166, 166, 217, .04) 78%);
	-webkit-background-clip: text; background-clip: text;
}
/* Services heading: the line about them and the way on, in the right column. */
.k-head-side { display: grid; gap: 1.1rem; justify-items: start; }


/* =====================================================================
   KADUCEJUS IDENTITY - what sets this site apart inside the group.

   Same navy, paper and type as 2B Group and Transpakas, so the family
   holds. Its own: a cool blue tint beside the warm paper, an opening
   built as a split with a photograph instead of a centred mark, service
   panels with an outlined numeral, one navy closing card and a light
   footer where the others end on navy.
   ===================================================================== */

:root { --k-tint: #E6EAF6; --k-tint-2: #D9DFF2; }

/* --- HERO ------------------------------------------------------------ */
.k-hero {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: 100svh; display: flex; flex-direction: column; gap: clamp(1.6rem, 3.6vh, 2.8rem);
	padding: clamp(6.5rem, 13vh, 8.5rem) var(--m-pad) clamp(1.2rem, 2.6vh, 2rem);
	background: var(--p-paper);
}
.k-hero .m-hero-aurora { z-index: -1; }
.k-hero.is-lit .k-h-light { opacity: 1; }
.k-hero-top {
	width: min(1320px, 100%); margin-inline: auto;
	display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: end;
}
/* The lockup, drawn through the artwork so it is exactly the page's ink. */
.k-hero-mark {
	margin: 0; width: 100%; aspect-ratio: 1114 / 262;
	-webkit-mask: var(--mark-url) left center / contain no-repeat; mask: var(--mark-url) left center / contain no-repeat;
	background: var(--p-ink);
}
.k-hero-lead { margin: 0 0 clamp(1.3rem, 2.6vh, 1.9rem); max-width: 16ch; text-wrap: balance; font: 700 clamp(1.7rem, 3vw, 2.7rem)/1.06 "Archivo", Inter, sans-serif; letter-spacing: -.04em; color: var(--p-ink); }

/* The photograph fills what is left of the first screen. */
.k-hero-shot {
	position: relative; flex: 1 1 auto; min-height: clamp(15rem, 34vh, 26rem);
	width: min(1320px, 100%); margin: 0 auto; border-radius: 36px; overflow: hidden; background: var(--k-tint);
}
.k-hero-shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; }
.k-hero-shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(0, 0, 76, 0) 45%, rgba(0, 0, 76, .28) 100%); pointer-events: none; }
.k-hero-pin {
	position: absolute; z-index: 1; left: clamp(1rem, 2vw, 1.5rem); top: clamp(1rem, 2vw, 1.5rem);
	display: inline-flex; align-items: center; gap: .5rem; padding: .7em 1.1em; border-radius: 99px;
	background: var(--p-raised); color: var(--p-ink); font: 600 .9rem/1 Inter, system-ui, sans-serif;
}
.k-hero-pin svg { width: 1rem; height: 1rem; }
.k-hero-chips { position: absolute; z-index: 1; right: clamp(1rem, 2vw, 1.5rem); bottom: clamp(1rem, 2vw, 1.5rem); margin: 0; padding: 0; list-style: none; display: flex; gap: .6rem; }
.k-hero-chips li { display: flex; flex-direction: column; gap: .5rem; min-width: 10.5rem; padding: 1.1rem 1.3rem 1.2rem; border-radius: 22px; background: var(--p-raised); box-shadow: 0 20px 44px -26px rgba(0, 0, 40, .55); }
.k-hero-chips b { font: 700 clamp(1.9rem, 3vw, 2.6rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.045em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.k-hero-chips b small { margin-left: .1em; font-size: .5em; letter-spacing: 0; color: var(--p-muted); }
.k-hero-chips li > span { font-size: .9rem; line-height: 1.3; color: var(--p-muted); }
@media (max-width: 900px) {
	.k-hero { min-height: 0; padding-top: 6.5rem; gap: 1.8rem; }
	.k-hero-top { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; }
	.k-hero-lead { max-width: none; }
	.k-hero-shot { flex: none; min-height: 0; aspect-ratio: 4 / 3.4; border-radius: 26px; }
	.k-hero-shot img { object-position: 68% 40%; }
	.k-hero-chips { left: .8rem; right: .8rem; bottom: .8rem; }
	.k-hero-chips li { flex: 1 1 0; min-width: 0; padding: .9rem 1rem 1rem; border-radius: 18px; }
	.k-hero-chips li > span { font-size: .8rem; }
}

/* --- ABOUT, on the front page: the statement beside its sentence. --- */
.k-about-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.k-about-side { display: grid; gap: clamp(1.2rem, 2.2vw, 1.7rem); justify-items: start; padding-top: clamp(.2rem, .8vw, .7rem); border-top: 1px solid var(--p-rule); }
.k-about-side .k-say { margin: clamp(1.4rem, 2.6vw, 2.1rem) 0 0; max-width: none; text-wrap: pretty; text-align: left; }
@media (max-width: 900px) { .k-about-grid { grid-template-columns: minmax(0, 1fr); } }

/* --- SERVICE PANELS: tinted, with a large outlined numeral and the
   service's own terms as small pills. --- */
.k-svc-card { min-height: clamp(22rem, 30vw, 27rem); border-radius: 36px; background: var(--k-tint); border-color: transparent; }
.k-svc-ico { width: 4.2rem; height: 4.2rem; }
.k-svc-ico svg { width: 1.6rem; height: 1.6rem; }
.k-svc-top { align-items: flex-start; }
.k-svc-n {
	font: 800 clamp(4.5rem, 9vw, 8rem)/.8 "Archivo", Inter, sans-serif; letter-spacing: -.06em;
	color: transparent; -webkit-text-stroke: 1.5px rgba(0, 0, 76, .28); transition: -webkit-text-stroke-color .35s ease;
}
.k-svc-card:hover .k-svc-n, .k-svc-card:focus-visible .k-svc-n { color: transparent; -webkit-text-stroke-color: rgba(255, 255, 255, .4); }
.k-svc-card h3 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.k-svc-card p { max-width: 38ch; padding-right: 0; min-height: 0 !important; color: var(--p-ink-2); }
.k-svc-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: clamp(1.1rem, 2vw, 1.5rem); padding-right: 3.6rem; }
.k-svc-chips i {
	padding: .6em 1em; border-radius: 99px; background: rgba(255, 255, 255, .7); color: var(--p-ink);
	font: 600 .86rem/1 Inter, system-ui, sans-serif; font-style: normal; white-space: nowrap;
	transition: background .35s ease, color .35s ease;
}
.k-svc-card:hover .k-svc-chips i, .k-svc-card:focus-visible .k-svc-chips i { background: rgba(255, 255, 255, .14); color: #fff; }
.k-svc-go { background: var(--p-raised); border-color: transparent; }
@media (max-width: 900px) { .k-svc-card { border-radius: 26px; } }

/* --- The same tint on the cards of the inner pages, so every page is
   recognisably this company's. --- */
.t-mo--text, .t-sv-card, .t-ct-people li { background: var(--k-tint); border-color: transparent; }
.t-sv-items li { background: var(--k-tint); border-color: transparent; }

/* --- CLOSING CARD --- */
.k-cta-sec { padding: clamp(1rem, 3vw, 2.5rem) 0 clamp(4rem, 8vw, 7rem); }
.k-cta {
	position: relative; isolation: isolate; overflow: hidden;
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: end;
	padding: clamp(2.2rem, 5.5vw, 5rem); border-radius: 40px; color: #fff;
	background: linear-gradient(150deg, #12128A 0%, var(--p-ink) 58%);
}
.k-cta::before {
	content: ""; position: absolute; z-index: -1; right: -12rem; top: -18rem; width: 44rem; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(166, 166, 217, .32), rgba(166, 166, 217, 0)); pointer-events: none;
}
.k-cta-mark { position: absolute; z-index: -1; right: clamp(-3rem, -2vw, -1rem); bottom: -22%; width: clamp(14rem, 30vw, 26rem); height: auto; filter: brightness(0) invert(1); opacity: .07; pointer-events: none; }
.k-cta-title { margin: 0; font: 700 clamp(2.6rem, 7vw, 6rem)/.94 "Archivo", Inter, sans-serif; letter-spacing: -.055em; color: #fff; }
.k-cta-title span { color: var(--p-on-ink); }
.k-cta-say p { margin: clamp(1.1rem, 2.2vw, 1.7rem) 0 0; max-width: 42ch; font-size: clamp(1.02rem, 1.3vw, 1.18rem); line-height: 1.6; color: rgba(255, 255, 255, .8); }
.k-cta-acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 1rem 1.6rem; }
.k-cta-tel { display: inline-flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; font: 600 1.05rem/1 Inter, system-ui, sans-serif; }
.k-cta-tel svg { width: 1.05rem; height: 1.05rem; color: var(--p-on-ink); }
.k-cta :focus-visible { outline-color: #fff; }
@media (max-width: 900px) {
	.k-cta { grid-template-columns: minmax(0, 1fr); border-radius: 28px; }
	.k-cta-acts { justify-content: flex-start; }
}

/* --- LIGHT FOOTER: the tint, navy type, and the name very large. --- */
footer.wp-block-template-part::before { display: none !important; }
/* Where a page ends on the navy closing band, the footer's rounded top
   is drawn over the band's last 40px. */
footer.wp-block-template-part { position: relative; z-index: 1; }
html body .m-close { border-bottom: 40px solid var(--p-ink) !important; }
html body .m-close + footer.wp-block-template-part { margin-top: -40px !important; }
html body .tp-footer-wrap.ft { background: var(--k-tint) !important; color: var(--p-ink-2); border-radius: 40px 40px 0 0; }
.ft .ft-logo, .ft .ft-logo-name, .ft .ft-big { color: var(--p-ink) !important; }
.ft .ft-chip { background: var(--p-ink); }
.ft .ft-chip img { filter: brightness(0) invert(1); }
.ft .ft-desc, .ft .ft-addr { color: var(--p-ink-2); }
.ft .ft-h { color: var(--p-muted) !important; }
.ft .ft-links a { color: var(--p-ink) !important; }
.ft .ft-links a:hover, .ft .ft-big:hover { color: var(--p-ink) !important; }
.ft .ft-bottom { border-top-color: rgba(0, 0, 76, .14); color: var(--p-muted); }
.ft :focus-visible { outline-color: var(--p-ink); }
.k-ft-word { background: linear-gradient(180deg, rgba(0, 0, 76, .2) 0%, rgba(0, 0, 76, .03) 80%); -webkit-background-clip: text; background-clip: text; }
@media (max-width: 900px) { html body .tp-footer-wrap.ft { border-radius: 28px 28px 0 0; } }
/* Front page, the three facts under the statement: the same ruled row
   the group sites list things in, with the fact itself set large. */
.t-cols li.k-fact b { margin-top: clamp(1.6rem, 3vw, 2.6rem); font-size: clamp(2.4rem, 4.6vw, 4rem); letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.t-cols li.k-fact .t-cols-what { max-width: 26ch; }

/* =====================================================================
   FRONT PAGE, THE MIDDLE - the statement with a photograph set into
   its line, then the services as a typographic list.
   ===================================================================== */

.k-in .k-in-title { margin: 0; font-size: clamp(2.7rem, 7.6vw, 7.2rem); line-height: .98; letter-spacing: -.055em; }
/* The photograph in the line: a pill the height of the capitals. */
.k-in-pic {
	display: inline-block; vertical-align: -.04em; margin-left: .12em;
	width: 1.9em; height: .74em; border-radius: 99px; overflow: hidden; background: var(--k-tint);
}
.k-in-pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 66% 34%; scale: 1.5; transition: scale 1.2s cubic-bezier(.2, .7, .2, 1); }
.k-in .k-in-title:hover .k-in-pic img { scale: 1.75; }
.k-in-row {
	margin-top: clamp(2.5rem, 5vw, 4.5rem); padding-top: clamp(1.6rem, 3vw, 2.4rem); border-top: 1px solid var(--p-rule);
	display: grid; grid-template-columns: minmax(0, 1.25fr) auto auto; gap: clamp(1.5rem, 5vw, 5rem); align-items: start;
}
.k-in-lead { margin: 0; max-width: 38ch; font: 600 clamp(1.2rem, 1.9vw, 1.65rem)/1.32 "Archivo", Inter, sans-serif; letter-spacing: -.025em; color: var(--p-ink); text-wrap: pretty; }
.k-in-facts { margin: 0; padding: 0; list-style: none; display: flex; gap: clamp(1.6rem, 3.5vw, 3.2rem); }
.k-in-facts li { display: grid; gap: .5rem; }
.k-in-facts b { font: 700 clamp(2rem, 3.4vw, 3rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.05em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.k-in-facts span { font-size: .92rem; color: var(--p-muted); white-space: nowrap; }
.k-in-row .t-link { margin-top: .35rem; white-space: nowrap; }
@media (max-width: 900px) {
	.k-in-row { grid-template-columns: minmax(0, 1fr); }
	.k-in-row .t-link { justify-self: start; }
}

/* The list. */
.k-list { border-top: 1px solid var(--p-rule); }
.k-row {
	position: relative; isolation: isolate;
	display: grid; grid-template-columns: 3.4rem minmax(0, 1.25fr) minmax(0, 1fr) auto auto; gap: clamp(1rem, 2.6vw, 2.6rem); align-items: center;
	padding: clamp(1.7rem, 3.4vw, 2.9rem) clamp(.4rem, 1.2vw, 1.2rem); border-bottom: 1px solid var(--p-rule);
	color: var(--p-ink); text-decoration: none;
}
/* A tinted ground slides in under the row being pointed at. */
.k-row::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--k-tint);
	transform: scaleY(0); transform-origin: bottom; transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.k-row:hover::before, .k-row:focus-visible::before { transform: none; }
.k-row-n { font: 500 .8rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .12em; color: var(--p-muted); }
.k-row-name { font: 700 clamp(1.9rem, 4.3vw, 4rem)/1 "Archivo", Inter, sans-serif; letter-spacing: -.05em; text-wrap: balance; transition: translate .45s cubic-bezier(.2, .7, .2, 1); }
.k-row:hover .k-row-name, .k-row:focus-visible .k-row-name { translate: .6rem 0; }
.k-row-what { font-size: 1.02rem; line-height: 1.5; color: var(--p-muted); }
.k-row-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .9rem; }
.k-row-tags i { padding: .55em .95em; border-radius: 99px; border: 1px solid var(--p-line-2); color: var(--p-ink); font: 600 .84rem/1 Inter, system-ui, sans-serif; font-style: normal; white-space: nowrap; }
.k-row-pic { width: clamp(8rem, 13vw, 12rem); aspect-ratio: 16 / 10; border-radius: 18px; overflow: hidden; background: var(--k-tint); rotate: 0deg; transition: rotate .45s cubic-bezier(.2, .7, .2, 1), scale .45s cubic-bezier(.2, .7, .2, 1); }
.k-row-pic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: scale .8s cubic-bezier(.2, .7, .2, 1); }
.k-row:hover .k-row-pic, .k-row:focus-visible .k-row-pic { rotate: -3deg; scale: 1.06; }
.k-row:hover .k-row-pic img, .k-row:focus-visible .k-row-pic img { scale: 1.12; }
.k-row-go { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; border: 1px solid var(--p-line-2); transition: background .35s ease, color .35s ease, border-color .35s ease, rotate .45s cubic-bezier(.2, .7, .2, 1); }
.k-row-go svg { width: 1.15rem; height: 1.15rem; }
.k-row:hover .k-row-go, .k-row:focus-visible .k-row-go { background: var(--p-ink); border-color: var(--p-ink); color: #fff; rotate: -45deg; }
@media (max-width: 900px) {
	.k-row { grid-template-columns: minmax(0, 1fr) auto; gap: .9rem 1rem; padding-inline: 0; }
	.k-row-n { grid-column: 1 / -1; }
	.k-row-name { grid-column: 1; }
	.k-row-go { grid-column: 2; grid-row: 2; width: 2.9rem; height: 2.9rem; }
	.k-row-what { grid-column: 1 / -1; }
	.k-row-pic { grid-column: 1 / -1; width: 100%; aspect-ratio: 16 / 8; }
	.k-row::before { display: none; }
}
@media (prefers-reduced-motion: reduce) { .k-row::before, .k-row-name, .k-row-pic, .k-row-pic img, .k-row-go, .k-in-pic img { transition: none; } }

/* =====================================================================
   FRONT PAGE, THE MIDDLE (final) - a composition of four tiles, then
   the two services as cards with their photographs.
   ===================================================================== */

.k-bento-sec { padding-top: clamp(3rem, 6vw, 5.5rem); }
.k-bento { --g: clamp(.8rem, 1.4vw, 1.15rem); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto; gap: var(--g); }
.k-b { position: relative; isolation: isolate; overflow: hidden; margin: 0; border-radius: 36px; }

/* The photograph: the road from above, the statement written across
   its foot. */
.k-b--photo { grid-column: 1 / span 7; grid-row: 1 / span 2; min-height: clamp(30rem, 46vw, 41rem); background: var(--p-ink); }
.k-b--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 64% 38%; scale: var(--z, 1); will-change: scale; }
.k-b--photo::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 50, .1) 0%, rgba(0, 0, 50, 0) 30%, rgba(0, 0, 50, .5) 62%, rgba(0, 0, 50, .92) 100%);
}
.k-b-pin {
	position: absolute; z-index: 1; left: clamp(1.1rem, 2vw, 1.6rem); top: clamp(1.1rem, 2vw, 1.6rem);
	display: inline-flex; align-items: center; gap: .5rem; padding: .7em 1.1em; border-radius: 99px;
	background: var(--p-raised); color: var(--p-ink); font: 600 .9rem/1 Inter, system-ui, sans-serif;
}
.k-b-pin svg { width: 1rem; height: 1rem; }
.k-b--photo figcaption { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: clamp(1.6rem, 3.2vw, 2.8rem); }
.k-b-title { margin: 0; max-width: 12ch; font: 700 clamp(2.3rem, 5vw, 4.7rem)/.96 "Archivo", Inter, sans-serif; letter-spacing: -.055em; color: #fff !important; text-wrap: balance; }
.k-b-title span { color: #C3C6EE; }

/* The company in a sentence, on navy, with a slow drifting light. */
.k-b--ink {
	grid-column: 8 / -1; grid-row: 1;
	display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: clamp(1.6rem, 3vw, 2.6rem);
	padding: clamp(1.7rem, 3vw, 2.6rem); color: #fff;
	background: linear-gradient(150deg, #14148F 0%, var(--p-ink) 60%);
}
.k-b--ink::before {
	content: ""; position: absolute; z-index: -1; right: -13rem; top: -15rem; width: 34rem; aspect-ratio: 1; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(166, 166, 217, .42), rgba(166, 166, 217, 0)); pointer-events: none;
	animation: m-drift-b 30s ease-in-out infinite;
}
.k-b-mark { width: 3.2rem; height: 3.2rem; filter: brightness(0) invert(1); opacity: .92; }
.k-b--ink p { margin: 0; font: 600 clamp(1.25rem, 1.9vw, 1.75rem)/1.28 "Archivo", Inter, sans-serif; letter-spacing: -.028em; color: #fff; text-wrap: pretty; }
.k-b--ink :focus-visible { outline-color: #fff; }

/* The two figures. */
.k-b--stat {
	grid-row: 2; grid-column: span 2; display: flex; flex-direction: column; justify-content: space-between; gap: 1.4rem;
	min-height: clamp(13rem, 17vw, 15.5rem); padding: clamp(1.4rem, 2.4vw, 2rem);
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08);
	transition: translate .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease;
}
.k-b--stat.k-b--tint { grid-column: 8 / span 3; background: var(--k-tint); border-color: transparent; }
.k-b--stat:not(.k-b--tint) { grid-column: 11 / -1; }
.k-b--stat:hover { translate: 0 -5px; box-shadow: 0 28px 54px -32px rgba(0, 0, 76, .45); }
.k-b--stat b { margin-top: auto; font: 700 clamp(2.8rem, 5vw, 4.6rem)/.9 "Archivo", Inter, sans-serif; letter-spacing: -.06em; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.k-b--stat b small { margin-left: .06em; font-size: .46em; letter-spacing: -.02em; color: var(--p-muted); }
.k-b-label { font-size: .95rem; line-height: 1.4; color: var(--p-ink-2); }
.k-b-ico { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%; background: var(--p-ink); color: #fff; }
.k-b-ico svg { width: 1.2rem; height: 1.2rem; stroke-width: 1.8; }
/* "Around the clock", with a dot that breathes. */
.k-b-live { align-self: flex-start; display: inline-flex; align-items: center; gap: .55rem; padding: .6em .95em; border-radius: 99px; border: 1px solid var(--p-line-2); font: 600 .82rem/1 Inter, system-ui, sans-serif; color: var(--p-ink); white-space: nowrap; }
.k-b-live i { position: relative; width: .5rem; height: .5rem; border-radius: 50%; background: #1FAE6B; }
.k-b-live i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #1FAE6B; animation: k-pulse 2.2s ease-out infinite; }
@keyframes k-pulse { 0% { scale: 1; opacity: .7; } 100% { scale: 3.4; opacity: 0; } }

@media (max-width: 1000px) {
	.k-b { border-radius: 26px; }
	.k-b--photo { grid-column: 1 / -1; grid-row: auto; min-height: 0; aspect-ratio: 4 / 4.4; }
	.k-b--ink { grid-column: 1 / -1; grid-row: auto; }
	.k-b--stat, .k-b--stat.k-b--tint, .k-b--stat:not(.k-b--tint) { grid-row: auto; grid-column: span 6; min-height: 11.5rem; }
}
@media (prefers-reduced-motion: reduce) { .k-b--ink::before, .k-b-live i::after { animation: none; } }

/* --- Services: a centred heading, then the cards. --- */
.k-svc-head { max-width: 46rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.k-svc-head .t-lead { margin: clamp(1rem, 2vw, 1.5rem) auto 0; }
.k-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.k-card {
	position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
	padding: clamp(.6rem, 1vw, .8rem); border-radius: 36px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08); color: var(--p-ink); text-decoration: none;
	transition: translate .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease, border-color .35s ease;
}
/* The pointer's light, under the content. */
.k-card::before {
	content: ""; position: absolute; z-index: -1; left: var(--gx, 50%); top: var(--gy, 0%); width: 34rem; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(60, 70, 220, .16), rgba(60, 70, 220, 0)); opacity: 0; transition: opacity .4s ease; pointer-events: none;
}
.k-card:hover::before { opacity: 1; }
.k-card:hover, .k-card:focus-visible { translate: 0 -8px; border-color: rgba(0, 0, 76, .16); box-shadow: 0 40px 70px -40px rgba(0, 0, 76, .5); }
.k-card-shot { position: relative; display: block; aspect-ratio: 16 / 9.4; border-radius: 28px; overflow: hidden; background: var(--k-tint); }
.k-card-shot img { display: block; width: 100%; height: 100%; object-fit: cover; transition: scale 1s cubic-bezier(.2, .7, .2, 1); }
.k-card:hover .k-card-shot img, .k-card:focus-visible .k-card-shot img { scale: 1.07; }
.k-card-n { position: absolute; left: 1rem; top: 1rem; padding: .65em 1em; border-radius: 99px; background: var(--p-raised); color: var(--p-ink); font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .14em; }
.k-card-ico { position: absolute; right: 1rem; bottom: 1rem; display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; background: var(--p-ink); color: #fff; box-shadow: 0 0 0 6px var(--p-raised); }
.k-card-ico svg { width: 1.45rem; height: 1.45rem; stroke-width: 1.8; }
.k-card-body { display: block; padding: clamp(1.4rem, 2.6vw, 2.2rem) clamp(1rem, 2vw, 1.8rem) 0; }
.k-card-body h3 { margin: 0; font: 700 clamp(1.8rem, 3.1vw, 2.8rem)/1.02 "Archivo", Inter, sans-serif; letter-spacing: -.045em; color: var(--p-ink); text-wrap: balance; }
.k-card-body p { margin: .9rem 0 0; max-width: 44ch; font-size: 1.05rem; line-height: 1.55; color: var(--p-muted); }
.k-card-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.3rem; }
.k-card-tags i { padding: .6em 1em; border-radius: 99px; background: var(--k-tint); color: var(--p-ink); font: 600 .86rem/1 Inter, system-ui, sans-serif; font-style: normal; white-space: nowrap; }
.k-card-foot {
	margin: clamp(1.4rem, 2.6vw, 2rem) clamp(1rem, 2vw, 1.8rem) clamp(.7rem, 1.4vw, 1.2rem); padding-top: clamp(1rem, 1.8vw, 1.4rem); margin-top: auto;
	border-top: 1px solid var(--p-line); display: flex; align-items: center; justify-content: space-between;
	font: 600 1rem/1 Inter, system-ui, sans-serif;
}
.k-card-body { padding-bottom: clamp(1.4rem, 2.6vw, 2rem); }
.k-card-go { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid var(--p-line-2); transition: background .35s ease, color .35s ease, border-color .35s ease, rotate .45s cubic-bezier(.2, .7, .2, 1); }
.k-card-go svg { width: 1.1rem; height: 1.1rem; }
.k-card:hover .k-card-go, .k-card:focus-visible .k-card-go { background: var(--p-ink); border-color: var(--p-ink); color: #fff; rotate: -45deg; }
@media (max-width: 900px) {
	.k-cards { grid-template-columns: minmax(0, 1fr); }
	.k-card { border-radius: 26px; }
	.k-card-shot { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) { .k-card, .k-card-shot img, .k-card-go, .k-b--stat { transition: none; } }

/* =====================================================================
   FRONT PAGE, THE MIDDLE (plain) - the statement with one sentence,
   then the two services as two quiet cards. Only what matters.
   ===================================================================== */

.t-intro-head.k-intro { margin-bottom: 0; }
.k-plain { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.25rem); }
.k-plain-card {
	position: relative; display: block; padding: clamp(1.8rem, 3.4vw, 3rem); border-radius: 28px;
	background: var(--p-raised); border: 1px solid rgba(0, 0, 76, .08); color: var(--p-ink); text-decoration: none;
	transition: translate .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s ease, border-color .3s ease;
}
.k-plain-card:hover, .k-plain-card:focus-visible { translate: 0 -5px; border-color: rgba(0, 0, 76, .16); box-shadow: 0 28px 54px -34px rgba(0, 0, 76, .42); }
.k-plain-ico { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; background: var(--p-ink); color: #fff; }
.k-plain-ico svg { width: 1.4rem; height: 1.4rem; stroke-width: 1.8; }
.k-plain-card h3 { margin: clamp(1.8rem, 3.4vw, 2.8rem) 0 0; font: 700 clamp(1.7rem, 2.8vw, 2.5rem)/1.05 "Archivo", Inter, sans-serif; letter-spacing: -.04em; color: var(--p-ink); text-wrap: balance; }
.k-plain-card p { margin: .8rem 0 0; max-width: 40ch; font-size: 1.05rem; line-height: 1.55; color: var(--p-muted); }
.k-plain-go {
	position: absolute; right: clamp(1.6rem, 3vw, 2.6rem); top: clamp(1.8rem, 3.4vw, 3rem);
	display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid var(--p-line-2);
	transition: background .3s ease, color .3s ease, border-color .3s ease, rotate .4s cubic-bezier(.2, .7, .2, 1);
}
.k-plain-go svg { width: 1.1rem; height: 1.1rem; }
.k-plain-card:hover .k-plain-go, .k-plain-card:focus-visible .k-plain-go { background: var(--p-ink); border-color: var(--p-ink); color: #fff; rotate: -45deg; }
@media (max-width: 800px) { .k-plain { grid-template-columns: minmax(0, 1fr); } .k-plain-card { border-radius: 22px; } }
@media (prefers-reduced-motion: reduce) { .k-plain-card, .k-plain-go { transition: none; } }
/* Less air between the first screen and what follows it, and the
   first screen's fields of light fade out before its lower edge
   instead of being cut by it. */
/* The first screen fills the window exactly, so nothing of the next
   section shows under it before the visitor scrolls. */
.t-h { min-height: 100svh; }
.t-h .m-hero-aurora { -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent 100%); mask-image: linear-gradient(180deg, #000 62%, transparent 100%); }
.k-intro-sec { padding-top: clamp(1.5rem, 3vw, 3rem); }
.t-intro-head.k-intro { margin-bottom: clamp(3rem, 6vw, 5rem); }
.t-intro-head.k-intro .t-lead { max-width: 62ch; font-size: clamp(1.1rem, 1.5vw, 1.32rem); }

/* What each service covers, as plain lines in its card. */
.k-plain-card ul { margin: clamp(1.3rem, 2.4vw, 1.9rem) 0 0; padding: clamp(1.1rem, 2vw, 1.5rem) 0 0; list-style: none; border-top: 1px solid var(--p-line); display: grid; gap: .7rem; }
.k-plain-card li { display: flex; align-items: center; gap: .7rem; font: 500 1.02rem/1.35 Inter, system-ui, sans-serif; color: var(--p-ink-2); }
.k-plain-card li svg { flex: none; width: 1.25rem; height: 1.25rem; padding: .22rem; border-radius: 50%; background: var(--p-ink); color: #fff; stroke-width: 3; }
/* Services page: the department that handles the service, in its card. */
.k-sv-contact { width: 100%; margin: clamp(1.2rem, 2.2vw, 1.6rem) 0 0; padding-top: clamp(1.1rem, 2vw, 1.5rem); border-top: 1px solid var(--p-line); display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; }
.k-sv-contact span { font: 500 .78rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--p-muted); }
.k-sv-contact a { display: inline-flex; align-items: center; gap: .5rem; color: var(--p-ink); text-decoration: none; font: 600 1.05rem/1.2 Inter, system-ui, sans-serif; }
.k-sv-contact a:hover { text-decoration: underline; text-underline-offset: 3px; }
.k-sv-contact svg { width: 1rem; height: 1rem; color: var(--p-muted); }

/* =====================================================================
   KONTAKTAI - the office card and the map side by side at one height,
   the departments as a row of their own, then the form.
   ===================================================================== */

.k-ct-top { margin-top: clamp(1.5rem, 3vw, 2.5rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(.9rem, 1.6vw, 1.25rem); align-items: stretch; scroll-margin-top: 6rem; }
.k-ct-info { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.8rem, 3.4vw, 3rem); border-radius: 32px; background: var(--k-tint); }
.k-ct-info h2 { margin: clamp(.9rem, 1.8vw, 1.4rem) 0 0; font: 700 clamp(2.8rem, 5.6vw, 5rem)/.92 "Archivo", Inter, sans-serif; letter-spacing: -.055em; color: var(--p-ink); }
.k-ct-addr { margin: clamp(1.1rem, 2vw, 1.6rem) 0 0; display: flex; align-items: center; gap: .6rem; font: 500 1.08rem/1.4 Inter, system-ui, sans-serif; color: var(--p-ink-2); }
.k-ct-addr svg { flex: none; width: 1.1rem; height: 1.1rem; color: var(--p-muted); }
.k-ct-lines { width: 100%; margin: clamp(1.4rem, 2.6vw, 2rem) 0 clamp(1.6rem, 3vw, 2.4rem); padding-top: clamp(1.2rem, 2.2vw, 1.7rem); border-top: 1px solid rgba(0, 0, 76, .14); display: grid; gap: .5rem; }
.k-ct-lines a { display: inline-flex; align-items: center; gap: .8rem; width: max-content; max-width: 100%; color: var(--p-ink); text-decoration: none; font: 700 clamp(1.35rem, 2.2vw, 1.85rem)/1.25 "Archivo", Inter, sans-serif; letter-spacing: -.03em; overflow-wrap: anywhere; }
.k-ct-lines a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.k-ct-lines svg { flex: none; width: 1.2rem; height: 1.2rem; color: var(--p-muted); stroke-width: 1.8; }
.k-ct-info .m-btn { margin-top: auto; }
.k-ct-info .m-btn svg { width: 1rem; height: 1rem; }
/* The map: a full, rounded frame, never shorter than the card. */
.k-ct-map { position: relative; min-height: clamp(22rem, 36vw, 32rem); border-radius: 32px; overflow: hidden; background: var(--k-tint); border: 1px solid rgba(0, 0, 76, .08); }
.k-ct-map iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }

.k-ct-depts-head { margin: clamp(4rem, 8vw, 7rem) 0 clamp(1.8rem, 3.5vw, 2.8rem); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: end; }
.k-ct-depts-head .m-title { margin: 0; font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: .98; }
.t-ct-people.k-ct-depts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) {
	.k-ct-top, .k-ct-depts-head { grid-template-columns: minmax(0, 1fr); }
	.k-ct-info, .k-ct-map { border-radius: 24px; }
	.k-ct-map { min-height: 20rem; }
	.t-ct-people.k-ct-depts { grid-template-columns: minmax(0, 1fr); }
}