/* =========================================================================
   Point&Co — arkusz główny
   Wartości odwzorowują projekt hi-fi 1:1.
   ========================================================================= */

@font-face {
	font-family: 'PP Editorial';
	src: url('../fonts/PPEditorialOld-Regular.woff2') format('woff2'),
	     url('../fonts/PPEditorialOld-Regular.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--pc-navy: rgb(0, 20, 136);
	--pc-navy-hover: rgb(0, 13, 92);
	--pc-navy-light: rgb(21, 44, 163);
	--pc-page: rgb(243, 243, 243);
	--pc-white: rgb(255, 255, 255);
	--pc-surface: rgb(250, 250, 250);
	--pc-button: rgb(251, 251, 251);
	--pc-chip-accent: rgb(255, 239, 227);
	--pc-chip-muted: rgb(248, 248, 248);
	--pc-badge: rgb(238, 238, 238);
	--pc-placeholder: rgb(234, 234, 234);
	--pc-tile-hover: rgb(245, 246, 251);
	--pc-error: rgb(214, 60, 60);
	--pc-error-bg: rgb(255, 239, 239);
	--pc-hairline: rgba(0, 20, 136, 0.12);
	--pc-ghost: rgba(0, 20, 136, 0.35);

	--pc-display: 'PP Editorial', Georgia, 'Times New Roman', serif;
	--pc-body: 'Google Sans', 'Inter', 'Segoe UI', system-ui, sans-serif;
	--pc-mono: 'Google Sans Code', ui-monospace, Menlo, Consolas, monospace;

	--pc-radius-lg: 8px;
	--pc-radius-sm: 4px;
	--pc-radius-field: 10px;
	--pc-radius-img: 2px;

	--pc-gutter: 10px;
	--pc-max: 1440px;
	--pc-header-h: 89px;

	--pc-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* -------------------------------------------------------------------------
   Podstawy
   ---------------------------------------------------------------------- */

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

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	padding: 0;
	background: var(--pc-page);
	color: var(--pc-navy);
	font-family: var(--pc-body);
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
svg {
	max-width: 100%;
}

a {
	color: var(--pc-navy);
}

button {
	font: inherit;
	color: inherit;
}

::placeholder {
	color: var(--pc-navy);
	opacity: 1;
}

:focus-visible {
	outline: 2px solid var(--pc-navy);
	outline-offset: 3px;
	border-radius: 2px;
}

.pc-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pc-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 200;
	padding: 12px 20px;
	background: var(--pc-navy);
	color: var(--pc-white);
	font-family: var(--pc-mono);
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
}

.pc-skip-link:focus {
	left: 10px;
	top: 10px;
}

.pc-shell {
	position: relative;
	width: 100%;
	max-width: var(--pc-max);
	margin: 0 auto;
	padding: var(--pc-gutter);
	background: var(--pc-page);
	color: var(--pc-navy);
}

/* Podstrony trzymają stopkę przy dole okna nawet przy krótkiej treści. */
.pc-shell--column {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

.pc-shell--column > main {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Etykieta sekcji — mono, wersaliki */
.pc-eyebrow {
	font-family: var(--pc-mono);
	font-size: 12px;
	line-height: 12px;
	text-transform: uppercase;
	margin: 0;
}

.pc-eyebrow--center {
	text-align: center;
}

/* Podkreślenie tytułu karty rysowane gradientem */
.pc-card-title span {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 97%;
	background-size: 0% 1.5px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	transition: background-size 0.5s var(--pc-ease-out);
	padding-bottom: 5px;
}

.pc-card:hover .pc-card-title span,
.pc-card:focus-within .pc-card-title span {
	background-size: 100% 1.5px;
}

/* Link z kreską pojawiającą się na hover */
.pc-underline {
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.25s;
}

.pc-underline:hover,
.pc-underline:focus-visible {
	border-bottom-color: var(--pc-navy);
}

@keyframes pcFadeUp {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* -------------------------------------------------------------------------
   Nagłówek
   ---------------------------------------------------------------------- */

.pc-header {
	position: sticky;
	top: 10px;
	z-index: 100;
	height: var(--pc-header-h);
	background: var(--pc-white);
	border-radius: var(--pc-radius-lg);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 5px;
}

.pc-header__button {
	width: clamp(56px, 7vw, 88px);
	height: 80px;
	border: none;
	border-radius: var(--pc-radius-sm);
	background: var(--pc-button);
	color: var(--pc-navy);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	font-family: var(--pc-mono);
	font-size: 14px;
	text-decoration: none;
	transition: background 0.25s, color 0.25s, opacity 0.25s;
}

.pc-header__button:hover,
.pc-header__button:focus-visible {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-header__button[hidden] {
	display: none;
}

.pc-burger {
	position: relative;
	width: 30px;
	height: 9px;
	pointer-events: none;
}

.pc-burger span {
	position: absolute;
	left: 0;
	width: 30px;
	height: 1.5px;
	background: currentColor;
	transition: transform 0.35s ease;
}

.pc-burger span:first-child {
	top: 0;
}

.pc-burger span:last-child {
	bottom: 0;
}

.pc-header.is-open .pc-burger span:first-child {
	transform: translateY(3.75px) rotate(45deg);
}

.pc-header.is-open .pc-burger span:last-child {
	transform: translateY(-3.75px) rotate(-45deg);
}

/* Logo w trzech stadiach, przełączane postępem scrolla przez hero */
.pc-header__logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: min(192px, 44vw);
	height: 28px;
	display: block;
}

.pc-logo-stage {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	background: var(--pc-navy);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: 50% 50%;
	mask-position: 50% 50%;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: opacity 0.3s;
}

.pc-logo-stage--full {
	width: 192px;
	height: 28px;
}

.pc-logo-stage--point {
	width: 112px;
	height: 27px;
	opacity: 0;
}

.pc-logo-stage--mark {
	width: 24px;
	height: 27px;
	opacity: 0;
}

.pc-header__logo--static .pc-logo-stage--mark {
	opacity: 1;
}

/* Panel mega menu */
.pc-menu {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--pc-white);
	border-radius: 0 0 var(--pc-radius-lg) var(--pc-radius-lg);
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.5s ease;
}

.pc-header.is-open .pc-menu {
	max-height: 700px;
}

.pc-menu__inner {
	padding: 24px 25px 25px;
}

.pc-menu__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-menu-tile {
	display: block;
	background: var(--pc-navy);
	border-radius: var(--pc-radius-lg);
	padding: 6px;
	text-decoration: none;
	transition: background 0.25s;
}

.pc-menu-tile:hover,
.pc-menu-tile:focus-visible {
	background: var(--pc-navy-light);
}

.pc-menu-tile__media {
	width: 100%;
	aspect-ratio: 415 / 258;
	border-radius: var(--pc-radius-sm);
	background-color: var(--pc-placeholder);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.pc-menu-tile__label {
	padding: 18px 8px 14px;
	color: var(--pc-white);
	font-family: var(--pc-display);
	font-size: 34px;
	line-height: 1;
}

.pc-menu__mobile {
	display: none;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-menu__mobile a {
	height: 76px;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-navy);
	color: var(--pc-white);
	font-family: var(--pc-display);
	font-size: 30px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 22px;
	text-decoration: none;
}

.pc-menu__social-label {
	margin-top: 36px;
}

.pc-menu__social {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 16px;
	align-items: center;
	padding: 0;
	list-style: none;
}

.pc-social-button {
	flex: 1 1 150px;
	max-width: 215px;
	height: 80px;
	display: flex;
	gap: 13px;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: var(--pc-radius-sm);
	background: var(--pc-button);
	font-family: var(--pc-mono);
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pc-navy);
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}

.pc-social-button:hover,
.pc-social-button:focus-visible {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-icon-mask {
	display: block;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: 50% 50%;
	mask-position: 50% 50%;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.pc-menu__lang {
	margin-left: auto;
	height: 80px;
	padding: 0 28px;
	display: flex;
	gap: 12px;
	align-items: center;
	width: auto;
	max-width: none;
	flex: 0 0 auto;
}

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

.pc-hero {
	position: relative;
	width: 100%;
	height: calc(100vh - 99px);
}

.pc-hero__wrap {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(50vh - 99px - min(7.3vw, 104px));
}

.pc-hero__desktop {
	position: relative;
}

.pc-hero__mobile {
	display: none;
	position: relative;
}

.pc-hero svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.pc-hero__fill {
	position: absolute;
	inset: 0;
	clip-path: inset(-20% 100% -20% 0);
}

.pc-hero__mobile .pc-hero__fill {
	clip-path: inset(-10% 100% -10% 0);
}

.pc-hero__label {
	margin-top: 62px;
	text-align: center;
}

.pc-hero__label--mobile {
	margin: 0 0 52px;
}

/* -------------------------------------------------------------------------
   O nas
   ---------------------------------------------------------------------- */

.pc-about__body {
	position: relative;
	width: min(1164px, calc(100% - 12px));
	margin: 36px auto 0;
}

.pc-about__text {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(19px, 1.9vw, 27px);
	line-height: 1.75;
	text-align: center;
	text-wrap: pretty;
}

.pc-about__highlight {
	position: relative;
	white-space: nowrap;
}

.pc-about__ellipse {
	position: absolute;
	left: -0.58em;
	top: -0.38em;
	width: calc(100% + 1.16em);
	height: 1.85em;
	overflow: visible;
	pointer-events: none;
}

.pc-about__ellipse path {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 1.4s ease 0.15s;
}

.pc-about.is-drawn .pc-about__ellipse path {
	stroke-dashoffset: 0;
}

/* -------------------------------------------------------------------------
   Obszary i klienci
   ---------------------------------------------------------------------- */

.pc-areas {
	margin: 248px 0 0;
}

.pc-areas__row {
	margin-top: 18px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 0;
	list-style: none;
}

.pc-areas__button {
	border: none;
	cursor: pointer;
	font-family: var(--pc-display);
	font-size: clamp(17px, 1.95vw, 28px);
	line-height: 1;
	letter-spacing: 0.01em;
	color: var(--pc-navy);
	padding: 0.5em 0.72em;
	border-radius: var(--pc-radius-lg);
	white-space: nowrap;
	background: transparent;
	transition: background 0.3s ease;
}

.pc-areas__button:hover {
	background: rgba(255, 255, 255, 0.55);
}

.pc-areas__button[aria-pressed='true'] {
	background: var(--pc-white);
}

.pc-clients-wrap {
	position: relative;
	overflow: visible;
	transition: max-height 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.pc-clients {
	margin: 62px 0 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(262px, 42vw), 1fr));
	gap: clamp(8px, 1.1vw, 16px);
	padding: 0;
	list-style: none;
}

.pc-client {
	position: relative;
	aspect-ratio: 1.027;
	border-radius: var(--pc-radius-sm);
	background: var(--pc-navy);
	color: var(--pc-white);
	transition: background 0.5s ease, opacity 0.5s ease, transform 0.6s var(--pc-ease-out);
	list-style: none;
}

.pc-client:hover {
	background: var(--pc-navy-hover);
}

.pc-client[hidden] {
	display: none;
}

.pc-client__logo {
	position: absolute;
	inset: 0;
	background: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: 50% 50%;
	mask-position: 50% 50%;
	transition: transform 0.55s var(--pc-ease-out);
}

.pc-client:hover .pc-client__logo {
	transform: scale(1.12);
}

/* Skracanie siatki dotyczy tylko wąskich ekranów. */
.pc-pill[data-clients-toggle] {
	display: none;
}

.pc-pill {
	display: flex;
	margin: 18px auto 0;
	align-items: center;
	justify-content: center;
	height: 46px;
	padding: 0 28px;
	border: none;
	border-radius: 999px;
	background: var(--pc-white);
	font-family: var(--pc-mono);
	font-size: 12px;
	text-transform: uppercase;
	color: var(--pc-navy);
	cursor: pointer;
	text-decoration: none;
	transition: background 0.25s, color 0.25s;
}

.pc-pill:hover,
.pc-pill:focus-visible {
	background: var(--pc-navy);
	color: var(--pc-white);
}

/* -------------------------------------------------------------------------
   Aktualności — karuzela
   ---------------------------------------------------------------------- */

.pc-news {
	margin: 120px 0 0;
}

.pc-news__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
}

.pc-news__title {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(40px, 4.9vw, 70px);
	line-height: 0.85;
	letter-spacing: -0.02em;
	font-weight: 400;
}

.pc-news__nav {
	display: flex;
	gap: 11px;
	align-items: center;
}

.pc-arrows {
	display: flex;
	gap: 4px;
}

.pc-arrow {
	width: 24px;
	height: 24px;
	border: none;
	background: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	color: var(--pc-navy);
	transition: opacity 0.25s;
}

.pc-arrow:disabled {
	opacity: 0.3;
	cursor: default;
}

.pc-arrow__chevron {
	width: 5px;
	height: 10px;
	background: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* Tor karuzeli wychodzi poza kontener aż do krawędzi okna */
.pc-track {
	display: flex;
	overflow-x: auto;
	cursor: grab;
	user-select: none;
	scrollbar-width: none;
	margin-right: calc(-1 * ((100vw - min(100vw, var(--pc-max))) / 2 + var(--pc-gutter)));
	scroll-snap-type: x proximity;
}

.pc-track::-webkit-scrollbar {
	display: none;
}

.pc-track.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
}

.pc-news__track {
	margin-top: 46px;
	gap: 17px;
}

.pc-news__track > * {
	scroll-snap-align: start;
}

.pc-card {
	position: relative;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-surface);
	overflow: hidden;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-decoration: none;
	color: var(--pc-navy);
}

.pc-card--wide {
	flex: 0 0 min(620px, 86vw);
	padding: 20px;
}

.pc-card__media {
	width: 100%;
	aspect-ratio: 652 / 413;
	border-radius: var(--pc-radius-img);
	background-color: var(--pc-placeholder);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	display: block;
}

.pc-chips {
	display: flex;
	gap: 4px;
	flex-wrap: wrap;
	padding: 0;
	margin: 0;
	list-style: none;
}

.pc-card--wide .pc-chips {
	margin-top: 29px;
}

.pc-chip {
	height: 40px;
	border-radius: var(--pc-radius-sm);
	padding: 14px 10px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	background: var(--pc-chip-muted);
	font-family: var(--pc-mono);
	font-size: 12px;
	line-height: 12px;
	text-transform: uppercase;
	color: var(--pc-navy);
	text-decoration: none;
}

.pc-chip--accent {
	background: var(--pc-chip-accent);
}

.pc-chip--link {
	transition: background 0.25s, color 0.25s;
}

.pc-chip--link:hover,
.pc-chip--link:focus-visible {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-chip--small {
	height: 32px;
	padding: 0 10px;
	font-size: 11px;
	line-height: 11px;
}

.pc-card--wide .pc-card-title {
	margin-top: 22px;
	font-family: var(--pc-display);
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1.18;
}

.pc-card-title a {
	color: inherit;
	text-decoration: none;
}

.pc-card__excerpt {
	margin: 24px 0 0;
	font-family: var(--pc-body);
	font-size: 16px;
	line-height: 1.65;
}

.pc-card__more {
	margin-top: 44px;
	font-family: var(--pc-mono);
	font-size: 14px;
	line-height: 12px;
	color: var(--pc-navy);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 4px;
	transition: border-color 0.25s;
}

.pc-card:hover .pc-card__more,
.pc-card__more:hover,
.pc-card__more:focus-visible {
	border-bottom-color: var(--pc-navy);
}

/* -------------------------------------------------------------------------
   Kontakt
   ---------------------------------------------------------------------- */

.pc-contact {
	margin: 120px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 48px 40px;
	justify-content: space-between;
	align-items: flex-start;
}

.pc-contact__intro {
	width: min(633px, 100%);
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.pc-contact__title {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(44px, 4.9vw, 70px);
	line-height: 0.87;
	letter-spacing: -0.01em;
	font-weight: 400;
}

.pc-contact__lead {
	margin: 0;
	font-family: var(--pc-display);
	font-size: 26px;
	line-height: 1.25;
}

.pc-contact__details {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 24px;
}

.pc-contact__label {
	font-family: var(--pc-body);
	font-size: 16px;
	line-height: 1.2;
}

.pc-contact__label + .pc-contact__label {
	margin-top: 14px;
}

.pc-contact__links {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.pc-contact__links a,
.pc-contact__email {
	font-family: var(--pc-mono);
	font-weight: 500;
	font-size: 19px;
	text-decoration: none;
	width: fit-content;
	border-bottom: 1px solid transparent;
	transition: border-color 0.25s;
}

.pc-contact__links a:hover,
.pc-contact__email:hover {
	border-bottom-color: var(--pc-navy);
}

/* Formularz */
.pc-form {
	width: min(692px, 100%);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pc-form__fields {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pc-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.pc-field {
	flex: 1 1 240px;
	display: flex;
	min-width: 0;
}

.pc-field input,
.pc-form textarea {
	width: 100%;
	height: 50px;
	border: none;
	border-radius: var(--pc-radius-field);
	background: var(--pc-surface);
	padding: 0 20px;
	font-family: var(--pc-body);
	font-size: 14px;
	color: var(--pc-navy);
	box-sizing: border-box;
	transition: box-shadow 0.25s ease, background 0.25s ease;
}

.pc-form textarea {
	height: 231px;
	resize: none;
	padding: 20px;
}

.pc-form input:focus,
.pc-form textarea:focus {
	outline: 1px solid var(--pc-ghost);
	outline-offset: 0;
}

.pc-field.has-error input,
.pc-form .has-error textarea {
	box-shadow: inset 0 0 0 1px var(--pc-error), inset 0 0 0 999px var(--pc-error-bg);
}

.pc-field__error {
	display: none;
}

/* Pole-pułapka na roboty */
.pc-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pc-form__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: space-between;
	align-items: center;
}

.pc-consent {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	width: min(443px, 100%);
	cursor: pointer;
	margin: 0;
}

.pc-consent input {
	position: absolute;
	opacity: 0;
	width: 16px;
	height: 16px;
	margin: 0;
}

.pc-consent__box {
	flex: none;
	width: 16px;
	height: 16px;
	border-radius: 3px;
	background: rgba(0, 20, 136, 0.05);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease, box-shadow 0.2s ease;
}

.pc-consent__box svg {
	opacity: 0;
	transition: opacity 0.15s ease;
}

.pc-consent input:checked + .pc-consent__box {
	background: var(--pc-navy);
}

.pc-consent input:checked + .pc-consent__box svg {
	opacity: 1;
}

.pc-consent input:focus-visible + .pc-consent__box {
	outline: 2px solid var(--pc-navy);
	outline-offset: 3px;
}

.pc-consent.has-error .pc-consent__box {
	box-shadow: inset 0 0 0 1.5px var(--pc-error);
}

.pc-consent__text {
	margin: 0;
	font-family: var(--pc-body);
	font-size: 12px;
	line-height: 1.5;
	user-select: none;
}

.pc-submit {
	display: flex;
	gap: 15px;
	align-items: center;
	justify-content: center;
	height: 53px;
	padding: 0 30px;
	border: none;
	border-radius: var(--pc-radius-field);
	background: rgba(0, 20, 136, 0.05);
	font-family: var(--pc-mono);
	font-size: 15px;
	text-transform: uppercase;
	color: var(--pc-navy);
	cursor: pointer;
	transition: background 0.25s, transform 0.15s ease, opacity 0.25s;
}

.pc-submit:hover {
	background: rgba(0, 20, 136, 0.12);
}

.pc-submit:active {
	transform: scale(0.97);
}

.pc-submit[disabled] {
	opacity: 0.55;
	pointer-events: none;
}

.pc-submit__arrow {
	width: 19px;
	height: 19px;
	background: var(--pc-navy);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.pc-form__message {
	margin: -20px 0 0;
	font-family: var(--pc-mono);
	font-size: 12px;
	text-align: right;
	animation: pcFadeUp 0.45s ease both;
}

.pc-form__message--error {
	color: var(--pc-error);
}

/* -------------------------------------------------------------------------
   Stopka
   ---------------------------------------------------------------------- */

.pc-footer {
	margin: 120px 0 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 24px 0;
	align-items: flex-end;
}

.pc-footer__logo {
	display: block;
	width: 191.636px;
	height: 28px;
	background: var(--pc-navy);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: 0 100%;
	mask-position: 0 100%;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.pc-footer__social {
	display: flex;
	gap: clamp(24px, 4.2vw, 60px);
	margin-left: clamp(24px, 8.3vw, 119px);
	padding: 0;
	list-style: none;
}

.pc-footer__meta {
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 20px clamp(24px, 4.2vw, 60px);
	align-items: center;
	padding: 0;
	list-style: none;
}

.pc-footer a,
.pc-footer span {
	font-family: var(--pc-mono);
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
}

/* -------------------------------------------------------------------------
   Wpis
   ---------------------------------------------------------------------- */

.pc-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 22px 0 0;
	font-family: var(--pc-mono);
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
	align-self: flex-start;
	border-bottom: 1px solid transparent;
	transition: border-color 0.25s;
}

.pc-back:hover {
	border-bottom-color: var(--pc-navy);
}

.pc-article {
	margin-top: 14px;
	background: var(--pc-white);
	border-radius: var(--pc-radius-lg);
	padding: 20px;
}

.pc-article__hero {
	width: 100%;
	aspect-ratio: 1780 / 620;
	border-radius: var(--pc-radius-sm);
	background-color: var(--pc-placeholder);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.pc-article__chips {
	margin-top: 28px;
	gap: 6px;
}

.pc-article__chips .pc-chip {
	padding: 14px 12px;
}

.pc-article__cols {
	display: flex;
	gap: 48px;
	margin-top: 26px;
	align-items: stretch;
}

.pc-article__main {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.pc-article__title {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(28px, 2.9vw, 42px);
	line-height: 1.25;
	letter-spacing: -0.01em;
	font-weight: 400;
	max-width: 640px;
	text-wrap: pretty;
}

.pc-prose {
	margin-top: 26px;
	font-family: var(--pc-body);
	font-size: 15px;
	line-height: 1.8;
}

.pc-prose > * {
	margin: 0 0 22px;
}

.pc-prose > *:last-child {
	margin-bottom: 0;
}

.pc-prose h2,
.pc-prose h3 {
	font-family: var(--pc-display);
	font-weight: 400;
	line-height: 1.25;
	margin: 34px 0 14px;
}

.pc-prose h2 {
	font-size: 28px;
}

.pc-prose h3 {
	font-size: 22px;
}

.pc-prose blockquote {
	padding-left: 22px;
	border-left: 2px solid var(--pc-navy);
	font-family: var(--pc-display);
	font-size: 18px;
	line-height: 1.65;
}

.pc-prose blockquote p {
	margin: 0;
}

.pc-prose blockquote p + p {
	margin-top: 12px;
}

.pc-prose ul,
.pc-prose ol {
	padding-left: 22px;
}

.pc-prose li + li {
	margin-top: 8px;
}

.pc-prose a {
	color: var(--pc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pc-prose img,
.pc-prose figure {
	max-width: 100%;
	height: auto;
	border-radius: var(--pc-radius-img);
}

.pc-prose figcaption {
	font-size: 13px;
	line-height: 1.5;
	margin-top: 8px;
	opacity: 0.75;
}

.pc-article__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: 44px;
}

.pc-author {
	display: flex;
	align-items: center;
	gap: 16px;
}

.pc-author img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.pc-author__meta {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.pc-author__name {
	font-family: var(--pc-display);
	font-size: 19px;
	line-height: 1;
}

.pc-author__role {
	font-family: var(--pc-mono);
	font-size: 12px;
	line-height: 1;
	opacity: 0.85;
}

.pc-share {
	display: flex;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.pc-share a,
.pc-share button {
	width: 36px;
	height: 36px;
	border: none;
	border-radius: 50%;
	background: none;
	box-shadow: inset 0 0 0 1px rgba(0, 20, 136, 0.3);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pc-navy);
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}

.pc-share a:hover,
.pc-share button:hover,
.pc-share a:focus-visible,
.pc-share button:focus-visible {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-share .pc-icon-mask {
	width: 14px;
	height: 14px;
}

.pc-aside {
	width: 300px;
	flex: 0 0 auto;
	border-left: 1px solid var(--pc-hairline);
	padding-left: 40px;
	box-sizing: content-box;
}

.pc-aside__media {
	width: 100%;
	border-radius: var(--pc-radius-img);
	background-color: var(--pc-placeholder);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.pc-aside__caption {
	margin: 16px 0 0;
	font-family: var(--pc-body);
	font-size: 14px;
	line-height: 1.5;
}

/* Czytaj dalej */
.pc-related {
	margin: 110px 0 0;
}

.pc-related__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.pc-related__title {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(30px, 3.1vw, 44px);
	line-height: 1;
	letter-spacing: -0.01em;
	font-weight: 400;
}

.pc-arrow--boxed {
	width: 44px;
	height: 44px;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-white);
	transition: background 0.25s, color 0.25s;
}

.pc-arrow--boxed:hover:not(:disabled) {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-related__track {
	gap: 16px;
	margin-top: 40px;
}

.pc-card--compact {
	flex: 0 0 calc((100% - 40px) / 3.5);
	padding: 14px;
	transition: transform 0.3s ease, background 0.3s ease;
}

.pc-card--compact:hover {
	transform: translateY(-4px);
}

.pc-card--compact .pc-chips {
	margin-top: 16px;
}

.pc-card--compact .pc-card-title {
	margin-top: 14px;
	font-family: var(--pc-display);
	font-size: 22px;
	line-height: 1.4;
}

.pc-card--compact .pc-card__more {
	margin-top: auto;
	padding-top: 22px;
	font-size: 12px;
	line-height: 12px;
	text-transform: uppercase;
	padding-bottom: 3px;
}

/* -------------------------------------------------------------------------
   Archiwum
   ---------------------------------------------------------------------- */

.pc-archive {
	margin-top: 44px;
}

.pc-archive__title {
	margin: 0;
	font-family: var(--pc-display);
	font-size: clamp(34px, 3.4vw, 50px);
	line-height: 1;
	letter-spacing: -0.01em;
	font-weight: 400;
}

.pc-archive__intro {
	margin: 20px 0 0;
	max-width: 660px;
	font-family: var(--pc-body);
	font-size: 15px;
	line-height: 1.6;
	text-wrap: pretty;
}

.pc-filters {
	display: flex;
	gap: 8px;
	align-items: center;
	margin-top: 56px;
	flex-wrap: wrap;
	padding: 0;
	list-style: none;
}

.pc-filter {
	height: 48px;
	border: none;
	border-radius: var(--pc-radius-sm);
	padding: 0 8px 0 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
	background: var(--pc-white);
	color: var(--pc-navy);
	font-family: var(--pc-mono);
	font-size: 12px;
	line-height: 12px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.25s, color 0.25s;
}

.pc-filter:hover {
	background: rgba(0, 20, 136, 0.08);
}

.pc-filter.is-active {
	background: var(--pc-navy);
	color: var(--pc-white);
}

.pc-filter__count {
	min-width: 30px;
	height: 24px;
	border-radius: 12px;
	padding: 0 8px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pc-badge);
	color: var(--pc-navy);
	font-size: 11px;
}

.pc-filter.is-active .pc-filter__count {
	background: rgba(255, 255, 255, 0.16);
	color: var(--pc-white);
}

.pc-search {
	margin-left: auto;
	width: min(360px, 100%);
	height: 48px;
	border-radius: var(--pc-radius-lg);
	background: var(--pc-white);
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 18px;
	box-sizing: border-box;
}

.pc-search input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: var(--pc-mono);
	font-size: 13px;
	color: var(--pc-navy);
	text-transform: uppercase;
	min-width: 0;
}

.pc-search input:focus {
	outline: none;
}

.pc-search button {
	border: none;
	background: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	color: var(--pc-navy);
}

.pc-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 24px;
	padding: 0;
	list-style: none;
}

.pc-grid .pc-card {
	background: var(--pc-white);
	padding: 14px;
	transition: background 0.3s ease;
	animation: pcFadeUp 0.45s ease both;
	height: 100%;
}

.pc-grid .pc-card:hover {
	background: var(--pc-tile-hover);
}

.pc-empty {
	margin: 48px 0 0;
	font-family: var(--pc-body);
	font-size: 15px;
}

.pc-loadmore {
	margin: 40px auto 0;
}

/* -------------------------------------------------------------------------
   Wejścia sekcji przy przewijaniu
   ---------------------------------------------------------------------- */

[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
}

[data-reveal].is-visible {
	opacity: 1;
	transform: none;
	transition: opacity 0.7s ease, transform 0.85s var(--pc-ease-out);
	transition-delay: var(--pc-delay, 0ms);
}

.pc-client[data-reveal] {
	transform: scale(0.95) translateY(16px);
}

.pc-client[data-reveal].is-visible {
	transform: none;
	transition: opacity 0.5s ease, transform 0.6s var(--pc-ease-out);
}

.no-js [data-reveal] {
	opacity: 1;
	transform: none;
}

/* -------------------------------------------------------------------------
   Breakpointy
   ---------------------------------------------------------------------- */

@media (max-width: 1100px) {
	.pc-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {
	.pc-article__cols {
		gap: 32px;
	}

	.pc-aside {
		width: 240px;
		padding-left: 28px;
	}
}

@media (max-width: 720px) {
	.pc-header {
		height: 64px;
	}

	.pc-header__button {
		height: 54px;
	}

	.pc-header__logo {
		transform: translate(-50%, -50%) scale(0.62);
	}

	.pc-header.is-open .pc-menu {
		max-height: calc(100vh - 150px);
	}

	.pc-menu__inner {
		padding: 16px 14px 22px;
		overflow-y: auto;
		max-height: calc(100vh - 170px);
	}

	.pc-menu__tiles,
	.pc-menu__lang {
		display: none;
	}

	.pc-menu__mobile {
		display: flex;
	}

	.pc-hero__desktop,
	.pc-hero__label:not(.pc-hero__label--mobile) {
		display: none;
	}

	.pc-hero__mobile {
		display: block;
	}

	.pc-hero__wrap {
		top: 50%;
		transform: translateY(-50%);
	}

	.pc-areas {
		margin-top: 88px;
	}

	.pc-areas__row {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: none;
		padding-bottom: 6px;
	}

	.pc-areas__row::-webkit-scrollbar {
		display: none;
	}

	.pc-areas__button {
		min-height: 44px;
	}

	.pc-clients {
		margin-top: 36px;
	}

	.pc-clients-wrap.is-collapsed {
		overflow: hidden;
		max-height: 295vw;
	}

	.pc-pill[data-clients-toggle] {
		display: flex;
	}

	.pc-news {
		margin-top: 64px;
	}

	.pc-news__track {
		margin-top: 28px;
	}

	.pc-news .pc-arrow {
		width: 44px;
		height: 44px;
	}

	.pc-contact {
		margin-top: 64px;
		gap: 40px;
	}

	.pc-footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 22px;
		margin-top: 72px;
	}

	.pc-footer__social,
	.pc-footer__meta {
		margin-left: 0;
	}

	.pc-article {
		padding: 14px;
	}

	.pc-article__hero {
		aspect-ratio: 4 / 3;
	}

	.pc-article__cols {
		flex-direction: column;
		gap: 32px;
	}

	.pc-aside {
		width: 100%;
		border-left: none;
		padding-left: 0;
	}

	.pc-related {
		margin-top: 64px;
	}

	.pc-related__track {
		margin-top: 24px;
	}

	.pc-card--compact {
		flex: 0 0 78vw;
	}

	.pc-archive {
		margin-top: 30px;
	}

	.pc-filters {
		margin-top: 36px;
	}

	.pc-search {
		flex: 1 1 100%;
		width: 100%;
		margin-left: 0;
	}

	.pc-grid {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: 18px;
	}
}

/* -------------------------------------------------------------------------
   Ograniczenie ruchu
   ---------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	[data-reveal] {
		opacity: 1;
		transform: none;
	}

	.pc-about__ellipse path {
		stroke-dashoffset: 0;
	}

	.pc-hero__fill {
		clip-path: none;
	}
}
