/**
 * YA header + slide-out menu
 *
 * Meny/Stäng stays in the header bar (scrolls with the page; no jump on open).
 * The bar stacks above the drawer so Stäng remains usable while open.
 * Under 480px the one existing bar joins the scrollable drawer with a white logo.
 * From 480px the panel is 480px wide; the docked close control stays in place.
 */

/*
 * Reserve scrollbar space always so locking scroll never shifts layout.
 * When open, overflow:hidden clears the thumb but leaves the gutter — paint the
 * root canvas the panel colour so that strip matches the drawer instead of flashing white.
 */
html {
	scrollbar-gutter: stable;
}

html.ya-menu-open {
	background-color: var(--wp--preset--color--gray-600);
	overflow: hidden;
}

/* Keep the page surface opaque so only the gutter shows the dark root bg. */
html.ya-menu-open body {
	background-color: var(--wp--preset--color--gray-300);
	overflow: hidden;
}

.ya-header {
	box-sizing: border-box;
	width: 100%;
	margin-block: 0;
	position: relative;
	z-index: 40;
	--ya-header-divider: #fff3;
	--ya-header-admin-offset: 0px;
}

.admin-bar .ya-header { --ya-header-admin-offset: var(--wp-admin--admin-bar--height, 0px); }

.ya-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-block: 1rem;
	padding-inline: var(--wp--custom--grid--margin--mobile);
	position: relative;
	z-index: auto;
	position: absolute;
}

.ya-header__brand,
.ya-header__logo,
.ya-header__toggle-wrap {
	margin: 0;
}

.ya-header__logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

/* Beat WooCommerce `.woocommerce-page img { height: auto; display: block }` (0,1,1). */
.ya-header img.ya-header__logo-img {
	display: block;
	width: 149px;
	height: 44px;
	object-fit: contain;
	max-width: none;
}

.ya-header img.ya-header__logo-img--white {
	display: none;
}

/* Toggle stays in the bar; bar z-index keeps it above the drawer while open. */
.ya-header__toggle-wrap--dock {
	position: relative;
	z-index: 80;
}

.ya-header__toggle {
	display: inline-grid;
	grid-template-columns: 20px max-content;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	box-sizing: border-box;
	min-height: 2.75rem;
	width: auto;
	min-width: 6.125rem;
	margin: 0;
	padding: 0.5rem 1rem;
	border: 2px solid var(--wp--preset--color--gray-400);
	border-radius: var(--wp--custom--button--radius-full, 999px);
	background-color: var(--wp--preset--color--gray-white);
	color: var(--wp--preset--color--gray-black);
	font-family: var(--wp--preset--font-family--figtree);
	font-size: var(--wp--preset--font-size--label-md);
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
	transition: border-color 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ya-header__toggle:focus,
.ya-header__accordion-trigger:focus,
.ya-header__links a:focus {
	outline: none;
}

.ya-header__toggle:hover:not(:focus-visible) {
	border-color: var(--wp--preset--color--gray-black);
}
.ya-header__toggle:focus-visible {
	outline: var(--wp--custom--focus--width, 3px) solid var(--wp--custom--color--focus-border);
	outline-offset: 2px;
}

/* Both labels size one grid cell; only the active label is visible to AT. */
.ya-header__toggle-label { grid-column: 2; grid-row: 1; }
.ya-header__toggle-label--close { visibility: hidden; }
.ya-header.is-open .ya-header__toggle-label--open { visibility: hidden; }
.ya-header.is-open .ya-header__toggle-label--close { visibility: visible; }

/* Burger morph (20×20; mid bars 14×2). */
.ya-header__burger {
	grid-column: 1;
	grid-row: 1;
	position: relative;
	display: block;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.ya-header__burger-line {
	position: absolute;
	left: 50%;
	display: block;
	width: 14px;
	height: 2px;
	margin-left: -7px;
	border-radius: 1px;
	background-color: currentColor;
	transform-origin: center;
}

.ya-header__burger-line--top {
	top: 5px;
}

.ya-header__burger-line--bottom {
	bottom: 5px;
}

.ya-header__burger-mid {
	position: absolute;
	inset: 0;
}

.ya-header__burger-line--mid-a,
.ya-header__burger-line--mid-b {
	top: 9px;
}

.ya-header.is-open .ya-header__burger-line--top {
	transform: translateY(4px) scaleX(0);
}
.ya-header.is-open .ya-header__burger-line--bottom {
	transform: translateY(-4px) scaleX(0);
}

.ya-header.is-open .ya-header__burger-line--mid-a {
	transform: rotate(45deg);
}

.ya-header.is-open .ya-header__burger-line--mid-b {
	transform: rotate(-45deg);
}

.ya-header__accordion-icon {
	display: inline-flex;
	flex-shrink: 0;
	color: currentColor;
}

.ya-header__accordion-icon svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: currentColor;
}

.ya-header__accordion-icon svg [fill] {
	fill: currentColor;
}

/* Backdrop: invisible hit area to close; no dim/scrim. */
.ya-header__backdrop {
	position: fixed;
	inset: 0;
	z-index: 50;
	background: transparent;
	pointer-events: none;
}

.ya-header.is-open .ya-header__backdrop {
	pointer-events: auto;
}

.ya-header__drawer {
	position: fixed;
	inset: var(--ya-header-admin-offset) 0 0;
	z-index: 60;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: calc(100% - var(--ya-header-admin-offset));
	margin: 0;
	padding: 0;
	overflow: hidden;
	background-color: var(--wp--preset--color--gray-600);
	color: var(--wp--preset--color--gray-white);
	transform: translateX(100%);
	visibility: hidden;
	pointer-events: none;
}

.ya-header.is-open .ya-header__drawer {
	transform: translateX(0);
	visibility: visible;
	pointer-events: auto;
	transition-property: transform;
}

.ya-header__drawer-inner {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding-block: 8rem var(--ya-spacing-48);
	padding-inline: var(--wp--custom--grid--margin--mobile);
}

.ya-header__nav {
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.ya-header__section-label {
	margin-block: 0 0.75rem;
	font-family: var(--wp--preset--font-family--figtree);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--gray-white);
}

.ya-header__accordion,
.ya-header__links,
.ya-header__submenu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ya-header__accordion-item {
	display: grid;
	grid-template-rows: max-content 0fr;
	border-block-start: 2px solid var(--ya-header-divider);
}

.ya-header__accordion-item:first-child {
	border-block-start: none;
}

.ya-header__accordion-item.is-open {
	grid-template-rows: max-content 1fr;
}

.ya-header__accordion-item:last-child {
	border-block-end: 2px solid var(--ya-header-divider);
}

/* Only the rule under the hovered row lights up (next item’s start / last item’s end). */
.ya-header__accordion-item:hover + .ya-header__accordion-item {
	border-block-start-color: var(--wp--preset--color--gray-white);
}

.ya-header__accordion-item:last-child:hover {
	border-block-end-color: var(--wp--preset--color--gray-white);
}

.ya-header__accordion-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ya-spacing-10);
	width: 100%;
	margin: 0;
	padding-block: var(--ya-spacing-16);
	padding-inline: 0;
	border: none;
	background: transparent;
	color: inherit;
	text-align: start;
	cursor: pointer;
}

.ya-header__accordion-trigger:focus-visible,
.ya-header__links a:focus-visible {
	outline: var(--wp--custom--focus--width, 3px) solid var(--wp--custom--color--focus-border-inverse);
	outline-offset: -2px;
	border-radius: 2px;
}

.ya-header__logo-link:focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--custom--color--focus-border);
	outline-offset: 2px;
}
.ya-header[aria-modal="true"] .ya-header__toggle:focus-visible {
	outline-color: var(--wp--custom--color--focus-border-inverse);
}

.ya-header__accordion-title {
	font-family: var(--wp--preset--font-family--sora);
	font-size: var(--wp--preset--font-size--heading-sm);
	font-weight: 800;
	line-height: 1.4;
}

.ya-header__accordion-item.is-open > .ya-header__accordion-trigger .ya-header__accordion-icon {
	transform: rotate(180deg);
}

.ya-header__submenu {
	min-height: 0;
	overflow: hidden;
	padding-block: 0;
	padding-inline-start: 0;
}

.ya-header__accordion-item.is-open > .ya-header__submenu {
	padding-block: 0 var(--ya-spacing-40);
}

.ya-header__submenu > li {
	opacity: 0;
	transform: translateY(6px);
}

.ya-header__accordion-item.is-open > .ya-header__submenu > li {
	opacity: 1;
	transform: translateY(0);
}

.ya-header__submenu a {
	display: inline-block;
	padding-block: 0.5rem;
	color: inherit;
	font-family: var(--wp--preset--font-family--figtree);
	font-size: var(--wp--preset--font-size--link-md);
	font-weight: 700;
	line-height: 1.5;
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--link--underline-thickness);
	text-underline-offset: var(--wp--custom--link--underline-offset);
}

.ya-header__submenu a:hover {
	text-decoration-thickness: var(--wp--custom--link--hover-underline-thickness);
}

.ya-header__links > li {
	border-block-start: 2px solid var(--ya-header-divider);
}

.ya-header__links > li:first-child {
	border-block-start: none;
}

.ya-header__links > li:last-child {
	border-block-end: 2px solid var(--ya-header-divider);
}

.ya-header__links > li:hover + li {
	border-block-start-color: var(--wp--preset--color--gray-white);
}

.ya-header__links > li:last-child:hover {
	border-block-end-color: var(--wp--preset--color--gray-white);
}

.ya-header__links a {
	display: flex;
	align-items: center;
	padding-block: var(--ya-spacing-16);
	color: inherit;
	font-family: var(--wp--preset--font-family--sora);
	font-size: var(--wp--preset--font-size--heading-sm);
	font-weight: 800;
	line-height: 1.4;
	text-decoration: none;
}

.ya-header__links a:hover {
	text-decoration: none;
}

@media (prefers-reduced-motion: no-preference) {
	.ya-header__drawer > .ya-header__bar {
		transition: transform 500ms cubic-bezier(0.22, 0.57, 0.25, 1);
	}
	.ya-header__drawer {
		transition:
			transform 500ms cubic-bezier(0.22, 0.57, 0.25, 1),
			visibility 500ms cubic-bezier(0.22, 0.57, 0.25, 1);
	}

	.ya-header__burger-line {
		transition: transform 250ms cubic-bezier(0.77, 0, 0.175, 1);
	}

	.ya-header__accordion-item {
		transition:
			grid-template-rows 300ms cubic-bezier(0.4, 0, 0.2, 1),
			border-color 300ms cubic-bezier(0.4, 0, 0.2, 1);
	}

	.ya-header__links > li {
		transition: border-color 300ms cubic-bezier(0.4, 0, 0.2, 1);
	}

	.ya-header__accordion-item > .ya-header__accordion-trigger .ya-header__accordion-icon {
		transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
	}

	.ya-header__submenu {
		transition: padding-block 300ms cubic-bezier(0.4, 0, 0.2, 1);
	}

	.ya-header__submenu > li {
		transition:
			opacity 200ms cubic-bezier(0.4, 0, 0.2, 1),
			transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ya-header__toggle { transition: none; }
}
[data-reduced-motion="true"] .ya-header__accordion-item > .ya-header__accordion-trigger .ya-header__accordion-icon,
[data-reduced-motion="true"] :is(.ya-header__drawer, .ya-header__bar, .ya-header__toggle, .ya-header__burger-line, .ya-header__accordion-item, .ya-header__accordion-icon, .ya-header__submenu > li, .ya-header__links > li) {
	transition: none;
}
@media (forced-colors: active) {
	.ya-header :focus-visible,
	.ya-header[aria-modal="true"] :is(.ya-header__toggle, .ya-header__logo-link, .ya-header__accordion-trigger, .ya-header__links a, .ya-header__submenu a):focus-visible { outline-color: Highlight; }
}

/* Mobile: bar and content share one scroll container. */
@media (max-width: 479px) {
	.ya-header__drawer {
		overflow: auto;
		overscroll-behavior: contain;
	}
	.ya-header__drawer > .ya-header__bar {
		position: relative;
		flex: 0 0 auto;
		transform: translateX(-100%);
	}
	.ya-header.is-open .ya-header__drawer > .ya-header__bar { transform: none; }
	.ya-header__drawer > .ya-header__drawer-inner {
		flex: 0 0 auto;
		overflow: visible;
		padding-block-start: var(--ya-spacing-20);
	}
	.ya-header.is-open .ya-header__logo-link:focus-visible {
		outline-color: var(--wp--custom--color--focus-border-inverse);
	}

	.ya-header.is-open img.ya-header__logo-img--color {
		display: none;
	}

	.ya-header.is-open img.ya-header__logo-img--white {
		display: block;
	}
}

@media (min-width: 480px) {
	.ya-header__bar {
		padding-inline: var(--wp--custom--grid--margin--mobile-l);
	}

	.ya-header__drawer-inner {
		padding-inline: var(--ya-spacing-24);
	}
}

/* Panel width changes at Mobile L; header margins still follow Grid. */
@media (min-width: 480px) {
	.ya-header__drawer {
		inset: var(--ya-header-admin-offset) 0 0 auto;
		width: min(480px, 100%);
		max-width: 480px;
		box-shadow: -30px 0 50px rgb(0 0 0 / 10%);
	}
}
@media (min-width: 768px) {
	.ya-header__bar { padding-inline: var(--wp--custom--grid--margin--tablet); }
}
