.site-header { position: relative; z-index: 30; background: var(--color-white); border-bottom: 1px solid var(--color-border); }
.utility-bar { background: var(--color-ink); color: var(--color-on-dark); font-size: var(--fs-small); }
.utility-bar .container { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 40px; }
.utility-bar nav { display: flex; align-items: center; gap: var(--space-5); }
.utility-bar a { color: var(--color-white); text-decoration: none; padding-block: var(--space-2); }
.header-main { display: grid; grid-template-columns: 158px minmax(0, 1fr) minmax(180px, 280px) auto 44px; gap: var(--space-3); align-items: center; min-height: 84px; }
.header-public { grid-template-columns: 158px minmax(0, 1fr) auto auto; }
.brand { display: block; line-height: 1; }
.brand img { display: block; width: 158px; height: auto; }
.product-search { position: relative; min-width: 0; }
.product-search input { background: var(--color-soft); border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-12) var(--space-3) var(--space-3); width: 100%; min-height: 48px; font-size: var(--fs-small); }
.product-search button { position: absolute; right: 0; top: 0; width: 44px; height: 48px; border: 0; border-radius: var(--radius-sm); background: transparent; font-size: 28px; }
.account-link, .cart-link { display: flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 44px; color: var(--color-ink); text-decoration: none; font-size: var(--fs-small); white-space: nowrap; }
.account-link svg, .cart-link svg, .menu-toggle svg { fill: none; stroke: currentColor; stroke-width: 1.7; }
.header-cta .button { padding-inline: var(--button-padding-inline); font-size: var(--fs-small); min-height: var(--button-min-height); white-space: nowrap; }
.menu-toggle, .menu-close { display: none; width: 44px; height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-white); align-items: center; justify-content: center; }
@media (max-width: 1279px) { .desktop-nav { display: none; } .header-main { grid-template-columns: 158px minmax(120px, 1fr) auto 44px 44px; } .header-public { grid-template-columns: minmax(158px, 1fr) auto auto 44px; } .menu-toggle { display: flex; } }
@media (max-width: 767px) { .utility-bar { display: none; } .header-main { grid-template-columns: minmax(0, 1fr) 44px 44px 44px; gap: var(--space-2); min-height: 72px; } .header-public { grid-template-columns: minmax(0, 1fr) 44px 44px; } .brand img { width: 129px; } .desktop-search, .header-cta { display: none; } .account-link span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); } }

/* One in-flow sticky header; the promotional band remains outside it. */
.site-header { position:sticky;top:var(--albany-header-offset,0px);transition:transform 180ms ease-out; }
.site-header.header-hidden { transform:translateY(-100%);pointer-events:none; }
.site-header:focus-within { transform:none;pointer-events:auto; }
@media (prefers-reduced-motion:reduce) { .site-header { transition:none; } }

.utility-bar a { white-space:nowrap; }
@media (min-width:768px) and (max-width:1023px) { .utility-bar .container > span { display:none; } .utility-bar nav { margin-left:auto; } }

/* Mobile AI control shares the existing panel and navigation touch targets. */
.aaai-mobile-launcher { display:none; }
@media (max-width:767px) {
 .header-main:has(.aaai-mobile-launcher) { grid-template-columns:minmax(0,1fr) repeat(4,var(--touch-target-size)); }
 .header-public:has(.aaai-mobile-launcher) { grid-template-columns:minmax(0,1fr) repeat(3,var(--touch-target-size)); }
 .aaai-mobile-launcher { display:inline-flex; align-items:center; justify-content:center; width:var(--touch-target-size); height:var(--touch-target-size); min-height:var(--touch-target-size); padding:0; border:0; background:transparent; color:var(--color-ink); }
 .aaai-mobile-launcher svg { width:var(--space-5); height:var(--space-5); fill:none; stroke:currentColor; stroke-width:1.7; }
}
