/* ==========================================================
   AGROEKO
   MAIN STYLESHEET
   ========================================================== */


/* ==========================================================
   1. RESET
   ========================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	margin: 0;
	padding: 0;

	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	padding: 0;
}

img,
picture,
svg,
video {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea,
select {
	font: inherit;
}

button {
	cursor: pointer;
}

ul,
ol {
	margin-top: 0;
}

figure {
	margin: 0;
}


/* ==========================================================
   2. FALLBACK VARIABLES
   ========================================================== */

:root {

	/* COLORS */

	--ae-primary: #02578e;

	--ae-text: #141414;
	--ae-text-muted: #666666;

	--ae-bg: #ffffff;
	--ae-bg-alt: #f7f7f7;

	--ae-border: #e0e0e0;


	/* TYPOGRAPHY */

	--ae-font-heading: "Host Grotesk", sans-serif;
	--ae-font-body: "Inter", sans-serif;
	--ae-font-button: "Inter", sans-serif;

	--ae-font-size-body: 16px;
	--ae-font-size-small: 14px;

	--ae-font-size-h1: 56px;
	--ae-font-size-h2: 36px;
	--ae-font-size-h3: 24px;

	--ae-line-height-body: 1.6;
	--ae-line-height-heading: 1.15;


	/* LAYOUT */

	--ae-container: 1500px;

	--ae-gutter-desktop: 32px;
	--ae-gutter-tablet: 24px;
	--ae-gutter-mobile: 20px;


	/* SECTION SPACING */

	--ae-section-desktop: 96px;
	--ae-section-tablet: 72px;
	--ae-section-mobile: 56px;


	/* RADIUS */

	--ae-radius-card: 20px;
	--ae-radius-image: 20px;

	--ae-radius-button-small: 15px;
	--ae-radius-button-medium: 25px;
	--ae-radius-button-large: 50px;


	/* BUTTONS */

	--ae-button-border-light: #e0e0e0;
}


/* ==========================================================
   3. GLOBAL
   ========================================================== */

body {
	min-width: 320px;

	font-family: var(--ae-font-body);
	font-size: var(--ae-font-size-body);
	font-weight: 400;
	line-height: var(--ae-line-height-body);

	color: var(--ae-text);
	background-color: var(--ae-bg);

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}


/*
 * Przy otwartym menu mobilnym blokujemy scroll strony.
 * Sam panel menu ma własny scroll.
 */
body.menu-open {
	overflow: hidden;
}


::selection {
	color: #ffffff;
	background-color: var(--ae-primary);
}


/* ==========================================================
   4. TYPOGRAPHY
   ========================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;

	font-family: var(--ae-font-heading);
	font-weight: 500;
	line-height: var(--ae-line-height-heading);

	color: var(--ae-text);
}

h1 {
	font-size: var(--ae-font-size-h1);
}

h2 {
	font-size: var(--ae-font-size-h2);
}

h3 {
	font-size: var(--ae-font-size-h3);
}

p {
	margin-top: 0;
}

p:last-child {
	margin-bottom: 0;
}

strong,
b {
	font-weight: 600;
}

.text-muted {
	color: var(--ae-text-muted);
}

.text-primary {
	color: var(--ae-primary);
}

.text-center {
	text-align: center;
}


/* ==========================================================
   5. CONTAINERS
   ========================================================== */

.container {
	width: min(
		calc(100% - (var(--ae-gutter-desktop) * 2)),
		var(--ae-container)
	);

	margin-left: auto;
	margin-right: auto;
}

.container--full {
	width: 100%;
	max-width: none;
}

.container--fluid {
	width: 100%;

	padding-left: var(--ae-gutter-desktop);
	padding-right: var(--ae-gutter-desktop);
}


/* ==========================================================
   6. SECTIONS
   ========================================================== */

.section {
	padding-top: var(--ae-section-desktop);
	padding-bottom: var(--ae-section-desktop);
}

.section--top {
	padding-top: var(--ae-section-desktop);
}

.section--bottom {
	padding-bottom: var(--ae-section-desktop);
}

.section--white {
	background-color: var(--ae-bg);
}

.section--alt {
	background-color: var(--ae-bg-alt);
}


/* ==========================================================
   7. MEDIA
   ========================================================== */

.media-rounded {
	overflow: hidden;

	border-radius: var(--ae-radius-image);
}

.media-rounded img {
	width: 100%;
	height: 100%;

	object-fit: cover;
}


/* ==========================================================
   8. CARDS
   ========================================================== */

.card {
	overflow: hidden;

	border-radius: var(--ae-radius-card);
}

.card--border {
	border: 1px solid var(--ae-border);
}

.card--white {
	background-color: var(--ae-bg);
}

.card--alt {
	background-color: var(--ae-bg-alt);
}


/* ==========================================================
   9. BUTTONS
   ========================================================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 8px;

	min-height: 44px;

	padding: 10px 24px;

	font-family: var(--ae-font-button);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;

	text-align: center;

	border: 1px solid transparent;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		opacity 0.2s ease,
		transform 0.2s ease;
}

.btn:hover {
	opacity: 0.9;
}

.btn:active {
	transform: translateY(1px);
}

.btn:focus-visible {
	outline: 2px solid var(--ae-primary);
	outline-offset: 3px;
}

.btn--primary {
	color: #ffffff;

	background-color: var(--ae-primary);
	border-color: var(--ae-primary);
}

.btn--white {
	color: var(--ae-primary);

	background-color: #ffffff;
	border-color: var(--ae-button-border-light);
}

.btn--outline {
	color: var(--ae-primary);

	background-color: transparent;
	border-color: var(--ae-primary);
}

.btn--r15 {
	border-radius: var(--ae-radius-button-small);
}

.btn--r25 {
	border-radius: var(--ae-radius-button-medium);
}

.btn--r50 {
	border-radius: var(--ae-radius-button-large);
}

.btn--small {
	min-height: 36px;

	padding: 8px 18px;

	font-size: 13px;
}

.btn--large {
	min-height: 50px;

	padding: 12px 30px;
}


/* ==========================================================
   10. FORMS
   ========================================================== */

input,
textarea,
select {
	width: 100%;

	color: var(--ae-text);

	background-color: #ffffff;

	border: 1px solid var(--ae-border);
	border-radius: 10px;

	outline: none;

	transition:
		border-color 0.2s ease;
}

input,
select {
	min-height: 48px;

	padding: 10px 15px;
}

textarea {
	min-height: 120px;

	padding: 14px 15px;

	resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--ae-primary);
}

input::placeholder,
textarea::placeholder {
	color: var(--ae-text-muted);

	opacity: 0.6;
}


/* ==========================================================
   11. ACCESSIBILITY
   ========================================================== */

.screen-reader-text {
	position: absolute !important;

	width: 1px;
	height: 1px;

	margin: -1px;
	padding: 0;

	overflow: hidden;

	clip: rect(0, 0, 0, 0);

	white-space: nowrap;

	border: 0;
}

.screen-reader-text:focus {
	position: fixed !important;

	top: 10px;
	left: 10px;

	z-index: 100000;

	width: auto;
	height: auto;

	margin: 0;
	padding: 12px 16px;

	clip: auto;

	color: var(--ae-text);

	background-color: #ffffff;

	border: 1px solid var(--ae-border);
}


/* ==========================================================
   12. HEADER
   ========================================================== */

.site-header {
	position: relative;
	z-index: 1000;

	width: 100%;

	background-color: var(--ae-bg);

	border-bottom: 1px solid var(--ae-border);
}

.site-header--sticky {
	position: sticky;
	top: 0;
}

.site-header__container {
	min-height:
		var(
			--ae-header-height,
			110px
		);

	display: flex;
	align-items: center;

	gap: 48px;
}


/* ==========================================================
   13. HEADER LOGO
   ========================================================== */

.site-header__brand {
	display: flex;
	align-items: center;

	flex: 0 0 auto;

	width:
		min(
			var(
				--ae-header-logo-width,
				320px
			),
			35vw
		);
}

.site-header__logo-image {
	display: block;

	width: 100%;
	height: auto;

	max-height:
		calc(
			var(
				--ae-header-height,
				110px
			) - 24px
		);

	object-fit: contain;
	object-position: left center;
}

.site-header__brand-text {
	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 600;

	color: var(--ae-text);
}


/* ==========================================================
   14. HEADER DESKTOP
   ========================================================== */

.site-header__desktop {
	flex: 1 1 auto;

	display: flex;
	align-items: center;
	justify-content: flex-end;

	gap: 42px;
}

.site-header__navigation {
	display: flex;
	align-items: center;
}

.site-menu {
	display: flex;
	align-items: center;

	gap: 36px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.site-menu > li {
	position: relative;

	margin: 0;
	padding: 0;
}

.site-menu > li > a {
	display: flex;
	align-items: center;

	min-height: 44px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;

	white-space: nowrap;

	color: var(--ae-text-muted);

	transition:
		color 0.2s ease;
}

.site-menu > li > a:hover,
.site-menu > li.current-menu-item > a,
.site-menu > li.current-menu-ancestor > a {
	color: var(--ae-primary);
}


/* ==========================================================
   15. DESKTOP SUBMENU ARROW
   ========================================================== */

.site-header__desktop
.site-menu
> li.menu-item-has-children
> a {
	gap: 8px;
}

.site-header__desktop
.site-menu
> li.menu-item-has-children
> a::after {
	content: "";

	flex: 0 0 7px;

	width: 7px;
	height: 7px;

	margin-top: -4px;

	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;

	transform:
		rotate(45deg);

	transition:
		transform 0.22s ease;
}

.site-header__desktop
.site-menu
> li.menu-item-has-children:hover
> a::after,
.site-header__desktop
.site-menu
> li.menu-item-has-children:focus-within
> a::after {
	transform:
		translateY(3px)
		rotate(225deg);
}


/* ==========================================================
   16. DESKTOP SUBMENU
   ========================================================== */

.site-header__desktop
.site-menu
> li.menu-item-has-children {
	position: relative;
}


/*
 * Niewidoczny most pomiędzy linkiem głównym a submenu.
 */
.site-header__desktop
.site-menu
> li.menu-item-has-children::before {
	content: "";

	position: absolute;

	top: calc(100% - 6px);
	left: -18px;
	right: -18px;

	z-index: 19;

	height: 18px;

	background: transparent;

	pointer-events: auto;
}


.site-header__desktop
.site-menu
.sub-menu {
	position: absolute;

	top: 100%;
	left: -20px;

	z-index: 20;

	min-width: 240px;

	margin: 0;
	padding: 10px;

	list-style: none;

	background-color: #ffffff;

	border: 1px solid var(--ae-border);
	border-radius: 15px;

	box-shadow:
		0 12px 35px
		rgba(0, 0, 0, 0.08);

	opacity: 0;
	visibility: hidden;

	transform:
		translateY(10px);

	pointer-events: none;

	transition:
		opacity 0.2s ease,
		transform 0.28s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		),
		visibility 0s linear 0.18s;
}


.site-header__desktop
.site-menu
.sub-menu li {
	position: relative;

	margin: 0;
}


.site-header__desktop
.site-menu
.sub-menu a {
	display: flex;
	align-items: center;

	padding:
		10px
		12px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;

	color: var(--ae-text-muted);

	border-radius: 8px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease;
}


.site-header__desktop
.site-menu
.sub-menu a:hover,
.site-header__desktop
.site-menu
.sub-menu
.current-menu-item
> a {
	color: var(--ae-primary);

	background-color: var(--ae-bg-alt);
}


.site-header__desktop
.site-menu
li:hover
> .sub-menu,
.site-header__desktop
.site-menu
li:focus-within
> .sub-menu {
	opacity: 1;
	visibility: visible;

	transform:
		translateY(0);

	pointer-events: auto;

	transition-delay: 0s;
}


/* ==========================================================
   17. NESTED DESKTOP SUBMENU
   ========================================================== */

.site-header__desktop
.site-menu
.sub-menu
.menu-item-has-children
> a {
	justify-content: space-between;

	gap: 14px;
}

.site-header__desktop
.site-menu
.sub-menu
.menu-item-has-children
> a::after {
	content: "";

	flex: 0 0 6px;

	width: 6px;
	height: 6px;

	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;

	transform:
		rotate(-45deg);
}


/*
 * Most pomiędzy kolejnymi poziomami submenu.
 */
.site-header__desktop
.site-menu
.sub-menu
.menu-item-has-children::before {
	content: "";

	position: absolute;

	top: 0;
	right: -14px;

	z-index: 19;

	width: 18px;
	height: 100%;

	background: transparent;
}


.site-header__desktop
.site-menu
.sub-menu
.sub-menu {
	top: -10px;
	left: calc(100% + 8px);
}


/* ==========================================================
   18. HEADER CTA
   ========================================================== */

.site-header__cta {
	flex: 0 0 auto;

	min-width: 160px;
	min-height: 46px;

	padding-left: 26px;
	padding-right: 26px;

	font-size: 14px;
}


/* ==========================================================
   19. MOBILE MENU TOGGLE
   ========================================================== */

.site-header__toggle {
	display: none;

	width: 46px;
	height: 46px;

	padding: 10px;

	align-items: center;
	justify-content: center;
	flex-direction: column;

	gap: 5px;

	color: var(--ae-text);

	background-color: transparent;

	border: 1px solid var(--ae-border);
	border-radius: 15px;

	transition:
		border-color 0.2s ease,
		color 0.2s ease,
		background-color 0.2s ease;
}

.site-header__toggle:hover {
	color: var(--ae-primary);

	border-color: var(--ae-primary);
}

.site-header__toggle span {
	display: block;

	width: 22px;
	height: 2px;

	background-color: currentColor;

	border-radius: 10px;

	transition:
		transform 0.25s ease,
		opacity 0.2s ease;
}

.site-header__toggle[aria-expanded="true"]
span:nth-child(1) {
	transform:
		translateY(7px)
		rotate(45deg);
}

.site-header__toggle[aria-expanded="true"]
span:nth-child(2) {
	opacity: 0;
}

.site-header__toggle[aria-expanded="true"]
span:nth-child(3) {
	transform:
		translateY(-7px)
		rotate(-45deg);
}


/* ==========================================================
   20. MOBILE MENU PANEL
   ========================================================== */

.site-header__mobile-panel {
	position: relative;

	background-color: #ffffff;

	border-top:
		1px solid
		var(--ae-border);

	border-radius:
		0
		0
		18px
		18px;

	box-shadow:
		0 18px 35px
		rgba(20, 20, 20, 0.08);

	max-height:
		calc(
			100dvh - 84px
		);

	overflow-x: hidden;
	overflow-y: auto;

	opacity: 0;
	visibility: hidden;

	transform:
		translateY(-10px);

	pointer-events: none;

	overscroll-behavior: contain;

	-webkit-overflow-scrolling: touch;

	transition:
		opacity 0.25s ease,
		transform 0.32s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		),
		visibility 0.25s ease;
}

.site-header__mobile-panel[hidden] {
	display: none;
}

.site-header__mobile-panel.is-open {
	opacity: 1;
	visibility: visible;

	transform:
		translateY(0);

	pointer-events: auto;
}

.site-header__mobile-inner {
	padding-top: 16px;
	padding-bottom: 24px;
}

.site-header__mobile-navigation {
	width: 100%;
}


/* ==========================================================
   21. MOBILE MENU
   ========================================================== */

.site-menu--mobile {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;

	list-style: none;
}


.site-menu--mobile > li {
	position: relative;

	margin: 0;

	padding-left: 2px;
	padding-right: 2px;

	border-bottom:
		1px solid
		var(--ae-border);

	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		border-radius 0.25s ease,
		padding 0.25s ease,
		margin 0.25s ease;
}


.site-menu--mobile > li:last-child {
	border-bottom: 0;
}


.site-menu--mobile > li > a {
	display: flex;
	align-items: center;

	width: 100%;
	min-height: 56px;

	padding:
		8px
		58px
		8px
		4px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.3;

	color: var(--ae-text-muted);

	transition:
		color 0.2s ease;
}


.site-menu--mobile
> li:not(.menu-item-has-children)
> a {
	padding-right: 4px;
}


.site-menu--mobile
> li
> a:hover {
	color: var(--ae-primary);
}


.site-menu--mobile
> li.current-menu-item
> a,
.site-menu--mobile
> li.current-menu-ancestor
> a {
	color: var(--ae-primary);
}


/* ==========================================================
   22. MOBILE PARENT OPEN STATE
   ========================================================== */

.site-menu--mobile
> li.menu-item-has-children.is-submenu-open {
	margin-top: 7px;
	margin-bottom: 9px;

	padding-left: 14px;
	padding-right: 14px;

	background-color: #f7fbfd;

	border:
		1px solid
		#dbeaf3;

	border-radius: 16px;
}


.site-menu--mobile
> li.menu-item-has-children.is-submenu-open
> a {
	color: var(--ae-primary);

	font-weight: 500;
}


/* ==========================================================
   23. MOBILE SUBMENU TOGGLE
   SLIDER-STYLE BUTTON
   ========================================================== */

.site-menu--mobile
.menu-item-has-children {
	position: relative;
}


.submenu-toggle {
	position: absolute;

	top: 9px;
	right: 6px;

	z-index: 3;

	width: 38px;
	height: 38px;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 0;

	color: var(--ae-primary);

	background-color: #ffffff;

	border:
		1px solid
		#e0e0e0;

	border-radius: 50%;

	box-shadow:
		0 4px 12px
		rgba(0, 0, 0, 0.07);

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease;
}


.submenu-toggle:hover,
.submenu-toggle:focus-visible {
	color: var(--ae-primary);

	background-color: #ffffff;

	border-color: var(--ae-primary);

	box-shadow:
		0 6px 16px
		rgba(0, 0, 0, 0.11);

	transform:
		scale(1.04);
}


.site-menu--mobile
.menu-item-has-children.is-submenu-open
> .submenu-toggle {
	border-color:
		rgba(
			2,
			87,
			142,
			0.45
		);

	box-shadow:
		0 5px 14px
		rgba(2, 87, 142, 0.12);
}


.submenu-toggle__icon {
	width: 9px;
	height: 9px;

	margin-top: -4px;

	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;

	transform:
		rotate(45deg);

	transition:
		transform 0.28s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}


.menu-item-has-children.is-submenu-open
> .submenu-toggle
.submenu-toggle__icon {
	transform:
		translateY(4px)
		rotate(225deg);
}


/* ==========================================================
   24. MOBILE SUBMENU
   ========================================================== */

.site-menu--mobile
.sub-menu {
	display: block;

	max-height: 0;

	margin: 0;

	padding:
		0
		10px
		0
		12px;

	overflow: hidden;

	list-style: none;

	background-color: transparent;

	border:
		1px solid
		transparent;

	border-radius: 12px;

	opacity: 0;

	transform:
		translateY(-5px);

	transition:
		max-height 0.35s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		),
		opacity 0.22s ease,
		transform 0.3s ease,
		padding-top 0.3s ease,
		padding-bottom 0.3s ease,
		background-color 0.25s ease,
		border-color 0.25s ease;
}


.site-menu--mobile
.menu-item-has-children.is-submenu-open
> .sub-menu {
	margin-bottom: 12px;

	padding-top: 5px;
	padding-bottom: 7px;

	opacity: 1;

	transform:
		translateY(0);

	background-color: #ffffff;

	border-color: #e8eef2;
}


.site-menu--mobile
.sub-menu
li {
	position: relative;

	margin: 0;
}


.site-menu--mobile
.sub-menu
li + li {
	border-top:
		1px solid
		#f1f1f1;
}


.site-menu--mobile
.sub-menu
a {
	display: flex;
	align-items: center;

	gap: 10px;

	min-height: 44px;

	padding:
		9px
		42px
		9px
		4px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;

	color: var(--ae-text-muted);

	border-radius: 9px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		padding-left 0.2s ease;
}


.site-menu--mobile
.sub-menu
a::before {
	content: "";

	flex: 0 0 5px;

	width: 5px;
	height: 5px;

	background-color: #c5d8e5;

	border-radius: 50%;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}


.site-menu--mobile
.sub-menu
a:hover {
	color: var(--ae-primary);

	background-color: #f7fbfd;

	padding-left: 8px;
}


.site-menu--mobile
.sub-menu
a:hover::before {
	background-color: var(--ae-primary);

	transform:
		scale(1.2);
}


.site-menu--mobile
.sub-menu
.current-menu-item
> a {
	color: var(--ae-primary);

	font-weight: 500;

	background-color: #f4f9fc;
}


.site-menu--mobile
.sub-menu
.current-menu-item
> a::before {
	background-color: var(--ae-primary);
}


/* ==========================================================
   25. NESTED MOBILE SUBMENU TOGGLE
   ========================================================== */

.site-menu--mobile
.sub-menu
.submenu-toggle {
	top: 5px;
	right: 3px;

	width: 34px;
	height: 34px;

	box-shadow:
		0 3px 9px
		rgba(0, 0, 0, 0.06);
}


.site-menu--mobile
.sub-menu
.submenu-toggle__icon {
	width: 8px;
	height: 8px;

	border-right-width: 1.5px;
	border-bottom-width: 1.5px;
}


/* ==========================================================
   26. MOBILE CTA
   ========================================================== */

.site-header__mobile-cta {
	width: 100%;

	min-height: 48px;

	margin-top: 20px;

	box-shadow:
		0 5px 14px
		rgba(2, 87, 142, 0.12);
}


/* ==========================================================
   27. MOBILE MENU OPEN ANIMATION
   ========================================================== */

.site-header__mobile-panel
.site-menu--mobile
> li {
	opacity: 0;

	transform:
		translateY(-5px);

	transition:
		opacity 0.25s ease,
		transform 0.3s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		),
		background-color 0.25s ease,
		border-color 0.25s ease;
}


.site-header__mobile-panel.is-open
.site-menu--mobile
> li {
	opacity: 1;

	transform:
		translateY(0);
}


.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(1) {
	transition-delay: 0.03s;
}

.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(2) {
	transition-delay: 0.055s;
}

.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(3) {
	transition-delay: 0.08s;
}

.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(4) {
	transition-delay: 0.105s;
}

.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(5) {
	transition-delay: 0.13s;
}

.site-header__mobile-panel.is-open
.site-menu--mobile
> li:nth-child(6) {
	transition-delay: 0.155s;
}


/* ==========================================================
   28. ADMIN BAR
   ========================================================== */

body.admin-bar .site-header--sticky {
	top: 32px;
}

body.admin-bar
.site-header__mobile-panel {
	max-height:
		calc(
			100dvh - 116px
		);
}


/* ==========================================================
   29. BREADCRUMBS
   ========================================================== */

.page-breadcrumbs {
	width: 100%;

	background-color: var(--ae-bg);

	border-bottom: 1px solid var(--ae-border);
}

.breadcrumbs {
	min-height: 58px;

	display: flex;
	align-items: center;
}

.breadcrumbs__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	margin: 0;
	padding: 0;

	list-style: none;
}

.breadcrumbs__item {
	display: inline-flex;
	align-items: center;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;

	color: var(--ae-text-muted);
}

.breadcrumbs__item:not(:last-child)::after {
	content: "";

	width: 7px;
	height: 7px;

	margin-left: 16px;
	margin-right: 16px;

	border-top: 1px solid var(--ae-text-muted);
	border-right: 1px solid var(--ae-text-muted);

	transform:
		rotate(45deg);

	opacity: 0.55;
}

.breadcrumbs__link {
	color: var(--ae-text-muted);

	transition:
		color 0.2s ease;
}

.breadcrumbs__link:hover {
	color: var(--ae-primary);
}

.breadcrumbs__item--current {
	color: var(--ae-text);
}


/* ==========================================================
   30. PAGE HEADER
   ========================================================== */

.page-header {
	position: relative;

	width: 100%;
	height:
		var(
			--page-header-height,
			260px
		);

	overflow: hidden;

	background-color: var(--ae-bg-alt);
}

.page-header__background {
	position: absolute;
	inset: 0;

	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.page-header__overlay {
	position: absolute;
	inset: 0;

	background-color:
		var(
			--page-header-overlay-color,
			#000000
		);

	opacity:
		var(
			--page-header-overlay-opacity,
			0.2
		);
}

.page-header__container {
	position: relative;
	z-index: 2;

	height: 100%;

	display: flex;
	align-items: center;
	justify-content: center;
}

.page-header__title {
	max-width: 1100px;

	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: var(--ae-font-size-h1);
	font-weight: 500;
	line-height: 1.05;

	text-align: center;

	color:
		var(
			--page-header-title-color,
			#ffffff
		);
}


/* ==========================================================
   31. MAIN CONTENT
   ========================================================== */

.site-main {
	min-height: 400px;
}

.page-content {
	padding-top: var(--ae-section-desktop);
	padding-bottom: var(--ae-section-desktop);
}


/* ==========================================================
   32. HOME HERO
   ========================================================== */

.home-hero {
	position: relative;

	padding-top: 64px;
	padding-bottom: 58px;

	background-color: var(--ae-bg);
}

.home-hero__container {
	position: relative;

	width:
		min(
			calc(100% - 120px),
			var(--ae-container)
		);

	margin-inline: auto;
}

.home-hero__viewport {
	position: relative;

	width: 100%;

	overflow: hidden;

	background-color: #ffffff;

	border-radius: 20px;

	box-shadow:
		0 14px 34px
		rgba(0, 0, 0, 0.10);

	touch-action: pan-y;
}

.home-hero__track {
	display: flex;

	width: 100%;

	transition:
		transform 1.15s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);

	will-change: transform;

	user-select: none;
	-webkit-user-select: none;
}

.home-hero__track.is-dragging {
	transition: none;
}

.home-hero__slide {
	position: relative;

	flex: 0 0 100%;

	width: 100%;
}

.home-hero__card {
	min-height:
		var(
			--home-hero-height,
			430px
		);

	display: grid;

	grid-template-columns:
		44%
		56%;

	background-color: #ffffff;
}

.home-hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;

	padding:
		52px
		54px
		52px
		58px;
}

.home-hero__eyebrow {
	display: flex;
	align-items: center;

	gap: 7px;

	margin-bottom: 25px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;

	color: #999999;
}

.home-hero__eyebrow-check {
	flex: 0 0 auto;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;

	color: #999999;
}

.home-hero__title {
	max-width: 530px;

	margin: 0 0 20px;

	font-family: var(--ae-font-heading);
	font-size: 56px;
	font-weight: 400;
	line-height: 0.98;

	letter-spacing: -0.02em;

	color: #141414;
}

.home-hero__description {
	max-width: 510px;

	margin: 0 0 30px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #666666;
}

.home-hero__button {
	display: inline-flex;

	width: auto;

	min-width: 220px;
	min-height: 48px;

	padding: 12px 30px;

	font-family: var(--ae-font-button);
	font-size: 14px;
	font-weight: 500;

	color: #ffffff;

	background-color: #02578e;

	border: 1px solid #02578e;
	border-radius: 50px;
}

.home-hero__media {
	position: relative;

	min-width: 0;

	min-height:
		var(
			--home-hero-height,
			430px
		);

	overflow: hidden;
}

.home-hero__image {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position:
		var(
			--hero-image-position,
			center center
		);
}

.home-hero__arrow {
	position: absolute;

	top:
		calc(
			var(
				--home-hero-height,
				430px
			) / 2
		);

	z-index: 20;

	width: 50px;
	height: 50px;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 0;

	color: #02578e;

	background-color: #ffffff;

	border: 1px solid #e0e0e0;
	border-radius: 50%;

	box-shadow:
		0 4px 14px
		rgba(0, 0, 0, 0.08);

	transform:
		translateY(-50%);

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease;
}

.home-hero__arrow:hover {
	border-color: #02578e;

	transform:
		translateY(-50%)
		scale(1.04);

	box-shadow:
		0 7px 18px
		rgba(0, 0, 0, 0.12);
}

.home-hero__arrow svg {
	width: 18px;
	height: 18px;

	stroke: currentColor;
}

.home-hero__arrow--prev {
	left: -58px;
}

.home-hero__arrow--next {
	right: -58px;
}

.home-hero__pagination {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 14px;

	margin-top: 38px;
}

.home-hero__pagination-item {
	flex: 0 0 auto;

	width: 105px;
	height: 5px;

	margin: 0;
	padding: 0;

	background-color: #dddddd;

	border: 0;
	border-radius: 50px;

	transition:
		background-color 0.25s ease;
}

.home-hero__pagination-item:hover {
	background-color: #c8c8c8;
}

.home-hero__pagination-item.is-active {
	background-color: #02578e;
}


/* ==========================================================
   33. HOME SYSTEMS
   ========================================================== */

.home-systems {
	padding-top: 38px;
	padding-bottom: 96px;

	background-color: var(--ae-bg);
}

.home-systems__title {
	margin: 0 0 42px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 400;
	line-height: 1.15;

	color: #141414;
}

.home-systems__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 24px;
}

.system-card {
	position: relative;

	min-width: 0;

	aspect-ratio: 1.62 / 1;

	overflow: hidden;

	background-color: #222222;

	border-radius: 20px;

	box-shadow:
		0 8px 18px
		rgba(0, 0, 0, 0.16);
}

.system-card__media {
	position: absolute;
	inset: 0;
}

.system-card__image {
	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position:
		var(
			--system-image-position,
			center center
		);

	transition:
		transform 0.55s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}

.system-card__overlay {
	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			to bottom,
			rgba(0, 0, 0, 0.03) 5%,
			rgba(0, 0, 0, 0.10) 38%,
			rgba(
				0,
				0,
				0,
				var(
					--system-overlay,
					0.52
				)
			) 100%
		);
}

.system-card__content {
	position: relative;
	z-index: 2;

	width: 100%;
	height: 100%;

	display: flex;
	flex-direction: column;
	justify-content: space-between;

	padding: 18px;
}

.system-card__logo {
	display: flex;
	align-items: flex-start;

	max-width: 110px;
	max-height: 70px;
}

.system-card__logo-image {
	width: auto;
	height: auto;

	max-width: 110px;
	max-height: 70px;

	object-fit: contain;
}

.system-card__bottom {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 14px;
}

.system-card__title {
	max-width: 90%;

	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.16;

	color: #ffffff;

	text-shadow:
		0 1px 3px
		rgba(0, 0, 0, 0.25);
}


/* ==========================================================
   34. SYSTEM CARD BUTTON
   ========================================================== */

.system-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 6px;

	min-height: 32px;

	padding:
		7px
		12px
		7px
		14px;

	font-family: var(--ae-font-button);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;

	border: 1px solid transparent;
	border-radius: 50px;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}

.system-card__button svg {
	flex: 0 0 15px;

	width: 15px;
	height: 15px;
}

.system-card__button--white {
	color: #02578e;

	background-color: #ffffff;

	border-color: #ffffff;
}

.system-card__button--white:hover {
	color: #02578e;

	background-color: #f7f7f7;

	border-color: #f7f7f7;

	transform:
		translateY(-1px);
}

.system-card__button--blue {
	color: #ffffff;

	background-color: #02578e;

	border-color: #02578e;
}

.system-card__button--blue:hover {
	color: #ffffff;

	background-color: #014975;

	border-color: #014975;

	transform:
		translateY(-1px);
}

.system-card:hover
.system-card__image {
	transform:
		scale(1.035);
}


/* ==========================================================
   35. HOME WHY
   ========================================================== */

.home-why {
	padding-top: 82px;
	padding-bottom: 82px;

	background-color: #f7f7f7;
}

.home-why__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1.05fr)
		minmax(0, 0.95fr);

	align-items: center;

	gap: 72px;
}

.home-why__media {
	position: relative;

	width: 100%;

	aspect-ratio: 1.55 / 1;

	overflow: hidden;

	border-radius: 20px;
}

.home-why__image {
	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;
}

.home-why__content {
	min-width: 0;
}

.home-why__eyebrow {
	margin-bottom: 14px;

	font-family: var(--ae-font-body);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.45;

	color: #141414;
}

.home-why__title {
	max-width: 650px;

	margin: 0 0 40px;

	font-family: var(--ae-font-heading);
	font-size: 42px;
	font-weight: 700;
	line-height: 1.08;

	letter-spacing: -0.015em;

	color: #141414;
}

.home-why__highlight {
	color: #02578e;
}

.home-why__items {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	column-gap: 34px;
	row-gap: 30px;
}

.home-why__item {
	display: grid;

	grid-template-columns:
		52px
		minmax(0, 1fr);

	align-items: start;

	gap: 14px;
}

.home-why__icon {
	width: 52px;
	height: 52px;

	display: flex;
	align-items: center;
	justify-content: center;

	overflow: hidden;

	background-color: #dcecf5;

	border-radius: 50%;
}

.home-why__icon-image {
	width: 28px;
	height: 28px;

	object-fit: contain;
}

.home-why__item-content {
	min-width: 0;

	display: flex;
	flex-direction: column;

	padding-top: 3px;
}

.home-why__item-title {
	display: flex;
	align-items: flex-start;

	min-height: 54px;

	margin: 0 0 4px;

	font-family: var(--ae-font-body);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;

	color: #141414;
}

.home-why__item-description {
	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.45;

	color: #999999;
}


/* ==========================================================
   36. HOME NEWS
   ========================================================== */

.home-news {
	padding-top: 96px;
	padding-bottom: 96px;

	background-color: #ffffff;
}

.home-news__intro {
	max-width: 540px;

	margin-bottom: 46px;
}

.home-news__title {
	margin: 0 0 20px;

	font-family: var(--ae-font-heading);
	font-size: 36px;
	font-weight: 500;
	line-height: 1.1;

	color: #141414;
}

.home-news__description {
	max-width: 480px;

	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #666666;
}

.home-news__grid,
.news-archive__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 26px;
}


/* ==========================================================
   37. NEWS CARD
   ========================================================== */

.news-card {
	min-width: 0;

	display: flex;
	flex-direction: column;

	overflow: hidden;

	background-color: #ffffff;

	border: 1px solid #e0e0e0;
	border-radius: 20px;
}

.news-card__image-link {
	display: block;

	flex: 0 0 auto;
}

.news-card__media {
	position: relative;

	width: 100%;

	aspect-ratio: 1.82 / 1;

	overflow: hidden;

	background-color: #f7f7f7;
}

.news-card__image {
	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position:
		var(
			--news-image-position,
			center center
		);

	transition:
		transform 0.55s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}

.news-card:hover
.news-card__image {
	transform:
		scale(1.025);
}

.news-card__content {
	flex: 1 1 auto;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	padding: 22px 22px 20px;
}

.news-card__title {
	margin: 0 0 12px;

	font-family: var(--ae-font-heading);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;

	color: #141414;
}

.news-card__title a {
	color: inherit;
}

.news-card__title a:hover {
	color: #02578e;
}

.news-card__excerpt {
	margin: 0 0 16px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;

	color: #999999;
}

.news-card__meta {
	display: flex;
	align-items: center;

	gap: 5px;

	margin-top: auto;
	margin-bottom: 13px;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;

	color: #666666;
}

.news-card__clock {
	flex: 0 0 14px;

	width: 14px;
	height: 14px;
}

.news-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 5px;

	min-height: 31px;

	padding:
		7px
		12px
		7px
		14px;

	font-family: var(--ae-font-button);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background-color: #02578e;

	border: 1px solid #02578e;
	border-radius: 50px;

	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}

.news-card__button svg {
	flex: 0 0 15px;

	width: 15px;
	height: 15px;
}

.news-card__button:hover {
	background-color: #014975;

	transform:
		translateY(-1px);
}

.home-news__footer {
	display: flex;
	align-items: center;
	justify-content: center;

	margin-top: 52px;
}

.home-news__all {
	min-width: 260px;
	min-height: 52px;

	padding-inline: 30px;

	font-size: 13px;
}


/* ==========================================================
   38. NEWS ARCHIVE
   ========================================================== */

.news-archive-header {
	padding-top: 76px;
	padding-bottom: 44px;

	background-color: #ffffff;
}

.news-archive-header__title {
	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 52px;
	font-weight: 500;

	color: #141414;
}

.news-archive {
	padding-bottom: 96px;
}

.news-pagination {
	margin-top: 64px;
}

.news-pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 8px;
}

.news-pagination .page-numbers {
	min-width: 42px;
	height: 42px;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	padding: 0 10px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 500;

	color: #666666;

	background-color: #ffffff;

	border: 1px solid #e0e0e0;
	border-radius: 50px;
}

.news-pagination .page-numbers.current {
	color: #ffffff;

	background-color: #02578e;

	border-color: #02578e;
}

.news-pagination a.page-numbers:hover {
	color: #02578e;

	border-color: #02578e;
}


/* ==========================================================
   39. SINGLE NEWS
   ========================================================== */

.news-single {
	padding-top: 82px;
	padding-bottom: 96px;
}

.news-single__container {
	max-width: 1100px;
}

.news-single__header {
	max-width: 900px;

	margin-bottom: 42px;
}

.news-single__date {
	margin-bottom: 14px;

	font-family: var(--ae-font-body);
	font-size: 13px;

	color: #999999;
}

.news-single__title {
	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 54px;
	font-weight: 500;
	line-height: 1.05;

	color: #141414;
}

.news-single__hero {
	width: 100%;

	margin-bottom: 54px;

	overflow: hidden;

	border-radius: 20px;
}

.news-single__hero-image {
	width: 100%;
	height: auto;
}

.news-single__content {
	max-width: 850px;

	margin-inline: auto;

	font-family: var(--ae-font-body);
	font-size: 16px;
	line-height: 1.75;

	color: #141414;
}

.news-single__content p {
	margin-bottom: 24px;
}

.news-single__content h2,
.news-single__content h3 {
	margin-top: 48px;
	margin-bottom: 18px;
}


/* ==========================================================
   40. CERTIFICATION SYSTEM HERO
   ========================================================== */

.cert-system-hero {
	position: relative;

	width: 100%;
	height: 260px;

	overflow: hidden;

	background-color: #222222;
}

.cert-system-hero__background {
	position: absolute;
	inset: 0;

	background-size: cover;
	background-repeat: no-repeat;

	background-position:
		var(
			--cert-hero-position,
			center center
		);
}

.cert-system-hero__overlay {
	position: absolute;
	inset: 0;

	background-color: #000000;

	opacity:
		var(
			--cert-hero-overlay,
			0.08
		);
}

.cert-system-hero__container {
	position: relative;
	z-index: 2;

	height: 100%;

	display: flex;
	align-items: center;
	justify-content: center;
}

.cert-system-hero__title {
	max-width: 1200px;

	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 56px;
	font-weight: 500;
	line-height: 1.05;

	text-align: center;

	color: #ffffff;
}


/* ==========================================================
   41. CERT SYSTEM CONTENT
   ========================================================== */

.cert-system-content {
	padding-top: 54px;
	padding-bottom: 90px;

	background-color: #ffffff;
}

.cert-system-content__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		360px;

	align-items: start;

	gap: 64px;
}

.cert-system-main {
	width: 100%;
	min-width: 0;
}

.cert-system-sidebar {
	width: 100%;
	min-width: 0;

	display: flex;
	flex-direction: column;

	gap: 18px;
}


/* ==========================================================
   42. CERT SYSTEM TABS
   ========================================================== */

.cert-system-tabs {
	width: 100%;
	min-width: 0;
}

.cert-system-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;

	width: 100%;
	min-width: 0;

	gap: 4px;

	margin-bottom: 34px;
	padding: 0;

	overflow: visible;

	border: 0;
}

.cert-system-tabs__nav::before,
.cert-system-tabs__nav::after {
	display: none !important;

	content: none !important;
}

.cert-system-tabs__button {
	flex: 0 1 auto;

	width: auto;
	max-width: 100%;

	min-height: 42px;

	padding:
		10px
		20px;

	overflow: visible;

	font-family: var(--ae-font-button);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;

	white-space: normal;
	overflow-wrap: anywhere;

	text-align: center;

	color: #ffffff;

	background-color: #02578e;

	border: 1px solid #02578e;

	border-radius:
		7px
		7px
		0
		0;

	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease;
}

.cert-system-tabs__button:hover {
	color: #ffffff;

	background-color: #014975;

	border-color: #014975;
}

.cert-system-tabs__button.is-active {
	color: #02578e;

	background-color: #ffffff;

	border-color: #02578e;
}

.cert-system-tabs__button.is-active:hover {
	color: #02578e;

	background-color: #ffffff;
}


/* ==========================================================
   43. CERT TAB ANIMATION
   ========================================================== */

.cert-system-tabs__panel[hidden] {
	display: none;
}

.cert-system-tabs__panel.is-entering {
	animation:
		cert-system-tab-in
		0.42s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		)
		both;
}

@keyframes cert-system-tab-in {

	from {
		opacity: 0;

		transform:
			translateY(9px);
	}

	to {
		opacity: 1;

		transform:
			translateY(0);
	}
}


/* ==========================================================
   44. CERT WYSIWYG
   ========================================================== */

.cert-system-main__wysiwyg {
	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.55;

	color: #141414;
}

.cert-system-main__wysiwyg h2 {
	margin:
		0
		0
		24px;

	font-family: var(--ae-font-heading);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}

.cert-system-main__wysiwyg h3 {
	margin:
		28px
		0
		14px;

	font-family: var(--ae-font-body);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;

	color: #22384d;
}

.cert-system-main__wysiwyg h4 {
	margin:
		24px
		0
		12px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;

	color: #141414;
}

.cert-system-main__wysiwyg p {
	margin:
		0
		0
		16px;
}

.cert-system-main__wysiwyg ul {
	margin:
		16px
		0
		26px;

	padding: 0;

	list-style: none;
}

.cert-system-main__wysiwyg ul li {
	position: relative;

	margin-bottom: 9px;

	padding-left: 24px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;

	color: #506579;
}

.cert-system-main__wysiwyg ul li::before {
	content: "›";

	position: absolute;

	top: -1px;
	left: 4px;

	font-size: 18px;
	font-weight: 400;
	line-height: 1.35;

	color: #506579;
}

.cert-system-main__wysiwyg ol {
	margin:
		16px
		0
		26px;

	padding-left: 24px;
}

.cert-system-main__wysiwyg ol li {
	margin-bottom: 9px;

	padding-left: 3px;
}

.cert-system-main__wysiwyg a {
	color: #02578e;

	text-decoration: underline;

	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.cert-system-main__wysiwyg a:hover {
	text-decoration-color: transparent;
}

.cert-system-main__wysiwyg strong,
.cert-system-main__wysiwyg b {
	font-weight: 600;
}

.cert-system-main__wysiwyg img {
	max-width: 100%;
	height: auto;

	border-radius: 12px;
}

.cert-system-main__wysiwyg table {
	width: 100%;

	margin:
		24px
		0;

	border-collapse: collapse;
}

.cert-system-main__wysiwyg th,
.cert-system-main__wysiwyg td {
	padding:
		10px
		12px;

	text-align: left;

	border:
		1px solid
		#e0e0e0;
}

.cert-system-main__wysiwyg th {
	font-weight: 600;

	background-color: #f7f7f7;
}


/* ==========================================================
   45. CERT FAQ
   ========================================================== */

.cert-faq {
	width: 100%;
}

.cert-faq__title {
	margin:
		0
		0
		58px;

	padding-bottom: 20px;

	font-family: var(--ae-font-heading);
	font-size: 28px;
	font-weight: 500;
	line-height: 1.15;

	color: #02578e;

	border-bottom:
		1px solid
		#e0e0e0;
}

.cert-faq__items {
	width: 100%;
}

.cert-faq__item {
	border-top:
		1px solid
		#e0e0e0;
}

.cert-faq__item:last-child {
	border-bottom:
		1px solid
		#e0e0e0;
}

.cert-faq__question {
	width: 100%;
	min-height: 66px;

	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 24px;

	padding:
		17px
		10px
		17px
		0;

	text-align: left;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;

	color: #333333;

	background-color: transparent;

	border: 0;

	transition:
		color 0.2s ease;
}

.cert-faq__question:hover {
	color: #02578e;
}

.cert-faq__item.is-open
.cert-faq__question {
	font-weight: 600;

	color: #02578e;
}

.cert-faq__question-text {
	flex: 1 1 auto;
}

.cert-faq__toggle {
	position: relative;

	flex: 0 0 26px;

	width: 26px;
	height: 26px;

	border:
		1px solid
		#d8d8d8;

	border-radius: 50%;
}

.cert-faq__toggle span {
	position: absolute;

	top: 50%;
	left: 50%;

	width: 8px;
	height: 1px;

	background-color: #777777;

	transform:
		translate(
			-50%,
			-50%
		);

	transition:
		transform 0.25s ease,
		opacity 0.25s ease,
		background-color 0.25s ease;
}

.cert-faq__toggle
span:nth-child(2) {
	transform:
		translate(
			-50%,
			-50%
		)
		rotate(90deg);
}

.cert-faq__item.is-open
.cert-faq__toggle
span:nth-child(2) {
	opacity: 0;

	transform:
		translate(
			-50%,
			-50%
		)
		rotate(90deg)
		scaleX(0);
}

.cert-faq__item.is-open
.cert-faq__toggle
span {
	background-color: #02578e;
}

.cert-faq__answer {
	display: grid;

	grid-template-rows: 0fr;

	opacity: 0;

	transition:
		grid-template-rows
			0.35s
			cubic-bezier(
				0.22,
				1,
				0.36,
				1
			),
		opacity 0.3s ease;
}

.cert-faq__item.is-open
.cert-faq__answer {
	grid-template-rows: 1fr;

	opacity: 1;
}

.cert-faq__answer-inner {
	min-height: 0;

	overflow: hidden;
}

.cert-faq__answer-content {
	padding:
		0
		44px
		28px
		18px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #333333;
}

.cert-faq__answer-content p {
	margin:
		0
		0
		8px;
}

.cert-faq__answer-content p:last-child {
	margin-bottom: 0;
}

.cert-faq__answer-content ul,
.cert-faq__answer-content ol {
	margin:
		10px
		0;

	padding-left: 20px;
}


/* ==========================================================
   46. CERT BOTTOM BUTTONS
   ========================================================== */

.cert-system-main__buttons {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	gap: 24px;

	margin-top: 42px;
}

.cert-system-main__button {
	min-width: 260px;
	min-height: 48px;

	font-size: 14px;
	font-weight: 500;
}


/* ==========================================================
   47. CERT SEARCH
   ========================================================== */

.cert-search-card {
	padding:
		24px
		22px;

	background-color: #02578e;

	border-radius: 10px;
}

.cert-search-card__title {
	display: flex;
	align-items: center;

	gap: 8px;

	margin:
		0
		0
		20px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;

	letter-spacing: 0.04em;

	color: #ffffff;
}

.cert-search-card__title-icon {
	flex: 0 0 22px;

	width: 22px;
	height: 22px;

	object-fit: contain;
}

.cert-search-card__form {
	position: relative;
}

.cert-search-card__input {
	width: 100%;
	height: 38px;
	min-height: 38px;

	padding:
		8px
		45px
		8px
		15px;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;

	color: #141414;

	background-color: #ffffff;

	border: 0;
	border-radius: 50px;
}

.cert-search-card__submit {
	position: absolute;

	top: 50%;
	right: 7px;

	width: 30px;
	height: 30px;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 0;

	color: #141414;

	background-color: transparent;

	border: 0;

	transform:
		translateY(-50%);
}

.cert-search-card__submit svg {
	width: 18px;
	height: 18px;
}


/* ==========================================================
   48. CERT DOWNLOADS
   ========================================================== */

.cert-downloads {
	padding:
		22px
		20px
		26px;

	background-color: #f7f7f7;

	border-radius: 4px;
}

.cert-downloads__title {
	display: flex;
	align-items: center;

	gap: 9px;

	margin:
		0
		0
		16px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;

	letter-spacing: 0.04em;

	color: #141414;
}

.cert-downloads__title-icon {
	flex: 0 0 25px;

	width: 25px;
	height: 25px;

	object-fit: contain;
}

.cert-downloads__list {
	border-top:
		1px solid
		#e0e0e0;
}

.cert-downloads__item {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 18px;

	min-height: 48px;

	padding:
		9px
		2px;

	border-bottom:
		1px solid
		#e0e0e0;
}

.cert-downloads__item-title {
	flex: 1 1 auto;

	min-width: 0;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;

	color: #999999;
}

.cert-downloads__formats {
	flex: 0 0 auto;

	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;

	gap: 8px 10px;
}

.cert-downloads__format {
	display: inline-flex;
	align-items: center;

	gap: 4px;

	font-family: var(--ae-font-body);
	font-size: 9px;
	font-weight: 500;
	line-height: 1;

	color: #02578e;

	transition:
		opacity 0.2s ease;
}

.cert-downloads__format:hover {
	opacity: 0.7;
}

.cert-downloads__format img {
	flex: 0 0 16px;

	width: 16px;
	height: 16px;

	object-fit: contain;
}

.cert-downloads__notes {
	margin-top: 42px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;

	color: #141414;
}

.cert-downloads__notes p {
	margin-bottom: 10px;
}

.cert-downloads__notes ol,
.cert-downloads__notes ul {
	padding-left: 18px;
}


/* ==========================================================
   49. GLOBAL CTA
   ========================================================== */

.global-cta {
	position: relative;

	width: 100%;

	min-height:
		var(
			--global-cta-height,
			450px
		);

	display: flex;
	align-items: center;

	overflow: hidden;

	background-color: var(--ae-bg-alt);
}

.global-cta__background {
	position: absolute;
	inset: 0;

	background-position:
		var(
			--global-cta-bg-position,
			center center
		);

	background-repeat: no-repeat;
	background-size: cover;
}

.global-cta__container {
	position: relative;
	z-index: 2;

	width:
		min(
			calc(100% - 128px),
			var(--ae-container)
		);

	margin-left: auto;
	margin-right: auto;
}

.global-cta__panel {
	position: relative;

	width: 100%;

	overflow: hidden;

	border-radius:
		var(
			--global-cta-panel-radius,
			20px
		);
}

.global-cta__panel-background {
	position: absolute;
	inset: 0;

	background-color:
		var(
			--global-cta-panel-color,
			#02578e
		);

	opacity:
		var(
			--global-cta-panel-opacity,
			0.55
		);
}

.global-cta__content {
	position: relative;
	z-index: 2;

	min-height: 198px;

	display: grid;

	grid-template-columns:
		minmax(0, 1.45fr)
		minmax(280px, 0.75fr);

	align-items: center;

	gap: 70px;

	padding:
		34px
		40px;

	color: #ffffff;
}

.global-cta__main {
	max-width: 650px;
}

.global-cta__title {
	margin: 0 0 8px;

	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.15;

	color: #ffffff;
}

.global-cta__description {
	max-width: 600px;

	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;

	color: #f1f1f1;
}

.global-cta__description p {
	margin: 0;
}

.global-cta__buttons {
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	gap: 10px;

	margin-top: 22px;
}

.global-cta__button {
	min-height: 36px;

	padding:
		8px
		18px;

	font-family: var(--ae-font-button);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;

	border-radius: 12px;
}

.global-cta__buttons
.global-cta__button:first-child {
	min-width: 180px;

	color: #02578e;

	background-color: #ffffff;

	border-color: #ffffff;
}

.global-cta__buttons
.global-cta__button:first-child:hover {
	color: #02578e;

	background-color: #f7f7f7;

	border-color: #f7f7f7;
}

.global-cta__buttons
.global-cta__button:last-child {
	min-width: 132px;

	color: #ffffff;

	background-color: #02578e;

	border-color: #02578e;
}

.global-cta__buttons
.global-cta__button:last-child:hover {
	color: #ffffff;

	background-color: #014975;

	border-color: #014975;
}

.global-cta__contact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 16px;

	max-width: 500px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;

	color: #ffffff;
}

.global-cta__contact-item {
	margin: 0;

	color: #ffffff;
}

.global-cta__contact-item a {
	color: #ffffff;

	transition:
		opacity 0.2s ease;
}

.global-cta__contact-item a:hover {
	opacity: 0.75;
}

.global-cta__address {
	margin: 0;
}

.global-cta__phones {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 1px;
}

.global-cta__phone-label {
	margin-bottom: 1px;

	font-weight: 400;
}

.global-cta__phones a {
	display: block;

	color: #ffffff;
}


/* ==========================================================
   50. FOOTER
   ========================================================== */

.site-footer {
	width: 100%;

	padding-top:
		var(
			--footer-padding-top,
			48px
		);

	padding-bottom:
		var(
			--footer-padding-bottom,
			48px
		);

	background-color: var(--ae-bg);

	border-top: 1px solid var(--ae-border);
}

.site-footer--no-border {
	border-top: 0;
}

.site-footer__container {
	display: grid;

	grid-template-columns:
		minmax(220px, 1fr)
		auto
		minmax(150px, 1fr);

	align-items: center;

	gap: 40px;
}

.site-footer__company {
	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 500;

	color: var(--ae-text);
}

.site-footer__navigation {
	display: flex;
	align-items: center;
	justify-content: center;
}

.site-footer__menu {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;

	gap: 34px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.site-footer__menu a {
	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;

	color: var(--ae-text-muted);
}

.site-footer__menu a:hover {
	color: var(--ae-primary);
}

.site-footer__copyright {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;

	color: var(--ae-text-muted);
}


/* ==========================================================
   51. CERT SYSTEM SMALL DESKTOP
   ========================================================== */

@media (max-width: 1250px) {

	.cert-system-content__grid {
		grid-template-columns:
			minmax(0, 1fr)
			310px;

		gap: 34px;
	}


	.cert-system-tabs__button {
		flex:
			1
			1
			calc(50% - 4px);

		min-height: 44px;

		padding:
			10px
			14px;

		font-size: 14px;

		border-radius: 7px;
	}

}


/* ==========================================================
   52. HEADER BREAKPOINT
   ========================================================== */

@media (max-width: 1100px) {

	.site-header__container {
		min-height: 84px;

		gap: 24px;
	}


	.site-header__brand {
		width:
			min(
				var(
					--ae-header-logo-width-mobile,
					220px
				),
				70vw
			);
	}


	.site-header__logo-image {
		max-height: 66px;
	}


	.site-header__desktop {
		display: none;
	}


	.site-header__toggle {
		display: flex;

		margin-left: auto;
	}

}


/* ==========================================================
   53. TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.container {
		width:
			calc(
				100% -
				(var(--ae-gutter-tablet) * 2)
			);
	}


	.container--fluid {
		padding-left:
			var(--ae-gutter-tablet);

		padding-right:
			var(--ae-gutter-tablet);
	}


	.section {
		padding-top:
			var(--ae-section-tablet);

		padding-bottom:
			var(--ae-section-tablet);
	}


	.page-header {
		height:
			var(
				--page-header-height-tablet,
				220px
			);
	}


	.page-content {
		padding-top:
			var(--ae-section-tablet);

		padding-bottom:
			var(--ae-section-tablet);
	}


	/* HOME HERO */

	.home-hero {
		padding-top: 48px;
		padding-bottom: 50px;
	}


	.home-hero__container {
		width:
			calc(
				100% - 86px
			);
	}


	.home-hero__card,
	.home-hero__media {
		min-height:
			var(
				--home-hero-height-tablet,
				410px
			);
	}


	.home-hero__card {
		grid-template-columns:
			46%
			54%;
	}


	.home-hero__content {
		padding: 40px;
	}


	.home-hero__title {
		font-size: 46px;
	}


	.home-hero__arrow {
		top:
			calc(
				var(
					--home-hero-height-tablet,
					410px
				) / 2
			);

		width: 46px;
		height: 46px;
	}


	.home-hero__arrow--prev {
		left: -43px;
	}


	.home-hero__arrow--next {
		right: -43px;
	}


	.home-hero__pagination {
		margin-top: 32px;
	}


	.home-hero__pagination-item {
		width: 85px;
	}


	/* HOME SYSTEMS */

	.home-systems {
		padding-top: 30px;
		padding-bottom: 72px;
	}


	.home-systems__title {
		margin-bottom: 32px;

		font-size: 30px;
	}


	.home-systems__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		gap: 20px;
	}


	.system-card__title {
		font-size: 22px;
	}


	/* HOME WHY */

	.home-why {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.home-why__item-title {
	min-height: 0;
}


	.home-why__grid {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1fr);

		gap: 42px;
	}


	.home-why__title {
		margin-bottom: 32px;

		font-size: 36px;
	}


	.home-why__items {
		grid-template-columns: 1fr;

		gap: 20px;
	}


	.home-why__item {
		grid-template-columns:
			48px
			minmax(0, 1fr);

		gap: 12px;
	}


	.home-why__icon {
		width: 48px;
		height: 48px;
	}


	/* HOME NEWS */

	.home-news {
		padding-top: 72px;
		padding-bottom: 72px;
	}


	.home-news__intro {
		margin-bottom: 36px;
	}


	.home-news__title {
		font-size: 34px;
	}


	.home-news__grid,
	.news-archive__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		gap: 22px;
	}


	.news-card__content {
		padding: 20px;
	}


	.news-card__title {
		font-size: 19px;
	}


	.home-news__footer {
		margin-top: 42px;
	}


	.news-archive-header {
		padding-top: 60px;
	}


	.news-single {
		padding-top: 64px;
		padding-bottom: 72px;
	}


	.news-single__title {
		font-size: 46px;
	}


	/* CERT SYSTEM */

	.cert-system-hero {
		height: 220px;
	}


	.cert-system-hero__title {
		font-size: 48px;
	}


	.cert-system-content {
		padding-top: 48px;
		padding-bottom: 72px;
	}


	.cert-system-content__grid {
		grid-template-columns: 1fr;

		gap: 48px;
	}


	.cert-system-main,
	.cert-system-sidebar {
		width: 100%;
		min-width: 0;
	}


	.cert-system-tabs__button {
		flex:
			1
			1
			calc(50% - 4px);

		padding:
			10px
			16px;

		font-size: 13px;

		border-radius: 7px;
	}


	.cert-system-main__wysiwyg {
		font-size: 14px;
	}


	.cert-system-main__wysiwyg ul li {
		font-size: 15px;
	}


	.cert-system-main__button {
		min-width: 220px;
	}


	.cert-faq__title {
		font-size: 26px;
	}


	/* GLOBAL CTA */

	.global-cta {
		min-height:
			var(
				--global-cta-height-tablet,
				420px
			);
	}


	.global-cta__container {
		width:
			calc(
				100% - 72px
			);
	}


	.global-cta__content {
		min-height: 210px;

		grid-template-columns:
			minmax(0, 1.25fr)
			minmax(230px, 0.75fr);

		gap: 40px;

		padding:
			32px
			34px;
	}


	.global-cta__title {
		font-size: 23px;
	}


	.global-cta__description {
		font-size: 12px;
	}


	.global-cta__contact {
		font-size: 13px;
	}


	/* FOOTER */

	.site-footer__container {
		grid-template-columns: 1fr;

		gap: 28px;

		text-align: center;
	}


	.site-footer__navigation,
	.site-footer__copyright {
		justify-content: center;
	}

}


/* ==========================================================
   54. ADMIN BAR MOBILE
   ========================================================== */

@media (max-width: 782px) {

	body.admin-bar
	.site-header--sticky {
		top: 46px;
	}


	body.admin-bar
	.site-header__mobile-panel {
		max-height:
			calc(
				100dvh - 130px
			);
	}

}


/* ==========================================================
   55. MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.container {
		width:
			calc(
				100% -
				(var(--ae-gutter-mobile) * 2)
			);
	}


	.container--fluid {
		padding-left:
			var(--ae-gutter-mobile);

		padding-right:
			var(--ae-gutter-mobile);
	}


	.section {
		padding-top:
			var(--ae-section-mobile);

		padding-bottom:
			var(--ae-section-mobile);
	}


	h1 {
		font-size:
			clamp(
				36px,
				10vw,
				var(--ae-font-size-h1)
			);
	}


	h2 {
		font-size:
			clamp(
				28px,
				8vw,
				var(--ae-font-size-h2)
			);
	}


	/* MOBILE MENU */

	.site-header__mobile-inner {
		padding-top: 14px;
		padding-bottom: 22px;
	}


	.site-menu--mobile > li > a {
		min-height: 54px;

		font-size: 15px;
	}


	.site-menu--mobile
	> li.menu-item-has-children.is-submenu-open {
		padding-left: 12px;
		padding-right: 12px;
	}


	.submenu-toggle {
		top: 8px;

		width: 38px;
		height: 38px;
	}


	.site-menu--mobile
	.sub-menu
	a {
		min-height: 43px;

		font-size: 13px;
	}


	/* BREADCRUMBS */

	.breadcrumbs {
		min-height: 50px;
	}


	.breadcrumbs__item {
		font-size: 11px;
	}


	.breadcrumbs__item:not(:last-child)::after {
		margin-left: 10px;
		margin-right: 10px;
	}


	/* PAGE HEADER */

	.page-header {
		height:
			var(
				--page-header-height-mobile,
				170px
			);
	}


	.page-header__title {
		font-size:
			clamp(
				34px,
				10vw,
				48px
			);
	}


	.page-content {
		padding-top:
			var(--ae-section-mobile);

		padding-bottom:
			var(--ae-section-mobile);
	}


	/* HOME HERO */

	.home-hero {
		padding-top: 24px;
		padding-bottom: 40px;
	}


	.home-hero__container {
		width:
			calc(
				100% - 64px
			);
	}


	.home-hero__viewport {
		touch-action: pan-y;

		cursor: grab;
	}


	.home-hero__viewport:active {
		cursor: grabbing;
	}


	.home-hero__card {
		min-height:
			var(
				--home-hero-height-mobile,
				620px
			);

		grid-template-columns: 1fr;

		grid-template-rows:
			auto
			minmax(260px, 1fr);
	}


	.home-hero__content {
		padding:
			30px
			24px
			34px;
	}


	.home-hero__eyebrow {
		margin-bottom: 18px;

		font-size: 11px;
	}


	.home-hero__title {
		margin-bottom: 16px;

		font-size: 40px;
	}


	.home-hero__description {
		margin-bottom: 24px;

		font-size: 14px;
	}


	.home-hero__button {
		width: auto;

		min-width: 190px;
	}


	.home-hero__media {
		min-height: 270px;
	}


	.home-hero__arrow {
		top:
			calc(
				var(
					--home-hero-height-mobile,
					620px
				) / 2
			);

		width: 42px;
		height: 42px;

		transform:
			translateY(-50%);
	}


	.home-hero__arrow:hover {
		transform:
			translateY(-50%)
			scale(1.04);
	}


	.home-hero__arrow--prev {
		left: -30px;
	}


	.home-hero__arrow--next {
		right: -30px;
	}


	.home-hero__pagination {
		margin-top: 24px;

		gap: 8px;
	}


	.home-hero__pagination-item {
		flex: 1 1 0;

		width: auto;
		max-width: 80px;

		height: 4px;
	}


	/* HOME SYSTEMS */

	.home-systems {
		padding-top: 18px;
		padding-bottom: 56px;
	}


	.home-systems__title {
		margin-bottom: 26px;

		font-size: 28px;
	}


	.home-systems__grid {
		grid-template-columns: 1fr;

		gap: 18px;
	}


	.system-card {
		aspect-ratio: 1.5 / 1;
	}


	.system-card__content {
		padding: 16px;
	}


	.system-card__title {
		font-size: 22px;
	}


	.system-card__logo,
	.system-card__logo-image {
		max-width: 95px;
		max-height: 60px;
	}


	/* HOME WHY */

	.home-why {
		padding-top: 56px;
		padding-bottom: 56px;
	}


	.home-why__grid {
		grid-template-columns: 1fr;

		gap: 36px;
	}


	.home-why__media {
		aspect-ratio: 1.35 / 1;
	}


	.home-why__eyebrow {
		margin-bottom: 12px;

		font-size: 24px;
	}


	.home-why__title {
		margin-bottom: 30px;

		font-size: 32px;
	}


	.home-why__items {
		grid-template-columns: 1fr;

		gap: 22px;
	}


	.home-why__item {
		grid-template-columns:
			48px
			minmax(0, 1fr);
	}


	.home-why__item-title {
		font-size: 20px;
	}


	.home-why__item-description {
		font-size: 12px;
	}


	/* HOME NEWS */

	.home-news {
		padding-top: 56px;
		padding-bottom: 56px;
	}


	.home-news__intro {
		max-width: 100%;

		margin-bottom: 30px;
	}


	.home-news__title {
		margin-bottom: 14px;

		font-size: 30px;
	}


	.home-news__description {
		max-width: 100%;

		font-size: 13px;
	}


	.home-news__grid,
	.news-archive__grid {
		grid-template-columns: 1fr;

		gap: 20px;
	}


	.news-card__media {
		aspect-ratio: 1.75 / 1;
	}


	.news-card__content {
		padding: 18px;
	}


	.news-card__title {
		margin-bottom: 10px;

		font-size: 19px;
	}


	.news-card__excerpt {
		margin-bottom: 15px;

		font-size: 13px;
	}


	.news-card__meta {
		margin-bottom: 12px;
	}


	.home-news__footer {
		margin-top: 32px;
	}


	.home-news__all {
		width: auto;

		min-width: 220px;
		min-height: 48px;
	}


	/* NEWS */

	.news-archive-header {
		padding-top: 44px;
		padding-bottom: 32px;
	}


	.news-archive-header__title {
		font-size: 40px;
	}


	.news-archive {
		padding-bottom: 56px;
	}


	.news-pagination {
		margin-top: 46px;
	}


	.news-single {
		padding-top: 48px;
		padding-bottom: 56px;
	}


	.news-single__header {
		margin-bottom: 30px;
	}


	.news-single__title {
		font-size: 38px;
	}


	.news-single__hero {
		margin-bottom: 36px;
	}


	.news-single__content {
		font-size: 15px;
	}


	/* CERT SYSTEM */

	.cert-system-hero {
		height: 180px;
	}


	.cert-system-hero__title {
		font-size: 38px;
	}


	.cert-system-content {
		padding-top: 38px;
		padding-bottom: 56px;
	}


	.cert-system-content__grid {
		grid-template-columns: 1fr;

		gap: 42px;
	}


	.cert-system-tabs__nav {
		display: flex;
		flex-wrap: wrap;

		width: 100%;

		gap: 6px;

		margin-bottom: 30px;
		padding: 0;

		overflow: visible;

		border: 0;
	}


	.cert-system-tabs__button {
		flex: 1 1 100%;

		width: 100%;
		max-width: 100%;

		min-height: 44px;

		padding:
			11px
			14px;

		font-size: 14px;
		line-height: 1.25;

		white-space: normal;
		overflow-wrap: anywhere;

		border:
			1px solid
			#02578e;

		border-radius: 7px;
	}


	.cert-system-main__wysiwyg {
		font-size: 14px;
	}


	.cert-system-main__wysiwyg h2 {
		font-size: 27px;
	}


	.cert-system-main__wysiwyg h3 {
		font-size: 18px;
	}


	.cert-system-main__wysiwyg h4 {
		font-size: 16px;
	}


	.cert-system-main__wysiwyg ul li {
		padding-left: 21px;

		font-size: 14px;
	}


	/* FAQ */

	.cert-faq__title {
		margin-bottom: 38px;

		padding-bottom: 18px;

		font-size: 24px;
	}


	.cert-faq__question {
		min-height: 62px;

		gap: 16px;

		padding:
			16px
			4px
			16px
			0;

		font-size: 14px;
	}


	.cert-faq__toggle {
		flex-basis: 25px;

		width: 25px;
		height: 25px;
	}


	.cert-faq__answer-content {
		padding:
			0
			20px
			24px
			12px;

		font-size: 13px;
	}


	/* CERT BUTTONS */

	.cert-system-main__buttons {
		flex-direction: column;
		align-items: stretch;

		gap: 12px;
	}


	.cert-system-main__button {
		width: 100%;
		min-width: 0;
	}


	/* CERT SIDEBAR */

	.cert-search-card {
		padding:
			22px
			18px;
	}


	.cert-downloads {
		padding:
			22px
			18px;
	}


	.cert-downloads__item {
		align-items: flex-start;
	}


	.cert-downloads__formats {
		gap: 8px;
	}


	/* GLOBAL CTA */

	.global-cta {
		min-height:
			var(
				--global-cta-height-mobile,
				520px
			);

		padding-top: 44px;
		padding-bottom: 44px;
	}


	.global-cta__container {
		width:
			calc(
				100% - 40px
			);
	}


	.global-cta__content {
		min-height: 0;

		grid-template-columns: 1fr;

		gap: 30px;

		padding:
			28px
			24px;
	}


	.global-cta__main {
		max-width: 100%;
	}


	.global-cta__title {
		margin-bottom: 10px;

		font-size: 23px;
	}


	.global-cta__description {
		max-width: 100%;

		font-size: 12px;

		color: #f1f1f1;
	}


	.global-cta__buttons {
		align-items: flex-start;
		flex-direction: column;

		gap: 10px;

		margin-top: 20px;
	}


	.global-cta__button {
		min-height: 38px;

		font-size: 13px;
	}


	.global-cta__buttons
	.global-cta__button:first-child {
		width: auto;
		min-width: 180px;
	}


	.global-cta__buttons
	.global-cta__button:last-child {
		width: auto;
		min-width: 132px;
	}


	.global-cta__contact {
		max-width: 500px;

		gap: 13px;

		font-size: 13px;
	}


	/* FOOTER */

	.site-footer__container {
		gap: 26px;
	}


	.site-footer__menu {
		flex-direction: column;

		gap: 14px;
	}

}


/* ==========================================================
   56. SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.site-header__brand {
		width:
			min(
				var(
					--ae-header-logo-width-mobile,
					220px
				),
				calc(
					100vw - 110px
				)
			);
	}


	.site-header__toggle {
		flex: 0 0 46px;
	}


	/*
	 * Na bardzo małych ekranach submenu dalej
	 * zachowuje wygodny odstęp od krawędzi.
	 */
	.site-menu--mobile
	> li.menu-item-has-children.is-submenu-open {
		padding-left: 10px;
		padding-right: 10px;
	}


	.site-menu--mobile
	.sub-menu {
		padding-left: 9px;
		padding-right: 9px;
	}


	.home-hero__container {
		width:
			calc(
				100% - 58px
			);
	}


	.home-hero__arrow--prev {
		left: -27px;
	}


	.home-hero__arrow--next {
		right: -27px;
	}


	.home-news__all {
		width: 100%;

		min-width: 0;
	}


	.cert-downloads__item {
		flex-direction: column;

		gap: 8px;
	}


	.cert-downloads__formats {
		width: 100%;

		justify-content: flex-start;
	}

}

/* ==========================================================
   CERTIFIED SYSTEMS PAGE
   ========================================================== */

.cert-systems-page {
	width: 100%;

	background-color: #ffffff;
}


.cert-systems-page__content {
	padding-top: 52px;
	padding-bottom: 58px;
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - DIVIDER
   ========================================================== */

.cert-systems-page__divider {
	width: 100%;
	height: 1px;

	margin-bottom: 58px;

	background-color: var(--ae-border);
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - HEADER
   ========================================================== */

.cert-systems-page__header {
	margin-bottom: 62px;
}


.cert-systems-page__title {
	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 400;
	line-height: 1.15;

	letter-spacing: -0.01em;

	color: #141414;
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - GRID
   ========================================================== */

.cert-systems-page__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap:
		32px
		32px;

	width: 100%;
}


/*
 * Karty na stronie Certyfikowane systemy
 * mają tę samą proporcję i wygląd,
 * co na stronie głównej.
 */
.cert-systems-page
.system-card {
	width: 100%;

	aspect-ratio: 1.62 / 1;

	border-radius: 20px;
}


/*
 * Delikatnie większy cień jak w projekcie.
 */
.cert-systems-page
.system-card {
	box-shadow:
		0 8px 20px
		rgba(0, 0, 0, 0.17);
}


.cert-systems-page
.system-card__content {
	padding: 18px;
}


.cert-systems-page
.system-card__title {
	max-width: 92%;

	font-size: 24px;
	font-weight: 400;
	line-height: 1.16;
}


/*
 * Zachowujemy ustalone wcześniej:
 * 15px / weight 500.
 */
.cert-systems-page
.system-card__button {
	font-size: 15px;
	font-weight: 500;
}


.cert-systems-page
.system-card__button svg {
	width: 15px;
	height: 15px;

	flex-basis: 15px;
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - BOTTOM CTA
   ========================================================== */

.cert-systems-page__footer {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;

	margin-top: 34px;
}


.cert-systems-page__cta {
	min-width: 330px;
	min-height: 52px;

	padding:
		11px
		34px;

	font-family: var(--ae-font-button);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background-color: var(--ae-primary);

	border:
		1px solid
		var(--ae-primary);

	border-radius: 50px;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}


.cert-systems-page__cta:hover {
	color: #ffffff;

	background-color: #014975;

	border-color: #014975;

	opacity: 1;

	transform:
		translateY(-1px);

	box-shadow:
		0 6px 16px
		rgba(2, 87, 142, 0.16);
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - EMPTY
   ========================================================== */

.cert-systems-page__empty {
	padding:
		40px
		0;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: var(--ae-text-muted);
}


.cert-systems-page__empty p {
	margin: 0;
}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - MEDIUM DESKTOP
   ========================================================== */

@media (max-width: 1250px) {

	.cert-systems-page__content {
		padding-top: 48px;
		padding-bottom: 58px;
	}


	.cert-systems-page__divider {
		margin-bottom: 48px;
	}


	.cert-systems-page__header {
		margin-bottom: 48px;
	}


	.cert-systems-page__title {
		font-size: 30px;
	}


	.cert-systems-page__grid {
		gap:
			24px
			24px;
	}


	.cert-systems-page
	.system-card__title {
		font-size: 22px;
	}

}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.cert-systems-page__content {
		padding-top: 44px;
		padding-bottom: 60px;
	}


	.cert-systems-page__divider {
		margin-bottom: 44px;
	}


	.cert-systems-page__header {
		margin-bottom: 38px;
	}


	.cert-systems-page__title {
		font-size: 30px;
	}


	.cert-systems-page__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		gap:
			22px
			22px;
	}


	.cert-systems-page
	.system-card {
		aspect-ratio: 1.55 / 1;
	}


	.cert-systems-page__footer {
		margin-top: 32px;
	}

}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.cert-systems-page__content {
		padding-top: 32px;
		padding-bottom: 52px;
	}


	.cert-systems-page__divider {
		margin-bottom: 32px;
	}


	.cert-systems-page__header {
		margin-bottom: 28px;
	}


	.cert-systems-page__title {
		font-size: 27px;
		line-height: 1.2;

		letter-spacing: 0;
	}


	.cert-systems-page__grid {
		grid-template-columns: 1fr;

		gap: 18px;
	}


	.cert-systems-page
	.system-card {
		aspect-ratio: 1.5 / 1;
	}


	.cert-systems-page
	.system-card__content {
		padding: 16px;
	}


	.cert-systems-page
	.system-card__title {
		max-width: 95%;

		font-size: 21px;
	}


	.cert-systems-page__footer {
		margin-top: 28px;
	}


	.cert-systems-page__cta {
		width: 100%;

		min-width: 0;
		min-height: 50px;

		font-size: 14px;
	}

}


/* ==========================================================
   CERTIFIED SYSTEMS PAGE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.cert-systems-page__content {
		padding-top: 28px;
		padding-bottom: 48px;
	}


	.cert-systems-page__divider {
		margin-bottom: 28px;
	}


	.cert-systems-page__header {
		margin-bottom: 26px;
	}


	.cert-systems-page__title {
		font-size: 25px;
	}


	.cert-systems-page
	.system-card {
		aspect-ratio: 1.38 / 1;
	}


	.cert-systems-page
	.system-card__title {
		font-size: 20px;
	}

}

/* ==========================================================
   CONTACT PAGE
   ========================================================== */

.contact-page {
	width: 100%;
	background: #ffffff;
}


/* ==========================================================
   CONTACT - MAIN
   ========================================================== */

.contact-main {
	padding: 88px 0 92px;
	background: #ffffff;
}


.contact-main__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(420px, 0.95fr);
	gap: 96px;
	align-items: start;
}


/* ==========================================================
   CONTACT - DETAILS
   ========================================================== */

.contact-details {
	max-width: 650px;
}


.contact-details__title {
	margin: 0 0 34px;

	font-family: var(--ae-font-heading);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;

	color: #141414;
}


.contact-details__group {
	margin-bottom: 30px;
}


.contact-details__group:last-child {
	margin-bottom: 0;
}


.contact-details__group-title {
	margin: 0 0 12px;

	font-family: var(--ae-font-heading);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.3;

	color: #141414;
}


.contact-details__row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}


.contact-details__icon {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 22px;

	width: 22px;
	height: 22px;

	margin-top: 1px;
}


.contact-details__icon img {
	display: block;

	width: 22px;
	height: 22px;

	object-fit: contain;
}


.contact-details__text,
.contact-details__email {
	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.45;

	color: var(--ae-text);
}


/* ==========================================================
   CONTACT - PHONES
   ========================================================== */

.contact-details__phones {
	display: flex;
	flex-direction: column;

	width: 100%;

	gap: 12px;
}


.contact-details__phone-row {
	display: grid;

	grid-template-columns: 22px minmax(0, 1fr);

	column-gap: 12px;

	align-items: start;
}


.contact-details__phone-icon {
	display: flex;
	align-items: flex-start;
	justify-content: center;

	width: 22px;
	height: 22px;

	margin-top: 1px;
}


.contact-details__phone-icon img {
	display: block;

	width: 22px;
	height: 22px;

	object-fit: contain;
}


.contact-details__phone-icon--empty {
	visibility: hidden;
}


.contact-details__phone-content {
	min-width: 0;
}


.contact-details__phone-label {
	margin: 0 0 2px;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;

	color: #141414;
}


.contact-details__phone-number {
	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;

	color: #141414;
}


.contact-details__phone-link {
	color: #141414;

	text-decoration: none;

	transition:
		color 0.2s ease;
}


.contact-details__phone-link:hover {
	color: var(--ae-primary);
}


/* ==========================================================
   CONTACT - EMAIL
   ========================================================== */

.contact-details__email {
	color: var(--ae-text);

	text-decoration: underline;
	text-underline-offset: 3px;
}


.contact-details__email:hover {
	color: var(--ae-primary);
}


/* ==========================================================
   CONTACT - FORM CARD
   ========================================================== */

.contact-form-card {
	width: 100%;

	padding: 28px 30px;

	background: #ffffff;

	border: 2px solid var(--ae-border);
	border-radius: 20px;

	box-shadow:
		0 2px 8px
		rgba(0, 0, 0, 0.03);
}


.contact-form-card .wpcf7 {
	margin: 0;
}


.contact-form-card form {
	margin: 0;
}


.ae-contact-form {
	display: flex;
	flex-direction: column;

	gap: 18px;
}


/* ==========================================================
   CONTACT FORM - FIELDS
   ========================================================== */

.ae-contact-form__field {
	display: flex;
	flex-direction: column;

	gap: 8px;
}


.ae-contact-form__field label {
	display: block;

	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;

	color: var(--ae-text);
}


.ae-contact-form__field .wpcf7-form-control-wrap {
	display: block;

	width: 100%;
}


.ae-contact-form__field input,
.ae-contact-form__field textarea {
	display: block;

	width: 100%;

	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;

	color: var(--ae-text);

	background: #ffffff;

	border: 1px solid #dedede;
	border-radius: 8px;

	outline: none;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}


.ae-contact-form__field input {
	height: 48px;

	padding: 0 14px;
}


.ae-contact-form__field textarea {
	height: 92px;
	min-height: 92px;
	max-height: 92px;

	padding: 13px 14px;

	resize: none;
}


.ae-contact-form__field input::placeholder,
.ae-contact-form__field textarea::placeholder {
	color: #b4b4b4;
}


.ae-contact-form__field input:focus,
.ae-contact-form__field textarea:focus {
	border-color: var(--ae-primary);

	box-shadow:
		0 0 0 3px
		rgba(2, 87, 142, 0.08);
}


/* ==========================================================
   CONTACT FORM - VALIDATION
   ========================================================== */

.ae-contact-form .wpcf7-not-valid {
	border-color: #c94343;
}


.ae-contact-form .wpcf7-not-valid-tip {
	display: block;

	margin-top: 5px;

	font-family: var(--ae-font-body);
	font-size: 12px;
	line-height: 1.35;

	color: #c94343;
}


/* ==========================================================
   CONTACT FORM - CONSENT
   ========================================================== */

.ae-contact-form__consent {
	width: 100%;

	margin: 0;
	padding: 0;

	font-family: var(--ae-font-body);
	font-size: 10px;
	font-weight: 400;
	line-height: 1.4;

	color: #929292;
}


.contact-form-card
.ae-contact-form__consent
.wpcf7-form-control-wrap {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;
}


.contact-form-card
.ae-contact-form__consent
.wpcf7-acceptance {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;
}


.contact-form-card
.ae-contact-form__consent
.wpcf7-list-item {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;
}


.contact-form-card
.ae-contact-form__consent
.wpcf7-list-item label {
	display: flex;

	align-items: flex-start;
	justify-content: flex-start;

	gap: 9px;

	width: 100%;

	margin: 0;
	padding: 0;

	cursor: pointer;
}


.contact-form-card
.ae-contact-form__consent
input[type="checkbox"] {
	display: block;

	flex: 0 0 14px;

	width: 14px !important;
	height: 14px !important;
	min-width: 14px;
	min-height: 14px !important;

	margin: 1px 0 0 !important;
	padding: 0 !important;

	border-radius: 2px;

	accent-color: var(--ae-primary);

	cursor: pointer;
}


.contact-form-card
.ae-contact-form__consent
.wpcf7-list-item-label {
	display: block;

	flex: 1 1 auto;

	min-width: 0;

	margin: 0;
	padding: 0;

	font-size: 10px;
	line-height: 1.4;

	color: #929292;
}


/* ==========================================================
   CONTACT FORM - SUBMIT
   ========================================================== */

.ae-contact-form__submit {
	margin-top: 4px;
}


.ae-contact-form__submit .wpcf7-submit {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 48px;

	margin: 0;
	padding: 10px 28px;

	font-family: var(--ae-font-button);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background: var(--ae-primary);

	border: 1px solid var(--ae-primary);
	border-radius: 50px;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


.ae-contact-form__submit .wpcf7-submit:hover {
	background: #014975;
	border-color: #014975;

	transform: translateY(-1px);
}


.contact-form-card .wpcf7-spinner {
	display: block;

	margin: 12px auto 0;
}


/* ==========================================================
   CONTACT FORM - RESPONSE
   ========================================================== */

.contact-form-card .wpcf7-response-output {
	margin: 18px 0 0 !important;
	padding: 12px 15px !important;

	font-family: var(--ae-font-body);
	font-size: 13px;
	line-height: 1.4;

	border-radius: 8px;
}


/* ==========================================================
   CONTACT - LOCATION SECTION
   ========================================================== */

.contact-location {
	padding: 88px 0 92px;

	background: #F7F7F7;
}


.contact-location__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 0.95fr)
		minmax(460px, 1.05fr);

	gap: 90px;

	align-items: start;
}


.contact-location__content {
	max-width: 630px;

	align-self: start;
}


.contact-location__title {
	margin: 0 0 30px;

	font-family: var(--ae-font-heading);
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;

	color: var(--ae-primary);
}


.contact-location__text {
	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.65;

	color: var(--ae-text);
}


.contact-location__text p {
	margin: 0 0 22px;
}


.contact-location__text p:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   CONTACT - MAP
   ========================================================== */

.contact-location__map-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;

	width: 100%;

	align-self: start;
}


.contact-location__map {
	position: relative;

	width: 100%;
	height: 390px;

	overflow: hidden;

	background: #e9e9e9;

	border-radius: 20px;
}


.contact-location__map iframe {
	display: block;

	width: 100%;
	height: 100%;

	border: 0;
}


/* ==========================================================
   CONTACT - DIRECTIONS BUTTON
   ========================================================== */

.contact-location__button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	gap: 8px;

	min-width: 174px;
	min-height: 44px;

	margin-top: 18px;

	padding: 9px 24px;

	font-family: var(--ae-font-button);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background: var(--ae-primary);

	border: 1px solid var(--ae-primary);
	border-radius: 50px;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


.contact-location__button-icon {
	display: block;

	width: 16px;
	height: 16px;

	flex: 0 0 16px;

	object-fit: contain;
}


.contact-location__button:hover {
	color: #ffffff;

	background: #014975;

	border-color: #014975;

	transform: translateY(-1px);
}


/* ==========================================================
   CONTACT - TABLET
   ========================================================== */

@media (max-width: 1100px) {

	.contact-main {
		padding: 68px 0 72px;
	}


	.contact-main__grid {
		grid-template-columns: 1fr 1fr;

		gap: 50px;
	}


	.contact-location {
		padding: 68px 0 72px;
	}


	.contact-location__grid {
		grid-template-columns: 1fr 1fr;

		gap: 50px;
	}


	.contact-location__map {
		height: 360px;
	}

}


/* ==========================================================
   CONTACT - TABLET / MOBILE
   ========================================================== */

@media (max-width: 900px) {

	.contact-main__grid,
	.contact-location__grid {
		grid-template-columns: 1fr;
	}


	.contact-main__grid {
		gap: 48px;
	}


	.contact-details {
		max-width: none;
	}


	.contact-form-card {
		max-width: 680px;
	}


	.contact-location__grid {
		gap: 42px;
	}


	.contact-location__content {
		max-width: none;
	}


	.contact-location__map-wrap {
		width: 100%;
	}


	.contact-location__map {
		height: 390px;
	}

}


/* ==========================================================
   CONTACT - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.contact-main {
		padding: 48px 0 54px;
	}


	.contact-main__grid {
		gap: 38px;
	}


	.contact-details__title {
		margin-bottom: 28px;

		font-size: 27px;
	}


	.contact-details__group {
		margin-bottom: 26px;
	}


	.contact-details__group-title {
		font-size: 19px;
	}


	.contact-details__text,
	.contact-details__email {
		font-size: 15px;
	}


	.contact-details__phone-label,
	.contact-details__phone-number {
		font-size: 15px;
	}


	.contact-form-card {
		padding: 22px 20px;

		border-radius: 16px;
	}


	.ae-contact-form {
		gap: 16px;
	}


	.contact-location {
		padding: 52px 0 56px;
	}


	.contact-location__title {
		margin-bottom: 24px;

		font-size: 27px;
	}


	.contact-location__text {
		font-size: 14px;
	}


	.contact-location__map {
		height: 340px;

		border-radius: 20px;
	}


	.contact-location__button {
		width: 100%;
	}

}


/* ==========================================================
   CONTACT - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.contact-main {
		padding: 40px 0 46px;
	}


	.contact-details__title {
		font-size: 25px;
	}


	.contact-details__row {
		gap: 10px;
	}


	.contact-details__icon {
		flex-basis: 20px;

		width: 20px;
		height: 20px;
	}


	.contact-details__icon img {
		width: 20px;
		height: 20px;
	}


	.contact-details__phone-row {
		grid-template-columns: 20px minmax(0, 1fr);

		column-gap: 10px;
	}


	.contact-details__phone-icon {
		width: 20px;
		height: 20px;
	}


	.contact-details__phone-icon img {
		width: 20px;
		height: 20px;
	}


	.contact-form-card {
		padding: 20px 16px;
	}


	.ae-contact-form__field input {
		height: 46px;
	}


	.ae-contact-form__field textarea {
		height: 88px;
		min-height: 88px;
		max-height: 88px;
	}


	.ae-contact-form__consent,
	.contact-form-card
	.ae-contact-form__consent
	.wpcf7-list-item-label {
		font-size: 9px;
	}


	.contact-location {
		padding: 46px 0 50px;
	}


	.contact-location__title {
		font-size: 25px;
	}


	.contact-location__map {
		height: 300px;
	}

}

/* ==========================================================
   NEWS PAGE
   ========================================================== */

.news-page {
	width: 100%;

	background-color: #ffffff;
}


/* ==========================================================
   NEWS PAGE - CONTENT
   ========================================================== */

.news-page__content {
	padding-top: 58px;
	padding-bottom: 72px;

	background-color: #ffffff;
}


/* ==========================================================
   NEWS PAGE - INTRO
   ========================================================== */

.news-page__intro {
	max-width: 1120px;

	margin-bottom: 42px;
}


.news-page__intro-title {
	margin: 0 0 26px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.news-page__intro-text {
	max-width: 1100px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #141414;
}


.news-page__intro-text p {
	margin: 0;
}


/* ==========================================================
   NEWS PAGE - LIST
   ========================================================== */

.news-page__list {
	display: flex;
	flex-direction: column;

	gap: 28px;

	width: 100%;
}


/* ==========================================================
   NEWS PAGE - HORIZONTAL CARD
   ========================================================== */

.news-list-card {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(300px, 28%);

	width: 100%;
	min-height: 310px;

	overflow: hidden;

	background-color: #ffffff;

	border: 2px solid #dcdcdc;
	border-radius: 20px;
}


/* ==========================================================
   NEWS PAGE - CARD CONTENT
   ========================================================== */

.news-list-card__content {
	min-width: 0;

	display: flex;
	flex-direction: column;

	padding:
		34px
		38px
		34px;
}


/* ==========================================================
   NEWS PAGE - DATE
   ========================================================== */

.news-list-card__date {
	display: flex;
	align-items: center;

	gap: 6px;

	margin-bottom: 18px;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;

	color: #666666;
}


.news-list-card__clock {
	flex: 0 0 14px;

	width: 14px;
	height: 14px;

	color: #666666;
}


/* ==========================================================
   NEWS PAGE - TITLE
   ========================================================== */

.news-list-card__title {
	max-width: 850px;

	margin: 0 0 18px;

	font-family: var(--ae-font-heading);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.15;

	color: #141414;
}


.news-list-card__title a {
	color: inherit;

	transition:
		color 0.2s ease;
}


.news-list-card__title a:hover {
	color: var(--ae-primary);
}


/* ==========================================================
   NEWS PAGE - EXCERPT
   ========================================================== */

.news-list-card__excerpt {
	max-width: 900px;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.45;

	color: #999999;
}


.news-list-card__excerpt p {
	margin: 0;
}


/* ==========================================================
   NEWS PAGE - IMAGE
   ========================================================== */

.news-list-card__media {
	position: relative;

	display: block;

	width: 100%;
	height: 100%;
	min-height: 310px;

	overflow: hidden;

	background-color: #f7f7f7;
}


.news-list-card__image {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position:
		var(
			--news-list-image-position,
			center center
		);

	transition:
		transform 0.55s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}


.news-list-card:hover
.news-list-card__image {
	transform:
		scale(1.025);
}


/* ==========================================================
   NEWS PAGE - PAGINATION
   ========================================================== */

.news-page__pagination {
	margin-top: 48px;
}


.news-page__pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;

	gap: 8px;
}


.news-page__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 36px;
	height: 36px;

	padding:
		0
		10px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1;

	color: #02578e;

	background-color: transparent;

	border: 1px solid transparent;
	border-radius: 50px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease;
}


.news-page__pagination
.page-numbers.current {
	width: 36px;
	min-width: 36px;

	padding: 0;

	color: #02578e;

	background-color: #ffffff;

	border-color: #02578e;
}


.news-page__pagination
a.page-numbers:hover {
	color: #ffffff;

	background-color: #02578e;

	border-color: #02578e;
}


/* ==========================================================
   NEWS PAGE - PREV / NEXT
   ========================================================== */

.news-page__pagination
.page-numbers.prev,
.news-page__pagination
.page-numbers.next {
	width: auto;
	min-width: 100px;

	padding:
		0
		16px;

	font-size: 12px;
	font-weight: 500;

	color: #02578e;

	background-color: #ffffff;

	border-color: #02578e;
}


.news-page__pagination
.page-numbers.prev:hover,
.news-page__pagination
.page-numbers.next:hover {
	color: #ffffff;

	background-color: #02578e;
}


/* ==========================================================
   NEWS PAGE - DOTS
   ========================================================== */

.news-page__pagination
.page-numbers.dots {
	min-width: 24px;

	padding: 0;

	color: #666666;

	border: 0;
}


/* ==========================================================
   NEWS PAGE - EMPTY
   ========================================================== */

.news-page__empty {
	padding:
		40px
		0;

	font-family: var(--ae-font-body);
	font-size: 15px;

	color: var(--ae-text-muted);
}


/* ==========================================================
   NEWS PAGE - MEDIUM DESKTOP
   ========================================================== */

@media (max-width: 1250px) {

	.news-page__content {
		padding-top: 52px;
	}


	.news-page__intro {
		margin-bottom: 38px;
	}


	.news-list-card {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(280px, 32%);

		min-height: 290px;
	}


	.news-list-card__content {
		padding:
			30px
			32px;
	}


	.news-list-card__media {
		min-height: 290px;
	}


	.news-list-card__title {
		font-size: 25px;
	}


	.news-list-card__excerpt {
		font-size: 14px;
	}

}


/* ==========================================================
   NEWS PAGE - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.news-page__content {
		padding-top: 48px;
		padding-bottom: 64px;
	}


	.news-page__intro-title {
		font-size: 30px;
	}


	.news-page__intro-text {
		font-size: 14px;
	}


	.news-page__list {
		gap: 22px;
	}


	.news-list-card {
		grid-template-columns:
			minmax(0, 1.15fr)
			minmax(260px, 0.85fr);

		min-height: 270px;
	}


	.news-list-card__content {
		padding:
			26px
			28px;
	}


	.news-list-card__media {
		min-height: 270px;
	}


	.news-list-card__date {
		margin-bottom: 14px;
	}


	.news-list-card__title {
		margin-bottom: 14px;

		font-size: 23px;
	}


	.news-list-card__excerpt {
		font-size: 13px;
	}


	.news-page__pagination {
		margin-top: 42px;
	}

}


/* ==========================================================
   NEWS PAGE - SMALL TABLET / MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.news-page__content {
		padding-top: 40px;
		padding-bottom: 54px;
	}


	.news-page__intro {
		margin-bottom: 32px;
	}


	.news-page__intro-title {
		margin-bottom: 18px;

		font-size: 27px;
	}


	.news-page__intro-text {
		font-size: 13px;
		line-height: 1.55;
	}


	.news-page__list {
		gap: 20px;
	}


	.news-list-card {
		display: flex;
		flex-direction: column;

		min-height: 0;

		border-radius: 18px;
	}


	/*
	 * Na mobile zdjęcie jest na górze.
	 */
	.news-list-card__media {
		order: 1;

		width: 100%;
		height: auto;
		min-height: 0;

		aspect-ratio: 1.7 / 1;
	}


	.news-list-card__content {
		order: 2;

		padding:
			22px
			20px
			24px;
	}


	.news-list-card__image {
		position: absolute;
	}


	.news-list-card__date {
		margin-bottom: 13px;

		font-size: 10px;
	}


	.news-list-card__title {
		margin-bottom: 13px;

		font-size: 22px;
	}


	.news-list-card__excerpt {
		font-size: 13px;
		line-height: 1.5;
	}


	.news-page__pagination {
		margin-top: 34px;
	}


	.news-page__pagination .nav-links {
		gap: 5px;
	}


	.news-page__pagination .page-numbers {
		min-width: 34px;
		height: 34px;

		font-size: 12px;
	}


	.news-page__pagination
	.page-numbers.current {
		width: 34px;
		min-width: 34px;
	}


	.news-page__pagination
	.page-numbers.prev,
	.news-page__pagination
	.page-numbers.next {
		min-width: 0;

		padding:
			0
			12px;

		font-size: 11px;
	}

}


/* ==========================================================
   NEWS PAGE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.news-page__content {
		padding-top: 34px;
		padding-bottom: 48px;
	}


	.news-page__intro-title {
		font-size: 25px;
	}


	.news-list-card__media {
		aspect-ratio: 1.55 / 1;
	}


	.news-list-card__content {
		padding:
			20px
			17px
			22px;
	}


	.news-list-card__title {
		font-size: 20px;
	}


	.news-list-card__excerpt {
		font-size: 12px;
	}


	/*
	 * Na bardzo małych ekranach chowamy
	 * tekst poprzedniego przycisku, jeśli
	 * paginacja zrobi się zbyt szeroka.
	 */
	.news-page__pagination
	.page-numbers.prev {
		display: none;
	}

}


/* ==========================================================
   TEXT LINKS
   ========================================================== */

.site-main p a:not(.btn):not([class*="button"]),
.site-main li a:not(.btn):not([class*="button"]) {
	color: var(--ae-primary);

	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;

	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease;
}


.site-main p a:not(.btn):not([class*="button"]):hover,
.site-main li a:not(.btn):not([class*="button"]):hover {
	color: #014975;

	text-decoration-color: #014975;
}


/* ==========================================================
   SINGLE NEWS - NEW LAYOUT
   ========================================================== */

.news-single {
	width: 100%;
	max-width: 100%;

	padding-top: 72px;
	padding-bottom: 96px;

	overflow-x: clip;

	background-color: #ffffff;
}


.news-single__container {
	width: min(
		calc(100% - (var(--ae-gutter-desktop) * 2)),
		var(--ae-container)
	);

	max-width: var(--ae-container);

	margin-left: auto;
	margin-right: auto;

	min-width: 0;
}

.news-single__top {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(460px, 0.9fr);

	gap: 76px;

	align-items: center;

	width: 100%;
	min-width: 0;
	max-width: 100%;

	padding-bottom: 72px;

	border-bottom: 1px solid var(--ae-border);
}

.news-single__intro {
	min-width: 0;
	max-width: 760px;
}

.news-single__date {
	display: flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 20px;
	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	color: var(--ae-text-muted);
}

.news-single__date-icon {
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
}

.news-single__title {
	margin: 0 0 24px;
	font-family: var(--ae-font-heading);
	font-size: 52px;
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: -0.02em;
	color: #141414;
}

.news-single__excerpt {
	max-width: 720px;
	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;
	color: #666666;
}

.news-single__excerpt p {
	margin: 0;
}

.news-single__featured {
	position: relative;

	width: 100%;
	min-width: 0;
	max-width: 100%;

	aspect-ratio: 1.42 / 1;

	overflow: hidden;

	background-color: #f7f7f7;

	border-radius: 20px;
}

.news-single__featured-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--news-single-image-position, center center);
}

.news-single__body {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		340px;

	gap: 82px;

	align-items: start;

	width: 100%;
	min-width: 0;
	max-width: 100%;

	padding-top: 68px;
}

.news-single__content {
	width: 100%;
	min-width: 0;
	max-width: 900px;

	margin: 0;

	font-family: var(--ae-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.75;

	color: #141414;

	overflow-wrap: anywhere;
}

.news-single__content p {
	margin: 0 0 24px;
}

.news-single__content h2,
.news-single__content h3 {
	scroll-margin-top: 145px;
}

.news-single__content h2 {
	margin: 48px 0 20px;
	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.15;
	color: #141414;
}

.news-single__content h2:first-child {
	margin-top: 0;
}

.news-single__content h3 {
	margin: 38px 0 16px;
	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	color: #141414;
}

.news-single__content ul,
.news-single__content ol {
	margin: 0 0 26px;
	padding-left: 24px;
}

.news-single__content li {
	margin-bottom: 8px;
}

.news-single__content img {
	height: auto;
	margin: 32px 0;
	border-radius: 20px;
}

.news-single__content blockquote {
	margin: 34px 0;
	padding: 24px 28px;
	font-size: 17px;
	line-height: 1.6;
	background-color: #f7f7f7;
	border-left: 4px solid var(--ae-primary);
	border-radius: 0 14px 14px 0;
}


/* ==========================================================
   SINGLE NEWS - TABLES
   ========================================================== */

.news-single__content .wp-block-table {
	width: 100%;

	margin:
		32px
		0;

	overflow-x: auto;

	border-radius: 14px;

	-webkit-overflow-scrolling: touch;
}


.news-single__content table {
	width: 100%;
	max-width: 100%;
	min-width: 0;

	margin:
		32px
		0;

	border-spacing: 0;
	border-collapse: separate;

	font-family: var(--ae-font-body);
	font-size: 14px;
	line-height: 1.5;

	color: #141414;

	border:
		1px solid
		#e0e0e0;

	border-radius: 14px;
}


.news-single__content
.wp-block-table table {
	margin: 0;
}


.news-single__content th,
.news-single__content td {
	padding:
		14px
		16px;

	text-align: left;
	vertical-align: top;

	border-right:
		1px solid
		#e0e0e0;

	border-bottom:
		1px solid
		#e0e0e0;
}


.news-single__content th {
	font-weight: 600;

	color: #141414;

	background-color: #f7f7f7;
}


.news-single__content
tr:last-child td {
	border-bottom: 0;
}


.news-single__content
th:last-child,
.news-single__content
td:last-child {
	border-right: 0;
}


.news-single__content
thead
tr:first-child
th:first-child {
	border-top-left-radius: 13px;
}


.news-single__content
thead
tr:first-child
th:last-child {
	border-top-right-radius: 13px;
}


/* ==========================================================
   SINGLE NEWS - FAQ
   ========================================================== */

.news-single__faq {
	margin-top: 72px;

	scroll-margin-top: 145px;
}

.news-single__sidebar {
	position: sticky;

	top:
		calc(
			var(--ae-header-height, 110px) + 24px
		);

	z-index: 2;

	display: flex;
	flex-direction: column;

	gap: 20px;

	min-width: 0;
}


body.admin-bar
.news-single__sidebar {
	top:
		calc(
			var(--ae-header-height, 110px) + 56px
		);
}

.news-single__toc {
	width: 100%;
	overflow: hidden;
	background-color: #f7f7f7;
	border: 2px solid #e0e0e0;
	border-radius: 20px;
}

.news-single__toc-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	min-height: 66px;
	padding: 18px 22px;
	font-family: var(--ae-font-heading);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
	color: #141414;
	background-color: transparent;
	border: 0;
}

.news-single__toc-toggle:hover {
	color: var(--ae-primary);
}

.news-single__toc-chevron {
	flex: 0 0 9px;
	width: 9px;
	height: 9px;
	margin-top: -5px;
	border-right: 2px solid var(--ae-primary);
	border-bottom: 2px solid var(--ae-primary);
	transform: rotate(45deg);
	transition: transform 0.25s ease;
}

.news-single__toc.is-open .news-single__toc-chevron {
	margin-top: 4px;
	transform: rotate(225deg);
}

.news-single__toc-panel {
	border-top: 1px solid #e0e0e0;
}

.news-single__toc-panel[hidden] {
	display: none;
}

.news-single__toc-list {
	margin: 0;
	padding: 16px 22px 21px;
	list-style: none;
}

.news-single__toc-item {
	position: relative;
	margin: 0;
}

.news-single__toc-item + .news-single__toc-item {
	margin-top: 10px;
}

.news-single__toc-link {
	display: block;
	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	color: #666666 !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.news-single__toc-link:hover {
	color: var(--ae-primary) !important;
}

.news-single__toc-item--level-3 {
	padding-left: 16px;
}

.news-single__toc-item--level-3 .news-single__toc-link {
	font-size: 12px;
	color: #888888 !important;
}

.news-single__author {
	padding: 20px 22px;
	background-color: #ffffff;
	border: 2px solid #e0e0e0;
	border-radius: 20px;
}

.news-single__author-label {
	margin-bottom: 15px;
	font-family: var(--ae-font-heading);
	font-size: 16px;
	font-weight: 600;
	color: #141414;
}

.news-single__author-main {
	display: flex;
	align-items: center;
	gap: 13px;
}

.news-single__author-avatar {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: 50%;
}

.news-single__author-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news-single__author-data {
	min-width: 0;
}

.news-single__author-name {
	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: #141414;
}

.news-single__author-description {
	margin-top: 3px;
	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;
	color: #999999;
}

.news-single__toc-mobile {
	display: none;

	width: 100%;
	min-width: 0;
	max-width: 100%;

	margin-top: 0;
}

@media (max-width: 1100px) {

	.news-single__container {
		width:
			calc(
				100% -
				(var(--ae-gutter-tablet) * 2)
			);
	}


	.news-single {
		padding-top: 60px;
		padding-bottom: 72px;
	}

	.news-single__top {
		grid-template-columns: minmax(0, 1fr) minmax(380px, 0.9fr);
		gap: 48px;
		padding-bottom: 58px;
	}

	.news-single__title {
		font-size: 44px;
	}

	.news-single__body {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 48px;
		padding-top: 56px;
	}


	.news-single__sidebar {
		top: 108px;
	}


	body.admin-bar
	.news-single__sidebar {
		top: 140px;
	}
}

@media (max-width: 767px) {

	.news-single__container {
		width:
			calc(
				100% -
				(var(--ae-gutter-mobile) * 2)
			);
	}


	.news-single {
		padding-top: 44px;
		padding-bottom: 56px;
	}

	.news-single__top {
		display: flex;
		flex-direction: column;

		align-items: stretch;

		gap: 30px;

		width: 100%;
		min-width: 0;
		max-width: 100%;

		padding-bottom: 44px;
	}


	.news-single__top > * {
		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.news-single__intro {
		max-width: none;
	}

	.news-single__date {
		margin-bottom: 16px;
		font-size: 12px;
	}

	.news-single__title {
		margin-bottom: 18px;
		font-size: 36px;
		line-height: 1.08;
	}

	.news-single__excerpt {
		font-size: 14px;
		line-height: 1.6;
	}

	.news-single__toc-mobile {
		display: block;
	}

	.news-single__featured {
		aspect-ratio: 1.45 / 1;
	}

	.news-single__body {
		display: flex;
		flex-direction: column;

		gap: 34px;

		width: 100%;
		min-width: 0;
		max-width: 100%;

		padding-top: 42px;
	}

	.news-single__content {
		max-width: none;
		font-size: 15px;
		line-height: 1.7;
	}

	.news-single__content h2 {
		margin-top: 38px;
		font-size: 27px;
	}

	.news-single__content h3 {
		margin-top: 32px;
		font-size: 22px;
	}

	.news-single__toc-desktop {
		display: none;
	}

	.news-single__sidebar {
		position: static;

		width: 100%;
		min-width: 0;
		max-width: 100%;
	}

	.news-single__author {
		width: 100%;
	}


	.news-single__faq {
		margin-top: 52px;
	}


	.news-single__content
	.wp-block-table {
		overflow-x: auto;

		-webkit-overflow-scrolling: touch;
	}


	.news-single__content table {
		width: 100%;
		max-width: 100%;
		min-width: 0;

		font-size: 13px;
	}


	/*
	 * Tylko tabela z natywnego bloku Gutenberg może być szersza
	 * i przewijana wewnątrz własnego wrappera.
	 * Dzięki temu zwykły <table> nie rozszerza całej strony.
	 */
	.news-single__content
	.wp-block-table table {
		width: max-content;
		min-width: 620px;
		max-width: none;
	}


	.news-single__content th,
	.news-single__content td {
		padding:
			12px
			14px;
	}
}

@media (max-width: 480px) {

	.news-single {
		padding-top: 38px;
	}

	.news-single__title {
		font-size: 32px;
	}

	.news-single__top {
		gap: 26px;
	}

	.news-single__toc-toggle {
		min-height: 60px;
		padding: 16px 18px;
		font-size: 18px;
	}

	.news-single__toc-list {
		padding: 15px 18px 18px;
	}

	.news-single__featured {
		aspect-ratio: 1.3 / 1;
	}

	.news-single__body {
		padding-top: 36px;
	}
}



/* ==========================================================
   SINGLE NEWS - ADMIN BAR EDGE CASE
   ========================================================== */

@media (min-width: 768px) and (max-width: 782px) {

	body.admin-bar
	.news-single__sidebar {
		top: 154px;
	}

}

/* ==========================================================
   ABOUT PAGE
   ========================================================== */

.about-page {
	width: 100%;

	background-color: #ffffff;
}


/* ==========================================================
   ABOUT - INTRO
   ========================================================== */

.about-intro {
	padding:
		58px
		0
		84px;

	background-color: #ffffff;
}


.about-intro__section-title {
	margin:
		0
		0
		54px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.about-intro__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr);

	align-items: center;

	gap: 76px;
}


/* ==========================================================
   ABOUT - INTRO IMAGE
   ========================================================== */

.about-intro__media {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;

	min-width: 0;

	overflow: hidden;

	background-color: #ffffff;

	border-radius: 20px;
}


.about-intro__image {
	display: block;

	width: 100%;
	height: auto;

	max-width: 100%;

	object-fit: contain;
	object-position: center;

	border-radius: 20px;
}


/* ==========================================================
   ABOUT - INTRO CONTENT
   ========================================================== */

.about-intro__content {
	min-width: 0;
}


.about-intro__heading {
	margin:
		0
		0
		26px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.15;

	color: var(--ae-primary);
}


.about-intro__text {
	max-width: 650px;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;

	color: #141414;
}


.about-intro__text p {
	margin:
		0
		0
		18px;
}


.about-intro__text p:last-child {
	margin-bottom: 0;
}


.about-intro__text a {
	color: var(--ae-primary);

	text-decoration: underline;

	text-underline-offset: 3px;
}


/* ==========================================================
   ABOUT - INTRO HIGHLIGHTS
   ========================================================== */

.about-intro__highlights {
	display: flex;
	flex-direction: column;

	gap: 10px;

	max-width: 680px;

	margin-top: 30px;
}


.about-intro__highlight {
	display: flex;

	align-items: flex-start;

	gap: 12px;

	width: 100%;

	min-height: 42px;

	padding:
		8px
		10px;

	font-family: var(--ae-font-body);

	color: #141414;

	border:
		1px
		solid
		transparent;

	border-radius: 10px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


/*
 * Gdy wyróżnik NIE MA ikony:
 * żadnego pustego miejsca po lewej.
 *
 * Tekst zaczyna się dokładnie w tej samej osi
 * co tekst "Kim jesteśmy?".
 */

.about-intro__highlight--no-icon {
	min-height: 0;

	padding:
		7px
		0;

	gap: 0;
}


.about-intro__highlight-icon {
	display: flex;

	align-items: center;
	justify-content: center;

	flex:
		0
		0
		28px;

	width: 28px;
	height: 28px;

	margin-top: 1px;
}


.about-intro__highlight-icon-image {
	display: block;

	width: 26px;
	height: 26px;

	object-fit: contain;
	object-position: center;
}


.about-intro__highlight-text {
	flex:
		1
		1
		auto;

	min-width: 0;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;

	color: inherit;
}


/* ==========================================================
   ABOUT - HIGHLIGHT WYSIWYG
   ========================================================== */

.about-intro__highlight-text p {
	margin: 0;
}


.about-intro__highlight-text p + p {
	margin-top: 8px;
}


.about-intro__highlight-text strong,
.about-intro__highlight-text b {
	font-weight: 700;

	color: #141414;
}


.about-intro__highlight-text em,
.about-intro__highlight-text i {
	font-style: italic;
}


.about-intro__highlight-text a {
	color: var(--ae-primary);

	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;

	transition:
		color 0.2s ease;
}


.about-intro__highlight-text a:hover {
	color: #01446f;
}


.about-intro__highlight-text ul,
.about-intro__highlight-text ol {
	margin:
		8px
		0
		0;

	padding-left: 20px;
}


.about-intro__highlight-text li {
	margin-bottom: 4px;
}


.about-intro__highlight-text li:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   ABOUT - WHOLE HIGHLIGHT LINK
   ========================================================== */

a.about-intro__highlight {
	cursor: pointer;

	text-decoration: none;
}


a.about-intro__highlight:hover {
	color: var(--ae-primary);

	background-color: #f7fbfd;

	border-color: #dcebf4;

	transform:
		translateX(3px);
}


a.about-intro__highlight--no-icon:hover {
	padding-left: 10px;
}


a.about-intro__highlight:hover
.about-intro__highlight-text,
a.about-intro__highlight:hover
.about-intro__highlight-text strong,
a.about-intro__highlight:hover
.about-intro__highlight-text b {
	color: var(--ae-primary);
}


a.about-intro__highlight:focus-visible {
	outline:
		2px
		solid
		var(--ae-primary);

	outline-offset: 2px;
}


/* ==========================================================
   ABOUT - PERSON / SCOPE
   ========================================================== */

.about-person {
	padding:
		78px
		0;

	background-color: #f7f7f7;
}


.about-person__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr);

	align-items: center;

	gap: 76px;
}


.about-person__content {
	min-width: 0;

	max-width: 660px;
}


.about-person__heading {
	margin:
		0
		0
		24px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.15;

	color: #141414;
}


.about-person__text {
	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;

	color: #141414;
}


.about-person__text p {
	margin:
		0
		0
		18px;
}


.about-person__text p:last-child {
	margin-bottom: 0;
}


.about-person__text ul,
.about-person__text ol {
	margin:
		18px
		0
		0;

	padding-left: 22px;
}


.about-person__text li {
	margin-bottom: 7px;
}


.about-person__text a {
	color: var(--ae-primary);

	text-decoration: underline;

	text-underline-offset: 3px;
}


/* ==========================================================
   ABOUT - PERSON BUTTON
   ========================================================== */

.about-person__button {
	width: auto;

	min-width: 180px;
	min-height: 44px;

	margin-top: 30px;

	padding:
		10px
		24px;

	font-size: 13px;
	font-weight: 500;
}


.about-person__identity {
	margin-top: 28px;
}


.about-person__name {
	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;

	color: #141414;
}


.about-person__role {
	margin-top: 2px;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;

	color: #999999;
}


/* ==========================================================
   ABOUT - PERSON IMAGE
   ========================================================== */

.about-person__media {
	position: relative;

	width: 100%;
	min-width: 0;

	padding: 0;

	overflow: visible;

	background-color: transparent;

	border-radius: 20px;
}


.about-person__image {
	display: block;

	width: 100%;
	height: auto;

	max-width: 100%;

	object-fit: contain;
	object-position: center;

	border-radius: 20px;
}


/* ==========================================================
   ABOUT - BENEFITS
   ========================================================== */

.about-benefits {
	padding:
		72px
		0
		88px;

	background-color: #ffffff;
}


.about-benefits__title {
	margin:
		0
		0
		46px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.about-benefits__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 70px;
}


.about-benefit {
	min-width: 0;
}


.about-benefit__icon {
	display: flex;

	align-items: center;
	justify-content: center;

	width: 70px;
	height: 70px;

	margin-bottom: 24px;

	overflow: hidden;

	background-color: #e5e5e5;

	border-radius: 14px;
}


.about-benefit__icon-image {
	width: 40px;
	height: 40px;

	object-fit: contain;
}


.about-benefit__title {
	margin:
		0
		0
		18px;

	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.2;

	color: #141414;
}


.about-benefit__description {
	max-width: 360px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #141414;
}


.about-benefit__description p {
	margin: 0;
}


/* ==========================================================
   ABOUT - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.about-intro {
		padding:
			52px
			0
			68px;
	}


	.about-intro__section-title {
		margin-bottom: 42px;

		font-size: 30px;
	}


	.about-intro__grid,
	.about-person__grid {
		gap: 46px;
	}


	.about-intro__heading,
	.about-person__heading {
		font-size: 29px;
	}


	.about-intro__text,
	.about-person__text {
		font-size: 14px;
	}


	.about-intro__highlights {
		margin-top: 26px;
	}


	.about-person {
		padding:
			64px
			0;
	}


	.about-person__button {
		margin-top: 26px;
	}


	.about-benefits {
		padding:
			62px
			0
			72px;
	}


	.about-benefits__title {
		font-size: 30px;
	}


	.about-benefits__grid {
		gap: 38px;
	}


	.about-benefit__title {
		font-size: 22px;
	}

}


/* ==========================================================
   ABOUT - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.about-intro {
		padding:
			42px
			0
			54px;
	}


	.about-intro__section-title {
		margin-bottom: 30px;

		font-size: 27px;
	}


	.about-intro__grid {
		grid-template-columns: 1fr;

		gap: 32px;
	}


	.about-intro__heading {
		margin-bottom: 20px;

		font-size: 27px;
	}


	.about-intro__text {
		max-width: none;

		font-size: 14px;
	}


	.about-intro__highlights {
		max-width: none;

		margin-top: 24px;

		gap: 8px;
	}


	.about-intro__highlight {
		min-height: 42px;

		padding:
			8px
			7px;

		gap: 10px;
	}


	.about-intro__highlight--no-icon {
		min-height: 0;

		padding:
			7px
			0;

		gap: 0;
	}


	.about-intro__highlight-icon {
		flex-basis: 26px;

		width: 26px;
		height: 26px;
	}


	.about-intro__highlight-icon-image {
		width: 24px;
		height: 24px;
	}


	.about-intro__highlight-text {
		font-size: 13px;
	}


	.about-person {
		padding:
			52px
			0;
	}


	.about-person__grid {
		grid-template-columns: 1fr;

		gap: 34px;
	}


	.about-person__content {
		max-width: none;
	}


	.about-person__heading {
		font-size: 27px;
	}


	.about-person__button {
		margin-top: 24px;
	}


	.about-benefits {
		padding:
			52px
			0
			58px;
	}


	.about-benefits__title {
		margin-bottom: 34px;

		font-size: 27px;
	}


	.about-benefits__grid {
		grid-template-columns: 1fr;

		gap: 38px;
	}


	.about-benefit__icon {
		width: 64px;
		height: 64px;

		margin-bottom: 20px;
	}


	.about-benefit__icon-image {
		width: 36px;
		height: 36px;
	}


	.about-benefit__title {
		margin-bottom: 12px;

		font-size: 22px;
	}


	.about-benefit__description {
		max-width: 100%;

		font-size: 14px;
	}

}


/* ==========================================================
   ABOUT - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.about-intro {
		padding-top: 36px;
	}


	.about-intro__section-title {
		font-size: 25px;
	}


	.about-intro__heading,
	.about-person__heading,
	.about-benefits__title {
		font-size: 25px;
	}


	.about-intro__media,
	.about-person__media,
	.about-intro__image,
	.about-person__image {
		border-radius: 16px;
	}


	.about-intro__highlight {
		padding:
			7px
			5px;
	}


	.about-intro__highlight--no-icon {
		padding:
			7px
			0;
	}


	.about-intro__highlight-text {
		font-size: 12px;
	}


	.about-person__button {
		width: 100%;

		min-width: 0;
	}


	.about-benefit__icon {
		border-radius: 12px;
	}

}


/* ==========================================================
   FAQ PAGE
   ========================================================== */

.faq-page {
	width: 100%;

	background-color: #ffffff;
}


/* ==========================================================
   FAQ PAGE - CONTENT
   ========================================================== */

.faq-page__content {
	padding:
		66px
		0
		92px;

	background-color: #ffffff;
}


/* ==========================================================
   FAQ PAGE - MAIN TITLE
   ========================================================== */

.faq-page__title {
	margin:
		0
		0
		24px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: var(--ae-primary);
}


.faq-page__divider {
	width: 100%;
	height: 1px;

	margin-bottom: 54px;

	background-color: var(--ae-border);
}


/* ==========================================================
   FAQ PAGE - GRID
   ========================================================== */

.faq-page__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(300px, 0.75fr);

	align-items: start;

	gap: 78px;
}


.faq-page__main {
	min-width: 0;
}


/* ==========================================================
   FAQ PAGE - SECTIONS
   ========================================================== */

.faq-page__sections {
	display: flex;
	flex-direction: column;

	gap: 48px;
}


.faq-page__group {
	width: 100%;
}


/*
 * Tytuły sekcji FAQ:
 * System QAFP,
 * Produkcja Ekologiczna itd.
 */
.faq-page__group-title {
	margin:
		0
		0
		14px;

	font-family: var(--ae-font-heading);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.25;

	color: #141414 !important;
}


/* ==========================================================
   FAQ PAGE - ACCORDION
   ========================================================== */

.faq-page__accordion {
	width: 100%;
	min-width: 0;
}


.faq-page__accordion
.cert-faq__items {
	width: 100%;
}


.faq-page__accordion
.cert-faq__item {
	width: 100%;

	border-top:
		1px solid
		#e0e0e0;
}


.faq-page__accordion
.cert-faq__item:last-child {
	border-bottom:
		1px solid
		#e0e0e0;
}


.faq-page__accordion
.cert-faq__question {
	display: flex;

	align-items: center;
	justify-content: space-between;

	gap: 22px;

	width: 100%;
	min-height: 64px;

	margin: 0;

	padding:
		16px
		8px
		16px
		0;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;

	text-align: left;

	color: #141414;

	background-color: transparent;

	border: 0;
}


.faq-page__accordion
.cert-faq__question:hover {
	color: var(--ae-primary);
}


.faq-page__accordion
.cert-faq__item.is-open
.cert-faq__question {
	font-weight: 600;

	color: var(--ae-primary);
}


.faq-page__accordion
.cert-faq__question-text {
	flex: 1 1 auto;

	min-width: 0;
}


/* ==========================================================
   FAQ PAGE - PLUS / MINUS
   ========================================================== */

.faq-page__accordion
.cert-faq__toggle {
	position: relative;

	flex:
		0
		0
		26px;

	width: 26px;
	height: 26px;

	border:
		1px solid
		#d8d8d8;

	border-radius: 50%;
}


.faq-page__accordion
.cert-faq__toggle span {
	position: absolute;

	top: 50%;
	left: 50%;

	width: 8px;
	height: 1px;

	background-color: #777777;

	transform:
		translate(
			-50%,
			-50%
		);

	transition:
		transform 0.25s ease,
		opacity 0.25s ease,
		background-color 0.25s ease;
}


.faq-page__accordion
.cert-faq__toggle
span:nth-child(2) {
	transform:
		translate(
			-50%,
			-50%
		)
		rotate(90deg);
}


.faq-page__accordion
.cert-faq__item.is-open
.cert-faq__toggle
span:nth-child(2) {
	opacity: 0;

	transform:
		translate(
			-50%,
			-50%
		)
		rotate(90deg)
		scaleX(0);
}


.faq-page__accordion
.cert-faq__item.is-open
.cert-faq__toggle span {
	background-color: var(--ae-primary);
}


/* ==========================================================
   FAQ PAGE - ANSWERS
   ========================================================== */

.faq-page__accordion
.cert-faq__answer {
	display: grid;

	grid-template-rows: 0fr;

	opacity: 0;

	transition:
		grid-template-rows
		0.35s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		),
		opacity 0.3s ease;
}


.faq-page__accordion
.cert-faq__item.is-open
.cert-faq__answer {
	grid-template-rows: 1fr;

	opacity: 1;
}


.faq-page__accordion
.cert-faq__answer-inner {
	min-height: 0;

	overflow: hidden;
}


.faq-page__accordion
.cert-faq__answer-content {
	padding:
		0
		44px
		24px
		16px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.6;

	color: #555555;
}


.faq-page__accordion
.cert-faq__answer-content
> *:first-child {
	margin-top: 0;
}


.faq-page__accordion
.cert-faq__answer-content
> *:last-child {
	margin-bottom: 0;
}


.faq-page__accordion
.cert-faq__answer-content p {
	margin:
		0
		0
		10px;
}


.faq-page__accordion
.cert-faq__answer-content ul,
.faq-page__accordion
.cert-faq__answer-content ol {
	margin:
		10px
		0;

	padding-left: 20px;
}


.faq-page__accordion
.cert-faq__answer-content a {
	color: var(--ae-primary);

	text-decoration: underline;

	text-underline-offset: 3px;
}


/* ==========================================================
   FAQ PAGE - CONTACT COLUMN
   ========================================================== */

.faq-page__contact {
	width: 100%;
	max-width: 360px;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	padding-top: 0;
}


.faq-page__contact-title {
	width: 100%;
	max-width: 340px;

	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 28px;
	font-weight: 500;
	line-height: 1.18;

	color: #141414;

	text-align: left;
}


.faq-page__contact-title p {
	margin: 0;
}


.faq-page__contact-title
> *:first-child {
	margin-top: 0;
}


.faq-page__contact-title
> *:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   FAQ PAGE - CONTACT POINTS
   ========================================================== */

.faq-page__contact-points {
	width: 100%;

	display: flex;
	flex-direction: column;

	align-items: flex-start;

	gap: 15px;

	margin-top: 38px;
}


.faq-page__contact-point {
	display: grid;

	grid-template-columns:
		7px
		minmax(0, 1fr);

	align-items: start;

	column-gap: 12px;

	width: 100%;
}


.faq-page__contact-dot {
	width: 5px;
	height: 5px;

	margin-top: 7px;

	background-color: var(--ae-primary);

	border-radius: 50%;
}


.faq-page__contact-point-text {
	min-width: 0;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;

	color: #666666;

	text-align: left;
}


.faq-page__contact-point-text p {
	margin: 0;
}


.faq-page__contact-point-text
> *:first-child {
	margin-top: 0;
}


.faq-page__contact-point-text
> *:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   FAQ PAGE - CONTACT BUTTON
   ========================================================== */

.faq-page__contact-button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	align-self: flex-start;

	width: 100%;
	max-width: 260px;

	min-height: 48px;

	margin:
		34px
		0
		0;

	padding:
		11px
		24px;

	font-family: var(--ae-font-button);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;

	text-align: center;

	color: #ffffff;

	background-color: var(--ae-primary);

	border-color: var(--ae-primary);
	border-radius: 50px;
}


.faq-page__contact-button:hover {
	color: #ffffff;

	background-color: #014975;

	border-color: #014975;
}


/* ==========================================================
   FAQ PAGE - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.faq-page__content {
		padding:
			58px
			0
			76px;
	}


	.faq-page__title {
		font-size: 30px;
	}


	.faq-page__divider {
		margin-bottom: 44px;
	}


	.faq-page__grid {
		grid-template-columns:
			minmax(0, 1.3fr)
			minmax(260px, 0.7fr);

		gap: 48px;
	}


	.faq-page__sections {
		gap: 42px;
	}


	.faq-page__group-title {
		font-size: 21px;

		color: #141414 !important;
	}


	.faq-page__contact-title {
		font-size: 25px;
	}


	.faq-page__contact-points {
		margin-top: 34px;
	}


	.faq-page__contact-button {
		margin-top: 30px;
	}

}


/* ==========================================================
   FAQ PAGE - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.faq-page__content {
		padding:
			44px
			0
			58px;
	}


	.faq-page__title {
		margin-bottom: 20px;

		font-size: 27px;
	}


	.faq-page__divider {
		margin-bottom: 32px;
	}


	.faq-page__grid {
		grid-template-columns: 1fr;

		gap: 44px;
	}


	.faq-page__sections {
		gap: 36px;
	}


	.faq-page__group-title {
		margin-bottom: 12px;

		font-size: 20px;

		color: #141414 !important;
	}


	.faq-page__accordion
	.cert-faq__question {
		min-height: 60px;

		padding:
			14px
			4px
			14px
			0;

		font-size: 14px;
	}


	.faq-page__accordion
	.cert-faq__answer-content {
		padding:
			0
			34px
			22px
			12px;

		font-size: 13px;
	}


	.faq-page__contact {
		width: 100%;
		max-width: none;

		align-items: flex-start;
	}


	.faq-page__contact-title {
		width: 100%;
		max-width: none;

		font-size: 25px;

		text-align: left;
	}


	.faq-page__contact-points {
		width: 100%;

		margin-top: 28px;
	}


	.faq-page__contact-button {
		width: auto;
		min-width: 220px;
		max-width: 100%;

		margin-top: 28px;

		align-self: flex-start;
	}

}


/* ==========================================================
   FAQ PAGE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.faq-page__content {
		padding:
			38px
			0
			50px;
	}


	.faq-page__title {
		font-size: 25px;
	}


	.faq-page__divider {
		margin-bottom: 28px;
	}


	.faq-page__grid {
		gap: 38px;
	}


	.faq-page__sections {
		gap: 32px;
	}


	.faq-page__group-title {
		font-size: 19px;

		color: #141414 !important;
	}


	.faq-page__contact-title {
		font-size: 23px;
	}


	.faq-page__contact-points {
		margin-top: 26px;
	}


	.faq-page__contact-button {
		width: 100%;
		min-width: 0;
	}

}

/* ==========================================================
   DOCUMENT / POLICY PAGE
   ========================================================== */

.document-page {
	width: 100%;

	background-color: #ffffff;
}


/* ==========================================================
   DOCUMENT PAGE - CONTENT
   ========================================================== */

.document-page__content {
	padding:
		52px
		0
		72px;

	background-color: #ffffff;
}


.document-page__card {
	width: 100%;

	padding:
		28px
		20px
		34px;

	background-color: #ffffff;

	border:
		1px solid
		#d9d9d9;

	border-radius: 20px;
}


/* ==========================================================
   DOCUMENT PAGE - WYSIWYG
   ========================================================== */

.document-page__wysiwyg {
	width: 100%;
	min-width: 0;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;

	overflow-wrap: anywhere;
}


.document-page__wysiwyg > *:first-child {
	margin-top: 0;
}


.document-page__wysiwyg > *:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   DOCUMENT PAGE - HEADINGS
   TYLKO H2: NIEBIESKI + WYŚRODKOWANY
   ========================================================== */

.document-page__wysiwyg h1,
.document-page__wysiwyg h1.wp-block-heading {
	margin:
		0
		0
		24px;

	font-family: var(--ae-font-heading);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.25;

	text-align: left !important;

	color: #141414 !important;
}


.document-page__wysiwyg h2,
.document-page__wysiwyg h2.wp-block-heading,
.document-page__wysiwyg h2.has-text-align-center,
.document-page__wysiwyg h2.has-text-align-left,
.document-page__wysiwyg h2.has-text-align-right {
	max-width: 1180px;

	margin:
		0
		auto
		28px;

	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;

	text-align: center !important;

	color: #141414 !important;
}


.document-page__wysiwyg h3,
.document-page__wysiwyg h3.wp-block-heading,
.document-page__wysiwyg h3.has-text-align-center,
.document-page__wysiwyg h3.has-text-align-left,
.document-page__wysiwyg h3.has-text-align-right {
	margin:
		28px
		0
		12px;

	font-family: var(--ae-font-heading);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;

	text-align: left !important;
	text-transform: none;

	color: #141414 !important;
}


.document-page__wysiwyg h4,
.document-page__wysiwyg h4.wp-block-heading,
.document-page__wysiwyg h4.has-text-align-center,
.document-page__wysiwyg h4.has-text-align-left,
.document-page__wysiwyg h4.has-text-align-right {
	margin:
		22px
		0
		10px;

	font-family: var(--ae-font-heading);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;

	text-align: left !important;

	color: #141414 !important;
}


.document-page__wysiwyg h5,
.document-page__wysiwyg h6 {
	margin:
		20px
		0
		10px;

	font-family: var(--ae-font-heading);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;

	text-align: left;

	color: #141414;
}


/* ==========================================================
   DOCUMENT PAGE - TEXT
   ========================================================== */

.document-page__wysiwyg p {
	margin:
		0
		0
		14px;
}


.document-page__wysiwyg strong,
.document-page__wysiwyg b {
	font-weight: 700;
}


.document-page__wysiwyg em,
.document-page__wysiwyg i {
	font-style: italic;
}


/* ==========================================================
   DOCUMENT PAGE - LISTS
   ========================================================== */

.document-page__wysiwyg ul,
.document-page__wysiwyg ol {
	margin:
		8px
		0
		16px;

	padding-left: 22px;
}


.document-page__wysiwyg li {
	margin-bottom: 4px;
}


.document-page__wysiwyg li:last-child {
	margin-bottom: 0;
}


.document-page__wysiwyg ul {
	list-style: disc;
}


.document-page__wysiwyg ol {
	list-style: decimal;
}


/* ==========================================================
   DOCUMENT PAGE - LINKS
   ========================================================== */

.document-page__wysiwyg a {
	color: var(--ae-primary);

	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;

	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease;
}


.document-page__wysiwyg a:hover {
	color: #014975;

	text-decoration-color: #014975;
}


/* ==========================================================
   DOCUMENT PAGE - TABLES
   ========================================================== */

.document-page__wysiwyg
.wp-block-table {
	width: 100%;

	margin:
		24px
		0;

	overflow-x: auto;

	-webkit-overflow-scrolling: touch;
}


.document-page__wysiwyg table {
	width: 100%;
	max-width: 100%;
	min-width: 0;

	border-collapse: collapse;

	font-family: var(--ae-font-body);
	font-size: 14px;
	line-height: 1.45;

	color: #141414;
}


.document-page__wysiwyg th,
.document-page__wysiwyg td {
	padding:
		10px
		12px;

	text-align: left;
	vertical-align: top;

	border:
		1px solid
		#d9d9d9;
}


.document-page__wysiwyg th {
	font-weight: 700;

	background-color: #f7f7f7;
}


/* ==========================================================
   DOCUMENT PAGE - MEDIA / BLOCKQUOTE
   ========================================================== */

.document-page__wysiwyg img {
	max-width: 100%;
	height: auto;

	margin:
		24px
		0;

	border-radius: 14px;
}


.document-page__wysiwyg hr {
	margin:
		28px
		0;

	border: 0;
	border-top:
		1px solid
		#d9d9d9;
}


.document-page__wysiwyg blockquote {
	margin:
		24px
		0;

	padding:
		18px
		20px;

	background-color: #f7f7f7;

	border-left:
		4px solid
		var(--ae-primary);

	border-radius:
		0
		12px
		12px
		0;
}


.document-page__wysiwyg blockquote p {
	margin: 0;
}


/* ==========================================================
   DOCUMENT PAGE - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.document-page__content {
		padding:
			44px
			0
			60px;
	}


	.document-page__card {
		padding:
			24px
			18px
			30px;
	}


	.document-page__wysiwyg {
		font-size: 14px;
	}


	.document-page__wysiwyg h1,
	.document-page__wysiwyg h1.wp-block-heading {
		font-size: 25px;
	}


	.document-page__wysiwyg h2,
	.document-page__wysiwyg h2.wp-block-heading {
		margin-bottom: 24px;

		font-size: 22px;
	}


	.document-page__wysiwyg h3,
	.document-page__wysiwyg h3.wp-block-heading {
		font-size: 17px;
	}


	.document-page__wysiwyg h4,
	.document-page__wysiwyg h4.wp-block-heading {
		font-size: 15px;
	}

}


/* ==========================================================
   DOCUMENT PAGE - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.document-page__content {
		padding:
			32px
			0
			46px;
	}


	.document-page__card {
		padding:
			20px
			14px
			24px;

		border-radius: 16px;
	}


	.document-page__wysiwyg {
		font-size: 14px;
		line-height: 1.55;
	}


	.document-page__wysiwyg h1,
	.document-page__wysiwyg h1.wp-block-heading {
		font-size: 22px;

		text-align: left !important;
	}


	.document-page__wysiwyg h2,
	.document-page__wysiwyg h2.wp-block-heading {
		margin-bottom: 20px;

		font-size: 20px;
		line-height: 1.35;

		text-align: center !important;
	}


	.document-page__wysiwyg h3,
	.document-page__wysiwyg h3.wp-block-heading {
		margin-top: 24px;

		font-size: 16px;

		text-align: left !important;

		color: #141414 !important;
	}


	.document-page__wysiwyg h4,
	.document-page__wysiwyg h4.wp-block-heading {
		font-size: 15px;

		text-align: left !important;

		color: #141414 !important;
	}


	.document-page__wysiwyg ul,
	.document-page__wysiwyg ol {
		padding-left: 20px;
	}


	.document-page__wysiwyg
	.wp-block-table {
		overflow-x: auto;
	}


	.document-page__wysiwyg
	.wp-block-table table {
		width: max-content;
		min-width: 620px;
		max-width: none;
	}

}



/* ==========================================================
   CONTACT POPUP
   ========================================================== */

body.contact-popup-open {
	overflow: hidden;
}


.contact-popup {
	position: fixed;
	inset: 0;
	z-index: 100000;

	display: flex;
	align-items: center;
	justify-content: center;

	padding:
		40px
		24px;

	opacity: 0;
	visibility: hidden;

	pointer-events: none;

	transition:
		opacity 0.25s ease,
		visibility 0.25s ease;
}


.contact-popup.is-open {
	opacity: 1;
	visibility: visible;

	pointer-events: auto;
}


/* ==========================================================
   CONTACT POPUP - BACKDROP
   ========================================================== */

.contact-popup__backdrop {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	padding: 0;

	border: 0;
	border-radius: 0;

	cursor: default;

	background-color:
		rgba(
			10,
			23,
			32,
			0.58
		);

	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
}


/* ==========================================================
   CONTACT POPUP - DIALOG
   ========================================================== */

.contact-popup__dialog {
	position: relative;
	z-index: 2;

	width:
		min(
			100%,
			620px
		);

	max-height:
		calc(
			100dvh - 80px
		);

	padding:
		38px
		40px
		40px;

	overflow-x: hidden;
	overflow-y: auto;

	background-color: #ffffff;

	border:
		1px solid
		#e0e0e0;

	border-radius: 20px;

	box-shadow:
		0
		26px
		70px
		rgba(
			0,
			0,
			0,
			0.22
		);

	opacity: 0;

	transform:
		translateY(18px)
		scale(0.98);

	transition:
		opacity 0.28s ease,
		transform 0.35s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}


.contact-popup.is-open
.contact-popup__dialog {
	opacity: 1;

	transform:
		translateY(0)
		scale(1);
}


/* ==========================================================
   CONTACT POPUP - CLOSE
   ========================================================== */

.contact-popup__close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 4;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	padding: 0;

	color: #141414;
	background-color: #f7f7f7;

	border:
		1px solid
		#e0e0e0;

	border-radius: 50%;

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


.contact-popup__close svg {
	width: 18px;
	height: 18px;
}


.contact-popup__close:hover {
	color: #ffffff;
	background-color: var(--ae-primary);
	border-color: var(--ae-primary);

	transform: rotate(4deg);
}


.contact-popup__close:focus-visible {
	outline:
		2px solid
		var(--ae-primary);

	outline-offset: 3px;
}


/* ==========================================================
   CONTACT POPUP - HEADER
   ========================================================== */

.contact-popup__header {
	padding-right: 46px;
	margin-bottom: 28px;
}


.contact-popup__title {
	margin:
		0
		0
		12px;

	font-family: var(--ae-font-heading);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.12;

	color: #141414;
}


.contact-popup__text {
	max-width: 490px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;

	color: #666666;
}


.contact-popup__text p {
	margin:
		0
		0
		8px;
}


.contact-popup__text p:last-child {
	margin-bottom: 0;
}


.contact-popup__text a {
	color: var(--ae-primary);

	text-decoration: underline;
	text-underline-offset: 3px;
}


/* ==========================================================
   CONTACT POPUP - FORM
   ========================================================== */

.contact-popup__form {
	width: 100%;
}


/*
 * Używamy klasy contact-form-card, aby formularz CF7
 * zachował wszystkie istniejące style strony Kontakt.
 * W popupie zdejmujemy tylko obramowanie i padding karty.
 */
.contact-popup
.contact-form-card {
	width: 100%;
	max-width: none;

	padding: 0;

	background-color: transparent;

	border: 0;
	border-radius: 0;

	box-shadow: none;
}


.contact-popup
.ae-contact-form {
	gap: 16px;
}


.contact-popup
.ae-contact-form__field input {
	height: 46px;
}


.contact-popup
.ae-contact-form__field textarea {
	height: 90px;
	min-height: 90px;
	max-height: 90px;
}


.contact-popup
.ae-contact-form__submit
.wpcf7-submit {
	min-height: 48px;
}


.contact-popup
.wpcf7-response-output {
	margin-bottom: 0 !important;
}


/* ==========================================================
   CONTACT POPUP - TABLET
   ========================================================== */

@media (max-width: 767px) {

	.contact-popup {
		align-items: flex-end;

		padding:
			16px
			16px
			20px;
	}


	.contact-popup__dialog {
		width: 100%;

		max-height:
			calc(
				100dvh - 32px
			);

		padding:
			30px
			20px
			24px;

		border-radius:
			20px
			20px
			16px
			16px;

		transform:
			translateY(36px);
	}


	.contact-popup.is-open
	.contact-popup__dialog {
		transform:
			translateY(0);
	}


	.contact-popup__close {
		top: 14px;
		right: 14px;

		width: 36px;
		height: 36px;
	}


	.contact-popup__header {
		padding-right: 42px;
		margin-bottom: 22px;
	}


	.contact-popup__title {
		font-size: 27px;
	}


	.contact-popup__text {
		font-size: 13px;
	}

}


/* ==========================================================
   CONTACT POPUP - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.contact-popup {
		padding: 10px;
	}


	.contact-popup__dialog {
		max-height:
			calc(
				100dvh - 20px
			);

		padding:
			26px
			16px
			20px;
	}


	.contact-popup__title {
		font-size: 25px;
	}

}




/* ==========================================================
   APPLICATION POPUP
   ========================================================== */

.application-popup__dialog {
	width:
		min(
			100%,
			700px
		);
}


.application-popup
.contact-popup__content {
	padding-right: 46px;
}


.application-popup
.contact-popup__text {
	margin-bottom: 24px;
}


.application-popup__form {
	width: 100%;
}


.application-popup
.wpcf7 {
	width: 100%;
}


.application-popup
input[type="file"] {
	min-height: 0;

	padding:
		11px
		12px;

	background-color: #f7f7f7;

	border:
		1px solid
		#e0e0e0;

	border-radius: 10px;
}


.application-popup
input[type="file"]::file-selector-button {
	margin-right: 12px;

	padding:
		8px
		12px;

	font-family: var(--ae-font-button);
	font-size: 12px;
	font-weight: 500;

	color: #ffffff;
	background-color: var(--ae-primary);

	border: 0;
	border-radius: 8px;

	cursor: pointer;
}


@media (max-width: 767px) {

	.application-popup
	.contact-popup__content {
		padding-right: 42px;
	}


	.application-popup
	.contact-popup__text {
		margin-bottom: 20px;
	}

}


@media (max-width: 480px) {

	.application-popup
	.contact-popup__content {
		padding-right: 38px;
	}

}


/* ==========================================================
   SINGLE JOB OFFER
   ========================================================== */

.job-single {
	width: 100%;

	background-color: #ffffff;
}


/* ==========================================================
   SINGLE JOB - INTRO
   ========================================================== */

.job-single__intro {
	padding:
		54px
		0
		30px;

	background-color: #ffffff;
}


.job-single__intro-inner {
	max-width: 1050px;
}


.job-single__intro-title {
	margin:
		0
		0
		24px;

	font-family:
		var(--ae-font-heading);

	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.job-single__intro-text {
	max-width: 980px;

	font-family:
		var(--ae-font-body);

	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;
}


.job-single__intro-text p {
	margin:
		0
		0
		12px;
}


.job-single__intro-text p:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   SINGLE JOB - SECTION
   ========================================================== */

.job-single__section {
	padding:
		0
		0
		78px;

	background-color: #ffffff;
}


/* ==========================================================
   SINGLE JOB - CARD
   ========================================================== */

.job-single__card {
	display: grid;

	grid-template-columns:
		minmax(0, 1.68fr)
		minmax(330px, 1fr);

	width: 100%;

	overflow: hidden;

	background-color: #ffffff;

	border:
		1px solid
		#d9d9d9;

	border-radius: 20px;
}


.job-single__card--no-image {
	display: block;
}


/* ==========================================================
   SINGLE JOB - CONTENT
   ========================================================== */

.job-single__content {
	min-width: 0;

	padding:
		28px
		28px
		34px;
}


.job-single__date {
	display: flex;
	align-items: center;

	gap: 7px;

	margin-bottom: 18px;

	font-family:
		var(--ae-font-body);

	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;

	color: #666666;
}


.job-single__date-icon {
	flex:
		0
		0
		15px;

	width: 15px;
	height: 15px;
}


.job-single__title {
	margin:
		0
		0
		24px;

	font-family:
		var(--ae-font-heading);

	font-size: 28px;
	font-weight: 700;
	line-height: 1.15;

	text-transform: uppercase;

	color:
		var(--ae-primary);
}


/* ==========================================================
   SINGLE JOB - WYSIWYG
   ========================================================== */

.job-single__wysiwyg {
	font-family:
		var(--ae-font-body);

	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;

	overflow-wrap: anywhere;
}


.job-single__wysiwyg > *:first-child {
	margin-top: 0;
}


.job-single__wysiwyg > *:last-child {
	margin-bottom: 0;
}


.job-single__wysiwyg h2,
.job-single__wysiwyg h3 {
	margin:
		24px
		0
		10px;

	font-family:
		var(--ae-font-heading);

	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;

	text-align: left;

	color: #141414;
}


.job-single__wysiwyg h4,
.job-single__wysiwyg h5,
.job-single__wysiwyg h6 {
	margin:
		20px
		0
		9px;

	font-family:
		var(--ae-font-heading);

	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;

	color: #141414;
}


.job-single__wysiwyg p {
	margin:
		0
		0
		13px;
}


.job-single__wysiwyg ul,
.job-single__wysiwyg ol {
	margin:
		8px
		0
		18px;

	padding-left: 24px;
}


.job-single__wysiwyg ul {
	list-style: disc;
}


.job-single__wysiwyg ol {
	list-style: decimal;
}


.job-single__wysiwyg li {
	margin-bottom: 4px;
}


.job-single__wysiwyg strong,
.job-single__wysiwyg b {
	font-weight: 700;
}


.job-single__wysiwyg a {
	color:
		var(--ae-primary);

	text-decoration: underline;

	text-underline-offset: 3px;
}


.job-single__wysiwyg a:hover {
	color: #014975;
}


/* ==========================================================
   SINGLE JOB - IMAGE
   ========================================================== */

.job-single__media {
	position: relative;

	min-width: 0;
	min-height: 100%;

	overflow: hidden;

	background-color: #f7f7f7;
}


.job-single__image {
	position: absolute;

	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;

	object-position:
		var(
			--job-image-position,
			center center
		);
}


/* ==========================================================
   SINGLE JOB - TABLET
   ========================================================== */

@media (max-width: 1100px) {

	.job-single__intro {
		padding-top: 48px;
	}


	.job-single__intro-title {
		font-size: 29px;
	}


	.job-single__card {
		grid-template-columns:
			minmax(0, 1.45fr)
			minmax(300px, 0.85fr);
	}


	.job-single__content {
		padding:
			26px
			24px
			30px;
	}


	.job-single__title {
		font-size: 25px;
	}


	.job-single__wysiwyg {
		font-size: 14px;
	}

}


/* ==========================================================
   SINGLE JOB - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.job-single__intro {
		padding:
			36px
			0
			24px;
	}


	.job-single__intro-title {
		margin-bottom: 18px;

		font-size: 26px;
	}


	.job-single__intro-text {
		font-size: 14px;
		line-height: 1.55;
	}


	.job-single__section {
		padding-bottom: 54px;
	}


	.job-single__card {
		display: flex;
		flex-direction: column;

		border-radius: 16px;
	}


	.job-single__media {
		order: 1;

		width: 100%;

		min-height: 0;

		aspect-ratio: 1.35 / 1;
	}


	.job-single__image {
		position: absolute;
	}


	.job-single__content {
		order: 2;

		padding:
			22px
			18px
			26px;
	}


	.job-single__date {
		margin-bottom: 14px;

		font-size: 11px;
	}


	.job-single__title {
		margin-bottom: 20px;

		font-size: 22px;
		line-height: 1.2;
	}


	.job-single__wysiwyg {
		font-size: 14px;
		line-height: 1.55;
	}


	.job-single__wysiwyg h2,
	.job-single__wysiwyg h3 {
		margin-top: 22px;

		font-size: 16px;
	}


	.job-single__wysiwyg ul,
	.job-single__wysiwyg ol {
		padding-left: 21px;
	}

}


/* ==========================================================
   SINGLE JOB - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.job-single__intro {
		padding-top: 30px;
	}


	.job-single__intro-title {
		font-size: 24px;
	}


	.job-single__media {
		aspect-ratio: 1.2 / 1;
	}


	.job-single__content {
		padding:
			20px
			15px
			24px;
	}


	.job-single__title {
		font-size: 20px;
	}

}


/* ==========================================================
   CAREER PAGE
   ========================================================== */

.career-page {
	width: 100%;
	background-color: #ffffff;
}


/* ==========================================================
   CAREER - INTRO
   ========================================================== */

.career-intro {
	padding:
		54px
		0
		64px;

	background-color: #ffffff;
}


.career-intro__content {
	max-width: 980px;
}


.career-intro__title {
	margin:
		0
		0
		22px;

	font-family:
		var(--ae-font-heading);

	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.career-intro__text {
	max-width: 920px;

	font-family:
		var(--ae-font-body);

	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;
}


.career-intro__text p {
	margin:
		0
		0
		12px;
}


.career-intro__text p:last-child {
	margin-bottom: 0;
}


.career-intro__button {
	margin-top: 30px;
}


/* ==========================================================
   CAREER - BENEFITS
   ========================================================== */

.career-benefits {
	padding:
		54px
		0
		58px;

	background-color: #f7f7f7;
}


.career-benefits__heading {
	margin:
		0
		0
		38px;

	font-family:
		var(--ae-font-heading);

	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;

	color: #141414;
}


.career-benefits__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 54px;
}


.career-benefit {
	min-width: 0;
}


.career-benefit__icon {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 64px;
	height: 64px;

	margin-bottom: 26px;

	overflow: hidden;

	background-color: #dddddd;

	border-radius: 14px;
}


.career-benefit__icon-image {
	width: 34px;
	height: 34px;

	object-fit: contain;
}


.career-benefit__title {
	margin:
		0
		0
		14px;

	font-family:
		var(--ae-font-heading);

	font-size: 22px;
	font-weight: 500;
	line-height: 1.25;

	color: #141414;
}


.career-benefit__description {
	font-family:
		var(--ae-font-body);

	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;
}


.career-benefit__description p {
	margin:
		0
		0
		10px;
}


.career-benefit__description p:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   CAREER - PROCESS
   ========================================================== */

.career-process {
	padding:
		62px
		0
		70px;

	background-color: #ffffff;
}


.career-process__heading {
	margin:
		0
		0
		54px;

	font-family:
		var(--ae-font-heading);

	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;

	text-align: center;

	color: #141414;
}


.career-process__timeline {
	position: relative;

	max-width: 1380px;

	margin:
		0
		auto;
}


.career-process__line {
	position: absolute;

	top: 8px;
	bottom: 8px;
	left: 50%;

	width: 1px;

	background:
		linear-gradient(
			to bottom,
			#02578e 0%,
			#02578e 76%,
			#999999 76%,
			#999999 100%
		);

	transform:
		translateX(-50%);
}


.career-process__step {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr);

	align-items: center;

	min-height: 185px;
}


.career-process__step--left
.career-process__card {
	grid-column: 1;

	margin-right: 54px;
}


.career-process__step--right
.career-process__card {
	grid-column: 2;

	margin-left: 54px;
}


.career-process__dot {
	position: absolute;

	top: 50%;
	left: 50%;

	z-index: 2;

	width: 18px;
	height: 18px;

	background-color: var(--ae-primary);

	border-radius: 50%;

	transform:
		translate(
			-50%,
			-50%
		);
}


.career-process__step:last-child
.career-process__dot {
	background-color: #999999;
}


.career-process__card {
	width: 100%;

	padding:
		28px
		32px;

	background-color: #f7f7f7;

	border-radius: 18px;
}


.career-process__title {
	margin:
		0
		0
		14px;

	font-family:
		var(--ae-font-heading);

	font-size: 22px;
	font-weight: 500;
	line-height: 1.25;

	color: #141414;
}


.career-process__description {
	font-family:
		var(--ae-font-body);

	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;
}


.career-process__description p {
	margin:
		0
		0
		10px;
}


.career-process__description p:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   CAREER - JOBS
   ========================================================== */

.career-jobs {
	padding:
		0
		0
		74px;

	background-color: #ffffff;

	scroll-margin-top: 120px;
}


.career-jobs__heading {
	margin:
		0
		0
		34px;

	font-family:
		var(--ae-font-heading);

	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;

	color: #141414;
}


.career-jobs__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 14px;
}


/* ==========================================================
   CAREER - JOB CARD
   ========================================================== */

.career-job-card {
	display: flex;
	flex-direction: column;

	min-width: 0;

	overflow: hidden;

	background-color: #ffffff;

	border:
		1px solid
		#d9d9d9;

	border-radius: 18px;
}


.career-job-card__media {
	position: relative;

	display: block;

	width: 100%;

	aspect-ratio: 1.55 / 1;

	overflow: hidden;

	background-color: #f7f7f7;
}


.career-job-card__image {
	position: absolute;

	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;

	transition:
		transform 0.45s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		);
}


.career-job-card:hover
.career-job-card__image {
	transform: scale(1.025);
}


.career-job-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;

	padding:
		20px
		20px
		22px;
}


.career-job-card__title {
	margin:
		0
		0
		12px;

	font-family:
		var(--ae-font-heading);

	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;

	color: #141414;
}


.career-job-card__title a {
	color: inherit;

	text-decoration: none;

	transition:
		color 0.2s ease;
}


.career-job-card__title a:hover {
	color: var(--ae-primary);
}


.career-job-card__excerpt {
	margin:
		0
		0
		14px;

	font-family:
		var(--ae-font-body);

	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;

	color: #999999;
}


.career-job-card__date {
	display: flex;
	align-items: center;

	gap: 6px;

	margin-top: auto;
	margin-bottom: 12px;

	font-family:
		var(--ae-font-body);

	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;

	color: #666666;
}


.career-job-card__clock {
	flex:
		0
		0
		14px;

	width: 14px;
	height: 14px;
}


.career-job-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	align-self: flex-start;

	gap: 7px;

	min-height: 34px;

	padding:
		0
		14px;

	font-family:
		var(--ae-font-body);

	font-size: 12px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background-color:
		var(--ae-primary);

	border:
		1px solid
		var(--ae-primary);

	border-radius: 50px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease;
}


.career-job-card__button svg {
	width: 14px;
	height: 14px;

	flex:
		0
		0
		14px;
}


.career-job-card__button:hover {
	color:
		var(--ae-primary);

	background-color:
		#ffffff;
}


/* ==========================================================
   CAREER - JOB ACTIONS
   ========================================================== */

.career-jobs__actions {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 18px;

	margin-top: 46px;
}


.career-jobs__all,
.career-jobs__apply {
	min-width: 270px;
}


.career-jobs__apply {
	color:
		var(--ae-primary);

	background-color:
		#ffffff;

	border:
		1px solid
		var(--ae-primary);
}


.career-jobs__apply:hover {
	color: #ffffff;

	background-color:
		var(--ae-primary);
}


.career-jobs__empty {
	padding:
		34px;

	text-align: center;

	background-color: #f7f7f7;

	border-radius: 18px;
}


.career-jobs__empty p {
	margin: 0;

	font-family:
		var(--ae-font-body);

	font-size: 14px;

	color: #666666;
}


/* ==========================================================
   CAREER - TABLET
   ========================================================== */

@media (max-width: 1100px) {

	.career-intro {
		padding:
			48px
			0
			56px;
	}


	.career-intro__title,
	.career-benefits__heading,
	.career-process__heading,
	.career-jobs__heading {
		font-size: 28px;
	}


	.career-benefits__grid {
		gap: 34px;
	}


	.career-process__step {
		min-height: 170px;
	}


	.career-process__step--left
	.career-process__card {
		margin-right: 42px;
	}


	.career-process__step--right
	.career-process__card {
		margin-left: 42px;
	}


	.career-process__card {
		padding:
			24px
			26px;
	}


	.career-process__title {
		font-size: 20px;
	}


	.career-jobs__grid {
		gap: 12px;
	}


	.career-job-card__content {
		padding:
			18px;
	}


	.career-job-card__title {
		font-size: 16px;
	}

}


/* ==========================================================
   CAREER - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.career-intro {
		padding:
			36px
			0
			44px;
	}


	.career-intro__title {
		margin-bottom: 18px;

		font-size: 26px;
	}


	.career-intro__text {
		font-size: 14px;
		line-height: 1.55;
	}


	.career-intro__button {
		margin-top: 24px;
	}


	/* BENEFITS */

	.career-benefits {
		padding:
			40px
			0
			44px;
	}


	.career-benefits__heading {
		margin-bottom: 30px;

		font-size: 26px;
	}


	.career-benefits__grid {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.career-benefit__icon {
		width: 58px;
		height: 58px;

		margin-bottom: 18px;
	}


	.career-benefit__icon-image {
		width: 30px;
		height: 30px;
	}


	.career-benefit__title {
		margin-bottom: 10px;

		font-size: 20px;
	}


	.career-benefit__description {
		font-size: 14px;
	}


	/* PROCESS */

	.career-process {
		padding:
			46px
			0
			54px;
	}


	.career-process__heading {
		margin-bottom: 36px;

		font-size: 26px;

		text-align: left;
	}


	.career-process__timeline {
		padding-left: 30px;
	}


	.career-process__line {
		top: 10px;
		bottom: 10px;
		left: 8px;

		transform: none;
	}


	.career-process__step {
		display: block;

		min-height: 0;

		margin-bottom: 24px;
	}


	.career-process__step:last-child {
		margin-bottom: 0;
	}


	.career-process__step--left
	.career-process__card,
	.career-process__step--right
	.career-process__card {
		margin:
			0;
	}


	.career-process__dot {
		top: 30px;
		left: -22px;

		width: 15px;
		height: 15px;

		transform: none;
	}


	.career-process__card {
		padding:
			22px
			20px;

		border-radius: 16px;
	}


	.career-process__title {
		font-size: 19px;
	}


	.career-process__description {
		font-size: 14px;
	}


	/* JOBS */

	.career-jobs {
		padding-bottom: 54px;
	}


	.career-jobs__heading {
		margin-bottom: 28px;

		font-size: 26px;
	}


	.career-jobs__grid {
		grid-template-columns: 1fr;

		gap: 20px;
	}


	.career-job-card__media {
		aspect-ratio: 1.65 / 1;
	}


	.career-job-card__content {
		padding:
			20px
			18px
			22px;
	}


	.career-job-card__title {
		font-size: 18px;
	}


	.career-job-card__excerpt {
		font-size: 13px;
	}


	.career-jobs__actions {
		flex-direction: column;

		gap: 12px;

		margin-top: 34px;
	}


	.career-jobs__all,
	.career-jobs__apply {
		width: 100%;
		min-width: 0;
	}

}


/* ==========================================================
   CAREER - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.career-intro {
		padding-top: 30px;
	}


	.career-intro__title,
	.career-benefits__heading,
	.career-process__heading,
	.career-jobs__heading {
		font-size: 24px;
	}


	.career-benefit__title {
		font-size: 19px;
	}


	.career-process__card {
		padding:
			20px
			17px;
	}


	.career-job-card__media {
		aspect-ratio: 1.45 / 1;
	}

}


/* ==========================================================
   JOB OFFERS ARCHIVE
   ========================================================== */

.jobs-archive {
	width: 100%;

	background-color: #ffffff;
}


.jobs-archive__section {
	padding:
		58px
		0
		76px;
}


.jobs-archive__header {
	max-width: 980px;

	margin-bottom: 42px;
}


.jobs-archive__title {
	margin:
		0
		0
		18px;

	font-family:
		var(--ae-font-heading);

	font-size: 32px;
	font-weight: 500;
	line-height: 1.15;

	color: #141414;
}


.jobs-archive__description {
	max-width: 850px;

	margin: 0;

	font-family:
		var(--ae-font-body);

	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;

	color: #666666;
}


.jobs-archive__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap: 24px 16px;
}


/* ==========================================================
   JOB OFFERS ARCHIVE - PAGINATION
   ========================================================== */

.jobs-archive__pagination {
	margin-top: 52px;
}


.jobs-archive__pagination
.nav-links {
	display: flex;
	align-items: center;
	justify-content: center;

	flex-wrap: wrap;

	gap: 8px;
}


.jobs-archive__pagination
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-width: 38px;
	height: 38px;

	padding:
		0
		11px;

	font-family:
		var(--ae-font-body);

	font-size: 13px;
	font-weight: 400;

	color:
		var(--ae-primary);

	background-color:
		#ffffff;

	border:
		1px solid
		transparent;

	border-radius: 50px;

	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease;
}


.jobs-archive__pagination
.page-numbers.current {
	color: #ffffff;

	background-color:
		var(--ae-primary);

	border-color:
		var(--ae-primary);
}


.jobs-archive__pagination
.page-numbers:hover {
	border-color:
		var(--ae-primary);
}


.jobs-archive__pagination
.prev,
.jobs-archive__pagination
.next {
	min-width: 112px;

	border-color:
		var(--ae-primary);
}


/* ==========================================================
   JOB OFFERS ARCHIVE - EMPTY
   ========================================================== */

.jobs-archive__empty {
	padding:
		46px
		32px;

	text-align: center;

	background-color: #f7f7f7;

	border-radius: 20px;
}


.jobs-archive__empty h2 {
	margin:
		0
		0
		12px;

	font-family:
		var(--ae-font-heading);

	font-size: 25px;
	font-weight: 600;

	color: #141414;
}


.jobs-archive__empty p {
	max-width: 650px;

	margin:
		0
		auto;

	font-family:
		var(--ae-font-body);

	font-size: 14px;
	line-height: 1.5;

	color: #666666;
}


/* ==========================================================
   JOB OFFERS ARCHIVE - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.jobs-archive__section {
		padding:
			48px
			0
			64px;
	}


	.jobs-archive__title {
		font-size: 29px;
	}


	.jobs-archive__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		gap: 20px;
	}

}


/* ==========================================================
   JOB OFFERS ARCHIVE - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.jobs-archive__section {
		padding:
			38px
			0
			54px;
	}


	.jobs-archive__header {
		margin-bottom: 30px;
	}


	.jobs-archive__title {
		font-size: 26px;
	}


	.jobs-archive__description {
		font-size: 14px;
	}


	.jobs-archive__grid {
		grid-template-columns: 1fr;
	}


	.jobs-archive__pagination {
		margin-top: 38px;
	}

}


/* ==========================================================
   JOB OFFERS ARCHIVE - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.jobs-archive__title {
		font-size: 24px;
	}


	.jobs-archive__pagination
	.prev,
	.jobs-archive__pagination
	.next {
		min-width: 0;
	}

}


/* ==========================================================
   APPLICATION POPUP - FORM FIXES
   ========================================================== */

.application-popup
.wpcf7-form {
	width: 100%;
}


.application-popup
.wpcf7-form p {
	margin:
		0
		0
		18px;
}


/* ==========================================================
   APPLICATION POPUP - CONSENT
   ========================================================== */

.application-popup
.ae-application-consent {
	margin:
		4px
		0
		22px;
}


.application-popup
.ae-application-consent
.wpcf7-form-control-wrap {
	display: block;
}


.application-popup
.ae-application-consent
.wpcf7-acceptance {
	display: block;
}


.application-popup
.ae-application-consent
.wpcf7-list-item {
	display: block;

	margin: 0;
}


.application-popup
.ae-application-consent
label {
	display: grid;

	grid-template-columns:
		20px
		minmax(0, 1fr);

	align-items: start;

	gap: 11px;

	width: 100%;

	margin: 0;

	cursor: pointer;
}


.application-popup
.ae-application-consent
input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;

	min-width: 18px !important;
	min-height: 18px !important;

	margin:
		2px
		0
		0 !important;

	padding: 0 !important;

	accent-color:
		var(--ae-primary);

	border-radius: 4px;

	cursor: pointer;
}


.application-popup
.ae-application-consent
.wpcf7-list-item-label {
	display: block;

	font-family:
		var(--ae-font-body);

	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;

	color: #666666;
}


/* ==========================================================
   APPLICATION POPUP - SUBMIT
   ========================================================== */

.application-popup
.ae-application-submit {
	margin-top: 6px;
}


.application-popup
.ae-application-submit
.wpcf7-submit {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 48px;

	margin: 0;

	padding:
		0
		24px;

	font-family:
		var(--ae-font-button);

	font-size: 14px;
	font-weight: 500;
	line-height: 1;

	color: #ffffff;

	background-color:
		var(--ae-primary);

	border:
		1px solid
		var(--ae-primary);

	border-radius: 50px;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
}


.application-popup
.ae-application-submit
.wpcf7-submit:hover {
	background-color: #014975;

	border-color: #014975;

	transform:
		translateY(-1px);
}


.application-popup
.ae-application-submit
.wpcf7-submit:disabled {
	opacity: 0.55;

	cursor: not-allowed;

	transform: none;
}


/* ==========================================================
   APPLICATION POPUP - CF7 MESSAGES
   ========================================================== */

.application-popup
.wpcf7-response-output {
	margin:
		18px
		0
		0 !important;

	padding:
		12px
		14px !important;

	font-size: 12px;
	line-height: 1.4;

	border-radius: 10px;
}


/* ==========================================================
   APPLICATION POPUP - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.application-popup
	.ae-application-consent
	.wpcf7-list-item-label {
		font-size: 12px;
	}


	.application-popup
	.ae-application-submit
	.wpcf7-submit {
		height: 46px;

		font-size: 13px;
	}

}

/* ==========================================================
   CAREER PROCESS - FINAL DESIGN + SCROLL ANIMATION
   ========================================================== */

/*
 * Design:
 * - węższa oś jak w projekcie,
 * - małe pełne kropki,
 * - cienka szara linia bazowa,
 * - niebieska linia ładuje się w dół,
 * - karta pojawia się dokładnie wtedy, gdy linia dociera
 *   do odpowiadającej jej kropki.
 */

.career-process {
	padding:
		62px
		0
		72px;

	background-color: #ffffff;
}


.career-process__heading {
	margin:
		0
		0
		58px;

	font-family:
		var(--ae-font-heading);

	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;

	text-align: center;

	color: #141414;
}


.career-process__timeline {
	--career-line-progress-px: 0px;

	position: relative;

	width: 100%;
	max-width: 1120px;

	margin:
		0
		auto;
}


/* ==========================================================
   LINE
   ========================================================== */

.career-process__line {
	position: absolute;

	top: var(--career-line-top, 0px);
	left: 50%;

	z-index: 1;

	width: 1px;
	height: var(--career-line-height, 0px);

	overflow: visible;

	background-color: #aaaaaa;

	transform:
		translateX(-50%);

	pointer-events: none;
}


/*
 * Niebieska część rośnie od pierwszej kropki w dół.
 */
.career-process__line::after {
	content: "";

	position: absolute;

	top: 0;
	left: 50%;

	width: 2px;
	height: var(--career-line-progress-px, 0px);

	background-color: #02578e;

	border-radius: 20px;

	transform:
		translateX(-50%);

	will-change: height;
}


/* ==========================================================
   STEPS
   ========================================================== */

.career-process__step {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(0, 1fr);

	align-items: center;

	min-height: 160px;
}


.career-process__step--left
.career-process__card {
	grid-column: 1;

	margin-right: 44px;
}


.career-process__step--right
.career-process__card {
	grid-column: 2;

	margin-left: 44px;
}


/* ==========================================================
   DOTS
   ========================================================== */

.career-process__dot {
	position: absolute;

	top: 50%;
	left: 50%;

	z-index: 3;

	width: 11px;
	height: 11px;

	background-color: #9a9a9a;

	border: 0;
	border-radius: 50%;

	box-shadow: none;

	opacity: 0.75;

	transform:
		translate(
			-50%,
			-50%
		)
		scale(0.78);

	transition:
		background-color 0.3s ease,
		opacity 0.3s ease,
		transform 0.45s
			cubic-bezier(
				0.22,
				1,
				0.36,
				1
			);

	will-change:
		transform,
		opacity;
}


.career-process__step.is-visible
.career-process__dot {
	background-color: #02578e;

	opacity: 1;

	transform:
		translate(
			-50%,
			-50%
		)
		scale(1);
}


/* ==========================================================
   CARDS
   ========================================================== */

.career-process__card {
	width: 100%;

	padding:
		24px
		26px;

	background-color: #f7f7f7;

	border: 0;
	border-radius: 14px;

	box-shadow: none;
}


.career-process--js
.career-process__card {
	opacity: 0;

	transition:
		opacity 0.52s ease,
		transform 0.72s
			cubic-bezier(
				0.22,
				1,
				0.36,
				1
			);

	will-change:
		transform,
		opacity;
}


.career-process--js
.career-process__step--left
.career-process__card {
	transform:
		translateX(-30px);
}


.career-process--js
.career-process__step--right
.career-process__card {
	transform:
		translateX(30px);
}


.career-process--js
.career-process__step.is-visible
.career-process__card {
	opacity: 1;

	transform:
		translateX(0);
}


.career-process__title {
	margin:
		0
		0
		12px;

	font-family:
		var(--ae-font-heading);

	font-size: 19px;
	font-weight: 500;
	line-height: 1.25;

	color: #141414;
}


.career-process__description {
	font-family:
		var(--ae-font-body);

	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;
}


.career-process__description p {
	margin:
		0
		0
		8px;
}


.career-process__description p:last-child {
	margin-bottom: 0;
}


/* ==========================================================
   CAREER PROCESS - TABLET
   ========================================================== */

@media (max-width: 1100px) {

	.career-process__timeline {
		max-width: 920px;
	}


	.career-process__step {
		min-height: 150px;
	}


	.career-process__step--left
	.career-process__card {
		margin-right: 36px;
	}


	.career-process__step--right
	.career-process__card {
		margin-left: 36px;
	}


	.career-process__card {
		padding:
			22px
			24px;
	}


	.career-process__title {
		font-size: 18px;
	}

}


/* ==========================================================
   CAREER PROCESS - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.career-process {
		padding:
			46px
			0
			56px;
	}


	.career-process__heading {
		margin-bottom: 38px;

		font-size: 26px;

		text-align: left;
	}


	.career-process__timeline {
		max-width: none;

		padding-left: 32px;
	}


	.career-process__line {
		left: 8px;

		transform: none;
	}


	.career-process__step {
		display: block;

		min-height: 0;

		margin-bottom: 26px;
	}


	.career-process__step:last-child {
		margin-bottom: 0;
	}


	.career-process__step--left
	.career-process__card,
	.career-process__step--right
	.career-process__card {
		margin: 0;
	}


	.career-process__dot {
		top: 30px;
		left: -24px;

		width: 10px;
		height: 10px;

		transform:
			scale(0.78);
	}


	.career-process__step.is-visible
	.career-process__dot {
		transform:
			scale(1);
	}


	.career-process__card {
		padding:
			22px
			20px;

		border-radius: 14px;
	}


	.career-process--js
	.career-process__step--left
	.career-process__card,
	.career-process--js
	.career-process__step--right
	.career-process__card {
		transform:
			translateX(22px);
	}


	.career-process--js
	.career-process__step.is-visible
	.career-process__card {
		transform:
			translateX(0);
	}


	.career-process__title {
		font-size: 18px;
	}


	.career-process__description {
		font-size: 13px;
	}

}


@media (max-width: 480px) {

	.career-process__heading {
		font-size: 24px;
	}


	.career-process__card {
		padding:
			20px
			17px;
	}

}


/* ==========================================================
   CAREER PROCESS - NO JS / REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

	.career-process--js
	.career-process__card {
		opacity: 1;

		transform: none;

		transition: none;
	}


	.career-process__dot {
		opacity: 1;

		transform:
			translate(
				-50%,
				-50%
			);

		transition: none;
	}


	@media (max-width: 767px) {

		.career-process__dot {
			transform: none;
		}

	}

}

/* ==========================================================
   CAREER PROCESS - SPACING + BIGGER DOTS
   ========================================================== */

.career-process__card {
	width: min(100%, 500px);
}


/* LEWA STRONA */

.career-process__step--left
.career-process__card {
	justify-self: end;

	margin-right: 58px;
}


/* PRAWA STRONA */

.career-process__step--right
.career-process__card {
	justify-self: start;

	margin-left: 58px;
}


/* WIĘKSZE KROPKI */

.career-process__dot {
	width: 25px;
	height: 25px;
}


/* TABLET */

@media (max-width: 1100px) {

	.career-process__card {
		width: min(100%, 430px);
	}


	.career-process__step--left
	.career-process__card {
		margin-right: 44px;
	}


	.career-process__step--right
	.career-process__card {
		margin-left: 44px;
	}


	.career-process__dot {
		width: 14px;
		height: 14px;
	}

}


/* MOBILE */

@media (max-width: 767px) {

	.career-process__timeline {
		--career-mobile-axis: 13px;
		--career-mobile-content-offset: 52px;

		position: relative;

		display: block !important;

		width: 100%;
		max-width: none;

		padding-left:
			var(--career-mobile-content-offset);
	}


	/* ======================================================
	   LINIA
	   ====================================================== */

	.career-process__line {
		position: absolute;

		left:
			var(--career-mobile-axis) !important;

		width: 2px;

		transform:
			translateX(-50%) !important;
	}


	.career-process__line::after {
		left: 50%;

		width: 2px;

		transform:
			translateX(-50%);
	}


	/* ======================================================
	   KROKI
	   ====================================================== */

	.career-process__step {
		position: relative;

		display: block !important;

		grid-template-columns: none !important;

		width: 100%;
		min-height: 0;

		margin:
			0
			0
			30px;

		padding: 0;
	}


	.career-process__step:last-child {
		margin-bottom: 0;
	}


	/* ======================================================
	   KROPKI - 25PX I DOKŁADNIE NA ŚRODKU LINII
	   ====================================================== */

	.career-process__dot {
		position: absolute;

		top: 30px;

		left:
			calc(
				var(--career-mobile-axis) -
				var(--career-mobile-content-offset)
			) !important;

		width: 25px !important;
		height: 25px !important;

		margin: 0 !important;

		border: 0;

		border-radius: 50%;

		transform:
			translate(
				-50%,
				-50%
			)
			scale(0.78) !important;
	}


	.career-process__step.is-visible
	.career-process__dot {
		transform:
			translate(
				-50%,
				-50%
			)
			scale(1) !important;
	}


	/* ======================================================
	   KARTY - PEŁNA SZEROKOŚĆ
	   ====================================================== */

	.career-process__card,
	.career-process__step--left
	.career-process__card,
	.career-process__step--right
	.career-process__card {
		display: block;

		grid-column: auto !important;

		width: 100% !important;
		max-width: none !important;

		margin:
			0 !important;

		justify-self: auto !important;

		padding:
			22px
			20px;

		border-radius: 14px;
	}


	/* ======================================================
	   ANIMACJA KART
	   ====================================================== */

	.career-process--js
	.career-process__step--left
	.career-process__card,
	.career-process--js
	.career-process__step--right
	.career-process__card {
		transform:
			translateX(22px);
	}


	.career-process--js
	.career-process__step.is-visible
	.career-process__card {
		transform:
			translateX(0);
	}


	/* ======================================================
	   TYPOGRAFIA
	   ====================================================== */

	.career-process__title {
		margin:
			0
			0
			10px;

		font-size: 18px;
		line-height: 1.3;
	}


	.career-process__description {
		font-size: 13px;
		line-height: 1.5;
	}

}


/* ==========================================================
   CERTIFICATE SEARCH PAGE
   ========================================================== */

.certificate-search-page {
	width: 100%;

	background-color: #ffffff;
}


.certificate-search-page__content {
	padding:
		68px
		0
		82px;

	background-color: #ffffff;
}


/* ==========================================================
   CERTIFICATE SEARCH - INTRO
   ========================================================== */

.certificate-search-page__intro {
	max-width: 820px;

	margin:
		0
		auto
		38px;

	text-align: center;
}


.certificate-search-page__eyebrow {
	display: inline-block;

	margin-bottom: 10px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;

	color: var(--ae-primary);
}


.certificate-search-page__title {
	margin:
		0
		0
		14px;

	font-family: var(--ae-font-heading);
	font-size: 38px;
	font-weight: 700;
	line-height: 1.1;

	color: #141414;
}


.certificate-search-page__description {
	max-width: 650px;

	margin:
		0
		auto;

	font-family: var(--ae-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.55;

	color: #666666;
}


/* ==========================================================
   CERTIFICATE SEARCH - BOX
   ========================================================== */

.certificate-search-box {
	width: 100%;
	max-width: 1040px;

	margin:
		0
		auto;

	padding:
		30px
		32px;

	background-color: #f7f7f7;

	border:
		1px solid
		#e0e0e0;

	border-radius: 20px;
}


.certificate-search-form {
	width: 100%;
}


.certificate-search-form__label {
	display: block;

	margin-bottom: 10px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;

	color: #141414;
}


.certificate-search-form__row {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		auto;

	align-items: stretch;

	gap: 12px;
}


.certificate-search-form__input-wrap {
	position: relative;

	min-width: 0;
}


.certificate-search-form__icon {
	position: absolute;

	top: 50%;
	left: 18px;

	width: 20px;
	height: 20px;

	color: #8a8a8a;

	transform:
		translateY(-50%);

	pointer-events: none;
}


.certificate-search-form__input {
	width: 100%;
	height: 54px;

	padding:
		0
		18px
		0
		50px;

	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;

	color: #141414;

	background-color: #ffffff;

	border:
		1px solid
		#d9d9d9;

	border-radius: 15px;

	outline: none;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}


.certificate-search-form__input::placeholder {
	color: #9a9a9a;
}


.certificate-search-form__input:hover {
	border-color: #c7c7c7;
}


.certificate-search-form__input:focus {
	border-color: var(--ae-primary);

	box-shadow:
		0 0 0 3px
		rgba(
			2,
			87,
			142,
			0.10
		);
}


.certificate-search-form__input::-webkit-search-cancel-button {
	cursor: pointer;
}


.certificate-search-form__button {
	min-width: 138px;
	height: 54px;

	padding:
		0
		26px;

	border: 0;
}


/* ==========================================================
   CERTIFICATE SEARCH - RESULTS
   ========================================================== */

.certificate-search-results {
	width: 100%;
	max-width: 1040px;

	margin:
		46px
		auto
		0;
}


.certificate-search-results__header {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 20px;

	margin-bottom: 18px;
}


.certificate-search-results__title {
	margin: 0;

	font-family: var(--ae-font-heading);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;

	color: #141414;
}


.certificate-search-results__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 32px;

	padding:
		0
		13px;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 500;

	color: var(--ae-primary);

	background-color:
		rgba(
			2,
			87,
			142,
			0.08
		);

	border-radius: 50px;
}


.certificate-search-results__list {
	display: flex;
	flex-direction: column;

	gap: 18px;
}


/* ==========================================================
   CERTIFICATE RESULT CARD
   ========================================================== */

.certificate-result-card {
	width: 100%;

	padding:
		26px
		28px;

	background-color: #ffffff;

	border:
		1px solid
		#e0e0e0;

	border-radius: 20px;

	box-shadow:
		0
		10px
		30px
		rgba(
			0,
			0,
			0,
			0.035
		);
}


.certificate-result-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap: 28px;

	padding-bottom: 22px;

	border-bottom:
		1px solid
		#ededed;
}


.certificate-result-card__heading {
	min-width: 0;
}


.certificate-result-card__system {
	display: inline-block;

	margin-bottom: 8px;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;

	color: var(--ae-primary);
}


.certificate-result-card__number {
	margin:
		0
		0
		7px;

	font-family: var(--ae-font-heading);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.2;

	color: #141414;

	overflow-wrap: anywhere;
}


.certificate-result-card__holder {
	font-family: var(--ae-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;

	color: #666666;
}


/* ==========================================================
   CERTIFICATE STATUS
   ========================================================== */

.certificate-status {
	flex:
		0
		0
		auto;

	display: inline-flex;
	align-items: center;

	gap: 7px;

	min-height: 34px;

	padding:
		0
		13px;

	font-family: var(--ae-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;

	color: #666666;

	background-color: #f3f3f3;

	border-radius: 50px;
}


.certificate-status__dot {
	width: 7px;
	height: 7px;

	flex:
		0
		0
		7px;

	background-color: currentColor;

	border-radius: 50%;
}


/* ACTIVE */

.certificate-status--active {
	color: #237a47;

	background-color: #edf8f1;
}


/* EXPIRED */

.certificate-status--expired {
	color: #9a6a14;

	background-color: #fff7e6;
}


/* WITHDRAWN */

.certificate-status--withdrawn {
	color: #a04444;

	background-color: #fff0f0;
}


/* CANCELLED */

.certificate-status--cancelled {
	color: #a04444;

	background-color: #fff0f0;
}


/* ==========================================================
   CERTIFICATE RESULT - FIELDS
   ========================================================== */

.certificate-result-card__grid {
	display: grid;

	grid-template-columns:
		repeat(
			3,
			minmax(0, 1fr)
		);

	gap:
		22px
		28px;

	padding:
		24px
		0
		0;
}


.certificate-result-card__field {
	min-width: 0;
}


.certificate-result-card__label {
	display: block;

	margin-bottom: 5px;

	font-family: var(--ae-font-body);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;

	color: #8a8a8a;
}


.certificate-result-card__field strong {
	display: block;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.45;

	color: #141414;

	overflow-wrap: anywhere;
}


.certificate-result-card__wide-field {
	margin-top: 20px;

	padding-top: 20px;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;

	color: #141414;

	border-top:
		1px solid
		#ededed;
}


/* ==========================================================
   CERTIFICATE DETAILS
   ========================================================== */

.certificate-result-details {
	margin-top: 22px;

	border-top:
		1px solid
		#ededed;
}


.certificate-result-details__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 20px;

	padding:
		18px
		0
		0;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;

	color: var(--ae-primary);

	cursor: pointer;

	list-style: none;
}


.certificate-result-details__summary::-webkit-details-marker {
	display: none;
}


.certificate-result-details__icon {
	position: relative;

	width: 26px;
	height: 26px;

	flex:
		0
		0
		26px;

	border:
		1px solid
		#d9d9d9;

	border-radius: 50%;
}


.certificate-result-details__icon::before,
.certificate-result-details__icon::after {
	content: "";

	position: absolute;

	top: 50%;
	left: 50%;

	width: 10px;
	height: 1px;

	background-color: var(--ae-primary);

	transform:
		translate(
			-50%,
			-50%
		);

	transition:
		transform 0.2s ease;
}


.certificate-result-details__icon::after {
	transform:
		translate(
			-50%,
			-50%
		)
		rotate(90deg);
}


.certificate-result-details[open]
.certificate-result-details__icon::after {
	transform:
		translate(
			-50%,
			-50%
		)
		rotate(0deg);
}


.certificate-result-details__content {
	padding-top: 22px;
}


.certificate-result-details__section {
	padding:
		22px
		24px;

	background-color: #f7f7f7;

	border-radius: 14px;
}


.certificate-result-details__section h5 {
	margin:
		0
		0
		12px;

	font-family: var(--ae-font-heading);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;

	color: #141414;
}


.certificate-result-details__wysiwyg {
	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;

	color: #141414;
}


.certificate-result-details__wysiwyg > *:first-child {
	margin-top: 0;
}


.certificate-result-details__wysiwyg > *:last-child {
	margin-bottom: 0;
}


.certificate-result-details__wysiwyg p {
	margin:
		0
		0
		10px;
}


.certificate-result-details__wysiwyg ul,
.certificate-result-details__wysiwyg ol {
	margin:
		8px
		0
		12px;

	padding-left: 20px;
}


.certificate-result-details__extra {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	gap: 20px;

	margin-top: 18px;

	padding:
		22px
		24px;

	background-color: #f7f7f7;

	border-radius: 14px;
}


/* ==========================================================
   CERTIFICATE SEARCH - EMPTY / ERROR MESSAGE
   ========================================================== */

.certificate-search-message {
	width: 100%;

	padding:
		42px
		28px;

	text-align: center;

	background-color: #f7f7f7;

	border:
		1px solid
		#e0e0e0;

	border-radius: 20px;
}


.certificate-search-message__icon {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 48px;
	height: 48px;

	margin:
		0
		auto
		16px;

	font-family: var(--ae-font-heading);
	font-size: 20px;
	font-weight: 600;

	color: var(--ae-primary);

	background-color:
		rgba(
			2,
			87,
			142,
			0.10
		);

	border-radius: 50%;
}


.certificate-search-message__title {
	margin:
		0
		0
		8px;

	font-family: var(--ae-font-heading);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.25;

	color: #141414;
}


.certificate-search-message p {
	max-width: 520px;

	margin:
		0
		auto;

	font-family: var(--ae-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;

	color: #666666;
}


/* ==========================================================
   CERTIFICATE SEARCH - TABLET
   ========================================================== */

@media (max-width: 1024px) {

	.certificate-search-page__content {
		padding:
			56px
			0
			68px;
	}


	.certificate-search-page__title {
		font-size: 34px;
	}


	.certificate-search-box {
		padding:
			26px
			26px;
	}


	.certificate-result-card__grid {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);
	}

}


/* ==========================================================
   CERTIFICATE SEARCH - MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.certificate-search-page__content {
		padding:
			42px
			0
			54px;
	}


	.certificate-search-page__intro {
		margin-bottom: 28px;

		text-align: left;
	}


	.certificate-search-page__eyebrow {
		font-size: 13px;
	}


	.certificate-search-page__title {
		font-size: 29px;
	}


	.certificate-search-page__description {
		margin: 0;

		font-size: 14px;
	}


	.certificate-search-box {
		padding:
			20px
			18px;

		border-radius: 16px;
	}


	.certificate-search-form__row {
		grid-template-columns:
			1fr;

		gap: 10px;
	}


	.certificate-search-form__input {
		height: 52px;

		font-size: 13px;
	}


	.certificate-search-form__button {
		width: 100%;
		height: 50px;
	}


	.certificate-search-results {
		margin-top: 34px;
	}


	.certificate-search-results__header {
		align-items: flex-start;
	}


	.certificate-search-results__title {
		font-size: 21px;
	}


	.certificate-result-card {
		padding:
			22px
			18px;

		border-radius: 16px;
	}


	.certificate-result-card__top {
		flex-direction: column;

		gap: 16px;
	}


	.certificate-result-card__number {
		font-size: 20px;
	}


	.certificate-result-card__grid {
		grid-template-columns:
			1fr;

		gap: 16px;
	}


	.certificate-result-details__extra {
		grid-template-columns:
			1fr;

		padding:
			18px;
	}


	.certificate-result-details__section {
		padding:
			18px;
	}


	.certificate-search-message {
		padding:
			32px
			20px;
	}

}


/* ==========================================================
   CERTIFICATE SEARCH - SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

	.certificate-search-page__title {
		font-size: 27px;
	}


	.certificate-search-box {
		padding:
			18px
			14px;
	}


	.certificate-result-card {
		padding:
			20px
			15px;
	}


	.certificate-search-results__count {
		font-size: 11px;
	}

}




/* ==========================================================
   CERTIFICATE SEARCH - AJAX ANIMATION
   ========================================================== */

.certificate-search-results-shell {
	min-height: 0;

	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}


.certificate-search-results-shell.is-loading {
	opacity: 0.42;

	transform:
		translateY(4px);

	pointer-events: none;
}


/* ==========================================================
   CERTIFICATE SEARCH - BUTTON LOADER
   ========================================================== */

.certificate-search-form__button {
	position: relative;

	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 9px;
}


.certificate-search-form__spinner {
	display: none;

	width: 16px;
	height: 16px;

	flex:
		0
		0
		16px;

	border:
		2px solid
		rgba(
			255,
			255,
			255,
			0.35
		);

	border-top-color:
		#ffffff;

	border-radius: 50%;

	animation:
		certificate-search-spin
		0.7s
		linear
		infinite;
}


.certificate-search-form.is-loading
.certificate-search-form__spinner {
	display: block;
}


.certificate-search-form.is-loading
.certificate-search-form__button-text {
	opacity: 0.82;
}


.certificate-search-form.is-loading
.certificate-search-form__button {
	cursor: wait;
}


@keyframes certificate-search-spin {

	to {
		transform:
			rotate(360deg);
	}

}


/* ==========================================================
   CERTIFICATE SEARCH - RESULTS REVEAL
   ========================================================== */

.certificate-search-results-shell.is-entering
.certificate-search-results__header {
	animation:
		certificate-result-reveal
		0.42s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		)
		both;
}


.certificate-search-results-shell.is-entering
.certificate-result-card {
	animation:
		certificate-result-reveal
		0.52s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		)
		both;

	animation-delay:
		calc(
			var(
				--result-index,
				0
			) *
			70ms
		);
}


.certificate-search-results-shell.is-entering
.certificate-search-message {
	animation:
		certificate-result-reveal
		0.48s
		cubic-bezier(
			0.22,
			1,
			0.36,
			1
		)
		both;
}


@keyframes certificate-result-reveal {

	from {
		opacity: 0;

		transform:
			translateY(14px);
	}

	to {
		opacity: 1;

		transform:
			translateY(0);
	}

}


/* ==========================================================
   57. REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}


	.home-hero__track {
		transition: none;
	}



	.certificate-search-results-shell,
	.certificate-search-results-shell.is-entering
	.certificate-search-results__header,
	.certificate-search-results-shell.is-entering
	.certificate-result-card,
	.certificate-search-results-shell.is-entering
	.certificate-search-message {
		transition: none;
		animation: none !important;
	}


	.cert-system-tabs__panel.is-entering {
		animation: none;
	}


	.cert-faq__answer {
		transition: none;
	}


	.site-header__mobile-panel,
	.site-header__mobile-panel *,
	*,
	*::before,
	*::after {
		animation-duration:
			0.01ms !important;

		animation-iteration-count:
			1 !important;

		transition-duration:
			0.01ms !important;
	}

}

/* ==========================================================
   58. HOME HERO - FINAL ALIGNMENT / RELIABLE MEDIA
   ========================================================== */

/*
 * Każdy slajd ma dokładnie tę samą wysokość.
 * W treści rezerwujemy stałe miejsca na:
 * eyebrow -> tytuł -> opis -> przycisk.
 *
 * Dzięki temu początek zdjęcia, przyciski i teksty nie
 * "skaczą" pomiędzy slajdami.
 */

.home-hero__card {
	height:
		var(
			--home-hero-height,
			430px
		);

	min-height: 0;
}


.home-hero__content {
	display: grid;

	grid-template-rows:
		20px
		112px
		66px
		48px;

	align-content: center;
	align-items: start;

	row-gap: 14px;
}


.home-hero__eyebrow-slot,
.home-hero__title-slot,
.home-hero__description-slot,
.home-hero__button-slot {
	width: 100%;
	min-width: 0;
	overflow: hidden;
}


.home-hero__eyebrow {
	width: 100%;

	margin: 0;

	white-space: nowrap;

	overflow: hidden;
	text-overflow: ellipsis;
}


.home-hero__title {
	display: -webkit-box;

	max-width: 530px;

	margin: 0;

	overflow: hidden;

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;

	line-clamp: 2;
}


.home-hero__description {
	display: -webkit-box;

	max-width: 510px;

	margin: 0;

	overflow: hidden;

	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;

	line-clamp: 3;
}


.home-hero__button-slot {
	display: flex;
	align-items: flex-start;
}


.home-hero__button {
	margin: 0;
}


.home-hero__media {
	height: 100%;

	min-height: 0;

	background-color: #f7f7f7;
}


.home-hero__image {
	display: block;

	width: 100%;
	height: 100%;

	max-width: none;

	opacity: 1;
	visibility: visible;

	object-fit: cover;

	object-position:
		var(
			--hero-image-position,
			center center
		);
}


.home-hero__image-placeholder {
	position: absolute;
	inset: 0;

	background-color: #f7f7f7;
}


/* ==========================================================
   HOME HERO - TABLET FINAL ALIGNMENT
   ========================================================== */

@media (max-width: 1024px) {

	.home-hero__card {
		height:
			var(
				--home-hero-height-tablet,
				410px
			);

		min-height: 0;
	}


	.home-hero__content {
		grid-template-rows:
			18px
			94px
			66px
			48px;

		row-gap: 14px;
	}


	.home-hero__media {
		height: 100%;
		min-height: 0;
	}

}


/* ==========================================================
   HOME HERO - MOBILE FINAL ALIGNMENT
   ========================================================== */

@media (max-width: 767px) {

	.home-hero__card {
		height:
			var(
				--home-hero-height-mobile,
				620px
			);

		min-height: 0;

		grid-template-columns: 1fr;

		/*
		 * 56% wysokości zawsze należy do części tekstowej,
		 * 44% do zdjęcia. Granica zdjęcia jest identyczna
		 * na każdym slajdzie niezależnie od ilości tekstu.
		 */
		grid-template-rows:
			56%
			44%;
	}


	.home-hero__content {
		height: 100%;

		grid-template-rows:
			18px
			82px
			66px
			48px;

		align-content: center;

		row-gap: 13px;

		padding:
			24px
			24px;
	}


	.home-hero__eyebrow {
		margin: 0;
	}


	.home-hero__title {
		margin: 0;

		font-size: 40px;
		line-height: 0.98;
	}


	.home-hero__description {
		margin: 0;

		font-size: 14px;
		line-height: 1.55;
	}


	.home-hero__button {
		min-height: 48px;
	}


	.home-hero__media {
		height: 100%;

		min-height: 0;
	}


	.home-hero__image {
		position: absolute;
		inset: 0;

		width: 100%;
		height: 100%;
	}

}


@media (max-width: 480px) {

	.home-hero__content {
		grid-template-rows:
			17px
			76px
			64px
			46px;

		row-gap: 12px;

		padding:
			22px
			20px;
	}


	.home-hero__title {
		font-size: 36px;
	}


	.home-hero__description {
		font-size: 13px;
	}


	.home-hero__button {
		min-width: 175px;
		min-height: 46px;

		padding:
			10px
			22px;

		font-size: 13px;
	}

}


/* ==========================================================
   59. CONTACT POPUP - CONSENT CHECKBOX FINAL FIX
   ========================================================== */

/*
 * Na stronie Kontakt checkbox był stylowany wewnątrz
 * .contact-form-card. Popup renderuje shortcode bez tej
 * karty, dlatego dostaje osobny, pewny zestaw reguł.
 */

.contact-popup
.ae-contact-form__consent {
	width: 100%;

	margin:
		6px
		0
		0;

	padding: 0;

	font-family: var(--ae-font-body);
	font-size: 10px;
	font-weight: 400;
	line-height: 1.45;

	color: #929292;
}


.contact-popup
.ae-contact-form__consent
.wpcf7-form-control-wrap,
.contact-popup
.ae-contact-form__consent
.wpcf7-acceptance {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;
}


.contact-popup
.ae-contact-form__consent
.wpcf7-list-item {
	display: block;

	width: 100%;

	margin: 0;
	padding: 0;
}


.contact-popup
.ae-contact-form__consent
.wpcf7-list-item
label {
	display: flex;

	align-items: flex-start;
	justify-content: flex-start;

	gap: 10px;

	width: 100%;

	margin: 0;
	padding: 0;

	cursor: pointer;
}


.contact-popup
.ae-contact-form__consent
input[type="checkbox"] {
	position: static;

	display: block;

	flex:
		0
		0
		15px;

	width: 15px !important;
	height: 15px !important;

	min-width: 15px !important;
	min-height: 15px !important;

	max-width: 15px !important;
	max-height: 15px !important;

	margin:
		3px
		0
		0 !important;

	padding: 0 !important;

	border-radius: 2px;

	accent-color: var(--ae-primary);

	cursor: pointer;
}


.contact-popup
.ae-contact-form__consent
.wpcf7-list-item-label {
	display: block;

	flex:
		1
		1
		auto;

	min-width: 0;

	margin: 0;

	padding:
		2px
		0
		0;

	font-size: 10px;
	font-weight: 400;
	line-height: 1.45;

	color: #929292;
}


@media (max-width: 480px) {

	.contact-popup
	.ae-contact-form__consent {
		margin-top: 8px;
	}


	.contact-popup
	.ae-contact-form__consent
	.wpcf7-list-item
	label {
		gap: 9px;
	}


	.contact-popup
	.ae-contact-form__consent
	.wpcf7-list-item-label {
		padding-top: 3px;

		font-size: 9px;
		line-height: 1.45;
	}

}

/* ==========================================================
   60. CONTACT POPUP - FIELD SPACING FINAL FIX
   ========================================================== */

/*
 * Contact Form 7 potrafi dodać własne <p> i <br> wokół pól.
 * W popupie zerujemy te marginesy, żeby label był blisko inputa.
 */

.contact-popup
.ae-contact-form__field {
	gap: 6px !important;
}


.contact-popup
.ae-contact-form__field > p {
	margin: 0 !important;
	padding: 0 !important;
}


.contact-popup
.ae-contact-form__field br {
	display: none;
}


.contact-popup
.ae-contact-form__field label {
	display: block;

	margin: 0 !important;
	padding: 0 !important;

	line-height: 1.3;
}


.contact-popup
.ae-contact-form__field
.wpcf7-form-control-wrap {
	display: block;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;
}


.contact-popup
.ae-contact-form__field input,
.contact-popup
.ae-contact-form__field textarea {
	margin: 0 !important;
}


/* Mniejszy odstęp pomiędzy kolejnymi całymi polami w popupie. */
.contact-popup
.ae-contact-form {
	gap: 14px;
}


@media (max-width: 767px) {

	.contact-popup
	.ae-contact-form__field {
		gap: 5px !important;
	}


	.contact-popup
	.ae-contact-form {
		gap: 13px;
	}

}

/* ==========================================================
   61. POPUPS - FINAL FORM SPACING
   ========================================================== */

/*
 * Większy, czytelny odstęp:
 * - label -> pole: 9px
 * - kolejne pola: 20px
 *
 * Dodatkowo formularz aplikacyjny dostaje prawidłowy grid,
 * ponieważ wcześniej .ae-contact-form__grid nie miał własnego
 * układu i pola układały się praktycznie bez odstępów.
 */


/* ==========================================================
   CONTACT POPUP - FIELDS
   ========================================================== */

.contact-popup
.ae-contact-form {
	gap: 20px !important;
}


.contact-popup
.ae-contact-form__field {
	display: flex !important;
	flex-direction: column !important;

	gap: 9px !important;

	margin: 0 !important;
	padding: 0 !important;
}


.contact-popup
.ae-contact-form__field label {
	display: block;

	margin: 0 !important;
	padding: 0 !important;

	line-height: 1.3;
}


.contact-popup
.ae-contact-form__field
.wpcf7-form-control-wrap {
	display: block;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;
}


.contact-popup
.ae-contact-form__field input,
.contact-popup
.ae-contact-form__field textarea {
	margin: 0 !important;
}


/*
 * Reset dodatkowych akapitów dodawanych czasem przez CF7.
 */
.contact-popup
.wpcf7-form p {
	margin-top: 0;
}


.contact-popup
.ae-contact-form__field > p {
	margin: 0 !important;
	padding: 0 !important;
}


.contact-popup
.ae-contact-form__field br {
	display: none;
}


/* ==========================================================
   APPLICATION POPUP - GRID
   ========================================================== */

.application-popup
.ae-contact-form {
	display: block;
}


.application-popup
.ae-contact-form__grid {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	column-gap: 16px;
	row-gap: 20px;

	width: 100%;
}


.application-popup
.ae-contact-form__field {
	display: flex !important;
	flex-direction: column !important;

	gap: 9px !important;

	min-width: 0;

	margin: 0 !important;
	padding: 0 !important;
}


.application-popup
.ae-contact-form__field--full {
	grid-column:
		1 / -1;
}


.application-popup
.ae-contact-form__field label {
	margin: 0 !important;
	padding: 0 !important;

	line-height: 1.3;
}


.application-popup
.ae-contact-form__field
.wpcf7-form-control-wrap {
	display: block;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;
}


.application-popup
.ae-contact-form__field input,
.application-popup
.ae-contact-form__field textarea {
	margin: 0 !important;
}


/*
 * CF7 może opakować część kontrolek w <p>.
 * Nie pozwalamy tym paragrafom tworzyć dodatkowych,
 * przypadkowych marginesów.
 */
.application-popup
.ae-contact-form__grid > p,
.application-popup
.ae-contact-form__field > p {
	margin: 0 !important;
	padding: 0 !important;
}


.application-popup
.ae-contact-form__field br {
	display: none;
}


/* ==========================================================
   APPLICATION POPUP - CONSENT + SUBMIT SPACING
   ========================================================== */

.application-popup
.ae-application-consent {
	grid-column:
		1 / -1;

	margin:
		2px
		0
		0 !important;
}


.application-popup
.ae-application-submit {
	grid-column:
		1 / -1;

	margin:
		2px
		0
		0 !important;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 767px) {

	.contact-popup
	.ae-contact-form {
		gap: 18px !important;
	}


	.contact-popup
	.ae-contact-form__field,
	.application-popup
	.ae-contact-form__field {
		gap: 8px !important;
	}


	.application-popup
	.ae-contact-form__grid {
		grid-template-columns: 1fr;

		column-gap: 0;
		row-gap: 18px;
	}


	.application-popup
	.ae-contact-form__field--full,
	.application-popup
	.ae-application-consent,
	.application-popup
	.ae-application-submit {
		grid-column: 1;
	}

}

