HTML Report for http://www.veerandwander.com/brand/FSSOEQxnGj
This tool is an ongoing experiment in better HTML checking, and its behavior remains subject to changeShowing results for http://www.veerandwander.com/brand/FSSOEQxnGj
You can view the notes...
view-source:http://www.veerandwander.com/brand/FSSOEQxnGj
| # | 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/FSSOEQxnGj"> <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="The s4e philosophy is that everyone is sensitive in one way or another. Their products are formulated to be gentle on your hair and skin because t..."> <meta name="robots" content="all"> <meta name="view-transition" content="same-origin" /> <meta property="og:image" content="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/85b66e8ce9db84b863b865098e1f6634_brand_square.jpg"> <meta property="og:image:secure_url" content="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/85b66e8ce9db84b863b865098e1f6634_brand_square.jpg"> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:title" content="Sparrow For Everyone (s4e)"> <meta property="og:description" content="The s4e philosophy is that everyone is sensitive in one way or another. Their products are formulated to be gentle on your hair and skin because t..."> <meta property="og:url" content="https://veerandwander.com/brand/FSSOEQxnGj"> <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>Sparrow For Everyone (s4e) - 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/FSSOEQxnGj"> <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="The s4e philosophy is that everyone is sensitive in one way or another. Their products are formulated to be gentle on your hair and skin because t..."> <meta name="robots" content="all"> <meta name="view-transition" content="same-origin" /> <meta property="og:image" content="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/85b66e8ce9db84b863b865098e1f6634_brand_square.jpg"> <meta property="og:image:secure_url" content="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/85b66e8ce9db84b863b865098e1f6634_brand_square.jpg"> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:title" content="Sparrow For Everyone (s4e)"> <meta property="og:description" content="The s4e philosophy is that everyone is sensitive in one way or another. Their products are formulated to be gentle on your hair and skin because t..."> <meta property="og:url" content="https://veerandwander.com/brand/FSSOEQxnGj"> <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>Sparrow For Everyone (s4e) - 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 9536, 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>Sparrow For Everyone (s4e)</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,'JTnfFj8M99','filter','subcategory')">Styling</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>7 hrs 57 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/l9OQRZBC5z/none" id="l9OQRZBC5z" data-filter="qd51bFv4Mf" data-subcategory="JTnfFj8M99" data-regimen="" title="View Sparrow For Everyone (s4e) The Hair Cream Original"><div class="image"><img class="lazy" src="/_images/placeholder.jpg" data-src="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/e074419a783c76d0e062a7294136b5d8_cropped768x768.jpg" alt="Sparrow For Everyone (s4e) The Hair Cream Original Product Image"></div><div class="details"><h3 class="label">The Hair Cream</h3><h4 class="label">Original</h4><h5>$36.00</h5></div></a><div class="actions"><button class="add" data-add="l9OQRZBC5z" data-total="36.00" data-inventory="15" type="button" onclick="addToCart(this,event,'l9OQRZBC5z','Brand')">Add to Cart</button><button class="favorite" undefined data-favorite="l9OQRZBC5z" type="button" onclick="toggleFavoriteProductButton(this,event)"></button></div></div><div class="item"><a href="/brand/product/7l95gYdDQI/none" id="7l95gYdDQI" data-filter="qd51bFv4Mf" data-subcategory="JTnfFj8M99" data-regimen="" title="View Sparrow For Everyone (s4e) The Hair Cream Smell Free Edition"><div class="image"><img class="lazy" src="/_images/placeholder.jpg" data-src="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/c470a3114b1b057a10ee28ae8fcacedc_cropped768x768.jpg" alt="Sparrow For Everyone (s4e) The Hair Cream Smell Free Edition Product Image"></div><div class="details"><h3 class="label">The Hair Cream</h3><h4 class="label">Smell Free Edition</h4><h5>$36.00</h5></div></a><div class="actions"><button class="add" data-add="7l95gYdDQI" data-total="36.00" data-inventory="4" type="button" onclick="addToCart(this,event,'7l95gYdDQI','Brand')">Add to Cart</button><button class="favorite" undefined data-favorite="7l95gYdDQI" type="button" onclick="toggleFavoriteProductButton(this,event)"></button></div></div><div class="item"><a href="/brand/product/teR85ahvzk/none" id="teR85ahvzk" data-filter="qd51bFv4Mf" data-subcategory="LNAp9K3V2m" data-regimen="" title="View Sparrow For Everyone (s4e) The Tube Key "><div class="image"><img class="lazy" src="/_images/placeholder.jpg" data-src="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/f421a0d270fa7464e2862f3044650462_cropped768x768.jpg" alt="Sparrow For Everyone (s4e) The Tube Key Product Image"></div><div class="details"><h3 class="label">The Tube Key</h3><h4 class="label"></h4><h5>$3.00</h5></div></a><div class="actions"><button class="add" data-notify="teR85ahvzk" type="button" data-brand="Sparrow For Everyone (s4e)" data-product="The Tube Key " data-variant="teR85ahvzk" onclick="toggleNotifyPopover(this,event)">Notify When Available</button><button class="add hide" data-remove="teR85ahvzk" type="button" data-brand="Sparrow For Everyone (s4e)" data-product="The Tube Key " data-variant="teR85ahvzk" onclick="removeWhenAvailable(this,event)">Remove Notify</button><button class="favorite" undefined data-favorite="teR85ahvzk" type="button" onclick="toggleFavoriteProductButton(this,event)"></button></div></div> </div> <div class="source"> <div><div class="image brand"><img src="https://vw-861.nodechef.com/parse/files/8F0n3JDzgQ3o3cQhSWcAv6bZKeoiWtE13GVTyLiC/d30fd63c05922ab8087d849f75d899c4_brand_landscape.jpg" alt="Sparrow For Everyone (s4e) Brand Image"></div></div><div><div class="notes"><div class="note"><div class="title">About Sparrow For Everyone (s4e)</div><div class="preline">The s4e philosophy is that everyone is sensitive in one way or another. Their products are formulated to be gentle on your hair and skin because they know that if you slather a styling product on your hair, it’s ultimately going to end up making contact with your face while you roll around on your pillow all night! The Hair Cream is dermatologist approved and clinically tested to be safe for people with sensitive skin. It’s also free of gluten and artificial dyes and fragrances. From their feel to their smell, s4e products are designed to create a subtle, calming sensory experience. </div></div></div></div> </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 1350 dd to Cart</button><button class="favorite" undefined data-favorite="l9OQRZBC5z" type="button" onclick="toggleFavoriteProductButton(this,event)"></butt |
| 16 |
Error
On line 9265, column 2329 dd to Cart</button><button class="favorite" undefined data-favorite="7l95gYdDQI" type="button" onclick="toggleFavoriteProductButton(this,event)"></butt |
| 17 |
Info
On line 9265, column 2904 e Tube Key</h3><h4 class="label"></h4>< |
| 18 |
Error
On line 9265, column 3531 ove Notify</button><button class="favorite" undefined data-favorite="teR85ahvzk" type="button" onclick="toggleFavoriteProductButton(this,event)"></butt |
| 19 |
Info
On line 9328, column 41 <a name="stay-connected"></a> |
| 20 |
Error
On line 9332, 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 |
| 21 |
Error
On line 9416, column 28 nt)"> <div class="group main"> < |
| 22 |
Error
On line 9438, column 30 ERING --> </div><div class="group main"> < |
| 23 |
Error
On line 9452, column 30 llip;</a> </div><div class="group main"> < |
| 24 |
Error
On line 9467, column 45 div> --> <div class="group brand" id="menuShopBrand"> <di |
| 25 |
Error
On line 9471, column 51 </div> <div class="group category" id="menuShopCategory"> <di |
| 26 |
Error
On line 9475, column 53 </div> <div class="group clearance" id="menuShopClearance"> <di |
| 27 |
Error
On line 9479, column 55 </div> <div class="group collection" id="menuShopCollection"> <di |
| 28 |
Error
On line 9483, column 59 </div> <div class="group collection" id="menuShopClassification"> <di |
| 29 |
Error
On line 9491, column 29 nt)"> <div class="group flags"> < |
| 30 |
Error
On line 9508, column 220 <input value="" id="notifyPopoverTel" type="tel" placeholder="Mobile Number" onkeyup="notifyPopoverKeyUp(this,event)" required autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false"> |
β