.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	border-bottom: 1px solid var(--color-border);
	background-color: rgba(8, 10, 12, 0.92);
	-webkit-backdrop-filter: blur(1rem);
	backdrop-filter: blur(1rem);
}

.site-header__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--space-6);
	align-items: center;
	min-height: 5.5rem;
}

/* Logo lub zastępcza nazwa witryny. */
.site-branding {
	display: flex;
	align-items: center;
}

.site-branding__name {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
	text-transform: uppercase;
}

.site-branding__name:hover {
	color: var(--color-accent);
}

.custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.custom-logo {
	width: auto;
	max-width: 13rem;
	max-height: 3.5rem;
}

/* Nawigacja na komputerze. */
.primary-navigation {
	justify-self: center;
}

.primary-menu {
	display: flex;
	gap: clamp(1.25rem, 2.5vw, 2.5rem);
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-menu a {
	position: relative;
	display: inline-flex;
	padding-block: 0.75rem;
	color: var(--color-text-muted);
	font-family: var(--font-heading);
	font-size: var(--font-size-small);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		color var(--transition-fast),
		transform var(--transition-fast);
}

.primary-menu a::after {
	position: absolute;
	right: 0;
	bottom: 0.35rem;
	left: 0;
	height: 0.125rem;
	background-color: var(--color-accent);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--transition-normal);
}

.primary-menu a:hover,
.primary-menu a:focus-visible,
.primary-menu .current-menu-item > a {
	color: var(--color-white);
}

.primary-menu a:hover::after,
.primary-menu a:focus-visible::after,
.primary-menu .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.site-header__contact {
	display: flex;
	gap: var(--space-5);
	align-items: center;
	justify-self: end;
}

.site-header__phones,
.site-header__hours {
	display: grid;
	gap: var(--space-1);
	white-space: nowrap;
}

.site-header__phone-list {
	display: flex;
	gap: var(--space-3);
	align-items: center;
}

.site-header__phone {
	display: inline-flex;
	text-decoration: none;
}

.site-header__phone + .site-header__phone {
	padding-left: var(--space-3);
	border-left: 1px solid var(--color-border-strong);
}

.site-header__phone {
	text-decoration: none;
}

.site-header__contact-label {
	color: var(--color-accent);
	font-family: var(--font-heading);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
}

.site-header__contact-value {
	color: var(--color-text);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	transition: color var(--transition-fast);
}

.site-header__phone:hover .site-header__contact-value {
	color: var(--color-accent);
}

/* Przycisk menu mobilnego. */
.menu-toggle {
	display: none;
	width: 2.75rem;
	height: 2.75rem;
	flex-direction: column;
	gap: 0.3125rem;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
}

.menu-toggle__line {
	display: block;
	width: 1.25rem;
	height: 0.125rem;
	background-color: var(--color-white);
	transition:
		transform var(--transition-normal),
		opacity var(--transition-fast);
}

/* Korekta przy zalogowanym administratorze WordPressa. */
.admin-bar .site-header {
	top: 2rem;
}

@media (max-width: 75rem) {
	.site-header__hours {
		display: none;
	}
}

@media (max-width: 64rem) {
	.site-header__inner {
		grid-template-columns: 1fr auto;
		min-height: 4.75rem;
	}

    .site-header__contact {
        display: none;
    }

	.menu-toggle {
		display: flex;
	}

	.primary-navigation {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		padding: var(--space-5) var(--container-padding);
		border-top: 1px solid var(--color-border);
		border-bottom: 1px solid var(--color-border);
		background-color: var(--color-background);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-0.75rem);
		transition:
			opacity var(--transition-normal),
			transform var(--transition-normal),
			visibility var(--transition-normal);
	}

	.primary-menu {
		flex-direction: column;
		gap: var(--space-2);
		align-items: stretch;
	}

	.primary-menu a {
		display: flex;
		padding: var(--space-4);
	}

	.site-header.is-menu-open .primary-navigation {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.site-header.is-menu-open .menu-toggle__line:nth-of-type(1) {
		transform: translateY(0.4375rem) rotate(45deg);
	}

	.site-header.is-menu-open .menu-toggle__line:nth-of-type(2) {
		opacity: 0;
	}

	.site-header.is-menu-open .menu-toggle__line:nth-of-type(3) {
		transform: translateY(-0.4375rem) rotate(-45deg);
	}
}

@media (max-width: 48.875rem) {
	.admin-bar .site-header {
		top: 2.875rem;
	}
}