/**
 * TABLE OF CONTENTS
 *
 * SETTINGS
 * Global..................Globally-available variables and config.
 *
 * TOOLS
 * Mixins..................Useful mixins.
 *
 * COMPONENTS
 * PDP Images..............Mobile gallery and desktop layout
 * Primary Information.....Critical information like name and price
 * Reviews Teaser..........Summarized review list on PDP.
 * PDP Variations..........Variation selector styles seen in the PDP
 * 
 * 
 * MODULES
 *
 */
/*------------------------------------*\
  #SETTINGS
\*------------------------------------*/
/**
 * Returns the value of the `$key` value of a provided `$map`.
 */
/**
 * Uses `getProperty()` to return a value from the `$colors` map.
 */
/**
 * Uses `getProperty()` to return a value from the `$breakpoints` map.
 */
/*------------------------------------*\
  #TYPOGRAPHY
\*------------------------------------*/
/*------------------------------------*\
  #COLORS
\*------------------------------------*/
/*------------------------------------*\
  #ELEMENT-DEFAULTS
\*------------------------------------*/
/*------------------------------------*\
  #HEADER-DEFAULTS
\*------------------------------------*/
/*------------------------------------*\
  #HORIZONTAL-SPACING
\*------------------------------------*/
/*------------------------------------*\
  #BREAKPOINTS
\*------------------------------------*/
/*------------------------------------*\
  #TRANSITIONS
\*------------------------------------*/
/*------------------------------------*\
  #TOOLS
\*------------------------------------*/
/**
 * Responsive Mixin
 * This mixin is designed for a _cleaner_ first approach
 * This means that css isn't overridden but rather replaced for
 * different viewport widths; making it easier to inspect/debug css
 *
 * Usage:
 * @include media-query(exclude-medium)    { ... }
 * @include media-query(medium-up-to-site) 	   { ... }
 * ... etc
 */
/**
 * [Adds styles to allow an element's height scale proportionatelly]
 * @param  {[Number]} $width
 * @param  {[Number]} $height
 */
/**
 * [Calculates the percentage aspect ratio (what % height is compared to the width)]
 * @param  {[Number]} $width
 * @param  {[Number]} $height
 * @return {[Number(%)]}
 */
/**
 * *****REMEMBER TO USE MARGIN OR PADDING AND NOT TOP/BOTTOM******
 * [Calculates the center of an element in relation to a provided width and height.
 * Useful to place an absolute element at the center of another when
 * the positioned element cannot be the target's child ]
 * @param  {[Number]} $width
 * @param  {[Number]} $height
 * @return {[Number(%)]}
 */
/**
 * [In the  awful case you can't use Flexbox to vertically align something]
 * @param  {[type]} $transform:       false         [Use transforms to align instead of the absolute trick]
 * @param  {[type]} $pos:             absolute      [position type]
 * @param  {[type]} $posAdj:          0             [position adjustment. If $transform is true, this value only affects the 'top' property.]
 * @param  {[type]} $alignHorizontal: false         [Includes horizontal alignment]
 */
/**
 * Generate Enumerated Class
 * Iterates from 0 to the specified length and generates classes that set the specified property
 * @param  {[String]} $classname:       required      [Required: Specify the class name]
 * @param  {[String]} $property:        $classname    [Optional: Specify the enumerated property (if it's different from the name of the class)]
 * @param  {[Number]} $length:          10            [Optional: Specify the end of the loop]
 * @param  {[String]} $units:           null          [Optional: specify units to append to the enumerated property]
 */
/**
 * [Strip the pesky units from values]
 * @param  {[Number]} $value
 */
/**
 * [Fluid Type]
 */
/*------------------------------------*\
  #EXTERNALS
\*------------------------------------*/
.store-locator__detect-location {
  margin-top: .5rem; }

.store-locator__result-check:checked + .store-locator__result-content {
  background-color: #E6E9ED; }

.store-locator__result-content {
  display: block;
  padding: 1.25rem 1rem; }
  .store-locator__result-content:hover {
    cursor: pointer;
    background-color: #F6F6F8; }

.store-locator__form {
  margin-bottom: 3rem; }

.store-locator__results {
  overflow: auto; }

.store-locator__result-item {
  position: relative;
  border-bottom: solid 0.0625rem #E6E9ED; }

.store-locator__no-results {
  margin: auto; }

.store-locator__actions {
  padding-top: 1rem;
  padding-bottom: 1rem; }

@media (min-width: 48rem) {
  .store-locator__results {
    max-height: 30rem; } }

@media (max-width: 47.9375rem) {
  .store-locator--modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: inherit; }
    .store-locator--modal .store-locator__form {
      -ms-flex-negative: 0;
          flex-shrink: 0; }
    .store-locator--modal .store-locator__results {
      -ms-flex-negative: 1;
          flex-shrink: 1;
      max-height: none; }
    .store-locator--modal .store-locator__actions {
      margin-top: auto; }
  .store-locator__results {
    max-height: 22rem; } }

/*------------------------------------*\
  #COMPONENTS
\*------------------------------------*/
.product-gallery--pdp {
  width: 100%; }

.product-gallery__item {
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.product-zoom__arrow {
  position: fixed;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }

.product-zoom__arrow--prev {
  left: 0; }

.product-zoom__arrow--next {
  right: 0; }

@media (min-width: 48rem) {
  .product-zoom__arrow {
    width: 5rem;
    font-size: 3rem; } }

.pdp {
  position: relative; }

.pdp-main__price {
  margin-bottom: 1.25rem; }

.pdp-main__social {
  margin-top: 1.875rem; }

.pdp-main__section--actions {
  position: relative; }

@media (min-width: 48rem) {
  .pdp {
    margin-top: 2.25rem;
    margin-bottom: 4rem; }
  .pdp-main__details {
    padding-left: 2.75rem; }
  .pdp-main__section:not(:last-child) {
    margin-bottom: 1.875rem;
    padding-bottom: 2rem;
    border-bottom: solid 0.0625rem #E6E9ED; }
  .pdp-main__number-rating {
    margin-top: 1.625rem; }
  .pdp-main__availability {
    margin-top: 2.25rem; }
  .pdp-main__promotions {
    margin-bottom: .875rem; } }

@media (max-width: 47.9375rem) {
  .pdp {
    margin-top: 1rem;
    margin-bottom: 3rem; }
  .pdp-main__section {
    margin-top: 1.25rem; }
  .pdp-main__section--actions {
    padding-top: 1.25rem;
    padding-bottom: 1.75rem;
    border-top: solid 0.0625rem #CCCCCC;
    border-bottom: solid 0.0625rem #CCCCCC; }
  .pdp-main__number-rating {
    margin-top: 1rem; }
  .pdp-main__availability {
    margin-top: 3rem; } }

@media (min-width: 48rem) {
  .pdp__details {
    margin-top: 2rem;
    margin-bottom: 3rem; }
  .pdp__details-item:not(:last-child) {
    margin-bottom: 1.5rem; } }

@media (max-width: 47.9375rem) {
  .pdp__details {
    margin-bottom: 2rem; }
  .pdp__details-item {
    border-bottom: solid 0.0625rem #CCCCCC; }
  .pdp__details-title {
    padding-top: .45em;
    padding-bottom: .45em;
    cursor: pointer; }
  .pdp__details-description {
    margin-top: .625rem;
    margin-bottom: 1.5rem; }
    .pdp__details-description:not(.toggle--active) {
      display: none; } }

.pdp__reviews {
  margin-bottom: 3rem; }

.set-item {
  position: relative; }

.pdp-bundle__item {
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem; }

.pdp-bundle__main {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 0.0625rem solid #E6E9ED; }

.pdp-bundle__label {
  margin-bottom: 1.25rem; }

@media (min-width: 48rem) {
  .pdp-bundle__main {
    padding-bottom: 2rem; } }

/*------------------------------------*\
  #TYPOGRAPHY
\*------------------------------------*/
/*------------------------------------*\
  #COLORS
\*------------------------------------*/
/*------------------------------------*\
  #BREAKPOINTS
\*------------------------------------*/
.pdp--footerdesclaimer {
  background-color: #f5f5f7;
  padding: 16px 0;
  text-align: center;
  margin-top: 1rem; }

.pdp-btn-addcart {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .pdp-btn-addcart .button--primary.form-submit {
    display: block;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-right: 10px;
    height: 64px;
    max-width: 100%;
    width: 100%; }
    @media (max-width: 47.9375rem) {
      .pdp-btn-addcart .button--primary.form-submit {
        height: 48px;
        padding: 0 4.5rem; } }
    .pdp-btn-addcart .button--primary.form-submit.limit-add-button {
      color: #66666a;
      background-color: #d7d7d9;
      pointer-events: none; }
    .pdp-btn-addcart .button--primary.form-submit.hide {
      display: none; }
    .pdp-btn-addcart .button--primary.form-submit.where-to-buy {
      width: 100%;
      max-width: calc(100% - 72px); }
      @media (max-width: 47.9375rem) {
        .pdp-btn-addcart .button--primary.form-submit.where-to-buy {
          max-width: calc(100% - 64px); } }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .product-tile__wishlist-add {
    display: block; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .product-tile__wishlist-remove {
    display: none; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist.set--in-wishlist .product-tile__wishlist-add {
    display: none; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist.set--in-wishlist .product-tile__wishlist-remove {
    display: block; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .icon {
    height: 25px; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .add, .pdp-btn-addcart .button--icon.button--icon-wishlist .remove {
    height: 25px; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .add {
    margin-top: 0.25rem;
    display: block; }
    @media (max-width: 47.9375rem) {
      .pdp-btn-addcart .button--icon.button--icon-wishlist .add {
        margin-top: 0; } }
  .pdp-btn-addcart .button--icon.button--icon-wishlist .remove {
    display: none; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist.set--in-wishlist .add {
    display: none; }
  .pdp-btn-addcart .button--icon.button--icon-wishlist.set--in-wishlist .remove {
    display: block; }

.pdp-ctalinks__links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .pdp-ctalinks__links > a {
    font-weight: normal;
    margin: 0 20px; }

.tabs__link--local-tasks.toggle--active,
.tabs__link.toggle--active {
  color: #ffffff; }

.tabs__link--local-tasks.toggle--active::before,
.tabs__link.toggle--active::before {
  background: #18191d; }

.available-option {
  float: left;
  padding-left: 10px; }

@media (min-width: 48rem) {
  .pdp-prod-buttons .checkout--cart-btn a,
  .pdp-prod-buttons .checkout--cart-btn input[type=submit] {
    width: 100%; }
  .add-to-cart-btn {
    width: 100%;
    max-width: calc(100% - 72px);
    margin-right: 10px; }
    .add-to-cart-btn .button--primary {
      width: 100%; } }

@media (max-width: 47.9375rem) {
  .add-to-cart-btn {
    width: 100%;
    max-width: calc(100% - 64px); } }


/*# sourceMappingURL=productMain.css.map*/