/* PSK header: editable native blocks, with presentation scoped to this pattern. */
.psk-shop-header {
	--wp--custom--aws--color--menu-hover: var(--wp--preset--color--action-danger);
	--wp--custom--aws--color--menu-active: var(--wp--preset--color--action-danger);

	background: var(--wp--preset--color--surface);
	border-bottom: 1px solid var(--wp--preset--color--border);
	color: var(--wp--custom--design--color--body);
	z-index: 100;
}

.psk-shop-header :where(p, figure, .wp-block-buttons, .wp-block-details, .wp-block-columns) {
	margin-block: 0;
}

.psk-topbar {
	background: var(--wp--preset--color--surface-inverse);
	color: var(--wp--preset--color--text-inverse);
	padding: 14px 28px;
}

.psk-topbar__inner {
	gap: 20px;
}

.psk-delivery-note {
	font-size: 13px;
	line-height: 1.7;
	padding-left: 42px;
	position: relative;
}

.psk-delivery-note > span {
	color: var(--wp--preset--color--text-inverse-muted);
	font-size: 12px;
}

.psk-header-body {
	padding-inline: 28px;
}

.psk-header-main {
	align-items: start;
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 1fr) 144px minmax(0, 1fr);
	padding-block: 20px 16px;
}

.psk-shop-header .psk-header-logo {
	margin: 0 auto;
	width: 138px;
}

.psk-shop-header .psk-header-logo img {
	display: block;
	height: 94px;
	object-fit: contain;
	width: 138px;
}

.psk-header-logo a { display: block; }

.psk-shop-header .wp-block-buttons {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: 18px;
}

.psk-shop-header .wp-block-button__link {
	border-radius: var(--wp--custom--radius--small, 6px);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	padding: 13px 16px;
	white-space: nowrap;
}

.psk-shop-header .psk-points-link .wp-block-button__link {
	font-size: 13px;
	padding-inline: 34px 20px;
	position: relative;
}

.psk-opening-hours {
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	margin-top: 15px !important;
}

.psk-shop-header .psk-phone-buttons { flex-wrap: wrap; gap: 6px 10px; }
.psk-phone-buttons > .wp-block-button:first-child { flex-basis: 100%; }
.psk-phone-buttons .wp-block-button__link { padding: 8px 10px; }

.psk-shop-header .psk-phone-layout {
	display: grid;
	grid-template-columns: 1.35fr 1fr 1fr;
	gap: 0 14px;
	align-items: end;
	padding-top: 5px;
}

.psk-phone-heading { grid-column: 2 / 4; font-size: 13px; font-weight: 700; line-height: 1.4; }
.psk-phone-sales-heading { font-size: 13px; font-weight: 700; line-height: 1.4; }
.psk-phone-layout > .wp-block-button { min-width: 0; grid-row: 2; }
.psk-phone-layout > .wp-block-button:nth-of-type(1) { grid-column: 1; grid-row: 1 / 3; }
.psk-phone-layout > .wp-block-button:nth-of-type(2) { grid-column: 2; }
.psk-phone-layout > .wp-block-button:nth-of-type(3) { grid-column: 3; }

.psk-shop-header .psk-phone-layout .wp-block-button__link {
	display: grid;
	gap: 3px 10px;
	padding: 0;
	min-height: 48px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--text, #171717);
	text-align: left;
	box-shadow: none;
}

.psk-phone-layout > .wp-block-button:nth-of-type(1) .wp-block-button__link { padding-right: 12px; border-right: 1px solid #e6e6e6; row-gap: 2px; }
.psk-phone-layout > .wp-block-button:nth-of-type(3) .wp-block-button__link { padding-left: 14px; border-left: 1px solid #e6e6e6; }
.psk-phone-label { font-size: 12px; font-weight: 400; line-height: 1.5; white-space: nowrap; }
.psk-phone-number { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 700; line-height: 1.5; white-space: nowrap; }

.psk-phone-number::before {
	content: "";
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #f3f3f3 url("../images/icons/contact-phone.svg") center / 15px no-repeat;
}

.psk-header-sales-photo { grid-column: 1; grid-row: 1 / 4; width: 52px; height: 52px; object-fit: cover; border-radius: 50%; align-self: center; }
.psk-phone-layout a:has(.psk-header-sales-photo) { grid-template-columns: 52px 1fr; }
.psk-phone-layout a:has(.psk-header-sales-photo) :is(.psk-phone-sales-heading, .psk-phone-label, .psk-phone-number) { grid-column: 2; }
.psk-shop-header .psk-phone-layout .wp-block-button__link:hover {
	background: transparent;
	border-color: #e6e6e6;
	color: #a31a22;
	text-decoration: none;
}
.psk-shop-header .psk-phone-layout a:focus-visible { outline: 2px solid #a31a22; outline-offset: 4px; border-radius: 4px; }

@media (min-width: 1200px) and (max-width: 1439px) {
	.psk-shop-header .psk-phone-layout { gap: 0 10px; }
	.psk-phone-label { font-size: 11px; }
	.psk-phone-number { font-size: 13px; gap: 4px; }
	.psk-header-sales-photo { width: 38px; height: 38px; }
	.psk-phone-layout a:has(.psk-header-sales-photo) { grid-template-columns: 38px 1fr; gap: 3px 6px; }
	.psk-phone-layout > .wp-block-button:nth-of-type(3) .wp-block-button__link { padding-left: 10px; }
	.psk-phone-number::before { flex-basis: 22px; width: 22px; height: 22px; background-size: 13px; }
}

.psk-header-utilities {
	justify-self: end;
	width: 100%;
}

.psk-email-buttons {
	justify-content: flex-end;
}

.psk-header-tools {
	font-size: 14px;
	gap: 24px;
	margin-top: 18px;
	margin-left: auto;
	max-width: 450px;
}

.psk-header-tools :where(a, summary) {
	align-items: center;
	display: flex;
	gap: 10px;
	min-height: 44px;
	text-decoration: none;
}

.psk-header-tools :where(a, summary)::before,
.psk-delivery-note::before,
.psk-points-link a::before {
	background: currentcolor;
	content: "";
	display: inline-block;
	flex: 0 0 22px;
	height: 22px;
	mask: var(--psk-icon) center / contain no-repeat;
	width: 22px;
}

.psk-header-search > summary {
	--psk-icon: url("../images/icons/search.svg");
	list-style: none;
}

.psk-account-link a { --psk-icon: url("../images/icons/account.svg"); }
.psk-mini-cart .wc-block-mini-cart__button {
	color: var(--wp--preset--color--text);
	font-size: 14px;
	font-weight: 400;
	gap: 5px;
	min-height: 44px;
	min-width: 44px;
	padding: 8px 0;
}

.psk-mini-cart .wc-block-mini-cart__button::before {
	content: none;
}

.psk-mini-cart .wc-block-mini-cart__icon {
	height: 24px;
	width: 24px;
}

.psk-mini-cart .wc-block-mini-cart__badge {

	/* WooCommerce also sets these colors inline after hydration. */
	background: var(--wp--preset--color--action-danger) !important;
	color: #fff !important;
	font-size: 10px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.psk-mini-cart-fallback .wc-block-mini-cart__button {
	position: relative;
}

.psk-mini-cart__count {
	background: var(--wp--preset--color--action-danger);
	border-radius: 50%;
	box-sizing: border-box;
	color: var(--wp--preset--color--surface);
	display: inline-grid;
	font-size: 10px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	height: 20px;
	line-height: 1;
	min-width: 20px;
	padding: 0;
	place-items: center;
	position: absolute;
	right: 2px;
	text-align: center;
	top: 2px;
	width: 20px;
}

@media (min-width: 1200px) {
	.psk-mini-cart .wc-block-mini-cart__icon,
	.psk-mini-cart-fallback img {
		display: none;
	}

	.psk-mini-cart .wc-block-mini-cart__badge,
	.psk-mini-cart__count {
		position: static;
		display: inline-grid;
		place-items: center;
		box-sizing: border-box;
		min-width: 20px;
		height: 20px;
		width: 20px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 50%;
		line-height: 1;
		transform: none;
	}
}

@media (scripting: none) {
	.psk-mini-cart:not(.psk-mini-cart-fallback) {
		display: none;
	}
}

.wc-block-mini-cart__drawer {
	--drawer-width: 600px;
	--neg-drawer-width: -600px;

	font-family: var(--wp--preset--font-family--sans);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
	font-size: 24px;
	padding-right: 44px;
}

.wc-block-mini-cart__drawer[aria-hidden="true"] {
	visibility: hidden;
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__close {
	inset-inline-end: 8px;
	margin: 0;
	top: 8px;
}

.wc-block-mini-cart__drawer .wc-block-components-product-name {
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}

.wc-block-mini-cart__drawer table.wc-block-cart-items .wc-block-cart-items__row {
	grid-template-columns: 80px minmax(0, 1fr);
}

.wc-block-mini-cart__drawer table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
	grid-area: 1 / 1 / 3 / 2;
}

.wc-block-mini-cart__drawer table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product {
	grid-area: 1 / 2 / 2 / 3;
	min-width: 0;
}

.wc-block-mini-cart__drawer table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
	grid-area: 2 / 2 / 3 / 3;
	justify-content: flex-start;
	padding-top: 0.5rem;
}

.wc-block-mini-cart__drawer .wc-block-cart-items__row:has(.psk-linked-container) .wc-block-cart-item__total {
	display: none;
}

.psk-delivery-note::before {
	--psk-icon: url("../images/icons/truck.svg");
	height: 27px;
	left: 0;
	position: absolute;
	top: 7px;
	width: 27px;
}

.psk-points-link a::before {
	--psk-icon: url("../images/icons/pin.svg");
	height: 16px;
	left: 12px;
	position: absolute;
	top: calc(50% - 8px);
	width: 16px;
}

.psk-search-panel {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 12px 24px rgb(0 0 0 / 8%);
	padding: 22px;
	position: absolute;
	right: 28px;
	width: min(480px, calc(100vw - 100px));
	z-index: 5;
}

.psk-search-panel .wp-block-search__input { min-width: 0; }

.psk-mega-nav {
	position: relative;
}

@media (min-width: 1200px) {
	.psk-menu-shell { position: relative; }
	.psk-menu-item > summary:hover,
	.psk-menu-direct > a:hover { color: var(--wp--preset--color--action-danger); }
}

.psk-menu-shell > summary {
	display: none;
}

.psk-menu-items {
	display: flex;
	gap: 0;
	justify-content: space-between;
	padding-block: 12px 20px;
}

.psk-menu-item,
.psk-menu-direct {
	flex: 1 1 auto;
	min-width: 0;
}

.psk-menu-item > summary,
.psk-menu-direct > a {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	font-size: 14px;
	font-weight: 700;
	gap: 8px;
	justify-content: space-between;
	line-height: 1.666667;
	letter-spacing: normal;
	list-style: none;
	min-height: 44px;
	padding: 5px 10px;
	text-decoration: none;
	text-transform: uppercase;
}

.psk-menu-item + *,
.psk-menu-direct + * {
	border-left: 1px solid var(--wp--preset--color--border);
}

.psk-shop-header summary::-webkit-details-marker { display: none; }

.psk-menu-item > summary::after {
	border-bottom: 1px solid currentcolor;
	border-right: 1px solid currentcolor;
	content: "";
	flex: 0 0 5px;
	height: 5px;
	margin-top: -7px;
	transform: rotate(45deg);
}

.psk-menu-item[open] > summary,
.psk-menu-item.is-current-section > summary,
.psk-menu-direct.is-current-section > a,
.psk-shop-header :where(a, summary):hover {
	color: var(--wp--preset--color--action-danger);
}

/* The desktop reference uses one label per item and an open, unboxed row. */
@media (min-width: 1200px) {
	.psk-menu-items > .psk-menu-item,
	.psk-menu-items > .psk-menu-direct {
		flex: 0 1 auto;
		border-left: 0;
	}

	.psk-menu-item > summary,
	.psk-menu-direct > a {
		font-size: 16px;
		font-weight: 600;
		gap: 12px;
		padding-inline: 8px;
		text-transform: none;
		white-space: nowrap;
	}

	.psk-menu-item > summary::after {
		margin-top: -3px;
	}
}

.psk-mega-panel {
	background: var(--wp--preset--color--surface);
	border-top: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 18px 24px rgb(0 0 0 / 8%);
	box-sizing: border-box;
	left: 0;
	max-height: var(--psk-panel-max-height, 65vh);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 24px 28px;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 3;
}

.psk-menu-item:not([open]) > .psk-mega-panel,
.psk-header-search:not([open]) > .psk-search-panel { display: none; }

@media (min-width: 1200px) {

	/* Explicit shared variants; unselected blocks keep the existing compact layout. */
	.psk-menu-item:is([data-aws-menu-v1="dropdown"], :not([data-aws-menu-v1]):has(.psk-menu-card):not(:has(.psk-mega-columns, .psk-menu-card:nth-child(4)))) {
		position: relative;
	}

	.psk-menu-item:is([data-aws-menu-v1="dropdown"], :not([data-aws-menu-v1]):has(.psk-menu-card):not(:has(.psk-mega-columns, .psk-menu-card:nth-child(4))))[open]::before {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: var(--psk-compact-offset, 20px);
		content: "";
	}

	.psk-menu-item:is([data-aws-menu-v1="dropdown"], :not([data-aws-menu-v1]):has(.psk-menu-card):not(:has(.psk-mega-columns, .psk-menu-card:nth-child(4)))) > .psk-mega-panel {
		left: auto;
		right: 0;
		top: calc(100% + var(--psk-compact-offset, 20px));
		width: 400px;
		max-width: calc(100vw - 40px);
		padding: 20px;
	}

	.psk-menu-item:is([data-aws-menu-v1="dropdown"], :not([data-aws-menu-v1]):has(.psk-menu-card):not(:has(.psk-mega-columns, .psk-menu-card:nth-child(4)))) .psk-mega-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}
}

.psk-service-mobile-links { display: none; }

.psk-service-menu {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	font-size: 13px;
	line-height: 1.5;
}

.psk-service-menu > section { min-width: 0; }
.psk-service-menu > section + section { border-left: 1px solid #e9e9e9; padding-left: 30px; }
.psk-service-menu h2 { font-size: 18px; font-weight: 600; line-height: 1.35; margin: 0 0 14px; letter-spacing: normal; }
.psk-service-menu h3 { font-size: 16px; font-weight: 600; line-height: 1.4; margin: 0 0 7px; }
.psk-service-menu p { margin: 0 0 6px; }
.psk-service-menu .psk-service-muted { color: #646464; margin-top: -7px; }
.psk-service-menu .psk-service-action,
.psk-service-route--label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 38px;
	padding: 0 14px;
	border: 1px solid #d2d2d2;
	border-radius: 4px;
	background: transparent;
	font-weight: 500;
	margin-top: 8px;
}
.psk-service-action > span { color: #a31a22; }
.psk-service-about { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; margin-left: 16px; font-size: 12px; }
.psk-service-hq,
.psk-service-contact { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e9e9e9; }
.psk-service-hq > p { color: #555; }
.psk-service-contact__phones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.psk-service-contact__phones > div > span:first-child { display: block; font-size: 12px; color: #555; margin-bottom: 5px; }
.psk-service-number { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.psk-service-number > a { font-size: 17px; font-weight: 700; }
.psk-service-number::before { content: ""; flex: 0 0 26px; height: 26px; border-radius: 50%; background: #f5f5f5 url("../images/icons/contact-phone.svg") center / 14px no-repeat; }
.psk-service-menu .psk-service-locations { list-style: none; padding: 0; margin: 0; }
.psk-service-location { display: grid; grid-template-columns: 24px minmax(0, 1fr) 36px; gap: 10px; padding: 12px 0; }
.psk-service-location:first-child { padding-top: 0; }
.psk-service-location + .psk-service-location { border-top: 1px solid #ededed; }
.psk-service-location strong { font-size: 14px; font-weight: 600; }
.psk-service-location :is(.psk-service-place, .psk-service-address, .psk-service-phones, .psk-service-hours) { display: block; }
.psk-service-place,
.psk-service-address,
.psk-service-hours { color: #666; font-size: 12px; line-height: 1.5; }
.psk-service-place { font-size: 11px; }
.psk-service-phones a { font-weight: 600; white-space: nowrap; }
.psk-service-location .psk-service-phones { display: flex; flex-wrap: wrap; gap: 0 12px; }
.psk-service-pin { width: 22px; height: 26px; background: #777; mask: url("../images/icons/pin.svg") center / 22px no-repeat; }
.psk-service-route { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; align-self: start; color: #666; }
.psk-service-route > span { display: block; width: 18px; height: 18px; background: currentcolor; mask: url("../images/icons/directions.svg") center / contain no-repeat; }
.psk-service-scroll { max-height: 360px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c9c9c9 transparent; padding-right: 10px; }
.psk-service-menu .psk-service-all { display: inline-flex; gap: 12px; align-items: center; min-height: 40px; margin-top: 7px; color: #a31a22; }
.psk-service-panel :is(a, button):hover { color: #a31a22; background-color: transparent; }
.psk-service-panel .psk-service-action { background: #fbeeee; border-color: transparent; color: #b3262e; }
.psk-service-panel .psk-service-action:hover { background: #fbeeee; color: #8f1e25; }
.psk-service-panel .psk-service-route { background: #edf5ee; border-color: transparent; border-radius: 4px; color: #2f6f35; }
.psk-service-panel .psk-service-route:hover { background: #edf5ee; color: #24582b; }
.psk-service-panel :is(a, [tabindex]):focus-visible { outline: 2px solid #a31a22; outline-offset: 3px; border-radius: 3px; }
.psk-service-brands { border-top: 1px solid #e9e9e9; padding-top: 14px; margin-top: 20px; }
.psk-service-brands > p { font-size: 11px; color: #666; display: flex; justify-content: space-between; gap: 16px; margin: 0 0 7px; }
.psk-service-brands > p > span { font-size: 10px; color: #666; }
.psk-service-brands ul { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; margin: 0; padding: 3px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #d5d5d5 transparent; }
.psk-service-brands li { flex: 0 0 88px; }
.psk-service-brands li a { display: flex; align-items: center; justify-content: center; min-height: 38px; }
.psk-service-brands img { display: block; width: 88px; height: 28px; object-fit: contain; }

@media (min-width: 1200px) and (max-width: 1399px) {
	.psk-service-menu { gap: 20px; }
	.psk-service-menu > section + section { padding-left: 20px; }
	.psk-service-menu h2 { font-size: 16px; }
	.psk-service-number { gap: 4px; }
	.psk-service-number > a { font-size: 14px; }
	.psk-service-contact__phones { gap: 6px; }
	.psk-service-contact__phones > div > span:first-child { font-size: 11px; }
}

@media (max-width: 1199px) {
	.psk-service-panel > :is(.psk-service-menu, .psk-service-brands) { display: none; }
	.psk-service-panel .psk-service-mobile-links { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0 0 0 16px; }
	.psk-service-mobile-links li { margin: 0; }
	.psk-service-mobile-links li:not(:last-child) { border-bottom: 1px solid var(--wp--preset--color--border); }
	.psk-service-mobile-links a { display: flex; align-items: center; box-sizing: border-box; gap: 10px; min-height: 44px; padding: 6px 0; font-size: 14px; font-weight: 700; line-height: 1.45; color: #333; background: transparent; text-decoration: none; }
	.psk-menu-items .psk-service-mobile-links .psk-menu-visual { margin: 0; width: 28px; height: 28px; flex-basis: 28px; background: #f7f8f8; }
	.psk-menu-items .psk-service-mobile-links .psk-menu-visual::before { width: 18px; height: 18px; background: #666; }
	.psk-service-menu { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.psk-service-menu > section + section { border-left: 0; padding-left: 0; border-top: 1px solid #e9e9e9; padding-top: 20px; }
	.psk-service-scroll { max-height: 360px; }
	.psk-service-brands > p { display: block; }
	.psk-service-brands > p > span { display: block; margin-top: 4px; }
	.psk-service-route { min-height: 44px; min-width: 44px; }
	.psk-service-location { grid-template-columns: 20px minmax(0, 1fr) 44px; gap: 8px; }
}

.psk-mega-columns {
	gap: 28px;
}

.psk-mega-heading {
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: 16px;
	line-height: 1.21;
	letter-spacing: normal;
	padding-bottom: 14px;
	text-transform: uppercase;
}

.psk-mega-panel a {
	text-decoration: none;
}

.psk-mega-cards {
	display: grid;
	gap: 16px;
	margin-top: 20px;
}

.psk-mega-cards--grid {
	column-gap: 30px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.psk-menu-card {
	align-items: center;
	gap: 14px;
	min-height: 72px;
}

.psk-menu-thumbnail {
	flex: 0 0 64px;
}

.psk-menu-card--icon::before {
	--psk-menu-icon: url("../images/icons/category.svg");
	content: "";
	flex: 0 0 64px;
	height: 44px;
	background: currentcolor;
	mask: var(--psk-menu-icon) center / 38px 38px no-repeat;
}

.psk-menu-card--icon-repair::before { --psk-menu-icon: url("../images/icons/repair.svg"); }
.psk-menu-card--icon-pin::before { --psk-menu-icon: url("../images/icons/pin.svg"); }
.psk-menu-card--icon-building::before { --psk-menu-icon: url("../images/icons/building.svg"); }
.psk-menu-card--icon-cabinet::before { --psk-menu-icon: url("../images/icons/cabinet.svg"); }
.psk-menu-card--icon-coffee-set::before { --psk-menu-icon: url("../images/icons/coffee-set.svg"); }
.psk-menu-card--icon-tag::before { --psk-menu-icon: url("../images/icons/tag.svg"); }
.psk-menu-card--icon-discount::before { --psk-menu-icon: url("../images/icons/discount.svg"); }

.psk-menu-item--9 .psk-mega-cards {
	margin-top: 20px;
	gap: 12px;
}

.psk-menu-item--9 .psk-menu-card.is-layout-flex {
	gap: 18px;
	min-height: 64px;
}

.psk-menu-item--9 .psk-menu-card--icon::before {
	flex-basis: 44px;
	mask-size: 32px 32px;
	color: var(--wp--preset--color--brand-green, #286348);
}

.psk-menu-brands__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 20px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}

.psk-menu-brands__list li,
.psk-menu-brands__list a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
}

.psk-menu-brands__list img {
	display: block;
	width: 140px;
	max-width: 100%;
	height: 40px;
	object-fit: contain;
}

.psk-brands__item img,
.psk-menu-brands__list img {
	transition: opacity 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.psk-brands__item:hover img,
	.psk-menu-brands__list li:hover img {
		opacity: 0.6;
	}
}

.psk-brands__item:focus-within img,
.psk-menu-brands__list li:focus-within img {
	opacity: 0.6;
}

@media (prefers-reduced-motion: reduce) {
	.psk-brands__item img,
	.psk-menu-brands__list img {
		transition: none;
	}
}

.psk-menu-thumbnail img {
	aspect-ratio: 1;
	display: block;
	height: 64px;
	object-fit: contain;
	width: 64px;
}

.psk-menu-card__text {
	font-size: 14px;
	line-height: 1.5;
}

.psk-menu-card__text a {
	align-content: center;
	display: inline-block;
	font-weight: 600;
	min-height: 26px;
}

.psk-menu-description {
	color: var(--wp--preset--color--text-muted);
	font-size: 13px;
}

.psk-mega-all {
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: 13px;
	margin-top: 22px !important;
	padding-top: 14px;
}

.psk-mega-all a {
	align-content: center;
	display: inline-block;
	min-height: 32px;
}

.psk-mega-contact { margin-top: 20px !important; }
.psk-mobile-contact { display: none; }

.psk-menu-visual { display: none; }

@media (max-width: 1199px) {
	.psk-menu-items .psk-menu-visual {
		align-items: center;
		background: #f7f8f8;
		border-radius: 8px;
		display: inline-flex;
		flex: 0 0 40px;
		height: 40px;
		justify-content: center;
		margin-right: 4px;
		width: 40px;
	}

	.psk-menu-visual img { width: 36px; height: 36px; object-fit: contain; border-radius: 5px; }
	.psk-menu-item > summary > span:not(.psk-menu-visual),
	.psk-menu-direct > a > span:not(.psk-menu-visual) { flex: 1; }
	.psk-menu-visual:not(.has-photo)::before {
		background: #555;
		content: "";
		height: 22px;
		width: 22px;
		mask: var(--psk-menu-visual-icon, url("../images/icons/category.svg")) center / contain no-repeat;
	}
	.psk-menu-visual--repair { --psk-menu-visual-icon: url("../images/icons/repair.svg"); }
	.psk-menu-visual--account { --psk-menu-visual-icon: url("../images/icons/account.svg"); }
	.psk-menu-visual--building { --psk-menu-visual-icon: url("../images/icons/building.svg"); }
	.psk-menu-visual--pin { --psk-menu-visual-icon: url("../images/icons/pin.svg"); }
	.psk-menu-visual--discount { --psk-menu-visual-icon: url("../images/icons/discount.svg"); }
	.psk-menu-visual--cabinet { --psk-menu-visual-icon: url("../images/icons/cabinet.svg"); }

	.psk-menu-items .psk-mobile-contact .wp-block-button__link {
		align-items: center;
		background: transparent;
		border: 0;
		box-shadow: none;
		color: #444;
		display: grid;
		grid-template-columns: 18px minmax(0, 1fr);
		font-size: 13px;
		font-weight: 500;
		gap: 2px 10px;
		justify-content: flex-start;
		line-height: 1.4;
		min-height: 44px;
		padding: 6px 0;
		text-align: left;
		text-decoration: none;
	}
	.psk-mobile-contact .wp-block-button { width: 100%; min-width: 0; }
	.psk-mobile-phone-label { grid-column: 2; white-space: normal; overflow-wrap: anywhere; }
	.psk-mobile-phone-number { grid-column: 2; white-space: nowrap; font-weight: 600; }
	.psk-mobile-email { grid-column: 2; white-space: normal; overflow-wrap: anywhere; font-weight: 600; }
	.psk-menu-items .psk-mobile-extra-contacts { display: flex; margin-block-start: 2px; }
	.psk-menu-items .psk-mobile-contact { border-left: 0; }
	.psk-menu-items .psk-mobile-contact .wp-block-button__link::before {
		background: currentcolor;
		content: "";
		flex: 0 0 18px;
		grid-column: 1;
		grid-row: 1 / 3;
		height: 18px;
		mask: url("../images/icons/phone.svg") center / contain no-repeat;
	}
	.psk-shop-header .psk-menu-items .psk-mobile-contact .wp-block-button__link:hover {
		background: transparent;
		color: #a31a22;
		text-decoration: none;
	}
	.psk-menu-items .psk-mobile-contact .wp-block-button__link[href^="mailto:"]::before {
		mask-image: url("../images/icons/envelope.svg");
	}
	.psk-menu-items .psk-mobile-contact .wp-block-buttons { gap: 2px; }
	.psk-menu-socials { margin-top: 18px; }
	.psk-menu-socials > span { color: #666; font-size: 12px; }
	.psk-menu-socials .wp-block-social-links { display: flex; gap: 6px; margin: 6px 0 0; }
	.psk-menu-socials .wp-social-link { color: #555; }
	.psk-menu-socials .wp-social-link a { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; box-sizing: border-box; }
	.psk-menu-socials svg { width: 20px; height: 20px; }
}

.psk-mega-open::after {
	background: rgb(0 0 0 / 36%);
	content: "";
	inset: var(--psk-header-bottom, 260px) 0 0;
	position: fixed;
	z-index: 90;
}

@media (max-width: 1199px) {
	.psk-topbar,
	.psk-header-contacts,
	.psk-email-buttons { display: none !important; }

	.psk-header-body { padding-inline: 20px; }

	.psk-header-main {
		align-items: center;
		gap: 12px;
		grid-template-columns: 1fr auto;
		min-height: 96px;
		padding-block: 10px;
	}

	.psk-shop-header .psk-header-logo { margin: 0; width: 105px; }
	.psk-shop-header .psk-header-logo img { height: 72px; width: 105px; }
	.psk-header-utilities { grid-column: 2; grid-row: 1; width: auto; }
	.psk-header-tools { align-items: center; gap: 8px; margin: 0 52px 0 0; }
	.psk-mini-cart__label { display: none; }
	.psk-header-tools :where(a, summary) { font-size: 0; gap: 0; justify-content: center; width: 44px; }

	/* One icon scale and hit area; the native Woo button and cart state stay intact. */
	.psk-header-tools > :where(details, p, .psk-mini-cart) { flex: 0 0 44px; }
	.psk-header-search > summary,
	.psk-account-link a,
	.psk-observed-link a,
	.psk-mini-cart .wc-block-mini-cart__button {
		align-items: center;
		box-sizing: border-box;
		display: flex;
		height: 44px;
		justify-content: center;
		padding: 0;
		position: relative;
		width: 44px;
	}

	.psk-mini-cart .wc-block-mini-cart__button::before {
		background: currentcolor;
		content: "";
		display: block;
		flex: 0 0 22px;
		height: 22px;
		mask: url("../images/icons/cart.svg") center / contain no-repeat;
		width: 22px;
	}

	.psk-mini-cart .wc-block-mini-cart__icon,
	.psk-mini-cart-fallback img { display: none; }
	.psk-mini-cart .wc-block-mini-cart__quantity-badge { display: contents; }

	.psk-header-tools .psk-observed-count,
	.psk-mini-cart .wc-block-mini-cart__badge,
	.psk-mini-cart .psk-mini-cart__count {
		border: 0;
		border-radius: 50%;
		box-sizing: border-box;
		display: inline-grid;
		font-size: 10px;
		font-weight: 600;
		height: 20px;
		inset: 0 0 auto auto;
		line-height: 1;
		margin: 0;
		min-height: 20px;
		min-width: 20px;
		padding: 0;
		place-items: center;
		position: absolute;
		transform: none;
		width: 20px;
	}

	.psk-header-tools .psk-observed-count[hidden],
	.psk-mini-cart .wc-block-mini-cart__badge[hidden] { display: none; }
	.psk-mega-nav { position: static; }

	.psk-menu-shell > summary {
		align-items: center;
		display: flex;
		font-size: 0;
		height: 44px;
		justify-content: center;
		list-style: none;
		position: absolute;
		right: 20px;
		top: 26px;
		width: 44px;
		z-index: 6;
	}

	.psk-menu-shell > summary::after {
		background: linear-gradient(currentcolor, currentcolor) 0 2px / 20px 2px no-repeat, linear-gradient(currentcolor, currentcolor) 0 9px / 20px 2px no-repeat, linear-gradient(currentcolor, currentcolor) 0 16px / 20px 2px no-repeat;
		content: "";
		height: 20px;
		width: 20px;
	}

	.psk-menu-shell[open] > summary::after {
		background: linear-gradient(45deg, transparent calc(50% - 1px), currentcolor 50%, transparent calc(50% + 1px)), linear-gradient(-45deg, transparent calc(50% - 1px), currentcolor 50%, transparent calc(50% + 1px));
	}

	.psk-menu-items {
		background: var(--wp--preset--color--surface);
		display: block;
		padding: 12px 0 24px;
	}

	.psk-header-ready .psk-menu-shell[open] .psk-menu-items {
		box-sizing: border-box;
		inset: var(--psk-header-bottom, 100px) 0 0 auto;
		width: 90vw;
		z-index: 5;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 12px 20px 40px;
		position: fixed;
	}

	.psk-menu-item,
	.psk-menu-direct {
		border-bottom: 1px solid var(--wp--preset--color--border);
		border-left: 0;
	}

	.psk-menu-item > summary,
	.psk-menu-direct > a {
		font-size: 16px;
		min-height: 54px;
		padding: 8px 2px;
		text-transform: none;
	}

	.psk-menu-item > summary::after { margin-right: 8px; }
	.psk-menu-item[open] { background: transparent; margin-block: 0; padding: 0; }
	.psk-menu-item[open] > summary { background: transparent; margin-block: 0 8px; }
	.psk-menu-items .psk-menu-item[open] > summary > .psk-menu-visual { background: transparent; }
	.psk-menu-items .psk-menu-item[open] > summary > .psk-menu-visual--repair { background: #f7f8f8; }
	.psk-menu-item[open] > summary::after { transform: rotate(225deg); }
	.psk-mega-panel { border: 0; box-shadow: none; max-height: none; overflow: visible; padding: 10px 0 22px; position: static; }
	.psk-menu-item[open] > .psk-mega-panel { background: transparent; padding: 0 10px 12px; }
	.psk-mega-columns { flex-direction: column; gap: 24px; }
	.psk-mega-heading { font-size: 14px; padding-block: 8px; }
	.psk-mega-cards { gap: 10px; margin-top: 10px; }
	.psk-mega-cards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.psk-menu-card { gap: 10px; min-height: 58px; }
	.psk-menu-thumbnail { flex-basis: 46px; }
	.psk-menu-card--icon::before { flex-basis: 46px; mask-size: 32px 32px; }
	.psk-menu-thumbnail img { height: 46px; width: 46px; }
	.psk-menu-card__text { font-size: 13px; }
	.psk-menu-description { font-size: 12px; }
	.psk-search-panel { left: 20px; right: 20px; top: 100%; width: auto; }
	.psk-mobile-menu-open { overflow: hidden; }
	.psk-menu-backdrop:not([hidden]) {
		background: rgb(0 0 0 / 32%);
		border: 0;
		border-radius: 0;
		position: fixed;
		inset: var(--psk-header-bottom, 100px) 0 0;
		width: 100%;
		padding: 0;
		z-index: 4;
	}
	.psk-mobile-contact { display: block; padding-top: 24px; }
	.psk-mobile-contact .wp-block-buttons { align-items: stretch; flex-direction: column; gap: 12px; }
	.psk-mobile-contact .wp-block-button__link { box-sizing: border-box; width: 100%; }
}

@media (max-width: 480px) {
	.psk-header-body { padding-inline: 16px; }
	.psk-header-tools { gap: 2px; margin-right: 48px; }
	.psk-menu-shell > summary { right: 16px; }
	.psk-mega-cards--grid { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
	.psk-shop-header .psk-header-logo { width: 88px; }
	.psk-shop-header .psk-header-logo img { height: 60px; width: 88px; }
}

/* The editor keeps all native disclosures directly editable in the content flow. */
.editor-styles-wrapper .psk-mega-panel { box-shadow: none; max-height: none; position: static; }
.editor-styles-wrapper .psk-menu-items { display: block; }

/* Only the existing navigation is pinned; the spacer preserves its flow height. */
.psk-menu-spacer { margin: 0 !important; }

.psk-mega-nav.psk-menu-pinned {
	background: var(--wp--preset--color--surface);
	border-bottom: 1px solid var(--wp--preset--color--border);
	box-sizing: border-box;
	left: 0;
	margin: 0;
	max-width: none;
	padding-inline: max(28px, calc((100% - 1400px) / 2));
	position: fixed;
	right: 0;
	top: var(--psk-menu-top, 0px);
	z-index: 100;
}

.psk-mega-nav.psk-menu-hidden { visibility: hidden; }

@media (max-width: 1199px) {
	.psk-mega-nav.psk-menu-pinned { height: 56px; padding-inline: 20px; }
	.psk-menu-pinned .psk-menu-shell > summary { font-size: 14px; justify-content: space-between; right: 20px; top: 6px; width: calc(100% - 40px); }
}
