HTML Report for http://www.veerandwander.com/brand/uUznn6MOWr
This tool is an ongoing experiment in better HTML checking, and its behavior remains subject to changeShowing results for http://www.veerandwander.com/brand/uUznn6MOWr
You can view the notes...
view-source:http://www.veerandwander.com/brand/uUznn6MOWr
| # | results |
|---|---|
| 1 |
Error
On line 9229, column 141 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="https://app.termly.io/resource-blocker/c9060009-82c9-4891-8d67-8c904d5617e9?autoBlock=on"></script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-44B2L8E7TD"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-44B2L8E7TD'); </script> <!-- Global site tag (gtag.js) - Google Ads: 858635327 --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-858635327"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-858635327'); </script> <link rel="canonical" href="https://veerandwander.com/brand/uUznn6MOWr"> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0" /> <meta name="mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="msapplication-tap-highlight" content="no" /> <meta name="description" content="We are an innovative salon &amp; apothecary focused on a simple approach to beauty through exceptional craftsmanship."> <meta name="robots" content="all"> <meta name="view-transition" content="same-origin" /> <meta property="og:image" content=""> <meta property="og:image:secure_url" content=""> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:title" content="NAP"> <meta property="og:description" content="We are an innovative salon &amp; apothecary focused on a simple approach to beauty through exceptional craftsmanship."> <meta property="og:url" content="https://veerandwander.com/brand/uUznn6MOWr"> <meta property="og:locale" content="en_US"> <meta property="og:site_name" content="Veer & Wander"> <meta property="og:type" content="article"> <meta property="fb:app_id" content="461681578015051"> <meta name="twitter:site" content="@veerandwander"> <meta name="twitter:card" content="summary_large_image"> <link rel="icon" sizes="192x192" href="/_images/icon.png"> <link rel="apple-touch-icon" href="/_images/icon.png"> <link rel='mask-icon' href='/_images/icon.svg' color='#000000'> <title>NAP - Veer & Wander</title> <script src="https://cdn.usefathom.com/script.js" site="LQYLKIAS" defer></script> <style> /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } html { height: calc(100% - 70px); padding: 70px 0px 0px 0px; } body { /* font-family: Tahoma, Geneva, sans-serif; */ /* font-family: "Trebuchet MS", Helvetica, sans-serif; */ /* font-family: Georgia, Times, "Times New Roman", serif; */ /* font-family: "Courier New", Courier, monospace; */ /* font-family: Verdana, Geneva, sans-serif; */ font-family: "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; */ -webkit-font-smoothing: antialiased; font-size: 18px; line-height: 30px; /* font-weight: 500; */ /* background-color: #f6f6f6; */ /* background-color: #fef5ea; */ /* background-color: #faf7f5; */ /* background-color: #fcfbf9; */ /* background-color: #fbfbfb; */ /* background-color: #fafafa; */ background-color: #ffffff; display: flex; flex-direction: column; height: 100%; } ul,ol { margin: 0px 0px 0px 0px; } ul { list-style-type: circle; padding: 15px 0px 15px 20px; } li { margin: 0px 0px 0px 0px; padding: 0px 0px 10px 0px; } p { margin: 0px 0px 0px 0px; padding: 10px 0px 20px 0px; } /* p { margin: 0px 0px 0px 0px; padding: 10px 0px 10px 0px; } p:last-of-type { padding: 0px 0px 30px 0px; } */ blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; width: 100%; } tr { border-bottom: 0.5px solid #cccccc; /* border-bottom: 0.5px solid #e7e7e7; */ } td { vertical-align: top; } /* ------------------- */ * { /* font-family: Tahoma, Geneva, sans-serif; */ /* font-family: "Trebuchet MS", Helvetica, sans-serif; */ /* font-family: Georgia, Times, "Times New Roman", serif; */ /* font-family: "Courier New", Courier, monospace; */ /* font-family: Verdana, Geneva, sans-serif; */ font-family: "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; */ -webkit-font-smoothing: antialiased; font-size: 18px; line-height: 30px; /* font-weight: 500; */ } a { /* color: inherit; */ color: #000000; text-decoration: none; } a:hover { /* color: inherit; */ color: #000000; } a:visited { /* color: inherit; */ color: #000000; } label { display: block; margin: 0px 0px 0px 0px; padding: 15px 10px 5px 10px; color: #888888; font-size: 13px; line-height: 18px; } input[type="radio"], input[type="checkbox"] { margin: 0px 0px 0px 20px; } input[type="radio"] + label, input[type="checkbox"] + label { display: inline-block; /* font-size: 15px; line-height: 24px; */ color: #000000; padding: 25px 0px 5px 0px; } textarea, input[type="text"], input[type="tel"], input[type="email"] { -webkit-appearance: none; border: none; outline: none; border-radius: 0px; padding: 0px 10px 0px 10px; margin: 0px 0px 0px 0px; height: 50px; /*max-height: 40px;*/ /* background-color: #ffffff;*/ background-color: #f3f3f3; /* border-bottom: 0.5px solid #dedede; */ display: block; width: 100%; /* font-size: 15px !important; */ line-height: inherit; } textarea { padding: 10px 10px 10px 10px; height: 90px; resize: none; } input[type="text"]:focus, input[type="tel"]:focus, input[type="email"]:focus { /* border-top: 0.5px solid #999999; */ } input:-webkit-autofill { -webkit-box-shadow: inset 0 0 0px 9999px #f3f3f3; } ::placeholder { color: #999999; opacity: 1; } select { -moz-appearance: none; -webkit-appearance: none; appearance: none; border: none; height: 50px; border-radius: 0px; background-color: transparent; text-shadow: 0 0 0 #000; margin: 0px 0px 0px 0px; padding: 0px 10px 0px 10px; text-align: left; width: 100%; position: relative; color: #000000; /* #f3f3f3 */ } input:focus, textarea:focus, select:focus { outline: none; } input:focus, textarea:focus { background-color: #e7e7e7; } button { border: none; outline: none; /* background-color: #f5f2f0; */ /* background-color: #f0ece9; */ /* background-color: #f7f5f2; */ /* background-color: #faf7f5; */ /* background-color: #faf7f5; */ /* background-color: #ffffff; */ /* background-color: #222222; color: #ffffff; */ color: #000000; background-color: transparent; margin: 0px 0px 0px 0px; padding: 10px 10px 10px 10px; text-align: left; width: 100%; } .Twilio button { width: auto; } /* button span { float: left; } */ button:active { color: inherit; } button .price { display: inline-block; float: right; } button:not(:disabled) { cursor: pointer; } button:disabled { } </style> <style> .text { /* font-family: Georgia, Times, "Times New Roman", serif; font-weight: 500; -webkit-font-smoothing: antialiased; */ } .dd_red_fore { color: rgb(235, 23, 0); } .dd_red_back { background-color: rgb(235, 23, 0); color: #ffffff !important; } .large { font-size: 27px; line-height: 40px; /* font-size: 35px; line-height: 45px; */ /* font-weight: 500; */ } .emphasis { font-weight: 600; /* color: #fa7f7e; */ /* color: #41d0e0; */ } .light { font-weight: 300; /* color: #fa7f7e; */ /* color: #41d0e0; */ } .demphasis { color: #555555; /* 86bece 93c6d5 */ } .normal { font-weight: normal; } .extra-demphasis { color: #999999; } .error { color: #d94646; } .original { color: #999999; } .sale { color: #d94646 !important; } .pop { color: #5087f5; } .dark { color: #000000; } a.disabled { pointer-events:none; } /* .discount { */ /* color: #c06f6f; ec3223 */ /* color: #000000; } */ .noscroll { overflow: hidden; } .nowrap { white-space: nowrap; } .preline { white-space: pre-line; } .spacer { height: 10px; } .clear { clear: both; } select.right { direction: rtl; } .loader { display: none; position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; width: auto; height: 0px; background-color: rgba(0, 0, 0, 0.15); z-index: 2000; } .loader.show { display: block; bottom: 0px; height: auto; } .loader .spinner { position: absolute; left: 50%; top: 50%; width: 100px; height: 100px; margin: -50px 0 0 -50px; border: 3px solid #ffffff; border-top: 3px solid #34c759; border-radius: 50%; animation: spin 0.75s linear infinite; } .loader .message { position: absolute; top: calc(50% + 90px); left: 50%; transform: translate(-50%, -50%); margin-top: 0px; padding: 5px 20px 5px 20px; background-color: #ffffff; color: #000000; border-radius: 20px; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .livechat_button { position: fixed; top: auto; left: auto; right: 10px; bottom: 10px; width: 50px; height: 50px; z-index: 1000; } .livechat_button a { width: 30px; height: 30px; padding: 0px 0px 0px 0px; margin: 10px 10px 10px 10px; display: block; } .livechat_button img { width: 30px; height: 30px; object-fit: cover; object-position: center; } /* .trustpilot { margin: 20px 0px 40px 0px; } */ .instore { padding: 20px 20px 20px 20px; margin: -15px 0px 10px 0px; color: #ffffff; background-color: #d94646; } @media all and (max-width: 480px) { .instore { margin: -15px 0px 20px 0px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GIFT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .gift { margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px; background-color: #f1fbfb; text-align: left; display: block; width: 100%; } .gift.variant { margin-bottom: 0px; width: calc(100% - 40px); } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PROMO */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .promo { margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px; background-color: #f1fbfb; text-align: left; display: block; } .promo.variant { margin-bottom: 0px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* NAV */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ nav { /* display: flex; flex-wrap: wrap; margin: 0px 10px 0px 10px; */ position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; height: 70px; background-color: #ffffff; z-index: 150; } nav .links { position: relative; margin: 0px 10px 0px 10px; padding: 0px 0px 0px 0px; height: 70px; } nav .links .label { position: relative; padding: 10px 10px 10px 10px; display: inline-block; vertical-align: top; width: auto; /* color: #6faec0; */ } nav .links .icon { position: absolute; top: 10px; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; } nav .links .icon.menu { background-image: url("/_images/menu-black-48dp.svg"); left: 0px; background-color: transparent; } nav .links .icon.flag { left: 50px; background-color: transparent; } .flag.US { background-image: url("/_images/flags/us.svg"); } .flag.PR { background-image: url("/_images/flags/pr.svg"); } .flag.VI { background-image: url("/_images/flags/vi.svg"); } .flag.CA { background-image: url("/_images/flags/ca.svg"); } .flag.GB { background-image: url("/_images/flags/gb.svg"); } .flag.EU { background-image: url("/_images/flags/eu.svg"); } .flag.NZ { background-image: url("/_images/flags/nz.svg"); } .flag.AU { background-image: url("/_images/flags/au.svg"); } .flag.MX { background-image: url("/_images/flags/mx.svg"); } .flag.JP { background-image: url("/_images/flags/jp.svg"); } .flag.KR { background-image: url("/_images/flags/kr.svg"); } .flag.IS { background-image: url("/_images/flags/is.svg"); } .flag.NO { background-image: url("/_images/flags/no.svg"); } .flag.CH { background-image: url("/_images/flags/ch.svg"); } .flag.NL { background-image: url("/_images/flags/nl.svg"); } .flag.DE { background-image: url("/_images/flags/de.svg"); } .flag.IT { background-image: url("/_images/flags/it.svg"); } .flag.FR { background-image: url("/_images/flags/fr.svg"); } .flag.IE { background-image: url("/_images/flags/ie.svg"); } nav .links .icon.menu.close { background-image: url("/_images/close-black-48dp.svg"); } nav .links .icon.menu.back { background-image: url("/_images/arrow_back-black-48dp.svg"); } nav .links .icon.search { background-image: url("/_images/search-black-48dp.svg"); right: 50px } nav .links .icon.basket { display: block; /* background-image: url("/_images/shopping_cart-black-48dp.svg"); */ background-image: url("/_images/local_mall-black-48dp.svg"); right: 0px; } nav .links .icon.basket.full { /* background-image: url("/_images/shopping_cart-black-48dp.svg"); */ background-image: url("/_images/local_mall-black-48dp-full.svg"); right: 0px; } nav .links .icon .count { position: absolute; top: -3px; left: 34px; width: auto; height: 20px; /* color: #d6ab4d; */ font-size: 13px; line-height: 20px; /* border-radius: 12px; */ text-align: left; /* color: #999999; */ /* color: #ffffff; background-color: #000000; */ /* background-color: #fff300; */ color: #999999; } nav a.logo { position: absolute; top: 0px; left: calc(50% - 100px); right: calc(50% - 100px); bottom: 0px; width: 200px; height: 70px; background-image: url("/_images/logo_line.svg"); background-size: auto 30px; background-repeat: no-repeat; background-position: center center; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ main { flex: 1 0 auto; padding: 0px 0px 0px 0px; min-height: 320px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PATH */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .path { padding: 10px 0px 0px 0px; /* font-size: 25px; line-height: 40px; */ /* position: -webkit-sticky; position: sticky; top: 65px; */ /* background-color: #ffffff; */ } .path.filter { padding-top: 0px; position: fixed; top: 70px; z-index: 10; width: 100%; background-color: #ffffff; } .path .item { display: flex; vertical-align: top; padding: 0px 10px 0px 10px; } .path .item.extraLeftMargin { margin-left: 10px; } .path.filter .item { justify-content: space-between; padding: 0px 10px 0px 10px; width: calc(100% - 20px); max-width: calc(100% - 20px); } .path .item .action { display: inline-block; vertical-align: top; padding: 10px 10px 10px 10px; /* font-weight: bold; font-size: 21px; font-family: "Caslon LT Graphique"; */ /* font-size: 36px; */ } .path .item select { display: inline-block; vertical-align: top; background-color: #ffffff; /* color: #d6ab4d; */ height: 50px; width: calc(25% - 20px); /* border-top: 0.5px solid #999999; */ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; margin: 0px 10px 0px 10px; } .path .item .child { /* display: inline-block; */ vertical-align: top; padding: 10px 10px 10px 10px; width: auto; position: relative; } .path.filter .item .child { /* font-weight: 600; */ } .path.filter .item .child:nth-child(2) { text-align: right; /* margin-left: 10px; */ /* float: right; */ } /* .path.filter .item .child:nth-child(2):before { content: ''; position: absolute; top: 0px; left: -30px; right: auto; bottom: auto; display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/navigate_next-black-48dp.svg"); opacity: 0.25; } */ /* .path.filter .item .child { display: block; } */ /* .path.filter .item .child:nth-child(2) { float: right; } */ .path .item button.child { /* border-top: 0.5px solid #999999; */ /* margin-right: 20px; */ } .path.filter .item button.child:before { content: attr(data-label); color: #000000; font-size: 13px; line-height: 20px; display: block; font-weight: normal; } .path.filter .item button.child:nth-child(2):before { text-align: right; } .path .item .child.selected { /* background-color: #000000; color: #ffffff; */ } .path .item .child:after { content: ''; position: absolute; top: auto; left: 0px; right: 0px; bottom: 0px; /* width: auto; height: 7px; background-image: url("/_images/keyboard_arrow_down-black-48dp.svg"); background-size: 24px 24px; background-repeat: no-repeat; background-position: center; */ /* margin: auto; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid #000000; background-image: none; */ } .path .item .child.selected:after { content: ''; position: absolute; top: auto; left: 0; right: 0; bottom: 0; margin: auto; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 8px solid #000000; border-top: none; background-image: none; } .path .item.search { margin: 0px 10px 10px 10px; width: calc(100% - 40px); } .path .item.search .child { padding: 0px 0px 0px 0px; width: calc(100% - 20px); } .path .item.search .child input { height: 49px; border-bottom: 0.5px solid #999999; background-color: #ffffff; margin-left: -10px; margin-right: -10px; width: calc(100% + 20px); } .path .item.search .child input:focus { border-bottom: 0.5px solid #000000; } .path .shell { position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; width: auto; height: auto; z-index: 200; display: none; } .path .shell.show { display: block; height: auto; bottom: 0px; } .path .menu { position: absolute; top: 110px; left: 10px; right: auto; bottom: auto; padding: 5px 0px 5px 0px; /* width: calc(50% - 20px); */ /* margin: 0px 15px 0px 15px; */ overflow-y: scroll; /* max-width: 320px; */ /* width: calc(100% - 30px); */ /* z-index: 10; */ /* box-shadow: 0px 0px 48px rgba(0, 0, 0, 0.05); */ /* background-color: #edece8; */ background-color: #000000; /* column-fill: auto; DYNAMICALLY RESIZED SO SWITCHING BETWEEN COL COUNT DOES NOT WORK column-gap: 20px; column-count: 2; */ } .path .menu a, .path .menu button { /* display: inline-block; vertical-align: top; */ display: block; padding: 5px 10px 5px 10px; text-align: left; /* width: calc(50% - 20px); */ /* color: white; */ color: #ffffff; background-color: transparent; white-space: nowrap; } .path .menu a.teen, .path .menu button.teen { color: #aaaaaa; /* padding-left: 20px; */ } .path .menu a .discounted { display: inline-block; color: #d94646; } /* .path .menu .sub { max-width: 576px; -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; } */ .path .menu .divide { padding: 5px 10px 5px 10px; color: #999999; /* 86bece 93c6d5 */ } #checkout { padding: 0 0 20px 0; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CART */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* TODO IS THIS USED */ .cart { } .cart .group { display: inline-block; vertical-align: top; width: 50%; /* min-width: 688px; */ margin: 0px 0px 20px 0px; } /* .cart .group:last-of-type { width: 67%; } */ .cart .subgroup { display: inline-block; vertical-align: top; width: 100%; margin: 0px 0px 20px 0px; } .cart .subgroup.quick { margin-bottom: 0px; } .cart .hide { display: none; } .grid .title, .cart .title { padding: 9px 10px 0px 10px; margin: 0px 10px 10px 10px; } .grid .title { border-top: 0.5px solid #cccccc } .cart .title { border-top: 0.5px solid #000000; } .cart .title { font-weight: 600; } .cart .dynamic { display: none; padding-top: 30px; } .cart .dynamic.show { display: block; } /* .cart .dynamic.show + div { padding-top: 30px; } */ .cart .title .edit { float: right; } .cart .title .date { float: right; font-weight: normal; color: #555555; } .cart .value { padding: 0px 20px 0px 20px; } .cart .info .value { padding: 0px 10px 0px 10px; } .cart .info .value.small { font-size: 13px; line-height: 20px; } .cart .group25 { display: inline-block; vertical-align: top; width: 25%; } .cart .group33 { display: inline-block; vertical-align: top; width: 33.33%; } .cart .group50 { display: inline-block; vertical-align: top; width: 50%; } .cart .group75 { display: inline-block; vertical-align: top; width: 75%; } .cart .group100 { display: inline-block; vertical-align: top; width: 100%; } .cart .group100.bottom-padding { padding-bottom: 20px; } .cart .info { margin: 0px 10px 20px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; } .cart .info.instruction { padding: 10px 10px 10px 10px; } .cart .caption { margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; color: #555555; } .cart label { margin: 0px 10px 0px 10px; } .cart select { /* margin: 0px 10px 0px 10px; */ width: calc(100%); } .cart textarea, .cart input[type="text"], .cart input[type="tel"], .cart input[type="email"] { margin: 0px 10px 0px 10px; width: calc(100% - 40px); } .cart button.remove { /* color: #d6ab4d; d94646 RED */ margin: 10px 0px 0px 0px; padding: 9px 0px 10px 0px; width: auto; } .cart .continue { display: block; font-weight: 600; background-color: #34c759; color: #ffffff; padding: 10px 10px 10px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } .cart .pay { display: block; font-weight: 600; background-color: #635bff; color: #ffffff; padding: 10px 10px 10px 10px; width: 100%; border-radius: 4px; text-align: center; } .cart .stripe { margin: 0; padding: 0; } .cart .stripe .button { display: block; font-weight: 600; background-color: #635bff; color: #ffffff; padding: 10px 0px 10px 0px; width: 100%; border-radius: 4px; text-align: center; } .cart .stripe .more { color: #635bff; text-align: center; padding: 10px 0px 0px 0px; } .cart .stripe-logo { display: block; color: #ffffff; width: 100%; height: 50px; margin: 0px 0px 5px 0px; background-image: url("/_images/blurple.svg"); background-size: auto 25px; background-repeat: no-repeat; background-position: center; } .cart .pay.amazon { background-color: #f0c14b; color: #000000; margin-bottom: 20px; margin-top: 10px; } .cart .pay.amazon.logo { height: 50px; background-image: url("/_images/amazon_logo.svg"); background-size: auto 23px; background-repeat: no-repeat; background-position: center; margin-bottom: 0px; } .cart .use { display: block; color: #ffffff; width: 100%; height: 50px; margin: 0px 0px 10px 0px; background-image: url("/_images/amazon_use.svg"); background-size: auto 11px; background-repeat: no-repeat; background-position: center; } .cart .buttons { padding-top: 10px; } .cart .table .buttons { padding-top: 20px; } .cart .quickpay { padding: 0px 10px 0px 10px; } .cart .questions { padding: 0px 10px 0px 10px; margin: 0px 10px 0px 10px; border-top: 0.5px solid #999999; color: #555555; } .cart .quickpay .paypal { padding: 20px 0px 10px 0px; display: none; } /* .cart .quickpay .stripe { padding: 10px 0px 10px 0px; display: none; } */ .cart .quickpay .show { display: block; } .cart .back { display: block; color: #000000; padding: 8px 9px 9px 9px; margin: 10px 10px 0px 10px; width: calc(100% - 40px); border: 0.5px solid #999999; border-radius: 4px; text-align: center; } .cart button.back { margin: 0px 0px 0.px 0px; width: 100%; border-radius: 4px; } .cart .submit { /* background-color: #d6ab4d; d6ab4d 6cf0f8 f9e951 fef151 e9e9e9 c4b27b d1a054 b68a3a d99938 ffd662 ffd551 f7c46c */ background-color: #34c759; font-weight: 600; color: #ffffff; margin: 10px 10px 0px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } .cart .table { margin: 10px 10px 0px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; } /* .cart .table tr:last-of-type { border-bottom: 0.5px solid #cccccc } */ .cart .table .image { padding: 10px 10px 10px 0px; max-width: 50px; width: 50px; } .cart .table .image a { width: 50px; height: 50px; } .cart .table img { width: 50px; height: 50px; } /* .cart .table .select { padding: 0px 0px 10px 0px; text-align: right; } */ /* .cart .table .select select { width: 60px; } */ .cart .table .shipping { padding: 0px 0px 0px 0px; } /* .cart .table .shipping select { margin-left: 0px; width: 100%; } */ .cart .table .shipping .details { padding: 0px 10px 0px 10px; } .cart .table .shipping .details ul { padding-bottom: 5px; } .cart .table .text { padding: 10px 10px 10px 10px; } .cart .table .empty { padding: 10px 10px 10px 10px; } .cart .table .sum { padding: 10px 10px 10px 10px; text-align: right; } .cart .table .sample { text-align: left; padding: 9px 0px 9px 0px; } .cart .table .sample button { background-color: #f3f3f3; /* 97e5bd */ border-radius: 4px; text-align: center; /* font-weight: 500; */ } .cart .table .checkbox { padding: 10px 0px 10px 0px; } .cart .table .checkbox input { margin-left: 10px; } .cart .table .checkbox div { padding: 5px 0px 5px 0px; } .cart .table .checkbox label { font-size: 18px; padding: 0px 0px 0px 0px; margin-right: 5px; } .cart .table .checkbox button { display: inline; width: auto; padding: 0px; margin: 0px; } .cart .table .checkbox textarea { margin: 0px; width: calc(100% - 20px); } .cart .table .callout { color: #555555; padding: 10px 10px 10px 10px; } .cart .table .callout span { color: #000000; } .cart .table .highlight { color: #d94646; padding: 10px 10px 10px 10px; } /* .cart .table td:first-of-type:not(.image) { padding-left: 10px; } */ .cart .table .number { padding: 10px 10px 10px 0px; text-align: right; } .cart .table .number.inventory { padding-right: 20px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SELECT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .select { background-color: #f3f3f3; padding: 0px 0px 0px 0px; margin-right: 10px; display: block; position: relative; width: auto; height: auto; } .select.variant { padding: 0px 0px 0px 0px; margin: 0px -10px 5px -10px; border-radius: 4px; } .select > select { width: 100%; min-width: 60px; padding-right: 30px; } .select:before { /* &#x25BC \f0d7 */ content: '\25BC'; line-height: 50px; text-align: center; display: block; position: absolute; top: 0; bottom: auto; left: auto; right: 0; width: auto; height: 50px; background-color: transparent; color: #333333; padding: 0px 10px 0px 10px; font-size: 14px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* MENU */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ menu { background-color: white; padding: 10px 0px 10px 0px; position: fixed; top: 70px; left: 0px; right: 0px; bottom: auto; /* width: calc(50% - 20px); */ width: auto; height: 0px; overflow-y: scroll; z-index: 850; display: none; /* background-color: #f6f5f2; */ background-color: #ffffff; } menu.show { display: block; height: auto; bottom: 0px; } menu.display { display: block; position: relative; height: auto; width: auto; top: auto; left: auto; right: auto; bottom: auto; } menu .group { display: inline-block; vertical-align: top; margin: 0px 10px 0px 10px; padding: 0px 0px 20px 0px; column-fill: auto; column-gap: 20px; } menu .group.main { width: calc(33.33% - 20px); column-count: 1; } menu .group.flags { width: calc(100% - 20px); column-count: 4; } menu .group.brand { width: calc(100% - 20px); column-count: 4; } menu .group.category { width: calc(100% - 20px); column-count: 4; } menu .group.clearance { width: calc(100% - 20px); column-count: 4; } menu .group.collection { width: calc(100% - 20px); column-count: 4; } /* menu .group.split { display: inline-block; vertical-align: top; width: calc(50% - 20px); } */ /* menu .group.columns { width: calc(25% - 20px); column-count: 1; } */ /* menu .group:first-of-type { border-top: none; } */ menu a, menu button { /* display: inline-block; vertical-align: top; */ display: block; padding: 5px 10px 5px 10px; text-align: left; /* -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; column-break-inside: avoid; */ /* width: calc(50% - 20px); */ /* color: white; */ } menu .divide { padding: 5px 10px 5px 10px; color: #999999; /* 86bece 93c6d5 */ /* border-top: 0.5px solid #999999; */ } menu .sub { -webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */ page-break-inside: avoid; /* Firefox */ break-inside: avoid; /* IE 10+ */ padding-bottom: 40px; } menu .sub .flag { background-size: 24px 24px; background-repeat: no-repeat; background-position: 10px 7px; padding-left: 42px; margin-bottom: 10px; } menu .sub .flag div { font-size: 13px; line-height: 20px; color: #888888; text-transform: uppercase; } menu .sub.noDivide { /* padding-bottom: 40px; */ } menu .sub a .discounted { display: inline-block; color: #d94646; } menu .sub a:last-of-type { /* padding-bottom: 40px; */ } menu .sub a .usonly { font-size: 13px; line-height: 20px; color: #888888; text-transform: uppercase; } .US menu .sub a .usonly { display: none; } /* menu .columns a, menu .columns button { width: calc(100% - 20px); } */ menu button.close { position: absolute; top: 0px; left: auto; right: 0px; bottom: auto; width: 70px; height: 70px; padding: 10px 10px 10px 10px; text-align: right; /* color: #d6ab4d; */ background-color: transparent; background-image: url("/_images/close-black-48dp.svg"); background-size: 24px 24px; background-repeat: no-repeat; background-position: center; } menu .title { padding: 0px 20px 15px 20px; } menu .subtitle { /* position: -webkit-sticky; position: sticky; top: 0px; */ column-span: all; padding: 10px 10px 10px 10px; margin-bottom: 10px; /* border-bottom: 0.5px solid #999999; */ color: #999999; /* background-color: #ffffff; */ /* font-weight: 600; */ /* background-color: #f6f5f2; */ } menu .teen { color: #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* FOOTER */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ footer { flex-shrink: 0; padding: 0px 0px 30px 0px; margin: 0px 0px 0px 0px; /* font-size: 15px; line-height: 25px; */ /* background-color: #f6f5f2; */ background-color: #f3f3f3; } footer .section { margin: 0px 0px 10px 0px; display: inline-block; vertical-align: top; width: calc(50% - 0px); /* background: red; */ } footer label { font-size: 18px; line-height: 30px; /* font-weight: 500; */ padding: 5px 10px 10px 10px; color: #000000; } footer input[type="tel"] { display: inline-block; vertical-align: top; height: 49px; border-bottom: 0.5px solid #999999; background-color: #ffffff; background-color: transparent; width: calc(100% - 80px); /* margin: 0px 10px 0px 10px; */ /* margin-left: -10px; margin-right: -10px; */ /* width: calc(100% + 20px); */ } footer input[type="tel"]:focus { border-bottom: 0.5px solid #000000; } footer .submit { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/arrow_forward-black-48dp.svg"); border-bottom: 0.5px solid #999999; } footer .submit:disabled { opacity: 0.25; } footer input[type="tel"]:disabled { opacity: 0.25; } footer input[type="tel"]:focus + .submit { border-bottom: 0.5px solid #000000; } footer button { /* font-size: 15px; line-height: 25px; */ } footer .group { display: inline-block; vertical-align: top; margin: 0px 10px 0px 10px; padding: 0px 0px 20px 0px; } footer .connectGroup { display: none; padding: 0px 0px 30px 0px; } .US footer .connectGroup { display: inline-block; } footer .main a, footer .main button { display: block; padding: 5px 10px 5px 10px; text-align: left; background-color: transparent; } footer .subtitle { column-span: all; padding: 10px 10px 15px 10px; color: #999999; } footer .shipping { padding: 20px 20px 10px 20px; margin: 0px 0px 10px 0px; } footer .message { padding: 10px 10px 0px 10px; } footer .copyright { /* font-size: 13px; line-height: 20px; font-weight: 500; */ padding: 10px 10px 0px 10px; color: #555555; } menu a.restricted, menu button.restricted, footer a.restricted, footer button.restricted { display: none; } .US menu a.restricted, .US menu button.restricted, .US footer a.restricted, .US footer button.restricted { display: none; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SOURCE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .source { /* display: flex; flex-wrap: wrap; */ padding: 0px 0px 0px 0px; width: 100%; } .source > div { position: relative; display: inline-block; vertical-align: top; width: calc(50% - 20px); margin: 10px 10px 0px 10px; } .source .image { position: relative; padding-bottom: 56.25%; margin-bottom: 10px; } .source .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .source .notes { padding: 0px 0px 0px 0px; } .source .notes .note { margin: 0px 0px 0px 0px; padding: 0px 10px 30px 10px; } /* .source .notes .note > div { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 9; -webkit-box-orient: vertical; } */ .source .notes .note.notitle { padding-top: 10px; border-top: 0.5px solid #999999; } .source .notes .note .title { color: #999999; padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; border-top: 0.5px solid #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PRODUCT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .product { /* display: flex; flex-wrap: wrap; */ padding: 0px 0px 0px 0px; width: 100%; } .product tr td.days { border: 0px; } .product td.days button { display: inline-block; vertical-align: top; width: 50px; height: 50px; border-radius: 4px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/arrow_downward-black-48dp.svg"); background-color: #ffffff; border: 0.5px solid #34c759; } .product td.days { padding-left: 0px; padding-right: 0px; } .product td.days .select { margin-left: 10px; margin-right: 10px; } .product td.days input { width: 80px; } .product .instruction { padding: 5px 10px 5px 10px; margin: 0px 10px 10px 10px; color: #555555; } .product .instruction .buttons { padding: 5px 0px 5px 0px; } .product .instruction .buttons button { padding: 5px 0px 5px 0px; } .product > div { position: relative; display: inline-block; vertical-align: top; width: calc(50% - 20px); margin: 10px 10px 0px 10px; } .product .location { padding: 20px 100px 10px 10px; /* font-size: 27px; line-height: 35px; */ display: none; } .product table { margin: 5px 0px 0px 0px; } .product tr:first-child { border-top: 0.5px solid #999999; } .product tr.noBottom { border-bottom: none; } /* .product tr td.demphasis { padding-top: 0px; } */ .product th { padding: 10px 10px 10px 10px; text-align: left; } .product td { padding: 10px 10px 10px 10px; } /* .product .location > a { padding-left: 40px; } .product .location > a:before { content: ''; position: absolute; top: 10px; left: 0px; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/navigate_before-black-48dp.svg"); } */ .product .exclusion { padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } .product .promos { padding: 5px 0px 10px 0px; border-top: 0.5px solid #999999; } .product .promos .promo { /* border-radius: 4px; */ /* background-color: #f6f6f6; #f3f3f3 #edf9f0 */ padding: 10px 10px 10px 10px; margin: 5px 0px 0px 0px; width: calc(50% - 25px); display: inline-block; vertical-align: top; font-size: 14px; line-height: 20px; /* font-weight: 500; */ } .product .promos .promo.within { /* background-color: #ffed00; padding: 9px 9px 9px 9px; border: 0.5px solid #999999; background-color: #ffffff; */ } .product .promos .promo:nth-of-type(odd) { margin-right: 5px; } .product .promos .promo:nth-of-type(even) { margin-left: 5px; } .product .promos .promo.sample { margin-top: 10px; width: calc(100% - 20px); } .product .promos .title { color: #888888; } .product .promos .promo.within .title { color: #888888; } .product .wrap { border-top: 0.5px solid #999999; padding-top: 10px; } .product .image { position: relative; padding-bottom: 100%; margin-bottom: 10px; } .product .image.brand { padding-bottom: 56.25%; margin-left: -10px; margin-right: -10px; background-color: red; margin-bottom: 15px; width: calc(100% + 20px); } .product .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .product .sisters { padding: 0px 10px 10px 10px; } .product .sisters .sister { display: inline-block; /* vertical-align: top; PREVENTS BORDER FROM SHOWING */ /* width: 12.5%; padding-bottom: 12.5%; */ width: 16.66%; padding-bottom: 16.66%; position: relative; border-bottom: 0.5px solid #ffffff; } .product .sisters .sister.selected { border-bottom: 0.5px solid #000000; } .product .sisters .sister img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; /* height: calc(100% - 1px); */ object-fit: cover; object-position: center; } .product .page { position: absolute; top: 0px; right: 0px; width: 100px; } .product .page .control { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; /* border-radius: 20px; */ /* background-color: #f3f3f3; */ } .product .page .control.previous { background-image: url("/_images/navigate_before-black-48dp.svg"); /* background-image: url("/_images/arrow_back-black-48dp.svg"); */ } .product .page .control.next { background-image: url("/_images/navigate_next-black-48dp.svg"); /* background-image: url("/_images/arrow_forward-black-48dp.svg"); */ } .product .page .control.previous.disabled, .product .page .control.next.disabled { opacity: 0.25; /* border: 0.5px solid #000000; */ } .product .details { border-top: 0.5px solid #999999; padding: 10px 10px 10px 10px; /* margin-right: 50px; */ /* border-top: 0.5px solid #000000; */ /* font-size: 27px; line-height: 35px; */ } .product .details .brand { padding-right: 80px; } .product .details h2 { font-weight: 600; } .product .details .total { /* font-weight: 400; */ } .product .outofstock { /* padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; */ /* border-top: 0.5px solid #cccccc */ } .product .actions { padding: 0px 0px 0px 10px; margin: 0px 0px 10px -10px; /* position: sticky; top: auto; left: 0px; right: 0px; bottom: 0px; */ /* width: calc(100%); */ } .product a.dd { display: block; vertical-align: top; margin: 5px 0px 10px 0px; width: calc(100% - 60px); line-height: 30px; padding: 10px 0px 10px 0px; font-weight: 600; border-radius: 4px; text-align: center; } .product .actions button { position: relative; /* display: inline-block; */ display: block; vertical-align: top; /* background-color: #34c759; 34c759 cbe1e8 d6ab4d 6cf0f8 f9e951 fef151 e9e9e9 c4b27b d1a054 b68a3a d99938 ffd662 ffd551 f7c46c */ margin: 0px 0px 0px 0px; /* width: calc(100% - 60px); */ width: 100%; /* width: calc(100% - 80px); */ /* color: #000000; */ /* color: #ffffff; */ /* border-top: 0.5px solid #d6ab4d !important; */ /* border-top: 0.5px solid #999999; */ /* font-size: 27px; line-height: 35px; */ /* font-weight: 600; text-transform: uppercase; */ /* background-color: #e6f5f4; */ /* border-top: 0.5px solid #999999; padding-bottom: 9px; */ /* font-size: 27px; line-height: 35px; */ /* font-weight: 500; */ /* color: #34c759; */ font-weight: 600; /* background-color: #f6f5f2; */ border-radius: 4px; background-color: #34c759; color: #ffffff; text-align: center; } .product .actions button.buy { background-color: #635bff; margin: 10px 0px 0px 0px; } .product .actions button:first-child { /* background-color: #f6f5f2; */ } .product .actions button.add { /* background-color: #34c759; color: #ffffff; */ } /* .grid .actions button span, .product .details a span, .product .details button span, .product .actions button span { border-bottom: 0.5px solid GAINSBORO; } */ /* .product .actions button:not(.favorite) { background-color: #000000; color: #ffffff; text-align: center !important; } */ /* .product .actions button:not(.favorite) { padding-left: 50px; } .product .actions button:not(.favorite):before { content: ''; position: absolute; top: 10px; left: 10px; right: auto; bottom: auto; vertical-align: bottom; display: inline-block; width: 30px; height: 30px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/add-black-48dp.svg"); background-color: #fff300; border-radius: 15px; } */ .product .actions button.favorite { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 10px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/favorite_border-black-48dp.svg"); background-color: #ffffff; border: 0.5px solid #34c759; } .product .actions button.favorite.true { background-image: url("/_images/favorite-black-48dp.svg"); } .product .actions button.hide { display: none; } .product .actions button:disabled { opacity: 50%; } .product .category { padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .restricted { margin-top: 5px; padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } .product .gallery { margin-top: 10px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .avaliable { margin: 0px 0px 10px 0px; padding: 10px 10px 10px 10px; font-size: 14px; line-height: 20px; background-color: #f1fbfb; } .product .collection { margin: 10px 0px 0px 0px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .classification { margin: 10px 0px 0px 0px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .later { text-align: center; text-transform: uppercase; font-size: 14px; padding-right: 60px; padding-bottom: 10px; } .product .remaining { color: #d94646; text-align: center; padding-bottom: 5px; } .product .description { margin: 10px 0px 0px 0px; padding: 10px 10px 30px 10px; border-top: 0.5px solid #999999; } .product .notes { /* border-top: 0.5px solid #999999; */ padding: 0px 0px 25px 0px; /* 12PX IS AN OPTICAL ADJUSTMENT */ /* font-size: 16px; line-height: 25px; */ } .product .notes .note { margin: 0px 0px 0px 0px; padding: 0px 10px 0px 10px; /* border-top: 0.5px solid #999999; */ /* color: #555555; */ } .product .notes .extra-bottom { margin-bottom: 15px; } .product .notes .note.notitle { padding-top: 10px; border-top: 0.5px solid #999999; } /* .product .notes .note:first-of-type { padding-top: 10px; } */ .product .notes .note .title { /* color: #999999; */ padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; width: calc(100% + 20px); /* font-weight: 600; */ border-top: 0.5px solid #999999; } .product .notes .note .title:before { content: '\2b'; /* color: #34c759; color: #c7c1af; */ text-align: center; padding: 0px 10px 0px 0px; } /* .product .notes .note .title:after { content: '\2b'; color: #34c759; #c7c1af; width: 30px; text-align: center; float: right; } */ .product .notes .note .title + div { display: none; color: #555555; } .product .notes .note .title.show { padding-bottom: 30px; } .product .notes .note .title.show:before { content: '\2212'; } /* .product .notes .note .title.show:after { content: '\2212'; } */ .product .notes .note .title.show + div { display: block; padding-bottom: 20px; } .product .notes .note .ingredients { column-count: 1; column-gap: 20px; margin-bottom: 20px; margin-top: -5px; } .product .notes .note .ingredients .link span { color: #555555; } .product .notes .note .disclaimer { column-span: all; padding-top: 20px; /* font-size: 13px; line-height: 20px; */ color: #555555; } .product .notes .note .more { display: block; margin-top: 20px; margin-bottom: 10px; padding-top: 10px; padding-bottom: 10px; } .product .notes .note .ingredients button { padding-bottom: 0px; -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; padding: 0 0 10px 0; margin: 0 0 0 0; text-transform: capitalize; } /* .product .options { } .product .options .option { vertical-align: top; display: inline-block; width: 50%; } .product .options .option:nth-child(odd) { margin: 10px 0px 10px 0px; } .product .options .option:nth-child(even) { margin: 10px 0px 10px 0px; } */ .banner { display: none; padding: 10px 10px 10px 10px; /* margin: 0px -10px 0px -10px; */ background-color: transparent; } .product .banner { padding: 0px 10px 10px 10px; } .cart .banner { margin: 0px 10px 0px 10px; } .grid .banner { /* margin: 0px 10px 0px 10px; */ width: 100%; padding: 0px 10px 0px 10px; } .grid .actions .banner { padding: 0px 0px 0px 0px; } .popover .form .banner { padding: 0px 10px 10px 10px; } .banner.show { display: block; } .banner.error { /* background-color: #f7e6e6; color: #000000; */ /* color: #cb0000; */ color: #ff3b30; } /* .product .banner.error { color: #000000; } */ .cart .banner.error { /* background-color: #ffffff; */ } .banner.issue { /* background-color: #f7f4e6; */ /* color: #cb0000; */ color: #ff3b30; } .banner.success { /* background-color: #e6f5f4; e4f3f5 #e6f7e0; */ color: #34c759; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* HOME */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .home { /* NADA */ } .home .top { text-align: center; height: 60px; padding: 10px 0px 10px 0px; } .home .top button { display: inline-block; vertical-align: top; width: auto; } .home .top a { display: inline-block; vertical-align: top; width: auto; padding: 10px 10px 10px 10px; } .home .top div { text-align: center; color: #777; font-size: 13px; line-height: 13px; } .home .item { display: block; height: calc(100vh - 150px); } .home .item img { display: block; vertical-align: top; height: 100%; width: 100%; object-fit: cover; object-position: center; } .home .bottom { text-align: center; height: 50px; padding: 10px 0px 0px 0px; } .home .bottom a { display: inline-block; vertical-align: top; width: auto; padding: 10px 0px 10px 0px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GRID */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .arcade { display: flex; flex-wrap: wrap; overflow: visible; padding: 0px 0px 10px 0px; } .arcade .photo { width: calc(33% - 20px); margin: 0px 10px 20px 10px; cursor: pointer; position: relative; display: flex; flex-direction: column; text-align: center; /* -webkit-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); -moz-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); */ } .arcade .photo .title { /* border-top: 0.5px solid #999999; */ text-align: left; padding: 10px 10px 10px 10px; } .arcade .photo .image { position: relative; width: calc(100%); padding-bottom: calc(150%); background-color: #f6f5f2; } .arcade .photo .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; mix-blend-mode: multiply; } @media all and (max-width: 768px) { .arcade .photo { width: calc(50% - 20px); } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GRID */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .grid { display: flex; flex-wrap: wrap; overflow: visible; padding: 0px 0px 20px 0px; } .grid.samples { padding-bottom: 10px; } .grid .instruction { padding: 5px 10px 5px 10px; margin: 0px 10px 10px 10px; color: #555555; max-width: 576px; } .grid .instruction .buttons { padding: 5px 0px 5px 0px; } .grid .instruction .buttons button { padding: 5px 0px 5px 0px; } .grid .instruction.search { /* padding-top: 10px; */ } .grid .title { display: block; width: calc(100% - 20px); border-top: 0.5px solid #999999; } .grid .item { width: calc(33.33% - 20px); margin: 10px 10px 10px 10px; /* padding: 10px 0px 0px 0px; */ cursor: pointer; background-color: #ffffff; position: relative; /* border-top: 0.5px solid #999999; */ display: flex; flex-direction: column; text-align: center; /* -webkit-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); -moz-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); */ } .grid.samples .item { width: calc(50% - 20px); font-size: 15px; line-height: 25px; outline: 0.5px solid #999999; } /* .grid.home { margin: 0px 40px 0px 40px; } */ /* .grid.home .item { width: calc(100% - 80px); padding: 20px 20px 20px 20px; margin: 0px 20px 40px 20px; border-top: none; } */ .grid .item a { flex-grow: 1; display: flex; flex-direction: column; } .grid .regimen { width: 100%; border-top: 0.5px solid #999999; margin: 10px 10px 0px 10px; padding: 10px 10px 10px 10px; /* text-transform: uppercase; */ } .grid.samples .regimen { margin: 20px 10px 0px 10px; padding: 10px 0px 10px 0px; } .grid.samples .regimen:first-of-type { margin-top: 0px; } /* .grid .item:hover { -webkit-box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); -moz-box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); } */ /* .grid .item .image { display: block; padding-bottom: calc(100%); background-repeat: no-repeat; background-size: cover; background-position: center; margin-bottom: 0px; } */ .grid .item .image { position: relative; width: calc(100%); padding-bottom: calc(100%); /* background-color: #f7f7f7; */ } /* .grid.home .item .image { padding-bottom: calc(66.67%); } */ .grid .item .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .grid .item .image .overlay { position: absolute; bottom: 20px; left: 0px; width: auto; min-width: calc(50% - 20px); height: auto; padding: 10px 10px 10px 10px; color: #000000; background-color: #ffffff; } .grid .item .details { padding: 10px 10px 10px 10px; /* text-align: center; */ /* border-top: 0.5px solid #999999; */ position: relative; /* display: flex; flex-direction: column; */ /* flex-grow: 1; */ } .grid .item .details .label { flex-grow: 1; /* padding-bottom: 10px; */ /* border-bottom: 0.5px solid #999999; */ /* font-weight: 300; */ } .grid .item .details .label span { /* display: block; */ } .grid .item .details .description { margin: 10px 0px 0px 0px; padding: 10px 0px 0px 0px; border-top: 0.5px solid #999999; text-align: left; } /* .grid .item .details .description { padding: 10px 0px 10px 0px; color: #555555; display: none; } .grid .item .details.open .description { display: block; } */ /* .grid .item .brand { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 10; overflow-x: hidden; overflow-y: scroll; border-top: 10px solid #9c9b98; padding: 9px 10px 10px 10px; } */ /* .grid .item .brand .name { font-weight: bold; } */ /* .grid .item .brand .description { padding: 10px 0px 0px 0px; color: #555555; } */ /* .grid .item .price { padding: 10px 10px 10px 10px; text-align: right; } .grid .item.product .price { padding: 0px 0px 0px 0px; text-align: left; font-size: 21px; line-height: 27px; } */ /* .grid .item.product .description { padding: 10px 0px 0px 0px; font-size: 21px; line-height: 27px; } */ /* .grid .item .action { position: absolute; bottom: 45px; padding: 10px 10px 10px 10px; } .grid .item .action.selected { background-color: #ffffff; } .grid .item .action span { } */ /* .grid .item .banner { margin-left: 0px; margin-right: 0px; width: calc(100% - 20px); } */ .grid .item .actions { position: relative; padding: 0px 0px 0px 0px; } .grid .item .restricted { display: inline-block; vertical-align: top; text-align: center; padding: 10px 10px 10px 10px; } .grid .item button.add { /* border-top: 0.5px solid #999999; */ display: inline-block; vertical-align: top; text-align: center; /* width: calc(100% - 50px); */ /* font-weight: 600; */ /* padding-top: 9px; padding-bottom: 9px; margin-right: 20px; border: 0.5px solid #999999; */ /* font-weight: 600; */ /* background-color: #e6f5f4; */ /* background-color: rgba(255,255,51,1); */ /* border-top: 0.5px solid #999999; */ /* background-color: #000000; 00e4c8 */ /* color: #ffffff; */ /* border-top: 0.5px solid #999999; padding-bottom: 9px; */ /* border-radius: 25px; */ /* text-align: center; */ /* background-color: #000000; color: #ffffff; */ /* width: auto; margin: 10px auto 10px auto; padding-left: 25px; padding-right: 25px; border-radius: 25px; border: 0.5px solid #999999; */ /* color: #b19671; */ /* color: #34c759; */ /* border-bottom: 0.5px solid #34c759; */ width: auto; /* margin: 0px auto 10px auto; padding-left: 15px; padding-right: 15px; */ /* border-top: 0.5px solid #999999; */ /* font-weight: 500; */ } .grid .item button { font-weight: 600; } .grid .item button.hide { display: none; } .grid .item button.favorite { /* border-top: 0.5px solid #999999; */ position: absolute; top: auto; left: auto; right: 0px; bottom: 10px; /* margin-top: calc(100% - 50px); */ display: inline-block; vertical-align: bottom; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/favorite_border-black-48dp.svg"); background-color: transparent; /* border: 0.5px solid #999999; */ display: none; } .grid .item button.favorite.true { background-image: url("/_images/favorite-black-48dp.svg"); } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ships */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .ships { width: calc(100% - 40px); border-top: 0.5px solid #999999; margin: 20px 10px 0px 10px; padding: 0px 10px 0px 10px; /* display: flex; justify-content: center; */ /* over-flow: hidden; white-space: nowrap; overflow-y: scroll; */ } .ships .ship { border-radius: 4px; padding: 9px 15px 0px 0px; margin: 0px 0px 0px 0px; display: inline-block; /* width: calc(50% - 25px); vertical-align: top; */ /* font-size: 14px; line-height: 20px; font-weight: 500; */ } .ships .ship:last-of-type { padding-right: 0px; } .ships .ship div { color: #555555; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* APPROVAL */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .approval { display: none; position: fixed; top: auto; left: 0; right: 0; bottom: 0; width: auto; min-height: 40px; height: auto; z-index: 900; background-color: #ebe8e1; padding: 15px 90px 15px 20px; font-size: 13px; line-height: 20px; } .approval.show { display: block; } .approval button { position: absolute; top: 10px; left: auto; right: 10px; bottom: auto; min-width: 70px; width: auto; height: auto; z-index: 900; background-color: #000000; color: #ffffff; padding: 10px 10px 10px 10px; text-align: center; font-size: 13px; font-weight: 600; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* POPOVER */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .popover { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: auto; width: auto; height: 0px; z-index: 1000; background-color: rgba(0,0,0,0.2); justify-content: center; } .popover.show { display: flex; bottom: 0px; height: auto; overflow: hidden; } .popover .shell { overflow-y: scroll; -webkit-overflow-scrolling: touch; width: 100%; max-width: 414px; max-height: 100%; height: auto; align-self: flex-start; /* PREVENTS FROM FILLING VERTICALLY */ background-color: #ffffff; } .popover .wrap { padding: 0px 10px 0px 10px; /* background-color: #fff300; */ } .popover .wrap .title { padding: 20px 10px 10px 10px; font-weight: 600; background-color: #ffffff; position: -webkit-sticky; position: sticky; top: 0px; } .popover .wrap .instruction { padding: 10px 10px 10px 10px; /* color: #555555; */ } .popover .wrap .info { padding: 10px 10px 25px 10px; } .popover .wrap .info.small { font-size: 13px; line-height: 20px; padding-bottom: 25px; } .popover .wrap .info.tight { padding-bottom: 5px; } .popover .wrap .source { display: block; padding-top: 10px; } .popover .wrap .info.error { padding: 10px 10px 0px 10px; } .popover .wrap .form { padding: 10px 0px 20px 0px; width: calc(100% - 20px); } /* .popover .wrap .error { padding: 0px 10px 10px 10px; } */ .popover .wrap .actions { padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; position: -webkit-sticky; position: sticky; bottom: 0px; background-color: #ffffff; } .popover .wrap .actions.multi { margin: 0px -5px 0px -5px; } .popover .wrap .actions button { border-top: 0.5px solid #999999; padding: 10px 0px 10px 0px; margin: 0px 10px 0px 10px; width: calc(100% - 20px); } .popover .wrap .actions.multi button { margin: 0px 5px 0px 5px; width: calc(50% - 20px); display: inline-block; vertical-align: top; } .popover .wrap .actions button.primary { margin-bottom: 10px; font-weight: 600; } .popover .wrap .actions.multi button.primary { margin-bottom: 0px; } .popover .wrap .actions button.secondary { font-weight: 600; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* LOCATIONS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .locations { padding: 0px 0px 0px 0px; } .locations .location { /* display: inline-block; */ vertical-align: top; /* width: calc(50% - 20px); */ padding: 0px 10px 0px 10px; } .locations .location .image { width: 100%; padding-bottom: 66.67%; background-size: cover; background-repeat: no-repeat; background-position: center; } .locations .location .image.sf { background-image: url("/_images/location-sf-bw.jpg"); } .locations .location .image.dc { background-image: url("/_images/location-dc-bw.jpg"); } .locations .location .head { font-weight: 600; border-top: 0.5px solid #000000; padding: 10px 0px 5px 0px; margin-top: 10px; } .locations .location .details { padding: 0px 0px 30px 0px; } .locations .location .details a { display: block; } .locations .location .title { padding: 15px 10px 0px 10px; color: #000000; } .locations .location .subtitle { padding: 0px 10px 15px 10px; margin: 0px 0px 15px 0px; /* font-size: 12px; line-height: 20px; text-transform: uppercase; */ color: #999999; border-bottom: 0.5px solid #999999; } .locations .location .details .status { padding: 0px 10px 15px 10px; margin: 0px 0px 15px 0px; /* font-size: 13px; line-height: 25px; */ border-bottom: 0.5px solid #999999; } .locations .location .details .status .link { display: inline-block; /* font-size: 13px; line-height: 25px; */ padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; width: auto; } .locations .location .details .address { display: inline-block; vertical-align: top; width: calc(50% - 20px); min-width: 210px; padding: 0px 10px 0px 10px; /* color: #555555; */ /* font-size: 13px; line-height: 25px; */ } .locations .location .details .address .group { padding: 0px 0px 30px 0px; } .locations .location .details .hours { display: inline-block; vertical-align: top; width: calc(50% - 20px); padding: 0px 10px 0px 10px; /* font-size: 13px; line-height: 25px; */ } .locations .location .details .hours .day { } .locations .location .details .hours .day div { float: left; width: 70px; color: #999999; } @media all and (max-width: 480px) { .locations .location .details .address, .locations .location .details .hours { display: block; width: calc(100% - 20px); } .ships { } .ships .ship { font-size: 14px; line-height: 20px; } .ships .ship.nomobile { /* display: none; */ } .ships .ship:first-of-type { /* display: none; */ } .promo { font-size: 14px; line-height: 20px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* IG */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .ig { display: flex; flex-wrap: wrap; margin: 0px 10px 10px 10px; } .ig a { width: calc(25% - 20px); margin: 0 0; padding: 0 0; margin: 10px 10px 10px 10px; } .ig a img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: center; margin: 0 0; padding: 0 0; vertical-align: top; } @media all and (max-width: 480px) { .ig a { width: calc(50% - 20px); } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PHOTOS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .photos { padding: 0px 10px 10px 10px; } .photos img { outline: 0.5px solid #ffffff; cursor: zoom-in; } .photos img.half { width: 50%; float: left; } .photos img.full { width: 100%; float: left; } .photos img.third { width: 33.33%; float: left; } .photos img.portrait { width: 30.77%; float: left; } .photos img.landscape { width: 69.23%; float: left; } @media all and (max-width : 767px) { .photos img.half, .photos img.third, .photos img.landscape, .photos img.portrait { width: 100%; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ZOOM - UNUSED */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .zoom { position: fixed; left: 0px; top: 0px; right: 0px; bottom: 0px; width: auto; height: auto; /*background-color: rgba(0,0,0,0.75);*/ background-color: #ffffff; z-index: 99999; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: zoom-out; } .zoom .close { position: absolute; left: auto; top: 0px; right: 0px; bottom: auto; width: 48px; height: 48px; font-size: 24px; line-height: 48px; text-align: center; color: #ffffff; background-color: rgba(0,0,0,0.2); } .zoom img { height: auto; width: auto; /*max-width: calc(100% - 64px); max-height: calc(100% - 64px);*/ max-width: 100%; max-height: 100%; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ABOUT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .about { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; overflow: visible; } .about .cover { /* margin-top: -30px; */ margin-bottom: 20px; position: relative; width: 100%; } .about .cover .image { text-align: center; } .about .cover .image img { display: block; width: 540px; height: 100%; max-width: 100%; object-fit: cover; object-position: center; margin: 0 auto; } .about .copy { margin: 0px auto; padding: 20px 20px 0px 20px; max-width: 540px; color: #000000; } .about .copy h1 { padding: 0px 0px 20px 0px; font-weight: 600; } .about .copy p { -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; } .about .book { display: block; font-weight: 600; background-color: #34c759; color: #ffffff; padding: 10px 10px 10px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - COPY */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-copy { padding: 20px 20px 0px 20px; margin: 0px 0px 0px 0px; column-count: 4; column-gap: 40px; } .content-copy .sub { max-width: 576px; -webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */ page-break-inside: avoid; /* Firefox */ break-inside: avoid; /* IE 10+ */ } .content-copy h6 { padding-top: 5px; padding-bottom: 5px; color: #999999; } .content-copy p, .content-copy ul { /* color: #555555; */ } .content-copy a { /* color: #d6ab4d; */ color: #555555; } @media all and (max-width : 1600px) { .content-copy { column-count: 3; } } @media all and (max-width : 1200px) { .content-copy { column-count: 2; } } @media all and (max-width : 979px) { .content-copy { column-count: 2; } } @media all and (max-width : 767px) { .content-copy { column-count: 1; } } @media all and (max-width : 480px) { .content-copy { column-count: 1; column-gap: 12px; } } @media all and (max-width : 320px) { .content-copy { column-count: 1; column-gap: 12px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - SERVICES */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-services { padding: 20px 10px 0px 10px; margin: 10px 0px 0px 0px; column-count: 3; column-gap: 20px; /* overflow: visible; clear: both; border-top: 0.5px solid #999999; */ } .content-services .sub { break-inside: avoid; padding: 0px 0px 20px 0px; } .content-services .title { padding: 0px 10px 0px 10px; font-weight: 600; } .content-services .more { padding: 0px 10px 0px 10px; font-size: 13px; line-height: 20px; } .content-services table { table-layout: fixed; } .content-services thead tr { border-bottom: 0.5px solid #999999; } .content-services th { padding: 10px 10px 10px 10px; font-size: 13px; line-height: 20px; text-align: center; color: #555555; } .content-services td { padding: 10px 10px 10px 10px; } .content-services th.label, .content-services td.label { font-size: 13px; line-height: 20px; width: 180px; } .content-services td span { font-size: 13px; line-height: 20px; } .content-services .number { text-align: center; } @media all and (max-width : 1600px) { .content-services { column-count: 3; } } @media all and (max-width : 1200px) { .content-services { column-count: 2; } } @media all and (max-width : 979px) { .content-services { column-count: 2; } } @media all and (max-width : 767px) { .content-services { column-count: 1; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - PRESS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-press { padding: 20px 10px 0px 10px; margin: 10px 10px 0px 10px; overflow: visible; clear: both; border-top: 0.5px solid #999999; } .content-press .head { padding: 5px 0px 5px 0px; /* font-weight: 600;*/ width: 100px; display: inline-block; vertical-align: top; margin-right: -100px; } .content-press .articles { display: inline-block; vertical-align: top; margin-left: 100px; width: calc(100% - 100px); } .content-press .articles .article { position: relative; display: inline-block; vertical-align: top; padding: 0px 0px 30px 0px; width: 25%; vertical-align: top; } .content-press .articles .article .brand { margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; color: #000000; } .content-press .articles .article .description { margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; } .content-press .articles .article .description .title { color: #555555; } @media all and (max-width: 1600px) { .content-press .articles .article { /* width: 20%; */ /* width: 25%; */ } } @media all and (max-width: 1338px) { .content-press .articles .article { width: 33%; } } @media all and (max-width: 1080px) { /* .content-press .articles .article { width: 33%; } */ } @media all and (max-width: 800px) { .content-press .articles .article { width: 50%; } } @media all and (max-width: 480px) { .content-press .articles .article { width: 100%; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SIGNATURE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .signature { display: none; margin: 10px 10px 10px 10px; } .signature .title { border-top: 0.5px solid #000000; padding: 10px 10px 20px 10px; font-weight: 600; } .signature .content { padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* MEDIA - NON-CONTENT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ @media all and (min-width: 1260px) { .path .item select { width: calc(20% - 20px); } .grid:not(.samples) .item { width: calc(25% - 20px); } } @media all and (max-width: 1024px) { /* .grid.home .item { width: calc(50% - 20px); } */ } @media all and (max-width: 1023px) { menu .group.flags { column-count: 3; } menu .group.brand { column-count: 3; } menu .group.category { column-count: 3; } menu .group.clearance { column-count: 3; } menu .group.collection { column-count: 3; } } @media all and (max-width: 768px) { .path .item select { width: calc(33.33% - 20px); } .grid:not(.samples) .item { width: calc(50% - 20px); } .cart .group { width: 100%; } } @media all and (max-width: 767px) { menu .group.main { width: calc(50% - 20px); column-count: 1; } } @media all and (max-width: 414px) { /* body { margin: 10px 0px 10px 0px; } */ footer .section { width: calc(100% - 0px); } .locations .location { width: calc(100% - 20px); } .path .item select { width: calc(50% - 20px); } .product .details { /* padding-top: 20px; text-align: center; */ } .large { /* font-size: 18px; line-height: 30px; */ } .grid .item { /* width: calc(100% - 20px); */ font-size: 13px; line-height: 20px; } .grid .item button { font-size: 13px; line-height: 20px; } /* .grid .item .image { position: relative; width: calc(75%); padding-bottom: calc(75%); margin: 0 auto; } .grid .item .details { text-align: center; padding-left: 0px; padding-right: 0px; } */ /* .grid .item button { font-size: 15px; line-height: 20px; } .grid .item .details { padding: 10px 10px 0px 10px; } */ .grid .item .actions { /* padding: 5px 0px 0px 0px; */ /* display: none; */ } /* .grid .item .details .label { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } */ .grid .item button.favorite { width: 40px; height: 40px; right: 5px; bottom: 0px; display: none; } /* .grid.home .item { width: calc(100% - 20px); } */ .grid .item .image .overlay { font-size: 12px; padding-top: 6px; padding-bottom: 6px; } .source > div { width: calc(100% - 20px); } .product > div { /* display: inline-block; vertical-align: top; */ width: calc(100% - 20px); /* margin-bottom: 0px; padding-bottom: 0px; */ } .product .location { position: -webkit-sticky; position: sticky; top: 70px; background-color: #ffffff; z-index: 10; } .product .empty { display: none; } .cart .group { width: 100%; } nav a.logo { left: calc(50% - 90px); right: calc(50% - 90px); width: 180px; background-size: auto 22px; } /* nav .links .icon.search { display: none; } */ menu .group.flags { column-count: 2; } menu .group.brand { column-count: 2; } menu .group.category { column-count: 2; } menu .group.clearance { column-count: 2; } menu .group.collection { column-count: 2; } /* menu { top: 0px; } */ /* body { margin: 10px 5px 5px 5px; } * { } .nav { } nav .item { margin-left: 5px; margin-right: 5px; } .nav .item { margin-left: 5px; margin-right: 5px; } .grid .item { margin-left: 5px; margin-right: 5px; margin-bottom: 10px; } */ } @media all and (max-width: 375px) { /* .grid.home .item { width: calc(100% - 20px); } */ nav .links .icon.search { display: none; } } @media all and (max-width: 320px) { .grid:not(.samples) .item { width: calc(100% - 20px); } /* .grid.home .item { width: calc(100% - 20px); } */ menu .group.main { width: calc(100% - 20px); column-count: 1; } menu .group.flags { column-count: 1; } menu .group.brand { column-count: 1; } menu .group.category { column-count: 1; } menu .group.clearance { column-count: 1; } menu .group.collection { column-count: 1; } } @media all and (max-width: 666px) { /* body { font-size: 15px; line-height: 20px; } * { font-size: 15px; line-height: 20px; } .grid .item { padding-bottom: 40px; } .grid .item .details.open { bottom: 40px; } nav .item .logo { height: 20px; background-size: auto 20px; } .grid .item.tint { width: calc(100% - 20px); } .grid .item.tint .brand { position: relative; } .grid .item.tint .brand .description { display: none; } .nav .item .hide { display: none; } */ } @media all and (max-width: 567px) { /* .nav .item { width: calc(50% - 20px); } .nav .item .hide { display: inline; } */ } @media all and (max-width: 375px) { /* .grid:not(.samples) .item { width: calc(100% - 20px); } */ } @media all and (max-width: 320px) { /* .nav .item .hide { display: none; } */ } @media screen and (orientation: portrait) { /* .home .item .image { width: calc(100% - 40px); height: 100%; margin: 0px 20px 0px 20px; } */ /* .home .item img { object-fit: cover; } */ /* .home .item .image { width: 100%; margin: 0px 0px 0px 0px; } */ } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SIGNATURE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ @media print { nav .links .icon { display: none; } footer { display: none; } /* .trustpilot { display: none; } */ .approval.show { display: none; } .livechat_button { display: none; } .signature { display: block; } .noprint { display: none; } } .link { /* color: #6abcd7 !important; */ /* color: #46cdd97 !important; */ /* color: #eb5528 !important; */ /* color: #d24319 !important; */ /* color: #3b5655 !important; */ /* color: #d6ab4d !important; LIGHT VERSION OF SALAMANDAR */ /* TODO MOVE TO END TO DEAL WITH IMPORTANT */ /* color: #d6ab4d !important; */ cursor: pointer; } .link span { color: inherit; border-bottom: 0.5px solid #cccccc; /* dotted #34c759 #3b9f53 #999999; */ /* white-space: normal; word-wrap: break-word; */ height: auto; position: relative; } a.link span { border-bottom: 0.5px solid #cccccc; /* SAFARI REQUIRED THIS } @media (hover: hover) { .link span:hover { border-bottom: 0.5px solid #333333; /* dotted #41a55a #333333; */ } } </style> <script> // localStorage.clear(); var statusError = { status: 'error', type: 'status', title: 'Error', message: 'An unknown error has occured. We have been notified of the issue. Reload the page and try again (S1).', secondary: 'Ok', primary: null, primaryAction: null, } var catchError = { status: 'error', type: 'catch', title: 'Error', message: 'An unknown error has occured. We have been notified of the issue. Reload the page and try again (C1).', secondary: 'Ok', primary: null, primaryAction: null, } var formError = { status: 'error', type: null, title: 'Error', message: 'See errors below.' } var addCartError = { status: 'error', type: null, title: 'Error', message: 'Product was not added, cart contains max available products.' } var addCartIssue = { status: 'issue', type: null, title: 'Error', message: '' // DYNAMIC } var addCartSuccess = { status: 'success', type: null, title: 'Success', message: '' // DYNAMIC } var connectJoinSuccess = { status: 'success', type: null, title: 'Success', message: 'A confirmation text message has been sent.' } var connectJoinError = { status: 'error', type: null, title: 'Error', message: '' // DYNAMIC } var notifyAddSuccess = { status: 'success', type: null, title: 'Success', message: 'Notification was saved.' } var notifyAddError = { status: 'error', type: null, title: 'Error', message: '' // DYNAMIC } var notifyRemoveSuccess = { status: 'success', type: null, title: 'Success', message: 'Notification was removed.' } function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); let length = ca.length; for (let i = 0; i < length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function setCookie(cname, cvalue, exdays) { const d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); let expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";secure;path=/"; } function checkCookie(cname, cvalue) { let value = getCookie(cname); if (value != "") { // alert(cname); } else { setCookie(cname, cvalue, 365); } } function copyToClipboard(obj,event) { var range = document.createRange(); range.selectNode(obj); window.getSelection().removeAllRanges(); // CLEAR CURRENT SELECTION window.getSelection().addRange(range); // SELECT TEXT document.execCommand("copy"); window.getSelection().removeAllRanges(); // DESELECT } var capturedIngredients = []; function switchVariant(obj,event) { location.href = obj.value; } function toggleNote(obj,event) { if (obj.classList.contains('show')) { obj.classList.remove('show'); } else { obj.classList.add('show'); } } function toggleInfo(obj,event) { var info = obj.parentNode.querySelector('.details.open'); if (info) { info.classList.remove('open'); if (info.parentNode.id == obj.id) { return; } } info = obj.querySelector('.details'); if (info) { info.classList.add('open'); } } function toggleAddToCartState(enable,add,quantity) { if (enable) { if (quantity) { quantity.disabled = false; } if (add) { add.disabled = false; add.innerHTML = 'Add to Cart'; } } else { if (quantity) { if (typeof(cartQuantity) != 'undefined') { cartQuantity.disabled = true; } } if (add) { add.disabled = true; add.innerHTML = 'Adding ...'; } if (typeof(statusBanner) != 'undefined') { statusBanner.classList.remove('show'); statusBanner.classList.remove('success'); statusBanner.classList.remove('issue'); statusBanner.classList.remove('error'); statusBanner.textContent = ''; } else { var banner = add.parentNode.querySelector('.banner'); if (banner) { banner.classList.remove('show'); banner.classList.remove('success'); banner.classList.remove('issue'); banner.classList.remove('error'); banner.textContent = ''; } } } } function updateCartTotals(cells) { if (!cells[0]) { return; } var quantity = 0; var total = 0; var amount = 0; var subtotal = 0; cells.forEach(function(cell,i) { quantity = parseInt(cell.dataset.quantity); total = parseFloat(cell.dataset.total); amount = quantity * total; subtotal += amount; cell.innerHTML = '$' + amount.toFixed(2); }); cartSubtotal.innerHTML = '$' + subtotal.toFixed(2); } function changeShipMethod(obj,event) { if (obj.value == 'ship') { addressGroup.classList.add('show'); } else { addressGroup.classList.remove('show'); } } function continueToPayment() { var shipErrors = false; var token = getToken(); var method = 'ship'; // document.getElementById("method"); var fname = document.getElementById("fname"); var lname = document.getElementById("lname"); var email = document.getElementById("email"); var phone = document.getElementById("phone"); var recipient = document.getElementById("recipient"); var address = document.getElementById("address"); var unit = document.getElementById("unit"); var locality = document.getElementById("locality"); var province = document.getElementById("province"); var postalCode = document.getElementById("postalCode"); var note = document.getElementById("note"); var signup = document.getElementById("signup"); var fnameError = document.getElementById("fnameError"); var lnameError = document.getElementById("lnameError"); var emailError = document.getElementById("emailError"); var phoneError = document.getElementById("phoneError"); var addressError = document.getElementById("addressError"); var localityError = document.getElementById("localityError"); var provinceError = document.getElementById("provinceError"); var postalCodeError = document.getElementById("postalCodeError"); if (isEmpty(fname.value)) { fnameError.textContent = "Required"; shipErrors = true; } else { fnameError.textContent = ""; fname.value = trimString(fname.value); } if (isEmpty(lname.value)) { lnameError.textContent = "Required"; shipErrors = true; } else { lnameError.textContent = ""; lname.value = trimString(lname.value); } if (isEmpty(email.value)) { emailError.textContent = "Required"; shipErrors = true; } else { email.value = trimString(email.value); if (isEmail(email.value)) { email.value = email.value.toLowerCase(); emailError.textContent = ""; } else { emailError.textContent = "Check format"; shipErrors = true; } } if (isEmpty(phone.value)) { phoneError.textContent = "Required"; shipErrors = true; } else { phone.value = trimString(phone.value); phone.value = scrubPhoneNumber(phone.value); if (isPhoneNumber(phone.value)) { phone.value = formatPhoneNumber(phone.value); phoneError.textContent = ""; } else { phoneError.textContent = "Must contain 10 numbers"; shipErrors = true; } } if (isEmpty(recipient.value)) { recipient.textContent = ""; } else { recipient.value = trimString(recipient.value); } if (isEmpty(address.value)) { addressError.textContent = "Required"; shipErrors = true; } else { addressError.textContent = ""; } if (isEmpty(unit.value)) { unit.textContent = ""; } else { unit.value = trimString(unit.value); } if (isEmpty(locality.value)) { localityError.textContent = "Required"; shipErrors = true; } else { localityError.textContent = ""; locality.value = trimString(locality.value); } if (isEmpty(province.value)) { provinceError.textContent = "Required"; shipErrors = true; } else { provinceError.textContent = ""; province.value = trimString(province.value); } if (isEmpty(postalCode.value)) { postalCodeError.textContent = "Required"; shipErrors = true; } else { postalCode.value = trimString(postalCode.value); if (isValidPostalCode(postalCode.value)) { postalCodeError.textContent = ""; postalCodeError.textContent = ""; } else { postalCodeError.textContent = "Must be 5 or 9 numbers"; shipErrors = true; } } if (shipErrors) { showBannerMessage(formError,null,null,null); return false; } hideBannerMessage(null); var data = { token: token, method: 'ship', // method.value, fname: fname.value, lname: lname.value, email: email.value, phone: scrubPhoneNumber(phone.value), recipient: recipient.value, address: address.value, unit: unit.value, locality: locality.value, province: province.value, postalCode: postalCode.value, note: note.value, // signup: signup.checked, country: country.value, } fetch('/updateShipTo/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/updateShipTo/'; toggleInfoPopover(null,null,statusError,null); return; } hideBannerMessage(null); window.location.href = '/payment/' + token; }).catch((error) => { catchError.error = error; catchError.subject = '/updateShipTo catch/'; toggleInfoPopover(null,null,catchError,null); }); return false; } function removeCartProducts() { toggleProcessing(); var token = getToken(); var data = { token: token }; fetch('/removeCartProducts/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeCartProducts/'; toggleInfoPopover(null,null,statusError,null); return; } // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href); // TODO LAZY BUT EASY }).catch((error) => { catchError.error = error; catchError.subject = '/removeCartProducts catch/'; toggleInfoPopover(null,null,catchError,null); }); } function showGridFilter(obj) { var filter = obj.dataset.filter; var shell = document.querySelector('[data-shell="' + filter + '"]'); obj.classList.add('selected'); if (shell) { shell.classList.add('show'); var menu = shell.querySelector('.menu'); if (menu) { var rect = obj.getBoundingClientRect(); menu.style.top = rect.y + rect.height + 'px'; menu.style.left = rect.x + 'px'; menu.style.minWidth = rect.width + 'px'; rect = menu.getBoundingClientRect(); var style = window.getComputedStyle(obj.parentNode); if (rect.top + rect.height > window.innerHeight) { var offset = 15; // parseInt(style.marginBottom); REMOPVED BOTTOM MARGIN menu.style.bottom = offset + 'px'; // window.innerHeight - rect.top - offset + 'px'; } rect = menu.getBoundingClientRect(); if (rect.x + rect.width > window.innerWidth) { menu.style.left = window.innerWidth - rect.width - parseInt(style.paddingRight) + 'px'; // } // SCROLL WILL NOT WORK WHEN RESIZED DYNAMICALLY // if (rect.left + (rect.width * 2) < window.innerWidth - parseInt(style.marginLeft) - parseInt(style.marginRight)) { // // menu.style.width = (rect.width * 2) + 'px'; // window.innerHeight - rect.top - offset + 'px'; // // } // console.log(rect.left + (rect.width * 2), window.innerWidth - parseInt(style.marginLeft) - parseInt(style.marginRight)); } document.body.classList.add('noscroll'); } } function hideGridFilter(obj,event) { event.stopPropagation(); var shells = document.querySelectorAll('[data-shell]'); if (shells) { shells.forEach(function(shell,i) { shell.classList.remove('show'); }); } var filters = document.querySelectorAll('[data-filter]'); if (filters) { filters.forEach(function(filter,i) { filter.classList.remove('selected'); }); } document.body.classList.remove('noscroll'); } function filterRegimen(obj,id) { var grid = document.querySelector('.grid'); var value = id; if (grid) { var items = grid.querySelectorAll('[data-regimen]'); var button = document.querySelector('[data-filter="regimen"]'); if (button) { var htmlString = '<span>'; if (obj.dataset.parent) { htmlString += obj.dataset.parent + ' / '; } htmlString += obj.textContent; htmlString += '</span>'; button.innerHTML = htmlString; } if (items) { items.forEach(function(item,i) { if (value == 'all') { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (value == item.dataset.regimen) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (item.classList.contains('regimen')) { item.style.display = 'none'; } else { item.parentNode.style.display = 'none'; } } } }); } window.scrollTo(0, 0); } } function filterGrid(obj,id,type,source) { if (type == 'filter') { var grid = document.querySelector('.grid'); if (grid) { var items = grid.querySelectorAll('[data-filter]'); var value = id; var button = document.querySelector('[data-filter="' + source + '"]'); if (source == 'subcategory') { button = document.querySelector('[data-filter="category"]'); } if (button) { var htmlString = '<span>'; if (obj.dataset.parent) { htmlString += obj.dataset.parent + ' / '; } htmlString += obj.textContent; htmlString += '</span>'; button.innerHTML = htmlString; } if (items) { items.forEach(function(item,i) { if (value == 'all') { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (source == 'subcategory' && value == item.dataset.subcategory) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else if (value == item.dataset.filter) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (item.classList.contains('regimen')) { item.style.display = 'none'; } else { item.parentNode.style.display = 'none'; } } } }); } } window.scrollTo(0, 0); } else { // TYPE == MASTER // if (type == 'Brand') { // // window.location.href = '/brand/' + obj.value; // // } else if (type == 'Category') { // // window.location.href = '/category/' + obj.value; // // } } } function showExceptions() { var error = { status: 'error', type: 'payment', title: 'Discount Exceptions', message: 'Does not apply to items on sale and the brand Vintner\'s Daughter.', secondary: 'Ok', primary: null, primaryAction: null, } error.subject = '/showExceptions/'; toggleInfoPopover(null,null,error,null); } function updateCartShipping(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('shippingService',value); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); localStorage.setItem('shippingDays',0); // FORCES UPDATE WHEN RETURN TO PROODUCT PAGE } } function updateCartSig(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('shippingSig',value); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); localStorage.setItem('shippingDays',0); // FORCES UPDATE WHEN RETURN TO PROODUCT PAGE // NOT SURE IF NEEDED } } function updateCartTax(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('taxLocation',value); localStorage.setItem('taxLocationAuto','false'); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); } } // function updateCartTrustpilot(obj,replace) { // // var value = obj.checked; // localStorage.setItem('trustpilot',value); // // } function updateCartNoinvoice(obj,replace) { var value = obj.checked; localStorage.setItem('noinvoice',value); } function updateCartNote(obj,replace) { var value = obj.value; localStorage.setItem('note',value); } function sendNexmo(data) { fetch('/sendNexmo/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // NADA }).catch((error) => { // NADA }); } function updateCartProduct(obj) { toggleProcessing('Updating Your Cart'); var id = obj.dataset.id; var inventory = +obj.dataset.inventory; var value = +obj.value var quantity = inventory < value ? inventory : value; var exceeded = inventory < value ? true : false; var data = { // TOKEN NOT NEEDED id: id, quantity: quantity, }; fetch('/updateCartProduct/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }) .then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/updateCartProduct/'; toggleInfoPopover(null,null,statusError,null); return; } var element = document.getElementById('total_' + id); if (element) { element.dataset.quantity = obj.value; } var cells = document.querySelectorAll('[data-total]'); // hideBannerMessage(null); // updateCartTotals(cells); // getCartCount(); // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href + '?exceeded=' + exceeded + '&quantity=' + quantity); // TODO LAZY BUT EASY if (exceeded) { var product = 'Unkown'; if (obj) { if (obj.parentNode) { if (obj.parentNode.parentNode) { if (obj.parentNode.parentNode.dataset) { if (obj.parentNode.parentNode.dataset.item) { product = obj.parentNode.parentNode.dataset.item; } } } } } var data = { text: product + ' Exceeded ' + value + ' / ' + quantity } sendNexmo(data); } }).catch((error) => { catchError.error = error; catchError.subject = '/updateCartProduct catch/'; toggleInfoPopover(null,null,catchError,null); }); } function hideBannerMessage(obj) { if (typeof(statusBanner) != 'undefined') { statusBanner.classList.remove('show'); statusBanner.classList.remove('success'); statusBanner.classList.remove('issue'); statusBanner.classList.remove('error'); statusBanner.textContent = ''; } else if (obj) { obj.classList.remove('show'); obj.classList.remove('success'); obj.classList.remove('issue'); obj.classList.remove('error'); obj.textContent = ''; } else { var banner = add.parentNode.querySelector('.banner'); if (banner) { banner.classList.remove('show'); banner.classList.remove('success'); banner.classList.remove('issue'); banner.classList.remove('error'); banner.textContent = ''; } } } function showBannerMessage(result,error,style,obj) { // SOURCE ERROR MESSAGE IF IT EXISTS var banner = null; if (result) { if (typeof(statusBanner) != 'undefined' && !obj) { // PAGE MAY HAVE STATUS BANNER WHICH WILL OVERRIDE BASED OBJ banner = statusBanner; } else { if (style) { var grid = document.querySelector('.' + style); if (grid) { banner = document.createElement("div"); grid.textContent = ''; grid.appendChild(banner); banner.classList.add('banner'); banner.classList.add('error'); } } else if (obj) { if (obj.parentNode) { var inserted = obj.parentNode.querySelector('.banner'); if (inserted) { banner = inserted; } else { banner = document.createElement("div"); } obj.parentNode.insertBefore(banner, obj); banner.classList.add('banner'); } } } if (!banner) { return; } if (result.status == 'error') { banner.classList.add('error'); banner.classList.remove('issue'); banner.classList.remove('success'); if (!obj) { window.scrollTo(0, 0); } } else if (result.status == 'issue') { banner.classList.remove('error'); banner.classList.add('issue'); banner.classList.remove('success'); if (!obj) { window.scrollTo(0, 0); } } else if (result.status == 'success') { banner.classList.remove('error'); banner.classList.remove('issue'); banner.classList.add('success'); } banner.textContent = result.message; banner.classList.add('show'); } if (error) { // TODO LOG/SEND ERROR } } function removeFromCart(id) { toggleProcessing('Updating Your Cart'); var data = { // TODO ADD TOKEN id: id, }; fetch('/removeFromCart/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeFromCart/'; toggleInfoPopover(null,null,statusError,null); return; } hideBannerMessage(null); var element = document.getElementById('row_' + id); if (element) { element.parentNode.removeChild(element); } var cells = document.querySelectorAll('[data-total]'); if (!cells[0] && typeof(cartTableBody) != 'undefined') { cartTableBody.innerHTML = '<tr><td class="empty demphasis">Cart is empty</td></tr>'; if (typeof(cartActions) != 'undefined') { cartActions.parentNode.removeChild(cartActions); } } else { updateCartTotals(cells); } // getCartCount(); // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href); // TODO LAZY BUT EASY }).catch((error) => { catchError.error = error; catchError.subject = '/removeFromCart catch/'; toggleInfoPopover(null,null,catchError,null); }); } function addToCart(obj,event,id,type) { if (event) { event.stopPropagation(); } if (type == 'Buy') { try { if (obj) { fathom.trackEvent('Buy - Product'); } else { fathom.trackEvent('Buy - Google'); } } catch(error) { // NADA } } var token = getToken(); var quantity = 1; var max = 1; if (type == 'Sample') { toggleProcessing('Updating Your Cart'); max = 2; } else if (type == 'DavinesGift') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Wrap') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Card') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Buy') { if (typeof(varQty) != 'undefined') { // BUY PAGE toggleProcessing('Updating Your Cart'); max = varQty; } else { // PRODUCT PAGE if (obj.dataset.hasOwnProperty('inventory')) { max = parseInt(obj.dataset.inventory); } } } else { if (typeof(cartQuantity) != 'undefined') { quantity = parseInt(cartQuantity.value); max = parseInt(cartQuantity.dataset.max); toggleAddToCartState(false,obj,cartQuantity); } else { if (obj.dataset.hasOwnProperty('inventory')) { max = parseInt(obj.dataset.inventory); } toggleAddToCartState(false,obj,null); } } var data = { token: token, quantity: quantity, max: max, id: id, }; try { var params = { 'cascadeCreate': true, } const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); if (urlParams.has('recommId')) { params.recommId = urlParams.get('recommId'); } var recombeeClient = new recombee.ApiClient('veer-wander-prod', '2XQwP5AWJVVkkM3CTkr4mchtH1Zh37x2z5AMRX4zFJcPbzLDNNP5kIlmIHQ0FB5n', {region: 'us-west'}); recombeeClient.send(new recombee.AddCartAddition( token, // USER id, // ITEM params )).then(function(response) { // NADA }).catch(function(error) { // NADA }); } catch (error) { // NADA } fetch('/addToCart/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { var enabled = true; if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { enabled = false; if (obj) { showBannerMessage(result,null,null,obj); } result.subject = '/addToCart status error/issue/'; sendError(result); } } else { catchError.subject = '/addToCart no status/'; toggleInfoPopover(null,null,catchError,null); if (type == 'Sample') { toggleSamplesPopover(obj,event); toggleProcessing(); } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); toggleProcessing(); } else if (type == 'Wrap') { toggleWrapPopover(obj,event); toggleProcessing(); } else if (type == 'Card') { toggleCardPopover(obj,event); toggleProcessing(); } } if (type == 'Sample' || type == 'DavinesGift' || type == 'Wrap' || type == 'Card') { // NADA } else if (type == 'Buy') { location.href = '/checkout/' + token; } else { if (typeof(cartQuantity) != 'undefined') { toggleAddToCartState(enabled,obj,cartQuantity); } else { toggleAddToCartState(enabled,obj,null); } } if (!enabled) { return; } if (type == 'Sample') { toggleSamplesPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Wrap') { toggleWrapPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Card') { toggleCardPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Buy') { // NADA } else { var count = result.count; if (result.exceed) { var dict = {}; if (count == max) { dict = addCartError; } else if (count + quantity > max) { // dict = addCartIssue; // dict.message = 'Cart was updated but only ' + (max - count) + ' product' + ((max - count) > 1 ? 's were' : ' was') + ' added, exceeded available inventory.'; dict = addCartError; } showBannerMessage(dict,null,null,obj); obj.disabled = true; if (typeof(cartBuyButton) != 'undefined') { cartBuyButton.disabled = true; } } else { // dict = addCartSuccess; // // dict.message = quantity + ' product' + (quantity > 1 ? 's were' : ' was') + ' added to your cart.'; // dict.message = 'Successfully added.'; obj.textContent = 'Add Another'; } try { pintrk('track', 'addtocart', { order_quantity: quantity, }); } catch(error) { // NADA } } if (type != 'Buy') { getCartCount(); } }).catch((error) => { catchError.error = error; catchError.subject = '/addToCart catch/'; toggleInfoPopover(null,null,catchError,null); if (type == 'Sample') { toggleSamplesPopover(obj,event); toggleProcessing(); } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); toggleProcessing(); } else if (type == 'Wrap') { toggleWrapPopover(obj,event); toggleProcessing(); } else if (type == 'Card') { toggleCardPopover(obj,event); toggleProcessing(); } }); } function sendError(error) { if (!error.hasOwnProperty('nosend')) { error.nosend = false; } if (error.nosend) { return; } var data = { error: error, }; fetch('/sendError/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // NADA }).catch((error) => { console.log(error); }); } function setCartLink() { var token = getToken(); if (!token) { statusError.subject = '/setCartLinks no token/'; sendError(statusError); return; } var shippingService = getShippingService(); var taxLocation = getTaxLocation(); var shippingSig = getShippingSig(); basketLink.href = '/cart/' + token + '/' + shippingService + '/' + taxLocation + '/' + shippingSig; basketLink.classList.remove('disabled'); } function getCartCount() { var token = getToken(); if (!token) { statusError.subject = '/getCartCount no token/'; sendError(statusError); return; } var data = { token: token, }; try { fetch('/getCartCount/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // DO NOT SHOW ERROR return; } } else { // DO NOT SHOW ERROR return; } if (!result.hasOwnProperty('count')) { // DO NOT SHOW ERROR return; } var basketCount = document.getElementById('basketCount'); if (!basketCount) { // TODO NEED ERROR return; } if (result.count > 0) { basketCount.innerHTML = result.count; basketLink.classList.add('full'); } else { basketCount.innerHTML = ""; basketLink.classList.remove('full'); } }).catch((error) => { // DO NOT SHOW ERROR // BOTS FIRE THIS ALOT // catchError.message = JSON.stringify(error); // catchError.token = token; // catchError.subject = '/getCartCount fetch catch/'; // sendError(catchError); }); } catch(error) { // DO NOT SHOW ERROR catchError.message = JSON.stringify(error); catchError.token = token; catchError.subject = '/getCartCount try catch/'; sendError(catchError); } } function connectKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode if (code == 13) { joinConnect(obj,event); } } function joinConnect(obj,event) { var phone = ''; if (isEmpty(connectTel.value)) { connectJoinError.message = "A mobile number is required."; showBannerMessage(connectJoinError,null,null,connectBanner); return; } else { phone = trimString(connectTel.value); phone = scrubPhoneNumber(connectTel.value); if (isPhoneNumber(phone)) { connectTel.value = formatPhoneNumber(phone); } else { connectJoinError.message = "Must contain 10 numbers."; showBannerMessage(connectJoinError,null,null,connectBanner); return; } } var token = getToken(); var data = { token: token, phone: phone, }; connectBanner.textContent = "Joining ..."; connectBanner.classList.add('show'); connectBanner.classList.remove('error'); connectBanner.classList.remove('issue'); connectBanner.classList.remove('success'); connectTel.disabled = true; connectSubmit.disabled = true; connectTel.blur(); fetch('/joinConnect/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,connectBanner); return; } } else { statusError.subject = '/joinConnect/'; toggleInfoPopover(null,null,statusError,null); return; } connectTel.disabled = false; connectSubmit.disabled = false; showBannerMessage(connectJoinSuccess,null,null,connectBanner); }).catch((error) => { catchError.error = error; catchError.subject = '/joinConnect catch/'; toggleInfoPopover(null,null,catchError,null); }); } function notifyPopoverKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode if (code == 13) { notifyWhenAvailable(obj,event); } } function toggleNotifyPopover(obj,event) { event.stopPropagation(); if (notifyPopover.classList.contains('show')) { notifyPopover.classList.remove('show'); document.body.classList.remove('noscroll'); notifyPopoverTel.value = ''; notifyPopoverTel.removeAttribute('data-variant'); } else { notifyPopoverTel.value = formatPhoneNumber(getPhone()); notifyPopoverTel.focus(); notifyPopoverTel.dataset.variant = obj.dataset.variant; notifyPopoverInfo.innerHTML = ''; notifyPopoverInfo.innerHTML += '<div>' + obj.dataset.brand + '</div>'; notifyPopoverInfo.innerHTML += '<div>' + obj.dataset.product + '</div>'; notifyPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleDavinesGiftsPopover(obj,event) { if (event) { event.stopPropagation(); } if (davinesGiftsPopover.classList.contains('show')) { davinesGiftsPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { davinesGiftsPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleSamplesPopover(obj,event) { if (event) { event.stopPropagation(); } if (samplesPopover.classList.contains('show')) { samplesPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { samplesPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleWrapPopover(obj,event) { if (event) { event.stopPropagation(); } if (wrapPopover.classList.contains('show')) { wrapPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { wrapPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleCardPopover(obj,event) { if (event) { event.stopPropagation(); } if (cardPopover.classList.contains('show')) { cardPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { cardPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleInfoPopover(obj,event,data,small) { if (event) { event.stopPropagation(); } if (infoPopover.classList.contains('show')) { infoPopover.classList.remove('show'); document.body.classList.remove('noscroll'); infoPopoverTitle.innerHTML = ''; infoPopoverMessage.innerHTML = ''; infoPopoverMessage.classList.remove('small'); infoPopoverSecondary.innerHTML = ''; infoPopoverSecondary.setAttribute('onclick','toggleInfoPopover(this,event)'); infoPopoverPrimary.innerHTML = ''; infoPopoverPrimary.removeAttribute('onclick'); infoPopoverPrimary.style.display = 'none'; infoPopoverActions.classList.remove('multi'); } else { infoPopoverTitle.innerHTML = data.title; infoPopoverMessage.innerHTML = data.message; if (small) { infoPopoverMessage.classList.add('small'); } if (data.error && window.location.port != '') { var additional = ''; if (typeof data.error === 'object') { if (data.error.message) { additional = data.error.message; } } else { additional = data.error; } if (additional != '') { infoPopoverMessage.innerHTML += '<br>'; infoPopoverMessage.innerHTML += '<br>'; infoPopoverMessage.innerHTML += additional; } } infoPopoverSecondary.innerHTML = data.secondary; if (data.secondaryAction) { infoPopoverSecondary.setAttribute('onclick',data.secondaryAction); } if (data.primary) { infoPopoverPrimary.innerHTML = data.primary; infoPopoverPrimary.setAttribute('onclick',data.primaryAction); infoPopoverPrimary.style.display = 'inline-block'; infoPopoverActions.classList.add('multi'); } // '<a href="https://localhost:1338/search?' + data.title + '">Search Products</a>' infoPopover.classList.add('show'); document.body.classList.add('noscroll'); sendError(data); } } function removeWhenAvailable(obj,event) { var id = obj.dataset.id; var data = { id: id, }; obj.textContent = "Removing ..."; obj.disabled = true; fetch('/removeWhenAvailable/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // FORCE REMOVAL REGARDLESS OF SUCCESS // JUST INCASE WAS DELETED FROM DB var notifications = localStorage.getItem("notifications"); if (notifications) { notifications = JSON.parse(notifications); var index = notifications.map(function(e) { return e.id; }).indexOf(id); if (index != -1) { notifications.splice(index, 1); notifications = JSON.stringify(notifications); localStorage.setItem("notifications",notifications); } } else { // TODO ERROR } if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeWhenAvailable/'; toggleInfoPopover(null,null,statusError,null); return; } if (typeof(notifyWhenButton) != 'undefined' && typeof(notifyRemoveButton) != 'undefined') { // showBannerMessage(notifyRemoveSuccess,null,null,null); // REDUNDANT // BUTTON UPDATES setNotifyProductButton(notifyWhenButton); } else { var notify = document.querySelector('[data-notify="' + obj.dataset.variant + '"]'); var remove = document.querySelector('[data-remove="' + obj.dataset.variant + '"]'); if (notify && remove) { notify.classList.remove('hide'); remove.classList.add('hide'); remove.removeAttribute('data-id'); remove.disabled = false; remove.textContent = 'Remove Notify'; } } }).catch((error) => { catchError.error = error; catchError.subject = '/removeWhenAvailable catch/'; toggleInfoPopover(null,null,catchError,null); }); } function notifyWhenAvailable(obj,event) { var variant = notifyPopoverTel.dataset.variant; var phone = ''; if (isEmpty(notifyPopoverTel.value)) { notifyAddError.message = "A mobile number is required."; showBannerMessage(notifyAddError,null,null,notifyPopoverError); return; } else { phone = trimString(notifyPopoverTel.value); phone = scrubPhoneNumber(notifyPopoverTel.value); if (isPhoneNumber(phone)) { notifyPopoverTel.value = formatPhoneNumber(phone); } else { notifyAddError.message = "Must contain 10 numbers."; showBannerMessage(notifyAddError,null,null,notifyPopoverError); return; } } var token = getToken(); var data = { token: token, phone: phone, variant: variant }; if (typeof(notifyWhenButton) != 'undefined') { notifyWhenButton.textContent = "Saving ..."; notifyWhenButton.disabled = true; } else { var element = document.querySelector('[data-notify="' + variant + '"]'); if (element) { element.textContent = "Saving ..."; element.disabled = true; } } toggleNotifyPopover(obj,event); fetch('/notifyWhenAvailable/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,'grid',null); return; } } else { statusError.subject = '/notifyWhenAvailable/'; toggleInfoPopover(null,null,statusError,null); return; } var notifications = localStorage.getItem("notifications"); if (notifications) { notifications = JSON.parse(notifications); } else { notifications = []; } notifications.push({id:result.id,variant:variant,token:token}); notifications = JSON.stringify(notifications); localStorage.setItem("notifications",notifications); localStorage.setItem("phone",phone); // showBannerMessage(notifyAddSuccess,null,null,null); // REDUNDANT // BUTTON UPDATES if (typeof(notifyWhenButton) != 'undefined' && typeof(notifyRemoveButton) != 'undefined') { setNotifyProductButton(notifyWhenButton); } else { var notify = document.querySelector('[data-notify="' + variant + '"]'); var remove = document.querySelector('[data-remove="' + variant + '"]'); if (notify && remove) { notify.classList.add('hide'); notify.disabled = false; notify.textContent = 'Notify When Available'; remove.classList.remove('hide'); remove.dataset.id = result.id; } } }).catch((error) => { catchError.error = error; catchError.subject = '/notifyWhenAvailable catch/'; toggleInfoPopover(null,null,catchError,null); }); } function queryRecombee(query) { var recombeeClient = new recombee.ApiClient('veer-wander-prod', '2XQwP5AWJVVkkM3CTkr4mchtH1Zh37x2z5AMRX4zFJcPbzLDNNP5kIlmIHQ0FB5n', {region: 'us-west'}); var token = getToken(); var string = ''; var values = {}; var grid = document.querySelector('.grid'); recombeeClient.send(new recombee.SearchItems( token, query, 30, { 'returnProperties': true, // 'includedProperties': ['itemId','link','image_link','title','price','sale_price'], } )).then(function(response) { if (!response.recomms) { return; } if (!response.recomms[0]) { return; } var recommId = response.recommId; response.recomms.forEach(function(variant,i) { if (!variant.values) { return; } values = variant.values; string += '<div class="item">' string += '<a href="' + values.link + '?recommId=' + recommId + '" id="recomm_' + values.id + '" title="View ' + values.title + '">'; string += '<div class="image">'; string += '<img class="" src="' + values.image_link + '" data-src="' + values.image_link + '" alt="' + values.link + ' Image"></div>'; string += '<div class="details">'; string += '<h3 class="label">' + values.title + '</h3>'; if (values.sale_price) { string += '<h5>'; string += '<span class="sale">$' + values.sale_price.toFixed(2) + ' </span>'; string += '<span class="original">Was $' + values.price.toFixed(2) + '</span></h5>'; string += '</h5>'; } else { string += '<h5>$' + values.price.toFixed(2) + '</h5>'; } if (values.custom_label_2) { string += '<div class="description demphasis">' + values.custom_label_2 + '</div>'; } string += '</div>'; string += '</a>'; // string += '<div class="actions"><button class="add" data-add="xuMfmpyqxY" data-inventory="13" type="button" onclick="addToCart(this,event,\'xuMfmpyqxY\',\'Brand\')">Add to Cart</button></div>'; if ('US' != 'US' && values.custom_label_3 == 'true') { string += '<div class="restricted demphasis">US Only</div>'; } string += '</div>'; }); grid.innerHTML = string; window.scrollTo(0, 0); }).catch(function(error) { // NADA }); } function queryProducts(string) { var data = { string: encodeURIComponent(string), }; fetch('/queryProducts/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // toggleInfoPopover(null,null,result,null); arriveByCell.innerHTML = result.message; result.subject = '/queryProducts status error/issue/'; sendError(result); return; } } else { statusError.subject = '/queryProducts/'; toggleInfoPopover(null,null,statusError,null); return; } if (string == lastQuery) { var grid = document.querySelector('.grid',null); if (grid) { if (result.found != '') { grid.innerHTML = result.found; collections.style.display = 'none'; // classifications.style.display = 'none'; } else { grid.innerHTML = '<div class="instruction search">Try something else.</div>'; } window.scrollTo(0, 0); } lazyLoadImages(); var port = (window.location.port == '') ? '' : ':' + window.location.port; window.history.replaceState({}, 'Search', 'https://' +window.location.hostname + port + '/search?query=' + string); } }).catch((error) => { catchError.error = error; catchError.subject = '/queryProducts catch/'; toggleInfoPopover(null,null,catchError,null); }); } var lastQuery = ''; function queryPaste(obj,e) { setTimeout(function() { // NEED DELAY OTHERWISE VALUE IS EMPTY if (e.target) { if (trimString(e.target.value).length >= 3) { lastQuery = trimString(e.target.value).toLowerCase(); queryRecombee(lastQuery); } } }, 1, e); } function queryKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode var value = ''; if (obj instanceof HTMLInputElement) { value = obj.value; } else { value = obj; } if ((code >= 48 && code <= 90 || code == 8 || code == 13) && trimString(value).length >= 3) { lastQuery = trimString(value).toLowerCase(); queryRecombee(lastQuery); } if (trimString(value).length == 0 && code != 91) { var grid = document.querySelector('.grid'); if (grid) { collections.style.display = 'block'; // classifications.style.display = 'block'; grid.innerHTML = '<div class="instruction search"><ul><li>Type at least 3 letters or numbers.</li><li>Results may not display on some Android phones.</li><li>You may need to press return for results to show.</li></ul></div>'; window.scrollTo(0, 0); } } } // ------------------------------------------ var token = ''; // localStorage.getItem("token"); document.addEventListener("DOMContentLoaded", function() { // console.log("Script JS - DOMContentLoaded - start"); try { setCartLink(); } catch(error) { // console.log(error); } try { getCartCount(); } catch(error) { // console.log(error); } try { if (document.getElementById('searchInput')) { if (searchInput.dataset.auto == 'true') { searchInput.dataset.auto = 'false'; queryKeyUp(searchInput,{keyCode: 13}); } } } catch(error) { // console.log(error); } // console.log("Script JS - DOMContentLoaded - end"); }); // function confirmCookies(obj,event) { // // localStorage.setItem("cookies","true"); // approvalCookies.classList.remove('show'); // // } function toggleProcessing(message) { if (processing.classList.contains('show')) { processing.classList.remove('show'); processingSpinner.classList.remove('spinner'); document.body.classList.remove('noscroll'); processingMessage.textContent = ''; } else { processing.classList.add('show'); processingSpinner.classList.add('spinner'); document.body.classList.add('noscroll'); if (message) { processingMessage.textContent = message; } } } // ------------------------------------------ // MENU function clickBasketLink() { if (typeof(basketLink) != 'undefined') { if (!basketLink.classList.contains('disabled')) { basketLink.click(); } } } function viewPageWithToken(obj,event,page) { var token = getToken(); window.location.href = '/' + page + '/' + token; } function switchFlag(obj, e, ctry) { e.stopPropagation(); try { fathom.trackEvent(ctry); } catch(error) { // NADA } setCookie('ctry', ctry, 365); location.reload(); // navFlag.className = ""; // navFlag.classList.add('icon'); // navFlag.classList.add('flag'); // navFlag.classList.add(ctry); } function setFlag() { var cvalue = getCookie('ctry'); if (cvalue == "") { cvalue = 'US'; setCookie('ctry', cvalue, 365); } navFlag.classList.add(cvalue); } function toggleFlags(obj,e) { var url = window.location.toString(); if (url.indexOf('/checkout/') != -1) { var message = { status: 'success', title: 'Sorry', message: 'The Shipping Destination cannot be changed during Checkout.', secondary: 'Ok', subject: 'function toggleFlags', } toggleInfoPopover(null,null,message,null); return; } if (menuFlags.classList.contains('show')) { menuFlags.classList.remove('show'); document.body.classList.remove('noscroll'); // navMenu.classList.remove('close'); } else { menuFlags.classList.add('show'); document.body.classList.add('noscroll'); // navMenu.classList.add('close'); navMenu.classList.remove('close'); navMenu.classList.remove('back'); menuMore.classList.remove('show'); menuShop.classList.remove('show'); menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } } function toggleMenu(el,e,type,version) { e.stopPropagation(); menuFlags.classList.remove('show'); if (type == 'more') { toggleMore(el,e); } else if (type == 'shop') { toggleShop(el,e,version); } else if (type == 'collection') { toggleShop(el,e,version); } else if (type == 'classification') { toggleShop(el,e,version); } else if (type == 'body') { if (!menuMore.classList.contains('show') && !menuShop.classList.contains('show')) { return; } // toggleBodyScroll(); navMenu.classList.remove('close'); menuMore.classList.remove('show'); menuShop.classList.remove('show'); } } function toggleMore(el,e) { e.stopPropagation(); if (menuMore.classList.contains('show')) { menuMore.classList.remove('show'); navMenu.classList.remove('close'); document.body.classList.remove('noscroll'); } else { menuMore.classList.add('show'); navMenu.classList.add('close'); document.body.classList.add('noscroll'); } menuShop.classList.remove('show'); navMenu.classList.remove('back'); // toggleBodyScroll(); // if (el) { // // if (el.id == 'navMenu') { // // if (document.body.classList.contains('noscroll')) { // // document.body.classList.remove('noscroll'); // // } else { // // document.body.classList.add('noscroll'); // // } // } // } } function toggleShop(el,e,version) { e.stopPropagation(); if (menuShop.classList.contains('show')) { menuShop.classList.remove('show'); // DO NOT REMOVE NO SCROLL menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; navMenu.classList.add('close'); navMenu.classList.remove('back'); } else { menuShop.classList.add('show'); document.body.classList.add('noscroll'); navMenu.classList.add('back'); navMenu.classList.remove('close'); if (version == 'brand') { menuShopBrand.style.display = 'inline-block'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'category') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'inline-block'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'clearance') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'inline-block'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'collection') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'inline-block'; menuShopClassification.style.display = 'none'; } else if (version == 'classification') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'inline-block'; } } menuMore.classList.remove('show'); // toggleBodyScroll(); } function menuClick(el,e) { e.stopPropagation(); } // ------------------------------------------ // FULL function showFull(obj) { // var cln = obj.cloneNode(true); // cln.className = "zoom"; var zoom = document.createElement('div'); zoom.id = "zoom"; zoom.classList.add('zoom'); zoom.setAttribute('onclick','closeFull()'); // var close = document.createElement('close'); // close.innerHTML = "&#x2715"; // close.classList.add('close'); // zoom.appendChild(close); var image = document.createElement('img'); if (obj.nodeName.toLowerCase() == "img") { if (obj.src.indexOf("/250x250/") != -1) { image.src = obj.src.split("/250x250/")[0] + "/800x800/" + obj.src.split("/250x250/")[1]; // DIRECT ACCESS GET 403 ERROR // BUT LINK WORKS // PROBABLY HEADER CSP ISSUE // MIGHT BE SITE HTACCESS CORS ISSUE // MIGHT BE CLOUDFLARE // MIGHT BE URL FORMATING // MIGHT BE S3 PERMISSIONS // REALLY NOT SURE } else { image.src = obj.src; } } zoom.appendChild(image); document.body.appendChild(zoom); } function closeFull() { var zoom = document.getElementById("zoom"); if (zoom) { zoom.parentNode.removeChild(zoom); } } // ------------------------------------------ // UTILITIES function trimString(string) { return (string || '').replace( /^\s+|\s+$/g, '' ); } function isEmpty(str) { if (str) { return str.replace(/^\s+|\s+$/g, '').length == 0; } return true; } function isEmail(str) { if (isEmpty(str)) { return false; } var email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return email.test(str); } function isPhoneNumber(number) { // return /^1?([2-9]\d\d){2}\d{4}$/.test(number.replace(/\D/g, "")); // HAD ISSUES // number = number.replace(/\D/g, ''); // REPLACES NON NUMERIC if (number.length == 11 && number.charAt(0) == 1) { number = number.replace("1",''); } if (number.length == 10) { return true; } return false; } function scrubPhoneNumber(number) { if (isEmpty(number)) { return number; } number = number.replace(/[^0-9]+/gi,'') if (number.charAt(0) == 1) { number = number.replace("1",''); } return number; } function formatPhoneNumber(number) { if (isEmpty(number)) { return ""; } if (number.charAt(0) == 1) { number = number.replace("1",''); } number = number.replace(/[^0-9]/g, ''); number = number.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3"); return number; } function isZipCode(str) { if (isEmpty(str)) { return false; } var zipcode = /(^\d{5}$)|(^\d{5}-\d{4}$)/; return zipcode.test(str); } function isValidPostalCode(postal) { return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(postal); } var newToken = { // CONFIRMED - USED - NOT SURE PASSWORD SPECIAL CHARS WOULD BE AN ISSUE _pattern : /[a-zA-Z0-9]/, _getRandomByte : function() { return Math.floor(Math.random() * 256); }, generate : function(length) { return Array.apply(null, {'length': length}) .map(function() { var result; while(true) { result = String.fromCharCode(this._getRandomByte()); if (this._pattern.test(result)) { return result; } } }, this).join(''); } }; function removeFormError(obj) { var error = document.getElementById(obj.name + "Error"); if (error) { error.textContent = ""; } if (obj.id == "phone") { if (isPhoneNumber(obj.value)) { obj.value = formatPhoneNumber(obj.value); } } } function isJSON(text) { try { JSON.parse(text); return true; } catch(error) { return false; } } function getLocationData(json) { if (!json.hasOwnProperty('ip')) { return; } var zipcode = localStorage.getItem('zipcode'); var taxLocation = localStorage.getItem('taxLocation'); var taxLocationAuto = localStorage.getItem('taxLocationAuto'); if (zipcode && taxLocation && taxLocationAuto == 'false') { return; } var data = { ip:json.ip } fetch('/getLocationData/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // NADA return; } } else { // NADA return; } if (!result.hasOwnProperty('postalCode')) { // DO NOT SHOW ERROR return; } if (!result.hasOwnProperty('region')) { // DO NOT SHOW ERROR return; } var postalCode = result.postalCode var region = result.region if (postalCode == '') { // DO NOT SHOW ERROR return; } if (!zipcode) { localStorage.setItem('zipcode',postalCode); var shipZip = document.getElementById('shipZip'); var transitTime = document.getElementById('transitTime'); if (shipZip && transitTime) { shipZip.value = postalCode; transitTime.click(); } } if (taxLocationAuto == 'true' || !taxLocationAuto) { if (region.toLowerCase() == 'california') { localStorage.setItem('taxLocation','taxCA'); } else { localStorage.setItem('taxLocation','taxNo'); } localStorage.setItem('taxLocationAuto','false'); setCartLink(); } }).catch((error) => { // NADA }); } function getShippingService() { var shippingService = localStorage.getItem('shippingService'); if (!shippingService) { shippingService = 'fedex0'; localStorage.setItem('shippingService',shippingService); } else if (shippingService == 'ups0' || shippingService == 'ups1' || shippingService == 'ups2' || shippingService == 'ups3' ) { shippingService = 'fedex0'; localStorage.setItem('shippingService',shippingService); } return shippingService; } function getShippingSig() { var shippingSig = localStorage.getItem('shippingSig'); if (!shippingSig) { shippingSig = 'sig0'; localStorage.setItem('shippingSig',shippingSig); } return shippingSig; } function getTaxLocation() { var taxLocation = localStorage.getItem('taxLocation'); if (!taxLocation) { taxLocation = 'taxNo'; localStorage.setItem('taxLocation',taxLocation); localStorage.setItem('taxLocationAuto','true'); } return taxLocation; } function getToken() { var token = localStorage.getItem("token"); if (!token) { token = newToken.generate(32); localStorage.setItem("token",token); } return token; } function getPhone() { var phone = localStorage.getItem("phone"); if (!phone) { phone = ''; } return phone; } function getEmail() { var email = localStorage.getItem("email"); if (!email) { email = ''; } return email; } </script> <meta name="facebook-domain-verification" content="4w9zrobytefvkjbtf9hytsyo3e0nxy" /> <meta name="p:domain_verify" content="28afb879fd311b3cdc22133659bc4daa" /> <!-- <script type='text/javascript'> window.smartlook||(function(d) { var o=smartlook=function(){ o.api.push(arguments)},h=d.getElementsByTagName('head')[0]; var c=d.createElement('script');o.api=new Array();c.async=true;c.type='text/javascript'; c.charset='utf-8';c.src='https://rec.smartlook.com/recorder.js';h.appendChild(c); })(document); smartlook('init', 'a6ac5a43f352f9f4cc042ea32846e1a41b31de7f'); </script> --> <script type="application/javascript" src="//api64.ipify.org?format=jsonp&amp;callback=getLocationData"></script> <script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client/dist/recombee-api-client.min.js"></script> <!-- Meta Pixel Code --> <!-- <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '590464405222762'); fbq('track', 'PageView'); </script> --> <script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"52004435"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script> <!-- PayPal BEGIN --> <script>;(function(a,t,o,m,s){a[m]=a[m]||[];a[m].push({t:new Date().getTime(),event:'snippetRun'});var f=t.getElementsByTagName(o)[0],e=t.createElement(o),d=m!=='paypalDDL'?'&m='+m:'';e.async=!0;e.src='https://www.paypal.com/tagmanager/pptm.js?id='+s+d;f.parentNode.insertBefore(e,f);})(window,document,'script','paypalDDL','06576f9d-a816-48e7-b551-60dc8b94d089');</script> <!-- PayPal END --> <!-- script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "c7tom1xlwa"); </script --> <!-- script> (function(w,d,s,r,n){w.TrustpilotObject=n;w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)}; a=d.createElement(s);a.async=1;a.src=r;a.type='text/java'+s;f=d.getElementsByTagName(s)[0]; f.parentNode.insertBefore(a,f)})(window,document,'script', 'https://invitejs.trustpilot.com/tp.min.js', 'tp'); tp('register', 'kdMevgEdMenLFFi2'); </script --> <script> </script> <!-- script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script --> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=590464405222762&ev=PageView&noscript=1" /></noscri |
| 2 |
Error
On line 9229, column 152 <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="https://app.termly.io/resource-blocker/c9060009-82c9-4891-8d67-8c904d5617e9?autoBlock=on"></script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-44B2L8E7TD"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-44B2L8E7TD'); </script> <!-- Global site tag (gtag.js) - Google Ads: 858635327 --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-858635327"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-858635327'); </script> <link rel="canonical" href="https://veerandwander.com/brand/uUznn6MOWr"> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0" /> <meta name="mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="msapplication-tap-highlight" content="no" /> <meta name="description" content="We are an innovative salon &amp; apothecary focused on a simple approach to beauty through exceptional craftsmanship."> <meta name="robots" content="all"> <meta name="view-transition" content="same-origin" /> <meta property="og:image" content=""> <meta property="og:image:secure_url" content=""> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:title" content="NAP"> <meta property="og:description" content="We are an innovative salon &amp; apothecary focused on a simple approach to beauty through exceptional craftsmanship."> <meta property="og:url" content="https://veerandwander.com/brand/uUznn6MOWr"> <meta property="og:locale" content="en_US"> <meta property="og:site_name" content="Veer & Wander"> <meta property="og:type" content="article"> <meta property="fb:app_id" content="461681578015051"> <meta name="twitter:site" content="@veerandwander"> <meta name="twitter:card" content="summary_large_image"> <link rel="icon" sizes="192x192" href="/_images/icon.png"> <link rel="apple-touch-icon" href="/_images/icon.png"> <link rel='mask-icon' href='/_images/icon.svg' color='#000000'> <title>NAP - Veer & Wander</title> <script src="https://cdn.usefathom.com/script.js" site="LQYLKIAS" defer></script> <style> /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } html { height: calc(100% - 70px); padding: 70px 0px 0px 0px; } body { /* font-family: Tahoma, Geneva, sans-serif; */ /* font-family: "Trebuchet MS", Helvetica, sans-serif; */ /* font-family: Georgia, Times, "Times New Roman", serif; */ /* font-family: "Courier New", Courier, monospace; */ /* font-family: Verdana, Geneva, sans-serif; */ font-family: "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; */ -webkit-font-smoothing: antialiased; font-size: 18px; line-height: 30px; /* font-weight: 500; */ /* background-color: #f6f6f6; */ /* background-color: #fef5ea; */ /* background-color: #faf7f5; */ /* background-color: #fcfbf9; */ /* background-color: #fbfbfb; */ /* background-color: #fafafa; */ background-color: #ffffff; display: flex; flex-direction: column; height: 100%; } ul,ol { margin: 0px 0px 0px 0px; } ul { list-style-type: circle; padding: 15px 0px 15px 20px; } li { margin: 0px 0px 0px 0px; padding: 0px 0px 10px 0px; } p { margin: 0px 0px 0px 0px; padding: 10px 0px 20px 0px; } /* p { margin: 0px 0px 0px 0px; padding: 10px 0px 10px 0px; } p:last-of-type { padding: 0px 0px 30px 0px; } */ blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; width: 100%; } tr { border-bottom: 0.5px solid #cccccc; /* border-bottom: 0.5px solid #e7e7e7; */ } td { vertical-align: top; } /* ------------------- */ * { /* font-family: Tahoma, Geneva, sans-serif; */ /* font-family: "Trebuchet MS", Helvetica, sans-serif; */ /* font-family: Georgia, Times, "Times New Roman", serif; */ /* font-family: "Courier New", Courier, monospace; */ /* font-family: Verdana, Geneva, sans-serif; */ font-family: "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif; */ /* font-family: -apple-system, BlinkMacSystemFont, "Roboto", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; */ -webkit-font-smoothing: antialiased; font-size: 18px; line-height: 30px; /* font-weight: 500; */ } a { /* color: inherit; */ color: #000000; text-decoration: none; } a:hover { /* color: inherit; */ color: #000000; } a:visited { /* color: inherit; */ color: #000000; } label { display: block; margin: 0px 0px 0px 0px; padding: 15px 10px 5px 10px; color: #888888; font-size: 13px; line-height: 18px; } input[type="radio"], input[type="checkbox"] { margin: 0px 0px 0px 20px; } input[type="radio"] + label, input[type="checkbox"] + label { display: inline-block; /* font-size: 15px; line-height: 24px; */ color: #000000; padding: 25px 0px 5px 0px; } textarea, input[type="text"], input[type="tel"], input[type="email"] { -webkit-appearance: none; border: none; outline: none; border-radius: 0px; padding: 0px 10px 0px 10px; margin: 0px 0px 0px 0px; height: 50px; /*max-height: 40px;*/ /* background-color: #ffffff;*/ background-color: #f3f3f3; /* border-bottom: 0.5px solid #dedede; */ display: block; width: 100%; /* font-size: 15px !important; */ line-height: inherit; } textarea { padding: 10px 10px 10px 10px; height: 90px; resize: none; } input[type="text"]:focus, input[type="tel"]:focus, input[type="email"]:focus { /* border-top: 0.5px solid #999999; */ } input:-webkit-autofill { -webkit-box-shadow: inset 0 0 0px 9999px #f3f3f3; } ::placeholder { color: #999999; opacity: 1; } select { -moz-appearance: none; -webkit-appearance: none; appearance: none; border: none; height: 50px; border-radius: 0px; background-color: transparent; text-shadow: 0 0 0 #000; margin: 0px 0px 0px 0px; padding: 0px 10px 0px 10px; text-align: left; width: 100%; position: relative; color: #000000; /* #f3f3f3 */ } input:focus, textarea:focus, select:focus { outline: none; } input:focus, textarea:focus { background-color: #e7e7e7; } button { border: none; outline: none; /* background-color: #f5f2f0; */ /* background-color: #f0ece9; */ /* background-color: #f7f5f2; */ /* background-color: #faf7f5; */ /* background-color: #faf7f5; */ /* background-color: #ffffff; */ /* background-color: #222222; color: #ffffff; */ color: #000000; background-color: transparent; margin: 0px 0px 0px 0px; padding: 10px 10px 10px 10px; text-align: left; width: 100%; } .Twilio button { width: auto; } /* button span { float: left; } */ button:active { color: inherit; } button .price { display: inline-block; float: right; } button:not(:disabled) { cursor: pointer; } button:disabled { } </style> <style> .text { /* font-family: Georgia, Times, "Times New Roman", serif; font-weight: 500; -webkit-font-smoothing: antialiased; */ } .dd_red_fore { color: rgb(235, 23, 0); } .dd_red_back { background-color: rgb(235, 23, 0); color: #ffffff !important; } .large { font-size: 27px; line-height: 40px; /* font-size: 35px; line-height: 45px; */ /* font-weight: 500; */ } .emphasis { font-weight: 600; /* color: #fa7f7e; */ /* color: #41d0e0; */ } .light { font-weight: 300; /* color: #fa7f7e; */ /* color: #41d0e0; */ } .demphasis { color: #555555; /* 86bece 93c6d5 */ } .normal { font-weight: normal; } .extra-demphasis { color: #999999; } .error { color: #d94646; } .original { color: #999999; } .sale { color: #d94646 !important; } .pop { color: #5087f5; } .dark { color: #000000; } a.disabled { pointer-events:none; } /* .discount { */ /* color: #c06f6f; ec3223 */ /* color: #000000; } */ .noscroll { overflow: hidden; } .nowrap { white-space: nowrap; } .preline { white-space: pre-line; } .spacer { height: 10px; } .clear { clear: both; } select.right { direction: rtl; } .loader { display: none; position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; width: auto; height: 0px; background-color: rgba(0, 0, 0, 0.15); z-index: 2000; } .loader.show { display: block; bottom: 0px; height: auto; } .loader .spinner { position: absolute; left: 50%; top: 50%; width: 100px; height: 100px; margin: -50px 0 0 -50px; border: 3px solid #ffffff; border-top: 3px solid #34c759; border-radius: 50%; animation: spin 0.75s linear infinite; } .loader .message { position: absolute; top: calc(50% + 90px); left: 50%; transform: translate(-50%, -50%); margin-top: 0px; padding: 5px 20px 5px 20px; background-color: #ffffff; color: #000000; border-radius: 20px; } @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .livechat_button { position: fixed; top: auto; left: auto; right: 10px; bottom: 10px; width: 50px; height: 50px; z-index: 1000; } .livechat_button a { width: 30px; height: 30px; padding: 0px 0px 0px 0px; margin: 10px 10px 10px 10px; display: block; } .livechat_button img { width: 30px; height: 30px; object-fit: cover; object-position: center; } /* .trustpilot { margin: 20px 0px 40px 0px; } */ .instore { padding: 20px 20px 20px 20px; margin: -15px 0px 10px 0px; color: #ffffff; background-color: #d94646; } @media all and (max-width: 480px) { .instore { margin: -15px 0px 20px 0px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GIFT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .gift { margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px; background-color: #f1fbfb; text-align: left; display: block; width: 100%; } .gift.variant { margin-bottom: 0px; width: calc(100% - 40px); } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PROMO */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .promo { margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px; background-color: #f1fbfb; text-align: left; display: block; } .promo.variant { margin-bottom: 0px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* NAV */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ nav { /* display: flex; flex-wrap: wrap; margin: 0px 10px 0px 10px; */ position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; height: 70px; background-color: #ffffff; z-index: 150; } nav .links { position: relative; margin: 0px 10px 0px 10px; padding: 0px 0px 0px 0px; height: 70px; } nav .links .label { position: relative; padding: 10px 10px 10px 10px; display: inline-block; vertical-align: top; width: auto; /* color: #6faec0; */ } nav .links .icon { position: absolute; top: 10px; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; } nav .links .icon.menu { background-image: url("/_images/menu-black-48dp.svg"); left: 0px; background-color: transparent; } nav .links .icon.flag { left: 50px; background-color: transparent; } .flag.US { background-image: url("/_images/flags/us.svg"); } .flag.PR { background-image: url("/_images/flags/pr.svg"); } .flag.VI { background-image: url("/_images/flags/vi.svg"); } .flag.CA { background-image: url("/_images/flags/ca.svg"); } .flag.GB { background-image: url("/_images/flags/gb.svg"); } .flag.EU { background-image: url("/_images/flags/eu.svg"); } .flag.NZ { background-image: url("/_images/flags/nz.svg"); } .flag.AU { background-image: url("/_images/flags/au.svg"); } .flag.MX { background-image: url("/_images/flags/mx.svg"); } .flag.JP { background-image: url("/_images/flags/jp.svg"); } .flag.KR { background-image: url("/_images/flags/kr.svg"); } .flag.IS { background-image: url("/_images/flags/is.svg"); } .flag.NO { background-image: url("/_images/flags/no.svg"); } .flag.CH { background-image: url("/_images/flags/ch.svg"); } .flag.NL { background-image: url("/_images/flags/nl.svg"); } .flag.DE { background-image: url("/_images/flags/de.svg"); } .flag.IT { background-image: url("/_images/flags/it.svg"); } .flag.FR { background-image: url("/_images/flags/fr.svg"); } .flag.IE { background-image: url("/_images/flags/ie.svg"); } nav .links .icon.menu.close { background-image: url("/_images/close-black-48dp.svg"); } nav .links .icon.menu.back { background-image: url("/_images/arrow_back-black-48dp.svg"); } nav .links .icon.search { background-image: url("/_images/search-black-48dp.svg"); right: 50px } nav .links .icon.basket { display: block; /* background-image: url("/_images/shopping_cart-black-48dp.svg"); */ background-image: url("/_images/local_mall-black-48dp.svg"); right: 0px; } nav .links .icon.basket.full { /* background-image: url("/_images/shopping_cart-black-48dp.svg"); */ background-image: url("/_images/local_mall-black-48dp-full.svg"); right: 0px; } nav .links .icon .count { position: absolute; top: -3px; left: 34px; width: auto; height: 20px; /* color: #d6ab4d; */ font-size: 13px; line-height: 20px; /* border-radius: 12px; */ text-align: left; /* color: #999999; */ /* color: #ffffff; background-color: #000000; */ /* background-color: #fff300; */ color: #999999; } nav a.logo { position: absolute; top: 0px; left: calc(50% - 100px); right: calc(50% - 100px); bottom: 0px; width: 200px; height: 70px; background-image: url("/_images/logo_line.svg"); background-size: auto 30px; background-repeat: no-repeat; background-position: center center; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ main { flex: 1 0 auto; padding: 0px 0px 0px 0px; min-height: 320px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PATH */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .path { padding: 10px 0px 0px 0px; /* font-size: 25px; line-height: 40px; */ /* position: -webkit-sticky; position: sticky; top: 65px; */ /* background-color: #ffffff; */ } .path.filter { padding-top: 0px; position: fixed; top: 70px; z-index: 10; width: 100%; background-color: #ffffff; } .path .item { display: flex; vertical-align: top; padding: 0px 10px 0px 10px; } .path .item.extraLeftMargin { margin-left: 10px; } .path.filter .item { justify-content: space-between; padding: 0px 10px 0px 10px; width: calc(100% - 20px); max-width: calc(100% - 20px); } .path .item .action { display: inline-block; vertical-align: top; padding: 10px 10px 10px 10px; /* font-weight: bold; font-size: 21px; font-family: "Caslon LT Graphique"; */ /* font-size: 36px; */ } .path .item select { display: inline-block; vertical-align: top; background-color: #ffffff; /* color: #d6ab4d; */ height: 50px; width: calc(25% - 20px); /* border-top: 0.5px solid #999999; */ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; margin: 0px 10px 0px 10px; } .path .item .child { /* display: inline-block; */ vertical-align: top; padding: 10px 10px 10px 10px; width: auto; position: relative; } .path.filter .item .child { /* font-weight: 600; */ } .path.filter .item .child:nth-child(2) { text-align: right; /* margin-left: 10px; */ /* float: right; */ } /* .path.filter .item .child:nth-child(2):before { content: ''; position: absolute; top: 0px; left: -30px; right: auto; bottom: auto; display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/navigate_next-black-48dp.svg"); opacity: 0.25; } */ /* .path.filter .item .child { display: block; } */ /* .path.filter .item .child:nth-child(2) { float: right; } */ .path .item button.child { /* border-top: 0.5px solid #999999; */ /* margin-right: 20px; */ } .path.filter .item button.child:before { content: attr(data-label); color: #000000; font-size: 13px; line-height: 20px; display: block; font-weight: normal; } .path.filter .item button.child:nth-child(2):before { text-align: right; } .path .item .child.selected { /* background-color: #000000; color: #ffffff; */ } .path .item .child:after { content: ''; position: absolute; top: auto; left: 0px; right: 0px; bottom: 0px; /* width: auto; height: 7px; background-image: url("/_images/keyboard_arrow_down-black-48dp.svg"); background-size: 24px 24px; background-repeat: no-repeat; background-position: center; */ /* margin: auto; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid #000000; background-image: none; */ } .path .item .child.selected:after { content: ''; position: absolute; top: auto; left: 0; right: 0; bottom: 0; margin: auto; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 8px solid #000000; border-top: none; background-image: none; } .path .item.search { margin: 0px 10px 10px 10px; width: calc(100% - 40px); } .path .item.search .child { padding: 0px 0px 0px 0px; width: calc(100% - 20px); } .path .item.search .child input { height: 49px; border-bottom: 0.5px solid #999999; background-color: #ffffff; margin-left: -10px; margin-right: -10px; width: calc(100% + 20px); } .path .item.search .child input:focus { border-bottom: 0.5px solid #000000; } .path .shell { position: fixed; top: 0px; left: 0px; right: 0px; bottom: auto; width: auto; height: auto; z-index: 200; display: none; } .path .shell.show { display: block; height: auto; bottom: 0px; } .path .menu { position: absolute; top: 110px; left: 10px; right: auto; bottom: auto; padding: 5px 0px 5px 0px; /* width: calc(50% - 20px); */ /* margin: 0px 15px 0px 15px; */ overflow-y: scroll; /* max-width: 320px; */ /* width: calc(100% - 30px); */ /* z-index: 10; */ /* box-shadow: 0px 0px 48px rgba(0, 0, 0, 0.05); */ /* background-color: #edece8; */ background-color: #000000; /* column-fill: auto; DYNAMICALLY RESIZED SO SWITCHING BETWEEN COL COUNT DOES NOT WORK column-gap: 20px; column-count: 2; */ } .path .menu a, .path .menu button { /* display: inline-block; vertical-align: top; */ display: block; padding: 5px 10px 5px 10px; text-align: left; /* width: calc(50% - 20px); */ /* color: white; */ color: #ffffff; background-color: transparent; white-space: nowrap; } .path .menu a.teen, .path .menu button.teen { color: #aaaaaa; /* padding-left: 20px; */ } .path .menu a .discounted { display: inline-block; color: #d94646; } /* .path .menu .sub { max-width: 576px; -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; } */ .path .menu .divide { padding: 5px 10px 5px 10px; color: #999999; /* 86bece 93c6d5 */ } #checkout { padding: 0 0 20px 0; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CART */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* TODO IS THIS USED */ .cart { } .cart .group { display: inline-block; vertical-align: top; width: 50%; /* min-width: 688px; */ margin: 0px 0px 20px 0px; } /* .cart .group:last-of-type { width: 67%; } */ .cart .subgroup { display: inline-block; vertical-align: top; width: 100%; margin: 0px 0px 20px 0px; } .cart .subgroup.quick { margin-bottom: 0px; } .cart .hide { display: none; } .grid .title, .cart .title { padding: 9px 10px 0px 10px; margin: 0px 10px 10px 10px; } .grid .title { border-top: 0.5px solid #cccccc } .cart .title { border-top: 0.5px solid #000000; } .cart .title { font-weight: 600; } .cart .dynamic { display: none; padding-top: 30px; } .cart .dynamic.show { display: block; } /* .cart .dynamic.show + div { padding-top: 30px; } */ .cart .title .edit { float: right; } .cart .title .date { float: right; font-weight: normal; color: #555555; } .cart .value { padding: 0px 20px 0px 20px; } .cart .info .value { padding: 0px 10px 0px 10px; } .cart .info .value.small { font-size: 13px; line-height: 20px; } .cart .group25 { display: inline-block; vertical-align: top; width: 25%; } .cart .group33 { display: inline-block; vertical-align: top; width: 33.33%; } .cart .group50 { display: inline-block; vertical-align: top; width: 50%; } .cart .group75 { display: inline-block; vertical-align: top; width: 75%; } .cart .group100 { display: inline-block; vertical-align: top; width: 100%; } .cart .group100.bottom-padding { padding-bottom: 20px; } .cart .info { margin: 0px 10px 20px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; } .cart .info.instruction { padding: 10px 10px 10px 10px; } .cart .caption { margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; color: #555555; } .cart label { margin: 0px 10px 0px 10px; } .cart select { /* margin: 0px 10px 0px 10px; */ width: calc(100%); } .cart textarea, .cart input[type="text"], .cart input[type="tel"], .cart input[type="email"] { margin: 0px 10px 0px 10px; width: calc(100% - 40px); } .cart button.remove { /* color: #d6ab4d; d94646 RED */ margin: 10px 0px 0px 0px; padding: 9px 0px 10px 0px; width: auto; } .cart .continue { display: block; font-weight: 600; background-color: #34c759; color: #ffffff; padding: 10px 10px 10px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } .cart .pay { display: block; font-weight: 600; background-color: #635bff; color: #ffffff; padding: 10px 10px 10px 10px; width: 100%; border-radius: 4px; text-align: center; } .cart .stripe { margin: 0; padding: 0; } .cart .stripe .button { display: block; font-weight: 600; background-color: #635bff; color: #ffffff; padding: 10px 0px 10px 0px; width: 100%; border-radius: 4px; text-align: center; } .cart .stripe .more { color: #635bff; text-align: center; padding: 10px 0px 0px 0px; } .cart .stripe-logo { display: block; color: #ffffff; width: 100%; height: 50px; margin: 0px 0px 5px 0px; background-image: url("/_images/blurple.svg"); background-size: auto 25px; background-repeat: no-repeat; background-position: center; } .cart .pay.amazon { background-color: #f0c14b; color: #000000; margin-bottom: 20px; margin-top: 10px; } .cart .pay.amazon.logo { height: 50px; background-image: url("/_images/amazon_logo.svg"); background-size: auto 23px; background-repeat: no-repeat; background-position: center; margin-bottom: 0px; } .cart .use { display: block; color: #ffffff; width: 100%; height: 50px; margin: 0px 0px 10px 0px; background-image: url("/_images/amazon_use.svg"); background-size: auto 11px; background-repeat: no-repeat; background-position: center; } .cart .buttons { padding-top: 10px; } .cart .table .buttons { padding-top: 20px; } .cart .quickpay { padding: 0px 10px 0px 10px; } .cart .questions { padding: 0px 10px 0px 10px; margin: 0px 10px 0px 10px; border-top: 0.5px solid #999999; color: #555555; } .cart .quickpay .paypal { padding: 20px 0px 10px 0px; display: none; } /* .cart .quickpay .stripe { padding: 10px 0px 10px 0px; display: none; } */ .cart .quickpay .show { display: block; } .cart .back { display: block; color: #000000; padding: 8px 9px 9px 9px; margin: 10px 10px 0px 10px; width: calc(100% - 40px); border: 0.5px solid #999999; border-radius: 4px; text-align: center; } .cart button.back { margin: 0px 0px 0.px 0px; width: 100%; border-radius: 4px; } .cart .submit { /* background-color: #d6ab4d; d6ab4d 6cf0f8 f9e951 fef151 e9e9e9 c4b27b d1a054 b68a3a d99938 ffd662 ffd551 f7c46c */ background-color: #34c759; font-weight: 600; color: #ffffff; margin: 10px 10px 0px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } .cart .table { margin: 10px 10px 0px 10px; /* border-top: 0.5px solid #999999; */ border-top: 0.5px solid #999999; } /* .cart .table tr:last-of-type { border-bottom: 0.5px solid #cccccc } */ .cart .table .image { padding: 10px 10px 10px 0px; max-width: 50px; width: 50px; } .cart .table .image a { width: 50px; height: 50px; } .cart .table img { width: 50px; height: 50px; } /* .cart .table .select { padding: 0px 0px 10px 0px; text-align: right; } */ /* .cart .table .select select { width: 60px; } */ .cart .table .shipping { padding: 0px 0px 0px 0px; } /* .cart .table .shipping select { margin-left: 0px; width: 100%; } */ .cart .table .shipping .details { padding: 0px 10px 0px 10px; } .cart .table .shipping .details ul { padding-bottom: 5px; } .cart .table .text { padding: 10px 10px 10px 10px; } .cart .table .empty { padding: 10px 10px 10px 10px; } .cart .table .sum { padding: 10px 10px 10px 10px; text-align: right; } .cart .table .sample { text-align: left; padding: 9px 0px 9px 0px; } .cart .table .sample button { background-color: #f3f3f3; /* 97e5bd */ border-radius: 4px; text-align: center; /* font-weight: 500; */ } .cart .table .checkbox { padding: 10px 0px 10px 0px; } .cart .table .checkbox input { margin-left: 10px; } .cart .table .checkbox div { padding: 5px 0px 5px 0px; } .cart .table .checkbox label { font-size: 18px; padding: 0px 0px 0px 0px; margin-right: 5px; } .cart .table .checkbox button { display: inline; width: auto; padding: 0px; margin: 0px; } .cart .table .checkbox textarea { margin: 0px; width: calc(100% - 20px); } .cart .table .callout { color: #555555; padding: 10px 10px 10px 10px; } .cart .table .callout span { color: #000000; } .cart .table .highlight { color: #d94646; padding: 10px 10px 10px 10px; } /* .cart .table td:first-of-type:not(.image) { padding-left: 10px; } */ .cart .table .number { padding: 10px 10px 10px 0px; text-align: right; } .cart .table .number.inventory { padding-right: 20px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SELECT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .select { background-color: #f3f3f3; padding: 0px 0px 0px 0px; margin-right: 10px; display: block; position: relative; width: auto; height: auto; } .select.variant { padding: 0px 0px 0px 0px; margin: 0px -10px 5px -10px; border-radius: 4px; } .select > select { width: 100%; min-width: 60px; padding-right: 30px; } .select:before { /* &#x25BC \f0d7 */ content: '\25BC'; line-height: 50px; text-align: center; display: block; position: absolute; top: 0; bottom: auto; left: auto; right: 0; width: auto; height: 50px; background-color: transparent; color: #333333; padding: 0px 10px 0px 10px; font-size: 14px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* MENU */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ menu { background-color: white; padding: 10px 0px 10px 0px; position: fixed; top: 70px; left: 0px; right: 0px; bottom: auto; /* width: calc(50% - 20px); */ width: auto; height: 0px; overflow-y: scroll; z-index: 850; display: none; /* background-color: #f6f5f2; */ background-color: #ffffff; } menu.show { display: block; height: auto; bottom: 0px; } menu.display { display: block; position: relative; height: auto; width: auto; top: auto; left: auto; right: auto; bottom: auto; } menu .group { display: inline-block; vertical-align: top; margin: 0px 10px 0px 10px; padding: 0px 0px 20px 0px; column-fill: auto; column-gap: 20px; } menu .group.main { width: calc(33.33% - 20px); column-count: 1; } menu .group.flags { width: calc(100% - 20px); column-count: 4; } menu .group.brand { width: calc(100% - 20px); column-count: 4; } menu .group.category { width: calc(100% - 20px); column-count: 4; } menu .group.clearance { width: calc(100% - 20px); column-count: 4; } menu .group.collection { width: calc(100% - 20px); column-count: 4; } /* menu .group.split { display: inline-block; vertical-align: top; width: calc(50% - 20px); } */ /* menu .group.columns { width: calc(25% - 20px); column-count: 1; } */ /* menu .group:first-of-type { border-top: none; } */ menu a, menu button { /* display: inline-block; vertical-align: top; */ display: block; padding: 5px 10px 5px 10px; text-align: left; /* -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; column-break-inside: avoid; */ /* width: calc(50% - 20px); */ /* color: white; */ } menu .divide { padding: 5px 10px 5px 10px; color: #999999; /* 86bece 93c6d5 */ /* border-top: 0.5px solid #999999; */ } menu .sub { -webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */ page-break-inside: avoid; /* Firefox */ break-inside: avoid; /* IE 10+ */ padding-bottom: 40px; } menu .sub .flag { background-size: 24px 24px; background-repeat: no-repeat; background-position: 10px 7px; padding-left: 42px; margin-bottom: 10px; } menu .sub .flag div { font-size: 13px; line-height: 20px; color: #888888; text-transform: uppercase; } menu .sub.noDivide { /* padding-bottom: 40px; */ } menu .sub a .discounted { display: inline-block; color: #d94646; } menu .sub a:last-of-type { /* padding-bottom: 40px; */ } menu .sub a .usonly { font-size: 13px; line-height: 20px; color: #888888; text-transform: uppercase; } .US menu .sub a .usonly { display: none; } /* menu .columns a, menu .columns button { width: calc(100% - 20px); } */ menu button.close { position: absolute; top: 0px; left: auto; right: 0px; bottom: auto; width: 70px; height: 70px; padding: 10px 10px 10px 10px; text-align: right; /* color: #d6ab4d; */ background-color: transparent; background-image: url("/_images/close-black-48dp.svg"); background-size: 24px 24px; background-repeat: no-repeat; background-position: center; } menu .title { padding: 0px 20px 15px 20px; } menu .subtitle { /* position: -webkit-sticky; position: sticky; top: 0px; */ column-span: all; padding: 10px 10px 10px 10px; margin-bottom: 10px; /* border-bottom: 0.5px solid #999999; */ color: #999999; /* background-color: #ffffff; */ /* font-weight: 600; */ /* background-color: #f6f5f2; */ } menu .teen { color: #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* FOOTER */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ footer { flex-shrink: 0; padding: 0px 0px 30px 0px; margin: 0px 0px 0px 0px; /* font-size: 15px; line-height: 25px; */ /* background-color: #f6f5f2; */ background-color: #f3f3f3; } footer .section { margin: 0px 0px 10px 0px; display: inline-block; vertical-align: top; width: calc(50% - 0px); /* background: red; */ } footer label { font-size: 18px; line-height: 30px; /* font-weight: 500; */ padding: 5px 10px 10px 10px; color: #000000; } footer input[type="tel"] { display: inline-block; vertical-align: top; height: 49px; border-bottom: 0.5px solid #999999; background-color: #ffffff; background-color: transparent; width: calc(100% - 80px); /* margin: 0px 10px 0px 10px; */ /* margin-left: -10px; margin-right: -10px; */ /* width: calc(100% + 20px); */ } footer input[type="tel"]:focus { border-bottom: 0.5px solid #000000; } footer .submit { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/arrow_forward-black-48dp.svg"); border-bottom: 0.5px solid #999999; } footer .submit:disabled { opacity: 0.25; } footer input[type="tel"]:disabled { opacity: 0.25; } footer input[type="tel"]:focus + .submit { border-bottom: 0.5px solid #000000; } footer button { /* font-size: 15px; line-height: 25px; */ } footer .group { display: inline-block; vertical-align: top; margin: 0px 10px 0px 10px; padding: 0px 0px 20px 0px; } footer .connectGroup { display: none; padding: 0px 0px 30px 0px; } .US footer .connectGroup { display: inline-block; } footer .main a, footer .main button { display: block; padding: 5px 10px 5px 10px; text-align: left; background-color: transparent; } footer .subtitle { column-span: all; padding: 10px 10px 15px 10px; color: #999999; } footer .shipping { padding: 20px 20px 10px 20px; margin: 0px 0px 10px 0px; } footer .message { padding: 10px 10px 0px 10px; } footer .copyright { /* font-size: 13px; line-height: 20px; font-weight: 500; */ padding: 10px 10px 0px 10px; color: #555555; } menu a.restricted, menu button.restricted, footer a.restricted, footer button.restricted { display: none; } .US menu a.restricted, .US menu button.restricted, .US footer a.restricted, .US footer button.restricted { display: none; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SOURCE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .source { /* display: flex; flex-wrap: wrap; */ padding: 0px 0px 0px 0px; width: 100%; } .source > div { position: relative; display: inline-block; vertical-align: top; width: calc(50% - 20px); margin: 10px 10px 0px 10px; } .source .image { position: relative; padding-bottom: 56.25%; margin-bottom: 10px; } .source .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .source .notes { padding: 0px 0px 0px 0px; } .source .notes .note { margin: 0px 0px 0px 0px; padding: 0px 10px 30px 10px; } /* .source .notes .note > div { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 9; -webkit-box-orient: vertical; } */ .source .notes .note.notitle { padding-top: 10px; border-top: 0.5px solid #999999; } .source .notes .note .title { color: #999999; padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; border-top: 0.5px solid #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PRODUCT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .product { /* display: flex; flex-wrap: wrap; */ padding: 0px 0px 0px 0px; width: 100%; } .product tr td.days { border: 0px; } .product td.days button { display: inline-block; vertical-align: top; width: 50px; height: 50px; border-radius: 4px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/arrow_downward-black-48dp.svg"); background-color: #ffffff; border: 0.5px solid #34c759; } .product td.days { padding-left: 0px; padding-right: 0px; } .product td.days .select { margin-left: 10px; margin-right: 10px; } .product td.days input { width: 80px; } .product .instruction { padding: 5px 10px 5px 10px; margin: 0px 10px 10px 10px; color: #555555; } .product .instruction .buttons { padding: 5px 0px 5px 0px; } .product .instruction .buttons button { padding: 5px 0px 5px 0px; } .product > div { position: relative; display: inline-block; vertical-align: top; width: calc(50% - 20px); margin: 10px 10px 0px 10px; } .product .location { padding: 20px 100px 10px 10px; /* font-size: 27px; line-height: 35px; */ display: none; } .product table { margin: 5px 0px 0px 0px; } .product tr:first-child { border-top: 0.5px solid #999999; } .product tr.noBottom { border-bottom: none; } /* .product tr td.demphasis { padding-top: 0px; } */ .product th { padding: 10px 10px 10px 10px; text-align: left; } .product td { padding: 10px 10px 10px 10px; } /* .product .location > a { padding-left: 40px; } .product .location > a:before { content: ''; position: absolute; top: 10px; left: 0px; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; background-image: url("/_images/navigate_before-black-48dp.svg"); } */ .product .exclusion { padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } .product .promos { padding: 5px 0px 10px 0px; border-top: 0.5px solid #999999; } .product .promos .promo { /* border-radius: 4px; */ /* background-color: #f6f6f6; #f3f3f3 #edf9f0 */ padding: 10px 10px 10px 10px; margin: 5px 0px 0px 0px; width: calc(50% - 25px); display: inline-block; vertical-align: top; font-size: 14px; line-height: 20px; /* font-weight: 500; */ } .product .promos .promo.within { /* background-color: #ffed00; padding: 9px 9px 9px 9px; border: 0.5px solid #999999; background-color: #ffffff; */ } .product .promos .promo:nth-of-type(odd) { margin-right: 5px; } .product .promos .promo:nth-of-type(even) { margin-left: 5px; } .product .promos .promo.sample { margin-top: 10px; width: calc(100% - 20px); } .product .promos .title { color: #888888; } .product .promos .promo.within .title { color: #888888; } .product .wrap { border-top: 0.5px solid #999999; padding-top: 10px; } .product .image { position: relative; padding-bottom: 100%; margin-bottom: 10px; } .product .image.brand { padding-bottom: 56.25%; margin-left: -10px; margin-right: -10px; background-color: red; margin-bottom: 15px; width: calc(100% + 20px); } .product .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .product .sisters { padding: 0px 10px 10px 10px; } .product .sisters .sister { display: inline-block; /* vertical-align: top; PREVENTS BORDER FROM SHOWING */ /* width: 12.5%; padding-bottom: 12.5%; */ width: 16.66%; padding-bottom: 16.66%; position: relative; border-bottom: 0.5px solid #ffffff; } .product .sisters .sister.selected { border-bottom: 0.5px solid #000000; } .product .sisters .sister img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; /* height: calc(100% - 1px); */ object-fit: cover; object-position: center; } .product .page { position: absolute; top: 0px; right: 0px; width: 100px; } .product .page .control { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 0px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center center; /* border-radius: 20px; */ /* background-color: #f3f3f3; */ } .product .page .control.previous { background-image: url("/_images/navigate_before-black-48dp.svg"); /* background-image: url("/_images/arrow_back-black-48dp.svg"); */ } .product .page .control.next { background-image: url("/_images/navigate_next-black-48dp.svg"); /* background-image: url("/_images/arrow_forward-black-48dp.svg"); */ } .product .page .control.previous.disabled, .product .page .control.next.disabled { opacity: 0.25; /* border: 0.5px solid #000000; */ } .product .details { border-top: 0.5px solid #999999; padding: 10px 10px 10px 10px; /* margin-right: 50px; */ /* border-top: 0.5px solid #000000; */ /* font-size: 27px; line-height: 35px; */ } .product .details .brand { padding-right: 80px; } .product .details h2 { font-weight: 600; } .product .details .total { /* font-weight: 400; */ } .product .outofstock { /* padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; */ /* border-top: 0.5px solid #cccccc */ } .product .actions { padding: 0px 0px 0px 10px; margin: 0px 0px 10px -10px; /* position: sticky; top: auto; left: 0px; right: 0px; bottom: 0px; */ /* width: calc(100%); */ } .product a.dd { display: block; vertical-align: top; margin: 5px 0px 10px 0px; width: calc(100% - 60px); line-height: 30px; padding: 10px 0px 10px 0px; font-weight: 600; border-radius: 4px; text-align: center; } .product .actions button { position: relative; /* display: inline-block; */ display: block; vertical-align: top; /* background-color: #34c759; 34c759 cbe1e8 d6ab4d 6cf0f8 f9e951 fef151 e9e9e9 c4b27b d1a054 b68a3a d99938 ffd662 ffd551 f7c46c */ margin: 0px 0px 0px 0px; /* width: calc(100% - 60px); */ width: 100%; /* width: calc(100% - 80px); */ /* color: #000000; */ /* color: #ffffff; */ /* border-top: 0.5px solid #d6ab4d !important; */ /* border-top: 0.5px solid #999999; */ /* font-size: 27px; line-height: 35px; */ /* font-weight: 600; text-transform: uppercase; */ /* background-color: #e6f5f4; */ /* border-top: 0.5px solid #999999; padding-bottom: 9px; */ /* font-size: 27px; line-height: 35px; */ /* font-weight: 500; */ /* color: #34c759; */ font-weight: 600; /* background-color: #f6f5f2; */ border-radius: 4px; background-color: #34c759; color: #ffffff; text-align: center; } .product .actions button.buy { background-color: #635bff; margin: 10px 0px 0px 0px; } .product .actions button:first-child { /* background-color: #f6f5f2; */ } .product .actions button.add { /* background-color: #34c759; color: #ffffff; */ } /* .grid .actions button span, .product .details a span, .product .details button span, .product .actions button span { border-bottom: 0.5px solid GAINSBORO; } */ /* .product .actions button:not(.favorite) { background-color: #000000; color: #ffffff; text-align: center !important; } */ /* .product .actions button:not(.favorite) { padding-left: 50px; } .product .actions button:not(.favorite):before { content: ''; position: absolute; top: 10px; left: 10px; right: auto; bottom: auto; vertical-align: bottom; display: inline-block; width: 30px; height: 30px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/add-black-48dp.svg"); background-color: #fff300; border-radius: 15px; } */ .product .actions button.favorite { display: inline-block; vertical-align: top; width: 50px; height: 50px; margin-left: 10px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/favorite_border-black-48dp.svg"); background-color: #ffffff; border: 0.5px solid #34c759; } .product .actions button.favorite.true { background-image: url("/_images/favorite-black-48dp.svg"); } .product .actions button.hide { display: none; } .product .actions button:disabled { opacity: 50%; } .product .category { padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .restricted { margin-top: 5px; padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } .product .gallery { margin-top: 10px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .avaliable { margin: 0px 0px 10px 0px; padding: 10px 10px 10px 10px; font-size: 14px; line-height: 20px; background-color: #f1fbfb; } .product .collection { margin: 10px 0px 0px 0px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .classification { margin: 10px 0px 0px 0px; padding: 10px 10px 0px 10px; border-top: 0.5px solid #999999; } .product .later { text-align: center; text-transform: uppercase; font-size: 14px; padding-right: 60px; padding-bottom: 10px; } .product .remaining { color: #d94646; text-align: center; padding-bottom: 5px; } .product .description { margin: 10px 0px 0px 0px; padding: 10px 10px 30px 10px; border-top: 0.5px solid #999999; } .product .notes { /* border-top: 0.5px solid #999999; */ padding: 0px 0px 25px 0px; /* 12PX IS AN OPTICAL ADJUSTMENT */ /* font-size: 16px; line-height: 25px; */ } .product .notes .note { margin: 0px 0px 0px 0px; padding: 0px 10px 0px 10px; /* border-top: 0.5px solid #999999; */ /* color: #555555; */ } .product .notes .extra-bottom { margin-bottom: 15px; } .product .notes .note.notitle { padding-top: 10px; border-top: 0.5px solid #999999; } /* .product .notes .note:first-of-type { padding-top: 10px; } */ .product .notes .note .title { /* color: #999999; */ padding: 10px 10px 10px 10px; margin: 0px -10px 0px -10px; width: calc(100% + 20px); /* font-weight: 600; */ border-top: 0.5px solid #999999; } .product .notes .note .title:before { content: '\2b'; /* color: #34c759; color: #c7c1af; */ text-align: center; padding: 0px 10px 0px 0px; } /* .product .notes .note .title:after { content: '\2b'; color: #34c759; #c7c1af; width: 30px; text-align: center; float: right; } */ .product .notes .note .title + div { display: none; color: #555555; } .product .notes .note .title.show { padding-bottom: 30px; } .product .notes .note .title.show:before { content: '\2212'; } /* .product .notes .note .title.show:after { content: '\2212'; } */ .product .notes .note .title.show + div { display: block; padding-bottom: 20px; } .product .notes .note .ingredients { column-count: 1; column-gap: 20px; margin-bottom: 20px; margin-top: -5px; } .product .notes .note .ingredients .link span { color: #555555; } .product .notes .note .disclaimer { column-span: all; padding-top: 20px; /* font-size: 13px; line-height: 20px; */ color: #555555; } .product .notes .note .more { display: block; margin-top: 20px; margin-bottom: 10px; padding-top: 10px; padding-bottom: 10px; } .product .notes .note .ingredients button { padding-bottom: 0px; -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; padding: 0 0 10px 0; margin: 0 0 0 0; text-transform: capitalize; } /* .product .options { } .product .options .option { vertical-align: top; display: inline-block; width: 50%; } .product .options .option:nth-child(odd) { margin: 10px 0px 10px 0px; } .product .options .option:nth-child(even) { margin: 10px 0px 10px 0px; } */ .banner { display: none; padding: 10px 10px 10px 10px; /* margin: 0px -10px 0px -10px; */ background-color: transparent; } .product .banner { padding: 0px 10px 10px 10px; } .cart .banner { margin: 0px 10px 0px 10px; } .grid .banner { /* margin: 0px 10px 0px 10px; */ width: 100%; padding: 0px 10px 0px 10px; } .grid .actions .banner { padding: 0px 0px 0px 0px; } .popover .form .banner { padding: 0px 10px 10px 10px; } .banner.show { display: block; } .banner.error { /* background-color: #f7e6e6; color: #000000; */ /* color: #cb0000; */ color: #ff3b30; } /* .product .banner.error { color: #000000; } */ .cart .banner.error { /* background-color: #ffffff; */ } .banner.issue { /* background-color: #f7f4e6; */ /* color: #cb0000; */ color: #ff3b30; } .banner.success { /* background-color: #e6f5f4; e4f3f5 #e6f7e0; */ color: #34c759; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* HOME */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .home { /* NADA */ } .home .top { text-align: center; height: 60px; padding: 10px 0px 10px 0px; } .home .top button { display: inline-block; vertical-align: top; width: auto; } .home .top a { display: inline-block; vertical-align: top; width: auto; padding: 10px 10px 10px 10px; } .home .top div { text-align: center; color: #777; font-size: 13px; line-height: 13px; } .home .item { display: block; height: calc(100vh - 150px); } .home .item img { display: block; vertical-align: top; height: 100%; width: 100%; object-fit: cover; object-position: center; } .home .bottom { text-align: center; height: 50px; padding: 10px 0px 0px 0px; } .home .bottom a { display: inline-block; vertical-align: top; width: auto; padding: 10px 0px 10px 0px; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GRID */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .arcade { display: flex; flex-wrap: wrap; overflow: visible; padding: 0px 0px 10px 0px; } .arcade .photo { width: calc(33% - 20px); margin: 0px 10px 20px 10px; cursor: pointer; position: relative; display: flex; flex-direction: column; text-align: center; /* -webkit-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); -moz-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); */ } .arcade .photo .title { /* border-top: 0.5px solid #999999; */ text-align: left; padding: 10px 10px 10px 10px; } .arcade .photo .image { position: relative; width: calc(100%); padding-bottom: calc(150%); background-color: #f6f5f2; } .arcade .photo .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; mix-blend-mode: multiply; } @media all and (max-width: 768px) { .arcade .photo { width: calc(50% - 20px); } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* GRID */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .grid { display: flex; flex-wrap: wrap; overflow: visible; padding: 0px 0px 20px 0px; } .grid.samples { padding-bottom: 10px; } .grid .instruction { padding: 5px 10px 5px 10px; margin: 0px 10px 10px 10px; color: #555555; max-width: 576px; } .grid .instruction .buttons { padding: 5px 0px 5px 0px; } .grid .instruction .buttons button { padding: 5px 0px 5px 0px; } .grid .instruction.search { /* padding-top: 10px; */ } .grid .title { display: block; width: calc(100% - 20px); border-top: 0.5px solid #999999; } .grid .item { width: calc(33.33% - 20px); margin: 10px 10px 10px 10px; /* padding: 10px 0px 0px 0px; */ cursor: pointer; background-color: #ffffff; position: relative; /* border-top: 0.5px solid #999999; */ display: flex; flex-direction: column; text-align: center; /* -webkit-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); -moz-box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.04); */ } .grid.samples .item { width: calc(50% - 20px); font-size: 15px; line-height: 25px; outline: 0.5px solid #999999; } /* .grid.home { margin: 0px 40px 0px 40px; } */ /* .grid.home .item { width: calc(100% - 80px); padding: 20px 20px 20px 20px; margin: 0px 20px 40px 20px; border-top: none; } */ .grid .item a { flex-grow: 1; display: flex; flex-direction: column; } .grid .regimen { width: 100%; border-top: 0.5px solid #999999; margin: 10px 10px 0px 10px; padding: 10px 10px 10px 10px; /* text-transform: uppercase; */ } .grid.samples .regimen { margin: 20px 10px 0px 10px; padding: 10px 0px 10px 0px; } .grid.samples .regimen:first-of-type { margin-top: 0px; } /* .grid .item:hover { -webkit-box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); -moz-box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.1); } */ /* .grid .item .image { display: block; padding-bottom: calc(100%); background-repeat: no-repeat; background-size: cover; background-position: center; margin-bottom: 0px; } */ .grid .item .image { position: relative; width: calc(100%); padding-bottom: calc(100%); /* background-color: #f7f7f7; */ } /* .grid.home .item .image { padding-bottom: calc(66.67%); } */ .grid .item .image img { position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .grid .item .image .overlay { position: absolute; bottom: 20px; left: 0px; width: auto; min-width: calc(50% - 20px); height: auto; padding: 10px 10px 10px 10px; color: #000000; background-color: #ffffff; } .grid .item .details { padding: 10px 10px 10px 10px; /* text-align: center; */ /* border-top: 0.5px solid #999999; */ position: relative; /* display: flex; flex-direction: column; */ /* flex-grow: 1; */ } .grid .item .details .label { flex-grow: 1; /* padding-bottom: 10px; */ /* border-bottom: 0.5px solid #999999; */ /* font-weight: 300; */ } .grid .item .details .label span { /* display: block; */ } .grid .item .details .description { margin: 10px 0px 0px 0px; padding: 10px 0px 0px 0px; border-top: 0.5px solid #999999; text-align: left; } /* .grid .item .details .description { padding: 10px 0px 10px 0px; color: #555555; display: none; } .grid .item .details.open .description { display: block; } */ /* .grid .item .brand { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; z-index: 10; overflow-x: hidden; overflow-y: scroll; border-top: 10px solid #9c9b98; padding: 9px 10px 10px 10px; } */ /* .grid .item .brand .name { font-weight: bold; } */ /* .grid .item .brand .description { padding: 10px 0px 0px 0px; color: #555555; } */ /* .grid .item .price { padding: 10px 10px 10px 10px; text-align: right; } .grid .item.product .price { padding: 0px 0px 0px 0px; text-align: left; font-size: 21px; line-height: 27px; } */ /* .grid .item.product .description { padding: 10px 0px 0px 0px; font-size: 21px; line-height: 27px; } */ /* .grid .item .action { position: absolute; bottom: 45px; padding: 10px 10px 10px 10px; } .grid .item .action.selected { background-color: #ffffff; } .grid .item .action span { } */ /* .grid .item .banner { margin-left: 0px; margin-right: 0px; width: calc(100% - 20px); } */ .grid .item .actions { position: relative; padding: 0px 0px 0px 0px; } .grid .item .restricted { display: inline-block; vertical-align: top; text-align: center; padding: 10px 10px 10px 10px; } .grid .item button.add { /* border-top: 0.5px solid #999999; */ display: inline-block; vertical-align: top; text-align: center; /* width: calc(100% - 50px); */ /* font-weight: 600; */ /* padding-top: 9px; padding-bottom: 9px; margin-right: 20px; border: 0.5px solid #999999; */ /* font-weight: 600; */ /* background-color: #e6f5f4; */ /* background-color: rgba(255,255,51,1); */ /* border-top: 0.5px solid #999999; */ /* background-color: #000000; 00e4c8 */ /* color: #ffffff; */ /* border-top: 0.5px solid #999999; padding-bottom: 9px; */ /* border-radius: 25px; */ /* text-align: center; */ /* background-color: #000000; color: #ffffff; */ /* width: auto; margin: 10px auto 10px auto; padding-left: 25px; padding-right: 25px; border-radius: 25px; border: 0.5px solid #999999; */ /* color: #b19671; */ /* color: #34c759; */ /* border-bottom: 0.5px solid #34c759; */ width: auto; /* margin: 0px auto 10px auto; padding-left: 15px; padding-right: 15px; */ /* border-top: 0.5px solid #999999; */ /* font-weight: 500; */ } .grid .item button { font-weight: 600; } .grid .item button.hide { display: none; } .grid .item button.favorite { /* border-top: 0.5px solid #999999; */ position: absolute; top: auto; left: auto; right: 0px; bottom: 10px; /* margin-top: calc(100% - 50px); */ display: inline-block; vertical-align: bottom; width: 50px; height: 50px; background-size: 24px 24px; background-repeat: no-repeat; background-position: center; background-image: url("/_images/favorite_border-black-48dp.svg"); background-color: transparent; /* border: 0.5px solid #999999; */ display: none; } .grid .item button.favorite.true { background-image: url("/_images/favorite-black-48dp.svg"); } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ships */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .ships { width: calc(100% - 40px); border-top: 0.5px solid #999999; margin: 20px 10px 0px 10px; padding: 0px 10px 0px 10px; /* display: flex; justify-content: center; */ /* over-flow: hidden; white-space: nowrap; overflow-y: scroll; */ } .ships .ship { border-radius: 4px; padding: 9px 15px 0px 0px; margin: 0px 0px 0px 0px; display: inline-block; /* width: calc(50% - 25px); vertical-align: top; */ /* font-size: 14px; line-height: 20px; font-weight: 500; */ } .ships .ship:last-of-type { padding-right: 0px; } .ships .ship div { color: #555555; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* APPROVAL */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .approval { display: none; position: fixed; top: auto; left: 0; right: 0; bottom: 0; width: auto; min-height: 40px; height: auto; z-index: 900; background-color: #ebe8e1; padding: 15px 90px 15px 20px; font-size: 13px; line-height: 20px; } .approval.show { display: block; } .approval button { position: absolute; top: 10px; left: auto; right: 10px; bottom: auto; min-width: 70px; width: auto; height: auto; z-index: 900; background-color: #000000; color: #ffffff; padding: 10px 10px 10px 10px; text-align: center; font-size: 13px; font-weight: 600; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* POPOVER */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .popover { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: auto; width: auto; height: 0px; z-index: 1000; background-color: rgba(0,0,0,0.2); justify-content: center; } .popover.show { display: flex; bottom: 0px; height: auto; overflow: hidden; } .popover .shell { overflow-y: scroll; -webkit-overflow-scrolling: touch; width: 100%; max-width: 414px; max-height: 100%; height: auto; align-self: flex-start; /* PREVENTS FROM FILLING VERTICALLY */ background-color: #ffffff; } .popover .wrap { padding: 0px 10px 0px 10px; /* background-color: #fff300; */ } .popover .wrap .title { padding: 20px 10px 10px 10px; font-weight: 600; background-color: #ffffff; position: -webkit-sticky; position: sticky; top: 0px; } .popover .wrap .instruction { padding: 10px 10px 10px 10px; /* color: #555555; */ } .popover .wrap .info { padding: 10px 10px 25px 10px; } .popover .wrap .info.small { font-size: 13px; line-height: 20px; padding-bottom: 25px; } .popover .wrap .info.tight { padding-bottom: 5px; } .popover .wrap .source { display: block; padding-top: 10px; } .popover .wrap .info.error { padding: 10px 10px 0px 10px; } .popover .wrap .form { padding: 10px 0px 20px 0px; width: calc(100% - 20px); } /* .popover .wrap .error { padding: 0px 10px 10px 10px; } */ .popover .wrap .actions { padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; position: -webkit-sticky; position: sticky; bottom: 0px; background-color: #ffffff; } .popover .wrap .actions.multi { margin: 0px -5px 0px -5px; } .popover .wrap .actions button { border-top: 0.5px solid #999999; padding: 10px 0px 10px 0px; margin: 0px 10px 0px 10px; width: calc(100% - 20px); } .popover .wrap .actions.multi button { margin: 0px 5px 0px 5px; width: calc(50% - 20px); display: inline-block; vertical-align: top; } .popover .wrap .actions button.primary { margin-bottom: 10px; font-weight: 600; } .popover .wrap .actions.multi button.primary { margin-bottom: 0px; } .popover .wrap .actions button.secondary { font-weight: 600; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* LOCATIONS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .locations { padding: 0px 0px 0px 0px; } .locations .location { /* display: inline-block; */ vertical-align: top; /* width: calc(50% - 20px); */ padding: 0px 10px 0px 10px; } .locations .location .image { width: 100%; padding-bottom: 66.67%; background-size: cover; background-repeat: no-repeat; background-position: center; } .locations .location .image.sf { background-image: url("/_images/location-sf-bw.jpg"); } .locations .location .image.dc { background-image: url("/_images/location-dc-bw.jpg"); } .locations .location .head { font-weight: 600; border-top: 0.5px solid #000000; padding: 10px 0px 5px 0px; margin-top: 10px; } .locations .location .details { padding: 0px 0px 30px 0px; } .locations .location .details a { display: block; } .locations .location .title { padding: 15px 10px 0px 10px; color: #000000; } .locations .location .subtitle { padding: 0px 10px 15px 10px; margin: 0px 0px 15px 0px; /* font-size: 12px; line-height: 20px; text-transform: uppercase; */ color: #999999; border-bottom: 0.5px solid #999999; } .locations .location .details .status { padding: 0px 10px 15px 10px; margin: 0px 0px 15px 0px; /* font-size: 13px; line-height: 25px; */ border-bottom: 0.5px solid #999999; } .locations .location .details .status .link { display: inline-block; /* font-size: 13px; line-height: 25px; */ padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; width: auto; } .locations .location .details .address { display: inline-block; vertical-align: top; width: calc(50% - 20px); min-width: 210px; padding: 0px 10px 0px 10px; /* color: #555555; */ /* font-size: 13px; line-height: 25px; */ } .locations .location .details .address .group { padding: 0px 0px 30px 0px; } .locations .location .details .hours { display: inline-block; vertical-align: top; width: calc(50% - 20px); padding: 0px 10px 0px 10px; /* font-size: 13px; line-height: 25px; */ } .locations .location .details .hours .day { } .locations .location .details .hours .day div { float: left; width: 70px; color: #999999; } @media all and (max-width: 480px) { .locations .location .details .address, .locations .location .details .hours { display: block; width: calc(100% - 20px); } .ships { } .ships .ship { font-size: 14px; line-height: 20px; } .ships .ship.nomobile { /* display: none; */ } .ships .ship:first-of-type { /* display: none; */ } .promo { font-size: 14px; line-height: 20px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* IG */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .ig { display: flex; flex-wrap: wrap; margin: 0px 10px 10px 10px; } .ig a { width: calc(25% - 20px); margin: 0 0; padding: 0 0; margin: 10px 10px 10px 10px; } .ig a img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: center; margin: 0 0; padding: 0 0; vertical-align: top; } @media all and (max-width: 480px) { .ig a { width: calc(50% - 20px); } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* PHOTOS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .photos { padding: 0px 10px 10px 10px; } .photos img { outline: 0.5px solid #ffffff; cursor: zoom-in; } .photos img.half { width: 50%; float: left; } .photos img.full { width: 100%; float: left; } .photos img.third { width: 33.33%; float: left; } .photos img.portrait { width: 30.77%; float: left; } .photos img.landscape { width: 69.23%; float: left; } @media all and (max-width : 767px) { .photos img.half, .photos img.third, .photos img.landscape, .photos img.portrait { width: 100%; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ZOOM - UNUSED */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .zoom { position: fixed; left: 0px; top: 0px; right: 0px; bottom: 0px; width: auto; height: auto; /*background-color: rgba(0,0,0,0.75);*/ background-color: #ffffff; z-index: 99999; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: zoom-out; } .zoom .close { position: absolute; left: auto; top: 0px; right: 0px; bottom: auto; width: 48px; height: 48px; font-size: 24px; line-height: 48px; text-align: center; color: #ffffff; background-color: rgba(0,0,0,0.2); } .zoom img { height: auto; width: auto; /*max-width: calc(100% - 64px); max-height: calc(100% - 64px);*/ max-width: 100%; max-height: 100%; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ABOUT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .about { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; overflow: visible; } .about .cover { /* margin-top: -30px; */ margin-bottom: 20px; position: relative; width: 100%; } .about .cover .image { text-align: center; } .about .cover .image img { display: block; width: 540px; height: 100%; max-width: 100%; object-fit: cover; object-position: center; margin: 0 auto; } .about .copy { margin: 0px auto; padding: 20px 20px 0px 20px; max-width: 540px; color: #000000; } .about .copy h1 { padding: 0px 0px 20px 0px; font-weight: 600; } .about .copy p { -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; } .about .book { display: block; font-weight: 600; background-color: #34c759; color: #ffffff; padding: 10px 10px 10px 10px; width: calc(100% - 20px); border-radius: 4px; text-align: center; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - COPY */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-copy { padding: 20px 20px 0px 20px; margin: 0px 0px 0px 0px; column-count: 4; column-gap: 40px; } .content-copy .sub { max-width: 576px; -webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */ page-break-inside: avoid; /* Firefox */ break-inside: avoid; /* IE 10+ */ } .content-copy h6 { padding-top: 5px; padding-bottom: 5px; color: #999999; } .content-copy p, .content-copy ul { /* color: #555555; */ } .content-copy a { /* color: #d6ab4d; */ color: #555555; } @media all and (max-width : 1600px) { .content-copy { column-count: 3; } } @media all and (max-width : 1200px) { .content-copy { column-count: 2; } } @media all and (max-width : 979px) { .content-copy { column-count: 2; } } @media all and (max-width : 767px) { .content-copy { column-count: 1; } } @media all and (max-width : 480px) { .content-copy { column-count: 1; column-gap: 12px; } } @media all and (max-width : 320px) { .content-copy { column-count: 1; column-gap: 12px; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - SERVICES */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-services { padding: 20px 10px 0px 10px; margin: 10px 0px 0px 0px; column-count: 3; column-gap: 20px; /* overflow: visible; clear: both; border-top: 0.5px solid #999999; */ } .content-services .sub { break-inside: avoid; padding: 0px 0px 20px 0px; } .content-services .title { padding: 0px 10px 0px 10px; font-weight: 600; } .content-services .more { padding: 0px 10px 0px 10px; font-size: 13px; line-height: 20px; } .content-services table { table-layout: fixed; } .content-services thead tr { border-bottom: 0.5px solid #999999; } .content-services th { padding: 10px 10px 10px 10px; font-size: 13px; line-height: 20px; text-align: center; color: #555555; } .content-services td { padding: 10px 10px 10px 10px; } .content-services th.label, .content-services td.label { font-size: 13px; line-height: 20px; width: 180px; } .content-services td span { font-size: 13px; line-height: 20px; } .content-services .number { text-align: center; } @media all and (max-width : 1600px) { .content-services { column-count: 3; } } @media all and (max-width : 1200px) { .content-services { column-count: 2; } } @media all and (max-width : 979px) { .content-services { column-count: 2; } } @media all and (max-width : 767px) { .content-services { column-count: 1; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* CONTENT - PRESS */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .content-press { padding: 20px 10px 0px 10px; margin: 10px 10px 0px 10px; overflow: visible; clear: both; border-top: 0.5px solid #999999; } .content-press .head { padding: 5px 0px 5px 0px; /* font-weight: 600;*/ width: 100px; display: inline-block; vertical-align: top; margin-right: -100px; } .content-press .articles { display: inline-block; vertical-align: top; margin-left: 100px; width: calc(100% - 100px); } .content-press .articles .article { position: relative; display: inline-block; vertical-align: top; padding: 0px 0px 30px 0px; width: 25%; vertical-align: top; } .content-press .articles .article .brand { margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; color: #000000; } .content-press .articles .article .description { margin: 0px 0px 0px 0px; padding: 5px 10px 5px 10px; } .content-press .articles .article .description .title { color: #555555; } @media all and (max-width: 1600px) { .content-press .articles .article { /* width: 20%; */ /* width: 25%; */ } } @media all and (max-width: 1338px) { .content-press .articles .article { width: 33%; } } @media all and (max-width: 1080px) { /* .content-press .articles .article { width: 33%; } */ } @media all and (max-width: 800px) { .content-press .articles .article { width: 50%; } } @media all and (max-width: 480px) { .content-press .articles .article { width: 100%; } } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SIGNATURE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ .signature { display: none; margin: 10px 10px 10px 10px; } .signature .title { border-top: 0.5px solid #000000; padding: 10px 10px 20px 10px; font-weight: 600; } .signature .content { padding: 10px 10px 10px 10px; border-top: 0.5px solid #999999; } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* MEDIA - NON-CONTENT */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ @media all and (min-width: 1260px) { .path .item select { width: calc(20% - 20px); } .grid:not(.samples) .item { width: calc(25% - 20px); } } @media all and (max-width: 1024px) { /* .grid.home .item { width: calc(50% - 20px); } */ } @media all and (max-width: 1023px) { menu .group.flags { column-count: 3; } menu .group.brand { column-count: 3; } menu .group.category { column-count: 3; } menu .group.clearance { column-count: 3; } menu .group.collection { column-count: 3; } } @media all and (max-width: 768px) { .path .item select { width: calc(33.33% - 20px); } .grid:not(.samples) .item { width: calc(50% - 20px); } .cart .group { width: 100%; } } @media all and (max-width: 767px) { menu .group.main { width: calc(50% - 20px); column-count: 1; } } @media all and (max-width: 414px) { /* body { margin: 10px 0px 10px 0px; } */ footer .section { width: calc(100% - 0px); } .locations .location { width: calc(100% - 20px); } .path .item select { width: calc(50% - 20px); } .product .details { /* padding-top: 20px; text-align: center; */ } .large { /* font-size: 18px; line-height: 30px; */ } .grid .item { /* width: calc(100% - 20px); */ font-size: 13px; line-height: 20px; } .grid .item button { font-size: 13px; line-height: 20px; } /* .grid .item .image { position: relative; width: calc(75%); padding-bottom: calc(75%); margin: 0 auto; } .grid .item .details { text-align: center; padding-left: 0px; padding-right: 0px; } */ /* .grid .item button { font-size: 15px; line-height: 20px; } .grid .item .details { padding: 10px 10px 0px 10px; } */ .grid .item .actions { /* padding: 5px 0px 0px 0px; */ /* display: none; */ } /* .grid .item .details .label { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } */ .grid .item button.favorite { width: 40px; height: 40px; right: 5px; bottom: 0px; display: none; } /* .grid.home .item { width: calc(100% - 20px); } */ .grid .item .image .overlay { font-size: 12px; padding-top: 6px; padding-bottom: 6px; } .source > div { width: calc(100% - 20px); } .product > div { /* display: inline-block; vertical-align: top; */ width: calc(100% - 20px); /* margin-bottom: 0px; padding-bottom: 0px; */ } .product .location { position: -webkit-sticky; position: sticky; top: 70px; background-color: #ffffff; z-index: 10; } .product .empty { display: none; } .cart .group { width: 100%; } nav a.logo { left: calc(50% - 90px); right: calc(50% - 90px); width: 180px; background-size: auto 22px; } /* nav .links .icon.search { display: none; } */ menu .group.flags { column-count: 2; } menu .group.brand { column-count: 2; } menu .group.category { column-count: 2; } menu .group.clearance { column-count: 2; } menu .group.collection { column-count: 2; } /* menu { top: 0px; } */ /* body { margin: 10px 5px 5px 5px; } * { } .nav { } nav .item { margin-left: 5px; margin-right: 5px; } .nav .item { margin-left: 5px; margin-right: 5px; } .grid .item { margin-left: 5px; margin-right: 5px; margin-bottom: 10px; } */ } @media all and (max-width: 375px) { /* .grid.home .item { width: calc(100% - 20px); } */ nav .links .icon.search { display: none; } } @media all and (max-width: 320px) { .grid:not(.samples) .item { width: calc(100% - 20px); } /* .grid.home .item { width: calc(100% - 20px); } */ menu .group.main { width: calc(100% - 20px); column-count: 1; } menu .group.flags { column-count: 1; } menu .group.brand { column-count: 1; } menu .group.category { column-count: 1; } menu .group.clearance { column-count: 1; } menu .group.collection { column-count: 1; } } @media all and (max-width: 666px) { /* body { font-size: 15px; line-height: 20px; } * { font-size: 15px; line-height: 20px; } .grid .item { padding-bottom: 40px; } .grid .item .details.open { bottom: 40px; } nav .item .logo { height: 20px; background-size: auto 20px; } .grid .item.tint { width: calc(100% - 20px); } .grid .item.tint .brand { position: relative; } .grid .item.tint .brand .description { display: none; } .nav .item .hide { display: none; } */ } @media all and (max-width: 567px) { /* .nav .item { width: calc(50% - 20px); } .nav .item .hide { display: inline; } */ } @media all and (max-width: 375px) { /* .grid:not(.samples) .item { width: calc(100% - 20px); } */ } @media all and (max-width: 320px) { /* .nav .item .hide { display: none; } */ } @media screen and (orientation: portrait) { /* .home .item .image { width: calc(100% - 40px); height: 100%; margin: 0px 20px 0px 20px; } */ /* .home .item img { object-fit: cover; } */ /* .home .item .image { width: 100%; margin: 0px 0px 0px 0px; } */ } /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ /* SIGNATURE */ /* +++++++++++++++++++++++++++++++++++++++++++++++++ */ @media print { nav .links .icon { display: none; } footer { display: none; } /* .trustpilot { display: none; } */ .approval.show { display: none; } .livechat_button { display: none; } .signature { display: block; } .noprint { display: none; } } .link { /* color: #6abcd7 !important; */ /* color: #46cdd97 !important; */ /* color: #eb5528 !important; */ /* color: #d24319 !important; */ /* color: #3b5655 !important; */ /* color: #d6ab4d !important; LIGHT VERSION OF SALAMANDAR */ /* TODO MOVE TO END TO DEAL WITH IMPORTANT */ /* color: #d6ab4d !important; */ cursor: pointer; } .link span { color: inherit; border-bottom: 0.5px solid #cccccc; /* dotted #34c759 #3b9f53 #999999; */ /* white-space: normal; word-wrap: break-word; */ height: auto; position: relative; } a.link span { border-bottom: 0.5px solid #cccccc; /* SAFARI REQUIRED THIS } @media (hover: hover) { .link span:hover { border-bottom: 0.5px solid #333333; /* dotted #41a55a #333333; */ } } </style> <script> // localStorage.clear(); var statusError = { status: 'error', type: 'status', title: 'Error', message: 'An unknown error has occured. We have been notified of the issue. Reload the page and try again (S1).', secondary: 'Ok', primary: null, primaryAction: null, } var catchError = { status: 'error', type: 'catch', title: 'Error', message: 'An unknown error has occured. We have been notified of the issue. Reload the page and try again (C1).', secondary: 'Ok', primary: null, primaryAction: null, } var formError = { status: 'error', type: null, title: 'Error', message: 'See errors below.' } var addCartError = { status: 'error', type: null, title: 'Error', message: 'Product was not added, cart contains max available products.' } var addCartIssue = { status: 'issue', type: null, title: 'Error', message: '' // DYNAMIC } var addCartSuccess = { status: 'success', type: null, title: 'Success', message: '' // DYNAMIC } var connectJoinSuccess = { status: 'success', type: null, title: 'Success', message: 'A confirmation text message has been sent.' } var connectJoinError = { status: 'error', type: null, title: 'Error', message: '' // DYNAMIC } var notifyAddSuccess = { status: 'success', type: null, title: 'Success', message: 'Notification was saved.' } var notifyAddError = { status: 'error', type: null, title: 'Error', message: '' // DYNAMIC } var notifyRemoveSuccess = { status: 'success', type: null, title: 'Success', message: 'Notification was removed.' } function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); let length = ca.length; for (let i = 0; i < length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function setCookie(cname, cvalue, exdays) { const d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); let expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";secure;path=/"; } function checkCookie(cname, cvalue) { let value = getCookie(cname); if (value != "") { // alert(cname); } else { setCookie(cname, cvalue, 365); } } function copyToClipboard(obj,event) { var range = document.createRange(); range.selectNode(obj); window.getSelection().removeAllRanges(); // CLEAR CURRENT SELECTION window.getSelection().addRange(range); // SELECT TEXT document.execCommand("copy"); window.getSelection().removeAllRanges(); // DESELECT } var capturedIngredients = []; function switchVariant(obj,event) { location.href = obj.value; } function toggleNote(obj,event) { if (obj.classList.contains('show')) { obj.classList.remove('show'); } else { obj.classList.add('show'); } } function toggleInfo(obj,event) { var info = obj.parentNode.querySelector('.details.open'); if (info) { info.classList.remove('open'); if (info.parentNode.id == obj.id) { return; } } info = obj.querySelector('.details'); if (info) { info.classList.add('open'); } } function toggleAddToCartState(enable,add,quantity) { if (enable) { if (quantity) { quantity.disabled = false; } if (add) { add.disabled = false; add.innerHTML = 'Add to Cart'; } } else { if (quantity) { if (typeof(cartQuantity) != 'undefined') { cartQuantity.disabled = true; } } if (add) { add.disabled = true; add.innerHTML = 'Adding ...'; } if (typeof(statusBanner) != 'undefined') { statusBanner.classList.remove('show'); statusBanner.classList.remove('success'); statusBanner.classList.remove('issue'); statusBanner.classList.remove('error'); statusBanner.textContent = ''; } else { var banner = add.parentNode.querySelector('.banner'); if (banner) { banner.classList.remove('show'); banner.classList.remove('success'); banner.classList.remove('issue'); banner.classList.remove('error'); banner.textContent = ''; } } } } function updateCartTotals(cells) { if (!cells[0]) { return; } var quantity = 0; var total = 0; var amount = 0; var subtotal = 0; cells.forEach(function(cell,i) { quantity = parseInt(cell.dataset.quantity); total = parseFloat(cell.dataset.total); amount = quantity * total; subtotal += amount; cell.innerHTML = '$' + amount.toFixed(2); }); cartSubtotal.innerHTML = '$' + subtotal.toFixed(2); } function changeShipMethod(obj,event) { if (obj.value == 'ship') { addressGroup.classList.add('show'); } else { addressGroup.classList.remove('show'); } } function continueToPayment() { var shipErrors = false; var token = getToken(); var method = 'ship'; // document.getElementById("method"); var fname = document.getElementById("fname"); var lname = document.getElementById("lname"); var email = document.getElementById("email"); var phone = document.getElementById("phone"); var recipient = document.getElementById("recipient"); var address = document.getElementById("address"); var unit = document.getElementById("unit"); var locality = document.getElementById("locality"); var province = document.getElementById("province"); var postalCode = document.getElementById("postalCode"); var note = document.getElementById("note"); var signup = document.getElementById("signup"); var fnameError = document.getElementById("fnameError"); var lnameError = document.getElementById("lnameError"); var emailError = document.getElementById("emailError"); var phoneError = document.getElementById("phoneError"); var addressError = document.getElementById("addressError"); var localityError = document.getElementById("localityError"); var provinceError = document.getElementById("provinceError"); var postalCodeError = document.getElementById("postalCodeError"); if (isEmpty(fname.value)) { fnameError.textContent = "Required"; shipErrors = true; } else { fnameError.textContent = ""; fname.value = trimString(fname.value); } if (isEmpty(lname.value)) { lnameError.textContent = "Required"; shipErrors = true; } else { lnameError.textContent = ""; lname.value = trimString(lname.value); } if (isEmpty(email.value)) { emailError.textContent = "Required"; shipErrors = true; } else { email.value = trimString(email.value); if (isEmail(email.value)) { email.value = email.value.toLowerCase(); emailError.textContent = ""; } else { emailError.textContent = "Check format"; shipErrors = true; } } if (isEmpty(phone.value)) { phoneError.textContent = "Required"; shipErrors = true; } else { phone.value = trimString(phone.value); phone.value = scrubPhoneNumber(phone.value); if (isPhoneNumber(phone.value)) { phone.value = formatPhoneNumber(phone.value); phoneError.textContent = ""; } else { phoneError.textContent = "Must contain 10 numbers"; shipErrors = true; } } if (isEmpty(recipient.value)) { recipient.textContent = ""; } else { recipient.value = trimString(recipient.value); } if (isEmpty(address.value)) { addressError.textContent = "Required"; shipErrors = true; } else { addressError.textContent = ""; } if (isEmpty(unit.value)) { unit.textContent = ""; } else { unit.value = trimString(unit.value); } if (isEmpty(locality.value)) { localityError.textContent = "Required"; shipErrors = true; } else { localityError.textContent = ""; locality.value = trimString(locality.value); } if (isEmpty(province.value)) { provinceError.textContent = "Required"; shipErrors = true; } else { provinceError.textContent = ""; province.value = trimString(province.value); } if (isEmpty(postalCode.value)) { postalCodeError.textContent = "Required"; shipErrors = true; } else { postalCode.value = trimString(postalCode.value); if (isValidPostalCode(postalCode.value)) { postalCodeError.textContent = ""; postalCodeError.textContent = ""; } else { postalCodeError.textContent = "Must be 5 or 9 numbers"; shipErrors = true; } } if (shipErrors) { showBannerMessage(formError,null,null,null); return false; } hideBannerMessage(null); var data = { token: token, method: 'ship', // method.value, fname: fname.value, lname: lname.value, email: email.value, phone: scrubPhoneNumber(phone.value), recipient: recipient.value, address: address.value, unit: unit.value, locality: locality.value, province: province.value, postalCode: postalCode.value, note: note.value, // signup: signup.checked, country: country.value, } fetch('/updateShipTo/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/updateShipTo/'; toggleInfoPopover(null,null,statusError,null); return; } hideBannerMessage(null); window.location.href = '/payment/' + token; }).catch((error) => { catchError.error = error; catchError.subject = '/updateShipTo catch/'; toggleInfoPopover(null,null,catchError,null); }); return false; } function removeCartProducts() { toggleProcessing(); var token = getToken(); var data = { token: token }; fetch('/removeCartProducts/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeCartProducts/'; toggleInfoPopover(null,null,statusError,null); return; } // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href); // TODO LAZY BUT EASY }).catch((error) => { catchError.error = error; catchError.subject = '/removeCartProducts catch/'; toggleInfoPopover(null,null,catchError,null); }); } function showGridFilter(obj) { var filter = obj.dataset.filter; var shell = document.querySelector('[data-shell="' + filter + '"]'); obj.classList.add('selected'); if (shell) { shell.classList.add('show'); var menu = shell.querySelector('.menu'); if (menu) { var rect = obj.getBoundingClientRect(); menu.style.top = rect.y + rect.height + 'px'; menu.style.left = rect.x + 'px'; menu.style.minWidth = rect.width + 'px'; rect = menu.getBoundingClientRect(); var style = window.getComputedStyle(obj.parentNode); if (rect.top + rect.height > window.innerHeight) { var offset = 15; // parseInt(style.marginBottom); REMOPVED BOTTOM MARGIN menu.style.bottom = offset + 'px'; // window.innerHeight - rect.top - offset + 'px'; } rect = menu.getBoundingClientRect(); if (rect.x + rect.width > window.innerWidth) { menu.style.left = window.innerWidth - rect.width - parseInt(style.paddingRight) + 'px'; // } // SCROLL WILL NOT WORK WHEN RESIZED DYNAMICALLY // if (rect.left + (rect.width * 2) < window.innerWidth - parseInt(style.marginLeft) - parseInt(style.marginRight)) { // // menu.style.width = (rect.width * 2) + 'px'; // window.innerHeight - rect.top - offset + 'px'; // // } // console.log(rect.left + (rect.width * 2), window.innerWidth - parseInt(style.marginLeft) - parseInt(style.marginRight)); } document.body.classList.add('noscroll'); } } function hideGridFilter(obj,event) { event.stopPropagation(); var shells = document.querySelectorAll('[data-shell]'); if (shells) { shells.forEach(function(shell,i) { shell.classList.remove('show'); }); } var filters = document.querySelectorAll('[data-filter]'); if (filters) { filters.forEach(function(filter,i) { filter.classList.remove('selected'); }); } document.body.classList.remove('noscroll'); } function filterRegimen(obj,id) { var grid = document.querySelector('.grid'); var value = id; if (grid) { var items = grid.querySelectorAll('[data-regimen]'); var button = document.querySelector('[data-filter="regimen"]'); if (button) { var htmlString = '<span>'; if (obj.dataset.parent) { htmlString += obj.dataset.parent + ' / '; } htmlString += obj.textContent; htmlString += '</span>'; button.innerHTML = htmlString; } if (items) { items.forEach(function(item,i) { if (value == 'all') { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (value == item.dataset.regimen) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (item.classList.contains('regimen')) { item.style.display = 'none'; } else { item.parentNode.style.display = 'none'; } } } }); } window.scrollTo(0, 0); } } function filterGrid(obj,id,type,source) { if (type == 'filter') { var grid = document.querySelector('.grid'); if (grid) { var items = grid.querySelectorAll('[data-filter]'); var value = id; var button = document.querySelector('[data-filter="' + source + '"]'); if (source == 'subcategory') { button = document.querySelector('[data-filter="category"]'); } if (button) { var htmlString = '<span>'; if (obj.dataset.parent) { htmlString += obj.dataset.parent + ' / '; } htmlString += obj.textContent; htmlString += '</span>'; button.innerHTML = htmlString; } if (items) { items.forEach(function(item,i) { if (value == 'all') { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (source == 'subcategory' && value == item.dataset.subcategory) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else if (value == item.dataset.filter) { if (item.classList.contains('regimen')) { item.style.display = 'flex'; } else { item.parentNode.style.display = 'flex'; } } else { if (item.classList.contains('regimen')) { item.style.display = 'none'; } else { item.parentNode.style.display = 'none'; } } } }); } } window.scrollTo(0, 0); } else { // TYPE == MASTER // if (type == 'Brand') { // // window.location.href = '/brand/' + obj.value; // // } else if (type == 'Category') { // // window.location.href = '/category/' + obj.value; // // } } } function showExceptions() { var error = { status: 'error', type: 'payment', title: 'Discount Exceptions', message: 'Does not apply to items on sale and the brand Vintner\'s Daughter.', secondary: 'Ok', primary: null, primaryAction: null, } error.subject = '/showExceptions/'; toggleInfoPopover(null,null,error,null); } function updateCartShipping(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('shippingService',value); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); localStorage.setItem('shippingDays',0); // FORCES UPDATE WHEN RETURN TO PROODUCT PAGE } } function updateCartSig(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('shippingSig',value); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); localStorage.setItem('shippingDays',0); // FORCES UPDATE WHEN RETURN TO PROODUCT PAGE // NOT SURE IF NEEDED } } function updateCartTax(obj,replace) { var value = obj.options[obj.selectedIndex].value; localStorage.setItem('taxLocation',value); localStorage.setItem('taxLocationAuto','false'); setCartLink(); if (replace) { localStorage.setItem('shippingUpdate','true'); window.location.replace(basketLink.href); } } // function updateCartTrustpilot(obj,replace) { // // var value = obj.checked; // localStorage.setItem('trustpilot',value); // // } function updateCartNoinvoice(obj,replace) { var value = obj.checked; localStorage.setItem('noinvoice',value); } function updateCartNote(obj,replace) { var value = obj.value; localStorage.setItem('note',value); } function sendNexmo(data) { fetch('/sendNexmo/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // NADA }).catch((error) => { // NADA }); } function updateCartProduct(obj) { toggleProcessing('Updating Your Cart'); var id = obj.dataset.id; var inventory = +obj.dataset.inventory; var value = +obj.value var quantity = inventory < value ? inventory : value; var exceeded = inventory < value ? true : false; var data = { // TOKEN NOT NEEDED id: id, quantity: quantity, }; fetch('/updateCartProduct/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }) .then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/updateCartProduct/'; toggleInfoPopover(null,null,statusError,null); return; } var element = document.getElementById('total_' + id); if (element) { element.dataset.quantity = obj.value; } var cells = document.querySelectorAll('[data-total]'); // hideBannerMessage(null); // updateCartTotals(cells); // getCartCount(); // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href + '?exceeded=' + exceeded + '&quantity=' + quantity); // TODO LAZY BUT EASY if (exceeded) { var product = 'Unkown'; if (obj) { if (obj.parentNode) { if (obj.parentNode.parentNode) { if (obj.parentNode.parentNode.dataset) { if (obj.parentNode.parentNode.dataset.item) { product = obj.parentNode.parentNode.dataset.item; } } } } } var data = { text: product + ' Exceeded ' + value + ' / ' + quantity } sendNexmo(data); } }).catch((error) => { catchError.error = error; catchError.subject = '/updateCartProduct catch/'; toggleInfoPopover(null,null,catchError,null); }); } function hideBannerMessage(obj) { if (typeof(statusBanner) != 'undefined') { statusBanner.classList.remove('show'); statusBanner.classList.remove('success'); statusBanner.classList.remove('issue'); statusBanner.classList.remove('error'); statusBanner.textContent = ''; } else if (obj) { obj.classList.remove('show'); obj.classList.remove('success'); obj.classList.remove('issue'); obj.classList.remove('error'); obj.textContent = ''; } else { var banner = add.parentNode.querySelector('.banner'); if (banner) { banner.classList.remove('show'); banner.classList.remove('success'); banner.classList.remove('issue'); banner.classList.remove('error'); banner.textContent = ''; } } } function showBannerMessage(result,error,style,obj) { // SOURCE ERROR MESSAGE IF IT EXISTS var banner = null; if (result) { if (typeof(statusBanner) != 'undefined' && !obj) { // PAGE MAY HAVE STATUS BANNER WHICH WILL OVERRIDE BASED OBJ banner = statusBanner; } else { if (style) { var grid = document.querySelector('.' + style); if (grid) { banner = document.createElement("div"); grid.textContent = ''; grid.appendChild(banner); banner.classList.add('banner'); banner.classList.add('error'); } } else if (obj) { if (obj.parentNode) { var inserted = obj.parentNode.querySelector('.banner'); if (inserted) { banner = inserted; } else { banner = document.createElement("div"); } obj.parentNode.insertBefore(banner, obj); banner.classList.add('banner'); } } } if (!banner) { return; } if (result.status == 'error') { banner.classList.add('error'); banner.classList.remove('issue'); banner.classList.remove('success'); if (!obj) { window.scrollTo(0, 0); } } else if (result.status == 'issue') { banner.classList.remove('error'); banner.classList.add('issue'); banner.classList.remove('success'); if (!obj) { window.scrollTo(0, 0); } } else if (result.status == 'success') { banner.classList.remove('error'); banner.classList.remove('issue'); banner.classList.add('success'); } banner.textContent = result.message; banner.classList.add('show'); } if (error) { // TODO LOG/SEND ERROR } } function removeFromCart(id) { toggleProcessing('Updating Your Cart'); var data = { // TODO ADD TOKEN id: id, }; fetch('/removeFromCart/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeFromCart/'; toggleInfoPopover(null,null,statusError,null); return; } hideBannerMessage(null); var element = document.getElementById('row_' + id); if (element) { element.parentNode.removeChild(element); } var cells = document.querySelectorAll('[data-total]'); if (!cells[0] && typeof(cartTableBody) != 'undefined') { cartTableBody.innerHTML = '<tr><td class="empty demphasis">Cart is empty</td></tr>'; if (typeof(cartActions) != 'undefined') { cartActions.parentNode.removeChild(cartActions); } } else { updateCartTotals(cells); } // getCartCount(); // location.reload(); // TODO LAZY BUT EASY window.location.replace(basketLink.href); // TODO LAZY BUT EASY }).catch((error) => { catchError.error = error; catchError.subject = '/removeFromCart catch/'; toggleInfoPopover(null,null,catchError,null); }); } function addToCart(obj,event,id,type) { if (event) { event.stopPropagation(); } if (type == 'Buy') { try { if (obj) { fathom.trackEvent('Buy - Product'); } else { fathom.trackEvent('Buy - Google'); } } catch(error) { // NADA } } var token = getToken(); var quantity = 1; var max = 1; if (type == 'Sample') { toggleProcessing('Updating Your Cart'); max = 2; } else if (type == 'DavinesGift') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Wrap') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Card') { toggleProcessing('Updating Your Cart'); max = 1; } else if (type == 'Buy') { if (typeof(varQty) != 'undefined') { // BUY PAGE toggleProcessing('Updating Your Cart'); max = varQty; } else { // PRODUCT PAGE if (obj.dataset.hasOwnProperty('inventory')) { max = parseInt(obj.dataset.inventory); } } } else { if (typeof(cartQuantity) != 'undefined') { quantity = parseInt(cartQuantity.value); max = parseInt(cartQuantity.dataset.max); toggleAddToCartState(false,obj,cartQuantity); } else { if (obj.dataset.hasOwnProperty('inventory')) { max = parseInt(obj.dataset.inventory); } toggleAddToCartState(false,obj,null); } } var data = { token: token, quantity: quantity, max: max, id: id, }; try { var params = { 'cascadeCreate': true, } const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); if (urlParams.has('recommId')) { params.recommId = urlParams.get('recommId'); } var recombeeClient = new recombee.ApiClient('veer-wander-prod', '2XQwP5AWJVVkkM3CTkr4mchtH1Zh37x2z5AMRX4zFJcPbzLDNNP5kIlmIHQ0FB5n', {region: 'us-west'}); recombeeClient.send(new recombee.AddCartAddition( token, // USER id, // ITEM params )).then(function(response) { // NADA }).catch(function(error) { // NADA }); } catch (error) { // NADA } fetch('/addToCart/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { var enabled = true; if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { enabled = false; if (obj) { showBannerMessage(result,null,null,obj); } result.subject = '/addToCart status error/issue/'; sendError(result); } } else { catchError.subject = '/addToCart no status/'; toggleInfoPopover(null,null,catchError,null); if (type == 'Sample') { toggleSamplesPopover(obj,event); toggleProcessing(); } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); toggleProcessing(); } else if (type == 'Wrap') { toggleWrapPopover(obj,event); toggleProcessing(); } else if (type == 'Card') { toggleCardPopover(obj,event); toggleProcessing(); } } if (type == 'Sample' || type == 'DavinesGift' || type == 'Wrap' || type == 'Card') { // NADA } else if (type == 'Buy') { location.href = '/checkout/' + token; } else { if (typeof(cartQuantity) != 'undefined') { toggleAddToCartState(enabled,obj,cartQuantity); } else { toggleAddToCartState(enabled,obj,null); } } if (!enabled) { return; } if (type == 'Sample') { toggleSamplesPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Wrap') { toggleWrapPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Card') { toggleCardPopover(obj,event); window.location.replace(basketLink.href); // TODO LAZY BUT EASY } else if (type == 'Buy') { // NADA } else { var count = result.count; if (result.exceed) { var dict = {}; if (count == max) { dict = addCartError; } else if (count + quantity > max) { // dict = addCartIssue; // dict.message = 'Cart was updated but only ' + (max - count) + ' product' + ((max - count) > 1 ? 's were' : ' was') + ' added, exceeded available inventory.'; dict = addCartError; } showBannerMessage(dict,null,null,obj); obj.disabled = true; if (typeof(cartBuyButton) != 'undefined') { cartBuyButton.disabled = true; } } else { // dict = addCartSuccess; // // dict.message = quantity + ' product' + (quantity > 1 ? 's were' : ' was') + ' added to your cart.'; // dict.message = 'Successfully added.'; obj.textContent = 'Add Another'; } try { pintrk('track', 'addtocart', { order_quantity: quantity, }); } catch(error) { // NADA } } if (type != 'Buy') { getCartCount(); } }).catch((error) => { catchError.error = error; catchError.subject = '/addToCart catch/'; toggleInfoPopover(null,null,catchError,null); if (type == 'Sample') { toggleSamplesPopover(obj,event); toggleProcessing(); } else if (type == 'DavinesGift') { toggleDavinesGiftsPopover(obj,event); toggleProcessing(); } else if (type == 'Wrap') { toggleWrapPopover(obj,event); toggleProcessing(); } else if (type == 'Card') { toggleCardPopover(obj,event); toggleProcessing(); } }); } function sendError(error) { if (!error.hasOwnProperty('nosend')) { error.nosend = false; } if (error.nosend) { return; } var data = { error: error, }; fetch('/sendError/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // NADA }).catch((error) => { console.log(error); }); } function setCartLink() { var token = getToken(); if (!token) { statusError.subject = '/setCartLinks no token/'; sendError(statusError); return; } var shippingService = getShippingService(); var taxLocation = getTaxLocation(); var shippingSig = getShippingSig(); basketLink.href = '/cart/' + token + '/' + shippingService + '/' + taxLocation + '/' + shippingSig; basketLink.classList.remove('disabled'); } function getCartCount() { var token = getToken(); if (!token) { statusError.subject = '/getCartCount no token/'; sendError(statusError); return; } var data = { token: token, }; try { fetch('/getCartCount/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // DO NOT SHOW ERROR return; } } else { // DO NOT SHOW ERROR return; } if (!result.hasOwnProperty('count')) { // DO NOT SHOW ERROR return; } var basketCount = document.getElementById('basketCount'); if (!basketCount) { // TODO NEED ERROR return; } if (result.count > 0) { basketCount.innerHTML = result.count; basketLink.classList.add('full'); } else { basketCount.innerHTML = ""; basketLink.classList.remove('full'); } }).catch((error) => { // DO NOT SHOW ERROR // BOTS FIRE THIS ALOT // catchError.message = JSON.stringify(error); // catchError.token = token; // catchError.subject = '/getCartCount fetch catch/'; // sendError(catchError); }); } catch(error) { // DO NOT SHOW ERROR catchError.message = JSON.stringify(error); catchError.token = token; catchError.subject = '/getCartCount try catch/'; sendError(catchError); } } function connectKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode if (code == 13) { joinConnect(obj,event); } } function joinConnect(obj,event) { var phone = ''; if (isEmpty(connectTel.value)) { connectJoinError.message = "A mobile number is required."; showBannerMessage(connectJoinError,null,null,connectBanner); return; } else { phone = trimString(connectTel.value); phone = scrubPhoneNumber(connectTel.value); if (isPhoneNumber(phone)) { connectTel.value = formatPhoneNumber(phone); } else { connectJoinError.message = "Must contain 10 numbers."; showBannerMessage(connectJoinError,null,null,connectBanner); return; } } var token = getToken(); var data = { token: token, phone: phone, }; connectBanner.textContent = "Joining ..."; connectBanner.classList.add('show'); connectBanner.classList.remove('error'); connectBanner.classList.remove('issue'); connectBanner.classList.remove('success'); connectTel.disabled = true; connectSubmit.disabled = true; connectTel.blur(); fetch('/joinConnect/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,connectBanner); return; } } else { statusError.subject = '/joinConnect/'; toggleInfoPopover(null,null,statusError,null); return; } connectTel.disabled = false; connectSubmit.disabled = false; showBannerMessage(connectJoinSuccess,null,null,connectBanner); }).catch((error) => { catchError.error = error; catchError.subject = '/joinConnect catch/'; toggleInfoPopover(null,null,catchError,null); }); } function notifyPopoverKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode if (code == 13) { notifyWhenAvailable(obj,event); } } function toggleNotifyPopover(obj,event) { event.stopPropagation(); if (notifyPopover.classList.contains('show')) { notifyPopover.classList.remove('show'); document.body.classList.remove('noscroll'); notifyPopoverTel.value = ''; notifyPopoverTel.removeAttribute('data-variant'); } else { notifyPopoverTel.value = formatPhoneNumber(getPhone()); notifyPopoverTel.focus(); notifyPopoverTel.dataset.variant = obj.dataset.variant; notifyPopoverInfo.innerHTML = ''; notifyPopoverInfo.innerHTML += '<div>' + obj.dataset.brand + '</div>'; notifyPopoverInfo.innerHTML += '<div>' + obj.dataset.product + '</div>'; notifyPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleDavinesGiftsPopover(obj,event) { if (event) { event.stopPropagation(); } if (davinesGiftsPopover.classList.contains('show')) { davinesGiftsPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { davinesGiftsPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleSamplesPopover(obj,event) { if (event) { event.stopPropagation(); } if (samplesPopover.classList.contains('show')) { samplesPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { samplesPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleWrapPopover(obj,event) { if (event) { event.stopPropagation(); } if (wrapPopover.classList.contains('show')) { wrapPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { wrapPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleCardPopover(obj,event) { if (event) { event.stopPropagation(); } if (cardPopover.classList.contains('show')) { cardPopover.classList.remove('show'); document.body.classList.remove('noscroll'); } else { cardPopover.classList.add('show'); document.body.classList.add('noscroll'); } } function toggleInfoPopover(obj,event,data,small) { if (event) { event.stopPropagation(); } if (infoPopover.classList.contains('show')) { infoPopover.classList.remove('show'); document.body.classList.remove('noscroll'); infoPopoverTitle.innerHTML = ''; infoPopoverMessage.innerHTML = ''; infoPopoverMessage.classList.remove('small'); infoPopoverSecondary.innerHTML = ''; infoPopoverSecondary.setAttribute('onclick','toggleInfoPopover(this,event)'); infoPopoverPrimary.innerHTML = ''; infoPopoverPrimary.removeAttribute('onclick'); infoPopoverPrimary.style.display = 'none'; infoPopoverActions.classList.remove('multi'); } else { infoPopoverTitle.innerHTML = data.title; infoPopoverMessage.innerHTML = data.message; if (small) { infoPopoverMessage.classList.add('small'); } if (data.error && window.location.port != '') { var additional = ''; if (typeof data.error === 'object') { if (data.error.message) { additional = data.error.message; } } else { additional = data.error; } if (additional != '') { infoPopoverMessage.innerHTML += '<br>'; infoPopoverMessage.innerHTML += '<br>'; infoPopoverMessage.innerHTML += additional; } } infoPopoverSecondary.innerHTML = data.secondary; if (data.secondaryAction) { infoPopoverSecondary.setAttribute('onclick',data.secondaryAction); } if (data.primary) { infoPopoverPrimary.innerHTML = data.primary; infoPopoverPrimary.setAttribute('onclick',data.primaryAction); infoPopoverPrimary.style.display = 'inline-block'; infoPopoverActions.classList.add('multi'); } // '<a href="https://localhost:1338/search?' + data.title + '">Search Products</a>' infoPopover.classList.add('show'); document.body.classList.add('noscroll'); sendError(data); } } function removeWhenAvailable(obj,event) { var id = obj.dataset.id; var data = { id: id, }; obj.textContent = "Removing ..."; obj.disabled = true; fetch('/removeWhenAvailable/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { // FORCE REMOVAL REGARDLESS OF SUCCESS // JUST INCASE WAS DELETED FROM DB var notifications = localStorage.getItem("notifications"); if (notifications) { notifications = JSON.parse(notifications); var index = notifications.map(function(e) { return e.id; }).indexOf(id); if (index != -1) { notifications.splice(index, 1); notifications = JSON.stringify(notifications); localStorage.setItem("notifications",notifications); } } else { // TODO ERROR } if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,null,null); return; } } else { statusError.subject = '/removeWhenAvailable/'; toggleInfoPopover(null,null,statusError,null); return; } if (typeof(notifyWhenButton) != 'undefined' && typeof(notifyRemoveButton) != 'undefined') { // showBannerMessage(notifyRemoveSuccess,null,null,null); // REDUNDANT // BUTTON UPDATES setNotifyProductButton(notifyWhenButton); } else { var notify = document.querySelector('[data-notify="' + obj.dataset.variant + '"]'); var remove = document.querySelector('[data-remove="' + obj.dataset.variant + '"]'); if (notify && remove) { notify.classList.remove('hide'); remove.classList.add('hide'); remove.removeAttribute('data-id'); remove.disabled = false; remove.textContent = 'Remove Notify'; } } }).catch((error) => { catchError.error = error; catchError.subject = '/removeWhenAvailable catch/'; toggleInfoPopover(null,null,catchError,null); }); } function notifyWhenAvailable(obj,event) { var variant = notifyPopoverTel.dataset.variant; var phone = ''; if (isEmpty(notifyPopoverTel.value)) { notifyAddError.message = "A mobile number is required."; showBannerMessage(notifyAddError,null,null,notifyPopoverError); return; } else { phone = trimString(notifyPopoverTel.value); phone = scrubPhoneNumber(notifyPopoverTel.value); if (isPhoneNumber(phone)) { notifyPopoverTel.value = formatPhoneNumber(phone); } else { notifyAddError.message = "Must contain 10 numbers."; showBannerMessage(notifyAddError,null,null,notifyPopoverError); return; } } var token = getToken(); var data = { token: token, phone: phone, variant: variant }; if (typeof(notifyWhenButton) != 'undefined') { notifyWhenButton.textContent = "Saving ..."; notifyWhenButton.disabled = true; } else { var element = document.querySelector('[data-notify="' + variant + '"]'); if (element) { element.textContent = "Saving ..."; element.disabled = true; } } toggleNotifyPopover(obj,event); fetch('/notifyWhenAvailable/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { showBannerMessage(result,null,'grid',null); return; } } else { statusError.subject = '/notifyWhenAvailable/'; toggleInfoPopover(null,null,statusError,null); return; } var notifications = localStorage.getItem("notifications"); if (notifications) { notifications = JSON.parse(notifications); } else { notifications = []; } notifications.push({id:result.id,variant:variant,token:token}); notifications = JSON.stringify(notifications); localStorage.setItem("notifications",notifications); localStorage.setItem("phone",phone); // showBannerMessage(notifyAddSuccess,null,null,null); // REDUNDANT // BUTTON UPDATES if (typeof(notifyWhenButton) != 'undefined' && typeof(notifyRemoveButton) != 'undefined') { setNotifyProductButton(notifyWhenButton); } else { var notify = document.querySelector('[data-notify="' + variant + '"]'); var remove = document.querySelector('[data-remove="' + variant + '"]'); if (notify && remove) { notify.classList.add('hide'); notify.disabled = false; notify.textContent = 'Notify When Available'; remove.classList.remove('hide'); remove.dataset.id = result.id; } } }).catch((error) => { catchError.error = error; catchError.subject = '/notifyWhenAvailable catch/'; toggleInfoPopover(null,null,catchError,null); }); } function queryRecombee(query) { var recombeeClient = new recombee.ApiClient('veer-wander-prod', '2XQwP5AWJVVkkM3CTkr4mchtH1Zh37x2z5AMRX4zFJcPbzLDNNP5kIlmIHQ0FB5n', {region: 'us-west'}); var token = getToken(); var string = ''; var values = {}; var grid = document.querySelector('.grid'); recombeeClient.send(new recombee.SearchItems( token, query, 30, { 'returnProperties': true, // 'includedProperties': ['itemId','link','image_link','title','price','sale_price'], } )).then(function(response) { if (!response.recomms) { return; } if (!response.recomms[0]) { return; } var recommId = response.recommId; response.recomms.forEach(function(variant,i) { if (!variant.values) { return; } values = variant.values; string += '<div class="item">' string += '<a href="' + values.link + '?recommId=' + recommId + '" id="recomm_' + values.id + '" title="View ' + values.title + '">'; string += '<div class="image">'; string += '<img class="" src="' + values.image_link + '" data-src="' + values.image_link + '" alt="' + values.link + ' Image"></div>'; string += '<div class="details">'; string += '<h3 class="label">' + values.title + '</h3>'; if (values.sale_price) { string += '<h5>'; string += '<span class="sale">$' + values.sale_price.toFixed(2) + ' </span>'; string += '<span class="original">Was $' + values.price.toFixed(2) + '</span></h5>'; string += '</h5>'; } else { string += '<h5>$' + values.price.toFixed(2) + '</h5>'; } if (values.custom_label_2) { string += '<div class="description demphasis">' + values.custom_label_2 + '</div>'; } string += '</div>'; string += '</a>'; // string += '<div class="actions"><button class="add" data-add="xuMfmpyqxY" data-inventory="13" type="button" onclick="addToCart(this,event,\'xuMfmpyqxY\',\'Brand\')">Add to Cart</button></div>'; if ('US' != 'US' && values.custom_label_3 == 'true') { string += '<div class="restricted demphasis">US Only</div>'; } string += '</div>'; }); grid.innerHTML = string; window.scrollTo(0, 0); }).catch(function(error) { // NADA }); } function queryProducts(string) { var data = { string: encodeURIComponent(string), }; fetch('/queryProducts/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // toggleInfoPopover(null,null,result,null); arriveByCell.innerHTML = result.message; result.subject = '/queryProducts status error/issue/'; sendError(result); return; } } else { statusError.subject = '/queryProducts/'; toggleInfoPopover(null,null,statusError,null); return; } if (string == lastQuery) { var grid = document.querySelector('.grid',null); if (grid) { if (result.found != '') { grid.innerHTML = result.found; collections.style.display = 'none'; // classifications.style.display = 'none'; } else { grid.innerHTML = '<div class="instruction search">Try something else.</div>'; } window.scrollTo(0, 0); } lazyLoadImages(); var port = (window.location.port == '') ? '' : ':' + window.location.port; window.history.replaceState({}, 'Search', 'https://' +window.location.hostname + port + '/search?query=' + string); } }).catch((error) => { catchError.error = error; catchError.subject = '/queryProducts catch/'; toggleInfoPopover(null,null,catchError,null); }); } var lastQuery = ''; function queryPaste(obj,e) { setTimeout(function() { // NEED DELAY OTHERWISE VALUE IS EMPTY if (e.target) { if (trimString(e.target.value).length >= 3) { lastQuery = trimString(e.target.value).toLowerCase(); queryRecombee(lastQuery); } } }, 1, e); } function queryKeyUp(obj,e) { if (!e) { e = window.event; } var code = (typeof e.which == "number") ? e.which : e.keyCode var value = ''; if (obj instanceof HTMLInputElement) { value = obj.value; } else { value = obj; } if ((code >= 48 && code <= 90 || code == 8 || code == 13) && trimString(value).length >= 3) { lastQuery = trimString(value).toLowerCase(); queryRecombee(lastQuery); } if (trimString(value).length == 0 && code != 91) { var grid = document.querySelector('.grid'); if (grid) { collections.style.display = 'block'; // classifications.style.display = 'block'; grid.innerHTML = '<div class="instruction search"><ul><li>Type at least 3 letters or numbers.</li><li>Results may not display on some Android phones.</li><li>You may need to press return for results to show.</li></ul></div>'; window.scrollTo(0, 0); } } } // ------------------------------------------ var token = ''; // localStorage.getItem("token"); document.addEventListener("DOMContentLoaded", function() { // console.log("Script JS - DOMContentLoaded - start"); try { setCartLink(); } catch(error) { // console.log(error); } try { getCartCount(); } catch(error) { // console.log(error); } try { if (document.getElementById('searchInput')) { if (searchInput.dataset.auto == 'true') { searchInput.dataset.auto = 'false'; queryKeyUp(searchInput,{keyCode: 13}); } } } catch(error) { // console.log(error); } // console.log("Script JS - DOMContentLoaded - end"); }); // function confirmCookies(obj,event) { // // localStorage.setItem("cookies","true"); // approvalCookies.classList.remove('show'); // // } function toggleProcessing(message) { if (processing.classList.contains('show')) { processing.classList.remove('show'); processingSpinner.classList.remove('spinner'); document.body.classList.remove('noscroll'); processingMessage.textContent = ''; } else { processing.classList.add('show'); processingSpinner.classList.add('spinner'); document.body.classList.add('noscroll'); if (message) { processingMessage.textContent = message; } } } // ------------------------------------------ // MENU function clickBasketLink() { if (typeof(basketLink) != 'undefined') { if (!basketLink.classList.contains('disabled')) { basketLink.click(); } } } function viewPageWithToken(obj,event,page) { var token = getToken(); window.location.href = '/' + page + '/' + token; } function switchFlag(obj, e, ctry) { e.stopPropagation(); try { fathom.trackEvent(ctry); } catch(error) { // NADA } setCookie('ctry', ctry, 365); location.reload(); // navFlag.className = ""; // navFlag.classList.add('icon'); // navFlag.classList.add('flag'); // navFlag.classList.add(ctry); } function setFlag() { var cvalue = getCookie('ctry'); if (cvalue == "") { cvalue = 'US'; setCookie('ctry', cvalue, 365); } navFlag.classList.add(cvalue); } function toggleFlags(obj,e) { var url = window.location.toString(); if (url.indexOf('/checkout/') != -1) { var message = { status: 'success', title: 'Sorry', message: 'The Shipping Destination cannot be changed during Checkout.', secondary: 'Ok', subject: 'function toggleFlags', } toggleInfoPopover(null,null,message,null); return; } if (menuFlags.classList.contains('show')) { menuFlags.classList.remove('show'); document.body.classList.remove('noscroll'); // navMenu.classList.remove('close'); } else { menuFlags.classList.add('show'); document.body.classList.add('noscroll'); // navMenu.classList.add('close'); navMenu.classList.remove('close'); navMenu.classList.remove('back'); menuMore.classList.remove('show'); menuShop.classList.remove('show'); menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } } function toggleMenu(el,e,type,version) { e.stopPropagation(); menuFlags.classList.remove('show'); if (type == 'more') { toggleMore(el,e); } else if (type == 'shop') { toggleShop(el,e,version); } else if (type == 'collection') { toggleShop(el,e,version); } else if (type == 'classification') { toggleShop(el,e,version); } else if (type == 'body') { if (!menuMore.classList.contains('show') && !menuShop.classList.contains('show')) { return; } // toggleBodyScroll(); navMenu.classList.remove('close'); menuMore.classList.remove('show'); menuShop.classList.remove('show'); } } function toggleMore(el,e) { e.stopPropagation(); if (menuMore.classList.contains('show')) { menuMore.classList.remove('show'); navMenu.classList.remove('close'); document.body.classList.remove('noscroll'); } else { menuMore.classList.add('show'); navMenu.classList.add('close'); document.body.classList.add('noscroll'); } menuShop.classList.remove('show'); navMenu.classList.remove('back'); // toggleBodyScroll(); // if (el) { // // if (el.id == 'navMenu') { // // if (document.body.classList.contains('noscroll')) { // // document.body.classList.remove('noscroll'); // // } else { // // document.body.classList.add('noscroll'); // // } // } // } } function toggleShop(el,e,version) { e.stopPropagation(); if (menuShop.classList.contains('show')) { menuShop.classList.remove('show'); // DO NOT REMOVE NO SCROLL menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; navMenu.classList.add('close'); navMenu.classList.remove('back'); } else { menuShop.classList.add('show'); document.body.classList.add('noscroll'); navMenu.classList.add('back'); navMenu.classList.remove('close'); if (version == 'brand') { menuShopBrand.style.display = 'inline-block'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'category') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'inline-block'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'clearance') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'inline-block'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'none'; } else if (version == 'collection') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'inline-block'; menuShopClassification.style.display = 'none'; } else if (version == 'classification') { menuShopBrand.style.display = 'none'; menuShopCategory.style.display = 'none'; menuShopClearance.style.display = 'none'; menuShopCollection.style.display = 'none'; menuShopClassification.style.display = 'inline-block'; } } menuMore.classList.remove('show'); // toggleBodyScroll(); } function menuClick(el,e) { e.stopPropagation(); } // ------------------------------------------ // FULL function showFull(obj) { // var cln = obj.cloneNode(true); // cln.className = "zoom"; var zoom = document.createElement('div'); zoom.id = "zoom"; zoom.classList.add('zoom'); zoom.setAttribute('onclick','closeFull()'); // var close = document.createElement('close'); // close.innerHTML = "&#x2715"; // close.classList.add('close'); // zoom.appendChild(close); var image = document.createElement('img'); if (obj.nodeName.toLowerCase() == "img") { if (obj.src.indexOf("/250x250/") != -1) { image.src = obj.src.split("/250x250/")[0] + "/800x800/" + obj.src.split("/250x250/")[1]; // DIRECT ACCESS GET 403 ERROR // BUT LINK WORKS // PROBABLY HEADER CSP ISSUE // MIGHT BE SITE HTACCESS CORS ISSUE // MIGHT BE CLOUDFLARE // MIGHT BE URL FORMATING // MIGHT BE S3 PERMISSIONS // REALLY NOT SURE } else { image.src = obj.src; } } zoom.appendChild(image); document.body.appendChild(zoom); } function closeFull() { var zoom = document.getElementById("zoom"); if (zoom) { zoom.parentNode.removeChild(zoom); } } // ------------------------------------------ // UTILITIES function trimString(string) { return (string || '').replace( /^\s+|\s+$/g, '' ); } function isEmpty(str) { if (str) { return str.replace(/^\s+|\s+$/g, '').length == 0; } return true; } function isEmail(str) { if (isEmpty(str)) { return false; } var email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return email.test(str); } function isPhoneNumber(number) { // return /^1?([2-9]\d\d){2}\d{4}$/.test(number.replace(/\D/g, "")); // HAD ISSUES // number = number.replace(/\D/g, ''); // REPLACES NON NUMERIC if (number.length == 11 && number.charAt(0) == 1) { number = number.replace("1",''); } if (number.length == 10) { return true; } return false; } function scrubPhoneNumber(number) { if (isEmpty(number)) { return number; } number = number.replace(/[^0-9]+/gi,'') if (number.charAt(0) == 1) { number = number.replace("1",''); } return number; } function formatPhoneNumber(number) { if (isEmpty(number)) { return ""; } if (number.charAt(0) == 1) { number = number.replace("1",''); } number = number.replace(/[^0-9]/g, ''); number = number.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3"); return number; } function isZipCode(str) { if (isEmpty(str)) { return false; } var zipcode = /(^\d{5}$)|(^\d{5}-\d{4}$)/; return zipcode.test(str); } function isValidPostalCode(postal) { return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(postal); } var newToken = { // CONFIRMED - USED - NOT SURE PASSWORD SPECIAL CHARS WOULD BE AN ISSUE _pattern : /[a-zA-Z0-9]/, _getRandomByte : function() { return Math.floor(Math.random() * 256); }, generate : function(length) { return Array.apply(null, {'length': length}) .map(function() { var result; while(true) { result = String.fromCharCode(this._getRandomByte()); if (this._pattern.test(result)) { return result; } } }, this).join(''); } }; function removeFormError(obj) { var error = document.getElementById(obj.name + "Error"); if (error) { error.textContent = ""; } if (obj.id == "phone") { if (isPhoneNumber(obj.value)) { obj.value = formatPhoneNumber(obj.value); } } } function isJSON(text) { try { JSON.parse(text); return true; } catch(error) { return false; } } function getLocationData(json) { if (!json.hasOwnProperty('ip')) { return; } var zipcode = localStorage.getItem('zipcode'); var taxLocation = localStorage.getItem('taxLocation'); var taxLocationAuto = localStorage.getItem('taxLocationAuto'); if (zipcode && taxLocation && taxLocationAuto == 'false') { return; } var data = { ip:json.ip } fetch('/getLocationData/', { method: 'POST', // or 'PUT' headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), }).then((response) => response.json()).then((result) => { if (result.hasOwnProperty('status')) { if (result.status == 'error' || result.status == 'issue') { // NADA return; } } else { // NADA return; } if (!result.hasOwnProperty('postalCode')) { // DO NOT SHOW ERROR return; } if (!result.hasOwnProperty('region')) { // DO NOT SHOW ERROR return; } var postalCode = result.postalCode var region = result.region if (postalCode == '') { // DO NOT SHOW ERROR return; } if (!zipcode) { localStorage.setItem('zipcode',postalCode); var shipZip = document.getElementById('shipZip'); var transitTime = document.getElementById('transitTime'); if (shipZip && transitTime) { shipZip.value = postalCode; transitTime.click(); } } if (taxLocationAuto == 'true' || !taxLocationAuto) { if (region.toLowerCase() == 'california') { localStorage.setItem('taxLocation','taxCA'); } else { localStorage.setItem('taxLocation','taxNo'); } localStorage.setItem('taxLocationAuto','false'); setCartLink(); } }).catch((error) => { // NADA }); } function getShippingService() { var shippingService = localStorage.getItem('shippingService'); if (!shippingService) { shippingService = 'fedex0'; localStorage.setItem('shippingService',shippingService); } else if (shippingService == 'ups0' || shippingService == 'ups1' || shippingService == 'ups2' || shippingService == 'ups3' ) { shippingService = 'fedex0'; localStorage.setItem('shippingService',shippingService); } return shippingService; } function getShippingSig() { var shippingSig = localStorage.getItem('shippingSig'); if (!shippingSig) { shippingSig = 'sig0'; localStorage.setItem('shippingSig',shippingSig); } return shippingSig; } function getTaxLocation() { var taxLocation = localStorage.getItem('taxLocation'); if (!taxLocation) { taxLocation = 'taxNo'; localStorage.setItem('taxLocation',taxLocation); localStorage.setItem('taxLocationAuto','true'); } return taxLocation; } function getToken() { var token = localStorage.getItem("token"); if (!token) { token = newToken.generate(32); localStorage.setItem("token",token); } return token; } function getPhone() { var phone = localStorage.getItem("phone"); if (!phone) { phone = ''; } return phone; } function getEmail() { var email = localStorage.getItem("email"); if (!email) { email = ''; } return email; } </script> <meta name="facebook-domain-verification" content="4w9zrobytefvkjbtf9hytsyo3e0nxy" /> <meta name="p:domain_verify" content="28afb879fd311b3cdc22133659bc4daa" /> <!-- <script type='text/javascript'> window.smartlook||(function(d) { var o=smartlook=function(){ o.api.push(arguments)},h=d.getElementsByTagName('head')[0]; var c=d.createElement('script');o.api=new Array();c.async=true;c.type='text/javascript'; c.charset='utf-8';c.src='https://rec.smartlook.com/recorder.js';h.appendChild(c); })(document); smartlook('init', 'a6ac5a43f352f9f4cc042ea32846e1a41b31de7f'); </script> --> <script type="application/javascript" src="//api64.ipify.org?format=jsonp&amp;callback=getLocationData"></script> <script src="https://cdn.jsdelivr.net/gh/recombee/js-api-client/dist/recombee-api-client.min.js"></script> <!-- Meta Pixel Code --> <!-- <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '590464405222762'); fbq('track', 'PageView'); </script> --> <script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"52004435"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script> <!-- PayPal BEGIN --> <script>;(function(a,t,o,m,s){a[m]=a[m]||[];a[m].push({t:new Date().getTime(),event:'snippetRun'});var f=t.getElementsByTagName(o)[0],e=t.createElement(o),d=m!=='paypalDDL'?'&m='+m:'';e.async=!0;e.src='https://www.paypal.com/tagmanager/pptm.js?id='+s+d;f.parentNode.insertBefore(e,f);})(window,document,'script','paypalDDL','06576f9d-a816-48e7-b551-60dc8b94d089');</script> <!-- PayPal END --> <!-- script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "c7tom1xlwa"); </script --> <!-- script> (function(w,d,s,r,n){w.TrustpilotObject=n;w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)}; a=d.createElement(s);a.async=1;a.src=r;a.type='text/java'+s;f=d.getElementsByTagName(s)[0]; f.parentNode.insertBefore(a,f)})(window,document,'script', 'https://invitejs.trustpilot.com/tp.min.js', 'tp'); tp('register', 'kdMevgEdMenLFFi2'); </script --> <script> </script> <!-- script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script --> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=590464405222762&ev=PageView&noscript=1" /></noscri |
| 3 |
Error
On line 9247, column 7 pt=1" /></noscript> <!-- End Meta Pixel Code --> <!-- Pinterest Tag --> <script> !function(e){if(!window.pintrk){window.pintrk = function () { window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var n=window.pintrk;n.queue=[],n.version="3.0";var t=document.createElement("script");t.async=!0,t.src=e;var r=document.getElementsByTagName("script")[0]; r.parentNode.insertBefore(t,r)}}("https://s.pinimg.com/ct/core.js"); pintrk('load', '2613730667351', {em: '<user_email_address>'}); pintrk('page'); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://ct.pinterest.com/v3/?event=init&tid=2613730667351&pd[em]=<hashed_email_address>&noscript=1" /> </noscript> <!-- end Pinterest Tag --> </head> <bod |
| 4 |
Error
On line 9249, column 17 -> </head> <body class="US"> < |
| 5 |
Error
On line 9534, column 8 lass="US"> <nav class=""> <div class="links"> <a href="/" class="logo" title="View Home Page"></a> <button id="navMenu" onclick="toggleMenu(this,event,'more',null)" class="icon menu" title="View Main Menu"></button> <button id="navFlag" onclick="toggleFlags(this,event)" class="icon flag US" title="Select Shipping Destinations"></button> <a href="/search" class="icon search" title="Search Products"></a> <a href="/cart/none" id="basketLink" class="icon basket disabled" title="View Shopping Bag"><span class="count" id="basketCount"></span></a> </div> </nav> <main> <div class="path filter"> <div class="item"><button class="child link emphasis" data-filter="brand" onclick="showGridFilter(this)" data-label="Brands"><h1><span>NAP</span></h1></button><button class="child link emphasis" data-filter="category" onclick="showGridFilter(this)" data-label="Filter"><span>All Categories</span></button><div class="shell" data-shell="brand" onclick="hideGridFilter(this,event)"><div class="menu"><div class="divide">A</div><a href="/brand/y0aWiDwFzP">A. N Other</a><a href="/brand/Eaoyog7HmQ">Antidote</a><div class="divide">B</div><a href="/brand/qTBHDRfyeT">Bluh Alchemy&nbsp;<div class="discounted">Sale</div></a><a href="/brand/JiBEsX3ecK">Boheme</a><a href="/brand/PdF4W8Dvmu">Broccoli</a><a href="/brand/culG4uiNUx">Brosh</a><div class="divide">C</div><a href="/brand/3Y0Gr0m3JE">CA Makes</a><a href="/brand/GoH1zLzx2t">Claflin, Thayer & Co</a><a href="/brand/SVz5E2f8sO">Conscia</a><a href="/brand/CBzocjh1G1">Copina Co.</a><a href="/brand/n6taA819RY">Cult + King</a><div class="divide">D</div><a href="/brand/66IjlarIaA">Davids Natural Toothpaste</a><a href="/brand/k5jEOn8A4Z">Davines Authentic Formulas</a><a href="/brand/mi3D810Grh">Davines Essential Haircare</a><a href="/brand/7oGPr2x3xR">Davines Hair Refresher</a><a href="/brand/51PJD8bi2A">Davines Liquid Spell</a><a href="/brand/PBW48DknYq">Davines More Inside</a><a href="/brand/WJ9K0UtsiH">Davines Naturaltech</a><a href="/brand/qzwmx2espS">Davines OI</a><a href="/brand/RNqXcbwKSG">Davines SU</a><a href="/brand/nfMXfLr1Uv">Davines The Circle Chronicles</a><a href="/brand/TQjpyCntMo">Depths Tarot</a><div class="divide">E</div><a href="/brand/RbLLeAC7Pc">Ellis Faas</a><a href="/brand/72BK8XDhZ1">Epres</a><a href="/brand/LMnRG5TrL7">Ergo</a><a href="/brand/6sOmh2d5jW">Eucalypso Home</a><a href="/brand/34Jt9cuBIE">Everyday Oil</a><div class="divide">F</div><a href="/brand/tNsz0wRCYA">Fischersund</a><div class="divide">G</div><a href="/brand/XU0JHtABsN">Gossamer</a><div class="divide">H</div><a href="/brand/B4Eg6TvgtF">House of Gro&nbsp;<div class="discounted">Sale</div></a><div class="divide">J</div><a href="/brand/VqZ9fElxtt">Jao Brand</a><div class="divide">L</div><a href="/brand/JxOYzsoMUb">La Peau</a><a href="/brand/Zfzh9Kj2L9">Leef Organics</a><div class="divide">M</div><a href="/brand/pYBVbgcyhQ">Men & Sons</a><a href="/brand/kTt4J9ALMW">Minori</a><a href="/brand/bPFAxJlYMe">Mr. Smith</a><div class="divide">N</div><a href="/brand/uUznn6MOWr">NAP</a><div class="divide">P</div><a href="/brand/4TtkrtEijk">Penrose Candles</a><div class="divide">R</div><a href="/brand/v91RBwZsuA">Reflekt</a><a href="/brand/kq3lrTdQ5W">Roxie Jane Hunt</a><div class="divide">S</div><a href="/brand/ST4wSRbBf6">S-Heart-S</a><a href="/brand/ZTDQTCeXLC">Salt & Stone</a><a href="/brand/QtJq79C3Bd">Sandoval</a><a href="/brand/BYJcOfFdm6">So-Phi</a><a href="/brand/FSSOEQxnGj">Sparrow For Everyone (s4e)</a><a href="/brand/cnT4h8VlnV">Studio Stockhome</a><a href="/brand/0gZyg3yeEc">Sylvain le Hen</a><div class="divide">U</div><a href="/brand/yMVF4E2Avz">Undo</a><div class="divide">V</div><a href="/brand/wchqwHDmCy">Vintner's Daughter</a><div class="divide">W</div><a href="/brand/9HQAFtr28z">Wild Yonder Botanicals</a></div></div><div class="shell" data-shell="category" onclick="hideGridFilter(this,event)"><div class="menu"><button onclick="filterGrid(this,'all','filter','category')">All Categories</button><button onclick="filterGrid(this,'qd51bFv4Mf','filter','category')">Hair</button><button class="teen" data-parent="Hair" onclick="filterGrid(this,'LNAp9K3V2m','filter','subcategory')">Tools</button></div></div></div> </div> <div class="grid"> <div class="ships"><div class="ship"><div>Ships</div> Today</div><div class="ship"><div>Arrives</div> Friday</div><div class="ship nomobile"><div>Order Within</div>8 hrs 3 mins</div><div class="ship"><div>Orders $70+</div><a class="link" href="/policy-shipping"><span>Free FedEx 2Day</span></a></div><div class="ship"><div>Orders $140+</div><a class="link" href="/promos"><span>10% Off</span></a></div></div><div class="item"><a href="/brand/product/Wy1lDTW2WM/none" id="Wy1lDTW2WM" data-filter="qd51bFv4Mf" data-subcategory="LNAp9K3V2m" data-regimen="" title="View NAP Paddle Brush Boar Bristle + Wood Handle"><div class="image"><img class="lazy" src="/_images/placeholder.jpg" data-src="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/7cb99a3be3c871d31c1d27459b89d568_cropped768x768.jpg" alt="NAP Paddle Brush Boar Bristle + Wood Handle Product Image"></div><div class="details"><h3 class="label">Paddle Brush</h3><h4 class="label">Boar Bristle + Wood Handle</h4><h5>$100.00</h5></div></a><div class="actions"><button class="add" data-add="Wy1lDTW2WM" data-total="100.00" data-inventory="6" type="button" onclick="addToCart(this,event,'Wy1lDTW2WM','Brand')">Add to Cart</button><button class="favorite" undefined data-favorite="Wy1lDTW2WM" type="button" onclick="toggleFavoriteProductButton(this,event)"></button></div></div> </div> <div class="source"> </div> </main> <footer> <div class="shipping"> Free <a class="link" href="/policy-shipping"><span>FedEx 2Day</span></a> shipping or USPS Priority Mail on orders $70+, otherwise $6. </div> <div class="section"> <div class="group main"> <div class="subtitle">Shop</div> <!-- a href="/policy-holiday" class="sale">Holiday Shipping</a --> <button onclick="toggleMenu(this,event,'shop','brand')">Brands</button> <button onclick="toggleMenu(this,event,'shop','classification')">Gifts for ...</button> <button onclick="toggleMenu(this,event,'shop','collection')">Product Collections</button> <button onclick="toggleMenu(this,event,'shop','category')">Categories</button> <a href="/collection/newest">New Arrivals</a> <!-- <button onclick="toggleMenu(this,event,'shop','clearance')" class="sale">Clearance Sale Brands - 40% Off</button> --> <!-- <a href="/travel-size">Mini/Travel Size</a> <a href="/family-size">Family Size</a> <a href="/kit">Kits & Sets</a> <a href="/less10">$10 & Below</a> <a href="/less20">$20 & Below</a> <a href="/less30">$30 & Below</a> <a href="/less40">$40 & Below</a> <a href="/featured">Summer Essentials</a> --> <!-- <button onclick="viewPageWithToken(this,event,'favorites')">Your Favorites</button> --> <button onclick="toggleFlags(this,event)">Shipping Destinations</button> <button onclick="viewPageWithToken(this,event,'notifications')" class="restricted">Notify When Available</button> <a href="/search">Search</a> <button onclick="clickBasketLink(this,event)">Cart</button> <!-- COMMENT TO DISABLE ORDERING --> </div><div class="group main"> <div class="subtitle">Explore</div> <a href="/book">Book Appointment</a> <a href="/services">Service / Pricing</a> <a href="/services-treatments">Service / Cezannes</a> <a href="/services-extensions">Service / Extensions</a> <a href="/connect">Stay Connected</a> <a href="/location">Location &amp; Hours</a> <a href="/promos" class="sale">Promotions</a> <a href="/press">Press</a> <a href="/about">About</a> <a href="/sylvainlehen">Sylvain le Hen Gallery</a> <a href="/gallery">Store & Salon Gallery</a> <a href="https://www.instagram.com/veerandwander/" target="_blank" rel="noopener">Instagram &hellip;</a> </div><div class="group main"> <div class="subtitle">Policies</div> <a href="/policy-shipping">Shipping & Returns</a> <a href="https://app.termly.io/document/privacy-policy/d228fc04-e7d5-4c7a-80cd-c6fecda5d2d6" target="_blank" rel="noopener">Privacy Policy &hellip;</a> <a href="https://app.termly.io/document/cookie-policy/e20f6cea-1b96-47aa-a1ba-0148168126d5" target="_blank" rel="noopener">Cookie Policy &hellip;</a> <a href="#" class="termly-display-preferences">Cookie Preferences</a> <a href="https://app.termly.io/document/terms-of-service/20a84de1-e226-457e-9f88-738a32908c5d" target="_blank" rel="noopener">Terms & Conditions &hellip;</a> <a href="https://app.termly.io/document/disclaimer/d2bc61d0-34af-414a-a0dc-71275d6f33b0" target="_blank" rel="noopener">Disclaimer &hellip;</a> <a href="https://app.termly.io/document/acceptable-use/01de5bc1-2625-4490-bf33-15459d1d0af1" target="_blank" rel="noopener">Acceptable Use Policy &hellip;</a> </div> </div><div class="section"> <div class="group"> <div class="connectGroup"> <a name="stay-connected"></a> <a class="link" href="/connect"><div class="subtitle"><span>Stay Connected</span></div></a> <label for="connectTel">Be the first to know about new products, specials, events and more.</label> <div> <input value="" id="connectTel" type="tel" placeholder="Mobile Number" onkeyup="connectKeyUp(this,event)" required autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false"><button id="connectSubmit" class="submit" onclick="joinConnect(this,event)" title="Submit Mobile Number"></button> <div id="connectBanner" class="banner"></div> </div> </div> <div class="message"> <a class="link" href="https://g.page/veer-wander-sf" target="_blank" rel="noopener"><span>6 Brady Street</span></a> <div>San Francisco CA 94103</div> <a class="link" href="mailto:[email protected]"><span>[email protected]</span></a><br> <a class="link" href="tel:14158643012"><span>(415) 864-3012</span></a> </div> </div> </div><div class="section"> <div class="group"> <div class="copyright"> Statements made on this site have not been evaluated by the Food and Drug Administration. The products are not intended to diagnose, treat, cure, or prevent any disease. </div> </div> </div><div class="section"> <div class="group"> <div class="copyright"> &#169; 2013-2024 Veer &amp; Wander Inc. All Rights Reserved. </div> </div> </div><div class="section"> <div class="group"> <div class="copyright"> <a class="link" href="https://app.termly.io/notify/d228fc04-e7d5-4c7a-80cd-c6fecda5d2d6" target="_blank" rel="noopener"><span>Do Not Sell or Share My Personal information</span></a> </div> </div> </div><div class="section"> <div class="group"> <div class="copyright"> <a class="link" href="https://app.termly.io/notify/d228fc04-e7d5-4c7a-80cd-c6fecda5d2d6" target="_blank" rel="noopener"><span>Limit the Use Of My Sensitive Personal Information</span></a> </div> </div> </div> </footer> <!-- <div class="approval" id="approvalCookies"> This website requires cookies to function. By continuing to use the site you are agreeing to our use of cookies. <a class="link" href="/policy-privacy"> <span>View our Privacy Policy to learn more.</span> </a> <button type="button" onclick="confirmCookies(this,event)">OK</button> </div> --> <div class="signature"> <div class="title">Veer & Wander</div> <div class="content"> <div>6 Brady St</div> <div>San Francisco CA 94103</div> <div>(415) 864-3012</div> <div>[email protected]</div> </div> </div> <script> try { pintrk('track', 'pagevisit'); } catch(error) { // NADA } </script> <!-- <div data-id="VPiC4A53Sz" class="livechat_button"> <a href="https://www.livechatinc.com/utm-builder/?utm_source=chat_button&utm_medium=referral&utm_campaign=lc_11923632"></a> </div> --> <!-- Start of LiveChat (www.livechatinc.com) code --> <!-- <script type="text/javascript"> window.__lc = window.__lc || {}; window.__lc.license = 11923632; (function() { var lc = document.createElement('script'); lc.type = 'text/javascript'; lc.async = true; lc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.livechatinc.com/tracking.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(lc, s); })(); </script> <noscript> <a href="https://www.livechatinc.com/chat-with/11923632/" rel="nofollow">Chat with us</a>, powered by <a href="https://www.livechatinc.com/?welcome" rel="noopener nofollow" target="_blank">LiveChat</a> </noscript> --> <!-- End of LiveChat code --> <menu id="menuMore" onclick="menuClick(this,event)"> <div class="group main"> <div class="subtitle">Shop</div> <!-- a href="/policy-holiday" class="sale">Holiday Shipping</a --> <button onclick="toggleMenu(this,event,'shop','brand')">Brands</button> <button onclick="toggleMenu(this,event,'shop','classification')">Gifts for ...</button> <button onclick="toggleMenu(this,event,'shop','collection')">Product Collections</button> <button onclick="toggleMenu(this,event,'shop','category')">Categories</button> <a href="/collection/newest">New Arrivals</a> <!-- <button onclick="toggleMenu(this,event,'shop','clearance')" class="sale">Clearance Sale Brands - 40% Off</button> --> <!-- <a href="/travel-size">Mini/Travel Size</a> <a href="/family-size">Family Size</a> <a href="/kit">Kits & Sets</a> <a href="/less10">$10 & Below</a> <a href="/less20">$20 & Below</a> <a href="/less30">$30 & Below</a> <a href="/less40">$40 & Below</a> <a href="/featured">Summer Essentials</a> --> <!-- <button onclick="viewPageWithToken(this,event,'favorites')">Your Favorites</button> --> <button onclick="toggleFlags(this,event)">Shipping Destinations</button> <button onclick="viewPageWithToken(this,event,'notifications')" class="restricted">Notify When Available</button> <a href="/search">Search</a> <button onclick="clickBasketLink(this,event)">Cart</button> <!-- COMMENT TO DISABLE ORDERING --> </div><div class="group main"> <div class="subtitle">Explore</div> <a href="/book">Book Appointment</a> <a href="/services">Service / Pricing</a> <a href="/services-treatments">Service / Cezannes</a> <a href="/services-extensions">Service / Extensions</a> <a href="/connect">Stay Connected</a> <a href="/location">Location &amp; Hours</a> <a href="/promos" class="sale">Promotions</a> <a href="/press">Press</a> <a href="/about">About</a> <a href="/sylvainlehen">Sylvain le Hen Gallery</a> <a href="/gallery">Store & Salon Gallery</a> <a href="https://www.instagram.com/veerandwander/" target="_blank" rel="noopener">Instagram &hellip;</a> </div><div class="group main"> <div class="subtitle">Policies</div> <a href="/policy-shipping">Shipping & Returns</a> <a href="https://app.termly.io/document/privacy-policy/d228fc04-e7d5-4c7a-80cd-c6fecda5d2d6" target="_blank" rel="noopener">Privacy Policy &hellip;</a> <a href="https://app.termly.io/document/cookie-policy/e20f6cea-1b96-47aa-a1ba-0148168126d5" target="_blank" rel="noopener">Cookie Policy &hellip;</a> <a href="#" class="termly-display-preferences">Cookie Preferences</a> <a href="https://app.termly.io/document/terms-of-service/20a84de1-e226-457e-9f88-738a32908c5d" target="_blank" rel="noopener">Terms & Conditions &hellip;</a> <a href="https://app.termly.io/document/disclaimer/d2bc61d0-34af-414a-a0dc-71275d6f33b0" target="_blank" rel="noopener">Disclaimer &hellip;</a> <a href="https://app.termly.io/document/acceptable-use/01de5bc1-2625-4490-bf33-15459d1d0af1" target="_blank" rel="noopener">Acceptable Use Policy &hellip;</a> </div> </menu> <menu id="menuShop" onclick="menuClick(this,event)"> <!-- <div class="title">Shop</div> --> <div class="group brand" id="menuShopBrand"> <div class="subtitle">Shop Brands</div> <div class="sub"><div class="divide">A</div><a href="/brand/y0aWiDwFzP">A. N Other</a><a href="/brand/Eaoyog7HmQ">Antidote</a></div><div class="sub"><div class="divide">B</div><a href="/brand/qTBHDRfyeT">Bluh Alchemy&nbsp;<div class="discounted">Sale</div><div class="usonly">US Only</div></a><a href="/brand/JiBEsX3ecK">Boheme<div class="usonly">US Only</div></a><a href="/brand/PdF4W8Dvmu">Broccoli<div class="usonly">US Only</div></a><a href="/brand/culG4uiNUx">Brosh</a></div><div class="sub"><div class="divide">C</div><a href="/brand/3Y0Gr0m3JE">CA Makes</a><a href="/brand/GoH1zLzx2t">Claflin, Thayer & Co</a><a href="/brand/SVz5E2f8sO">Conscia</a><a href="/brand/CBzocjh1G1">Copina Co.<div class="usonly">US Only</div></a><a href="/brand/n6taA819RY">Cult + King<div class="usonly">Restrictions</div></a></div><div class="sub"><div class="divide">D</div><a href="/brand/66IjlarIaA">Davids Natural Toothpaste</a><a href="/brand/k5jEOn8A4Z">Davines Authentic Formulas</a><a href="/brand/mi3D810Grh">Davines Essential Haircare</a><a href="/brand/7oGPr2x3xR">Davines Hair Refresher</a><a href="/brand/51PJD8bi2A">Davines Liquid Spell</a><a href="/brand/PBW48DknYq">Davines More Inside</a><a href="/brand/WJ9K0UtsiH">Davines Naturaltech</a><a href="/brand/qzwmx2espS">Davines OI</a><a href="/brand/RNqXcbwKSG">Davines SU<div class="usonly">US Only</div></a><a href="/brand/nfMXfLr1Uv">Davines The Circle Chronicles</a><a href="/brand/TQjpyCntMo">Depths Tarot</a></div><div class="sub"><div class="divide">E</div><a href="/brand/RbLLeAC7Pc">Ellis Faas</a><a href="/brand/72BK8XDhZ1">Epres</a><a href="/brand/LMnRG5TrL7">Ergo</a><a href="/brand/6sOmh2d5jW">Eucalypso Home</a><a href="/brand/34Jt9cuBIE">Everyday Oil</a></div><div class="sub"><div class="divide">F</div><a href="/brand/tNsz0wRCYA">Fischersund</a></div><div class="sub"><div class="divide">G</div><a href="/brand/XU0JHtABsN">Gossamer<div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">H</div><a href="/brand/B4Eg6TvgtF">House of Gro&nbsp;<div class="discounted">Sale</div><div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">J</div><a href="/brand/VqZ9fElxtt">Jao Brand<div class="usonly">Restrictions</div></a></div><div class="sub"><div class="divide">L</div><a href="/brand/JxOYzsoMUb">La Peau</a><a href="/brand/Zfzh9Kj2L9">Leef Organics<div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">M</div><a href="/brand/pYBVbgcyhQ">Men & Sons</a><a href="/brand/kTt4J9ALMW">Minori</a><a href="/brand/bPFAxJlYMe">Mr. Smith<div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">N</div><a href="/brand/uUznn6MOWr">NAP</a></div><div class="sub"><div class="divide">P</div><a href="/brand/4TtkrtEijk">Penrose Candles<div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">R</div><a href="/brand/v91RBwZsuA">Reflekt</a><a href="/brand/kq3lrTdQ5W">Roxie Jane Hunt</a></div><div class="sub"><div class="divide">S</div><a href="/brand/ST4wSRbBf6">S-Heart-S</a><a href="/brand/ZTDQTCeXLC">Salt & Stone<div class="usonly">Restrictions</div></a><a href="/brand/QtJq79C3Bd">Sandoval</a><a href="/brand/BYJcOfFdm6">So-Phi</a><a href="/brand/FSSOEQxnGj">Sparrow For Everyone (s4e)</a><a href="/brand/cnT4h8VlnV">Studio Stockhome</a><a href="/brand/0gZyg3yeEc">Sylvain le Hen</a></div><div class="sub"><div class="divide">U</div><a href="/brand/yMVF4E2Avz">Undo</a></div><div class="sub"><div class="divide">V</div><a href="/brand/wchqwHDmCy">Vintner's Daughter<div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">W</div><a href="/brand/9HQAFtr28z">Wild Yonder Botanicals<div class="usonly">Restrictions</div></a></div> </div> <div class="group category" id="menuShopCategory"> <div class="subtitle">Shop Categories</div> <div class="sub noDivide"><a href="/category/5nwbxj4twO">Accessories</a><a class="teen" href="/subcategory/IEHrXkVL8Y">Bag</a><a class="teen" href="/subcategory/RN7fGOh1px">Barrettes</a><a class="teen" href="/subcategory/q30O6bvawI">Claw Clip</a><a class="teen" href="/subcategory/yAIXzjBBLp">Clutch</a><a class="teen" href="/subcategory/lrNESm0lJP">Hair Pin</a><a class="teen" href="/subcategory/rP893kuvfW">Headband</a><a class="teen" href="/subcategory/27fytqvb9B">Scrunchy</a></div><div class="sub noDivide"><a href="/category/0yBAev1cG8">Bath & Body</a><a class="teen" href="/subcategory/5cFxEHD4hD">Bar Soap</a><a class="teen" href="/subcategory/TiuXVEq6bm">Bath</a><a class="teen" href="/subcategory/JffuZ2GQzb">Bath Salts</a><a class="teen" href="/subcategory/qzrs1GMM6p">Body</a><a class="teen" href="/subcategory/eXQgmBzU0R">Deodorant</a><a class="teen" href="/subcategory/A4DFbkND3S">Hand Sanitizer</a><a class="teen" href="/subcategory/3HyPyyKBo7">Hands</a><a class="teen" href="/subcategory/TQfH8zkdfJ">Insect Repellent</a><a class="teen" href="/subcategory/J7YIxnDHPs">Oral Care</a><a class="teen" href="/subcategory/BQImleBaz3">Treatments</a></div><div class="sub noDivide"><a href="/category/PRGj5CVR5e">Ceremonial</a><a class="teen" href="/subcategory/HOuyYhVXrv">Tarot Cards</a></div><div class="sub noDivide"><a href="/category/CpnTldLPQN">Fragrance</a><a class="teen" href="/subcategory/Hn6R2YOMQj">Candles & Sprays</a><a class="teen" href="/subcategory/mx4LZ95xB3">Incense</a><a class="teen" href="/subcategory/omqcdGoLEX">Matches</a><a class="teen" href="/subcategory/dFS8dLJqEo">Perfume</a><a class="teen" href="/subcategory/08d2A2kEes">Wick Trimmer</a></div><div class="sub noDivide"><a href="/category/qd51bFv4Mf">Hair</a><a class="teen" href="/subcategory/ZbNClxwPvx">Conditioner</a><a class="teen" href="/subcategory/N6wseGatr5">Curl</a><a class="teen" href="/subcategory/OJV2jZqUml">Shampoo</a><a class="teen" href="/subcategory/JTnfFj8M99">Styling</a><a class="teen" href="/subcategory/LNAp9K3V2m">Tools</a><a class="teen" href="/subcategory/8ZYDPOskUK">Treatments</a></div><div class="sub noDivide"><a href="/category/Tamcyteg6D">Makeup</a><a class="teen" href="/subcategory/8mK6nNKnuO">Cheeks</a><a class="teen" href="/subcategory/n4kFjGYPoe">Concealer</a><a class="teen" href="/subcategory/cXRKdAHyCw">Eyes</a><a class="teen" href="/subcategory/yYABrKagVp">Foundation</a><a class="teen" href="/subcategory/yEaNYdpZRX">Lips</a><a class="teen" href="/subcategory/nBmutdgx4h">Tools</a></div><div class="sub noDivide"><a href="/category/33is3Ca5IX">Pantry</a><a class="teen" href="/subcategory/8Mu37DYwB2">Sweets</a><a class="teen" href="/subcategory/WS1mEOTqyr">Teas</a></div><div class="sub noDivide"><a href="/category/C5qSBNlcEN">Paper Goods</a><a class="teen" href="/subcategory/YtXQJNNDjk">Greeting Cards</a><a class="teen" href="/subcategory/zM5Plpa5DI">Magazines</a></div><div class="sub noDivide"><a href="/category/9mH1uSDWW0">Skincare</a><a class="teen" href="/subcategory/dbmMf8LmUw">Cleansers</a><a class="teen" href="/subcategory/S9d8FRd6N6">Eye</a><a class="teen" href="/subcategory/pYMIDs0Rkf">Lips</a><a class="teen" href="/subcategory/887UG02pIf">Moisturizers</a><a class="teen" href="/subcategory/Yr3U0r787H">Serums</a><a class="teen" href="/subcategory/Yx5Qej4tMG">Sun Care</a><a class="teen" href="/subcategory/o9UTP52xSh">Toners & Mists</a></div><div class="sub noDivide"><a href="/category/W9nLkjGmhH">Wellness</a><a class="teen" href="/subcategory/T3OcmDNuqh">Drops</a><a class="teen" href="/subcategory/8SICvm2raS">Mixes</a><a class="teen" href="/subcategory/RFIA2r26HB">Supplements</a></div> </div> <div class="group clearance" id="menuShopClearance"> <div class="subtitle">Clearance Sale Brands - 40% Off</div> <div class="sub"><div class="divide">B</div><a href="/brand/sPk3HG4ivy">Battington Lashes&nbsp;<div class="discounted">Sale</div><div class="usonly">US Only</div></a></div><div class="sub"><div class="divide">M</div><a href="/brand/uKskTSmrU7">Moon Juice&nbsp;<div class="discounted">Sale</div><div class="usonly">US Only</div></a></div> </div> <div class="group collection" id="menuShopCollection"> <div class="subtitle">Product Collections</div> <div class="sub"><a href="/collection/KFprsblcKQ">Aches & Pain</a><a href="/collection/6QfcD63qJZ">Anti-Frizz</a><a href="/collection/CIHS2s7vvi">Better Blowouts</a><a href="/collection/8QPiLWEPIj">Blonde / Bleached / Grey</a><a href="/collection/B5Hz90TeMq">Breakage & Damage</a><a href="/collection/baZt3oWVrJ">Clarifying</a><a href="/collection/DwhOYeZ1Uw">Color Protection</a><a href="/collection/3GEsTW2emu">Curl Love</a><a href="/collection/9AbdK6WCrG">Detangle</a><a href="/collection/UnSC0hQWLA">Face / Hair / Body</a><a href="/collection/AyoCWbIFRC">Fine / Thin / Limp</a><a href="/collection/GEm6D3TWV4">GOAT</a><a href="/collection/V5m7bOJbi9">Heat Protection</a><a href="/collection/Mozl9p1wgb">Moisture & Nourishment</a><a href="/collection/LAj3fkRODN">Mosquitoes</a><a href="/collection/gzCmGC39tJ">Only One</a><a href="/collection/4BX8TpDncl">Scalp Help</a><a href="/collection/P2PRWcAB4U">Sensitive Skin</a><a href="/collection/vREjyM079A">Shine</a><a href="/collection/jeZ7cd8g89">Sleep Assist</a><a href="/collection/Zbo81rWovG">Soft & Silky</a><a href="/collection/qUBnSOPrsL">Stress & Anxiety</a><a href="/collection/SHpWnQNH8S">Sun/UV Protection</a><a href="/collection/HA5v6i5wpn">Volume</a></div><div class="sub"><a href="/collection/less10">$10 & Below</a><a href="/collection/less20">$20 & Below</a><a href="/collection/less30">$30 & Below</a><a href="/collection/less40">$40 & Below</a><a href="/collection/less50">$50 & Below</a><a href="/collection/less60">$60 & Below</a><a href="/collection/less70">$70 & Below</a><a href="/collection/less80">$80 & Below</a><a href="/collection/less90">$90 & Below</a><a href="/collection/less100">$100 & Below</a><a href="/collection/less150">$150 & Below</a><a href="/collection/less200">$200 & Below</a><a href="/collection/less250">$250 & Below</a></div><div class="sub"><a href="/collection/travel">Mini/Travel Size</a><a href="/collection/liter">Family Size</a><a href="/collection/kit">Kits & Sets</a></div><div class="sub"><a href="/collection/newest">New Arrivals</a></div> </div> <div class="group collection" id="menuShopClassification"> <div class="subtitle">Gifts for ...</div> <div class="sub"><a href="/classification/wn4Mov898g">Everyday Use</a><a href="/classification/FZMDCzU81E">Party Hair</a><a href="/classification/GQNqnckyoZ">Skin Aficionados</a><a href="/classification/13CMyv5qZr">Stocking Stuffers</a><a href="/classification/7btHhf2oGL">The Hostess</a><a href="/classification/jaGt3ZYbbO">The Outdoor Enthusiast</a><a href="/classification/tIFte0Ibzb">The Soul</a><a href="/classification/liLyaIOlCo">Their Self-Care</a></div> </div> <!-- <button class="close" onclick="toggleMenu(this,event,'shop')"></button> --> </menu> <menu id="menuFlags" onclick="menuClick(this,event)"> <div class="group flags"> <div class="subtitle">Shipping Destination</div> <div class="sub"><div class="divide">North America</div><button class="flag US" onclick="switchFlag(this,event,'US')">United States<div>$6 Shipping</div></button><button class="flag PR" onclick="switchFlag(this,event,'PR')">Puerto Rico<div>$12 Shipping</div></button><button class="flag CA" onclick="switchFlag(this,event,'CA')">Canada<div>$15 Shipping</div></button></div><div class="sub"><div class="divide">Oceania</div><button class="flag AU" onclick="switchFlag(this,event,'AU')">Australia<div>$25 Shipping</div></button><button class="flag NZ" onclick="switchFlag(this,event,'NZ')">New Zealand<div>$25 Shipping</div></button></div><div class="sub"><div class="divide">Europe</div><button class="flag FR" onclick="switchFlag(this,event,'FR')">France<div>$20 Shipping</div></button><button class="flag DE" onclick="switchFlag(this,event,'DE')">Germany<div>$20 Shipping</div></button><button class="flag IE" onclick="switchFlag(this,event,'IE')">Ireland<div>$20 Shipping</div></button><button class="flag IT" onclick="switchFlag(this,event,'IT')">Italy<div>$20 Shipping</div></button><button class="flag NL" onclick="switchFlag(this,event,'NL')">Netherlands<div>$20 Shipping</div></button><button class="flag GB" onclick="switchFlag(this,event,'GB')">United Kingdom<div>$20 Shipping</div></button></div> </div> </menu> <div id="notifyPopover" class="popover" onclick="toggleNotifyPopover(this,event)"> <div class="shell" onclick="event.stopPropagation()"> <div class="wrap"> <div class="title"> Notify When Available </div> <div class="info tight" id="notifyPopoverInfo"> </div> <div class="form"> <div class="banner" id="notifyPopoverError"></div> <input value="" id="notifyPopoverTel" type="tel" placeholder="Mobile Number" onkeyup="notifyPopoverKeyUp(this,event)" required autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false"> </div> <div class="actions multi"> <button class="secondary" data-variant="" onclick="toggleNotifyPopover(this,event)"> Cancel </button><button class="primary" data-variant="" onclick="notifyWhenAvailable(this,event)"> Notify </button> </div> </div> </div> </div> <div id="infoPopover" class="popover" onclick="toggleInfoPopover(this,event)"> <div class="shell" onclick="event.stopPropagation()"> <div class="wrap"> <div class="title" id="infoPopoverTitle"></div> <div class="info" id="infoPopoverMessage"></div> <div class="actions" id="infoPopoverActions"> <button id="infoPopoverSecondary" class="secondary" onclick="toggleInfoPopover(this,event)"> </button><button id="infoPopoverPrimary" class="primary" style="display:none"> </button> </div> </div> </div> </div> </body> <script> docu |
| 6 |
Info
On line 4, column 130 head> <script type="text/javascript" src="https://app.termly.io/resource-blocker/c9060009-82c9-4891-8d67-8c904d5617e9?autoBlock=on"></scri |
| 7 |
Error
On line 68, column 76 itle> <script src="https://cdn.usefathom.com/script.js" site="LQYLKIAS" defer></scri |
| 8 |
Error
On line 1799, column 1 0.px 0px; width: |
| 9 |
Error
On line 1804, column 13 } .cart .submit { / |
| 10 |
Error
On line 5864, column 1 ; */ } } </styl |
| 11 |
Info
On line 9193, column 108 > --> <script type="application/javascript" src="//api64.ipify.org?format=jsonp&amp;callback=getLocationData"></scri |
| 12 |
Error
On line 9229, column 141 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=590464405222762&ev=PageView&noscript=1" /></noscri |
| 13 |
Error
On line 9243, column 169 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=590464405222762&ev=PageView&noscript=1" /></noscri |
| 14 |
Error
On line 9262, column 141 ="Brands"><h1><span> |
| 15 |
Error
On line 9265, column 1352 dd to Cart</button><button class="favorite" undefined data-favorite="Wy1lDTW2WM" type="button" onclick="toggleFavoriteProductButton(this,event)"></butt |
| 16 |
Info
On line 9326, column 41 <a name="stay-connected"></a> |
| 17 |
Error
On line 9330, column 212 <input value="" id="connectTel" type="tel" placeholder="Mobile Number" onkeyup="connectKeyUp(this,event)" required autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false"><butto |
| 18 |
Error
On line 9414, column 28 nt)"> <div class="group main"> < |
| 19 |
Error
On line 9436, column 30 ERING --> </div><div class="group main"> < |
| 20 |
Error
On line 9450, column 30 llip;</a> </div><div class="group main"> < |
| 21 |
Error
On line 9465, column 45 div> --> <div class="group brand" id="menuShopBrand"> <di |
| 22 |
Error
On line 9469, column 51 </div> <div class="group category" id="menuShopCategory"> <di |
| 23 |
Error
On line 9473, column 53 </div> <div class="group clearance" id="menuShopClearance"> <di |
| 24 |
Error
On line 9477, column 55 </div> <div class="group collection" id="menuShopCollection"> <di |
| 25 |
Error
On line 9481, column 59 </div> <div class="group collection" id="menuShopClassification"> <di |
| 26 |
Error
On line 9489, column 29 nt)"> <div class="group flags"> < |
| 27 |
Error
On line 9506, column 220 <input value="" id="notifyPopoverTel" type="tel" placeholder="Mobile Number" onkeyup="notifyPopoverKeyUp(this,event)" required autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false"> |
β