/** Shopify CDN: Minification failed

Line 293:0 Comments in CSS use "/* ... */" instead of "//"
Line 745:0 Comments in CSS use "/* ... */" instead of "//"
Line 759:0 Comments in CSS use "/* ... */" instead of "//"
Line 813:0 Comments in CSS use "/* ... */" instead of "//"
Line 976:4 Comments in CSS use "/* ... */" instead of "//"
Line 1184:0 Comments in CSS use "/* ... */" instead of "//"
Line 1473:2 Comments in CSS use "/* ... */" instead of "//"
Line 1499:2 Comments in CSS use "/* ... */" instead of "//"
Line 1534:0 Comments in CSS use "/* ... */" instead of "//"
Line 1586:2 Comments in CSS use "/* ... */" instead of "//"
... and 247 more hidden warnings

**/
@charset "UTF-8";

/*

  Impulse, by Archetype Themes
  http://archetypethemes.co
*/

/*============================================================================
  #Sass Mixins
==============================================================================*/


/***********************************new ***************************************/
 
.logo-bar, .logo_bar_new{
  text-align: center;
  margin-bottom: -30px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.logo-bar__item {
  -ms-flex: 0 1 110px;
      flex: 0 1 110px;
  vertical-align: middle;
  margin: 0 15px 20px;
  @media only screen and (min-width: 769px) {
    -ms-flex: 0 1 160px;
        flex: 0 1 160px;
    margin: 0 20px 30px;
  }
}

.logo-bar__image {
  display: block;
  margin: 0 auto;
}

.logo-bar__link {
  display: block;
}
/**********************************new****************************************/




.clearfix {
  &:after {
    content: '';
    display: table;
    clear: both;
  }
}

@mixin clearfix() {
  &::after {
    content: '';
    display: table;
    clear: both;
  }
}

@mixin visuallyHidden {
  clip: rect(0 0 0 0);
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  position: absolute;
  height: 1px;
  width: 1px;
}

/*================ Media Query Mixin ================*/

@mixin media-query($media-query) {
  @each $breakpoint in $grid-breakpoints {
    $name: nth($breakpoint, 1);
    $declaration: nth($breakpoint, 2);

    @if $media-query == $name and $declaration {
      @media only screen and #{$declaration} {
        @content;
      }
    }
  }
}

/*================ Responsive Show/Hide Helper ================*/

@mixin responsive-display-helper($grid-breakpoint-type: '') {
  .#{$grid-breakpoint-type}show {
    display: block !important;
  }

  .#{$grid-breakpoint-type}hide {
    display: none !important;
  }
}

/*================ Responsive Text Alignment Helper ================*/

@mixin responsive-text-align-helper($grid-breakpoint-type: '') {
  .#{$grid-breakpoint-type}text-left {
    text-align: left !important;
  }

  .#{$grid-breakpoint-type}text-right {
    text-align: right !important;
  }

  .#{$grid-breakpoint-type}text-center {
    text-align: center !important;
  }
}

/*================ Animation related mixins ================*/

@mixin keyframes($name) {
  @keyframes #{$name} {
    @content;
  }
}

@function cart-animation-iteration($i: 1, $base: 0.1s) {
  $additional: 0.06 * $i;
  @if $i == 1 {
    $additional: 0;
  }
  @return $base + $additional;
}

/*================ Functions ================*/

@function calc($target, $context: 17px) {
  @if $target == 0 {
    @return 0;
  }
  @return $target / $context + 0em;
}

@function color-control($color, $opacity) {
  @if (lightness( $color ) > 40) {
    @return rgba(0,0,0,$opacity);
  }
  @else {
    @return rgba(255,255,255,$opacity);
  }
}

@function adaptive-color($color, $percentage) {
  @if (lightness( $color ) > 40) {
    @return darken($color, $percentage);
  }
  @else {
    @return lighten($color, $percentage);
  }
}

/*================ Font stack mixins ================*/

@mixin baseFontStack {
  font-size: 17px * 0.85;
  font-family: $type_base_stack;
  letter-spacing: 25em;
  line-height: 1.6;

  @media only screen and (min-width: 769px) {
    font-size: 17px;
  }
}

@mixin baseSmallFontStack {
  font-size: 17px * 0.85;
}

@mixin baseExtraSmallFontStack {
  font-size: 17px * 0.7;
}

@mixin headingTextCenter {
  @if ($type_header_text_center) {
    text-align: center;
  }
}

@mixin baseTextCenter {
  @if ($type_body_text_center) {
    text-align: center;
  }
}

@mixin headingFontStack {
  font-family: $type_header_stack;
  font-weight: $type_header_weight;
  letter-spacing: $type_header_spacing;
  line-height: $type_header_line_height;

  @if ($type_header_capitalize) {
    text-transform: uppercase;
  }
}

@mixin accentFontStack {
  text-transform: uppercase;
  letter-spacing: 0.2em;
}

@mixin accentFontSmallSize {
  font-size: 0.8em;
}

/*================ Animations and keyframes ================*/

@include keyframes(spin) {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@include keyframes(fadeIn) {
  0%, 35% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@include keyframes(heroContentIn) {
  0%, 35% {
    opacity: 0;
    transform: translateY(8px);
  }
  60% {
    opacity: 1;
  }
  100% {
    transform: translateY(0);
  }
}

/*================ Overlay ================*/

@mixin overlay($z-index: null) {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  @if ($z-index) {
    z-index: $z-index;
  }
}

@mixin heroScrim() {
  background-color: $colorImageOverlay;
  opacity: 10;
}

@mixin heroRadial() {
  @include overlay();
  background: radial-gradient(rgba(0,0,0,20) 0%, rgba(0,0,0,0) 60%);
  margin: -100px -200px -100px -200px;
}

// General size variables
 
/*============================================================================
  Grid Breakpoints and Class Names
    - Do not change breakpoint variable names
    - Medium breakpoint is also set in theme.js.liquid and inline
    throughout some templates. Be weary of changing unless you know what you're doing.
==============================================================================*/
 
 /*
$small: 'small';

$medium: 'medium';

$medium-down: 'medium-down';

$medium-up: 'medium-up';

$large: 'large';

$large-down: 'large-down';

$large-up: 'large-up';

$widescreen: 'widescreen';

$grid-breakpoint-has-widths: ($small, $medium-up, $widescreen);

$grid-breakpoint-has-utility: ($small, $medium-down, $medium-up, $widescreen);

$grid-breakpoint-has-push: ($medium-up, $widescreen);
 
 
 
$disabledBorder: darken($disabledGrey, 25%);

$colorModalBg: #d7d7d7;
 
$colorImageOverlay: #000;

 
$colorGridOverlay: #000;
 
$buttonStyle: ;

 


 

$type_header_family: ;

$type_header_fallback: ;

$type_header_stack: #{"'" + $type_header_family + "', " + $type_header_fallback};

$type_header_weight: ;

 

$type_header_line_height: 1.4;

$type_header_text_center: false;
 

$type_header_spacing: 0.025em;

$type_header_capitalize: false;
 

$type_base_family: ;

$type_base_fallback: ;

$type_base_stack: #{"'" + $type_base_family + "', " + $type_base_fallback}; 
  

$type_body_text_center: false;

  
opacity 0.3s cubic-bezier(.25,.46,.45,.94), height 0.3s cubic-bezier(.25,.46,.45,.94): opacity 0.3s cubic-bezier(.25,.46,.45,.94), height 0.3s cubic-bezier(.25,.46,.45,.94);

$collapsible-content-open-transition: transform 0.5s cubic-bezier(.25,.46,.45,.94);

$collapsible-content-close-transition: transform 0.3s cubic-bezier(.25,.46,.45,.94);

/*================ Global | Normalize ================*/

*, input, :before, :after {
  box-sizing: border-box;
}

html, body {
  padding: 0;
  margin: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
  display: block;
}

audio, canvas, progress, video {
  display: inline-block;
  vertical-align: baseline;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

.grid {
  @include clearfix();
  list-style: none;
  margin: 0;
  padding: 0;
  margin-left: -22px;

  @media only screen and (max-width: 768px) {
    margin-left: -17px;
  }
}

.grid--small {
  margin-left: -10px;

  .grid__item {
    padding-left: 10px;
  }
}

.grid__item {
  float: left;
  padding-left: 22px;
  width: 100%;
  min-height: 1px;

  @media only screen and (max-width: 768px) {
    padding-left: 17px;
  }

  &[class*="--push"] {
    position: relative;
  }
}

.grid--no-gutters {
  margin-left: 0;

  .grid__item {
    padding-left: 0;
  }
}

.grid--small-gutters {
  margin-left: -10px;
  margin-bottom: -10px;

  .grid__item {
    padding-left: 10px;
    padding-bottom: 10px;
  }
}

.grid--flush-bottom {
  margin-bottom: -22px;
  overflow: auto;

  > .grid__item {
    margin-bottom: 22px;
  }
}

.grid--center {
  text-align: center;

  .grid__item {
    float: none;
    display: inline-block;
    vertical-align: top;
    text-align: left;
  }
}

/*============================================================================
  Gutterless grids have all the properties of regular grids, minus any spacing.
==============================================================================*/

.grid--full {
  margin-left: 0;

  > .grid__item {
    padding-left: 0;
  }
}

@media only screen and (min-width: 769px) {
  .grid--table-large {
    display: table;
    width: 100%;
    table-layout: fixed;

    > .grid__item {
      display: table-cell;
      vertical-align: middle;
      float: none;
    }
  }
}

/*============================================================================
  Grid Columns
    - Create width classes, prepended by the breakpoint name.
==============================================================================*/

@mixin grid-column-generator($grid-breakpoint-type: '') {
  /* Whole */
  .#{$grid-breakpoint-type}one-whole { width: 100%; }

  /* Halves */
  .#{$grid-breakpoint-type}one-half { width: percentage(1 / 2); }

  /* Thirds */
  .#{$grid-breakpoint-type}one-third { width: percentage(1 / 3); }
  .#{$grid-breakpoint-type}two-thirds { width: percentage(2 / 3); }

  /* Quarters */
  .#{$grid-breakpoint-type}one-quarter { width: percentage(1 / 4); }
  .#{$grid-breakpoint-type}two-quarters { width: percentage(2 / 4); }
  .#{$grid-breakpoint-type}three-quarters { width: percentage(3 / 4); }

  /* Fifths */
  .#{$grid-breakpoint-type}one-fifth { width: percentage(1 / 5); }
  .#{$grid-breakpoint-type}two-fifths { width: percentage(2 / 5); }
  .#{$grid-breakpoint-type}three-fifths { width: percentage(3 / 5); }
  .#{$grid-breakpoint-type}four-fifths { width: percentage(4 / 5); }

  /* Sixths */
  .#{$grid-breakpoint-type}one-sixth { width: percentage(1 / 6); }
  .#{$grid-breakpoint-type}two-sixths { width: percentage(2 / 6); }
  .#{$grid-breakpoint-type}three-sixths { width: percentage(3 / 6); }
  .#{$grid-breakpoint-type}four-sixths { width: percentage(4 / 6); }
  .#{$grid-breakpoint-type}five-sixths { width: percentage(5 / 6); }

  /* Eighths */
  .#{$grid-breakpoint-type}one-eighth { width: percentage(1 / 8); }
  .#{$grid-breakpoint-type}two-eighths { width: percentage(2 / 8); }
  .#{$grid-breakpoint-type}three-eighths { width: percentage(3 / 8); }
  .#{$grid-breakpoint-type}four-eighths { width: percentage(4 / 8); }
  .#{$grid-breakpoint-type}five-eighths { width: percentage(5 / 8); }
  .#{$grid-breakpoint-type}six-eighths { width: percentage(6 / 8); }
  .#{$grid-breakpoint-type}seven-eighths { width: percentage(7 / 8); }

  /* Tenths */
  .#{$grid-breakpoint-type}one-tenth { width: percentage(1 / 10); }
  .#{$grid-breakpoint-type}two-tenths { width: percentage(2 / 10); }
  .#{$grid-breakpoint-type}three-tenths { width: percentage(3 / 10); }
  .#{$grid-breakpoint-type}four-tenths { width: percentage(4 / 10); }
  .#{$grid-breakpoint-type}five-tenths { width: percentage(5 / 10); }
  .#{$grid-breakpoint-type}six-tenths { width: percentage(6 / 10); }
  .#{$grid-breakpoint-type}seven-tenths { width: percentage(7 / 10); }
  .#{$grid-breakpoint-type}eight-tenths { width: percentage(8 / 10); }
  .#{$grid-breakpoint-type}nine-tenths { width: percentage(9 / 10); }

  /* Twelfths */
  .#{$grid-breakpoint-type}one-twelfth { width: percentage(1 / 12); }
  .#{$grid-breakpoint-type}two-twelfths { width: percentage(2 / 12); }
  .#{$grid-breakpoint-type}three-twelfths { width: percentage(3 / 12); }
  .#{$grid-breakpoint-type}four-twelfths { width: percentage(4 / 12); }
  .#{$grid-breakpoint-type}five-twelfths { width: percentage(5 / 12); }
  .#{$grid-breakpoint-type}six-twelfths { width: percentage(6 / 12); }
  .#{$grid-breakpoint-type}seven-twelfths { width: percentage(7 / 12); }
  .#{$grid-breakpoint-type}eight-twelfths { width: percentage(8 / 12); }
  .#{$grid-breakpoint-type}nine-twelfths { width: percentage(9 / 12); }
  .#{$grid-breakpoint-type}ten-twelfths { width: percentage(10 / 12); }
  .#{$grid-breakpoint-type}eleven-twelfths { width: percentage(11 / 12); }
}

/*================ Grid push classes ================*/

@mixin grid-push-generator($grid-breakpoint-type: '') {
  /* Halves */
  .#{$grid-breakpoint-type}push-one-half { left: percentage(1 / 2); }

  /* Thirds */
  .#{$grid-breakpoint-type}push-one-third { left: percentage(1 / 3); }
  .#{$grid-breakpoint-type}push-two-thirds { left: percentage(2 / 3); }

  /* Quarters */
  .#{$grid-breakpoint-type}push-one-quarter { left: percentage(1 / 4); }
  .#{$grid-breakpoint-type}push-two-quarters { left: percentage(2 / 4); }
  .#{$grid-breakpoint-type}push-three-quarters { left: percentage(3 / 4); }

  /* Fifths */
  .#{$grid-breakpoint-type}push-one-fifth { left: percentage(1 / 5); }
  .#{$grid-breakpoint-type}push-two-fifths { left: percentage(2 / 5); }
  .#{$grid-breakpoint-type}push-three-fifths { left: percentage(3 / 5); }
  .#{$grid-breakpoint-type}push-four-fifths { left: percentage(4 / 5); }

  /* Sixths */
  .#{$grid-breakpoint-type}push-one-sixth { left: percentage(1 / 6); }
  .#{$grid-breakpoint-type}push-two-sixths { left: percentage(2 / 6); }
  .#{$grid-breakpoint-type}push-three-sixths { left: percentage(3 / 6); }
  .#{$grid-breakpoint-type}push-four-sixths { left: percentage(4 / 6); }
  .#{$grid-breakpoint-type}push-five-sixths { left: percentage(5 / 6); }

  /* Eighths */
  .#{$grid-breakpoint-type}push-one-eighth { left: percentage(1 / 8); }
  .#{$grid-breakpoint-type}push-two-eighths { left: percentage(2 / 8); }
  .#{$grid-breakpoint-type}push-three-eighths { left: percentage(3 / 8); }
  .#{$grid-breakpoint-type}push-four-eighths { left: percentage(4 / 8); }
  .#{$grid-breakpoint-type}push-five-eighths { left: percentage(5 / 8); }
  .#{$grid-breakpoint-type}push-six-eighths { left: percentage(6 / 8); }
  .#{$grid-breakpoint-type}push-seven-eighths { left: percentage(7 / 8); }

  /* Tenths */
  .#{$grid-breakpoint-type}push-one-tenth { left: percentage(1 / 10); }
  .#{$grid-breakpoint-type}push-two-tenths { left: percentage(2 / 10); }
  .#{$grid-breakpoint-type}push-three-tenths { left: percentage(3 / 10); }
  .#{$grid-breakpoint-type}push-four-tenths { left: percentage(4 / 10); }
  .#{$grid-breakpoint-type}push-five-tenths { left: percentage(5 / 10); }
  .#{$grid-breakpoint-type}push-six-tenths { left: percentage(6 / 10); }
  .#{$grid-breakpoint-type}push-seven-tenths { left: percentage(7 / 10); }
  .#{$grid-breakpoint-type}push-eight-tenths { left: percentage(8 / 10); }
  .#{$grid-breakpoint-type}push-nine-tenths { left: percentage(9 / 10); }

  /* Twelfths */
  .#{$grid-breakpoint-type}push-one-twelfth { left: percentage(1 / 12); }
  .#{$grid-breakpoint-type}push-two-twelfths { left: percentage(2 / 12); }
  .#{$grid-breakpoint-type}push-three-twelfths { left: percentage(3 / 12); }
  .#{$grid-breakpoint-type}push-four-twelfths { left: percentage(4 / 12); }
  .#{$grid-breakpoint-type}push-five-twelfths { left: percentage(5 / 12); }
  .#{$grid-breakpoint-type}push-six-twelfths { left: percentage(6 / 12); }
  .#{$grid-breakpoint-type}push-seven-twelfths { left: percentage(7 / 12); }
  .#{$grid-breakpoint-type}push-eight-twelfths { left: percentage(8 / 12); }
  .#{$grid-breakpoint-type}push-nine-twelfths { left: percentage(9 / 12); }
  .#{$grid-breakpoint-type}push-ten-twelfths { left: percentage(10 / 12); }
  .#{$grid-breakpoint-type}push-eleven-twelfths { left: percentage(11 / 12); }
}

/*================ Clearfix helper on uniform grids ================*/

@mixin grid--uniform-clearfix($grid-breakpoint-type: '') {
  .grid--uniform {
    .#{$grid-breakpoint-type}one-half:nth-child(2n+1),
    .#{$grid-breakpoint-type}one-third:nth-child(3n+1),
    .#{$grid-breakpoint-type}one-quarter:nth-child(4n+1),
    .#{$grid-breakpoint-type}one-fifth:nth-child(5n+1),
    .#{$grid-breakpoint-type}one-sixth:nth-child(6n+1),
    .#{$grid-breakpoint-type}two-sixths:nth-child(3n+1),
    .#{$grid-breakpoint-type}three-sixths:nth-child(2n+1),
    .#{$grid-breakpoint-type}one-eighth:nth-child(8n+1),
    .#{$grid-breakpoint-type}two-eighths:nth-child(4n+1),
    .#{$grid-breakpoint-type}four-eighths:nth-child(2n+1),
    .#{$grid-breakpoint-type}five-tenths:nth-child(2n+1),
    .#{$grid-breakpoint-type}one-twelfth:nth-child(12n+1),
    .#{$grid-breakpoint-type}two-twelfths:nth-child(6n+1),
    .#{$grid-breakpoint-type}three-twelfths:nth-child(4n+1),
    .#{$grid-breakpoint-type}four-twelfths:nth-child(3n+1),
    .#{$grid-breakpoint-type}six-twelfths:nth-child(2n+1) { clear: both; }
  }
}

/*================ Build Base Grid Classes ================*/

@include grid-column-generator();

@include responsive-display-helper();

@include responsive-text-align-helper();

/*================ Build Responsive Grid Classes ================*/

@each $breakpoint in $grid-breakpoint-has-widths {
  @include media-query($breakpoint) {
    @include grid-column-generator('#{$breakpoint}--');
    @include grid--uniform-clearfix('#{$breakpoint}--');
  }
}

@each $breakpoint in $grid-breakpoint-has-utility {
  @include media-query($breakpoint) {
    @include responsive-display-helper('#{$breakpoint}--');
    @include responsive-text-align-helper('#{$breakpoint}--');
  }
}

/*================ Build Grid Push Classes ================*/

@each $breakpoint in $grid-breakpoint-has-push {
  @include media-query($breakpoint) {
    @include grid-push-generator('#{$breakpoint}--');
  }
}

.flex-grid {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;

  @if ($type_body_text_center) {
    -ms-flex-pack: center;
        justify-content: center;
  }
}

.flex-grid--center {
  -ms-flex-align: center;
      align-items: center;
}

.flex-grid--gutters {
  margin-top: -(15px);
  margin-left: -(15px);
}

.flex-grid__item {
  -ms-flex: 0 1 100%;
      flex: 0 1 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: stretch;
      align-items: stretch;

  .flex-grid--gutters & {
    padding-top: 15px;
    padding-left: 15px;
  }

  > * {
    -ms-flex: 1 1 100%;
        flex: 1 1 100%;
  }
}

.flex-grid__item--stretch {
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;

  &:first-child {
    min-width: 250px;
  }
}

// Flex grid sizing from theme settings

@media only screen and (min-width: 769px) {
  .flex-grid__item--33 {
    -ms-flex-preferred-size: 33.33%;
        flex-basis: 33.33%;
  }

  .flex-grid__item--50 {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
  }
}

// Reverse order or elements

.flex-grid__item--mobile-second {
  @media only screen and (max-width: 768px) {
    -ms-flex-order: 2;
        order: 2;
  }
}

/*================ Partials | Helper Classes ================*/

[tabindex='-1']:focus {
  outline: none;
}

html:not(.tab-outline) *:focus {
  outline: none;
}

.is-transitioning {
  display: block !important;
  visibility: visible !important;
}

.display-table {
  display: table;
  table-layout: fixed;
  width: 100%;
}

.display-table-cell {
  display: table-cell;
  vertical-align: middle;
  float: none;
}

@media only screen and (min-width: 769px) {
  .medium-up--display-table {
    display: table;
    table-layout: fixed;
    width: 100%;
  }

  .medium-up--display-table-cell {
    display: table-cell;
    vertical-align: middle;
    float: none;
  }
}

.visually-hidden {
  @include visuallyHidden();
}

// Keep dimensions but hide visually

.visually-invisible {
  opacity: 0;
}

/*============================================================================
  #OOCSS Media Object
    - http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
==============================================================================*/

.media,
.media-flex {
  overflow: hidden;
  _overflow: visible;
  zoom: 1;
}

.media-img {
  float: left;
  margin-right: 30px;
}

.media-img-right {
  float: right;
  margin-left: 30px;
}

.media-img img,
.media-img-right img {
  display: block;
}

/*============================================================================
  Skip to content button
    - Overrides .visually-hidden when focused
==============================================================================*/

.skip-link:focus {
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  color: #000;
  background-color: #fff;
  padding: 10px;
  opacity: 1;
  z-index: 10000;
  transition: none;
}

html {
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

html,
body {
  background-color: #fff;
  color: #000;
}

.page-width {
  max-width: 1500px;
  margin: 0 auto;
  width:100%;
}

.page-width,
.page-full {
  padding: 0 17px;

  @media only screen and (min-width: 769px) {
    padding: 0 40px;
  }
}

@media only screen and (max-width: 768px) {
  .page-width--flush-small {
    padding: 0;
  }
}

.page-content,
.shopify-policy__container {
  padding-top: 35px;
  padding-bottom: 35px;

  @media only screen and (min-width: 769px) {
    padding-top: 75px;
    padding-bottom: 75px;
  }
}

.page-content--top,
.page-content--with-blocks {
  padding-bottom: 0;
}

.page-content--bottom {
  padding-top: 0;
}

.main-content {
  display: block;
  min-height: 300px;
  @media only screen and (min-width: 769px) {
    min-height: 700px;
  }
}

hr {
  height: 1px;
  border: 0;
  border-top: 1px solid #e8e8e1;
}

.hr--small {
  @extend hr;
  margin: 15px auto;
}

.hr--medium {
  @extend hr;
  margin: 25px auto;

  @media only screen and (min-width: 769px) {
    margin: 35px auto;
  }
}

.hr--large {
  @extend hr;
  margin: (30px) auto;

  @media only screen and (min-width: 769px) {
    margin: (30px * 1.5) auto;
  }

  .page-blocks + &,
  .page-blocks + [data-section-type="recently-viewed"] & {
    margin-top: 0;
  }
}

.hr--clear {
  border: 0;
}

/*============================================================================
  Responsive tables, defined with .table--responsive on table element.
==============================================================================*/

.table--responsive {
  @media only screen and (max-width: 768px) {
    thead {
      display: none;
    }

    tr {
      display: block;
    }

    // IE9 table layout fixes
    tr,
    td {
      float: left;
      clear: both;
      width: 100%;
    }

    th,
    td {
      display: block;
      text-align: right;
      padding: 15px;
    }

    td:before {
      content: attr(data-label);
      float: left;
      font-size: 12px;
      padding-right: 10px;
    }
  }
}

@media only screen and (max-width: 768px) {
  .table--small-hide {
    display: none !important;
  }

  .table__section + .table__section {
    position: relative;
    margin-top: 10px;
    padding-top: 15px;

    &:after {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 15px;
      right: 15px;
      border-bottom: 1px solid #e8e8e1;
    }
  }
}

body,
input,
textarea,
button,
select {
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeSpeed;
}

body {
  font-weight: 400;
}

p {
  margin: 0 0 15px 0;

  img {
    margin: 0;
  }
}

em {
  font-style: italic;
}

b, strong {
  font-weight: bold;
}

small {
  font-size: 0.85em;
}

sup, sub {
  position: relative;
  font-size: 60%;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.5em;
}

blockquote,
.rte blockquote {
  margin: 0;
  padding: (15px) 30px 40px;

  p {
    margin-bottom: 0;

    & + cite {
      margin-top: 15px;
    }
  }

  cite {
    display: block;

    &:before {
      content: "\2014 \0020";
    }
  }
}

code, pre {
  background-color: #faf7f5;
  font-family: Consolas, monospace;
  font-size: 1em;
  border: 0 none;
  padding: 0 2px;
  color: #51ab62;
}

pre {
  overflow: auto;
  padding: 15px;
  margin: 0 0 30px;
}

/*================ Form elements ================*/

label:not(.variant__button-label),
.label {
  @include accentFontStack;
  @include accentFontSmallSize;
}

label {
  display: block;
  margin-bottom: 10px;
}

.label-info {
  display: block;
  margin-bottom: 10px;
}

/*============================================================================
  Headings
==============================================================================*/

h1, h2, h3, h4, h5, h6 {
  display: block;
  margin: 0 0 7.5px;

  @media only screen and (min-width: 769px) {
    margin: 0 0 15px;
  }

  a {
    text-decoration: none;
    font-weight: inherit;
  }
}

h1, h2, h3 {
      font-weight: 700;     letter-spacing: 0em;     line-height: 1;
}

h1 {
  font-size: calc(35px);
}

h2 {
  font-size: calc(35px * 0.86);
}

h3 {
  font-size: calc(35px * 0.7);
}

h4 {
  @include accentFontStack;
  @include accentFontSmallSize;
}

h5,
h6 {
  @include accentFontStack;
  @include accentFontSmallSize;
  margin-bottom: 5px;
}

.h1 { @extend h1; }

.h2 { @extend h2; }

.h3 { @extend h3; }

.h4 { @extend h4; }

.h5 { @extend h5; }

.h6 { @extend h6; }

// Standardize text spacing sometimes

.text-spacing,
.text-spacing.rte:last-child {
  margin-bottom: 15px;
}

/*================ Rich Text Editor Styles ================*/

.rte {
  table {
    @media only screen and (max-width: 768px) {

      td, th {
        padding: 6px 8px;
      }
    }
    .collapsible-content & {

      td, th {
        padding: 6px 8px;
      }
    }
  }
}

/*================ Blog Typography ================*/

.comment-author {
  margin-bottom: 0;
}

.comment-date {
  font-size: 14.45px;
  display: block;
  margin-top: 3px;

  @media only screen and (max-width: 768px) {
    margin-bottom: 15px
  }
}

/*================ Cart Typography ================*/

.ajaxcart__product-meta {
  font-size: 14.45px;
}

.ajaxcart__subtotal {
  @include accentFontStack;
  @include accentFontSmallSize;
  margin-bottom: 10px;
}

.ajaxcart__price {
  font-size: 14.45px;
  margin-bottom: 10px;
}

.ajaxcart__note {
  font-size: 14.45px;
  opacity: 0.8;
  margin-bottom: 0;
}

.ajaxcart__note--terms {
  margin-top: 10px;

  input {
    vertical-align: middle;
  }

  label {
    display: inline;
  }

  a {
    text-decoration: underline;
  }
}

/*================ Misc typography ================*/

.rte {
  .enlarge-text {
    margin: 0;
    font-size: 1.3em;

    p {
      &:last-child {
        margin-bottom: 0;
      }
    }
  }

  .enlarge-text--offset {
    p {
      @media only screen and (min-width: 769px) {
        padding-right: 15%;

        .text-center & {
          padding: 0 5%;
        }
      }
    }
  }
}

@media only screen and (min-width: 769px) {
  .table--small-text {
    font-size: 14.45px;
  }
}

.index-section--footer {
  h3 {
    font-size: 1.65em;
  }
}

/*================ Partials | Lists ================*/

ul, ol {
  margin: 0;
  padding: 0;
  text-rendering: optimizeLegibility;
}

ol ol {
  list-style: lower-alpha;
}

ol { list-style: decimal; }

ul ul, ul ol,
ol ol, ol ul { margin: 4px 0 5px 20px; }

li { margin-bottom: 0.25em; }

ul.square { list-style: square outside; }

ul.disc { list-style: disc outside; }

ol.alpha { list-style: lower-alpha outside; }

.no-bullets {
  list-style: none outside;
  margin-left: 0;
}

.inline-list {
  padding: 0;
  margin: 0;

  li {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
}

table {
  width: 100%;
  border-spacing: 1px;
  position: relative;
  border: 0 none;
  background: #e8e8e1;
}

.table-wrapper {
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

td,
th {
  border: 0 none;
  text-align: left;
  padding: 10px 15px;
  background: #fff;
}

th {
  font-weight: bold;
}

 

th,
.table__title {
  font-weight: bold;
}

/*================ Partials | Links ================*/

a,
.text-link {
  color: #000;
  text-decoration: none;
  background: transparent;

  &:hover {
    color: #000;
  }
}

/*================ Force an input/button to look like a text link ================*/

.text-link {
  display: inline;
  border: 0 none;
  background: none;
  padding: 0;
  margin: 0;
}

/*================ Links in RTE ================*/

.rte a,
.shopify-policy__container a {
  color: #000;
}

/*================ Partials | Buttons ================*/

button {
  overflow: visible;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

.btn,
.rte .btn,
.shopify-payment-button .shopify-payment-button__button--unbranded,
.product-reviews .spr-summary-actions a,
.product-reviews .spr-button {
  line-height: 1.42;
  text-decoration: none;
  text-align: center;
  white-space: normal;

  font-size: 17px - 4;
  font-weight: bold;
  @include accentFontStack;

  display: inline-block;
  padding: 11px 20px;
  margin: 0;
  width: auto;
  min-width: 90px;
  vertical-align: middle;
  cursor: pointer;
  border: 1px solid transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  color: #fff;
  background: #000;

  @media only screen and (max-width: 768px) {
    padding: 9px 17px;
    font-size: 17px - 6;
  }

  &:hover {
    color: #fff;
    background-color: #000;
  }

  &[disabled],
  &.disabled {
    cursor: default;
    color: darken($disabledBorder, 27%);
    background-color: #f6f6f6;

    &:hover {
      color: darken($disabledBorder, 27%);
      background-color: #f6f6f6;
    }
  }

  // Custom setting-based styles
  @if ($buttonStyle == 'angled') {
    position: relative;
    border: 0;
    margin: 0 10px;

    &:before,
    &:after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 20px;
      transform:skewX(-#{12}deg);
      background-color: inherit;
    }

    &:before {
      left: -6px;
    }

    &:after {
      right: -6px;
    }
  }

  // Hover effect on non-angled buttons. Must only have .btn class
  @if ($buttonStyle != 'angled') {
    &:not(.btn--secondary):not(.btn--tertiary):not(.btn--inverse) {
      position: relative;
      overflow: hidden;
      transition: background 0.2s ease 0s;

      &:after {
        content: '';
        position: absolute;
        top: 0;
        left: 150%;
        width: 200%;
        height: 100%;
        transform: skewX(-20deg);
        background-image: linear-gradient(to right,transparent, rgba(#fff, .25),transparent);
      }

      &:hover:after {
        animation: shine 0.75s cubic-bezier(0.01, 0.56, 1, 1);
      }

      &:hover {
        background: lighten(#000, 10%);
        transition-delay: 0.25s;
      }

      &:active {
        background: #000;
        transition-delay: 0s;
      }
    }
  }
}

// Mimic the .btn hover style for Shopify Payment Button

.shopify-payment-button .shopify-payment-button__button--unbranded:hover:not([disabled]) {
  color: #fff;
  background-color: #000;
}

.btn--secondary,
.rte .btn--secondary {
  color: #000;
  border: 1px solid #e8e8e1;
  background-color: transparent;

  @if ($buttonStyle == 'angled') {
    border-left: 0;
    border-right: 0;

    &:before,
    &:after {
      background-color: transparent;
      top: -1px;
      bottom: -1px;
    }

    &:before {
      border-left: 1px solid #e8e8e1;
      border-bottom: 1px solid #e8e8e1;
    }

    &:after {
      border-top: 1px solid #e8e8e1;
      border-right: 1px solid #e8e8e1;
    }
  }

  &:hover {
    color: #000;
    border-color: #e8e8e1;
    background-color: transparent;

    &:before {
      border-color: #e8e8e1;
    }

    &:after {
      border-color: #e8e8e1;
    }
  }
}

.btn--tertiary,
.rte .btn--tertiary {
  // Undo .btn styles
  font-weight: normal;
  text-transform: none;
  letter-spacing: initial;

  // New styles
  background-color: transparent;
  border: 1px solid #e8e8e1;
  color: #000;
  padding: 8px 10px;
  white-space: nowrap;

  &:hover {
    background-color: transparent;
    color: #000;
  }

  &[disabled],
  &.disabled {
    cursor: default;
    color: darken($disabledBorder, 27%);
    background-color: #f6f6f6;
  }

  @if ($buttonStyle == 'angled') {
    margin: 0;

    &:before,
    &:after {
      content: none;
    }
  }
}

// Force same colors as .btn

.btn--tertiary-active {
  color: #fff;
  background: #000;

  &:hover {
    color: #fff;
    background: #000;
  }
}

/*================ Button variations ================*/

.btn--small,
.collapsibles-wrapper .spr-summary-actions a,
.collapsibles-wrapper .spr-button {
  padding: 8px 14px;
  background-position: 150% 45%;
  min-width: 90px;
  font-size: 17px - 6;

  @if ($buttonStyle == 'angled') {
    margin: 0 10px;
  }

  @media only screen and (max-width: 768px) {
    padding: 6px 12px;
    font-size: 17px - 8;
  }
}

.btn--secondary.btn--small {
  font-weight: normal;
}

.btn--full {
  width: 100%;
  padding: 11px 20px;
  transition: none;
  padding: 13px 20px;

  @if ($buttonStyle == 'angled') {
    max-width: 94%;
  }
}

@if ($buttonStyle == 'angled') {
  .shopify-payment-button .shopify-payment-button__button--unbranded {
    max-width: 94%;
  }
}

.btn--inverse {
  background-color: transparent;
  color: #fff;
  border: 2px solid #fff;

  &:hover,
  &:focus {
    background-color: transparent;
  }

  @if ($buttonStyle == 'angled') {
    border-left: 0;
    border-right: 0;

    &:before,
    &:after {
      background-color: transparent;
      border-color: #fff;
      top: -2px;
      bottom: -2px;
    }

    &:before {
      border-left: 2px solid;
      border-bottom: 2px solid;
    }

    &:after {
      border-top: 2px solid;
      border-right: 2px solid;
    }
  }

  // Specific color when in a hero
  .hero__link & {
    color: #fff;
    border-color: #fff;

    @if ($buttonStyle == 'angled') {
      &:before {
        border-color: #fff;
      }

      &:after {
        border-color: #fff;
      }
    }
  }
}

/*================ Button loading indicator ================*/

.btn--loading {
  position: relative;
  text-indent: -9999px;

  background-color: darken(#000, 5%);
  color: darken(#000, 5%);

  &:hover,
  &:active {
    background-color: darken(#000, 5%);
    color: darken(#000, 5%);
  }

  &:before {
    content: '';
    display: block;
    width: 24px;
    height: 24px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -12px;
    margin-top: -12px;
    border-radius: 50%;
    border: 3px solid #fff;
    border-top-color: transparent;
    animation: spin 1s infinite linear;
  }

  @if ($buttonStyle == 'angled') {
    &:after {
      background-color: darken(#000, 5%);
    }

    &.btn--secondary:after {
      bottom: 1px;
    }
  }
}

/*================ Return button ================*/

.return-link {
  text-align: center;

  .icon {
    width: 20px;
    margin-right: 8px;
    margin-top: -2px;
  }
}

/*================ Collapsible trigger ================*/

.collapsible-trigger-btn, .category-text {
  text-align: left;
  text-align: center;
  @include accentFontStack;
  @include accentFontSmallSize;
  display: block;
  width: 100%;
  padding: (30px / 1.75) 0;

  @media only screen and (max-width: 768px) {
    padding: (15px) 0;
  }
}

.collapsible-trigger-btn--borders {
  border: 1px solid #e8e8e1;
  border-bottom: 0;
  padding: 10px;

  .collapsible-trigger__icon {
    right: 10px;
  }

  @media only screen and (min-width: 769px) {
    padding: 15px;

    .collapsible-trigger__icon {
      right: 15px;
    }
  }

  .collapsible-content + & {
    margin-top: -1px;
  }

  + .collapsible-content .collapsible-content__inner {
    @include baseExtraSmallFontStack;
    border: 1px solid #e8e8e1;
    border-top: 0;
    padding: 0 10px 10px;

    @media only screen and (min-width: 769px) {
      font-size: 14.45px;
    }
  }

  + .collapsible-content--expanded {
    margin-bottom: 30px;

    &:last-child {
      margin-bottom: -1px;
    }
  }
}

/*============================================================================
  Button styles when additional quick checkout buttons
  are enabled on product page
==============================================================================*/

.shopify-payment-button {
  margin-top: 10px;
}

.shopify-payment-button .shopify-payment-button__button--unbranded {
  display: block;
  width: 100%;
  transition: none;
}

.payment-buttons {
  .add-to-cart,
  .shopify-payment-button,
  .shopify-payment-button__button--unbranded {
    min-height: 50px;
  }
}

.shopify-payment-button__button--hidden {
  display: none !important;
}

/*================ Partials | Images, SVG, and iframes ================*/

img {
  border: 0 none;
}

svg:not(:root) {
  overflow: hidden;
}

img,
iframe {
  max-width: 100%;
}

img[data-sizes="auto"] {
  display: block;
  width: 100%;
}

.lazyload {
  opacity: 0;

  .no-js & {
    display: none;
  }
}

.lazyloaded {
  opacity: 1;
  transition: opacity 0.4s ease;
}

.video-wrapper {
  position: relative;
  overflow: hidden;
  max-width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  height: auto;

  iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

.video-wrapper--modal {
  width: 1000px;
}

/*================ Aspect ratio grid images ================*/

.grid__image-ratio {
  position: relative;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  background-color: #fff;

  @if (true) {
    opacity: 0;

    &.lazyloaded {
      opacity: 1;
      animation: fade-in 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      transition: none; // fixes safari animation conflict
    }
  }

  &:before {
    content: '';
    display: block;
    height: 0;
    width: 100%;
  }

  .placeholder-svg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
}

.grid__image-ratio--cover {
  background-size: cover;
}

.grid__image-ratio--wide:before {
  padding-bottom: 56.25%;
}

.grid__image-ratio--landscape:before {
  padding-bottom: 75%;
}

.grid__image-ratio--'square':before {
  padding-bottom: 100%;
}

.grid__image-ratio--portrait:before {
  padding-bottom: 150%;
}

/*================ Lazysizes object-fit ================*/

.image-fit {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-family: "object-fit: cover";
  z-index: 1;
}

/*================ Parallax styles ================*/

.parallax-container {
  position: absolute;
  top: -30%;
  left: 0;
  height: 160%;
  width: 100%;
}

.parallax-image {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

@media only screen and (min-width: 769px) {
  .parallax-image {
    background-attachment: fixed;

   .js-ipad & {
      background-attachment: initial;
    }
  }
}

/*================ Partials | Forms ================*/

form {
  margin: 0;
}

.form-vertical {
  text-align: center;
  margin-bottom: 15px;

  label {
    text-align: left;
  }
}

.inline {
  display: inline;
}

/*================ Prevent zoom on touch devices in active inputs ================*/

@include media-query($medium-down) {
  input,
  textarea,
  select {
    font-size: 16px !important;
  }
}

button,
input,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
}

button {
  background: none;
  border: none;
  display: inline-block;
  cursor: pointer;
}

fieldset {
  border: 1px solid #e8e8e1;
  padding: 15px;
}

legend {
  border: 0;
  padding: 0;
}

button,
input[type="submit"] {
  cursor: pointer;
}

input,
textarea,
select {
  border: 1px solid #e8e8e1;
  max-width: 100%;
  padding: 8px 10px;
  border-radius: 0;

  &[disabled],
  &.disabled {
    cursor: default;
    background-color: #f6f6f6;
    border-color: $disabledBorder;
  }

  &.input-full {
    width: 100%;
  }
}

textarea {
  min-height: 100px;
}

/*================ Input element overrides ================*/

input[type="checkbox"],
input[type="radio"] {
  margin: 0 10px 0 0;
  padding: 0;
  width: auto;
}

input[type="checkbox"] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
}

input[type="radio"] {
  -webkit-appearance: radio;
  -moz-appearance: radio;
}

input[type="image"] {
  padding-left: 0;
  padding-right: 0;
}

select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-position: right center;
  background: {
    image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select.svg);
    repeat: no-repeat;
    position: right 10px center;
    color: transparent;
    size: 11px;
  }
  padding-right: 28px;
  text-indent: 0.01px;
  text-overflow: '';
  cursor: pointer;
  color: inherit;
}

optgroup {
  font-weight: bold;
}

// Force option color (affects IE only)

option {
  color: #000;
  background-color: #fff;
}

select::-ms-expand {
  display: none;
}

/*================ Form labels ================*/

.hidden-label {
  @include visuallyHidden();
}

label[for] {
  cursor: pointer;
}

/*================ Vertical Form ================*/

.form-vertical {
  input,
  select,
  textarea {
    display: block;
    margin-bottom: 30px;
  }

  input[type="checkbox"],
  input[type="radio"],
  .btn {
    display: inline-block;
  }
}

small {
  display: block;
}

/*================ Error styles ================*/

input,
textarea {
  &.error {
    border-color: #d02e2e;
    background-color: #d02e2eBg;
    color: #d02e2e;
  }
}

label.error {
  color: #d02e2e;
}

/*================ Selector wrapper ================*/

.selector-wrapper {
  label {
    margin-right: 10px;
  }

  + .selector-wrapper {
    margin-top: 15px;
  }
}

/*================ Input Group ================*/

.input-group {
  display: -ms-flexbox;
  display: flex;

  .input-group-field:first-child,

  .input-group-btn:first-child,
  input[type="hidden"]:first-child + .input-group-field {
    border-radius: 0 0 0 0;
  }

  .input-group-field:last-child {
    border-radius: 0 0 0 0;
  }

  .input-group-btn:first-child,
  input[type="hidden"]:first-child + .input-group-btn {
    border-radius: 0 0 0 0;
  }

  .input-group-btn:last-child {
    border-radius: 0 0 0 0;
  }

  input {
    // Nasty Firefox hack for inputs http://davidwalsh.name/firefox-buttons
    &::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin-top: -1px;
      margin-bottom: -1px;
    }
  }
}

.input-group-field {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  margin: 0;
}

.input-group-btn {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  margin: 0;

  .icon {
    vertical-align: initial;
  }

  @if ($buttonStyle == 'angled') {
    position: relative;
    left: -8px;
  }
}

/*================ #Icons ================*/

.icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  vertical-align: middle;
  fill: currentColor;

  .no-svg & {
    display: none;
  }
}

.icon--full-color {
  fill: initial;
}

svg,
symbol {
  &.icon:not(.icon--full-color) {
    circle,
    ellipse,
    g,
    line,
    path,
    polygon,
    polyline,
    rect {
      fill: inherit;
      stroke: inherit;
    }
  }
}

/* Override the above for our stroke-only icons */

.icon-cart,
.icon-bag,
.icon-search,
.icon-close,
.icon-chevron-down,
.icon-email,
.icon-user,
.icon-hamburger,
.icon-filter {
  circle,
  ellipse,
  g,
  line,
  path,
  polygon,
  polyline,
  rect {
    fill: none !important;
    stroke-width: 1px;
    stroke: currentColor !important;
    stroke-linecap: miter;
    stroke-linejoin: miter;
  }
}
.link_tab, .mobile-nav__toggle{
  svg path{
    stroke-width: 3px;
    stroke: #000 !important;
  }
}
.menu_close_icon{
  svg{
    width:13px;
     path{ 
      stroke: #000 !important;
    }
  }  
}

.icon-cart circle {
  fill: currentColor !important;
}

.icon__fallback-text {
  @include visuallyHidden();
}

/*================ Payment Icons ================*/

.payment-icons {
  text-align: center;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: default;
  margin-bottom: 15px;

  @media only screen and (min-width: 769px) {
    margin-top: 30px;
    margin-bottom: 0;
  }

  li {
    cursor: default;
    margin: 0 4px 0;
  }

  .icon {
    width: 40px;
    height: 40px;
  }

  .icon__fallback-text {
    text-transform: capitalize;
  }
}

.js-drawer-open {
  overflow: hidden;
}

.drawer {
  display: none;
  position: fixed;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  top: 0;
  bottom: 0;
  padding: 0 15px 15px;
  max-width: 95%;
  z-index: $zindexDrawer;
  color: #000;
  background-color:#fff;
  box-shadow: 0 0 150px rgba(0,0,0,0.1);
  transition: transform 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);

  @media only screen and (min-width: 769px) {
    padding: 0 30px 30px;
  }

  a:not(.btn) {
    color: #000;

    &:hover {
      color: #000;
    }
  }

  input,
  textarea {
    border-color: #e8e8e1;
  }

  .btn {
    background-color: #111111;
    color: #fff;
  }
}

.drawer--left {
  width: 300px;
  left: -300px;

  &.drawer--is-open {
    display: block;
    transform: translateX(300px);
    transition-duration: 0.45s;
  }
}

.drawer--right {
  width: 300px;
  right: -300px;

  @media only screen and (min-width: 769px) {
    width: 400px;
    right: -400px;
  }

  &.drawer--is-open {
    display: block;
    transform: translateX(-300px);
    transition-duration: 0.45s;

    @media only screen and (min-width: 769px) {
      transform: translateX(-400px);
    }
  }
}

.js-drawer-open .main-content:after,
.js-drawer-closing .main-content:after {
  content: '';
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: $colorModalBg;
  opacity: 0;
  z-index: 26;
}

.js-drawer-open .main-content:after {
  animation: overlay-on 0.35s forwards;
}

.js-drawer-closing .main-content:after {
  animation: overlay-off 0.25s forwards;
}

/*================ Drawer header ================*/

.drawer__header {
  display: table;
  height: 70px;
  width: 100%;
  padding: (15px.6) 0;
  margin-bottom: 0;
  border-bottom: 1px solid #e8e8e1;

  @media only screen and (min-width: 769px) {
    height: 119px;
  }
}

.drawer__header--full {
  @media only screen and (min-width: 769px) {
    padding-left: 30px;
    padding-right: 30px;
  }
}

.drawer__fixed-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 70px;
  overflow: visible; // for close button hit area

  @media only screen and (min-width: 769px) {
    height: 119px;
  }
}

@media only screen and (min-width: 769px) {
  .drawer__fixed-header:not(.drawer__fixed-header--full) {
    left: 30px;
    right: 30px;
  }
}

.drawer__title,
.drawer__close {
  display: table-cell;
  vertical-align: middle;
}

.drawer__title {
  width: 100%;

  @media only screen and (max-width: 768px) {
    padding-left: 15px;
  }
}

.drawer__close {
  width: 1%;
  text-align: center;
}

// Button sits on right by default

.drawer__close-button {
  position: relative;
  height: 100%;
  padding: 0 15px;
  color: inherit;

  &:active {
    background-color: darken(#fff, 5%);
  }

  .icon {
    height: 28px;
    width: 28px;
  }

  @media only screen and (min-width: 769px) {
    right: -30px;
  }
}

// Rare use case left close button

.drawer__close--left {
  text-align: left;

  .drawer__close-button {
    right: auto;
    left: -30px;
  }
}

/*================ Drawer content ================*/

.drawer__inner {
  position: absolute;
  top: 70px;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 15px 15px 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;

  @media only screen and (min-width: 769px) {
    top: 119px;
    padding-left: 30px;
    padding-right: 30px;
  }

  .drawer--has-fixed-footer & {
    overflow: hidden;
    overflow-y: auto; // remove if uncommenting below media query
  }
}

// Drawer content with fixed footer

.drawer__inner--has-fixed-footer {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: (15px) (15px) 0;
  bottom: 130px; // overwritten with JS
  overflow: auto;
  -webkit-overflow-scrolling: touch;

  @media only screen and (min-width: 769px) {
    padding: (30px / 1.35) 30px 0;
  }

  // Allow whole drawer to be scrollable on short screens
  // typically when Android keyboard is open
  @media screen and (max-height: 400px) {
    position: static;
    padding: 0;
  }
}

/*================ Drawer footer ================*/

.drawer__footer {
  border-top: 1px solid #e8e8e1;
  padding-top: 15px;

  @media only screen and (min-width: 769px) {
    padding-top: 30px / 1.35;
  }
}

.drawer__footer--fixed {
  position: absolute;
  bottom: 0;
  left: 15px;
  right: 15px;
  min-height: 130px; // overwritten by JS
  padding-bottom: 30px;

  @media only screen and (max-width: 768px) {
    padding-bottom: 15px;
  }

  @media only screen and (min-width: 769px) {
    left: 30px;
    right: 30px;
  }

  // Allow whole drawer to be scrollable on short screens
  // typically when Android keyboard is open
  @media screen and (max-height: 400px) {
    position: static;
  }
}

/*================ Cart-specific styles ================*/

.drawer__cart.is-loading {
  min-height: 100px;

  .cart {
    transition: opacity 0.3s ease 0.7s;
    opacity: 0.4;
  }
}

#CartSpecialInstructions {
  margin-top: 10px;
  margin-bottom: 10px;
  min-height: 60px;
  height: 60px;
  @media only screen and (min-width: 769px) {
    min-height: 80px;
    height: 80px;
  }
}

/*================ Partials | Ajax Cart ================*/

.ajaxcart__row {
  > .grid {
    margin-left: -15px;

    > .grid__item {
      padding-left: 15px;
    }
  }
}

.ajaxcart__product {
  position: relative;
  max-height: 500px;

  &.is-removed {
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    transition: all 450ms cubic-bezier(0.57,.06,.05,.95);
  }
}

.ajaxcart__row {
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px solid #e8e8e1;

  @media only screen and (min-width: 769px) {
    padding-bottom: (30px / 1.35);
    margin-bottom: (30px / 1.35);
  }
}

.ajaxcart__product:last-child .ajaxcart__row {
  border-bottom: 0 none;
  padding-bottom: 0;
}

.ajaxcart__product-image {
  display: block;
  overflow: hidden;
  padding-top: 3px;

  img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
  }
}

.ajaxcart__product-name,
.ajaxcart__product-meta {
  display: block;
}

.ajaxcart__product-name--wrapper {
  margin-bottom: 11px;
}

.ajaxcart__product-name + .ajaxcart__product-meta {
  padding-top: 8px;
}

.ajaxcart__discount {
  padding-top: 3px;
}

/*================ Partials | Blank States ================*/

$color-blankstate: #999;

$color-blankstate-background: #e1e1e1;

.placeholder-svg {
  fill: $color-blankstate;
  background-color: $color-blankstate-background;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  display: block;
  padding: 30px 0;
}

.placeholder-noblocks {
  padding: 40px;
  text-align: center;
}

/*================ Animations ================*/

// Utilities

.animation-cropper {
  overflow: hidden;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

@for $i from 1 to 20 {
  .animation-delay-#{$i} {
    animation-delay: cart-animation-iteration($i, 0s) !important;
  }
}

// Page transitions

@if (false) {
  $page_transition_duration: 0.5;
  $page_transition_duration_out: 0.3;

  @if (page-slow-fade == 'page-slow-fade') {
    $page_transition_duration: 1.2;
    $page_transition_duration_out: 0.5;
  }

  @if (page-slow-fade == 'page-slide-reveal-across' or page-slow-fade == 'page-slide-reveal-down') {
    .transition-body:before {
      content: '';
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: #fff;
      z-index: 10;
      will-change: transform;
    }

    .loaded .transition-body:before {
      animation: page-slow-fade #{$page_transition_duration}s ease forwards;
    }

    .unloading .transition-body:before {
      animation: #{page-slow-fade}-out #{$page_transition_duration_out}s ease forwards;
    }
  } @else {
    .transition-body {
      opacity: 0;

      .no-js & {
        opacity: 1;
      }
    }

    .loaded .transition-body {
      animation: page-slow-fade #{$page_transition_duration}s ease forwards;
    }

    .unloading .transition-body {
      animation: #{page-slow-fade}-out #{$page_transition_duration_out}s ease forwards;
    }
  }

  @keyframes page-fade-in-up {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes page-fade-in-up-out {
    0% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }

  @keyframes page-slow-fade {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes page-slow-fade-out {
    0% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }

  @keyframes page-slide-reveal-across {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(100vw);
    }
  }
  @keyframes page-slide-reveal-across-out {
    0% {
      transform: translateX(-100vw);
    }
    100% {
      transform: translateX(0);
    }
  }

  @keyframes page-slide-reveal-down {
    0% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(110vh);
    }
  }
  @keyframes page-slide-reveal-down-out {
    0% {
      transform: translateY(110vh);
    }
    100% {
      transform: translateY(0);
    }
  }
}

// Global image animations

.image-wrap {
  background: #fff;
  overflow: hidden;
}

.image-wrap img:not([role="presentation"]) {
  display: block;

  .no-js &.lazyload {
    display: none;
  }
}

@if (true) {
  .image-wrap {
    img:not([role="presentation"]),
    svg,
    .animate-me {
      opacity: 0;

      .no-js & {
        opacity: 1;
      }
    }
  }

  .aos-animate .image-wrap {
    .lazyloaded:not([role="presentation"]),
    svg,
    .animate-me {
      animation: fade-in 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
    }
  }

  .image-wrap img {
    [data-aos="row-of-3"].aos-animate:nth-child(3n+2) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-3"].aos-animate:nth-child(3n+3) & {
      animation-delay: 300ms;
    }

    [data-aos="row-of-4"].aos-animate:nth-child(4n+2) & {
      animation-delay: 120ms;
    }
    [data-aos="row-of-4"].aos-animate:nth-child(4n+3) & {
      animation-delay: 240ms;
    }
    [data-aos="row-of-4"].aos-animate:nth-child(4n+4) & {
      animation-delay: 360ms;
    }

    [data-aos="row-of-5"].aos-animate:nth-child(5n+2) & {
      animation-delay: 75ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+3) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+4) & {
      animation-delay: 225ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+5) & {
      animation-delay: 300ms;
    }

    [data-aos="row-of-6"].aos-animate:nth-child(6n+2) & {
      animation-delay: 50ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+3) & {
      animation-delay: 100ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+4) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+5) & {
      animation-delay: 200ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+6) & {
      animation-delay: 250ms;
    }
  }

  /* @cshold for the life of me I can't get these delays to target the right css */
  .collection-image {
    [data-aos="row-of-3"].aos-animate:nth-child(3n+2) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-3"].aos-animate:nth-child(3n+3) & {
      animation-delay: 300ms;
    }

    [data-aos="row-of-4"].aos-animate:nth-child(4n+2) & {
      animation-delay: 120ms;
    }
    [data-aos="row-of-4"].aos-animate:nth-child(4n+3) & {
      animation-delay: 240ms;
    }
    [data-aos="row-of-4"].aos-animate:nth-child(4n+4) & {
      animation-delay: 360ms;
    }

    [data-aos="row-of-5"].aos-animate:nth-child(5n+2) & {
      animation-delay: 75ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+3) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+4) & {
      animation-delay: 225ms;
    }
    [data-aos="row-of-5"].aos-animate:nth-child(5n+5) & {
      animation-delay: 300ms;
    }

    [data-aos="row-of-6"].aos-animate:nth-child(6n+2) & {
      animation-delay: 50ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+3) & {
      animation-delay: 100ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+4) & {
      animation-delay: 150ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+5) & {
      animation-delay: 200ms;
    }
    [data-aos="row-of-6"].aos-animate:nth-child(6n+6) & {
      animation-delay: 250ms;
    }
  }

  // Instagram section
  .instagram-feed-wrap .grid__item {
    opacity: 0;
  }

  .instagram-feed-wrap.aos-animate .grid__item {
    animation: fade-in 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
  }

  @media only screen and (min-width: 769px) {
    .instagram-feed-wrap.aos-animate .grid__item {
      // First and last column
      &:nth-child(6n+1),
      &:nth-child(6n+6) {
        animation-delay: 300ms;
      }

      &:nth-child(6n+2),
      &:nth-child(6n+5) {
        animation-delay: 150ms;
      }
    }
  }
}

// Overlay animations (modals, panels)

@keyframes overlay-on {
  from { opacity: 0; }
  to { opacity: 0.6; }
}

@keyframes overlay-off {
  from { opacity: 0.6; }
  to { opacity: 0; }
}

@keyframes full-overlay-on {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes full-overlay-off {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes modal-open {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes modal-closing {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.9);
  }
}

// Text animations

@keyframes rise-up {
  from {
    opacity: 1;
    transform: translateY(120%);
  }
  to {
    opacity: 1;
    transform: translateY(0%);
  }
}

@keyframes rise-up-out {
  from {
    opacity: 1;
    transform: translateY(0%);
  }
  to {
    opacity: 1;
    transform: translateY(-120%);
  }
}

@keyframes paint-across {
  from {
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
  }
  to {
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  }
}

@keyframes paint-across-small {
  from {
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
  }
  to {
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  }
}

@keyframes paint-across-out {
  from {
    opacity: 1;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  }
  to {
    opacity: 1;
    -webkit-clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fade-in-small {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fade-in-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

// Utility

@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

// Background image animations

@keyframes zoom-fade {
  from {
    opacity: 0;
    transform: scale(1.3,1.3);
  }
  to {
    opacity: 1;
    transform: scale(1,1);
  }
}

@keyframes zoom-fade-password {
  0% {
    opacity: 0;
    transform: scale(1.4,1.4);
  }
  5% {
    opacity: 1;
    transform: scale(1,1);
  }
  100% {
    opacity: 1;
    transform: scale(1.2,1.2);
  }
}

@keyframes zoom-fade-small {
  0% {
    opacity: 0;
    transform: scale(1.1,1.1);
  }
  10% {
    opacity: 1;
    transform: scale(1,1);
  }
  12% {
    opacity: 1;
    transform: scale(1,1);
  }
  100% {
    opacity: 1;
    transform: scale(1.03,1.03);
  }
}

@keyframes kenburns {
  0% {
    opacity: 0;
    transform: scale(1.8);
    animation-timing-function: cubic-bezier(0.12, 0.63, 0.6, 0.74);
  }
  10% {
    opacity: 1;
    transform: scale(1.6);
    animation-timing-function: linear;
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes kenburns-out {
  0% {
    opacity: 1;
    transform: scale(1);
    animation-timing-function: ease-out;
  }
  100% {
    opacity: 0;
    transform: scale(1.2);
  }
}

// Loading animations

@keyframes loading {
  0% {    width: 0px;   }
  60% {   width: 100px; margin-left: -50px; }
  100% {  margin-left: 50px;  width: 0px; }
}

.loading:after,
.loading:before {
  content: '';
  position: absolute;
  width: 100px;
  height: 5px;
  background: color-control(#000, 1);
  left: 50%;
  top: 50%;
  margin: -3px 0 0 -50px;
  z-index: 4;
  opacity: 0;

  .no-js & {
    display: none;
  }
}

.loading:before {
  background: color-control(#000, 0.15);
  animation: fade-in 0.5s forwards 0s;
}

.loading:after {
  animation: preloading 0.5s ease 0.3s infinite;
}

.loading--delayed:before {
  animation-delay: 0.8s !important;
  animation-duration: 1s !important;
}

.loading--delayed:after {
  animation-delay: 1.3s !important;
}

@keyframes preloading {
  0% {   width: 0px; opacity: 0; }
  60% {  width: 100px; margin-left: -50px; opacity: 1; }
  100% {  margin-left: 50px;  width: 0px; opacity: 1; }
}

@keyframes slideshowBars {
  from { width: 0%; }
  to { width: 100%; }
}

// Ajax load products

@keyframes grid-product__loading {
  0% { opacity: 0; }
  60% { opacity: 0.2; }
  100% { opacity: 0; }
}

// Button animations

@keyframes shine {
  100% {
    left: -200%;
  }
}

// Delay animations, used in drawers

.appear-animation {
  opacity: 0;
  transform: translateY(60px);
}

@for $i from 1 to 20 {
  .appear-delay-#{$i} {
    transition: transform 0.85s cubic-bezier(0.165, 0.84, 0.44, 1) cart-animation-iteration($i, 0.075s),
                opacity 0.85s cubic-bezier(0.165, 0.84, 0.44, 1) cart-animation-iteration($i, 0.15s);
  }
}

.js-drawer-open .appear-animation {
  opacity: 1;
  transform: translateY(0px);
}

.js-drawer-closing .appear-animation {
  transition-duration: 0s;
  transition-delay: 0.5s;
}

// General review styles

.spr-badge-starrating,
.spr-starrating,
.spr-starratings,
.spr-icon-star-empty,
.spr-icon-star-hover,
.spr-icon-star-hover:hover {
  color: #f3c200;
}

// Star size on product page

.product-single__meta .spr-icon {
  font-size: 14px !important;
  vertical-align: text-bottom;
}

// Match H3 styles

.spr-header-title {
      font-weight: 700;     letter-spacing: 0em;     line-height: 1;
  font-size: calc(35px * 0.7) !important;
}

.spr-container.spr-container {
  padding: 0;
  border: 0;

  @if ($type_header_text_center) {
    text-align: center;
  }
}

.product-reviews {
  #shopify-product-reviews {
    margin: 0;
  }

  .spr-summary-actions-newreview {
    float: none;
  }

  .spr-review-content-body,
  .spr-form-label {
    font-size: 17px;
    line-height: 1.563;
  }

  .spr-review-header-byline {
    font-size: 11px;
    opacity: 1;

    strong {
      font-weight: normal;
    }
  }

  .spr-form-label {
    display: block;
    text-align: left;
  }

  .spr-summary-caption,
  .spr-summary-actions {
    display: block;
  }

  .spr-summary-actions {
    margin-top: 10px;
  }
}

// Review styles in full width section

.product-reviews--full {
  @media only screen and (min-width: 769px) {
    .spr-reviews {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;

      @if ($type_header_text_center) {
        -ms-flex-pack: center;
            justify-content: center;
      }
    }

    .spr-review:first-child {
      margin-top: 0;
    }

    .spr-review {
      -ms-flex: 1 1 40%;
          flex: 1 1 40%;
      padding: 20px;
      border: 1px solid #e8e8e1;
      margin-left: 22px;
      margin-bottom: 22px;

      @if ($type_header_text_center) {
        max-width: 50%;
      }

      &:nth-child(2n+1) {
        margin-left: 0;
      }

      &:last-child {
        padding-bottom: 20px;
      }
    }
  }
}

// Review styles in product grid

.grid-product {
  .spr-badge[data-rating="0.0"] {
    display: none;
  }

  .spr-badge-starrating {
    font-size: calc(11px);
    @media only screen and (min-width: 769px) {
      font-size: calc(12px);
    }
  }

  .spr-icon {
    margin-right: 1px;
  }

  .spr-badge-caption {
    font-size: calc(11px);
    @media only screen and (min-width: 769px) {
      font-size: calc(12px);
    }
    margin-left: 4px;
  }
}

// Review styles in expandable tab

.product-reviews--tab {
  .collapsible-trigger {
    .spr-badge-caption {
      margin-left: 0;
    }

    .spr-badge-starrating {
      font-size: calc(13px);
      margin-right: 10px;
      @media only screen and (min-width: 769px) {
        font-size: calc(14px);
      }
    }

    .spr-badge[data-rating="0.0"] {
      .spr-starrating {
        display: none;
      }
    }
  }

  .spr-icon {
    margin-right: 1px;
  }

  .spr-badge-caption {
    margin-left: 4px;
  }

  .spr-header-title,
  .spr-summary-starrating,
  .spr-summary-caption {
    display: none !important;
  }

  .spr-summary-actions a,
  .spr-button {
    margin-top: 0 !important;
  }

  .spr-button-primary {
    float: none;
  }

  @media only screen and (max-width: 480px) {
    .spr-summary {
      text-align: left;
    }
  }

  // Form
  .spr-form-title {
    display: none;
  }

  .spr-form-label {
    font-size: 13px !important;
  }

  // Review
  .spr-review-header .spr-starratings {
    font-size: 14px;
  }
}

.spr-content .spr-review-header-title {
  font-size: 17px;
  font-weight: bold;
}

.spr-pagination {
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;
}

/*================ Module-specific styles ================*/

/*================ Module | Footer promotions ================*/

.footer-promotions {
  text-align: center;
}

/*================ Module | Footer ================*/

.site-footer {
  padding-bottom: 30px;
  background-color: #000;
  color: #000000;

  @media only screen and (min-width: 769px) {
    padding-top: 30px * 2;
    padding-bottom: 30px * 2;
  }

  @if (#000 == #fff) {
    border-top: 1px solid #e8e8e1;
  }

  .footer__collapsible {
    font-size: 14.45px;
  }

  @media only screen and (min-width: 769px) {
    textarea,
    select,
    input {
      font-size: 14.45px;
    }
  }

  @media only screen and (max-width: 768px) {
    text-align: center;
    overflow: hidden;
    padding-bottom: 0;

    .grid__item {
      padding-bottom: 5px;

      &:after {
        content: '';
        border-bottom: 1px solid #000000;
        opacity: 0.12;
        display: block;
      }

      &:first-child {
        padding-top: calc(30px / 4);
      }

      &:last-child:after {
        display: none;
      }
    }
  }

  a {
    color: #000000;
  }
} 

.footer__small-text {
  @include baseExtraSmallFontStack;
  padding: calc(30px / 4) 0;
  margin: 0;
  text-align: center;

  ul + & {
    padding-top: 15px;
  }
}

.footer__clear {
  clear: both;
  height: 30px;
}

@media only screen and (min-width: 769px) {
  .footer__item-padding {
    padding-right: 30px * 2;
  }
}

.footer__title {
  color: #000000;

  @media only screen and (min-width: 769px) {
    margin-bottom: 20px;
  }

  @media only screen and (max-width: 768px) {
    text-align: center;
  }
}

/*================ Footer menus ================*/

.site-footer__linklist {
  margin: 0;

  a {
    display: inline-block;
    padding: 4px 0;
  }
}

/*================ Footer newsletter ================*/

.footer__newsletter {
  position: relative;
  display: inline-block;
  max-width: 300px;
  width: 100%;
}

.footer__newsletter-input {
  padding: 10px 45px 10px 0;
  background-color: #000;
  color: #000000;
  max-width: 300px;
  width: 100%;
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid #000000;

  &:focus {
    border: 0;
    border-bottom: 2px solid #000000;
  }

  &::-webkit-input-placeholder {
    color: #000000;
    opacity: 1;
  }

  &:-moz-placeholder {
    color: #000000;
    opacity: 1;
  }

  &::-moz-placeholder {
    color: #000000;
    opacity: 1;
  }

  &:-ms-input-placeholder {
    color: #000000;
    opacity: 1;
  }

  &::-ms-input-placeholder {
    color: #000000;
    opacity: 1;
  }
}

.footer__newsletter-input--active {
  padding-right: 80px;
}

.footer__newsletter-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  color: #000000;
  padding: 0;

  .icon {
    width: 26px;
    height: 24px;
  }

  .footer__newsletter-input--active + & {
    .icon {
      display: none;
    }

    .footer__newsletter-btn-label {
      display: block;
    }
  }
}

.footer__newsletter-btn-label {
  display: none;
  font-size: 14.45px;
}

// Logo

.footer__logo {
  margin: (15px) 0;

  @media only screen and (min-width: 769px) {
    margin: 0 0 (30px / 1.5);
  }

  a {
    display: block;
  }

  img {
    display: inline-block;
    transform: translateZ(0);
    max-height: 100%;
  }
}

// Social icons

.footer__social {
  margin: 0;

  form + & {
    margin-top: 30px;
  }

  li {
    display: inline-block;
    margin: 0 15px 15px 0;
  }

  a {
    display: block;
  }

  .icon {
    width: 22px;
    height: 22px;

    @media only screen and (min-width: 769px) {
      width: 24px;
      height: 24px;
    }

    &.icon--wide {
      width: 40px;
    }
  }
}

// Collapsible buttons

.footer__collapsible {
  @media only screen and (max-width: 768px) {
    padding: 0 0 15px 0;
  }
}

.footer_collapsible--disabled {
  @media only screen and (max-width: 768px) {
    padding-top: 15px;
  }
}

@if (true) {
  .collapsible-content__inner p {
    a:after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0%;
      border-bottom: 2px solid rgba(#000000,1);
      transition: width 0.5s ease;
    }
    a {
      position: relative;
      text-decoration: none;
      border-bottom: 2px solid rgba(#000000,0.1);
      &:hover:after,
      &:focus:after {
        width: 100%;
      }
    }
  }
}

/*================ Module | Notes and Form Feedback ================*/

.note,
.errors {
  border-radius: 0;
  padding: 6px 12px;
  margin-bottom: 15px;
  border: 1px solid transparent;
  text-align: left;

  ul,
  ol {
    margin-top: 0;
    margin-bottom: 0;
  }

  li:last-child {
    margin-bottom: 0;
  }

  p {
    margin-bottom: 0;
  }
}

.note {
  border-color: #e8e8e1;
}

.errors {
  ul {
    list-style: disc outside;
    margin-left: 20px;
  }
}

.note--success {
  color: #56ad6a;
  background-color: #56ad6aBg;
  border-color: #56ad6a;

  a {
    color: #56ad6a;
    text-decoration: underline;

    &:hover {
      text-decoration: none;
    }
  }
}

.form-error,
.errors {
  color: #d02e2e;
  background-color: #d02e2eBg;
  border-color: #d02e2e;

  a {
    color: #d02e2e;
    text-decoration: underline;

    &:hover {
      text-decoration: none;
    }
  }
}

/*================ Module | Pagination ================*/

.pagination {
  margin: 0;
  padding: (30px * 2) 0;
  text-align: center;

  > span {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
  }

  a {
    display: inline-block;
  }

  a,
  .page.current {
    padding: 8px 12px;
  }

  .page.current {
    opacity: 0.3;
  }

  .next,
  .prev {
    color: #fff;
    background: #000;
    width: 43px;
    margin: 0 10px;

    @media only screen and (max-width: 768px) {
      width: 35px;
    }

    a {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-align: center;
          align-items: center;
      -ms-flex-pack: center;
          justify-content: center;
      padding: 15px;
    }

    .icon {
      color: #fff;
      width: 13px;
      height: 14px;

      @media only screen and (max-width: 768px) {
        width: 12px;
        height: 12px;
      }
    }
  }
}

/*================ Module | Rich Text Editor ================*/

.rte {
  @include clearfix;
  margin-bottom: 30px / 4;

  @media only screen and (min-width: 769px) {
    margin-bottom: 15px;
  }

  &:last-child {
    margin-bottom: 0;
  }

  & + & {
    margin-top: 30px;
  }

  p,
  ul,
  ol,
  table {
    margin-bottom: 15px;

    @media only screen and (min-width: 769px) {
      margin-bottom: 25px;
    }

    &:last-child {
      margin-bottom: 0;
    }
  }

  ul {
    ul {
      margin-bottom: 0;
    }
  }

  // Add some top margin to headers from the rich text editor
  h1, h2, h3, h4, h5, h6 {
    margin-top: 60px;
    margin-bottom: 25px;
  }

  h1, h2, h3, h4, h5, h6 {
    &:first-child {
      margin-top: 0;
    }

    a {
      text-decoration: none;
    }
  }

  // In case merchants paste meta tags into their content by accident
  meta:first-child {
    & + h1, & + h2, & + h3, & + h4, & + h5, & + h6 {
      margin-top: 0;
    }
  }

  > div {
    margin-bottom: 15px;
  }

  li {
    margin-bottom: 0;
  }

  > p:last-child {
    margin-bottom: 0;
  }

  table {
    table-layout: fixed;
  }
}

.rte--block {
  margin-bottom: (15px);
}

.rte-setting {
  > p:last-child {
    margin-bottom: 0;
  }
}

.rte,
.rte-setting {
  a {
    text-decoration: none;
  }

  a:not(.rte__image) {
    text-decoration: none;
   border-bottom: 2px solid rgba(0,0,0,.2); 
    position: relative;

    @if (true) {
      display: inline-block; // so underline hover effect works
    }
  }

  @if (true) {
    a:not(.btn):after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0%;
      border-bottom: 2px solid currentColor;
      transition: width 0.5s ease;
    }

    a:not(.btn) {
      &:hover:after,
      &:focus:after {
        width: 100%;
      }
    }

    a.rte__image:after {
      content: none;
    }
  }
}

.text-center .rte,
.text-center.rte {
  ul,
  ol {
    list-style-position: inside;
    margin-left: 0;
  }
}

.rte--nomargin {
  margin-bottom: 0;
}

// Header layout

.header-layout {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
}

.header-layout--center {
  -ms-flex-align: center;
      align-items: center;
}

// Header items

.header-item {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
}

.header-item--logo {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
}

.header-item--icons {
  -ms-flex-pack: end;
      justify-content: flex-end;
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
}

/*================ Header layout specific styles ================*/

// Same default logo and icon container size, logo block width overrides

.header-layout--left-center {
  .header-item--logo,
  .header-item--icons {
    -ms-flex: 0 0 200px;
        flex: 0 0 200px;
    max-width: 50%;

    @media only screen and (min-width: 769px) {
      min-width: 130px; // approx width of 2 icons
    }
  }
}

.header-layout[data-logo-align="center"] {
  .header-item--logo {
    @media only screen and (min-width: 769px) {
      margin: 0 30px / 1.5;
    }
  }

  .header-item--navigation,
  .header-item--icons {
       /*-ms-flex: 1 1 130px;
        flex: 1 1 130px; // aprox width of 2 icons */
      width:130px;
    flex: unset;
  }
}

.header-layout[data-logo-align="left"] {
  .site-header__logo {
    margin-right: 30px / 3;
  }
}

.header-item--logo-split {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;

  .header-item:not(.header-item--logo) {
    text-align: center;
    -ms-flex: 1 1 20%;
        flex: 1 1 20%;
  }
}

.header-item--split-left {
  -ms-flex-pack: end;
      justify-content: flex-end;
}

// Icon alignment

.header-item--left {
  .site-nav {
    margin-left: -(12px);

    @media only screen and (max-width: 768px) {
      margin-left: -(15px / 2);
    }
  }
}

.header-item--icons {
  .site-nav {
    margin-right: -(12px);

    @media only screen and (max-width: 768px) {
      margin-right: -(15px / 2);
    }
  }
}

.site-header {
  position: relative;
  padding: 7px 0;
  background: #fff;

  @media only screen and (min-width: 769px) {
    padding: 20px 0;

    .toolbar + .header-sticky-wrapper & {
      border-top: 1px solid rgba(#000, 0.1);
    }
  }
}

.site-header--stuck {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  transform: translate3d(0, -100%, 0);
  transition: none;
  z-index: 20;

  // Rearrangement for when top search drawer is open so nav is above overlay
  .js-drawer-open--search & {
    z-index: 28;
  }

  @media only screen and (min-width: 769px) {
    padding: 10px 0;
  }
}

.site-header--opening {
  transform: translate3d(0, 0, 0);
  transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.site-header__logo {
  position: relative;
  margin: (30px / 3) 0;
  display: block;
  font-size: 30px; // when no image
  z-index: 6;

  @media only screen and (min-width: 769px) {
    .text-center & {
      padding-right: 0;
      margin: (30px / 3) auto;
    }
  }

  .header-layout[data-logo-align="center"] & {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  a {
    max-width: 100%;
  }

  a,
  a:hover {
    text-decoration: none;
  }

  img {
    display: block;

    .header-layout[data-logo-align="center"] & {
      margin-left: auto;
      margin-right: auto;
    }
  }
}

.site-header__logo-link {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  color: #000;

  &:hover {
    color: #000;
  }

  @media only screen and (max-width: 768px) {
    margin: 0 auto;
  }
}

// Sticky header on top of image/slideshow

.header-sticky-wrapper {
  position: relative;
}

.header-wrapper--sticky {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 6;
  background: none;
  background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%,rgba(0,0,0,0) 100%);

  .site-header:not(.site-header--stuck) {
    background: none;
  }

  // Rearrangement for when top search drawer is open so nav is above overlay
  .js-drawer-open--search & {
    z-index: 28;
  }
}

.site-header__search-container {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 200%;
  height: 100%;
  z-index: 28;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0, 0, 0.38, 1);

  &.is-active {
    bottom: 0;
    transition: none;
  }
}

.site-header__search {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 28;
  display: -ms-flexbox;
  display: flex;
  transform: translate3d(0, -110%, 0);
  background-color: #fff;
  color: #000;
  transition: all 0.3s cubic-bezier(0, 0, 0.38, 1);

  .page-width {
    -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: stretch;
        align-items: stretch;

    @media only screen and (max-width: 768px) {
      padding: 0;
    }
  }

  .is-active & {
    transform: translate3d(0, 0, 0);
  }

  .icon {
    width: 30px;
    height: 30px;
  }
}

.site-header__search-form {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  display: -ms-flexbox;
  display: flex;

  @media only screen and (min-width: 769px) {
    padding: (15px) 0;
  }
}

.site-header__search-input {
  border: 0;
  width: 100px; // flexbox overrides, but fixes browser issues
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;

  &:focus {
    border: 0;
    outline: 0; // only active element on the page, so this is acceptable
  }
}

// Submit and cancel buttons

.site-header__search-btn {
  padding: 0 (15px);
}

/*================ Module | Search Bar ================*/

.search-bar {
  max-width: 100%;
}

.search-bar--page {
  max-width: 300px;
  margin-top: -15px;

  @if ($type_header_text_center) {
    margin: (-15px) auto 0;
  }
}

.search-bar--drawer {
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e8e8e1;

  input {
    border: 0;
  }
}

.search-bar .icon {
  width: 24px;
  height: 24px;
  vertical-align: middle;
}

.toolbar {
  background: #fff;
  color: #000;
  font-size: 14.45px;

  a {
    color: #000;
  }

  // Do not show in sticky header
  .site-header--stuck & {
    display: none;
  }
}

.toolbar--transparent {
  background-color: transparent;
  color: #fff;
  border-bottom: none;

  a {
    color: #fff;
  }

  .toolbar__content {
    border-bottom: 1px solid rgba(255,255,255,0.2);
  }
}

.toolbar__content {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  -ms-flex-align: center;
      align-items: center;
}

.toolbar__item {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  padding: 0 5px;

  &:first-child {
    padding-left: 0;
  }

  &:last-child {
    padding-right: 0;
  }
}

.toolbar__item--menu {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
}

// Menu

.toolbar__menu {
  margin-left: -(30px / 3); // equivalent of a padding

  a {
    display: block;
    padding: 5px (30px / 3);
  }
}

// Social icons

.toolbar__social {
  text-align: right;

  a {
    display: block;
    padding: 5px;
  }

  .icon {
    position: relative;
    top: -2px;
    width: 16px;
    height: 16px;
  }
}

/*================ Module | Section Headers ================*/

.section-header {
  margin-bottom: 30px;

  @media only screen and (min-width: 769px) {
    margin-bottom: 50px;
  }

  @if ($type_header_text_center) {
    text-align: center;
  }

  select {
    display: inline-block;
    vertical-align: middle;
  }
}

.section-header--flush {
  margin-bottom: 0;
}

.section-header--with-link {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;

  select {
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
  }
}

.section-header--hero {
  position: relative;
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;
  color: #fff;
  margin-bottom: 0;

  a {
    color: #fff;
  }
}

.section-header__shadow {
  position: relative;
  display: inline-block;

  &:before {
    @include heroRadial;
  }

  .breadcrumb,
  .section-header__title {
    position: relative;
  }
}

.section-header__title {
  margin-bottom: 0;

  .section-header--with-link & {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
  }

  @media only screen and (min-width: 769px) {
    .section-header--hero & {
      font-size: calc(35px * 1.45);
    }
  }
}

.section-header__link {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  margin-top: 15px;

  .section-header--with-link & {
    margin-top: 0;
  }
}

.section-header--404 {
  margin-bottom: 0;
  padding: 80px 0;
}

.section-header select {
  margin: 10px 0;
}

.section-header p {
  margin: 10px 0;
}

.site-nav {
  margin: 0;
}

.site-navigation {
  .text-center & {
    margin: 0 auto;
  }

  .header-layout--left & {
    padding-left: 30px / 3;
  }
}

.site-nav__icons {
  white-space: nowrap;
}

.site-nav__item {
  position: relative;
  display: inline-block;
  margin: 0;

  li {
    display: block;
  }

  .icon-chevron-down {
    width: 10px;
    height: 10px;
  }
}

.site-nav__link {
  display: inline-block;
  vertical-align: middle;
  text-decoration: none;
  padding: (15px / 2) 15px;
  white-space: nowrap;
  color: #000;

  .site-header--heading-style & {
        font-weight: 700;     letter-spacing: 0em;     line-height: 1;
  }

  &:hover {
    color: #000;
  }

  .is-light & {
    color: #fff;

    &:hover {
      color: #fff;
    }
  }

  .site-nav--has-dropdown > & {
    position: relative;
    z-index: 5 + 1;
  }

  .icon-chevron-down {
    margin-left: 5px;
  }

  @include media-query($medium-down) {
    padding: 15px / 2;

    .header-layout--center & {
      padding-left: 2px;
      padding-right: 2px;
    }
  }
}

.site-nav__link--underline {
  position: relative;

  &:after {
    content: '';
    display: block;
    position: absolute;
    bottom: 4px;
    left: 0;
    right: 100%;
    margin: 0 15px;
    border-bottom: 2px solid #000;
    transition: right 0.5s;
  }

  // White underline when no dropdown
  .is-light .site-nav__item:not(.site-nav--has-dropdown) &:after {
    border-bottom-color: #fff;
  }

  // Dropdown text color underline when in dropdown link
  .site-nav--has-dropdown &:after {
    border-bottom-color: #000;
  }

  .site-nav__item:hover &:after {
    right: 0;
  }
}

// Keep active state on parent dropdown link

.site-nav--has-dropdown {
  z-index: 6;

  &.is-focused,
  &:hover {
    z-index: 7;
  }
}

.site-nav--has-dropdown.is-focused > a,
.site-nav--has-dropdown:hover > a {
  color: #000 !important;
  background-color: #fff;
  opacity: 1;
  transition: none;
}

.site-nav__link--icon {
  padding-left: 12px;
  padding-right: 12px;

  @media only screen and (max-width: 768px) {
    padding-left: 15px / 2;
    padding-right: 15px / 2;

    &.js-search-header {
      margin-right: -8px;
    }

    & + & {
      margin-left: -3px; // ~amount of inline-block space
    }
  }

  .icon {
    width: 30px;
    height: 30px;
  }
}

/*================ Dropdowns ================*/

.site-nav__dropdown {
  position: absolute;
  left: 0;
  margin: 0;
  z-index: 5;
  display: block;
  visibility: hidden;
  background-color: #fff;
  min-width: 100%;
  padding: (30px / 3) 0 5px;
  box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.09);
  transform: translate3d(0px, -12px, 0px);

  .site-nav--has-dropdown:hover &,
  .is-focused > & {
    display: block;
    visibility: visible;
    transform: translate3d(0px, 0px, 0px);
    transition: all 300ms cubic-bezier(0.2, 0.06, 0.05, 0.95);
  }

  li {
    margin: 0;
  }

  > li {
    position: relative;

    > a {
      position: relative;
      z-index: 5 + 1;
    }
  }

  a {
    background-color: #fff;
    // padding-right: 30px;
  }
}

/*================ Third level dropdown ================*/

.site-nav__deep-dropdown {
  background-color: #fff;
  box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.09);
  position: absolute;
  top: 0;
  left: 100%;
  margin: 0;
  visibility: hidden;
  opacity: 0;
  z-index: 5;
  transform: translate3d(-12px, 0px, 0px);

  // Last menu item is anchored to right if
  //   - center aligned menu
  .header-item--reverse .site-nav__item:last-child & {
    left: auto;
    right: 100%;
  }

  .site-nav__deep-dropdown-trigger:hover &,
  .is-focused + & {
    visibility: visible;
    opacity: 1;
    transform: translate3d(0px, 0px, 0px);
    transition: all 300ms cubic-bezier(0.2, 0.06, 0.05, 0.95);
  }

  &:before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 10px;
    background-image: linear-gradient(to right, rgba(0,0,0,0.09), transparent);
    pointer-events: none;

    .header-item--reverse .site-nav__item:last-child & {
      left: auto;
      right: 0;
      background-image: linear-gradient(to left, rgba(0,0,0,0.09), transparent);
    }
  }
}

.site-nav__dropdown-link--has-children {
  .site-nav__deep-dropdown-trigger:hover &,
  &:hover,
  &:focus {
    background-color: darken(#fff, 5%);
  }
}

// Rotate to face right

.site-nav__deep-dropdown-trigger .icon-chevron-down {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 10px;
  height: 10px;
  transform: rotate(-90deg) translateX(50%);
}

/*================ Mobile navigation ================*/

.mobile-nav {
  margin: (-15px) (-15px) 0 (-15px);

  @media only screen and (min-width: 769px) {
    margin-left: -30px;
    margin-right: -30px;
  }

  li {
    margin-bottom: 0;
    list-style: none;
  }
}

.mobile-nav__search {
  padding: 15px;
}

.mobile-nav__item {
  position: relative;
  display: block;
  border-bottom: 1px solid #e8e8e1;
  // Background color on top level items so there is no
  // element overlap on subnav's CSS toggle animation
  .mobile-nav > & {
    background-color:#fff;
  }

  &:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    /* border-bottom: 1px solid #e8e8e1; */
  }
}

// Login/logout links can't have a class on them, so style <a> element

.mobile-nav__link,
.mobile-nav__faux-link {
  display: block;
}

.mobile-nav__link--top-level {
  font-size: 1.4em;

  .mobile-nav--heading-style & {
        font-weight: 700;     letter-spacing: 0em;     line-height: 1;
  }
}

.mobile-nav__link,
.mobile-nav__faux-link,
.mobile-nav__toggle button,
.mobile-nav__toggle .faux-button {
  color: #000;
  padding: 15px;
  text-decoration: none;

  &:active {
    color: darken(#000, 15%);
  }

  &:active {
    background-color: darken(#fff, 5%);
  }
}

// Active state on any level of link

.mobile-nav__item [data-active] {
  // text-decoration: underline;
}

.mobile-nav__child-item {
  display: -ms-flexbox;
  display: flex;

  a,
  .mobile-nav__link {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
  }

  .collapsible-trigger:not(.mobile-nav__link--button) {
    -ms-flex: 0 0 (28px + (15px));
        flex: 0 0 (28px + (15px));
  }

  .collapsible-trigger__icon {
    padding: 0;
    margin-right: 15px;
  }
}

.mobile-nav__item--secondary {
  a {
    padding-top: 10px;
    padding-bottom: 5px;
  }

  &:after {
    display: none; // no trailing border
  }
}

// Spacing above secondary links

.mobile-nav__item:not(.mobile-nav__item--secondary) + .mobile-nav__item--secondary {
  margin-top: 10px;
}

.mobile-nav__has-sublist,
.mobile-nav__link--button {
  display: -ms-flexbox;
  display: flex;

  > * {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    word-break: break-word; // Breaks long problematic words
  }
}

.mobile-nav__link--button {
  width: 100%;
  text-align: left;
  padding: 0;
}

.mobile-nav__toggle {
  -ms-flex: 0 1 60px;
      flex: 0 1 60px;
    align-items: center;
    justify-content: center;
    display:flex;
    border-left:1px solid #e8e8e1;
  .icon {
    width: 16px;
    height: 16px;
  }

  button,
  .faux-button {
    height: 100%;
    padding: 0 30px;
    margin: 0;
  }

  button {
    border-left: 1px solid #e8e8e1;

    &.is-open {
      border-bottom: 1px solid #e8e8e1;
    }
  }
}

.mobile-nav__sublist {
  margin: 0;

  .mobile-nav__item:after {
    top: 0;
    bottom: auto;
    border-bottom: none;
  }

  .mobile-nav__item:last-child {
    padding-bottom: 15px;
  }

  .mobile-nav__link,
  .mobile-nav__faux-link {
    font-weight: normal;
    padding: (30px / 4) 25px (30px / 4) (15px);
  }
}

.mobile-nav__grandchildlist {
  margin: 0;

  .mobile-nav__item:last-child {
    padding-bottom: 0;
  }

  .mobile-nav__link {
    padding-left: 35px;
  }
}

.mobile-nav__social {
  list-style: none outside;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: stretch;
      justify-content: stretch;
  margin: 15px 0 20px 0;

  @media only screen and (min-width: 769px) {
    margin-left: -15px;
    margin-right: -15px;
  }

  a {
    display: block;
    padding: 8px 30px;

    .icon {
      position: relative;
      top: -1px;
    }
  }
}

.mobile-nav__social-item {
  -ms-flex: 0 1 33.33%;
      flex: 0 1 33.33%;
  text-align: center;
  border: 1px solid #e8e8e1;
  margin: 0 0 -1px;

  &:nth-child(3n-1) {
    margin-right: -1px;
    margin-left: -1px;
  }
}

/*================ Cart bubble for items in cart ================*/

@media only screen and (min-width: 769px) {
  .site-nav__link--icon .icon {
    width: 28px;
    height: 28px;

    &.icon-user {
      position: relative;
      top: 1px;
    }
  }
}

.cart-link {
  position: relative;
  display: block;
}

.cart-link__bubble {
  display: none;
}

.cart-link__bubble--visible {
  display: block;
  position: absolute;
  top: 50%;
  right: 0px;
  width: 15px;
  height: 15px;
  background-color: #ff4f33;
  border: 2px solid #fff;
  border-radius: 50%;
}

.breadcrumb {
  text-align:center;
  margin: 10px 0;

  @media only screen and (max-width: 768px) {
    margin-bottom: 15px 0;
  }

  .divider {
    color: #e8e8e1;
  }
}

.megamenu {
  padding: (30px * 1.3) 0;
  line-height: 1.8;
  transform: none;
  opacity: 0;
  transition: all 300ms cubic-bezier(0.2, 0.06, 0.05, 0.95);
  transition-delay: 0.3s;

  .site-nav--has-dropdown:hover &,
  .is-focused > & {
    opacity: 1;
    transition-delay: 0s;

    .appear-animation {
      opacity: 1;
      transform: none;
    }
  }
}

.site-nav--is-megamenu.site-nav__item {
  position: static;
}

.megamenu__colection-image {
  display: block;
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  height: 0;
  padding-bottom: 46%;
  margin-bottom: 30px / 1.5;
}

// Center grid items in megamenu when logo centered

.text-center .megamenu .grid {
  text-align: center;

  .grid__item {
    float: none;
    display: inline-block;
    vertical-align: top;
    text-align: left;
  }
}

.modal {
  display: none;
  bottom: 0;
  left: 0;
  opacity: 1;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 25;
  color: #fff;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;

  a,
  a:hover {
    color: inherit;
  }

  .btn:not([disabled]):not(.btn--secondary),
  .btn:not([disabled]):not(.btn--secondary):hover {
    color: #fff;
  }

  .modal-open & {
    .modal__inner {
      animation: modal-open 0.5s forwards;
    }
    &:before {
      content: '';
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: $colorModalBg;
      animation: overlay-on 0.5s forwards;
      cursor: pointer;
    }
  }

  .modal-closing & {
    .modal__inner {
      animation: modal-closing 0.5s forwards;
    }
    &:before {
      content: '';
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: $colorModalBg;
      animation: overlay-off 0.5s forwards;
    }
  }

  .modal-open--solid &:before {
    background-color: $colorModalBg;
  }
}

.modal--solid {
  .modal-open & {
    &:before {
      background-color: #000;
      animation: full-overlay-on 0.5s forwards;
    }
  }

  .modal-closing & {
    &:before {
      background-color: #000;
      animation: full-overlay-off 0.5s forwards;
    }
  }
}

.modal--is-closing {
  display: -ms-flexbox !important;
  display: flex !important; // override .is-transitioning styles
  overflow: hidden;
}

.modal--is-active {
  display: -ms-flexbox !important;
  display: flex !important; // override .is-transitioning styles
  overflow: hidden;
}

// Class on body element when modal open.

// Only medium-up because iOS jumps to top otherwise

@media only screen and (min-width: 769px) {
  .modal-open {
    overflow: hidden;
  }
}

.modal__inner {
  transform-style: preserve-3d;
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  margin: 15px;
  max-width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;

  @media only screen and (min-width: 769px) {
    margin: 40px;
  }

  .modal--'square' & {
    background-color: #fff;
    color: #000;
  }

  img {
    display: block;
    max-height: 90vh;
  }
}

// No max height on product images

.modal__inner {
  .image-wrap img {
    max-height: none;
  }
}

.modal__centered {
  position: relative;
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  min-width: 1px; // ie10 thing
  max-width: 100%;
}

.modal__centered-content {
  .modal--'square' & {
    max-height: 80vh;
    padding: 30px * .75;
    min-width: 200px;
    min-height: 200px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;

    @media only screen and (min-width: 769px) {
      padding: 30px * 1.5;
      max-height: 90vh;
      max-width: 1200px;
    }
  }
}

.modal__close {
  border: 0;
  padding: 30px/2;
  @media only screen and (min-width: 769px) {
    padding: 30px;
  }
  position: fixed;
  top: 0;
  right: 0;
  color: #fff;

  .icon {
    width: 28px;
    height: 28px;
  }

  &:hover,
  &:focus {
    color: #fff;
  }

  .modal--'square' & {
    position: absolute;
    color: #000;
    padding: 30px / 3;

    &:hover,
    &:focus {
      color: #000;
    }
  }
}

// Ajax page adjustments

.modal {
  .page-content,
  .page-width {
    padding: 0;
  }
}

// Google-friendly non intrusive mobile modal

.popup-cta {
  margin-bottom: 15px;
}

@media only screen and (max-width: 768px) {
  .modal--mobile-friendly {
    top: auto;
    bottom: 0;
    overflow: auto;

    &.modal--'square' .modal__centered-content {
      padding: 20px 20px 0;
    }

    &.modal--is-active {
      overflow: auto;
    }

    .modal-open & {
      &:before {
        display: none;
      }
    }

    .modal__inner {
      margin: 0;
      border: 2px solid #000;
    }

    .h1 {
      padding-right: 25px;
    }

    input {
      font-size: 16px !important;
    }

    .text-close {
      display: none;
    }
  }
}

.js-qty__wrapper {
  display: inline-block;
  position: relative;
  max-width: 100px;
  min-width: 75px;
  overflow: visible;
  background-color: #fff;
  color: color-control(#fff, 1);
}

.js-qty__num {
  display: block;
  background: none;
  text-align: center;
  width: 100%;
  padding: 8px 25px;
  margin: 0;
  z-index: 1;
}

.js-qty__adjust {
  cursor: pointer;
  position: absolute;
  display: block;
  top: 0;
  bottom: 0;
  border: 0 none;
  background: none;
  text-align: center;
  overflow: hidden;
  padding: 0 5px;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: background-color 0.1s ease-out;
  z-index: 2;
  fill: color-control(#fff, 1);

  .icon {
    display: block;
    font-size: 8px;
    vertical-align: middle;
    width: 10px;
    height: 10px;
    fill: inherit;
  }

  &:hover {
    background-color: darken(#fff, 5%);
    color: color-control(#fff, 1);
  }

  &:active {
    background-color: darken($colorBorder, 10%);
  }

  .js-qty__num:active ~ &,
  .js-qty__num:focus ~ & {
    border-color: #000;
  }
}

.js-qty__adjust--plus {
  right: 0;
  border-left: 1px solid darken(#fff, 5%);
}

.js-qty__adjust--minus {
  left: 0;
  border-right: 1px solid darken(#fff, 5%);
}

/*================ Qty selector in drawer ================*/

.drawer {
  .js-qty__wrapper {
    background-color: transparent;
    border-color: #e8e8e1;
  }

  .js-qty__num {
    color: #000;
    border-color: #e8e8e1;
    padding-top: 2px;
    padding-bottom: 2px;
  }

  .js-qty__adjust {
    border-color: #e8e8e1;
    color: #000;
    fill: #000;

    &:hover {
      background-color: color-control(#fff, 1);
      color:#fff;
      fill:#fff;
    }
  }
}

.drawer .js-qty__num:active ~ .js-qty__adjust,
.drawer .js-qty__num:focus ~ .js-qty__adjust {
  border-color: #e8e8e1;
}

.currency-picker__wrapper {
  .is-light & {
    color: #fff;
  }

  .site-nav & {
    float: right;
  }

  .icon {
    margin-left: -5px;
    cursor: pointer;

    .site-nav__item & {
      margin-right: 5px;
    }
  }
}

.currency-input {
  font-size: 17px;
  background-color: transparent;
  border: none;
  width: auto;
  background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select.svg);
  background-size: 12px;
  font-style: normal;

  .toolbar__item & {
    color: #000;
    background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select-menu.svg);

    @media only screen and (min-width: 769px) {
      font-size: 14.45px;
    }
  }

  .is-light & {
    color: #fff;
    background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select-white.svg);
  }

  &:hover,
  &:focus {
    border: none;
  }

  .header-item & {
    color: #000;
    background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select-menu.svg);
  }

  .is-light .header-item & {
    color: #fff;
    background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select-white.svg);
  }

  .currency-picker--drawer & {
    padding-top: 5px;
    padding-bottom: 5px;
    background-image: url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ico-select-drawer.svg);
    border: 1px solid #e8e8e1;
  }
}

// collapsibles-wrapper is an optional wrapper

.collapsibles-wrapper--border-bottom {
  border-bottom: 1px solid #e8e8e1;
}

.collapsible-trigger {
  color: inherit;
  position: relative;
}

.collapsible-trigger__icon {
  display: block;
  position: absolute;
  right: 0;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%);

  @media only screen and (min-width: 769px) {
    width: 12px;
    height: 12px;
  }

  .mobile-nav__has-sublist & {
    right: 25px;
  }

  .icon {
    display: block;
    width: 10px;
    height: 10px;
    transition: all 0.1s ease-in;

    @media only screen and (min-width: 769px) {
      width: 12px;
      height: 12px;
    }
  }
}

.collapsible-trigger__icon--circle {
  border: 1px solid #e8e8e1;
  width: 28px;
  height: 28px;
  text-align: center;

  .icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}

.collapsible-trigger.is-open .collapsible-trigger__icon > .icon-chevron-down {
  transform: scaleY(-1);
}

// Slightly different for circle buttons

.collapsible-trigger.is-open .collapsible-trigger__icon--circle > .icon-chevron-down {
  transform: translate(-50%, -50%) scaleY(-1);
}

.collapsible-content {
  transition: opacity 0.3s cubic-bezier(.25,.46,.45,.94), height 0.3s cubic-bezier(.25,.46,.45,.94);

  &.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity 1s cubic-bezier(.25,.46,.45,.94), height 0.35s cubic-bezier(.25,.46,.45,.94);
  }
}

.collapsible-content--all {
  visibility: hidden;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  opacity: 0;
  height: 0;

  .collapsible-content__inner {
    transform: translateY(40px);
  }

  .collapsible-content__inner--no-translate {
    transform: translateY(0);
  }
}

@media only screen and (max-width: 768px) {
  .collapsible-content--small {
    visibility: hidden;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    opacity: 0;
    height: 0;

    .collapsible-content__inner {
      transform: translateY(40px);
    }

    .collapsible-content__inner--no-translate {
      transform: translateY(0);
    }
  }
}

.collapsible-content__inner {
  transition: $collapsible-content-close-transition;

  .is-open & {
    transform: translateY(0);
    transition: $collapsible-content-open-transition;
  }
}

.collapsible-label__closed {
  .collapsible-trigger[aria-expanded="true"] & {
    display: none;
  }
}

.collapsible-label__open {
  display: none;

  .collapsible-trigger[aria-expanded="true"] & {
    display: inline-block;
  }
}

// Custom functionality for collection sidebar

.collapsible-content--sidebar {
  visibility: hidden;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  opacity: 0;
  height: 0;

  @media only screen and (min-width: 769px) {
    &.is-open {
      overflow: initial;
      visibility: visible;
      opacity: 1;
      height: auto;
    }
  }
}

// Custom PhotoSwipe-related styles

[data-section-type='photoswipe'] .photoswipe__image {
  cursor: zoom-in;
}

.pswp__button {
  color: #fff;
  position: relative;

  // Because JS listens to click on button element itself
  &:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }

  svg {
    width: 32px;
    height: 32px;
  }
}

.pswp__button--arrow--left,
.pswp__button--arrow--right {
  svg {
    width: 24px;
    height: 24px;
  }
}

/*============================================================================
  PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license
==============================================================================*/

.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none; }

.pswp img {
    max-width: none; }

/* style is added when JS option showHideOpacity is set to true */

.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--open {
  display: block; }

.pswp--zoom-allowed .pswp__img {
  cursor: zoom-in; }

.pswp--zoomed-in .pswp__img {
  cursor: -webkit-grab;
  cursor: grab; }

.pswp--dragging .pswp__img {
  cursor: -webkit-grabbing;
  cursor: grabbing; }

/*
  Background is added as a separate element.
  As animating opacity is much faster than animating rgba() background-color.
*/

.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0; }

/* Prevent selection and tap highlights */

.pswp__container,
.pswp__img {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none; }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  transform-origin: left top;
  /* for open/close transition */
  transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  transition: none; }

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden; }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden; }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0; }

/*
  stretched thumbnail or div placeholder element (see below)
  style is added to avoid flickering in webkit/blink when layers overlap
*/

.pswp__img--placeholder {
  -webkit-backface-visibility: hidden; }

/*
  div element that matches size of large image
  large image loads on top of it
*/

.pswp__img--placeholder--blank {
  background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0; }

/*
  Error message appears when image is not loaded
  (JS option errorMsg controls markup)
*/

.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC; }

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline; }

/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */

/*

  Contents:

  1. Buttons
  2. Share modal and links
  3. Index indicator ("1 of X" counter)
  4. Caption
  5. Loading indicator
  6. Additional styles (root element, top bar, idle state, hidden state, etc.)

*/

/*

  1. Buttons

 */

/* <button> css reset */

.pswp__button {
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.75;
  transition: opacity 0.2s;
  box-shadow: none; }

.pswp__button:focus,
  .pswp__button:hover {
    opacity: 1; }

.pswp__button:active {
    outline: none;
    opacity: 0.9; }

.pswp__button::-moz-focus-inner {
    padding: 0;
    border: 0; }

/* pswp__ui--over-close class it added when mouse is over element that should close gallery */

.pswp__button--close {
  padding: 15px;
}

.pswp__ui--over-close .pswp__button--close {
  opacity: 1; }

/* no arrows on touch screens */

.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right {
  visibility: hidden; }

/*
  Arrow buttons hit area
  (icon is added to :before pseudo-element)
*/

.pswp__button--arrow--left,
.pswp__button--arrow--right {
  top: 50%;
  margin-top: -50px;
  height: 40px;
  width: 40px;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.3);
}

.pswp__button--arrow--left {
  left: 15px; }

.pswp__button--arrow--right {
  right: 15px; }

/*

  2. Share modal/popup and links

 */

.pswp__counter,
.pswp__share-modal {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
          transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__share-modal--hidden {
  display: none; }

.pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: #FFF;
  top: 56px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 44px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  transform: translateY(6px);
  transition: transform 0.25s;
  -webkit-backface-visibility: hidden;
  will-change: transform; }

.pswp__share-tooltip a {
    display: block;
    padding: 8px 12px;
    color: #000;
    text-decoration: none;
    font-size: 14px;
    line-height: 18px; }

.pswp__share-tooltip a:hover {
      text-decoration: none;
      color: #000; }

.pswp__share-tooltip a:first-child {
      /* round corners on the first/last list item */
      border-radius: 2px 2px 0 0; }

.pswp__share-tooltip a:last-child {
      border-radius: 0 0 2px 2px; }

.pswp__share-modal--fade-in {
  opacity: 1; }

.pswp__share-modal--fade-in .pswp__share-tooltip {
    transform: translateY(0); }

/* increase size of share links on touch devices */

.pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px; }

a.pswp__share--facebook:before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: #FFF;
  pointer-events: none; }

a.pswp__share--facebook:hover {
  background: #3E5C9A;
  color: #FFF; }

a.pswp__share--facebook:hover:before {
    border-bottom-color: #3E5C9A; }

a.pswp__share--twitter:hover {
  background: #55ACEE;
  color: #FFF; }

a.pswp__share--pinterest:hover {
  background: #CCC;
  color: #CE272D; }

a.pswp__share--download:hover {
  background: #DDD; }

/*

  3. Index indicator ("1 of X" counter)

 */

.pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  color: #FFF;
  opacity: 0.75;
  padding: 0 10px; }

/*

  4. Caption

 */

.pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px; }

.pswp__caption small {
    font-size: 11px;
    color: #BBB; }

.pswp__caption__center {
  text-align: left;
  max-width: 420px;
  margin: 0 auto;
  font-size: 13px;
  padding: 10px;
  line-height: 20px;
  color: #CCC; }

.pswp__caption--empty {
  display: none; }

/* Fake caption element, used to calculate height of next/prev image */

.pswp__caption--fake {
  visibility: hidden; }

/*

  5. Loading indicator (preloader)

  You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

 */

.pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr; }

.pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px; }

.pswp__preloader--active {
  opacity: 1; }

.pswp--css_animation .pswp__preloader--active {
  opacity: 1; }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
    animation: clockwise 500ms linear infinite; }

.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
    animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }

.pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0; }

.pswp--css_animation .pswp__preloader__cut {
  /*
      The idea of animating inner circle is based on Polymer ("material") loading indicator
       by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
    */
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden; }

.pswp--css_animation .pswp__preloader__donut {
  width: 14px;
  height: 14px;
  border: 2px solid #FFF;
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0; }

@media screen and (max-width: 1024px) {
  .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right; } }

@keyframes clockwise {
  0% {
            transform: rotate(0deg); }
  100% {
            transform: rotate(360deg); } }

@keyframes donut-rotate {
  0% {
            transform: rotate(0); }
  50% {
            transform: rotate(-140deg); }
  100% {
            transform: rotate(0); } }

/*

  6. Additional styles

 */

/* root element of UI */

.pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550; }

/* top black bar with buttons and "1 of X" indicator */

.pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%; }

.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  will-change: opacity;
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

/* pswp--has_mouse class is added only when two subsequent mousemove events occur */

.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible; }

.pswp__top-bar,
.pswp__caption {
  background-color: rgba(0, 0, 0, 0.5); }

/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */

.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
  background-color: rgba(0, 0, 0, 0.3); }

/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */

.pswp__ui--idle .pswp__top-bar {
  opacity: 0; }

.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0; }

/*
  pswp__ui--hidden class is added when controls are hidden
  e.g. when user taps to toggle visibility of controls
*/

.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001; }

/* pswp__ui--one-slide class is added when there is just one item in gallery */

.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter {
  display: none; }

.pswp__element--disabled {
  display: none !important; }

.pswp--minimal--dark .pswp__top-bar {
  background: none; }

/*================ Vendor-specific styles ================*/

/*============================================================================
  Slick Slider 1.6.0

  - If upgrading Slick's styles, use the following variables/functions
    instead of the slick defaults
  - Remove `outline: none` from `.slick-dots li button`
  - Change slick-image-url to just url
  - Remove any instance of slick-font-url
==============================================================================*/

$slick-font-family: "slick-icons, sans-serif";

$slick-arrow-color: #000;

$slick-dot-color: #fff;

$slick-dot-color-active: #fff !default;

$slick-prev-character: '\2039';

$slick-next-character: '\203A';

$slick-dot-character: '';

$slick-dot-size: 6px;

$slick-opacity-default: 0.75;

$slick-opacity-on-hover: 1;

$slick-opacity-not-active: 0.18;

/*================ Slick Slider SCSS ================*/

.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
  direction: ltr;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;

  &:focus {
    outline: none;
  }

  &.dragging {
    cursor: pointer;
    cursor: hand;
  }
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;

  &:before,
  &:after {
    content: "";
    display: table;
  }

  &:after {
    clear: both;
  }

  .slick-loading & {
    visibility: hidden;
  }
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  [dir="rtl"] & {
    float: right;
  }
  img {
    display: block;
  }
  &.slick-loading img {
    display: none;
  }

  display: none;

  &.dragging img {
    pointer-events: none;
  }

  .slick-initialized & {
    display: block;
  }

  .slick-loading & {
    visibility: hidden;
  }

  .slick-vertical & {
    display: block;
    height: auto;
  }
}

.slick-arrow.slick-hidden {
  display: none;
}

/*================ Slick Slider Theme ================*/

/* Arrows */

.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  &:hover, &:focus {
    background: transparent;
    color: transparent;
    &:before {
      opacity: $slick-opacity-on-hover;
    }
  }
  &.slick-disabled:before {
    opacity: $slick-opacity-not-active;
  }
  &:before {
    font-family: $slick-font-family;
    font-size: 20px;
    line-height: 1;
    color: $slick-arrow-color;
    opacity: $slick-opacity-default;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

.slick-prev {
  left: -25px;
  [dir="rtl"] & {
    left: auto;
    right: -25px;
  }
  &:before {
    content: $slick-prev-character;
    [dir="rtl"] & {
      content: $slick-next-character;
    }
  }
}

.slick-next {
  right: -25px;
  [dir="rtl"] & {
    left: -25px;
    right: auto;
  }
  &:before {
    content: $slick-next-character;
    [dir="rtl"] & {
      content: $slick-prev-character;
    }
  }
}

/* Dots */

.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
  li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 5px;
    padding: 0;
    cursor: pointer;
    button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer;
      &:hover, &:focus {
        &:before {
          opacity: $slick-opacity-on-hover;
        }
      }
      &:before {
        position: absolute;
        top: 0;
        left: 0;
        content: $slick-dot-character;
        width: 20px;
        height: 20px;
        font-family: $slick-font-family;
        font-size: $slick-dot-size;
        line-height: 20px;
        text-align: center;
        color: $slick-dot-color;
        opacity: $slick-opacity-not-active;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
      }
    }
    &.slick-active button:before {
      color: $slick-dot-color-active;
      opacity: $slick-opacity-default;
    }
  }
}

/*================ Theme-specific partials ================*/

/*================ Partials | Theme Form Overrides ================*/

::-webkit-input-placeholder {
   color: inherit;
   opacity: 0.5;
}

:-moz-placeholder {
   color: inherit;
   opacity: 0.5;
}

:-ms-input-placeholder {
   color: inherit;
   opacity: 0.5;
}

::-ms-input-placeholder {
   color: inherit;
   opacity: 1;
}

input,
textarea,
select {
  background-color: inherit;
  color: inherit;

  &[disabled],
  &.disabled {
    background-color: #f6f6f6;
    border-color: transparent;
  }

  &:active,
  &:focus {
    border: 1px solid #000;
  }
}

input[type="image"] {
  background-color: transparent;
}

/*================ Social share buttons ================*/

$shareButtonHeight: 18px;

.social-sharing {
  .icon {
    height: $shareButtonHeight;
    width: $shareButtonHeight;
  }
}

.social-sharing__link {
  display: inline-block;
  color: #000;
  border-radius: 2px;
  margin: 0 10px 0 0;
  height: $shareButtonHeight;
  line-height: $shareButtonHeight;
  text-decoration: none;
  font-weight: normal;

  &:last-child {
    margin-right: 0;
  }
}

.social-sharing__title {
  font-size: 14.45px;
  display: inline-block;
  vertical-align: middle;
  height: $shareButtonHeight;
  line-height: $shareButtonHeight;
  padding-right: 15px;
  padding-left: 3px;
}

.grid-search {
  margin-bottom: 30px;
}

.grid-search__product {
  position: relative;
  text-align: center;
}

// Force heights for consistency

.grid-search__page-link,
.grid-search__product-link {
  height: 280px;
}

.grid-search__page-link {
  display: block;
  background-color: adaptive-color(#fff, 2%);
  padding: 20px;
  color: #000;
  overflow: hidden;
  text-overflow: ellipsis;

  &:hover,
  &:focus {
    background-color: adaptive-color(#fff, 4%);
  }
}

.grid-search__page-content {
  display: block;
  height: 100%;
  overflow: hidden;
}

.grid-search__page-content img {
  display: block;
  margin-bottom: 10px;
}

.grid-search__image {
  display: block;
  padding: 20px;
  margin: 0 auto;
  max-height: 100%;
  max-width: 100%;

  @media only screen and (min-width: 769px) {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}

/*================ Partials | Sections ================*/

.index-section {
  margin: 35px 0;
  @media only screen and (min-width: 769px) {
    margin: 75px 0;
  }
}

.index-section--small {
  margin: (30px * 0.6) 0;
  @media only screen and (min-width: 769px) {
    margin: 30px 0;
  }
}

.index-section + .index-section,
.index-section + .index-section--hidden,
.main-content + .index-section {
  margin-top: 0;
}

.index-section--flush {
  margin: 0;
}

.section--divider {
  border-top: 1px solid #e8e8e1;
  padding-top: 35px;
  @media only screen and (min-width: 769px) {
    padding-top: 75px;
  }
}

.newsletter-section {
  padding: 35px 0;
  @media only screen and (min-width: 769px) {
    padding: 75px 0;
  }
}

.newsletter-section--with-divider {
  border-top: 1px solid #e8e8e1;
}

.index-section--footer .index-section {
  margin-top: 0;
}

/*================ Partials | Featured row section ================*/

.feature-row {
  margin: 0 auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: center;
      align-items: center;

  @include media-query($widescreen) {
    margin: 0 6%;
  }

  @include media-query($medium-down) {
    -ms-flex-direction: column;
        flex-direction: column;
    margin: 0;
  }
}

@include media-query($medium-down) {
  .feature-row--small-none {
    display: block;
  }
}

.feature-row__item {
  min-width: 50%;
  -ms-flex: 0 1 50%;
      flex: 0 1 50%;

  @include media-query($medium-down) {
    -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

.feature-row__image {
  display: block;
  margin: 0 auto;

  @include media-query($medium-down) {
    -ms-flex-order: 1;
        order: 1;
  }
}

.feature-row__text {
  font-size: 1.1em;
  padding-top: 30px;
  padding-bottom: 30px;

  @include media-query($medium-down) {
    -ms-flex-order: 2;
        order: 2;
    padding-top: 15px;
    padding-bottom: 0; // always last element on mobile
  }
  .rte {
    margin: 0;
  }
  .btn {
    margin: (15px) (30px / 3) 0 0;
  }
}

@media only screen and (min-width: 769px) {
  .feature-row__text--left {
    padding-left: 30px * 2;
  }

  .feature-row__text--right {
    padding-right: 30px * 2;
  }
}

@media only screen and (min-width: 769px) {
  .featured-row__subtext {
  }
}

/*================ Modules and sections ================*/

$slideshow-dot-size: 8px;

$slideshow-dot-size-large: 12px;

$slideshow-bar-hit-area: 18px;

$slideshow-bar-height: 4px;

$slideshow-bar-width: 150px;

$slideshow-bar-width-small: 40px;

.slick-slider {

  // Dots
  .slick-dots {

    li {
      vertical-align: middle;
    }

    // Inactive dot
    li,
    li button {
      width: $slideshow-dot-size;
      height: $slideshow-dot-size;
    }

    li button::before {
      width: $slideshow-dot-size;
      height: $slideshow-dot-size;
      border-radius: 100%;
    }

    // Active dot
    li.slick-active,
    li.slick-active button,
    li.slick-active button::before {
      width: $slideshow-dot-size-large;
      height: $slideshow-dot-size-large;
    }
  }

  // Dots transformed into bars
  &[data-bars] .slick-dots {
    // Inactive bar
    li,
    li button {
      padding: 0;
      width: $slideshow-bar-width;
      height: $slideshow-bar-hit-area;
    }

    // Position thin bar elements in middle of hit area
    li button::before,
    li button::after {
      content: '';
      width: $slideshow-bar-width;
      height: $slideshow-bar-height;
      border-radius: 0;
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-($slideshow-bar-height / 2));
    }

    li.slick-active button::before {
      opacity: 1;
    }

    li button::after {
      background-color: rgba(255,255,255,0.25);
      box-shadow: 0 0 75px rgba(0,0,0,0.8);
    }

    // Active dot
    li.slick-active,
    li.slick-active button {
      height: $slideshow-bar-hit-area;
    }

    li.slick-active button::before,
    li.slick-active button::after {
      width: $slideshow-bar-width;
      height: $slideshow-bar-height;
    }

    li.slick-active button::before {
      background-color: #fff;
    }

    @media only screen and (max-width: 768px) {
      li,
      li button,
      li button::before,
      li button::after,
      li.slick-active,
      li.slick-active button,
      li.slick-active button::before,
      li.slick-active button::after {
        width: $slideshow-bar-width-small;
      }
    }
  }

  // Bar is animated
  &[data-bars][data-autoplay="true"] .slick-dots {
    li button::before {
      width: 0%;
    }

    li.slick-active button::before {
      animation: slideshowBars 0s linear forwards;
    }
  }
}

.hero .slick-dots {
  bottom: 20px;

  li button::before {
    background-color: #fff;
  }
}

$z-index-slideshow-image: 1;

$z-index-slideshow-video: 2;

$z-index-slideshow-image-overlay: 3;

$z-index-slideshow-text: 4;

// Slick overrides

.hero.slick-dotted {
  margin-bottom: 0;
}

.slick-track {
  cursor: pointer;
  cursor: -webkit-grab;

  // Disable grab cursor if only a single slide
  [data-slide-count="1"] & {
    cursor: default;

    &:active {
      cursor: default;
    }
  }

  &:active {
    cursor: -webkit-grabbing;
  }
}

// To enable arrows

$slickArrowSize: 40px;

.slick-prev,
.slick-next {
  width: $slickArrowSize;
  height: $slickArrowSize;
  top: 40%;
  z-index: 20;

  &:before {
    color: #fff;
    font-size: 60px;
    line-height: $slickArrowSize;
    text-shadow: 0 0 20px rgba(0,0,0,1);
  }
}

.slick-prev {
  left: 25px;
  [dir="rtl"] & {
    right: 25px;
  }

  @media only screen and (max-width: 768px) {
    left: 10px !important;
    [dir="rtl"] & {
      right: 17px;
    }
  }
}

.slick-next {
  right: 25px;
  [dir="rtl"] & {
    left: 25px;
  }

  @media only screen and (max-width: 768px) {
    right: 17px;
    [dir="rtl"] & {
      left: 17px;
    }
  }
}

.hero {
  overflow: hidden;

  // Make sure slides fill full height
  .slideshow__slide,
  .slick-list,
  .slick-track {
    height: 100%;
  }
}

// General slideshow styles

.slideshow-wrapper {
  position: relative;
}

// Pause button (focusable by keyboard only)

.slideshow__pause:focus {
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  color: #fff;
  background-color: #000;
  padding: 10px;
  z-index: 10000;
  transition: none;

  .video-is-playing & {
    display: none;
  }
}

.slideshow__pause-stop {
  display: block;

  .is-paused & {
    display: none;
  }
}

.slideshow__pause-play {
  display: none;

  .is-paused & {
    display: block;
  }
}

// General slide styles

.slideshow__slide {
  display: none;
  position: relative;
  overflow: hidden;

  &:first-child {
    display: block;
  }
}

$z-index-hero-image: 1;

$z-index-hero-video: 2;

$z-index-hero-image-overlay: 3;

$z-index-hero-text: 4;

.hero {
  position: relative;
  overflow: hidden;
  background: #000;
}

.hero__media-container {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.hero__image-wrapper,
.hero__media {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;

  &:before {
    @include overlay($z-index-hero-image-overlay);
    @include heroScrim();

    .video-interactable & {
      pointer-events: none;
    }
  }
}

.hero__image {
  z-index: $z-index-hero-image;
}

.hero__media {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  z-index: $z-index-hero-image;
}

.hero__image-wrapper--no-overlay:before {
  content: none;
}

.hero__media iframe,
.hero__media video {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  pointer-events: none;

  .video-interactable & {
    pointer-events: auto;
  }
}

// Mobile only vimeo play button

.vimeo-mobile-trigger {
  display: block;
  position: absolute;
  width: 100%;
  z-index: 2;
  margin-top: 90px;

  .hero__text-content & {
    bottom: 120%;
  }

  .icon {
    width: 40px;
    height: 40px;
    background-color: #fff;
    border-radius: 50%;
    padding: 10px;
  }
}

.hero__media iframe,
.hero__media video {
  width: 300%;
  left: -100%;
  max-width: none;

  // This min-width may need to change slightly depending on
  // embedded video dimensions. Can do on a per-shop basis
  @media screen and (min-width: 1140px) {
    width: 100%;
    height: 300%;
    left: auto;
    top: -100%;
  }
}

.hero__slide-link {
  display: block;
  position: absolute;
  height: 100%;
  width: 100%;
  z-index: $z-index-hero-text + 1;

  &:hover {
    & ~ .hero__text-wrap .btn:not(.btn--secondary):not(.btn--tertiary):not(.btn--inverse) {
      background: lighten(#000, 10%);
      transition-delay: 0.25s;

      @if ($buttonStyle != 'angled') {
        &:after {
          animation: shine 0.75s cubic-bezier(0.01, 0.56, 1, 1);
        }
      }
    }
  }
}

.hero__text-wrap {
  position: relative;
  height: 100%;
  color: #fff;

  .video-interactable & {
    pointer-events: none;
  }

  .page-width {
    display: table;
    width: 100%;
    height: 100%;
  }
}

.hero__text-content {
  position: relative;
  padding: (15px) 0;
  z-index: $z-index-hero-text;
  @media only screen and (min-width: 769px) {
    padding: (30px * 1.5) 0;
  }
}

.hero__text-shadow {
  position: relative;
  display: inline-block;

  &:before {
    @include heroRadial;
  }
}

.hero__top-subtitle {
  @include accentFontStack;
  font-size: 1.1em;
  margin-bottom: 5px;
}

.hero__title {
  display: block;
  margin-bottom: 0;
}

.hero__subtext {
  margin-top: 20px;
}

.hero__subtitle {
  font-size: 1.3em;
  display: block;
  vertical-align: middle;
  margin-top: 5px;
  margin-bottom: 5px;
}

.hero__link {
  position: relative; // IE clickability fix
  display: block;

  .video-interactable & {
    pointer-events: auto;
  }

  .btn {
    margin: 10px 5px 2px 0;

    @media only screen and (min-width: 769px) {
      margin-top: 0;
    }

    @if ($buttonStyle == 'angled') {
      margin-left: #{12}px;
    }
  }

  .btn + .btn {
    margin-left: 10px;
  }

  // Extra padding in case inside animation cropper
  @if ($buttonStyle == 'angled') {
    .animation-cropper {
      padding-right: 10px;
    }
  }
}

// Text alignment

.hero__text-content {
  display: table-cell;

  .hero__link {
    margin-top: 30px / 4;

    @media only screen and (min-width: 769px) {
      margin-top: 15px;
    }
  }

  &.horizontal-left {
    text-align: left;
  }

  &.horizontal-center {
    text-align: center;
  }

  &.horizontal-right {
    text-align: right;
  }

  &.vertical-center {
    vertical-align: middle;
  }

  &.vertical-bottom {
    vertical-align: bottom;
  }
}

.slick-dotted .hero__text-content.vertical-bottom {
  padding-bottom: 50px;

  @media only screen and (min-width: 769px) {
    padding-bottom: 80px;
  }
}

// Top padding adjustment to account for overlaid header

.overlaid-header .index-section--hero:first-child .hero__text-content.vertical-center {
  padding-top: 50px;
  @media only screen and (min-width: 769px) {
    padding-top: 90px;
  }
}

// Slideshow height

.hero--450px {
  height: floor(450px * 0.65);
}

.hero--550px {
  height: floor(550px * 0.65);
}

.hero--650px {
  height: floor(650px * 0.65);
}

.hero--750px {
  height: floor(750px * 0.65);
}

.hero--100vh {
  height: 100vh;
}

.hero--natural[data-natural] {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

@media only screen and (min-width: 769px) {
  .hero--450px {
    height: 450px;
  }
  .hero--550px {
    height: 550px;
  }
  .hero--650px {
    height: 650px;
  }
  .hero--750px {
    height: 750px;
  }
}

@media only screen and (max-width: 768px) {
  .hero--mobile--250px:not([data-natural]) {
    height: 250px;
  }
  .hero--mobile--300px:not([data-natural]) {
    height: 300px;
  }
  .hero--mobile--400px:not([data-natural]) {
    height: 400px;
  }
  .hero--mobile--500px:not([data-natural]) {
    height: 500px;
  }
  .hero--mobile--100vh:not([data-natural]) {
    height: 90vh;
  }
}

// Align to top of page if first section on page

.index-section--hero:first-child {
  [data-align-top] .slideshow-wrapper {
    position: relative;
    z-index: 1;
  }
}

// Animations

@if (true) {
  [data-aos="hero__animation"],
  .hero .slideshow__slide {
    .hero__top-subtitle .animation-contents,
    .hero__title .animation-contents,
    .hero__subtitle .animation-contents,
    .hero__link .btn {
      opacity: 0;

      .no-js & {
        opacity: 1;
      }
    }

    .hero__media,
    .hero__image {
      opacity: 0;

      .no-js & {
        opacity: 1;
      }
    }
  }

  [data-aos="hero__animation"].loaded.aos-animate,
  .hero.loaded.aos-animate .slideshow__slide.slick-active {
    .hero__top-subtitle .animation-contents {
      animation: rise-up 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0.7s forwards;
    }

    .hero__title .animation-contents {
      animation: rise-up 0.8s cubic-bezier(0.26, 0.54, 0.32, 1) 0.3s forwards;
    }

    .hero__subtitle .animation-contents {
      animation: rise-up 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0.7s forwards;
    }

    .hero__link .btn {
      animation: fade-in 2s ease 1.3s forwards;
    }

    .hero__link .btn:nth-child(2) {
      animation: fade-in 2s ease 1.6s forwards;
    }

    .hero__media,
    .hero__image.lazyloaded,
    .hero__image--svg {
      animation: zoom-fade 2.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      transition: none; // fixes safari animation conflict
    }
  }

  $slideshowImageAnimationAmount: 200px;
  $slideshowImageAnimationSpeed: 0.5s;
  // Disable animations when not active or fading out
  .hero__image-wrapper {
    transform: translateX($slideshowImageAnimationAmount);
    opacity: 0;
    transition: none;
  }

  // Reset all text position for inactive slides
  .slideshow__slide {
    .hero__top-subtitle,
    .hero__title,
    .hero__subtitle {
      .animation-cropper {
        opacity: 0;
        transition: none;
      }
    }

    .hero__link {
      opacity: 0;
      transition: none;
    }
  }

  // Fading in animation
  .slick-current {
    .hero__image-wrapper {
      opacity: 1;
      transform: translateX(0px);
      transition: all ($slideshowImageAnimationSpeed + 0.2s) ease;
    }

    .hero__top-subtitle .animation-cropper {
      opacity: 1;
      transition: all $slideshowImageAnimationSpeed ease-in 0.64s;
    }

    .hero__title .animation-cropper {
      opacity: 1;
      transition: all $slideshowImageAnimationSpeed ease-in 0.25s;
    }

    .hero__subtitle .animation-cropper {
      opacity: 1;
      transition: all $slideshowImageAnimationSpeed ease-in 0.64s;
    }

    .hero__link {
      opacity: 1;
      transition: all ($slideshowImageAnimationSpeed + 0.11s) ease-in 1.18s;
    }
  }

  // Fading out animation
  .slideshow__slide.animate-out {
    .hero__image-wrapper {
      opacity: 0;
      transform: translateX(-($slideshowImageAnimationAmount));
      transition: all $slideshowImageAnimationSpeed ease-in 0.05s;
    }

    // Remove all text at once
    .hero__top-subtitle,
    .hero__title,
    .hero__subtitle {
      .animation-cropper {
        opacity: 0;
        transition: none;
      }
    }

    .hero__link {
      opacity: 0;
      transition: none;
    }
  }
}

@else {
  [data-aos="hero__animation"] {
    .hero__media,
    .hero__image {
      opacity: 0;

      .no-js & {
        opacity: 1;
      }
    }
  }

  [data-aos="hero__animation"].loaded {
    .hero__media,
    .hero__image {
      animation: fade-in 1.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      transition: none; // fixes safari animation conflict
    }
  }
}

/*================ Collection callout section ================*/

.callout-images {
  position: relative;
  height: 225px;
  width: 225px;
  max-width: 100%;
  margin: 20px auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;

  @media only screen and (min-width: 769px) {
    height: 450px;
    width: 450px;
  }
}

.callout-image-centered {
  position: relative;
  width: 140px;

  @media only screen and (min-width: 769px) {
    width: 280px;
  }
}

.callout-image-placeholder {
  display: block;
  max-height: 100%;
  margin: 0 auto 30px;

  @media only screen and (max-width: 768px) {
    max-width: 585px;
    margin: -75px 0 0 -145px;
  }
}

// Prevent images from overlapping text

.feature-row__callout-image + .feature-row__text .feature-row__content {
  background-color: #fff;
  position: relative;
  z-index: 3;
  margin: -10px;
  padding-left: 10px;
}

@media only screen and (min-width: 769px) {
  .feature-row__callout-image {
    -ms-flex-order: 2;
        order: 2;
  }
  .feature-row__callout-text.feature-row__text--left {
    -ms-flex-order: 1;
        order: 1;
    padding: 0 (30px * 2) 0 0;
  }
  .feature-row__callout-text.feature-row__text--right {
    -ms-flex-order: 3;
        order: 3;
    padding: 0 0 0 (30px * 2);
  }
}

.callout-image {
  position: absolute;
  transition: all 2.5s cubic-bezier(0.39, 0.68, 0.29, 1) 0.5s;
  z-index: 1;
  background-color: #fff;

  &:nth-child(1) {
    position: relative;
    width: 100%;
    z-index: 2;
  }

  &:nth-child(2) {
    bottom: 50%;
    left: 50%;
    transform: translate3d(-50%, 50%, 0);
    max-width: 90px;

    @media only screen and (min-width: 769px) {
      max-width: 180px;
    }
  }

  &:nth-child(3) {
    top: 50%;
    right: 50%;
    transform: translate3d(50%, -50%, 0);
    max-width: 80px;

    @media only screen and (min-width: 769px) {
      max-width: 160px;
    }
  }

  &:nth-child(4) {
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    max-width: 100px;

    @media only screen and (min-width: 769px) {
      max-width: 200px;
    }
  }

  &:nth-child(5) {
    right: 50%;
    bottom: 50%;
    transform: translate3d(50%, 50%, 0);
    max-width: 50px;

    @media only screen and (min-width: 769px) {
      max-width: 100px;
    }
  }
}

[data-aos="collection-callout"].aos-animate .callout-image {
  &:nth-child(1) {
    box-shadow: 0 10px 15px rgba(0,0,0,0.3);
  }
  &:nth-child(2) {
    bottom: 46%;
    left: -64px;
    transform: translate3d(0, 0, 0);
  }
  &:nth-child(3) {
    top: 52%;
    right: -60px;
    transform: translate3d(0, 0, 0);
  }
  &:nth-child(4) {
    top: 48%;
    left: -50px;
    transform: translate3d(0, 0, 0);
  }
  &:nth-child(5) {
    bottom: 54%;
    right: -40px;
    transform: translate3d(0, 0, 0);
  }

  @media only screen and (min-width: 769px) {
    &:nth-child(1) {
      box-shadow: 0 20px 30px rgba(0,0,0,0.3);
    }
    &:nth-child(2) {
      left: -128px;
    }
    &:nth-child(3) {
      right: -120px;
    }
    &:nth-child(4) {
      left: -100px;
    }
    &:nth-child(5) {
      right: -80px;
    }
  }
}

.collection-content {
  padding-top: 30px * 0.75; // same as page-content

  @media only screen and (min-width: 769px) {
    padding-top: 30px * 1.5;
  }
}

.collection-filter {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: end;
      justify-content: flex-end;

  @media only screen and (max-width: 768px) {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  select,
  .btn {
    height: 44px; // magic number, just in filter menu
    font-size: 16px;
  }

  select {
    display: block;
    width: 100%;
  }

  .btn {
    padding: 0 20px; // because it has a fixed height

    @media only screen and (max-width: 768px) {
      width: 100%;
      text-align: left;
    }

    .icon {
      position: relative;
      top: -2px;
      margin-right: 10px;
    }
  }
}

.collection-filter__item {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  margin-bottom: 15px;
}

.collection-filter__item--drawer {
  -ms-flex: 0 1 50%;
      flex: 0 1 50%;
  padding-right: 30px / 4;
}

.collection-filter__item--count {
  -ms-flex: 1 1 170%;
      flex: 1 1 170%;
  text-align: center;
}

.collection-filter__item--sort {
  -ms-flex: 0 1 50%;
      flex: 0 1 50%;
  padding-left: 30px / 4;
}

@media only screen and (max-width: 768px) {
  .collection-filter__item--count {
    -ms-flex-order: 3;
        order: 3;
    -ms-flex: 1 1 100%;
        flex: 1 1 100%;
  }
}

/*================ Module | Collection images at top of templates ================*/

$collectionHeroLarge: 420px;

$collectionHeroSmall: 250px;

.collection-hero {
  position: relative;
  width: 100%;
  height: $collectionHeroSmall;
  overflow: hidden;
  background: #000;

  @media only screen and (min-width: 769px) {
    height: $collectionHeroLarge;
  }
}

.collection-hero__spacer {
  height: $collectionHeroSmall;
  @media only screen and (min-width: 769px) {
    height: $collectionHeroLarge;
  }
}

.collection-hero__content {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: end;
      align-items: flex-end;
  padding: (15px) 0;
  z-index: 1;

  @media only screen and (min-width: 769px) {
    padding: 30px 0;
  }

  @if ($type_header_text_center) {
    -ms-flex-align: center;
        align-items: center;
  }

  // Account for overlayed header/toolbar
  .overlaid-header & {
    padding-top: 70px;

    @media only screen and (min-width: 769px) {
      padding-top: 100px;
    }
  }

  .page-width {
    width: 100%;
  }

  &:before {
    @include overlay();
    @include heroScrim();
    display: block;
  }

  .section-header {
    opacity: 0;
    animation: fade-in 0.5s forwards 1s;
  }
}

// Apply animations

@if (true) {
  .collection-hero__image {
    opacity: 0;

    .no-js & {
      opacity: 1;
    }

    &.lazyloaded {
      animation: zoom-fade 2.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      transition: none; // fixes safari animation conflict
    }
  }
}

// Unload ajax styles

.grid--collection.unload {
  min-height: 180px;
  background: transparent url(//www.zacharia-accessories.com/cdn/shop/t/51/assets/ajax-loader.gif) center 150px no-repeat;

  .grid__item {
    opacity: 0;
    transition-duration: 0.3s;
    animation: grid-product__loading 1.5s ease infinite 1.5s;
  }
}

/*================ Collection sidebar ================*/

.collection-sidebar {
  padding-right: 10px;
  margin-bottom: 20px;
}


/* Hide scrollbar for Chrome, Safari and Opera */
.grid__item--sidebar ::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE and Edge */
.grid__item--sidebar  {
    -ms-overflow-style: none;
}



@media only screen and (min-width: 769px) {
  .grid__item--sidebar {
    position: -webkit-sticky;
    position: sticky;
    top: 10px; // updated with sticky header JS
    //max-height: 90vh;
  }
}

.collection-sidebar__group {
  border-top: 1px solid #e8e8e1;
  padding-top: 5px;
  margin-top: 5px;
  margin-bottom: 5px;

  &:first-child {
    margin-top: 0;

    .drawer & {
      border-top: 0;
    }
  }

  @media only screen and (min-width: 769px) {
    .collapsible-content__inner {
      padding-bottom: 5px;
    }
  }

  .tag-list {
    margin-bottom: 0;
  }
}

// Remove top border from first sidebar group

.collection-sidebar div:first-of-type .collection-sidebar__group {
  border-top: 0;
  padding-top: 0;
}

/*================ Logo Image ================*/

.site-header__logo .logo--has-inverted {
  .is-light & {
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    height: 0;
  }
}

.site-header__logo .logo--inverted {
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  height: 0;

  .is-light & {
    opacity: 1;
    visibility: visible;
    height: auto;
  }
}

/*================ Text Shop Name ================*/

.site-header__logo {
  @media only screen and (min-width: 769px) {
    text-align: left;
  }
}

.site-header__logo a,
.header-logo a {
  color: #000;

  .is-light & {
    color: #fff;

    &:hover {
      color: #fff;
    }
  }
}

.site-header {
  @if (#fff == #fff) {
    border-bottom: 1px solid #e8e8e1;
  }
  .is-light & {
    border-bottom: none;
  }
}

/*================ Submenu items ================*/

.site-nav__dropdown-link {
  display: block;
  padding: 8px 15px;
  white-space: nowrap;

  .megamenu & {
    padding: 4px 0;
    white-space: normal;
  }
}

/*================ Module | Theme Tags ================*/

$tagActiveIconSize: 16px;

.tag-list__header {
  text-align: left;
}

.tag-list .tag-list {
  margin-left: 15px;
}

.tag-list a {
  display: block;
  line-height: 2;
}

.tag--active > a {
  font-weight: 900;
}

.tag-list--checkboxes a {
  position: relative;
  padding-left: 25px;

  &:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }

  &:before {
    border: 1px solid #e8e8e1;
    height: $tagActiveIconSize;
    width: $tagActiveIconSize;
  }
}

.tag-list--checkboxes .tag--active a:before {
  background-color: #000;
  border-color: #000;
}

// Remove tags (top of sidebar)

.tag--remove {
  position: relative;

  a {
    text-align: left;
  }

  // X icon sits over button, not in it
  .icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #fff;
  }
}

// Color swatches in sidebar

.tag-list--swatches {
  margin-top: 2px;
  margin-left: -4px; // same as .color-swatch margin

  .drawer & {
    margin-left: -2px;
  }

  li {
    display: inline-block;
  }
}

$label-bottom-margin: 12px;

.variant-input-wrap {
  border: 0;
  padding: 0;
  margin: 0 0 (30px / 1.5);
  position: relative;

  input {
    @include visuallyHidden;
  }

  label {
    font-size: 17px;
    position: relative;
    display: inline-block;
    font-weight: normal;
    padding: 7px 15px 7px;
    margin: 0 8px $label-bottom-margin 0;
    background-color: #fff;
    box-shadow: 0 0 0 1px #e8e8e1;

    @if ($type_body_text_center) {
      margin: 0 4px $label-bottom-margin;
    }

    &.disabled {
      color: #e8e8e1;
    }

    &.disabled:after {
      position: absolute;
      content: "";
      left: 50%;
      top: 0;
      bottom: 0;
      border-left: 1px solid;
      border-color: #e8e8e1;
      transform: rotate(45deg);
    }
  }

  input[type='radio']:focus + label {
    background-color: rgba(#000, 0.05);
    box-shadow: 0 0 0 1px #000;
  }

  input[type='radio']:checked + label {
    box-shadow: 0 0 0 2px #000;
  }
}

.variant-input {
  display: inline-block;

  // Firefox bug fix
  select & {
    display: block;
  }
}

.variant-wrapper {
  margin-bottom: -$label-bottom-margin;

  .no-js & {
    display: none;
  }
}

.variant-wrapper--dropdown {
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 0;
}

.variant__label[for] {
  display: block;
  margin-bottom: 10px;
  cursor: default;
}

.variant__label-info {
  // undo accent stack styles
  text-transform: none;
  font-weight: normal;
  letter-spacing: 0;
}

.grid-product {
  margin-bottom: 15px;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px;
  }

  @media only screen and (max-width: 768px) {
    .grid-overflow-wrapper & {
      margin-bottom: 0;
    }
  }
}

.grid-product__content {
  position: relative;
  text-align: left;
}

.grid-product__title--heading {
      font-weight: 700;     letter-spacing: 0em;     line-height: 1;
  font-size: 17px + 2;
  @if $type_header_line_height < 1 {
    line-height: 1;
  }
}

.grid-product__link {
  display: block;
}

.grid-product__image-mask {
  position: relative;
  overflow: hidden;

  .grid-product__link--disabled &,
  .grid-product__link--disabled:hover &,
  .grid-product__link--disabled:focus & {
    opacity: 0.5;
  }
}

.grid-product__image {
  display: block;
  margin: 0 auto;
  width: 100%;
}

.grid-product__secondary-image {
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0;
  background-color: #fff;

  .grid-product__image-mask:hover & {
    @if (true) {
      @if (fade-in == 'zoom-fade') {
        animation: #{fade-in}-small 5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      } @else {
        animation: #{fade-in}-small 0.2s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      }
    } @else {
      opacity: 1;
    }
  }

  @media only screen and (max-width: 768px) {
    .supports-touch & {
      display: none;
    }
  }
}

.grid-product__color-image {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 0.4s ease;
  background-color: #fff;

  &.is-active {
    @if (true) {
      @if (fade-in == 'zoom-fade') {
        animation: #{fade-in}-small 5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      } @else {
        animation: #{fade-in}-small 0.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
      }
    } @else {
      opacity: 1;
    }
  }
}

.product-form-holder {
  opacity: 0;
  transition: opacity 0.4s ease;

  &.is-active {
    opacity: 1;
  }
}

 

.grid-product__meta {
  text-align: center;
  position: relative;
  padding: 10px 0 6px 0;
  line-height: 1.5;
}

.grid-product__vendor {
  @include accentFontStack;
  @include accentFontSmallSize;
  margin-top: 3px;
}

.grid-product__price {
  font-size: 14.45px;
  color: #000;
  margin-top: 3px;
}

.grid-product__price--original {
  text-decoration: line-through;
  margin-right: 5px;
}

.grid-product__price--savings {
  color: #ff4e4e;
  margin-left: 5px;
  white-space: nowrap;
}

// Product sale and sold out tag

.grid-product__tag {
  font-size: 14.45px;
  position: absolute;
  top: 0;
  right: 0;
  line-height: 1;
  padding: 6px 5px 6px 7px;
  background-color: #000;
  color: #fff;
  z-index: 1;
  transition: opacity 0.4s ease;

  @media only screen and (min-width: 769px) {
    padding: 7px 7px 7px 9px;
  }
}

// Quick shop

.quick-product__btn {
  font-size: 14.45px;
  position: absolute;
  bottom: 5px;
  right: 5px;
  left: 5px;
  z-index: 2;
  background-color: #000;
  color: #fff;
  overflow: hidden;
  padding: 8px 5px;
  text-align: center;
  cursor: pointer;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 0.15s ease, transform 0.15s ease-out, background 0.3s ease;

  .no-js & {
    display: none;
  }

  .grid-product__content:hover & {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.15s ease, transform 0.15s ease-out;
  }
}

// Mobile horizontal overflow grid

@media only screen and (max-width: 768px) {
  .grid-overflow-wrapper {
    overflow: hidden;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 30px / 1.5;

    .grid {
      white-space: nowrap;
      display: -ms-flexbox;
      display: flex;
    }

    .grid__item {
      width: 39vw;
      -ms-flex: 0 0 39vw;
          flex: 0 0 39vw;
      display: inline-block;
      float: none;
      white-space: normal;

      &:first-child {
        margin-left: 17px;
      }

      &:last-child:after {
        content: '';
        display: inline-block;
        width: 100%;
        margin-right: 17px;
      }
    }

    .grid__item--view-all {
      -ms-flex-item-align: center;
          -ms-grid-row-align: center;
          align-self: center;
    }

    .grid__item,
    .grid-product__price {
      font-size: 0.75rem;
    }

  }

  [data-aos="overflow__animation"] {
    transform: translateX(100vw);
    transition: all 0.8s cubic-bezier(.25,.46,.45,.94);

    &.aos-animate {
      transform: translateX(0);
    }
  }
}

// See all (mobile overflow)

.grid-product__see-all {
  display: inline-block;
  padding: 15px;
  text-align: center;
  border: 1px solid #e8e8e1;
  margin-top: -60px; // approx of what title+price is
}

.grid-product__colors {
  text-align: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  line-height: 15px;

  @media only screen and (min-width: 769px) {
    line-height: 15pxLarge;
  }

  & + & {
    margin-top: 4px;
  }
}

.color-swatch {
  position: relative;
  display: block;
  text-indent: -9999px;
  overflow: hidden;
  margin: 0 4px 4px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  width: 2.5em;
  box-shadow: 0 0 0 1px #e8e8e1;
  transition: box-shadow 0.2s ease; 
    border-radius: 100%; 

  &:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
  }

  &:before {
    border: 3px solid #fff;
 
      border-radius: 100%;
      border-width: 4px;
      top: -1px;
      left: -1px;
      right: -1px;
      bottom: -1px;
     
  }
}

 
a.color-swatch:hover,
.tag:not(.tag--active) a:hover .color-swatch:hover {
  box-shadow: 0 0 0 1px #000;
}

.tag--active .color-swatch {
  box-shadow: 0 0 0 2px #000;
}

.color-swatch--small {
  width: 15px;
  height: 15px;

  @media only screen and (min-width: 769px) {
    width: 15pxLarge;
    height: 15pxLarge;
  }

  &:before {
    border: 2px solid #fff;
 
      border-width: 3px; 
  }
}

.color-swatch--filter {
  width: 35px;
  height: 35px;
}

.tag--active .color-swatch--filter:hover:after {
  position: absolute;
  content: "";
  left: 50%;
  top: 0;
  bottom: 0;
  border-left: 1px solid;
  border-color: #e8e8e1;
  transform: rotate(45deg);
}

.collection-item {
  position: relative;
  display: block;
  margin-bottom: 17px;
  overflow: hidden;

  @media only screen and (min-width: 769px) {
    margin-bottom: 22px;
  }

  .grid--no-gutters & {
    margin-bottom: 0; 
    &:hover .collection-image {
      transform: scale(1.03,1.03);
      transition: all 0.8s ease;
    } 
}

.collection-item:not(.collection-item--below) {
  &:after {
    @include overlay;
    background-color: $colorGridOverlay;
    opacity: 10;
    transition: opacity 0.8s ease;
  }

  &:hover:after {
    opacity: (10 + 0.15);
  }
}

 

.collection-image {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  transition: transform 0.3s ease;

  @if (true) {
    opacity: 0;
  }

  .collection-item--below & {
    background-size: contain;
  }
}

.collection-image--placeholder {
  opacity: 1;

  svg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
}

.collection-image--square {
  padding-bottom: 100%;
}

.collection-image--landscape {
  padding-top: 75%;
}

.collection-image--portrait {
  padding-top: 150%;
}

// Title

.collection-item__title {
  display: block;
  z-index: 2;

  .collection-item--below & {
    margin-top: 5px;
  }
}

.collection-item__title--heading {
      font-weight: 700;     letter-spacing: 0em;     line-height: 1;
     width:100%;
     display:inline-block;
    text-align:center;
    margin-top:10px;
}

.collection-item__title--overlaid,
.collection-item__title--overlaid-box {
  display: block;
  position: absolute;
  left: 7px;
  right: 7px;

  @media only screen and (min-width: 769px) {
    left: 15px;
    right: 15px;
  }
}

.collection-item__title--overlaid {
  color: #fff;
  text-shadow: 0 0 50px rgba(0,0,0,1);
}

.collection-item__title--overlaid-box {
  > span {
    display: inline-block;
    background-color: #fff;
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
    padding: 8px 15px;
    color: #000;
  }
}

// Title alignment

.collection-item__title--top-center,
.collection-item__title--center,
.collection-item__title--bottom-center {
  text-align: center;
}

.collection-item__title--top-right
.collection-item__title--right,
.collection-item__title--bottom-right {
  text-align: right;
}

.collection-item__title--left,
.collection-item__title--center,
.collection-item__title--right {
  &[class*="collection-item__title--overlaid"] {
    top: 50%;
    transform: translateY(-50%);
  }
}

// Top align some titles

.collection-item__title--top-left,
.collection-item__title--top-center,
.collection-item__title--top-right {
  &[class*="collection-item__title--overlaid"] {
    top: 7px;

    @media only screen and (min-width: 769px) {
      top: 15px;
    }
  }
}

// Bottom align some titles

.collection-item__title--bottom-left,
.collection-item__title--bottom-center,
.collection-item__title--bottom-right {
  &[class*="collection-item__title--overlaid"] {
    bottom: 7px;

    @media only screen and (min-width: 769px) {
      bottom: 15px;
    }
  }
}

.custom-content {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: stretch;
      align-items: stretch;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: auto;
  margin-bottom: -22px;
  margin-left: -22px;

  @media only screen and (max-width: 768px) {
    margin-bottom: -17px;
    margin-left: -17px;
  }
}

.custom__item {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  margin-bottom: 22px;
  padding-left: 22px;
  max-width: 100%;

  @media only screen and (max-width: 768px) {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    padding-left: 17px;
    margin-bottom: 17px;

    &.small--one-half {
      -ms-flex: 1 0 50%;
          flex: 1 0 50%;
      max-width: 400px;
      margin-left: auto;
      margin-right: auto;
    }
  }

  img {
    display: block;
  }
}

.custom__item-inner {
  position: relative;
  display: inline-block;
  text-align: left;
  max-width: 100%;
  width: 100%;
}

.custom__item-inner--video,
.custom__item-inner--html {
  display: block;
}

.custom__item-inner--image {
  width: 100%;
}

.custom__item-inner--html img {
  display: block;
  margin: 0 auto;
}

.custom__item-inner--placeholder-image {
  width: 100%;
}

/*================ Flex item alignment ================*/

.align--top-middle {
  text-align: center;
}

.align--top-right {
  text-align: right;
}

.align--middle-left {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}

.align--center {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  text-align: center;
}

.align--middle-right {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  text-align: right;
}

.align--bottom-left {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align--bottom-middle {
  -ms-flex-item-align: end;
      align-self: flex-end;
  text-align: center;
}

.align--bottom-right {
  -ms-flex-item-align: end;
      align-self: flex-end;
  text-align: right;
}

.article__grid-image {
  display: block;
  text-align: center;
  margin-bottom: 30px / 1.5;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px;
  }

  img {
    display: block;
  }
}

@media only screen and (max-width: 768px) {
  .article__title {
    font-size: 17px;
  }
}

.article__date {
  @include baseExtraSmallFontStack;

  .section-header & {
    margin-bottom: 15px;
  }
}

.article__author {
  margin-top: 2px;
  @include baseExtraSmallFontStack;
}

.article__grid-meta {
  margin-bottom: 30px;

  @media only screen and (min-width: 769px) {
    text-align: center;
  }
}

.article__excerpt {
  margin-top: 10px;
}

.logo-bar {
  text-align: center;
  margin-bottom: -30px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.logo-bar__item {
  -ms-flex: 0 1 110px;
      flex: 0 1 110px;
  vertical-align: middle;
  margin: 0 15px 20px;
  @media only screen and (min-width: 769px) {
    -ms-flex: 0 1 160px;
        flex: 0 1 160px;
    margin: 0 20px 30px;
  }
}

.logo-bar__image {
  display: block;
  margin: 0 auto;
}

.logo-bar__link {
  display: block;
}

/*
@if (true) {
  [data-aos="logo__animation"] .logo-bar__item {
    opacity: 0;
  }

  [data-aos="logo__animation"].aos-animate .logo-bar__item {
    animation: fade-in 0.5s ease 0s forwards;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(2) {
    animation-delay: 0.2s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(3) {
    animation-delay: 0.4s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(4) {
    animation-delay: 0.6s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(5) {
    animation-delay: 0.8s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(6) {
    animation-delay: 1.0s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(7) {
    animation-delay: 1.2s
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(8) {
    animation-delay: 1.4s;
  }
  [data-aos="logo__animation"].aos-animate .logo-bar__item:nth-child(9) {
    animation-delay: 1.6s;
  }
}
*/

.background-media-text {
  position: absolute;
  width: 100%;
  overflow: hidden;
  background: #000;
}

.background-media-text__video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  z-index: 0;
}

.background-media-text__video {
  @media only screen and (max-width: 768px) {
    width: 300%;
    left: -100%;
  }

  iframe,
  video {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: none;

    @media only screen and (min-width: 769px) {
      height: 120%;
      max-width: none;
      left: -100%;
      height: 150%;
      width: 300%;
    }

    // This min-width may need to change slightly depending on
    // embedded video dimensions. Can do on a per-shop basis
    @media screen and (min-width: 1140px) {
      width: 100%;
      height: 300%;
      left: auto;
      top: -100%;
    }
  }
}

.background-media-text__inner {
  position: absolute;
  z-index: 1;
  width: 100%;
}

.background-media-text__aligner {
  margin: (30px * 2);
}

.background-media-text__text {
  text-align: left;
  font-size: 1.1em;
  background: #fff;
  padding: 30px;
  width: 380px;
}

.background-media-text__text--framed {
  border: 7px solid #fff;
  box-shadow: inset 0 0 0 2px #000;

  @media only screen and (min-width: 769px) {
    border-width: 10px;
  }
}

.background-media-text__text .btn {
  margin-top: 15px;
}

@media only screen and (min-width: 769px) {
  .background-media-text--right .animation-cropper {
    float: right;
  }
}

// Section height

.background-media-text__container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

@media only screen and (min-width: 769px) {
  [data-parallax] .background-media-text__container {

  }
}

@media only screen and (max-width: 768px) {
  .background-media-text {
    position: relative;
  }
  .background-media-text__inner {
    position: relative;
  }
  .background-media-text__container,
  .background-media-text__video {
    position: relative;
    height: 240px;

    .promo-video & {
      height: 550px;
    }
  }
  .background-media-text__aligner {
    margin: -6px 6px 6px;
  }
  .background-media-text__text {
    padding: 30px * 0.75;
    width: auto;
  }
  .background-media-text.loading {
    &:before, &:after {
      top: 117px;
    }
  }
}

@media only screen and (min-width: 769px) {
  .background-media-text__spacer.background-media-text--450,
  .background-media-text--450,
  .background-media-text--450 .background-media-text__video {
    min-height: 450px;
  }
  .background-media-text__spacer.background-media-text--550,
  .background-media-text--550,
  .background-media-text--550 .background-media-text__video {
    min-height: 550px;
  }
  .background-media-text__spacer.background-media-text--650,
  .background-media-text--650,
  .background-media-text--650 .background-media-text__video {
    min-height: 650px;
  }
  .background-media-text__spacer.background-media-text--750,
  .background-media-text--750,
  .background-media-text--750 .background-media-text__video {
    min-height: 750px;
  }
}

@if (true) {
  [data-aos="background-media-text__animation"] .background-media-text__image,
  [data-aos="background-media-text__animation"] .background-media-text__image svg,
  [data-aos="background-media-text__animation"] .background-media-text__video {
    opacity: 0;

    .no-js & {
      animation: none;
      opacity: 1;
    }
  }

  [data-aos="background-media-text__animation"].aos-animate .background-media-text__image.lazyloaded,
  [data-aos="background-media-text__animation"].aos-animate .background-media-text__image svg,
  [data-aos="background-media-text__animation"].loaded.aos-animate .background-media-text__video {
    animation: zoom-fade 2.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
    transition: none; // fixes safari animation conflict
  }

  @media only screen and (min-width: 769px) {
    [data-aos="background-media-text__animation"] .background-media-text__inner .animation-contents {
      opacity: 0;

      .no-js & {
        animation: none;
        opacity: 1;
      }
    }

    [data-aos="background-media-text__animation"].loaded.aos-animate .background-media-text__inner .animation-contents {
      animation: rise-up 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0.5s forwards;
    }
  }
}

@else {
  [data-aos="background-media-text__animation"] .background-media-text__video {
    opacity: 0;

    .no-js & {
      opacity: 1;
    }
  }

  [data-aos="background-media-text__animation"].loaded .background-media-text__video {
    animation: fade-in 1.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
  }
}

.quote-icon {
  display: block;
  margin: 0 auto 20px;
}

// Text styles

.testimonials-slider__text {
  padding: 0;
  margin-bottom: 30px * 1.5;

  .slick-slider & {
    margin-right: 30px;
    margin-bottom: 0;
  }

  .text-center .slick-slider & {
    margin-left: 15px;
    margin-right: 15px;
  }

  cite {
    font-style: normal;
  }

  p {
    margin-bottom: 30px / 4;

    + cite {
      margin-top: 0;
    }
  }
}

// Section image

$testimonialImageSize: 142px;

.testimonail-image {
  max-width: $testimonialImageSize;
  background-color: #fff;

  .text-center & {
    margin-left: auto;
    margin-right: auto;
  }
}

.testimonail-image--round {
  width: $testimonialImageSize;
  height: $testimonialImageSize;
  max-width: none;
  border-radius: $testimonialImageSize;

  // fix animation bug in Safari
  img {
    overflow: hidden;
    border-radius: $testimonialImageSize;
  }
}

// Slick overrides

.testimonials-slider.slick-initialized {
  cursor: -webkit-grab;
  cursor: grab;
}

@media only screen and (min-width: 769px) {
  .testimonials-slider.slick-initialized[data-count="1"],
  .testimonials-slider.slick-initialized[data-count="2"],
  .testimonials-slider.slick-initialized[data-count="3"] {
    cursor: default;

    .slick-track {
      cursor: default;
    }
  }
}

// Slick dot positioning and color

.testimonials-wrapper .slick-dots {
  position: relative;
  bottom: 0;
  margin-top: 15px;

  li button::before {
    background-color: #000;
  }
}

// Slick selected outline overrides

.testimonials-wrapper .slick-slide[tabindex="0"] {
  outline: none;
}

.announcement-bar {
  font-size: 14.45px;
  position: relative;
  text-align: center;
  background-color: #0f0f0f;
  color: #fff;
  padding: 10px 0;

  @if (#0f0f0f == #fff) {
    border-bottom: 1px solid #e8e8e1;
  }
}

.announcement-slider__slide {
  display: none;
  position: relative;
  overflow: hidden;
  padding: 0 5px;

  &:first-child {
    display: block;
  }
}

// Announcement text styles

.announcement-link {
  display: block;
  color: #fff;

  &:hover,
  &:active {
    color: #fff;
  }
}

.announcement-text {
  font-weight: bold;
  display: block;
}

.announcement-link-text {
  display: block;

  .announcement-link & {
    text-decoration: underline;
  }

  a {
    color: inherit;
  }
}

@media only screen and (min-width: 769px) {
  .announcement-slider--compact {
    .announcement-text,
    .announcement-link-text {
      display: inline;
    }

    .announcement-text + .announcement-link-text {
      padding-left: 5px;
    }
  }
}

.shopify-challenge__container {
  padding: 30px 22px;
  @media only screen and (min-width: 769px) {
    padding: 120px 0;
  }
}

.newsletter {
  margin: 0 auto;
  max-width: 520px;
}

.newsletter-section .errors {
  margin-left: auto;
  margin-right: auto;
  max-width: 520px;
}

.modal .newsletter .h1 {
  margin-bottom: 15px;
  @media only screen and (min-width: 769px) {
    margin-bottom: 30px;
  }
}

.modal .newsletter .image-wrap {
  margin-bottom: 30px / 4;
  @media only screen and (min-width: 769px) {
    margin-bottom: 15px;
  }
}

.modal .newsletter .text-close {
  text-decoration: underline;
}

.newsletter__input-group {
  margin: 0 auto 20px;
  max-width: 400px;

  &:last-child {
    margin-bottom: 0;
  }
}

.newsletter__input {
  &::-webkit-input-placeholder {
    color: #000;
    opacity: 1;
  }

  &:-moz-placeholder {
    color: #000;
    opacity: 1;
  }

  &::-moz-placeholder {
    color: #000;
    opacity: 1;
  }

  &:-ms-input-placeholder {
    color: #000;
  }

  &::-ms-input-placeholder {
    color: #000;
    opacity: 1;
  }
}

@media only screen and (max-width: 768px) {
  .form__submit--large {
    display: none;
  }

  .form__submit--small {
    display: block;
  }
}

@media only screen and (min-width: 769px) {
  .form__submit--large {
    display: block;
  }

  .form__submit--small {
    display: none;
  }
}

div[data-section-type="fading-images"] {
  overflow: hidden; // IE11 fix
}

.fading-images {
  position: relative;
  overflow: hidden;
  background: #000;
  transform: translateZ(0);
}

.fading-images-overlay__overlay {
  position: relative;

  &::before {
    @include overlay(1);
    z-index: 3;
  }
}

.fading-images-overlay__inner {
  position: relative;
  padding: 30px 0;
  z-index: 3;
}

.fading-images__item {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-size: cover;
  opacity: 0;

  .no-js & {
    opacity: 1;
  }
}

// Text alignment

.fading-images-overlay__inner--top-center,
.fading-images-overlay__inner--center,
.fading-images-overlay__inner--bottom-center {
  text-align: center;
}

.fading-images-overlay__inner--top-right,
.fading-images-overlay__inner--right,
.fading-images-overlay__inner--bottom-right {
  text-align: right;
}

.fading-images-overlay__inner--left,
.fading-images-overlay__inner--center,
.fading-images-overlay__inner--right {
  top: 50%;
  transform: translateY(-50%);
}

.fading-images-overlay__inner--bottom-left,
.fading-images-overlay__inner--bottom-center,
.fading-images-overlay__inner--bottom-right {
  position: absolute;
  width: 100%;
  bottom: 0;
}

// Title animations

.fading-images-overlay__titles {
  margin: 0;
}

.fading-images-overlay__titles .animation-cropper {
  display: block;
}

.fading-images-overlay__title {
  display: inline-block;
  padding: 0 5px;
  background-color: #fff;
  color: #000;

  .animation-cropper:first-child & {
    margin-bottom: 4px;
  }
}

.active-titles .fading-images-overlay__title {
  animation: rise-up 1.2s forwards;
}

.finished-titles .fading-images-overlay__title {
  animation: #{rise-up}-out 0.75s forwards;
}

// Image animations

.active-image.lazyloaded {
  animation: kenburns 7s linear forwards;
  z-index: 2;
}

.finished-image.lazyloaded {
  animation: kenburns-out 1s linear forwards;
  z-index: 1;
}

// Section sizes

.fading-images--250 {
  height: floor(250px * 0.65);
}

.fading-images--350 {
  height: floor(350px * 0.65);
}

.fading-images--450 {
  height: floor(450px * 0.65);
}

.fading-images--550 {
  height: floor(550px * 0.65);
}

.fading-images--650 {
  height: floor(650px * 0.65);
}

.fading-images--750 {
  height: floor(750px * 0.65);
}

@media only screen and (min-width: 769px) {
  .fading-images--250 {
    height: 250px;
  }

  .fading-images--350 {
    height: 350px;
  }

  .fading-images--450 {
    height: 450px;
  }

  .fading-images--550 {
    height: 550px;
  }

  .fading-images--650 {
    height: 650px;
  }

  .fading-images--750 {
    height: 750px;
  }
}

.instagram-section {
  @media only screen and (max-width: 768px) {
    .grid__item:nth-child(7),
    .grid__item:nth-child(8),
    .grid__item:nth-child(9),
    .grid__item:nth-child(10),
    .grid__item:nth-child(11),
    .grid__item:nth-child(12) {
      display: none;
    }
  }

  .placeholder-svg {
    padding: 0;
  }
}

.instagram-feed-wrap {
  position: relative;

  // Undo index-section--flush bottom margin
  .page-width & {
    margin: 35px 0;
    @media only screen and (min-width: 769px) {
      margin: 75px 0;
    }
  }

  .grid {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
  }

  .placeholder-svg {
    padding: 0;
  }
}

// Do not show the additionally requested images (max 6 or 12)

.instagram-feed-wrap--1 {
  .grid__item:nth-child(7),
  .grid__item:nth-child(8) {
    display: none;
  }
}

.instagram-feed-wrap--2 {
  .grid__item:nth-child(13),
  .grid__item:nth-child(14) {
    display: none;
  }
}

// Prevent images loading in from causing a reflow

.instagram-feed-wrap__reflow-fix {
  width: 16.667%; // based on 6 per row

  @media only screen and (max-width: 768px) {
    width: 75%; // switches to 2 per row, 3 rows
  }

  &:after {
    content: '';
    display: block;
    height: 0;
    padding-bottom: 100%;

    @media only screen and (max-width: 768px) {
      padding-bottom: 200%; // switches to 2 per row
    }
  }
}

.instagram-feed-wrap--2 .instagram-feed-wrap__reflow-fix:after {
  padding-bottom: 200%;
}

.instagram-feed__link {
      font-weight: 700;     letter-spacing: 0em;     line-height: 1;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  color: #000;
  padding: 15px 25px;
  z-index: 2;
}

.map-section {
  position: relative;
  height: 650px;
  width: 100%;
  overflow: hidden;

  @media only screen and (min-width: 769px) {
    height: 500px;
  }

  .page-width {
    height: 100%;
  }
}

.map-section--load-error {
  height: auto;
}

.map-onboarding {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  z-index: 0;
}

.map-section__overlay-wrapper {
  position: relative;
  height: 100%;
}

.map-section__overlay {
  position: relative;
  display: inline-block;
  background-color: #fff;
  padding: 30px;
  margin: 30px;
  width: 100%;
  z-index: 3;

  @media only screen and (min-width: 769px) {
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    margin-top: 0;
    width: 30%;
  }

  .map-section--load-error & {
    position: static;
    transform: translateY(0);
  }
}

.map-section__link {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

// Optically center map in visible area with

// extended height/widths and negative margins

.map-section__container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 150%;
  margin-bottom: -50%;

  @media only screen and (min-width: 769px) {
    width: 130%;
    height: 100%;
    margin: 0 -30% 0 0;
  }
}

// Animations

@if (true) {
  [data-aos="map-section__animation"] .map-section__container {
    animation: fade-out 0.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
    will-change: opacity, transform;
    opacity: 0;
  }

  [data-aos="map-section__animation"].aos-animate .map-section__container {
    animation: zoom-fade 2.5s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
  }
}

.image-row {
  @include clearfix;
}

.image-row__placeholder {
  float: left;
  width: 33.33%;

  .image-row--gutters & {
    width: 32%;
    margin: 0 1% 2%;

    &:first-child {
      margin-left: 0;
    }

    &:last-child {
      margin-right: 0;
    }
  }
}

.image-row__image {
  position: relative;
  min-height: 1px;
  float: left;

  &:after {
    content: '';
    display: block;
    height: 0;
    width: 100%;
  }

  img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
  }
}

$z-index-promo-tint: 1;

$z-index-promo-frame: 2;

$z-index-promo-text: 2;

$z-index-promo-content: 3;

$z-index-promo-link: 4;

/*================ Promo grid ================*/

.promo-grid--space-top {
  padding-top: 35px;
  @media only screen and (min-width: 769px) {
    padding-top: 75px;
  }
}

.promo-grid--space-bottom {
  padding-bottom: 35px;
  @media only screen and (min-width: 769px) {
    padding-bottom: 75px;
  }
}

.promo-grid__container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: start;
      align-items: flex-start;
  position: relative;
  overflow: hidden;
  background-repeat: no-repeat;

  .btn {
    margin-right: 10px;
  }

  &.horizontal-center {
    -ms-flex-pack: center;
        justify-content: center;
    text-align: center;

    .btn {
      margin: 2px 5px;
    }
  }

  &.horizontal-right {
    -ms-flex-pack: end;
        justify-content: flex-end;
  }
}

.promo-grid__container--boxed {
  @media only screen and (max-width: 768px) {
    .promo-grid__bg {
      height: 65%;
    }

    .promo-grid__content {
      width: 100%;
      margin-top: 35%;
    }
  }
}

// Framed but not boxed

.promo-grid__container--framed:not(.promo-grid__container--boxed):after {
  @include overlay();
  border: 7px solid transparent;
  box-shadow: inset 0 0 0 2px #fff;
  z-index: $z-index-promo-frame;

  @media only screen and (min-width: 769px) {
    border-width: 10px;
  }

  // When text is not overlaying image, border should be text color
  .type-sale_collection &,
  .type-product &,
  .type-banner & {
    box-shadow: inset 0 0 0 2px #000;
  }
}

.promo-grid__container--tint:before {
  @include overlay();
  opacity: 1;
  z-index: $z-index-promo-tint;
  pointer-events: none;
}

.promo-grid__slide-link {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: $z-index-promo-link;

  &:hover {
    & ~ .promo-grid__content .btn:not(.btn--secondary):not(.btn--tertiary):not(.btn--inverse) {
      background: lighten(#000, 10%);
      transition-delay: 0.25s;

      @if ($buttonStyle != 'angled') {
        &:after {
          animation: shine 0.75s cubic-bezier(0.01, 0.56, 1, 1);
        }
      }
    }
  }
}

/*================ Promo grid content ================*/

.promo-grid__content {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  padding: 2em 2.5em; // Relative to text-size
  position: relative;
  min-width: 200px;
  z-index: $z-index-promo-content;

  .promo-grid__container--framed:not(.promo-grid__container--boxed) & {
    margin: 1.5em;
  }

  p:last-child {
    margin-bottom: 0;
  }

  .vertical-top & {
    -ms-flex-item-align: start;
        align-self: flex-start;
  }

  .vertical-center & {
    -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
  }

  .vertical-bottom & {
    -ms-flex-item-align: end;
        align-self: flex-end;
  }
}

.promo-grid__content--boxed {
  background: #fff;
  color: #000;
  margin: 15px;

  @media only screen and (max-width: 768px) {
    margin: (30px / 4);
  }
}

.promo-grid__content--framed.promo-grid__content--boxed {
  border: 7px solid #fff;
  box-shadow: inset 0 0 0 2px #000;

  @media only screen and (min-width: 769px) {
    border-width: 10px;
  }
}

// Radial gradient on only some types

.type-advanced,
.type-simple {
  .promo-grid__content:not(.promo-grid__content--boxed):not(.promo-grid__content--sale) {
    color: #fff;

    a {
      color: #fff;
      border-bottom: 2px solid #fff;

      @if ($buttonStyle == 'angled') {
        &:not(.btn--inverse) {
          border-bottom: 0;
        }
      }
    }

    &:after {
      @include heroRadial;
      z-index: $z-index-promo-tint;
    }
  }
}

/*================ Custom promo typography ================*/

.type-advanced,
.type-product,
.type-sale_collection {
  .rte--strong {
        font-weight: 700;     letter-spacing: 0em;     line-height: 1;
    line-height: 1.1;
  }

  .rte--em {
    @include accentFontStack;
    font-size: 0.9375em;
    line-height: 1.1;
  }
}

.type-advanced,
.type-product {
  .rte--strong {
    font-size: 1.6em;
    line-height: 1.1;
  }
}

@media only screen and (min-width: 769px) {
  .type-advanced,
  .type-product {
    .rte--strong {
      font-size: 2.125em;
    }
  }

  .type-product {
    &.flex-grid__item--50,
    &.flex-grid__item--33 {
      .rte--strong {
        font-size: 1.6em;
      }
    }
  }
}

/*================ Promo grid elements ================*/

.promo-grid__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  text-align: left;

  .placeholder-svg {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    max-width: none;
    width: auto;
    padding: 0;
  }
}

.promo-grid__bg-image {
  z-index: $z-index-hero-image;
  opacity: 0;

  .no-js & {
    opacity: 1;
  }

  &.lazyloaded {
    animation: fade-in 1s cubic-bezier(0.26, 0.54, 0.32, 1) 0s forwards;
    transition: none; // fixes safari animation conflict
  }
}

.promo-grid__text {
  position: relative;
  z-index: $z-index-promo-frame;

  .btn {
    margin-top: 2px;
    margin-bottom: 2px;
  }
}

/* ======================= Type: Advanced ===================== */

.type-advanced {
  .promo-grid__content {
    padding: 2em;
  }

  .btn {
    margin-bottom: 10px;
  }
}

/* ======================= Type: Sale Collection ===================== */

.type-sale_collection {
  -ms-flex-positive: 1;
      flex-grow: 1;
  max-height: 600px;

  .promo-grid__container {
    background: #fff;
    -ms-flex-align: center;
        align-items: center;
  }

  .promo-grid__content {
    padding: 2em;
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    min-width: 0;

    @media only screen and (max-width: 768px) {
      font-size: 0.8em;
    }

    @media only screen and (min-width: 769px) {
      &:not(.promo-grid__content--small-text) {
        font-size: 1.5em;
      }
    }
  }

  // Custom typography styles
  .rte--block {
    margin-bottom: 5px;
  }

  .rte--strong {
    position: relative;
    display: block;
    font-size: 3.375em;
    line-height: 1;
    white-space: nowrap;
  }

  // Custom type layout for "off" when following "%"
  small {
    display: inline;
    font-size: 0.25em;
    margin-left: -3.1em;
    letter-spacing: 0;
  }
}

.type-sale-images {
  -ms-flex: 1 1 50%;
      flex: 1 1 50%;

  svg {
    display: block;
    width: 50%;
    float: left;
  }
}

.type-sale-images__crop {
  overflow: hidden;
  width: 130%;
}

.type-sale-images__image {
  width: 50%;
  float: left;
}

/* ======================= Type: Simple ===================== */

.type-simple {
  .promo-grid__content {
    padding: (30px / 1);
    @media only screen and (max-width: 768px) {
      padding: (15px);
    }
  }
}

.promo-grid__title:last-child {
  margin-bottom: 0;
}

/* ======================= Type: Image ===================== */

.type-image {
  .promo-grid__container {
    background: none;
  }

  img,
  a,
  .image-wrap {
    width: 100%;
  }
}

/*================ Type: Banner ================*/

.type-banner {
  -ms-flex: 1 0 100%;
      flex: 1 0 100%;

  .promo-grid__container {
    background: none;
  }

  .promo-grid__container--framed:not(.promo-grid__container--boxed) {
    padding: 1em;
  }

  p {
    margin: 5px 10px;
    display: inline-block;
    vertical-align: middle;
    line-height: 1.2;
  }
}

.type-banner__link {
  display: block;
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;
}

.type-banner__content {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  padding: 0 10px;
}

.type-banner__text {
  position: relative;
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  z-index: $z-index-promo-text;
  padding: 10px 20px;
}

.type-banner__image {
  -ms-flex: 0 0 45%;
      flex: 0 0 45%;

  @media only screen and (min-width: 769px) {
    -ms-flex: 0 0 200px;
        flex: 0 0 200px;
  }
}

/*================ Type: Product ================*/

.type-product__wrapper {
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;
  position: relative;
  padding: 2em 0;
  z-index: $z-index-promo-content;

  &.promo-grid__container--tint,
  .promo-grid__container--framed & {
    padding: 2em;
  }
}

.type-product__content {
  @media only screen and (max-width: 768px) {
    margin-top: 15px;
  }
}

.type-product__images {
  position: relative;
  width: 100%;
  margin: 10px 0 10px 10px;
}

.type-product__image {
  position: relative;

  &:first-child {
    width: 100%;
    max-width: 75%;
  }

  &:nth-child(2) {
    position: absolute;
    bottom: 40px;
    right: 0;
    width: 100%;
    max-width: 30%;
  }
}

.type-product__labels {
  position: absolute;
  top: -10px;
  right: -10px;
  z-index: $z-index-promo-text;
  text-align: right;

  @media only screen and (min-width: 769px) {
    .flex-grid__item--50,
    .flex-grid__item--33 {
      font-size: 0.9em;
    }
  }
}

.type-product__label {
  padding: 4px 12px;
  background-color: #000;
  color: #fff;
  float: right;
  clear: both;
}

.type-product__label--secondary {
  background-color: #fff;
  color: #000;
}

/*================ View-specific styles ================*/

/*================ Templates | Cart Page ================*/

.cart__row {
  position: relative;
  margin-bottom: 30px;

  &:first-child {
    border-bottom: 1px solid #e8e8e1;
    padding-bottom: 15px;
  }

  &:last-child {
    border-top: 1px solid #e8e8e1;
    padding-top: 15px;
  }

  .js-qty__wrapper {
    margin: 0 auto;
  }

  .additional_checkout_buttons {
    margin-top: 20px;
  }

  .additional-checkout-button + .additional-checkout-button {
    margin-left: 20px;
  }
}

.cart__update,
.cart__checkout {
  margin-top: 20px;

  .drawer__cart & {
    margin-top: 10px;
  }
}

@media only screen and (min-width: 769px) {
  .cart__update + .cart__checkout {
    margin-left: 15px;
  }
}

.cart__row--table {
  display: table;
  table-layout: fixed;
  width: 100%;

  .grid__item {
    display: table-cell;
    vertical-align: middle;
    float: none;
  }
}

@media only screen and (min-width: 769px) {
  .cart__row--table-large {
    display: table;
    table-layout: fixed;
    width: 100%;

    .grid__item {
      display: table-cell;
      vertical-align: middle;
      float: none;
    }
  }
}

.cart__image {
  display: block;

  img {
    width: 100%;
    display: block;
  }

  @include media-query($medium-down) {
    margin-bottom: 15px;
  }
}

.cart__product-name {
  margin-bottom: 0;
}

.cart__product-qty {
  text-align: center;
  margin: 0 auto;
  max-width: 80px;
}

.cart__price {
  display: block;
}

.cart__price--strikethrough {
  text-decoration: line-through;
}

.cart__discount {
  color: #ff4e4e;
}

.cart__product-meta {
  margin-bottom: 0;

  & + & {
    margin-top: 20px;
  }
}

.additional_checkout_buttons {
  margin-bottom: -10px;

  .cart__row & {
    margin-bottom: -20px;
  }

  .additional-checkout-button {
    min-width: 140px !important;
    margin-bottom: 10px !important;
  }

  .cart__row & .additional-checkout-button {
    margin-bottom: 20px !important;
  }

  .drawer__cart & {
    margin: 10px 0 -10px -10px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: justify;
        justify-content: space-between;

    .additional-checkout-button {
      -ms-flex: 1 1 46%;
          flex: 1 1 46%;
      margin-left: 10px !important; // override Shopify styles
    }
  }

  & > *:not(script) {
    padding: 15px 0 0 15px;
    vertical-align: top;
    line-height: 1;

    @media only screen and (max-width: 768px) {
      padding: 15px 0 0 5px;
    }

    &:first-child,
    &:empty {
      padding-left: 0px;
    }
  }
}

// PayPal button has unhelpful z-index

iframe.zoid-component-frame {
  z-index: 1 !important;
}

/*================ Templates | Product Page ================*/

@media only screen and (max-width: 768px) {
  .page-content--product {
    padding-top: 0;
  }

  .grid--product-images-right {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;

    .grid__item:first-child {
      -ms-flex-order: 2;
          order: 2;
    }
  }
}

// Prevent quick view horizontal jank when image loads

.modal .page-content--product {
  width: 1500px;
  max-width: 100%;
}

.product-single__meta {
  text-align: center;
  padding-left: 45px;

  @media only screen and (max-width: 768px) {
    padding-left: 0;
    margin-top: 15px;
  }

  .grid--product-images-right & {
    padding-left: 0;
    padding-right: 45px;

    @media only screen and (max-width: 768px) {
      padding-right: 0;
    }
  }

  .social-sharing {
    margin-top: 15px;

    @media only screen and (min-width: 769px) {
      margin-top: 30px;
    }
  }

  .rte {
    text-align: left;
  }
}

.product-single__vendor {
  @include accentFontStack;
  @include accentFontSmallSize;
  margin-bottom: 30px / 4;
}

.product-single__title {
  margin-bottom: 30px / 6;
  word-wrap: break-word;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px / 4;
  }
}

.product-single__review-link {
  display: block;

  .spr-badge[data-rating="0.0"] {
    display: none;
  }

  .spr-badge {
    margin-bottom: 7px;
  }

  .spr-badge-starrating {
    margin-right: 8px;
  }

  .spr-badge-caption {
    font-size: calc(17px - 1);
  }
}

.product-single__sku {
  margin-bottom: 30px / 6;
}

.product-single__description {
  margin-bottom: 30px;
}

.product-single__description-full {
  margin: 30px 0;
}

.product-single__form {
  margin-bottom: 30px;
}

.product-single__variants {
  display: none;

  .no-js & {
    display: block;
    margin-bottom: 30px;
  }
}

.product-image-main {
  position: relative;
}

// Video div

.product__video-wrapper {
  position: relative;
  overflow: hidden;
  max-width: 100%;
  padding-bottom: 100%; // apsect ratio overwritten inline
  height: auto;
  background-color: #fff;

  iframe {
    width: 100%;
    height: 100%;
    transition: opacity 0.5s ease-in;
  }

  // Put overlay on muted videos because they cannot be interacted with
  &[data-video-style="muted"].loaded:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
  }

  // Unless low power mode requires them to be touched to start
  &.video-interactable:before {
    display: none;
  }

  // Allow Vimeo videos to be clicked on so they can start to play.
  // This prevents swiping on a video to go to the next slide.
  @media only screen and (max-width: 768px) {
    &[data-video-type="vimeo"].loaded:before {
      display: none;
    }
  }

  &.loading:before {
    background: color-control(#fff, 0.15);
  }
  &.loading:after {
    background: color-control(#fff, 1);
  }

  &.loading iframe {
    opacity: 0.01; // sneaky way to avoid talking to an invisible YT iframe
  }

  &.loaded iframe {
    opacity: 1;
  }
}

.product__video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

// Images

.product__photos--beside {
  display: -ms-flexbox;
  display: flex;
  width: 100%;
}

.product__photos {
  direction: ltr;

  a {
    display: block;
    max-width: 100%;
  }

  img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    width: 100%;
  }
}

.photo-zoom-link {
  position: relative;
}

.photo-zoom-link--enable {
  cursor: zoom-in;
}

.photo-zoom-linked {
  cursor: zoom-out;
  background-color: #fff;
}

.product__main-photos {
  position: relative;
  overflow: hidden;
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;

  img {
    display: none;
  }

  .starting-slide img,
  .slick-initialized img {
    display: block;
  }

  .secondary-slide:not(.slick-slide) {
    display: none;
  }

  @media only screen and (min-width: 769px) {
    .slick-slide:not(.slick-current) {
      opacity: 0 !important;
    }
  }

  @media only screen and (max-width: 768px) {
    margin-left: -17px;
    margin-right: -17px;

    .slick-list {
      padding-left: 10%; // show a bit of the next image
      padding-right: 10%;
    }

    // Prevent click/tap on partially visible image
    .slick-slide:not(.slick-current) {
      position: relative;

      &:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
      }
    }

    .slick-slide .product-image-main {
      margin-right: 4px;
    }

    // Force cloned images to be visible
    .slick-cloned img {
      opacity: 1;
    }
  }
}

.product__main-photos {
  .slick-slider .slick-dots li button::before {
    background-color: #000;
  }
}

// Thumbnails

.product__thumbs {
  position: relative;
}

.product__thumbs--below {
  margin-top: 17px / 2;

  @media only screen and (min-width: 769px) {
    margin-top: 15px;
  }
}

.product__thumbs--beside {
  -ms-flex: 0 0 60px;
      flex: 0 0 60px;
  max-width: 60px;
  margin-left: 17px / 2;

  @media only screen and (min-width: 769px) {
    -ms-flex: 0 0 80px;
        flex: 0 0 80px;
    max-width: 80px;
    margin-left: 15px;
  }

  .slick-list {
    min-height: 100%;
  }
}

// Thumbnails

.product__thumb-item {
  border: 2px solid transparent;

  &.slick-current {
    border-color: #000;
  }

  .product__thumbs--beside & {
    margin-bottom: 17px / 2;

    @media only screen and (min-width: 769px) {
      margin-bottom: 15px;
    }
  }

  .product__thumbs--below & {
    margin-right: 17px / 2;

    @media only screen and (min-width: 769px) {
      margin-right: 15px;
    }

    &:last-child {
      margin-right: 0;
    }
  }
}

// Align them before slick initializes to reduce page reflows

.product__thumbs--below:not(.slick-initialized) .product__thumb-item {
  max-width: 100px;
  float: left;
}

.product__thumb {
  position: relative;
  display: block;
  cursor: pointer;
}

.product__thumb-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #000;
  border-radius: 100px;
  padding: 7px;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.5s ease;
  font-size: 0;
  .aos-animate & {
    opacity: 1;
  }

  .icon {
    fill: #fff;
    width: 24px;
    height: 24px;
    @media only screen and (min-width: 769px) {
      width: 30px;
      height: 30px;
    }
  }
}

// Prices

.product__price {
  color: #000;
  margin-right: 5px;
}

.product__price--compare {
  padding-right: 5px;
  display: inline-block;
  text-decoration: line-through;
}

.product__price-savings {
  color: #ff4e4e;
  white-space: nowrap;
}

.product__inventory {
  font-size: 14.45px;
  font-style: italic;
  margin: (30px / 6) 0;

  @media only screen and (min-width: 769px) {
    margin: (30px / 4) 0;
  }
}

// Quantity selector and label

.product__quantity {
  margin-bottom: 15px;
  @media only screen and (min-width: 769px) {
    margin-bottom: 30px;
  }

  label {
    display: block;
    margin-bottom: 10px;
  }
}

.product__quantity--dropdown {
  display: inline-block;
}

// Hide Shopify Payment Buttons if no variant

.add-to-cart[disabled] + .shopify-payment-button {
  display: none;
}

/*================ Templates | Theme Blog ================*/

.template-blog .article {
  margin-bottom: 30px * 1.5;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px * 3;
  }
}

.template-blog .article:last-child {
  margin-bottom: 0;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px * 1.5;
  }
}

.article__body {
  margin-bottom: 15px;

  @media only screen and (min-width: 769px) {
    margin-bottom: 30px;
  }
}

/*================ Comments ================*/

.comment.last {
  margin-bottom: -(15px);
}

/*================ Templates | Passwords ================*/

.template-password {
  height: 100vh;
  text-align: center;
}

.password-page__image {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  z-index: 1;
  animation: zoom-fade-password 20s ease 1s forwards;
  &:after {
    position: fixed;
    content: '';
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    background: rgba(50,50,50,0.3);
  }
}

.password-page__wrapper {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  height: 100%;
  width: 100%;
  position: absolute;
  z-index: 3;
  min-height: 500px;

  a {
    color: inherit;
  }

  hr {
    border-color: #e8e8e1;
  }

  .social-sharing.clean a {
    color: inherit;
    background: transparent;
  }
}

.password-header-section {
  -ms-flex: 1 1 50%;
      flex: 1 1 50%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: end;
      align-items: flex-end;
}

.password-page__header__inner {
  padding: (15px);
}

.password-page__logo {
  margin-top: 20px;

  @media only screen and (min-width: 769px) {
    margin-top: 3 * 30px;
  }

  .logo {
    max-width: 100%;
  }
}

.password-page__main {
  -ms-flex: 1 1 100%;
      flex: 1 1 100%;
}

.password-page {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
}

.password-page__content {
  background-color: #fff;
  color: #000;
  padding: 30px;
  border: 7px solid #fff;
  box-shadow: inset 0 0 0 2px #000;

  @media only screen and (min-width: 769px) {
    border-width: 10px;
  }
}

.password-page__hero {
  text-transform: none;
}

.password-page__message {
  margin-bottom: 30px !important;

  img {
    max-width: 100%;
  }
}

.password-form {
  margin-bottom: 1em;
}

.password-page__signup-form {
  @media only screen and (min-width: 769px) {
    padding: 0 30px;
  }

  .input-group-field {
    background-color: #fff;
    color: #000;

    &::-webkit-input-placeholder {
      color: #000;
      opacity: 0.7;
    }

    &:-moz-placeholder {
      color: #000;
      opacity: 0.7;
    }

    &::-moz-placeholder {
      color: #000;
      opacity: 0.7;
    }

    &:-ms-input-placeholder {
      color: #000;
      opacity: 0.7;
    }

    &::-ms-input-placeholder {
      color: #000;
      opacity: 0.7;
    }
  }

  .errors ul {
    list-style-type: none;
    margin-left: 0;
  }
}

.password-page__social-sharing {
  margin-top: 30px;
}

.password-login {
  display: block;
  margin: 0 auto;
  padding: (30px / 4) 15px;

  @media only screen and (min-width: 769px) {
    position: absolute;
    top: 30px / 1.5;
    right: 30px / 1.5;
  }
}

.password__lock .icon {
  position: relative;
  top: -2px;
  margin-right: 4px;
  width: 12px;
  height: 12px;
}

.password-page__footer {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
}

.password-page__footer_inner {
  padding: (30px * 1.5) 0 (15px);
  line-height: 1.5 * 17px;
}

.icon-shopify-logo {
  width: 60px;
  height: 20px;
}

#LoginModal .modal__close {
  @media only screen and (max-width: 768px) {
    padding: 20px;
  }
}

#LoginModal .modal__inner {
  background: #fff;
  color: #000;
  padding: 30px;
  @media only screen and (max-width: 768px) {
    margin-bottom: 40vh;
  }
}

.password-admin-link {
  margin: 0;

  a {
    border-bottom: 2px solid $colorBorder !important;
  }
}

.global-slick {
  margin: 0;
  padding-left: 40px;
  padding-right: 50px;


  @media only screen and (max-width: 768px) {
    margin-bottom: 60px !important;
    padding-left: 40px;
    padding-right: 40px;
  }

  .slick-arrow img {
    width: 30px;

    @media only screen and (max-width: 768px) {
      width: 10px;
    }
  }
}



/*

//baseFontStack
//baseSmallFontStack
//baseExtraSmallFontStack
//headingTextCenter
//baseTextCenter
//headingFontStack
//accentFontStack
//accentFontSmallSize
*/



.catlist-nav-new-toggle{
  @media only screen and (max-width: 768px) {
    display: none;
  }
}

.collection-tab-side{

  border: none;
  padding: 0;
  margin-bottom: 0;

  &:-webkit-scrollbar {
      display: none;
  }

  -ms-overflow-style: none;



  @media only screen and (max-width: 768px) {
    //display: none;
  }

  .text-con{
    margin-top: 10px;
    @include accentFontSmallSize;
    //border-bottom: 1px solid #e8e8e1;
    border-bottom: 1px solid #000;
    //text-transform: uppercase;
    padding-bottom: 10px;
    margin-bottom: 20px;
    font-weight: bold;

    @media only screen and (max-width: 768px) {
      display: none;
    }
  }

  .collapsible-content{
    @media only screen and (max-width: 768px) {
      display: none;
    }
  }
}


.none{
  display: none;
}


.filter-catlist-nav{
  display: none;
  @media only screen and (max-width: 768px) {
    display: block;
  }

  .text-con{
    margin-top: 25px;
    @include accentFontSmallSize;
    //border-bottom: 1px solid #e8e8e1;
    border: 1px solid #000;
    //text-transform: uppercase;
    padding-bottom: 10px;
    margin-bottom: 10px;
    font-weight: bold;
    padding-top: 10px;
    display: none;

    @media only screen and (max-width: 768px) {
      display: block;
    }

  }
}

.collection-nav-new{
  @media only screen and (max-width: 768px) {
    width: 100%;
    flex: auto;
    padding: 0;
  }
}

.collection-tab-con{
  ul{
    margin-left: 0;
    li{
      

      .no-ajax{
        padding: 0px 35px 0px 20px;
        transition: 0.5s all;
        transition-property: all;
        transition-duration: 0.5s;
        transition-timing-function: ease;
        transition-delay: 0s;
        font-weight: 400;
        position: relative;

        &:hover{
          background: #000;
          color: #fff !important;
        }

        @media only screen and (max-width: 768px) {
          padding: 0px 10px 0px 10px;
        }
      }

      @media only screen and (max-width: 768px) {
        padding: 0px;
      }

    }
  }

  .tag--active-main{ 
      background: #000;
      color: #fff;
  }

  .filter-con{
    display: none;
  }

  li{
      &.tag-active{
        .filter-con{
          display: block;
        }
    }
  }
  .tag--active{ 

    .background-color-ajax{
      background: #000;
      color: #fff;
    }

    @media only screen and (max-width: 768px) {
      padding: 0px 10px;
    }

    ul.filter-con{
      display: block;
    }
  }

  .filter-con{
    .tag--active{
      background: #000;
      position: relative;
      @media only screen and (max-width: 768px) {
        padding: 0px 0px;
      }
      a{
        color: #fff;
      }
    }
  }

  .lbcursor{
    .arrow-child{
      
    }
  }

  .tag--active{
    
  }

  .tag--active-sub{ 
    background: #000;
    color: #fff;
    padding-left: 10px;
    font-weight: 400;
  }

  .tag--active-main{
    .arrow-child{
      //transform: scaleY(-1);
      //top: 2px;
    }
}

  .arrow-child{
    position: absolute;
    right: 15px;
    top: -1px;
    transition: 0.5s all;
    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: ease;
    transition-delay: 0s;
    transform: scaleY(1);


    svg{
      max-width: 13px;
    }
  }



  .flip-arrow{
    transform: scaleY(-1);
    top: 2px;

  }


}


.page-content--product{
  .filter-catlist-nav .text-con{
    
  }
}

.product-collection-width{
  width: 40%;

  @media only screen and (max-width: 768px) {
    width: 100%;
  }
}

.product-collection-related {
  width: 80%;

  @media only screen and (max-width: 768px) {
    width: 100%;
  }
}
.block{
  display: block !important;
}

.link-amount{
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
}


.index-product-space{
  padding-bottom: 60px;
}

.grid-product__title--body{
  margin-top: 30px;
}

.variant-hover{
  
}

.variant-hover-hide{
  opacity: 0;
  transition: opacity 0.4s ease;
  position: absolute;
  top: 10px;
  left: -15px;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 120px;
  margin-left: auto;
  margin-right: auto;

  overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; 
}

.variant-hover-show{
  opacity: 1;

}


.breadcrumb{
  a{
    &:last-child{
      font-weight: bold;
    }
  }
}




.none2{
  display: none ;
}

.grandchild{
  background: #fff;
  padding: 0px 0px 0px 20px;
  a{
    color: #000000;
  }
}




.collection-tab-con .filter-con .tag--active .grandchild a {
    color: #000000;
}
