/*
 * Header: announcement bar, sticky bar, primary navigation, mega panel, actions.
 * Mobile-first; the desktop layout starts at the 1024px reference breakpoint.
 */

/* Announcement bar */
.announcement-bar {
	display: flex;
	align-items: center;
	min-height: var(--qilaada-promo-height);
	padding-block: var(--qilaada-space-1);
	background: var(--qilaada-color-beige-60);
	color: var(--qilaada-color-black);
	text-align: center;
}

.announcement-bar__text {
	margin: 0;
	font-size: var(--qilaada-text-xs);
	letter-spacing: var(--qilaada-promo-tracking);
	line-height: 1.4;
	text-transform: uppercase;
}

.announcement-bar__text a {
	text-decoration: none;
}

.announcement-bar__text a:hover {
	color: inherit;
	text-decoration: underline;
}

/* Sticky header bar */
.site-header {
	position: sticky;
	top: 0;
	z-index: var(--qilaada-z-header);
	background: var(--qilaada-color-white);
	box-shadow: inset 0 -1px var(--qilaada-header-hairline);
}

.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

/* The admin bar stops being fixed below 600px. */
@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--qilaada-space-2);
	min-height: 3.75rem;
}

.site-header__menu-toggle {
	justify-self: start;
	margin-inline-start: calc(-1 * var(--qilaada-space-3));
}

.site-header__brand {
	justify-self: center;
	line-height: 1;
}

.site-wordmark {
	display: inline-block;
	font-family: var(--qilaada-font-heading);
	font-size: var(--qilaada-text-lg);
	font-weight: 400;
	letter-spacing: var(--qilaada-heading-tracking);
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
	text-transform: uppercase;
}

.site-wordmark:hover {
	color: inherit;
}

.custom-logo-link img {
	width: var(--qilaada-logo-width);
	max-width: 45vw;
}

/* The Qilaada logo shipped with the theme (no logo chosen in Site Identity). */
.site-logo {
	display: inline-block;
	line-height: 0;
}

.site-header .site-logo__image {
	width: auto;
	height: 1.75rem;
}

@media (min-width: 1024px) {
	.site-header .site-logo__image {
		height: 2rem;
	}
}

/* Primary navigation (desktop only) */
.primary-nav {
	display: none;
}

.primary-nav__list {
	display: flex;
	align-items: stretch;
	gap: 0 var(--qilaada-space-6);
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-nav__item {
	display: flex;
	align-items: center;
}

.primary-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: var(--qilaada-space-1) 0;
	border: 0;
	background: none;
	color: var(--qilaada-color-text);
	font-family: var(--qilaada-font-body);
	font-size: var(--qilaada-text-base);
	font-weight: 400;
	letter-spacing: var(--qilaada-nav-tracking);
	line-height: var(--qilaada-body-line-height);
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.primary-nav__link:hover {
	color: var(--qilaada-color-text);
}

/* Underline grows from the left, as on the reference. */
.primary-nav__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	inset-inline-start: 0;
	width: 0;
	height: 1px;
	background: var(--qilaada-color-black);
	transition: width var(--qilaada-duration) var(--qilaada-ease);
}

.primary-nav__link:hover::after,
.primary-nav__link:focus-visible::after,
.primary-nav__link[aria-current="page"]::after,
.primary-nav__item.is-current > .primary-nav__link::after,
.primary-nav__item.is-open > .primary-nav__link::after {
	width: 100%;
}

.primary-nav__item.is-open .icon--chevron-down {
	transform: rotate(180deg);
}

/* Mega panel: positioned against the sticky header, full width. */
.mega-panel {
	position: absolute;
	top: 100%;
	inset-inline-end: 0;
	inset-inline-start: 0;
	background: var(--qilaada-color-white);
	box-shadow: inset 0 1px var(--qilaada-header-hairline), 0 1.5rem 2rem -1.5rem rgb(0 0 0 / 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-0.5rem);
	transition:
		opacity var(--qilaada-duration) var(--qilaada-ease),
		transform var(--qilaada-duration) var(--qilaada-ease),
		visibility 0s linear var(--qilaada-duration);
}

.primary-nav__item.is-open > .mega-panel,
.no-js .primary-nav__item--mega:hover > .mega-panel,
.no-js .primary-nav__item--mega:focus-within > .mega-panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
	transition-delay: 0s;
}

.mega-panel__inner {
	display: grid;
	gap: var(--qilaada-space-12);
	padding-block: 2rem 2.75rem;
}

.mega-panel__inner--promo {
	grid-template-columns: 1fr minmax(14rem, 17.5rem);
}

.mega-panel__columns {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
	align-content: start;
	gap: var(--qilaada-space-8);
}

/* Column titles in capitals; links in muted sentence case; an untitled
   column shows underlined capitals ("Shop all"), as on the reference. */
.mega-panel__title {
	margin: 0 0 1.5rem;
	color: var(--qilaada-color-text);
	font-family: var(--qilaada-font-body);
	font-size: var(--qilaada-text-base);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.mega-panel__links {
	display: grid;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mega-panel__links a {
	color: var(--qilaada-color-muted-strong);
	font-size: var(--qilaada-text-base);
	text-decoration: none;
}

.mega-panel__column--plain .mega-panel__links {
	gap: 1.5rem;
}

.mega-panel__column--plain .mega-panel__links a {
	padding-bottom: 0.15rem;
	border-bottom: 1px solid currentColor;
	color: var(--qilaada-color-text);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.mega-panel__links a:hover,
.mega-panel__links a[aria-current="page"] {
	text-decoration: underline;
}

.mega-promo {
	display: block;
	text-decoration: none;
}

.mega-promo__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--qilaada-color-beige-50);
}

.mega-promo__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--qilaada-ease);
}

a.mega-promo:hover .mega-promo__image {
	transform: scale(1.03);
}

.mega-promo__title {
	display: block;
	margin-top: var(--qilaada-space-3);
	font-family: var(--qilaada-font-heading);
	font-size: var(--qilaada-text-xs);
	letter-spacing: var(--qilaada-heading-tracking);
	text-transform: uppercase;
}

/* Promo caption laid over the image's lower left, as on the reference. */
.mega-promo--titled {
	position: relative;
	color: var(--qilaada-color-white);
}

.mega-promo--titled .mega-promo__media {
	aspect-ratio: 28 / 31;
}

.mega-promo--titled .mega-promo__title {
	position: absolute;
	inset-inline-end: 2rem;
	bottom: 2rem;
	inset-inline-start: 2rem;
	margin: 0;
	font-family: var(--qilaada-font-body);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

a.mega-promo--titled:hover {
	color: var(--qilaada-color-white);
}

.mega-promo--placeholder {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 5;
	padding: var(--qilaada-space-6);
	border: 1px dashed var(--qilaada-color-border);
	color: var(--qilaada-color-muted);
	font-size: var(--qilaada-text-xs);
	text-align: center;
}

/* Header actions */
.header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	justify-self: end;
	margin-inline-end: calc(-1 * var(--qilaada-space-3));
}

/* Cart count badge */
.qilaada-cart-count {
	position: absolute;
	top: 0.3rem;
	inset-inline-end: 0.15rem;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 0.25rem;
	border-radius: 9999px;
	background: var(--qilaada-color-ink);
	color: var(--qilaada-color-white);
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 1.05rem;
	text-align: center;
}

.qilaada-cart-count[data-count="0"] {
	display: none;
}

/* Wishlist count: same badge, shown once something is saved. */
.qilaada-wishlist-count {
	position: absolute;
	top: 0.3rem;
	inset-inline-end: 0.15rem;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 0.25rem;
	border-radius: 9999px;
	background: var(--qilaada-color-ink);
	color: var(--qilaada-color-white);
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 1.05rem;
	text-align: center;
}

.qilaada-wishlist-count[data-count="0"] {
	display: none;
}

/* Phones keep three icons beside the centred logo; the wishlist is in the menu. */
@media (max-width: 639.98px) {
	body:not(.qilaada-home-chrome) .header-actions__wishlist {
		display: none;
	}
}

/* Desktop: logo left, navigation centred, utilities right (as on the reference). */
@media (min-width: 1024px) {
	.site-header__inner {
		grid-template-columns: 1fr auto 1fr;
		gap: var(--qilaada-space-5);
		min-height: var(--qilaada-header-height);
	}

	.site-header__menu-toggle {
		display: none;
	}

	.site-header__brand {
		justify-self: start;
	}

	.site-wordmark {
		font-size: var(--qilaada-text-2xl);
	}

	.primary-nav {
		display: flex;
		align-self: stretch;
		justify-self: center;
	}
}

/* Language selector: "ENGLISH ⌄" before the icons; a small list opens below it. */
.language-switch {
	position: relative;
	margin-inline-end: var(--qilaada-space-2);
}

.language-switch__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	min-height: 2.75rem;
	padding: 0 var(--qilaada-space-1);
	border: 0;
	background: none;
	color: var(--qilaada-color-text);
	font-family: var(--qilaada-font-body);
	font-size: var(--qilaada-text-sm);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	cursor: pointer;
}

.language-switch__toggle[aria-expanded="true"] .icon--chevron-down {
	transform: rotate(180deg);
}

.language-switch__list {
	position: absolute;
	top: calc(100% + 0.25rem);
	inset-inline-end: 0;
	z-index: calc(var(--qilaada-z-header) + 1);
	min-width: 8.25rem;
	margin: 0;
	padding: 0.25rem 0;
	border: 1px solid var(--qilaada-color-gray-20);
	border-radius: 0.25rem;
	background: var(--qilaada-color-white);
	box-shadow: 0 0.5rem 1.25rem rgb(0 0 0 / 0.1);
	list-style: none;
}

.language-switch__list a,
.language-switch--inline a {
	display: block;
	padding: 0.45rem 0.75rem;
	color: var(--qilaada-color-text);
	font-size: var(--qilaada-text-sm);
	font-weight: 600;
	text-decoration: none;
}

.language-switch__list a:hover,
.language-switch__list a:focus-visible,
.language-switch__list a[aria-current="true"] {
	background: var(--qilaada-color-beige-60);
}

/* Phones: the header has no room; the selector sits in the mobile menu. */
@media (max-width: 1023.98px) {
	.header-actions .language-switch {
		display: none;
	}
}

.language-switch--inline {
	display: flex;
	gap: var(--qilaada-space-2);
	margin: 0 0 var(--qilaada-space-3);
	padding: 0;
	list-style: none;
}

.language-switch--inline a {
	padding-inline: 0.6rem;
	border: 1px solid var(--qilaada-color-gray-20);
	border-radius: 0.25rem;
}

.language-switch--inline a[aria-current="true"] {
	border-color: var(--qilaada-color-ink);
}

/*
 * Homepage design header (body.qilaada-home-chrome, see inc/homepage.php):
 * no announcement bar, a 3px beige rule along the top, 65px tall at 1440px
 * (55px on phones), the wordmark in 19px Figtree, navigation in 10.5px
 * capitals 18px apart, 16px icons 12px apart. Phones: menu and search on
 * the left, wordmark centred, account and cart on the right.
 */
.qilaada-home-chrome .site-header {
	border-top: 3px solid var(--qilaada-color-beige-60);
	box-shadow: inset 0 -1px var(--qilaada-color-border);
}

.qilaada-home-chrome .site-header__inner {
	min-height: 3.25rem;
	padding-inline: 1.25rem;
}

.qilaada-home-chrome .site-header__start {
	display: flex;
	justify-self: start;
	margin-inline-start: calc(-1 * var(--qilaada-space-3));
}

.qilaada-home-chrome .site-header__start .site-header__menu-toggle {
	margin-inline-start: 0;
}

.qilaada-home-chrome .site-wordmark {
	font-family: var(--qilaada-font-body);
	font-size: 1.1875rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: #111;
}

/* On phones and tablets search sits beside the menu button instead. */
@media (max-width: 1023.98px) {
	.qilaada-home-chrome .header-actions [data-drawer-open="search-drawer"] {
		display: none;
	}
}

@media (min-width: 1024px) {
	/* Sticky elements and the search bar line up with this 65px header. */
	.qilaada-home-chrome {
		--qilaada-header-height: 4.0625rem;
	}

	.qilaada-home-chrome .site-header__inner {
		max-width: none;
		min-height: 3.875rem;
		padding-inline: 1.9375rem;
	}

	.qilaada-home-chrome .site-header__start {
		display: none;
	}

	.qilaada-home-chrome .primary-nav__list {
		gap: 0 1.125rem;
	}

	.qilaada-home-chrome .primary-nav__link {
		gap: 0.125rem;
		color: #111;
		font-size: 0.65625rem;
		letter-spacing: 0.03em;
	}

	.qilaada-home-chrome .primary-nav__link .icon {
		width: 0.5rem;
		height: 0.5rem;
	}

	.qilaada-home-chrome .header-actions {
		gap: 0.75rem;
		margin-inline-end: 0;
	}

	.qilaada-home-chrome .header-actions .icon-button {
		width: 1rem;
		color: #111;
	}

	.qilaada-home-chrome .header-actions .icon-button .icon {
		width: 1rem;
		height: 1rem;
	}

	.qilaada-home-chrome .header-actions .qilaada-cart-count,
	.qilaada-home-chrome .header-actions .qilaada-wishlist-count {
		top: 0.5rem;
		inset-inline-end: -0.625rem;
	}

	.qilaada-home-chrome .language-switch {
		margin-inline-end: 0;
	}

	.qilaada-home-chrome .language-switch__toggle {
		gap: 0.1875rem;
		padding: 0;
		color: #111;
		font-size: 0.65625rem;
		letter-spacing: 0.03em;
	}

	.qilaada-home-chrome .language-switch__toggle .icon {
		width: 0.5rem;
		height: 0.5rem;
	}

	/* Jewelry panel as on the reference: four equal columns (Jewelry,
	   Collection, Accessories, then the underlined shop links) in 12px text. */
	.qilaada-home-chrome .mega-panel__inner:not(.mega-panel__inner--promo) .mega-panel__columns {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2rem;
	}

	.qilaada-home-chrome .mega-panel__title {
		margin-bottom: 1.125rem;
		color: #111;
		font-size: 0.75rem;
		font-weight: 500;
		letter-spacing: 0.02em;
		line-height: 1.25;
	}

	.qilaada-home-chrome .mega-panel__links {
		gap: 0.5rem;
		font-size: 0.75rem;
		line-height: 1.25;
	}

	.qilaada-home-chrome .mega-panel__links a {
		font-size: inherit;
	}

	.qilaada-home-chrome .mega-panel__column--plain .mega-panel__links {
		justify-items: start;
		gap: 1.5rem;
	}

	.qilaada-home-chrome .mega-panel__column--plain .mega-panel__links a {
		color: #111;
		font-weight: 600;
		letter-spacing: 0.08em;
	}
}
