body {
  padding-top: var(--offset-distance);
}

img.lazyload:not([src]) {
  visibility: hidden;
}

button svg {
  pointer-events: none;
}

header.header {
  height: 60px;
}

.header--locked {
  -webkit-transition: -webkit-transform 250ms ease-in-out;
  transition: -webkit-transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
}

.header--unlocked {
  position: fixed;
  top: 0;
}

.header--hidden {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

.header--transition {
  -webkit-transition: none;
  transition: none;
}

.header__logo {
  -webkit-transform: translate(0, 2px);
          transform: translate(0, 2px);
}

#age-gate-container {
  z-index: 2147483647; /* Maximum z-index */
}

#age-gate {
  height: 100vh;
}

.age-gate__loading p {
  display: inline;
}

.age-gate__loading::after {
  -webkit-animation: loading 1s infinite;
          animation: loading 1s infinite;
  content: ".";
}

@media screen and (min-width: 768px) {
  #age-gate {
    height: unset;
    width: 460px;
  }
}

@-webkit-keyframes loading {
  33% {
    content: "..";
  }

  66% {
    content: "...";
  }
}

@keyframes loading {
  33% {
    content: "..";
  }

  66% {
    content: "...";
  }
}

.nav {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition: -webkit-transform 250ms;
  transition: -webkit-transform 250ms;
  transition: transform 250ms;
  transition: transform 250ms, -webkit-transform 250ms;
  width: 280px;
}

.nav--opening {
  -webkit-transform: translateX(calc(var(--nav-left, 0)));
          transform: translateX(calc(var(--nav-left, 0)));
}

.nav--open {
  -webkit-transition-duration: unset;
          transition-duration: unset;
}

.nav__item {
  -webkit-box-align: center;
          align-items: center;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  padding: 8px 0;
  width: 100%;
}

.nav__item:hover,
.nav__item--selected {
  font-weight: 600;
}

.bag__items {
  min-height: 20px;
  min-width: 20px;
  pointer-events: none;
  right: -4px;
  -webkit-transition: opacity 250ms linear;
  transition: opacity 250ms linear;
}

.bag__items:empty {
  opacity: 0;
}

.global-search {
  pointer-events: none;
  top: var(--offset-distance);
  -webkit-transition: all 250ms linear;
  transition: all 250ms linear;
}

.global-search--open {
  opacity: 1;
  pointer-events: all;
  visibility: visible;
}

.global-search__result {
  -webkit-box-align: start;
          align-items: flex-start;
  border-bottom: solid 1px var(--color-tertiary);
  display: -webkit-box;
  display: flex;
  justify-items: left;
  padding: 12px 0;
}

/* TODO: Botanic-ize accordion mark-up and styles */

.Accordion-trigger svg {
  pointer-events: none;
  -webkit-transition: -webkit-transform 250ms ease-in-out;
  transition: -webkit-transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out;
  transition: transform 250ms ease-in-out, -webkit-transform 250ms ease-in-out;
}

.Accordion-trigger[aria-expanded="true"] svg {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}

.Accordion-trigger[disabled] svg {
  display: none;
}

#location-banner__container {
  -webkit-transition: opacity 150ms ease-in-out;
  transition: opacity 150ms ease-in-out;
}

#location-changer__container {
  -webkit-transform: translate(-100%);
          transform: translate(-100%);
  -webkit-transition: -webkit-transform 0.25s ease-in-out;
  transition: -webkit-transform 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
}

#location-changer.open #location-changer__container {
  -webkit-transform: translate(0);
          transform: translate(0);
}

#location-changer__geolocate.working svg {
  -webkit-animation: pulse 500ms alternate infinite;
          animation: pulse 500ms alternate infinite;
}

@-webkit-keyframes pulse {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes pulse {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

#location-results {
  height: calc(100vh - 270px);
  margin-right: -17px;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 17px;
}

@media screen and (min-width: 375px) {
  #location-changer__container {
    max-width: 280px;
  }
}

.overlay {
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
  -webkit-transition: opacity 250ms;
  transition: opacity 250ms;
}

.overlay--opening {
  opacity: 1;
}

.overlay--open {
  pointer-events: all;

  /* CMS defines its own overlay with default "hidden" visibility which was overriding cephalopod's
       and preventing users from closing the nav once open */
  visibility: visible;
}

:root {
  --spinner-offset: 187;
  --spinner-offset-50: 46.75;
  --spinner-duration: 1.4s;
}

#loading-spinner {
  background: rgba(0, 0, 0, 0.6);
}

.spinner {
  -webkit-animation: rotator var(--spinner-duration) linear infinite;
          animation: rotator var(--spinner-duration) linear infinite;
}

@-webkit-keyframes rotator {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg);
  }
}

@keyframes rotator {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg);
  }
}

.path {
  stroke: var(--color-yellow);
  stroke-dasharray: 187;
  stroke-dashoffset: 0;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-animation: dash var(--spinner-duration) ease-in-out infinite;
          animation: dash var(--spinner-duration) ease-in-out infinite;
}

@-webkit-keyframes dash {
  0% {
    stroke-dashoffset: var(--spinner-offset);
  }

  50% {
    stroke-dashoffset: var(--spinner-offset-50);
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg);
  }

  100% {
    stroke-dashoffset: var(--spinner-offset);
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg);
  }
}

@keyframes dash {
  0% {
    stroke-dashoffset: var(--spinner-offset);
  }

  50% {
    stroke-dashoffset: var(--spinner-offset-50);
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg);
  }

  100% {
    stroke-dashoffset: var(--spinner-offset);
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg);
  }
}

.promo-banner__wrapper {
  background-image: -webkit-gradient(
    linear,
    left top, right top,
    from(#76bc43),
    color-stop(50%, #76bc43),
    color-stop(50%, var(--color-white))
  );
  background-image: linear-gradient(
    to right,
    #76bc43,
    #76bc43 50%,
    var(--color-white) 50%
  );
  border-bottom: 1px solid #76bc43;
  line-height: 0;
  position: relative;
  z-index: 1; /* Some CMS article templates can hide the banner unless a z-index is set */
}

.promo-banner {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
}

.promo-banner picture,
.promo-banner source {
  line-height: 0;
}

.promo-banner img {
  max-width: 100%;
}

