/* Header - Kształty Natury (markup nadpisany w header.php) */

.kn-skip-link {
	position: absolute;
	left: -9999px;
}

.kn-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .98);
	backdrop-filter: saturate(140%) blur(6px);
	border-bottom: 1px solid var(--kn-border);
	/* will-change zapewnia własną warstwę kompozycji - header pozostaje widoczny
	   nawet gdy strona ma elementy z transformami lub filtrem. */
	will-change: transform;
}

.kn-header__inner {
	max-width: var(--kn-container);
	margin: 0 auto;
	padding: 14px var(--kn-gutter);
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 2rem;
}

/* ─── BRAND ─── */
.kn-header__brand {
	display: flex;
	align-items: center;
}

.kn-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--kn-ink-900);
	line-height: 1;
}

.kn-logo__mark {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--kn-cream-100);
	color: var(--kn-olive-700);
	flex: 0 0 auto;
	transition: background var(--kn-dur) var(--kn-ease);
}

.kn-logo__mark svg {
	width: 22px;
	height: 22px;
}

.kn-logo__text {
	font-family: var(--kn-font-heading);
	font-weight: var(--kn-fw-light);
	font-size: 1rem;
	letter-spacing: var(--kn-tracking-wide);
	text-transform: uppercase;
	line-height: 1.05;
	color: inherit;
}

.kn-logo:hover .kn-logo__mark {
	background: var(--kn-olive-300);
	color: var(--kn-paper);
}

.kn-logo--image {
	display: inline-flex;
	align-items: center;
}

.kn-logo__img {
	display: block;
	height: 68px;
	width: 68px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
	background: var(--kn-paper);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.kn-logo__img--circle {
	height: 84px;
	width: 84px;
}

@media (max-width: 720px) {
	.kn-logo__img {
		height: 52px;
		width: 52px;
	}
	.kn-logo__img--circle {
		height: 64px;
		width: 64px;
	}
}

/* Logo lines - desktop: jedna linia (oba spany inline ze spacją).
   Mobile (<720px): dwie linie (każdy span jako block). */
.kn-logo__line {
	display: inline;
}

@media (max-width: 720px) {
	.kn-logo__line {
		display: block;
	}
}

/* ─── NAV ─── */
.kn-header__nav {
	display: flex;
	justify-content: center;
}

.kn-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 2.25rem;
}

.kn-menu li {
	position: relative;
}

.kn-menu a {
	font-family: var(--kn-font-body);
	font-size: var(--kn-fs-sm);
	font-weight: var(--kn-fw-medium);
	color: var(--kn-ink-800);
	letter-spacing: 0.02em;
	padding: 10px 0;
	display: inline-block;
	position: relative;
	white-space: nowrap;
}

.kn-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 4px;
	height: 1px;
	background: var(--kn-accent);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--kn-dur) var(--kn-ease);
}

.kn-menu a:hover::after,
.kn-menu li.current-menu-item > a::after,
.kn-menu li.current-menu-parent > a::after {
	transform: scaleX(1);
}

.kn-menu a:hover,
.kn-menu a:focus {
	color: var(--kn-ink-800);
}

/* Submenu (dropdown - np. Biżuteria ▾) */
.kn-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(8px);
	background: var(--kn-paper);
	border: 1px solid var(--kn-border);
	border-radius: var(--kn-radius-md);
	box-shadow: var(--kn-shadow-md);
	list-style: none;
	margin: 0;
	padding: 12px 0;
	min-width: 200px;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--kn-dur) var(--kn-ease), transform var(--kn-dur) var(--kn-ease), visibility var(--kn-dur) var(--kn-ease);
}

.kn-menu li:hover > .sub-menu,
.kn-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.kn-menu .sub-menu a {
	display: block;
	padding: 10px 22px;
	font-weight: var(--kn-fw-regular);
	text-transform: none;
	letter-spacing: 0;
}

.kn-menu .sub-menu a::after {
	display: none;
}

.kn-menu .sub-menu a:hover {
	background: var(--kn-bg-soft);
	color: var(--kn-accent-dark);
}

/* Strzałeczka ▾ przy pozycji z podmenu (np. „Biżuteria") - sygnał że jest zwinięta.
   <span class="kn-menu__chev"> wstrzykiwane filtrem nav_menu_item_title w functions.php. */
.kn-menu__chev {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 12px;
	height: 12px;
	margin-left: 6px;
	color: currentColor;
	flex-shrink: 0;
	transform-origin: center;
	transition: transform var(--kn-dur) var(--kn-ease);
	vertical-align: middle;
}

.kn-menu__chev svg {
	width: 100%;
	height: 100%;
	display: block;
}

.kn-menu .menu-item-has-children:hover > a .kn-menu__chev,
.kn-menu .menu-item-has-children:focus-within > a .kn-menu__chev {
	transform: rotate(180deg);
}

/* ─── TOOLS (search inline + account + cart) ─── */
.kn-header__tools {
	display: flex;
	align-items: center;
	gap: 14px;
	justify-self: end;
}

/* Inline search field (jak w oryginale Notea) */
.kn-search-form {
	display: flex;
	align-items: center;
	gap: 6px;
	background: var(--kn-cream-50);
	border: 1px solid var(--kn-border);
	border-radius: var(--kn-radius-pill);
	padding: 4px 4px 4px 16px;
	width: 240px;
	transition: border-color var(--kn-dur) var(--kn-ease), background var(--kn-dur) var(--kn-ease);
}

.kn-search-form:focus-within {
	background: var(--kn-paper);
	border-color: var(--kn-olive-500);
}

.kn-search-form input[type="search"] {
	flex: 1;
	border: 0;
	background: transparent;
	padding: 8px 0;
	font-size: var(--kn-fs-sm);
	color: var(--kn-ink-900);
	outline: none;
	min-width: 0;
}

.kn-search-form input[type="search"]::placeholder {
	color: var(--kn-ink-500);
}

.kn-search-form button {
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--kn-ink-700);
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: background var(--kn-dur) var(--kn-ease), color var(--kn-dur) var(--kn-ease);
}

.kn-search-form button:hover {
	background: var(--kn-ink-900);
	color: var(--kn-paper);
}

.kn-search-form button svg {
	width: 16px;
	height: 16px;
}

/* Ikonka konta */
.kn-iconbtn {
	position: relative;
	width: 40px;
	height: 40px;
	display: inline-grid;
	place-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--kn-ink-800);
	cursor: pointer;
	transition: background var(--kn-dur) var(--kn-ease), color var(--kn-dur) var(--kn-ease);
	padding: 0;
	text-decoration: none;
}

.kn-iconbtn:hover {
	background: var(--kn-bg-soft);
	color: var(--kn-accent-dark);
}

.kn-iconbtn svg {
	width: 20px;
	height: 20px;
}

/* Koszyk z sumą i liczbą */
.kn-cartbtn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 10px 6px 14px;
	background: transparent;
	border-radius: var(--kn-radius-pill);
	color: var(--kn-ink-900);
	text-decoration: none;
}

.kn-cartbtn__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.1;
	gap: 2px;
}

.kn-cartbtn__total {
	font-family: var(--kn-font-body);
	font-size: var(--kn-fs-sm);
	font-weight: var(--kn-fw-semibold);
	color: var(--kn-ink-900);
}

.kn-cartbtn__count {
	font-family: var(--kn-font-body);
	font-size: 10px;
	letter-spacing: var(--kn-tracking-wide);
	text-transform: uppercase;
	color: var(--kn-ink-500);
}

.kn-cartbtn__icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--kn-accent);
	color: var(--kn-paper);
	display: grid;
	place-items: center;
	transition: background var(--kn-dur) var(--kn-ease);
}

.kn-cartbtn:hover .kn-cartbtn__icon {
	background: var(--kn-accent-dark);
}

.kn-cartbtn__icon svg {
	width: 18px;
	height: 18px;
}

/* Pusty koszyk - ukrywamy całkowicie z headera */
.kn-cartbtn--empty {
	display: none !important;
}

/* ─── RESPONSIVE ─── */
@media (max-width: 1180px) {
	.kn-search-form {
		width: 180px;
	}
	.kn-cartbtn__meta {
		display: none;
	}
}

@media (max-width: 900px) {
	.kn-header__inner {
		grid-template-columns: auto 1fr auto;
		gap: 1rem;
	}
	.kn-menu {
		display: none;
	}
	.kn-search-form {
		display: none;
	}
}

/* Ukrycie domyślnego Storefront site-header - nie używamy go */
body .site-header,
body #masthead.site-header {
	display: none;
}

/* Treść główna - wyłącz domyślny Storefront .col-full constraint dla custom home */
.kn-home {
	width: 100%;
}

/* ─── Przycisk konta w headerze ─── */
.kn-accountbtn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 14px 6px 8px;
	border: 1.5px solid var(--kn-border);
	border-radius: var(--kn-radius-pill);
	color: var(--kn-ink-800);
	text-decoration: none;
	font-family: var(--kn-font-body);
	font-size: var(--kn-fs-xs);
	font-weight: var(--kn-fw-medium);
	letter-spacing: var(--kn-tracking-wide);
	text-transform: uppercase;
	white-space: nowrap;
	transition: background var(--kn-dur) var(--kn-ease), border-color var(--kn-dur) var(--kn-ease), color var(--kn-dur) var(--kn-ease);
	background: transparent;
}

.kn-accountbtn:hover {
	background: var(--kn-cream-100);
	border-color: var(--kn-accent);
	color: var(--kn-accent-dark);
}

.kn-accountbtn__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--kn-cream-200);
	flex-shrink: 0;
	transition: background var(--kn-dur) var(--kn-ease);
}

.kn-accountbtn__icon svg {
	width: 15px;
	height: 15px;
	stroke: var(--kn-ink-700);
}

.kn-accountbtn:hover .kn-accountbtn__icon {
	background: var(--kn-accent);
}

.kn-accountbtn:hover .kn-accountbtn__icon svg {
	stroke: var(--kn-paper);
}

.kn-accountbtn--in {
	border-color: var(--kn-accent);
	background: var(--kn-cream-50);
}

.kn-accountbtn--in .kn-accountbtn__icon {
	background: var(--kn-accent);
}

.kn-accountbtn--in .kn-accountbtn__icon svg {
	stroke: var(--kn-paper);
}

@media (max-width: 900px) {
	.kn-accountbtn,
	.kn-cartbtn {
		display: none !important;
	}
}
