/*
 * Header — announcement bar, primary nav, slim checkout nav.
 *
 * Measurements that describe the design system live in tokens.css. The values
 * below that have no system-level token (11.5px announcement text, 34px nav
 * gap) are component measurements read directly from the design source; they
 * occur once, in this component, and are commented with their origin.
 */

.al-announcement {
	display: flex;
	justify-content: center;
	gap: var(--al-page-padding);          /* 56px */
	padding: 9px 0;
	background: var(--al-lavender-t3);
	color: var(--al-plum-deep);
	font-size: 11.5px;                    /* design source, announcement bar only */
	letter-spacing: 0.08em;
}

/* ---------------------------------------------------------------------------
 * Primary navigation
 * ------------------------------------------------------------------------ */

.al-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px var(--al-page-padding);
	background: rgba(248, 245, 240, 0.94);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--al-border-nav);
}

.al-logo {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.al-logo__mark {
	font-family: var(--al-font-serif);
	font-size: var(--al-logo-size);
	font-weight: var(--al-weight-medium);
	color: var(--al-plum-light);
	letter-spacing: var(--al-logo-tracking);
	line-height: 1;
}

.al-logo__tagline {
	font-size: var(--al-logo-tagline-size);
	letter-spacing: var(--al-logo-tagline-tracking);
	color: var(--al-faint);
}

/* The logo is a link; it must not inherit the generic link hover colour. */
.al-logo:hover .al-logo__mark {
	color: var(--al-plum-light);
}

.al-logo:hover .al-logo__tagline {
	color: var(--al-faint);
}

.al-nav__links {
	display: flex;
	gap: 34px;                            /* design source */
	font-size: var(--al-nav-size);
}

/*
 * The design source has no list here, just links in a flex row. Keeping the
 * list preserves the item count for screen readers, and `display: contents`
 * makes each link the flex item itself rather than an inline box inside one —
 * so the link box matches the design exactly and can take the padding the
 * minimum touch target needs. Verified identical to the reference.
 */
.al-nav__links li {
	display: contents;
}

.al-nav__link.is-current {
	color: var(--al-plum-light);
	font-weight: var(--al-weight-medium);
}

.al-nav__utils {
	display: flex;
	align-items: center;
	gap: 22px;                            /* design source */
	font-size: var(--al-button-size);     /* 13px */
}

.al-cart-pill {
	border: 1px solid var(--al-border-cart-pill);
	border-radius: var(--al-radius-pill);
	padding: 7px 18px;
	color: var(--al-plum-light);
	transition: background var(--al-transition), border-color var(--al-transition), color var(--al-transition);
}

/* On the cart page the pill itself carries the active state; no nav link does. */
.al-cart-pill.is-current {
	border-color: var(--al-lavender);
	background: var(--al-lavender-t1);
}

/* ---------------------------------------------------------------------------
 * Slim checkout nav — no announcement bar, no nav links, not sticky
 * ------------------------------------------------------------------------ */

.al-nav--slim {
	position: static;
	padding: 18px var(--al-page-padding);
	background: var(--al-ivory);
	backdrop-filter: none;
}

.al-nav--slim .al-nav__utils {
	gap: 22px;
	font-size: var(--al-card-desc-size-lg);   /* 12.5px */
	color: var(--al-muted);
}

.al-nav--slim .al-nav__utils a {
	color: var(--al-plum-light);
}
