/* ==========================================================================
   Site header
   ========================================================================== */
.site-header{
	position:fixed; top:0; left:0; right:0; z-index:200;
	background:transparent;
	transition:background-color var(--speed-med) var(--ease), padding var(--speed-med) var(--ease), border-color var(--speed-med) var(--ease);
	border-bottom:1px solid transparent;
}
.site-header.is-stuck{
	background:rgba(10,10,10,.86); backdrop-filter:blur(10px); border-color:var(--border);
}
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:26px; transition:padding var(--speed-med) var(--ease); }
.site-header.is-stuck .site-header__inner{ padding-block:16px; }

.site-branding .custom-logo{ max-height:44px; width:auto; }
.site-logo{ display:inline-flex; align-items:baseline; gap:4px; font-weight:900; font-size:24px; text-transform:uppercase; letter-spacing:-.02em; }
.site-logo__sub{ font-size:11px; font-weight:600; letter-spacing:.1em; align-self:flex-start; color:var(--text-muted); }

.primary-nav{ flex:1; display:flex; justify-content:center; }
.nav-menu{ display:flex; align-items:center; gap:38px; }
.nav-menu > .nav-item{ position:relative; }
.nav-menu > .nav-item > a{
	display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
	padding:10px 0; position:relative;
}
.nav-menu > .nav-item > a::after{
	content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--accent-gold);
	transition:right var(--speed-fast) var(--ease);
}
.nav-menu > .nav-item > a:hover::after,
.nav-menu > .nav-item.current-menu-item > a::after{ right:0; }
.nav-caret{ display:inline-flex; }
.nav-caret svg{ width:12px; height:12px; transition:transform var(--speed-fast) var(--ease); }
.menu-item-has-children:hover .nav-caret svg{ transform:rotate(180deg); }

.sub-menu{
	position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(8px);
	min-width:220px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
	padding:10px; opacity:0; visibility:hidden; pointer-events:none;
	transition:opacity var(--speed-fast) var(--ease), transform var(--speed-fast) var(--ease), visibility var(--speed-fast);
	box-shadow:0 20px 40px -12px rgba(0,0,0,.6);
}
.menu-item-has-children:hover > .sub-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.sub-menu .nav-item a{ display:block; padding:10px 14px; border-radius:var(--radius-sm); font-size:13px; }
.sub-menu .nav-item a:hover{ background:rgba(255,255,255,.06); color:var(--accent-gold); }

.site-header__actions{ display:flex; align-items:center; gap:6px; }
.cart-toggle{ position:relative; }
.cart-bubble{
	position:absolute; top:2px; right:2px; min-width:16px; height:16px; padding:0 3px; border-radius:999px;
	background:var(--accent-blue); color:var(--white); font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center;
	line-height:1;
}
.mobile-toggle{ display:none; }

/* ==========================================================================
   Search overlay
   ========================================================================== */
.search-overlay{
	position:fixed; inset:0; z-index:400; background:rgba(6,6,6,.97); backdrop-filter:blur(6px);
	display:flex; align-items:center; justify-content:center; flex-direction:column;
	opacity:0; visibility:hidden; transition:opacity var(--speed-med) var(--ease), visibility var(--speed-med);
}
.search-overlay.is-open{ opacity:1; visibility:visible; }
.search-overlay__close{ position:absolute; top:28px; right:28px; }
.search-overlay__form{ width:min(720px, 88vw); display:flex; align-items:center; gap:18px; border-bottom:2px solid var(--border-strong); padding-bottom:18px; }
.search-overlay__input{
	flex:1; background:transparent; border:none; color:var(--white); font-size:clamp(24px,4vw,42px); font-weight:700;
}
.search-overlay__input:focus{ outline:none; }
.search-overlay__form .icon-btn{ width:56px; height:56px; }
.search-overlay__form .icon-btn svg{ width:26px; height:26px; }

/* ==========================================================================
   Mobile drawer
   ========================================================================== */
.drawer-backdrop{
	position:fixed; inset:0; z-index:290; background:rgba(0,0,0,.6);
	opacity:0; visibility:hidden; transition:opacity var(--speed-med) var(--ease), visibility var(--speed-med);
}
.drawer-backdrop.is-open{ opacity:1; visibility:visible; }

.mobile-drawer{
	position:fixed; top:0; right:0; bottom:0; width:min(360px,86vw); z-index:300; background:var(--bg-alt);
	border-left:1px solid var(--border); padding:100px 28px 28px; overflow-y:auto;
	transform:translateX(100%); transition:transform var(--speed-med) var(--ease);
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-nav-menu > .nav-item{ border-bottom:1px solid var(--border); }
.mobile-nav-menu > .nav-item > a{ display:flex; justify-content:space-between; align-items:center; padding:16px 0; font-weight:700; text-transform:uppercase; font-size:14px; letter-spacing:.04em; }
.mobile-nav-menu .sub-menu{ position:static; opacity:1; visibility:visible; pointer-events:auto; transform:none; display:none; border:none; background:transparent; padding:0 0 12px 14px; box-shadow:none; }
.mobile-nav-menu .menu-item-has-children.is-open > .sub-menu{ display:block; }
.mobile-nav-menu .menu-item-has-children.is-open > a .nav-caret svg{ transform:rotate(180deg); }
.mobile-nav-menu .sub-menu a{ display:block; padding:8px 0; color:var(--text-muted); font-size:13px; }
.mobile-drawer__account{ margin-top:24px; }

/* ==========================================================================
   Mini cart drawer
   ========================================================================== */
.mini-cart{
	position:fixed; top:0; right:0; bottom:0; width:min(420px,92vw); z-index:310; background:var(--bg-alt);
	border-left:1px solid var(--border); display:flex; flex-direction:column;
	transform:translateX(100%); transition:transform var(--speed-med) var(--ease);
}
.mini-cart.is-open{ transform:translateX(0); }
.mini-cart__head{ display:flex; align-items:center; justify-content:space-between; padding:26px 26px 20px; border-bottom:1px solid var(--border); }
.mini-cart__head h3{ margin:0; text-transform:uppercase; font-size:18px; }
.mini-cart__body{ flex:1; overflow-y:auto; padding:20px 26px 26px; }

.woocommerce-mini-cart{ display:flex; flex-direction:column; gap:18px; }
.woocommerce-mini-cart-item{
	display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:flex-start; position:relative; padding-bottom:18px; border-bottom:1px solid var(--border);
}
.woocommerce-mini-cart-item img{ border-radius:var(--radius-sm); width:64px; height:64px; object-fit:cover; }
.woocommerce-mini-cart-item a:not(.remove){ font-size:14px; font-weight:600; display:block; margin-bottom:4px; }
.woocommerce-mini-cart-item .quantity{ font-size:12px; color:var(--text-muted); }
.woocommerce-mini-cart-item .remove{
	grid-row:1/3; justify-self:end; width:24px; height:24px; display:flex; align-items:center; justify-content:center;
	border-radius:50%; color:var(--text-faint); font-size:18px; line-height:1; transition:all var(--speed-fast) var(--ease);
}
.woocommerce-mini-cart-item .remove:hover{ background:var(--danger); color:var(--white); }
.woocommerce-mini-cart-item.is-removing{ opacity:0; transform:translateX(20px); }

.woocommerce-mini-cart__total{ display:flex; justify-content:space-between; font-weight:700; font-size:16px; padding-top:18px; margin-top:4px; }
.woocommerce-mini-cart__buttons{ display:flex; flex-direction:column; gap:12px; margin-top:18px; }
.woocommerce-mini-cart__buttons a{
	display:flex; align-items:center; justify-content:center; padding:15px; border-radius:var(--radius-sm);
	font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; transition:all var(--speed-fast) var(--ease);
}
.woocommerce-mini-cart__buttons a.wc-forward:first-child{ border:1px solid var(--border-strong); }
.woocommerce-mini-cart__buttons a.wc-forward:first-child:hover{ background:var(--white); color:var(--black); }
.woocommerce-mini-cart__buttons a.checkout{ background:var(--white); color:var(--black); }
.woocommerce-mini-cart__buttons a.checkout:hover{ background:var(--accent-gold); }
.woocommerce-mini-cart__empty-message{ text-align:center; padding-block:60px; color:var(--text-muted); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px){
	.primary-nav{ display:none; }
	.mobile-toggle{ display:inline-flex; }
	.hide-mobile{ display:none; }
	.page-header{ padding-top:110px; }
	.hero__inner{ padding-top:110px; }
}
