/*
 * HEADER Y NAVEGACIÓN — sticky con compactado al hacer scroll
 * (clase .is-scrolled puesta por nav.js). Menú móvil bajo 64em.
 */

.site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: var(--z-header);
	background-color: color-mix(in oklch, var(--color-base) 92%, transparent);
	backdrop-filter: blur(8px);
	border-block-end: 1px solid transparent;
	transition:
		border-color var(--duration-base) var(--ease-out),
		box-shadow var(--duration-base) var(--ease-out);
}

.site-header.is-scrolled {
	border-block-end-color: var(--color-line);
	box-shadow: 0 1px 8px oklch(24% 0.03 255 / 0.06);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-5);
	padding-block: var(--space-4);
	transition: padding var(--duration-base) var(--ease-out);
}

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

.site-header.is-scrolled .site-header__inner {
	padding-block: var(--space-2);
}

.site-branding__name {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: var(--weight-bold);
	text-decoration: none;
	color: var(--color-ink);
}

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

.custom-logo {
	max-height: 48px;
	width: auto;
}

/* Variante de logo por tema: solo si hay logo dark configurado. */
.site-branding__logo--dark {
	display: none;
}

[data-theme='dark'] .site-branding__logo--dark {
	display: block;
}

[data-theme='dark'] .site-branding__logo--light {
	display: none;
}

/* Menú */
.nav-primary__menu {
	display: flex;
	gap: var(--space-5);
}

.nav-primary__menu a {
	display: inline-block;
	padding-block: var(--space-2);
	text-decoration: none;
	font-weight: var(--weight-medium);
	color: var(--color-ink-soft);
	position: relative;
	transition: color var(--duration-fast) var(--ease-out);
}

.nav-primary__menu a::after {
	content: '';
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	height: 2px;
	background-color: var(--color-accent);
	scale: 0 1;
	transform-origin: left;
	transition: scale var(--duration-base) var(--ease-out);
}

.nav-primary__menu a:hover,
.nav-primary__menu .current-menu-item > a {
	color: var(--color-ink);
}

.nav-primary__menu a:hover::after {
	scale: 1 1;
}

/* Página activa: el punto de la marca, no una línea. */
.nav-primary__menu .current-menu-item > a::before {
	content: '';
	position: absolute;
	inset-inline-start: 50%;
	inset-block-end: -2px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--color-accent);
	translate: -50% 0;
}

/* Submenús (escritorio) */
.nav-primary__menu .sub-menu {
	position: absolute;
	min-width: 14rem;
	padding: var(--space-2);
	background-color: var(--color-base);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	visibility: hidden;
	opacity: 0;
	translate: 0 6px;
	transition:
		opacity var(--duration-fast) var(--ease-out),
		translate var(--duration-fast) var(--ease-out),
		visibility var(--duration-fast);
}

.nav-primary__menu li {
	position: relative;
}

.nav-primary__menu li:hover > .sub-menu,
.nav-primary__menu li:focus-within > .sub-menu,
.nav-primary__menu li.is-open > .sub-menu {
	visibility: visible;
	opacity: 1;
	translate: 0 0;
}

.nav-primary__menu .sub-menu a {
	display: block;
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-sm);
}

.nav-primary__menu .sub-menu a::after {
	content: none;
}

.nav-primary__menu .sub-menu a:hover {
	background-color: var(--color-surface);
}

/* Toggle móvil */
.nav-primary__toggle {
	display: none;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-sm);
	color: var(--color-ink);
}

.nav-primary__toggle-close {
	display: none;
}

.nav-primary__toggle[aria-expanded='true'] .nav-primary__toggle-open {
	display: none;
}

.nav-primary__toggle[aria-expanded='true'] .nav-primary__toggle-close {
	display: block;
}

@media (max-width: 63.999em) {
	.nav-primary__toggle {
		display: flex;
	}

	.nav-primary__panel {
		position: fixed;
		inset-inline: 0;
		inset-block-start: var(--header-height, 64px);
		z-index: var(--z-nav-panel);
		padding: var(--space-5) var(--gutter) var(--space-7);
		background-color: var(--color-base);
		border-block-end: 1px solid var(--color-line);
		box-shadow: var(--shadow-card);
	}

	.nav-primary__panel[hidden] {
		display: none;
	}

	.nav-primary__menu {
		flex-direction: column;
		gap: var(--space-1);
	}

	.nav-primary__menu a {
		display: block;
		padding: var(--space-3) var(--space-2);
		font-size: var(--text-lg);
	}

	.nav-primary__menu a::after {
		content: none;
	}

	.nav-primary__menu .sub-menu {
		position: static;
		visibility: visible;
		opacity: 1;
		translate: none;
		border: none;
		box-shadow: none;
		padding-block: 0;
		padding-inline-start: var(--space-4);
	}
}
