/*============================================================================ # Header ==============================================================================*/ /* Base Header Styling */ .shopify-section--header { position: sticky; top: 0; width: 100%; z-index: $z-index-below-overlay; will-change: transform; @include av-mq("lap-and-up") { position: relative; top: 0; } @keyframes slideDown { from { transform: translate(0, -150px); } to { transform: translate(0, 0); } } &.scrolled { position: fixed; top: 0; left: 0; width: 100%; animation: .5s ease-out forwards slideDown; border-bottom: 1px solid $color-header-border; } } .Header { background-color: $color-white; color: $color-navy-blue; box-shadow: none; @include av-mq("lap-and-up") { &__Item--center { margin-top: 15px; } &__Item--center { .scrolled & { margin-top: 0; } } } &__Wrapper { max-width: 1440px; margin: auto; padding: 10px 15px; display: flex; flex-direction: row; align-items: center; justify-content: space-between; transition: none; .scrolled & { max-height: 50px; align-items: center; } @include av-mq("tablet") { padding-left: 30px; padding-right: 30px; } @include av-mq("lap-and-up") { align-items: flex-start; height: 100vh; max-height: 120px; } @include av-mq("lap") { padding-left: 25px; padding-right: 25px; } @include av-mq("desk") { padding-left: 40px; padding-right: 40px; } } &__Item { display: flex; width: 33.3%; &:not(.Header__Item--center) { flex: 1 1 0%; white-space: nowrap; .Header--scrolled & { flex: 0 1 0%; } } &--left { justify-content: flex-start; height: 100%; } &--right { justify-content: flex-end; } &--center { flex: 1 1 0%; flex-direction: column; justify-content: center; } .Header--scrolled & { align-items: center; } } /* Logo */ &__LogoWrap, &__NavWrap { display: flex; justify-content: center; white-space: nowrap; width: 100%; } &__LogoWrap { @include av-mq("lap-and-up") { opacity: 1; .scrolled & { position: absolute; margin-top: -200px; opacity: 0; } } } &__Logo { position: relative; margin-bottom: 0; } &__LogoLink, &__LogoImage { display: block; } &__LogoImage { margin: 0 auto; } &__Logo--alt { position: absolute; margin-top: -999px; opacity: 0; .scrolled & { position: absolute; display: block; width: 156px; margin-top: 0; opacity: 1; z-index: 2; } } &__LogoImage { min-width: 139px; @include av-mq("tablet") { width: 174px; } @include av-mq("lap-and-up") { width: 208px; } } /* Navigation */ &__NavWrap { .Header:not(.Header--scrolled) & { margin-top: 16px; width: 100%; } } &__MainNav { .scrolled & { width: 100%; @include av-mq("lap-and-up") { padding: 0 13px; max-width: 782px; } .HorizontalList { display: flex; flex-direction: row; justify-content: space-between; } } .HorizontalList { margin: 0; .HorizontalList__Item { margin: 0px; &:not(:last-child) { .Header:not(.Header--scrolled) & { padding-right: 60px; } } } } } &__LinkSpacer { position: absolute; display: block; bottom: 0; color: transparent; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; &::after { position: absolute; content: ""; bottom: 0; left: 0; width: 100%; opacity: 0; transform: scale(0, 1); transform-origin: left center; border-bottom: 2px solid $header-heading-color; transition: transform 0.3s, opacity 0.3s; } } &:not(.Header--transparent) { .HorizontalList__Item.is-expanded .Header__LinkSpacer::after, .HorizontalList__Item.is-active .Header__LinkSpacer::after { opacity: 1; transform: scale(1, 1); } } /* Icons and Non-Nav Header Links */ &__Icons { display: flex; flex-direction: row; } &__Icons &__Icon + &__Icon { margin-left: 22px; .scrolled & { margin-left: 40px; } } &__Icon { display: flex; flex-direction: row; align-items: center; justify-content: center; .Icon { top: 0px; height: 22px; width: auto; max-width: 22px; } .Icon.Icon--bag { width: 22px; } .Icon--heart { stroke: $color-navy-blue; fill: $color-white; overflow: visible; } &--locator .Icon { height: 22px; display: none; .Header--scrolled & { display: inline-block; } } } &__Icon &__Link { @include av-mq("lap-and-up") { margin-left: 10px; } .scrolled & { display: none; } } &__Link { display: inline-block; text-transform: uppercase; color: $color-navy-blue; .Header__Item:not(.Header__Item--center) & { @include subhead-xs; } .Header__NavWrap & { @include p2; font-weight: 300; &.is-bold { font-family: $font-stack-medium; font-weight: 500; } } .is-expanded & { font-weight: bold; } .HorizontalList__Item:not(.is-expanded):not(.is-active) &{ .is-emphasized { color: $color-brand-blue; } } } &__CartDot { color: white; position: absolute; display: flex; flex-direction: column; justify-content: center; width: 22px; height: 19px; // this is the container for the number inside the bag icon; the area is a few pixels smaller than the actual icon to account for handles bottom: 0; left: 0; transition: all 0.3s ease-in-out; span { @include subhead-xs; display: block; text-align: center; letter-spacing: 0; } } &__StoreLocator { opacity: 1; visibility: visible; .scrolled & { opacity: 0; visibility: hidden; z-index: 1; } } }