/**
 * Goldleaf Tavern - Site header and site footer
 *
 * Values come exclusively from assets/css/variables.css.
 *
 * @package Goldleaf_Tavern
 */

/* -----------------------------------------------------------------------
 * Site header - fixed translucent bar over the hero
 * -------------------------------------------------------------------- */

.site-header {
	align-items: center;
	backdrop-filter: blur(var(--gt-header-blur));
	-webkit-backdrop-filter: blur(var(--gt-header-blur));
	background: var(--gt-header-bg);
	border-bottom: var(--gt-border-width) solid var(--gt-color-on-dark-rule);
	display: flex;
	gap: var(--gt-space-sm);
	justify-content: space-between;
	left: 0;
	margin: 0;
	padding: var(--gt-header-padding);
	position: fixed;
	right: 0;
	top: 0;
	z-index: 20;
}

/* WordPress admin bar offset. */
.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {

	.admin-bar .site-header {
		top: 46px;
	}
}

.site-branding {
	align-items: center;
	display: flex;
	gap: var(--gt-space-xs);
	margin: 0;
	min-width: 0;
}

.site-branding .custom-logo-link {
	display: block;
	flex: 0 0 auto;
	line-height: 0;
}

.site-branding .custom-logo {
	display: block;
	height: var(--gt-logo-height);
	object-fit: contain;
	width: auto;
}

.site-title {
	font-family: var(--gt-brand-font);
	font-size: var(--gt-size-brand);
	font-weight: var(--gt-brand-weight);
	letter-spacing: var(--gt-tracking-brand);
	line-height: 1.2;
	margin: 0;
	text-transform: uppercase;
}

.site-title a {
	color: var(--gt-header-color);
	text-decoration: none;
}

.site-title a:hover,
.site-title a:focus {
	color: var(--gt-color-gold);
	text-decoration: none;
}

/* The tagline would compete with the hero copy. */
.site-description {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

/* Right-hand group: primary nav and the language switcher. */
.site-header__end {
	align-items: center;
	display: flex;
	flex: 0 1 auto;
	gap: var(--gt-space-md);
	min-width: 0;
}

/* -----------------------------------------------------------------------
 * Language switcher
 * -------------------------------------------------------------------- */

.site-langs nav {
	align-items: center;
	display: flex;
	gap: var(--gt-space-2xs);
}

.site-langs__item,
.site-langs__item:visited {
	color: var(--gt-header-color);
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-eyebrow);
	letter-spacing: var(--gt-tracking-meta);
	opacity: var(--gt-lang-opacity);
	padding: var(--gt-space-3xs) 2px;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity var(--gt-transition), color var(--gt-transition);
}

.site-langs__item.is-active {
	opacity: 1;
}

.site-langs__item:hover,
.site-langs__item:focus {
	color: var(--gt-color-gold);
	opacity: 1;
	text-decoration: none;
}

.site-langs__sep {
	color: var(--gt-lang-sep-color);
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-eyebrow);
}

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

.main-navigation {
	display: block;
	flex: 0 1 auto;
	width: auto;
}

.main-navigation ul {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gt-space-sm);
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation ul ul {
	background: var(--gt-color-night);
	border: var(--gt-border-width) solid var(--gt-color-on-dark-rule);
	display: none;
	flex-direction: column;
	gap: 0;
	left: 0;
	padding: var(--gt-space-2xs) 0;
	position: absolute;
	top: 100%;
	z-index: 30;
}

.main-navigation ul ul li {
	width: 100%;
}

.main-navigation ul ul a {
	display: block;
	padding: var(--gt-space-3xs) var(--gt-space-sm);
	white-space: nowrap;
}

.main-navigation li {
	position: relative;
}

.main-navigation li:hover > ul,
.main-navigation li.focus > ul {
	display: flex;
	left: 0;
	right: auto;
}

.main-navigation a {
	color: var(--gt-header-color);
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-eyebrow);
	letter-spacing: var(--gt-tracking-meta);
	padding: var(--gt-space-3xs) 0;
	text-decoration: none;
	text-transform: uppercase;
}

.main-navigation a:hover,
.main-navigation a:focus {
	color: var(--gt-color-gold);
	text-decoration: none;
}

.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: var(--gt-color-gold);
}

/* Mobile toggle - hidden on desktop, driven by js/navigation.js. */
.menu-toggle {
	background: none;
	border: var(--gt-border-width) solid var(--gt-color-on-dark-rule);
	border-radius: var(--gt-radius);
	color: var(--gt-header-color);
	cursor: pointer;
	display: none;
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-meta);
	letter-spacing: var(--gt-tracking-meta);
	padding: var(--gt-space-2xs) var(--gt-space-xs);
	text-transform: uppercase;
}

.menu-toggle:hover,
.menu-toggle:focus {
	border-color: var(--gt-color-gold);
	color: var(--gt-color-gold);
}

@media screen and (max-width: 782px) {

	.menu-toggle {
		display: block;
	}

	.main-navigation ul {
		display: none;
	}

	.main-navigation.toggled ul {
		background: var(--gt-color-night);
		border: var(--gt-border-width) solid var(--gt-color-on-dark-rule);
		display: flex;
		flex-direction: column;
		gap: var(--gt-space-2xs);
		padding: var(--gt-space-sm);
		position: absolute;
		right: var(--gt-space-md);
		top: calc(100% + var(--gt-space-2xs));
		z-index: 30;
	}

	.main-navigation.toggled ul ul {
		border: 0;
		padding: 0 0 0 var(--gt-space-xs);
		position: static;
	}
}

/* -----------------------------------------------------------------------
 * Site footer
 * -------------------------------------------------------------------- */

.site-footer {
	background: var(--gt-footer-bg);
	color: var(--gt-color-on-dark-soft);
	padding: var(--gt-footer-padding);
}

.site-footer__inner {
	margin: 0 auto;
	max-width: var(--gt-content-width);
}

.site-footer__heading {
	color: var(--gt-color-on-dark);
	font-size: var(--gt-size-h2);
	margin: 0 0 var(--gt-space-2xl);
}

.site-footer__columns {
	border-bottom: var(--gt-border-width) solid var(--gt-color-on-dark-rule);
	display: grid;
	gap: var(--gt-space-lg);
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	padding-bottom: var(--gt-space-xl);
}

.site-footer__label {
	color: var(--gt-color-gold);
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-meta);
	letter-spacing: var(--gt-tracking-label);
	margin: 0 0 var(--gt-space-sm);
	text-transform: uppercase;
}

.site-footer__text {
	color: var(--gt-color-on-dark-link);
	font-size: var(--gt-size-small);
	line-height: var(--gt-leading-body);
	margin: 0;
}

.site-footer__list {
	display: flex;
	flex-direction: column;
	gap: var(--gt-space-2xs);
	font-size: var(--gt-size-small);
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Social links render as brand icons laid out in a row. */
.site-footer__list--social {
	align-items: center;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--gt-space-sm);
}

.site-footer__social-link {
	align-items: center;
	display: inline-flex;
	justify-content: center;
}

.site-footer__social-icon {
	display: block;
	height: var(--gt-social-icon-size);
	transition: transform var(--gt-transition);
	width: var(--gt-social-icon-size);
}

.site-footer__social-link:hover .site-footer__social-icon,
.site-footer__social-link:focus .site-footer__social-icon {
	transform: translateY(-2px);
}

.site-footer a {
	color: var(--gt-color-on-dark-link);
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus {
	color: var(--gt-color-on-dark-link-hover);
	text-decoration: none;
}

.site-footer__bottom {
	align-items: center;
	color: var(--gt-color-on-dark-muted);
	display: flex;
	flex-wrap: wrap;
	font-family: var(--gt-font-mono);
	font-size: var(--gt-size-meta);
	gap: var(--gt-space-md);
	justify-content: space-between;
	letter-spacing: var(--gt-tracking-meta);
	padding-top: var(--gt-space-md);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gt-space-md);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__bottom a {
	color: var(--gt-color-on-dark-muted);
}
