CINXE.COM

Two-Piece Period Proof Swimwear | Ruby Love

<!doctype html> <html class="no-js" lang="en"> <head> <script type="text/javascript"> var line = '- - - - - - - - - - - - - ', ul = '-----------------', trpl = '\n\n\n', dbl = '\n\n', sgl = '\n', headerTitle = 'Theme Information', loggedIn = 'Customer: Logged Out', themeName = 'Theme Name: Production (Permanent Live)', pageTitle = 'Page Title: Two-Piece Period Proof Swimwear | Ruby Love', themeID = 'Theme ID: 132881121324', templateName = 'Template: collection'; console.log( line + trpl + headerTitle + sgl + ul + dbl + themeName + dbl + pageTitle + dbl + templateName + dbl + themeID + // themeID + dbl + // loggedIn + trpl + line + dbl ); </script> <script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"5523513", enableAutoSpaTracking: true};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> <script> window.KiwiSizing = window.KiwiSizing === undefined ? {} : window.KiwiSizing; KiwiSizing.shop = "rubylovedev.myshopify.com"; </script> <script> var isChrome = navigator.userAgent.includes("Chrome") && navigator.vendor.includes("Google Inc"); if (isChrome) { // console.log("is chrome") window.YETT_WHITELIST = [ /.*main.build.min.js/, /.*blockscripts.js/, ] } else { // console.log("is not chrome") window.YETT_WHITELIST = [ /.*/, ] } </script> <!-- 2) Include Yett --> <script src="https://unpkg.com/yett"></script> <script src="//www.rubylove.com/cdn/shop/t/160/assets/blockscripts.js?v=10427446551408913951718395768"></script> <!-- Hyperspeed:130465 --> <!-- Lazyload + Responsive Images--> <script defer src="//www.rubylove.com/cdn/shop/t/160/assets/hs-lazysizes.min.js?v=3892520330837622251718395768"></script> <!-- Third party app optimization --> <!-- Is an app not updating? Just click Rebuild Cache in Hyperspeed. --> <!-- Or, stop caching the app by clicking View Details on App Caching in your Theme Optimization settings. --> <script hs-ignore>(function(){var hsUrls=[{"original_url":"//cdn.shopify.com/proxy/7e4a100941d38fbedb18b502c3d9320925331294c8199beae8d5ad25c2807250/bingshoppingtool-t2app-prod.trafficmanager.net/uet/tracking_script?shop=rubylovedev.myshopify.com&sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","load_method":"ASYNC","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://accessibility-assistant.cartcoders.com/storage/shop_js/3SR7HFAM5OAO9NQY.js?eraseCache=true&shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://app.kiwisizing.com/web/js/dist/kiwiSizing/plugin/SizingPlugin.prod.js?v=308&shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://cdn.attn.tv/rubylove/dtag.js?shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://cdn.shopify.com/s/files/1/0552/0251/2940/t/124/assets/zendesk-embeddable.js?v=1667921492&shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://geolocation-recommendations.shopifyapps.com/locale_bar/script.js?shop=rubylovedev.myshopify.com","load_method":"ASYNC","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://geolocation-recommendations.shopifyapps.com/selectors/script.js?shop=rubylovedev.myshopify.com","load_method":"ASYNC","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://giftbox.ds-cdn.com/static/main.js?shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://js.smile.io/v1/smile-shopify.js?shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://static.rechargecdn.com/assets/js/widget.min.js?shop=rubylovedev.myshopify.com","load_method":"ASYNC","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]},{"original_url":"https://store-credit.merchantyard.com/js/integrations/script.js?shop=rubylovedev.myshopify.com","load_method":"ON_ACTION","pages":["HOME","COLLECTIONS","PRODUCT","CART","OTHER"]}];var insertBeforeBackup=Node.prototype.insertBefore;var currentPageType=getPageType();function getPageType(){var currentPage="collection";if(currentPage==='index'){return'HOME';}else if(currentPage==='collection'){return'COLLECTIONS';}else if(currentPage==='product'){return'PRODUCT';}else if(currentPage==='cart'){return'CART';}else{return'OTHER';}} function isWhitelistedPage(script){return script.pages.includes(currentPageType);} function getCachedScriptUrl(url){var result=hsUrls.find(function(el){var compareUrl=el.original_url;if(url.substring(0,6)==="https:"&&el.original_url.substring(0,2)==="//"){compareUrl="https:"+el.original_url;} return url==compareUrl;});return result;} function loadScript(scriptInfo){if(isWhitelistedPage(scriptInfo)){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=scriptInfo.original_url;var x=document.getElementsByTagName('script')[0];insertBeforeBackup.apply(x.parentNode,[s,x]);}} var userEvents={touch:["touchmove","touchend"],mouse:["mousemove","click","keydown","scroll"]};function isTouch(){var touchIdentifiers=" -webkit- -moz- -o- -ms- ".split(" ");if("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch){return true;} var query=["(",touchIdentifiers.join("touch-enabled),("),"hsterminal",")"].join("");return window.matchMedia(query).matches;} var actionEvents=isTouch()?userEvents.touch:userEvents.mouse;function loadOnUserAction(){hsUrls.filter(function(url){return url.load_method==='ON_ACTION';}).forEach(function(scriptInfo){loadScript(scriptInfo)}) actionEvents.forEach(function(userEvent){document.removeEventListener(userEvent,loadOnUserAction);});} Node.prototype.insertBefore=function(newNode,refNode){if(newNode.type!=="text/javascript"&&newNode.type!=="application/javascript"&&newNode.type!=="application/ecmascript"){return insertBeforeBackup.apply(this,arguments);} var scriptInfo=getCachedScriptUrl(newNode.src);if(!scriptInfo){return insertBeforeBackup.apply(this,arguments);} if(isWhitelistedPage(scriptInfo)&&scriptInfo.load_method!=='ON_ACTION'){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=scriptInfo.original_url;insertBeforeBackup.apply(this,[s,refNode]);}} actionEvents.forEach(function(userEvent){document.addEventListener(userEvent,loadOnUserAction);});})();</script> <!-- instant.load --> <script defer src="//www.rubylove.com/cdn/shop/t/160/assets/hs-instantload.min.js?v=123053109237140306481718395768"></script> <!-- defer JS until action --> <script async src="//www.rubylove.com/cdn/shop/t/160/assets/hs-script-loader.min.js?v=24912448706018637961718395766"></script> <style id='hs-critical-css'>@charset "UTF-8";@font-face{font-family:Brandon Grotesque;src:url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/BrandonGrotesque-Medium.woff2) format("woff2"),url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/BrandonGrotesque-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Brandon Grotesque;src:url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/BrandonGrotesque-Bold.woff2) format("woff2"),url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/BrandonGrotesque-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Gill Sans MT Pro;src:url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/GillSansMTPro-Medium.woff2) format("woff2"),url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/GillSansMTPro-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@media (max-width:480px){.footer .footer__newsletter-submit-button span{display:none}}a,body,div,form,h1,h2,h3,h4,header,html,iframe,img,label,li,nav,p,section,span,strong,ul{margin:0;padding:0;border:0;vertical-align:baseline;font-size:100%}ul{list-style:none}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto}a{background-color:transparent}strong{font-weight:bolder}button,input,select{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button{border:none;-moz-appearance:none;-webkit-appearance:none;appearance:none}button,input{overflow:visible}button,select{text-transform:none}[type=button]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=number]{-webkit-appearance:none;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}[type=button]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}[type=checkbox]{padding:0;box-sizing:border-box}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}body{font-size:16px}*{outline:0;box-sizing:border-box}body,html{background-color:#fff}body{display:flex;flex-direction:column;min-height:100vh;font-family:Gill Sans MT Pro,sans-serif;overflow-x:hidden}body .container{max-width:1440px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}.content{flex:1 0 auto}picture img{filter:blur(0)}.lazy img{filter:blur(10px)}.link{text-decoration:none}a{text-decoration:none}.button{display:inline-block;flex-shrink:0;min-width:150px;padding:14px 20px;box-shadow:none;border:none;border-radius:0;background-color:#d02126;font-family:Brandon Grotesque,sans-serif;font-size:14px;font-weight:500;line-height:1;text-align:center;text-transform:uppercase;text-decoration:none;color:#fff}.input{padding:9.5px 12px;border:1px solid #c9c9c9;border-radius:0;-webkit-border-radius:0;box-shadow:none;outline:0;background-color:#fff;font-size:16px;font-weight:400;line-height:22px;color:#000;-moz-appearance:none;-webkit-appearance:none;appearance:none}.input.input--full-width{width:100%}.input::-moz-placeholder{color:#c9c9c9}.input:-ms-input-placeholder{color:#c9c9c9}.pagination .btn{padding:0 16px;background:0 0;color:#d02126}.pagination .btn svg{display:block;width:12px;height:12px}.pagination .btn svg path{fill:#d02126}.pagination button[disabled]{display:none}@media (max-width:575px){.pagination .btn{padding:0 10px}}@media (max-width:380px){.pagination .btn{padding:0 5px}}.header{position:fixed;top:0;left:0;z-index:20;width:100%;background-color:#fff;box-shadow:0 2px 30px #00000026}.header .header__content{position:relative;z-index:22;background-color:#fff}.header .header__content-row{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px}.header .header__logo .header__logo-image{display:block}.header .header__mobile-menu-row{display:none}.header .header__navigation-row{display:flex;transform:translateY(4px)}.header .header__navigation-link{padding-bottom:10px;font-size:17px;color:#d02126;white-space:nowrap}.header .header__navigation-dropdown{position:absolute;top:25px;left:-12px;z-index:2;visibility:hidden;padding:12px;background-color:#fbf1ed}.header .header__navigation-dropdown .header__navigation-link{white-space:nowrap}.header .header__navigation-dropdown .header__navigation-link:last-of-type{padding-bottom:0}.header .header__navigation-item{position:relative}.header .header__navigation-item.header__navigation-item--parent{margin-right:15px}.header .header__navigation-item.header__navigation-item--parent:last-of-type{margin-right:0}.header .header__navigation-item:before{content:"";position:absolute;top:-10px;left:50%;opacity:0;width:10px;height:11px;background-image:url(https://cdn.shopify.com/s/files/1/0552/0251/2940/t/103/assets/heart.svg);background-repeat:no-repeat;background-size:contain;background-position:50% 50%;transform:translate(-50%)}.header .header__icons{display:flex}.header .header__search svg{display:block;width:29px;height:auto}.header .header__search svg path{fill:#d02126}.header .header__account{margin-left:20px}.header .header__account svg{display:block;width:32px;height:auto}.header .header__account svg path{fill:#d02126}.header .header__cart{position:relative;margin-left:20px}.header .header__cart svg{display:block;width:28px;height:auto}.header .header__cart svg path{fill:#d02126}.header .header__cart-counter{position:absolute;top:20px;left:50%;width:17px;font-family:Brandon Grotesque,sans-serif;line-height:1;text-align:center;color:#d02126;transform:translate(-50%,-50%)}.header .header__mobile-menu-button{display:none;min-width:unset;padding:0;background-color:transparent}.header .header__mobile-menu-button svg{display:block;width:32px;height:auto}.header .header__search-container{max-width:720px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}.header .header__search-wrapper{position:absolute;top:100%;right:0;z-index:21;width:100%;padding-top:15px;padding-bottom:15px;background-color:#fbf1ed;transform:translateY(-100%)}.header .header__search-row{display:flex}@media (max-width:1199px){.header .header__navigation{display:none}.header .header__mobile-menu-button{display:block;margin-right:20px}.header .header__mobile-menu-row{display:flex}.header .header__content-row{padding-top:20px;padding-bottom:20px}}@media (max-width:767px){.header .header__content-row{padding-top:15px;padding-bottom:15px}.header .header__mobile-menu-button{margin-right:15px}.header .header__mobile-menu-button svg{width:28px}.header .header__search,.header .header__search-wrapper{display:none}.header .header__account{display:none;margin-left:12px}}.announcement-bar{position:relative;z-index:22;padding:8px 20px;background-color:var(--announcement_bar_background_color,#d02126)}.announcement-bar .announcement-bar__text{font-size:13px;font-weight:400;line-height:1;text-align:center;color:var(--announcement_bar_text_color,#fff)}.announcement-bar .announcement-bar__close-button{position:absolute;top:50%;right:10px;min-width:unset;padding:0;background-color:transparent;transform:translateY(-50%)}.announcement-bar .announcement-bar__close-button svg{display:block;width:11px;height:11px}@media (max-width:1199px){.announcement-bar .announcement-bar__close-button{right:7px}}.mobile-menu{position:fixed;top:0;left:0;z-index:31;overflow-y:auto;width:100%;height:100%;max-width:400px;padding:30px 40px;background-color:#fbf1ed;transform:translate(-100%)}.mobile-menu .mobile-menu__navigation-content{margin-top:15px;padding-left:15px;background-color:#fdf8f6}.mobile-menu .mobile-menu__close-button{position:absolute;top:0;right:0;min-width:unset;padding:10px;background-color:#d02126}.mobile-menu .mobile-menu__close-button svg{display:block;width:20px;height:20px}.mobile-menu .mobile-menu__navigation-link{position:relative;display:inline-block;width:100%;font-size:20px;color:#d02126}.mobile-menu .mobile-menu__navigation-link.mobile-menu__navigation-link--child{font-size:18px}.mobile-menu .mobile-menu__toggler-icon{position:absolute;top:60%;right:0}.mobile-menu .mobile-menu__toggler-icon:after,.mobile-menu .mobile-menu__toggler-icon:before{content:"";position:absolute;top:50%;right:0;display:block;width:16px;height:2px;background:#d02126;transform:translateY(-3px)}.mobile-menu .mobile-menu__toggler-icon:before{transform:translateY(-3px) rotate(90deg)}.mobile-menu .mobile-menu__navigation-item.mobile-menu__navigation-item--parent{padding-top:15px;padding-bottom:15px;border-bottom:1px solid #fff}.mobile-menu .mobile-menu__navigation-item.mobile-menu__navigation-item--parent:last-of-type{border-bottom:none}.mobile-menu .mobile-menu__navigation-item.mobile-menu__navigation-item--child{padding-top:10px;padding-bottom:10px}.mobile-menu .mobile-menu__navigation-item:last-of-type{margin-bottom:0}.mobile-menu .mobile-menu__logo{display:block;max-width:100px;margin-bottom:20px;margin-left:auto;margin-right:auto}.mobile-menu .mobile-menu__search-row{display:flex;margin-bottom:20px}.mobile-menu .mobile-menu__search-button{min-width:unset}.footer .footer__newsletter-title{margin-bottom:15px;font-family:Brandon Grotesque,sans-serif;font-size:32px;line-height:1}.footer .footer__newsletter-description{font-size:18px;max-width:370px}.footer .footer__newsletter-success-message{position:absolute;top:50%;left:50%;width:100%;padding-left:20px;padding-right:20px;text-align:center;transform:translate(-50%,-50%)}.footer .footer__newsletter-success-message .footer__newsletter-description{margin-left:auto;margin-right:auto}.footer .footer__newsletter-error-message{position:absolute;top:0;left:0;margin-top:8px;color:#d02126}.footer .footer__newsletter-submit-button svg{display:none}@media (max-width:767px){.mobile-menu{max-width:380px;padding-left:30px;padding-right:30px}.footer .footer__newsletter-title{margin-bottom:12px;font-size:28px}.footer .footer__newsletter-error-message{margin-top:5px}}.product-card{position:relative;height:100%}.product-card .product-card__container{display:flex;flex-direction:column;align-items:center;height:100%}.product-card .product-card__image-link{display:block;width:100%}.product-card .product-card__image-wrapper{position:relative;display:block;width:100%;padding-top:100%}.product-card .product-card__image-wrapper .product-card__image--front{opacity:1}.product-card .product-card__image-wrapper .product-card__image--back{opacity:0}.product-card .product-card__image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.product-card .product-card__price-wrapper{display:flex;align-items:center;margin-top:auto}.product-card .product-card__title{margin:10px 0;text-align:center}.product-card .product-card__price,.product-card .product-card__title-link{font-family:Brandon Grotesque,sans-serif;font-size:18px;line-height:1.21;color:#000}.product-card .product-card__price{margin-right:5px;color:#d02126}.collection .collection__container{position:relative;margin-top:40px;margin-bottom:40px}.collection .collection__title{line-height:1.333333;text-align:center;word-break:break-word}.collection .collection__title{font-size:var(--collection-title-size, 30px);color:var(--collection-title-color,#000)}.collection .collection__filter-mobile-body{position:fixed;top:0;left:0;overflow-y:auto;z-index:31;display:flex;flex-direction:column;justify-content:space-between;max-width:400px;width:100%;height:100%;padding:30px 40px;background-color:#fbf1ed;transform:translate(-100%)}.collection .collection__loader{position:fixed;top:50%;left:50%;z-index:100;display:none;width:40px;height:40px;border:5px solid #fff;border-top-color:#d02126;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}.collection .collection__filter-menu-button-close{position:absolute;top:0;right:0;min-width:unset;padding:10px;background-color:#d02126}.collection .collection__filter-menu-button-close svg{display:block;width:20px;height:20px}.collection .collection__sort{display:flex;justify-content:flex-end;align-items:center;margin-top:40px}.collection .collection__sort-select{padding:5px 20px 5px 10px;border-radius:0;border:1px solid #000;background-color:#fff;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjQiIHZpZXdCb3g9IjAgMCA2IDQiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZpbGw6ICMyNjI2MjY7CiAgICAgICAgZmlsbC1ydWxlOiBldmVub2RkOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8cGF0aCBpZD0iZHJvcGRvd24tYXJyb3ciIGNsYXNzPSJjbHMtMSIgZD0iTTc1My4zNzUsMjUzMmEwLjM3OCwwLjM3OCwwLDAsMC0uMzQ3LjI1LDAuNDE5LDAuNDE5LDAsMCwwLS4wMjguMTUsMC40LDAuNCwwLDAsMCwuMTEuMjhsMi42MjUsMy4yMWEwLjM1MywwLjM1MywwLDAsMCwuNTMsMGwyLjYyNS0zLjIxYTAuNCwwLjQsMCwwLDAsLjExLTAuMjgsMC40MiwwLjQyLDAsMCwwLS4wMjktMC4xNSwwLjM3NywwLjM3NywwLDAsMC0uMzQ2LTAuMjVoLTUuMjVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzUzIC0yNTMyKSIvPgo8L3N2Zz4K)!important;background-repeat:no-repeat;background-size:14px 6px;background-position-x:97%;background-position-y:center;color:#000;-moz-appearance:none;-webkit-appearance:none;appearance:none}.collection .collection__sort-by{margin-right:20px;font-size:20px}.collection .collection__filter-mobile{display:none;margin-top:20px}.collection .collection__filter-mobile-button{display:none;align-items:center;min-width:auto;height:40px;margin-left:auto;padding:0 20px}.collection .collection__filter-mobile-button-icon-wrapper{display:flex;justify-content:center;align-items:center;width:24px;height:24px;margin-left:10px}.collection .collection__row{display:flex;flex-wrap:wrap;margin:0 -15px}.collection .collection__column{width:100%;margin:10px 0;padding:0 15px}.collection .collection__column.collection__column-filter{margin-top:-50px;max-width:25%}.collection .collection__column.collection__column-products{max-width:75%}.collection .collection__column-filter-list-container{margin-top:20px}.collection .collection__column-filter-list-title{font-size:20px;font-weight:600}.collection .collection__column-filter-list{margin-top:10px}.collection .collection__column-filter-list.collection__column-filter-list--mobile{opacity:1;max-height:100vh}.collection .collection__column-filter-item{margin-top:5px}.collection .collection__column-filter-label{position:relative;display:flex;opacity:1;margin-left:20px;font-size:18px}.collection .collection__column-filter-label .checkmark{position:absolute;top:1px;left:-20px;width:13px;height:13px;border:1px solid #000}.collection .collection__column-filter-label .checkmark:after{content:"";position:absolute;top:1px;left:3px;display:none;width:2px;height:5px;transform:rotate(45deg);border-bottom:2px solid #000;border-right:2px solid #000}.collection .collection__column-filter-checkbox{position:absolute;opacity:0;width:0;height:0}.collection .collection__column-filter-price-range{margin-top:40px}.collection .collection__column-filter-max-price{font-size:20px}.collection .collection__column-filter-prompt{margin-top:6px;font-size:14px;color:#444040}.collection .collection__column-filter-input-row{display:flex;flex-wrap:wrap;margin:10px -5px}.collection .collection__column-filter-input-container{max-width:33.333333%;width:100%;padding:0 5px}.collection .collection__column-filter-input{width:inherit;padding:10px}.collection .collection__column-products-row{display:flex;flex-wrap:wrap;margin:0 -10px}.collection .collection__column-products-column{max-width:25%;width:100%;margin:20px 0;padding:0 10px}.collection .collection__column-reset{width:100%;margin-top:10px}.collection .collection__column-filter-price-range-button{overflow:hidden;width:inherit;min-width:auto;height:44px;text-overflow:ellipsis}.collection .collection__empty{display:none}.collection .collection__empty-title{font-size:30px}.collection .collection__empty-subtitle{font-size:25px}.collection .collection__empty-subtitle,.collection .collection__empty-title{text-align:center}.collection .collection__empty-link{text-decoration:underline!important}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:991px){.collection .collection__row{margin:0}.collection .collection__column-products-column{margin:20px 0;padding:0 15px;max-width:33.333333%}.collection .collection__filter-mobile{display:block}.collection .collection__filter-mobile-button{display:flex;margin-top:20px;margin-left:0;margin-right:auto}.collection .collection__sort{display:none;justify-content:space-between;margin-top:20px}.collection .collection__sort.collection__sort--mobile{display:flex}.collection .collection__column{padding:0}.collection .collection__column.collection__column-filter{display:none}.collection .collection__column.collection__column-products{max-width:100%}.collection .collection__column-products-row{margin:0 -15px}.collection .collection__column-filter-list-icon{position:absolute;top:60%;right:0;display:unset}.collection .collection__column-filter-list-icon:after,.collection .collection__column-filter-list-icon:before{content:"";position:absolute;top:50%;right:0;display:block;width:16px;height:2px;background-color:#000;transform:translateY(-3px)}.collection .collection__column-filter-list-title{position:relative}}@media (max-width:767px){.collection .collection__column-products-column{max-width:50%}.collection .collection__filter-mobile-body{max-width:380px;padding-left:30px;padding-right:30px}}@media (max-width:575px){.collection .collection__loader{border-color:#444040;border-top-color:#d02126}}@media (max-width:480px){.footer .footer__newsletter-submit-button svg{display:block}.collection .collection__column-products-column{max-width:100%}.collection .collection__filter-mobile-button{justify-content:space-between;width:100%;margin-right:0}}.minicart .minicart__container{position:fixed;top:0;right:0;width:100%;height:100%;background-color:#fff;box-shadow:0 2px 10px #d6d6d63d;transform:translate(100%);max-width:480px}.minicart .minicart__overlay{position:fixed;top:0;bottom:0;left:0;right:0;z-index:-1;visibility:hidden;opacity:0;background-color:#000000a6}.minicart .minicart__title{position:relative;display:flex;justify-content:center;align-items:center;font-family:Brandon Grotesque,sans-serif;font-size:24px;font-weight:700;line-height:1;text-transform:uppercase;color:#fff}.minicart .minicart__items-count{margin-left:10px;font-size:14px;font-weight:500;letter-spacing:0}.minicart .minicart__header-wrapper{height:100%}.minicart .minicart__title-wrapper{position:relative;padding:12px 20px;background-color:#d02126;text-align:center}.minicart .minicart__shipping-notice{display:flex;justify-content:center;align-items:center;min-height:75px;padding:15px 20px;border-bottom:1px solid #000;color:#000}.minicart .minicart__shipping-notice-container{width:100%}.minicart .minicart__shipping-remaining{text-align:center}.minicart .minicart__shipping-remaining p,.minicart .minicart__shipping-remaining strong{margin-bottom:0}.minicart .minicart__progress-bar{display:flex;align-items:center;margin-top:7px}.minicart .minicart__progress-bar-status{position:relative;overflow:hidden;width:100%;height:10px;margin:0 15px;border:1px solid #d02126;transform:skew(-20deg)}.minicart .minicart__progress-bar-state{position:absolute;top:0;bottom:0;left:0;display:inline-block;height:100%;background-color:#d02126}.minicart .minicart__close{position:absolute;top:50%;right:10px;width:15px;height:15px;transform:translateY(-50%)}.minicart .minicart__close svg{display:block;width:100%;height:100%}.minicart .minicart__body{position:relative;overflow:hidden;flex:1 0 auto}.minicart .minicart__section{padding-left:30px;padding-right:30px;-webkit-transform:translate3d(0,0,0)}.minicart .minicart__section.minicart__section--header{padding-left:0;padding-right:0}.minicart .minicart__section.minicart__section--items{position:absolute;top:0;bottom:0;left:0;right:0;height:100%;overflow-y:auto}.minicart .minicart__wrapper{position:relative;display:flex;flex-direction:column;height:100%;background-color:#fff;touch-action:pan-y}.minicart .minicart__wrapper.landscape{overflow:scroll;-webkit-overflow-scrolling:touch}.minicart .minicart__wrapper.landscape .minicart__body{position:unset;overflow-y:unset}.minicart .minicart__wrapper.landscape .minicart__section.minicart__section--items{position:unset}@media (max-width:767px){.minicart .minicart__container{max-width:450px}.minicart .minicart__section{padding-left:20px;padding-right:20px}.minicart .minicart__title{font-size:20px}.minicart .minicart__items-count{margin-left:5px;font-size:13px}}</style> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="theme-color" content=""> <link rel="canonical" href="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits"> <!-- Google Tag Manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-T29J5ZB'); </script> <!-- End Google Tag Manager --> <script> obApi('track', 'PURCHASE', { orderValue: '%%DYNAMIC_ORDER_VALUE_COMES_HERE%%', currency: 'USD', }); </script> <!-- Mutesix GA4 Data layer --> <script> /********************** * DATALAYER ARCHITECTURE: SHOPIFY * DEFINITION: A data layer helps you collect more accurate analytics data, that in turn allows you to better understand what potential buyers are doing on your website and where you can make improvements. It also reduces the time to implement marketing tags on a website, and reduces the need for IT involvement, leaving them to get on with implementing new features and fixing bugs. * RESOURCES: * http://www.datalayerdoctor.com/a-gentle-introduction-to-the-data-layer-for-digital-marketers/ * http://www.simoahava.com/analytics/data-layer/ * EXTERNAL DEPENDENCIES: * jQuery * jQuery Cookie Plugin v1.4.1 - https://github.com/carhartl/jquery-cookie * cartjs - https://github.com/discolabs/cartjs * DataLayer Architecture: Shopify v1.2 * COPYRIGHT 2021 * LICENSES: MIT ( https://opensource.org/licenses/MIT ) */ /********************** * PRELOADS * load jquery if it doesn't exist ***********************/ if(!window.jQuery){ var jqueryScript = document.createElement('script'); jqueryScript.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js'); document.head.appendChild(jqueryScript); } __DL__jQueryinterval = setInterval(function(){ // wait for jQuery to load & run script after jQuery has loaded if(window.jQuery){ // search parameters getURLParams = function(name, url){ if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); }; /********************** * DYNAMIC DEPENDENCIES ***********************/ __DL__ = { dynamicCart: true, // if cart is dynamic (meaning no refresh on cart add) set to true debug: false, // if true, console messages will be displayed cart: null, wishlist: null, removeCart: null }; customBindings = { cartTriggers: [], viewCart: [], removeCartTrigger: [], cartVisableSelector: [], promoSubscriptionsSelectors: [], promoSuccess: [], ctaSelectors: [], newsletterSelectors: [], newsletterSuccess: [], searchPage: [], wishlistSelector: [], removeWishlist: [], wishlistPage: [], searchTermQuery: [getURLParams('q')], // replace var with correct query }; /* DO NOT EDIT */ defaultBindings = { cartTriggers: ['form[action="/cart/add"] [type="submit"],.add-to-cart,.cart-btn'], viewCart: ['form[action="/cart"],.my-cart,.trigger-cart,#mobileCart'], removeCartTrigger: ['[href*="/cart/change"]'], cartVisableSelector: ['.inlinecart.is-active,.inline-cart.is-active'], promoSubscriptionsSelectors: [], promoSuccess: [], ctaSelectors: [], newsletterSelectors: ['input.contact_email'], newsletterSuccess: ['.success_message'], searchPage: ['search'], wishlistSelector: [], removeWishlist: [], wishlistPage: [] }; // stitch bindings objectArray = customBindings; outputObject = __DL__; applyBindings = function(objectArray, outputObject){ for (var x in objectArray) { var key = x; var objs = objectArray[x]; values = []; if(objs.length > 0){ values.push(objs); if(key in outputObject){ values.push(outputObject[key]); outputObject[key] = values.join(", "); }else{ outputObject[key] = values.join(", "); } } } }; applyBindings(customBindings, __DL__); applyBindings(defaultBindings, __DL__); /********************** * PREREQUISITE LIBRARIES ***********************/ clearInterval(__DL__jQueryinterval); // jquery-cookies.js if(typeof $.cookie!==undefined){(function(a){if(typeof define==='function'&&define.amd){define(['jquery'],a)}else if(typeof exports==='object'){module.exports=a(require('jquery'))}else{a(jQuery)}}(function($){var g=/\+/g;function encode(s){return h.raw?s:encodeURIComponent(s)}function decode(s){return h.raw?s:decodeURIComponent(s)}function stringifyCookieValue(a){return encode(h.json?JSON.stringify(a):String(a))}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\')}try{s=decodeURIComponent(s.replace(g,' '));return h.json?JSON.parse(s):s}catch(e){}}function read(s,a){var b=h.raw?s:parseCookieValue(s);return $.isFunction(a)?a(b):b}var h=$.cookie=function(a,b,c){if(arguments.length>1&&!$.isFunction(b)){c=$.extend({},h.defaults,c);if(typeof c.expires==='number'){var d=c.expires,t=c.expires=new Date();t.setMilliseconds(t.getMilliseconds()+d*864e+5)}return(document.cookie=[encode(a),'=',stringifyCookieValue(b),c.expires?'; expires='+c.expires.toUTCString():'',c.path?'; path='+c.path:'',c.domain?'; domain='+c.domain:'',c.secure?'; secure':''].join(''))}var e=a?undefined:{},cookies=document.cookie?document.cookie.split('; '):[],i=0,l=cookies.length;for(;i<l;i++){var f=cookies[i].split('='),name=decode(f.shift()),cookie=f.join('=');if(a===name){e=read(cookie,b);break}if(!a&&(cookie=read(cookie))!==undefined){e[name]=cookie}}return e};h.defaults={};$.removeCookie=function(a,b){$.cookie(a,'',$.extend({},b,{expires:-1}));return!$.cookie(a)}}))} /********************** * Begin dataLayer Build ***********************/ /** * DEBUG * Set to true or false to display messages to the console */ if(__DL__.debug){ console.log('=====================\n| DATALAYER SHOPIFY |\n---------------------'); console.log('Page Template: collection'); } window.dataLayer = window.dataLayer || []; // init data layer if doesn't already exist dataLayer.push({'event': 'Begin DataLayer'}); // begin datalayer var template = "collection"; /** * Landing Page Cookie * 1. Detect if user just landed on the site * 2. Only fires if Page Title matches website */ $.cookie.raw = true; if ($.cookie('landingPage') === undefined || $.cookie('landingPage').length === 0) { var landingPage = true; $.cookie('landingPage', unescape); $.removeCookie('landingPage', {path: '/'}); $.cookie('landingPage', 'landed', {path: '/'}); } else { var landingPage = false; $.cookie('landingPage', unescape); $.removeCookie('landingPage', {path: '/'}); $.cookie('landingPage', 'refresh', {path: '/'}); } if (__DL__.debug) { console.log('Landing Page: ' + landingPage); } /** * Log State Cookie */ var isLoggedIn = false; if (!isLoggedIn) { $.cookie('logState', unescape); $.removeCookie('logState', {path: '/'}); $.cookie('logState', 'loggedOut', {path: '/'}); } else { if ($.cookie('logState') === 'loggedOut' || $.cookie('logState') === undefined) { $.cookie('logState', unescape); $.removeCookie('logState', {path: '/'}); $.cookie('logState', 'firstLog', {path: '/'}); } else if ($.cookie('logState') === 'firstLog') { $.cookie('logState', unescape); $.removeCookie('logState', {path: '/'}); $.cookie('logState', 'refresh', {path: '/'}); } } if ($.cookie('logState') === 'firstLog') { var firstLog = true; } else { var firstLog = false; } /********************** * DATALAYER SECTIONS ***********************/ /** * DATALAYER: Landing Page * Fires any time a user first lands on the site. */ if ($.cookie('landingPage') === 'landed') { dataLayer.push({ 'pageType': 'Landing', 'event': 'Landing' }); if (__DL__.debug) { console.log('DATALAYER: Landing Page fired.'); } } /** * DATALAYER: Log State * 1. Determine if user is logged in or not. * 2. Return User specific data. */ var logState = { 'logState' : "Logged Out", 'firstLog' : firstLog, 'customerEmail' : null, 'timestamp' : Date.now(), 'customerType' : 'New', 'customerTypeNumber' :'1', 'shippingInfo' : { 'fullName' : null, 'firstName' : null, 'lastName' : null, 'address1' : null, 'address2' : null, 'street' : null, 'city' : null, 'province' : null, 'zip' : null, 'country' : null, 'phone' : null, }, 'billingInfo' : { 'fullName' : null, 'firstName' : null, 'lastName' : null, 'address1' : null, 'address2' : null, 'street' : null, 'city' : null, 'province' : null, 'zip' : null, 'country' : null, 'phone' : null, }, 'checkoutEmail' : null, 'currency' : "USD", 'pageType' : 'Log State', 'event' : 'Log State' } dataLayer.push(logState); if(__DL__.debug){ console.log("Log State"+" :"+JSON.stringify(logState, null, " ")); } /** * DATALAYER: Homepage */ if(document.location.pathname == "/"){ var homepage = { 'pageType' : 'Homepage', 'event' : 'Homepage' }; dataLayer.push(homepage); if(__DL__.debug){ console.log("Homepage"+" :"+JSON.stringify(homepage, null, " ")); } } /** * DATALAYER: Blog Articles * Fire on Blog Article Pages */ /** DATALAYER: Product List Page (Collections, Category) * Fire on all product listing pages. */ var product = { 'products': [ { 'item_id' : 6731879874604, 'sku' : "59078042210", 'variantId' : 39860526448684, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Black Sea", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_grande.jpg?v=1655834035", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-black-sea', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["ALL BLACK EVERYTHING","All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size - Two Piece Set" : "XXS", } }, { 'item_id' : 6731905433644, 'sku' : "59194045815", 'variantId' : 40894320279596, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Wild Berry", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_grande.jpg?v=1655834097", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-wild-berry', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swim Two-Piece","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "LG", } }, { 'item_id' : 6731905302572, 'sku' : "59191045712", 'variantId' : 39860625276972, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Bubbles", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_grande.jpg?v=1655834052", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-bubbles', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "XS", } }, { 'item_id' : 6731880202284, 'sku' : "59109026810", 'variantId' : 43638873030700, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Ruffle Set | Tropical Vacation", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_grande.jpg?v=1655833982", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-ruffle-set-tropical-vacation', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","BACK IN STOCK","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Ruffle Sets","Swimwear","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "XXS", } }, { 'item_id' : 6731904647212, 'sku' : "59074026117", 'variantId' : 41717137866796, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Napa", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_grande.jpg?v=1655834092", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-napa-plus-size-collection', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Just Keep Swimming","RL - Plus Size Swimwear","RL Swim Two Piece - Prints \u0026 Solids","RL TEEN Two-Piece","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Type" : "Two-Piece", "Size" : "XXS", } }, { 'item_id' : 6731904417836, 'sku' : "59150045315", 'variantId' : 41048425300012, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Pink Sand \u0026 Beach", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_grande.jpg?v=1655834094", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-pink-sand-beach-plus-size-collection', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","RL - Plus Size Swimwear","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swim Two-Piece","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Type" : "Two-Piece", "Size" : "LG", } }, { 'item_id' : 6935299522604, 'sku' : "61113055310", 'variantId' : 40616531329068, 'productType' : "", 'item_category' : "", 'item_list_name' : "", 'item_list_id' : "", 'item_name' : "Period Swimwear Bundle | Select 3 of any black swimwear style", 'price' : "254.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_grande.webp?v=1661536883", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-bundle-select-3-of-any-black-swimwear-style-1', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["40% Off Bundles!","ALL BLACK EVERYTHING","All Products","Bundles - Swimwear","Bundles - Underwear \u0026 Swimwear","Holiday Collection 2022","One-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Period Swim Bottoms","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL - Plus Size Swimwear","RL Swim Bottoms - Prints \u0026 Solids","RL Swim One Piece - Prints \u0026 Solids","RL Swim Two Piece - Prints \u0026 Solids","RL TEEN One-Piece","RL TEEN Swim Bottoms","RL TEEN Two-Piece","Swim - Bottoms - Classic","Swim - Bottoms - Hipster","Swim - One-Piece - Classic","Swim - One-Piece - Racerback","Swim - Two-Piece - Tank Sets","Swim One-Piece","Swim Two-Piece","Swimwear","Teen Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Teen Swim - Bottoms - Classic","Teen Swim - Bottoms - Hipster","Teen Swim - One-Piece - Classic","Teen Swim - One-Piece - Racerback","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "XXS", "SELECT YOUR SWIMSUIT" : "TWO PIECE TANK", "SELECT YOUR SWIM BOTTOMS" : "2 CLASSIC BOTTOMS", } }, { 'item_id' : 6731893407788, 'sku' : "59034042410", 'variantId' : 40564711751724, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Classic Ruby", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_grande.jpg?v=1655834059", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-classic-ruby', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size - Two Piece Set" : "XXS", } }, { 'item_id' : 6731880038444, 'sku' : "59111042310", 'variantId' : 39860527431724, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Blue Waters (Navy)", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_grande.jpg?v=1655834044", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-tank-set-blue-waters', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Tank Sets","Swimwear","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "XXS", } }, { 'item_id' : 6731879841836, 'sku' : "59021030015", 'variantId' : 39860526186540, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Ruffle Set | Black Sea", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_grande.jpg?v=1655833929", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-ruffle-set-black-sea', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["ALL BLACK EVERYTHING","All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Ruffle Sets","Swimwear","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "LG", } }, { 'item_id' : 6731880431660, 'sku' : "59020011514", 'variantId' : 40345961889836, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Ruffle Set | Black Sand", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_grande.jpg?v=1655833921", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-ruffle-set-black-sand', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Just Keep Swimming","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Ruffle Sets","Swimwear","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size - Two Piece Set" : "MD", } }, { 'item_id' : 6731904942124, 'sku' : "59155046110", 'variantId' : 39860622688300, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Ruffle Set | Beach Bum", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_grande.jpg?v=1655833919", 'productURL' : 'https://www.rubylove.com/products/period-swimwear-ruffle-set-beach-bum', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL Swim Two Piece - Prints \u0026 Solids","Swim - Two-Piece - Ruffle Sets","Swimwear","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Women Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size - Two Piece Set" : "XXS", } }, { 'item_id' : 6731905368108, 'sku' : "59185034913", 'variantId' : 39860625539116, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Period Swimwear Tank Set | Blue Chains", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_grande.jpg?v=1655834940", 'productURL' : 'https://www.rubylove.com/products/teen-period-swimwear-tank-set-blue-chains', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL TEEN Two-Piece","Swim - Two-Piece - Tank Sets","Swim Two-Piece","Swimwear","Teen Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Teen Swim - Two-Piece - Tank Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size" : "SM", } }, { 'item_id' : 6731905204268, 'sku' : "59192046215", 'variantId' : 40438474866732, 'productType' : "All Products", 'item_category' : "All Products", 'item_list_name' : "All Products", 'item_list_id' : "All Products", 'item_name' : "Teen Period Swimwear Ruffle Set | Rose Dreams", 'price' : "119.99", 'imageURL' : "https://www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_grande.jpg?v=1655834891", 'productURL' : 'https://www.rubylove.com/products/teen-period-swimwear-ruffle-set-rose-dreams', 'brand' : "Ruby Love", 'comparePrice' : "0.00", 'categories' : ["All Products","All Products","Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","RL TEEN Two-Piece","Summer SALE ☀️","Swimwear","Teen Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","Teen Swim - Two-Piece - Ruffle Sets","Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'productOptions' : { "Size - Two Piece Set" : "LG", } }, ] }; var collections = { 'productList' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'pageType' : 'Collection', 'event' : 'Collection' }; dataLayer.push(product); dataLayer.push(collections); if(__DL__.debug){ console.log("Collections"+" :"+JSON.stringify(product, null, " ")); console.log("Collections"+" :"+JSON.stringify(collections, null, " ")); } /** DATALAYER: Product Page * Fire on all Product View pages. */ if (template.match(/.*product.*/gi) && !template.match(/.*collection.*/gi)) { sku = ''; var product = { 'products': [{ 'item_id' : null, 'sku' : null, 'variantId' : null, 'productType' : null, 'item_category' : null, 'item_list_name' : null, 'item_list_id' : null, 'item_name' : null, 'price' : "", 'description' : "", 'imageURL' : "https://www.rubylove.com/cdn/shopifycloud/shopify/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_grande.gif", 'productURL' : 'https://www.rubylove.com', 'brand' : "Ruby Love", 'comparePrice' : "", 'categories' : [], 'currentCategory' : "Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors", 'currency' : "USD", 'productOptions' : { } }] }; function productView(){ var sku = null; dataLayer.push(product, { 'pageType' : 'Product', 'event' : 'Product'}); if(__DL__.debug){ console.log("Product"+" :"+JSON.stringify(product, null, " ")); } } productView(); $(__DL__.cartTriggers).click(function(){ var skumatch = null; if(sku != skumatch){ productView(); } }); } /** DATALAYER: Cart View * Fire anytime a user views their cart (non-dynamic) */ /** * DATALAYER Variable * Checkout & Transaction Data */ __DL__products = []; transactionData = { 'transactionNumber' : null, 'transactionId' : null, 'transactionAffiliation' : "Ruby Love", 'transactionTotal' : "", 'transactionTax' : "", 'transactionShipping' : "", 'transactionSubtotal' : "", 'products': __DL__products }; if(__DL__.debug == true){ /** DATALAYER: Transaction */ if(document.location.pathname.match(/.*thank\_you.*/g)){ dataLayer.push(transactionData,{ 'pageType' :'Transaction', 'event' :'Transaction' }); console.log("Transaction Data"+" :"+JSON.stringify(transactionData, null, " ")); } } /** DATALAYER: Checkout */ if(Shopify.Checkout){ if(Shopify.Checkout.step){ if(Shopify.Checkout.step.length > 0){ if (Shopify.Checkout.step === 'contact_information'){ dataLayer.push(transactionData,{ 'event' :'Customer Information', 'pageType' :'Customer Information'}); console.log("Customer Information - Transaction Data"+" :"+JSON.stringify(transactionData, null, " ")); }else if (Shopify.Checkout.step === 'shipping_method'){ dataLayer.push(transactionData,{ 'event' :'Shipping Information', 'pageType' :'Shipping Information'}); console.log("Shipping - Transaction Data"+" :"+JSON.stringify(transactionData, null, " ")); }else if( Shopify.Checkout.step === "payment_method" ){ dataLayer.push(transactionData,{ 'event' :'Add Payment Info', 'pageType' :'Add Payment Info'}); console.log("Payment - Transaction Data"+" :"+JSON.stringify(transactionData, null, " ")); } } if(__DL__.debug == true){ /** DATALAYER: Transaction */ if(Shopify.Checkout.page == "thank_you"){ dataLayer.push(transactionData,{ 'pageType' :'Transaction', 'event' :'Transaction' }); console.log("Transaction Data"+" :"+JSON.stringify(transactionData, null, " ")); } }else{ /** DATALAYER: Transaction */ if(Shopify.Checkout.page == "thank_you"){ dataLayer.push(transactionData,{ 'pageType' :'Transaction', 'event' :'Transaction' }); } } } } /** DATALAYER: All Pages * Fire all pages trigger after all additional dataLayers have loaded. */ dataLayer.push({ 'event': 'DataLayer Loaded' }); console.log('DATALAYER: DataLayer Loaded.'); /********************** * DATALAYER EVENT BINDINGS ***********************/ /** DATALAYER: * Add to Cart / Dynamic Cart View * Fire all pages trigger after all additional dataLayers have loaded. */ $(document).ready(function() { /** DATALAYER: Search Results */ var searchPage = new RegExp(__DL__.searchPage, "g"); if(document.location.pathname.match(searchPage)){ var search = { 'searchTerm' : __DL__.searchTermQuery, 'pageType' : "Search", 'event' : "Search" }; dataLayer.push(search); if(__DL__.debug){ console.log("Search"+" :"+JSON.stringify(search, null, " ")); } } /** DATALAYER: Cart */ // stage cart data function mapJSONcartData(){ jQuery.getJSON('/cart.js', function (response) { // get Json response __DL__.cart = response; var cart = { 'products': __DL__.cart.items.map(function (line_item) { return { 'item_id' : line_item.id, 'sku' : line_item.sku, 'variant' : line_item.variant_id, 'item_name': line_item.title, 'price' : (line_item.price/100), 'quantity' : line_item.quantity } }), 'pageType' : 'Cart', 'event' : 'Cart' }; if(cart.products.length > 0){ dataLayer.push(cart); if (__DL__.debug) { console.log("Cart"+" :"+JSON.stringify(cart, null, " ")); } } }); } viewcartfire = 0; // view cart $(__DL__.viewCart).on('click', function (event) { if(viewcartfire !== 1){ viewcartfire = 1; // if dynamic cart is TRUE if (__DL__.dynamicCart) { cartCheck = setInterval(function () { // begin check interval if ($(__DL__.cartVisableSelector).length > 0) { // check visible selectors clearInterval(cartCheck); mapJSONcartData(); $(__DL__.removeCartTrigger).on('click', function (event) { // remove from cart var link = $(this).attr("href"); jQuery.getJSON(link, function (response) { // get Json response __DL__.removeCart = response; var removeFromCart = { 'products': __DL__.removeCart.items.map(function (line_item) { return { 'item_id' : line_item.id, 'sku' : line_item.sku, 'variant' : line_item.variant_id, 'item_name': line_item.title, 'price' : (line_item.price/100), 'quantity' : line_item.quantity } }), 'pageType' : 'Remove from Cart', 'event' : 'Remove from Cart' }; dataLayer.push(removeFromCart); if (__DL__.debug) { console.log("Cart"+" :"+JSON.stringify(removeFromCart, null, " ")); } }); }); } }, 500); } } }); // add to cart jQuery.getJSON('/cart.js', function (response) { // get Json response __DL__.cart = response; var cart = { 'products': __DL__.cart.items.map(function (line_item) { return { 'item_id' : line_item.id, 'sku' : line_item.sku, 'variant' : line_item.variant_id, 'item_name': line_item.title, 'price' : (line_item.price/100), 'quantity' : line_item.quantity } }) } __DL__.cart = cart; collection_cartIDs = []; collection_matchIDs = []; collection_addtocart = []; for (var i = __DL__.cart.products.length - 1; i >= 0; i--) { var x = parseFloat(__DL__.cart.products[i].variant); collection_cartIDs.push(x); } }); function __DL__addtocart(){ setTimeout(function(){ jQuery.getJSON('/cart.js', function (response) { // get Json response __DL__.cart = response; var cart = { 'products': __DL__.cart.items.map(function (line_item) { return { 'item_id' : line_item.id, 'sku' : line_item.sku, 'variant' : line_item.variant_id, 'item_name': line_item.title, 'price' : (line_item.price/100), 'quantity' : line_item.quantity } }) } __DL__.cart = cart; for (var i = __DL__.cart.products.length - 1; i >= 0; i--) { var x = parseFloat(__DL__.cart.products[i].variant); collection_matchIDs.push(x); } function arr_diff(b, c) { var a = [], diff = []; for (var i = 0; i < b.length; i++) { a[b[i]] = true } for (var i = 0; i < c.length; i++) { if (a[c[i]]) { delete a[c[i]] } else { a[c[i]] = true } } for (var k in a) { diff.push(k) } return diff }; var x = arr_diff(collection_cartIDs, collection_matchIDs).pop(); console.log(x); for (var i = __DL__.cart.products.length - 1; i >= 0; i--) { if (__DL__.cart.products[i].variant.toString() === x) { product = {'products':[__DL__.cart.products[i]]}; dataLayer.push({'products':product}); dataLayer.push(product); dataLayer.push({ 'pageType' : 'Add to Cart', 'event' : 'Add to Cart' }); if (__DL__.debug) { console.log("Add to Cart"+" :"+JSON.stringify(product, null, " ")); } } } }); },1000); // if dynamic cart is TRUE if (__DL__.dynamicCart) { console.log("dynamic"); var cartCheck = setInterval(function () { // begin check interval if ($(__DL__.cartVisableSelector).length > 0) { // check visible selectors clearInterval(cartCheck); mapJSONcartData(); $(__DL__.removeCartTrigger).on('click', function (event) { // remove from cart var link = $(this).attr("href"); jQuery.getJSON(link, function (response) { // get Json response __DL__.removeCart = response; var removeFromCart = { 'products': __DL__.removeCart.items.map(function (line_item) { return { 'item_id' : line_item.id, 'sku' : line_item.sku, 'variant' : line_item.variant_id, 'item_name': line_item.title, 'price' : (line_item.price/100), 'quantity' : line_item.quantity } }), 'pageType' : 'Remove from Cart', 'event' : 'Remove from Cart' }; dataLayer.push(removeFromCart); if (__DL__.debug) { console.log("Cart"+" :"+JSON.stringify(removeFromCart, null, " ")); } }); }); } }, 500); } } $(document).on('click', __DL__.cartTriggers, function() { __DL__addtocart(); }); /** * DATALAYER: Newsletter Subscription */ __DL__newsletter_fire = 0; $(document).on('click', __DL__.newsletterSelectors, function () { if(__DL__newsletter_fire !== 1){ __DL__newsletter_fire = 1; var newsletterCheck = setInterval(function () { // begin check interval if ($(__DL__.newsletterSuccess).length > 0) { // check visible selectors clearInterval(newsletterCheck); dataLayer.push({'event': 'Newsletter Subscription'}); } },500); } }); /** DATALAYER: Wishlist */ setTimeout( function(){ $(__DL__.wishlistSelector).on('click', function () { dataLayer.push(product, {'event': 'Add to Wishlist'}); if(__DL__.debug){ console.log("Wishlist"+" :"+JSON.stringify(product, null, " ")); } }); if(document.location.pathname == __DL__.wishlistPage){ var __DL__productLinks = $('[href*="product"]'); var __DL__prods = []; var __DL__links = []; var __DL__count = 1; $(__DL__productLinks).each(function(){ var href = $(this).attr("href"); if(!__DL__links.includes(href)){ __DL__links.push(href); $(this).attr("dataLayer-wishlist-item",__DL__count++); jQuery.getJSON(href, function (response) { // get Json response __DL__.wishlist = response; var wishlistproducts = { 'id' : __DL__.wishlist.product.id, 'name' : __DL__.wishlist.product.title, }; __DL__prods.push(wishlistproducts); }); } }); dataLayer.push({'products': __DL__prods, 'pageType' : 'Wishlist', 'event' : 'Wishlist'}); } var __DL__count = 1; var wishlistDel = $(__DL__.removeWishlist); wishlistDel.each(function(){ $(this).attr("dataLayer-wishlist-item-del",__DL__count++); }); $(__DL__.removeWishlist).on('click', function(){ console.log('click') var index = $(this).attr("dataLayer-wishlist-item-del"); var link = $("[dataLayer-wishlist-item="+index+"]").attr("href"); console.log(index) console.log(link) jQuery.getJSON(link, function (response) { // get Json response __DL__.wishlist = response; var wishlistproducts = { 'id' : __DL__.wishlist.product.id, 'name' : __DL__.wishlist.product.title, }; dataLayer.push({'products': wishlistproducts, 'pageType' : 'Wishlist', 'event' : 'Wishlist Delete Product'}); }); }) }, 3000); /** DATALAYER: CTAs */ $(__DL__.ctaSelectors).on('click', function () { var ctaCheck = setInterval(function () { // begin check interval if ($(__DL__.ctaSuccess).length > 0) { // check visible selectors clearInterval(ctaCheck); dataLayer.push({'event': 'CTA'}); } },500); }); /** DATALAYER: Promo Subscriptions */ $(__DL__.promoSubscriptionsSelectors).on('click', function () { var ctaCheck = setInterval(function () { // begin check interval if ($(__DL__.promoSuccess).length > 0) { // check visible selectors clearInterval(ctaCheck); dataLayer.push({'event': 'Promo Subscription'}); } },500); }); }); // document ready } }, 500); </script> <!-- Mutesix GA4 Data layer --> <link rel="shortcut icon" href="//www.rubylove.com/cdn/shop/files/favicon_32x32.png?v=1637306351" type="image/png"> <title>Two-Piece Period Proof Swimwear | Ruby Love</title> <meta name="description" content="Ruby Love offers underwear and swimwear with leak-proof protection. Shop our Two-Piece Period Swimwear designed specifically for water activity."><!-- /snippets/social-meta-tags.liquid --> <meta property="og:site_name" content="Ruby Love"> <meta property="og:url" content="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits"> <meta property="og:title" content="Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"> <meta property="og:type" content="product.group"> <meta property="og:description" content="Ruby Love offers underwear and swimwear with leak-proof protection. Shop our Two-Piece Period Swimwear designed specifically for water activity."> <meta property="og:image" content="http://www.rubylove.com/cdn/shop/collections/Screenshot_2022-04-19_at_17.08.26_1200x1200.png?v=1650377351"> <meta property="og:image:secure_url" content="https://www.rubylove.com/cdn/shop/collections/Screenshot_2022-04-19_at_17.08.26_1200x1200.png?v=1650377351"> <meta name="twitter:site" content="@shoprubylove"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors"> <meta name="twitter:description" content="Ruby Love offers underwear and swimwear with leak-proof protection. Shop our Two-Piece Period Swimwear designed specifically for water activity."> <meta property="theme:layout" content="theme"> <meta property="theme:template" content="collection"> <style>:root{--settings-social-twitter-link:"https:\/\/twitter.com\/shoprubylove";--settings-social-facebook-link:"https:\/\/www.facebook.com\/myrubylove";--settings-social-pinterest-link:"https:\/\/www.pinterest.com\/shoprubylove\/";--settings-social-instagram-link:"https:\/\/www.instagram.com\/shoprubylove\/";--settings-social-tumblr-link:"https:\/\/www.tiktok.com\/@shoprubylove";--settings-social-youtube-link:"https:\/\/www.youtube.com\/shoprubylove";--settings-favicon:"\/\/www.rubylove.com\/cdn\/shop\/files\/favicon.png?v=1637306351";--settings-store-logo:"\/\/www.rubylove.com\/cdn\/shop\/files\/Ruby_Fractal_Heart_logo_2.png?v=1645824254";--settings-placeholder:"\/\/www.rubylove.com\/cdn\/shop\/files\/Ruby_Fractal_Heart_logo_2.png?v=1645824254"}</style><style> :root{ } </style> <link rel="stylesheet" href="//www.rubylove.com/cdn/shop/t/160/assets/main.build.css?v=137036134316831806191720456903&enable_css_minification=1" media="print" onload="this.media='all'; this.onload = null"> <link rel="stylesheet" href="//www.rubylove.com/cdn/shop/t/160/assets/styles.css?v=114982557787335597851718395766&enable_css_minification=1" media="print" onload="this.media='all'; this.onload = null"> <script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/55202512940/digital_wallets/dialog"> <meta name="shopify-checkout-api-token" content="38e4a5d95c09fa42f7ba26ca953b0f58"> <meta id="in-context-paypal-metadata" data-shop-id="55202512940" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> <link rel="alternate" type="application/atom+xml" title="Feed" href="/collections/rl-two-piece-period-swimsuits.atom" /> <link rel="alternate" hreflang="x-default" href="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits"> <link rel="alternate" hreflang="en-CA" href="https://www.rubylove.com/en-ca/collections/rl-two-piece-period-swimsuits"> <link rel="alternate" hreflang="en-AU" href="https://www.rubylove.com/en-au/collections/rl-two-piece-period-swimsuits"> <link rel="alternate" hreflang="en-US" href="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits"> <link rel="alternate" type="application/json+oembed" href="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits.oembed"> <script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script> <link rel="preconnect" href="https://shop.app" crossorigin="anonymous"> <script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=55202512940" crossorigin="anonymous"></script> <script id="apple-pay-shop-capabilities" type="application/json">{"shopId":55202512940,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/55202512940","merchantName":"Ruby Love","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Ruby Love","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script> <script id="shopify-features" type="application/json">{"accessToken":"38e4a5d95c09fa42f7ba26ca953b0f58","betas":["rich-media-storefront-analytics"],"domain":"www.rubylove.com","predictiveSearch":true,"shopId":55202512940,"smart_payment_buttons_url":"https:\/\/www.rubylove.com\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/spb.en.js","dynamic_checkout_cart_url":"https:\/\/www.rubylove.com\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/dynamic-checkout-cart.en.js","locale":"en"}</script> <script>var Shopify = Shopify || {}; Shopify.shop = "rubylovedev.myshopify.com"; Shopify.locale = "en"; Shopify.currency = {"active":"USD","rate":"1.0"}; Shopify.country = "US"; Shopify.theme = {"name":"Production (Permanent Live)","id":132881121324,"schema_name":"Buildify","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; Shopify.theme.handle = "null"; Shopify.theme.style = {"id":null,"handle":null}; Shopify.cdnHost = "www.rubylove.com/cdn"; Shopify.routes = Shopify.routes || {}; Shopify.routes.root = "/";</script> <script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script> <script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script> <script>window.ShopifyPay = window.ShopifyPay || {}; window.ShopifyPay.apiHost = "shop.app\/pay";</script> <script id="shop-js-analytics" type="application/json">{"pageType":"collection"}</script> <script> window.Shopify = window.Shopify || {}; if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; window.Shopify.featureAssets['shop-js'] = {"login-button":["modules/client.login-button_PyB0yoLG.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"shop-pay-payment-request":["modules/client.shop-pay-payment-request_BSPYpBgE.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js","modules/chunk.shop-pay_DNi9j_X8.esm.js"],"payment-terms":["modules/client.payment-terms_BF5x7ymI.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"pay-button":["modules/client.pay-button_Cc3hmsbn.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"discount-app":["modules/client.discount-app_Dl148wJa.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"avatar":["modules/client.avatar_BTnouDA3.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/client.init-shop-for-new-customer-accounts_BXLde5-4.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/client.init-shop-email-lookup-coordinator_CSM1j0yH.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js"],"init-customer-accounts-sign-up":["modules/client.init-customer-accounts-sign-up_BDGFEblG.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"],"init-customer-accounts":["modules/client.init-customer-accounts_CO51Msyl.en.esm.js","modules/chunk.common_Ckk3SCTm.esm.js","modules/client.login-button_PyB0yoLG.en.esm.js"]}; </script> <script>(function() { function asyncLoad() { var urls = ["https:\/\/accessibility-assistant.cartcoders.com\/storage\/shop_js\/3SR7HFAM5OAO9NQY.js?eraseCache=true\u0026shop=rubylovedev.myshopify.com","https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=rubylovedev.myshopify.com","https:\/\/geolocation-recommendations.shopifyapps.com\/locale_bar\/script.js?shop=rubylovedev.myshopify.com","https:\/\/app.kiwisizing.com\/web\/js\/dist\/kiwiSizing\/plugin\/SizingPlugin.prod.js?v=311\u0026shop=rubylovedev.myshopify.com","\/\/cdn.shopify.com\/proxy\/7e4a100941d38fbedb18b502c3d9320925331294c8199beae8d5ad25c2807250\/bingshoppingtool-t2app-prod.trafficmanager.net\/uet\/tracking_script?shop=rubylovedev.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/cdn.shopify.com\/s\/files\/1\/0552\/0251\/2940\/t\/124\/assets\/zendesk-embeddable.js?v=1667921492\u0026shop=rubylovedev.myshopify.com","https:\/\/geolocation-recommendations.shopifyapps.com\/selectors\/script.js?shop=rubylovedev.myshopify.com","https:\/\/reconvert-cdn.com\/assets\/js\/store_reconvert_node.js?v=2\u0026scid=ZTQ2NmQ2MDk2YjZmMTRlODQ5ZWYwOTFjYzdlMjc0ZTUuZTk2ODBlMDhkMGMzY2QyNDhiYjNjN2Q4ZDhkOGZjOWE=\u0026shop=rubylovedev.myshopify.com","https:\/\/reconvert-cdn.com\/assets\/js\/reconvert_script_tags.mini.js?scid=aVRqUGF3NGViN0dOalJvRFMzYUgzUT09\u0026shop=rubylovedev.myshopify.com","https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/c15afd4ff365f817e1fd7f4b5\/497775afae53658a4509bda15.js?shop=rubylovedev.myshopify.com","https:\/\/store-credit.merchantyard.com\/js\/integrations\/script.js?shop=rubylovedev.myshopify.com","https:\/\/giftbox.ds-cdn.com\/static\/main.js?shop=rubylovedev.myshopify.com","\/\/cdn.shopify.com\/proxy\/aa759681f8adb6d1ba87bee09888e692049e9738b8009f19003214653744b233\/app.retention.com\/shopify\/reids.js?shop=rubylovedev.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; for (var i = 0; i < urls.length; i++) { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = urls[i]; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } }; if(window.attachEvent) { window.attachEvent('onload', asyncLoad); } else { window.addEventListener('load', asyncLoad, false); } })();</script> <script id="__st">var __st={"a":55202512940,"offset":-18000,"reqid":"146d8b8d-8bad-4e44-9908-15347c545199-1733002362","pageurl":"www.rubylove.com\/collections\/rl-two-piece-period-swimsuits","u":"9a28d3e102c2","p":"collection","rtyp":"collection","rid":268387024940};</script> <script>window.ShopifyPaypalV4VisibilityTracking = true;</script> <script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');function s(t,e,n=!1){try{const o=window.sessionStorage;for(const[n,c]of Object.entries(JSON.parse(o.getItem(e))))t.elements[n]&&(t.elements[n].value=c);n&&o.removeItem(e)}catch{}}const a='form_key',i=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response','password'],u=()=>{try{return window.sessionStorage}catch{return}},m=t=>t.elements[a],f='form_type',d='cptcha';function p(t){t.dataset[d]=!0}const l=window,h=l.document,_='Shopify',y='ce_forms',E='captcha';let v=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe','https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js',T={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=l[_][y],c=o.bindForm;if(c)return c(t,g,e,T).then(n);o.q.push([[t,g,e,T],n]),v||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:'https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.4.0.iife.js'})),v=!0)});var g,T;l[_]=l[_]||{},l[_][y]=l[_][y]||{},l[_][y].q=[],l[_][E]=l[_][E]||{},l[_][E].protect=function(t,e){n(t,void 0,e),p(t)},Object.freeze(l[_][E]),function(t,e,n,l,h,_){const[y,E,v,g]=function(t,e,n){const s=e?o:[],a=t?c:[],i=[...s,...a],u=[...o],m=r(i),f=r(s),d=n&&r(i.filter((([t,e])=>n.includes(e)))),p=r(u),l=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];return[l(m),l(f),l(d),l(p)]}(l,h,_),T=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},S=t=>y().includes(t);t.addEventListener('submit',(t=>{const e=T(t);if(!e)return;const n=S(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=m(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!u())return;!function(t){const e=u();if(!e)return;const n=m(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){m(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:a})),t.elements[a].value=e}(t,e),function(t,e){const n=u();if(!n)return;const o=[...t.querySelectorAll('input[type="password"]')].map((({name:t})=>t)),c=[...i,...o],r={};for(const[s,a]of new FormData(t).entries())c.includes(s)||(r[s]=a);n.setItem(e,JSON.stringify(r))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const w=(t,e)=>{t&&!t.dataset[d]&&(n(t,e.some((e=>e===t))),p(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=T(t);S(e)&&w(e,E())}));const A=e.get('form_key'),b=e.get(f),I=A&&b;t.addEventListener('DOMContentLoaded',(()=>{const t=E();if(I)for(const e of t)e.elements[f].value===b&&s(e,A);[...new Set([...v(),...y().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>w(e,t)))}))}(h,new URLSearchParams(l.location.search),n,!0,!0,['guest_login'])})()}();</script> <script integrity="sha256-EGCDRYTvIEOXsReXgqGwkAR+5Dl8tickSrieA/ZcQwc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.rubylove.com/cdn/shopifycloud/shopify/assets/storefront/load_feature-1060834584ef204397b1179782a1b090047ee4397cb627244ab89e03f65c4307.js" crossorigin="anonymous"></script> <script crossorigin="anonymous" defer="defer" src="//www.rubylove.com/cdn/shopifycloud/shopify/assets/shopify_pay/storefront-80e528be853eac23af2454534897ca9536b1d3d04aa043b042f34879a3c111c8.js?v=20220906"></script> <script integrity="sha256-HAs5a9TQVLlKuuHrahvWuke+s1UlxXohfHeoYv8G2D8=" data-source-attribution="shopify.dynamic-checkout" defer="defer" src="//www.rubylove.com/cdn/shopifycloud/shopify/assets/storefront/features-1c0b396bd4d054b94abae1eb6a1bd6ba47beb35525c57a217c77a862ff06d83f.js" crossorigin="anonymous"></script> <style id="shopify-dynamic-checkout-cart">@media screen and (min-width: 750px) { #dynamic-checkout-cart { min-height: 50px; } } @media screen and (max-width: 750px) { #dynamic-checkout-cart { min-height: 240px; } } </style><script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-684750780"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'AW-684750780'); </script> <!-- Gem_Page_Header_Script --> <link rel="preconnect" href="https://ucarecdn.com"> <link rel="dns-prefetch" href="https://ucarecdn.com"> <link rel="preconnect" href="https://d1um8515vdn9kb.cloudfront.net"> <link rel="dns-prefetch" href="https://d1um8515vdn9kb.cloudfront.net"> <link rel="preconnect" href="https://maxcdn.bootstrapcdn.com"> <link rel="dns-prefetch" href="https://maxcdn.bootstrapcdn.com"> <link rel="preconnect" href="https://fonts.gstatic.com"> <link rel="dns-prefetch" href="https://fonts.gstatic.com"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="dns-prefetch" href="https://fonts.googleapis.com"> <!-- End_Gem_Page_Header_Script --> <style> .template-page .main-banner .main-banner__image { object-fit: cover; object-position: 10% 30%; } </style> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "OnlineStore", "name": "Ruby Love", "description": "Certified PFAS-free reusable period underwear, athletic wear and swimwear.", "image": "https://cdn.shopify.com/s/files/1/0552/0251/2940/files/RUBY-LOVE-PERIOD-UNDERWEAR.jpg", "logo": "https://cdn.shopify.com/s/files/1/0552/0251/2940/files/Ruby_Fractal_Heart_logo_2_200x.png", "parentOrganization": { "@type": "OnlineBusiness", "name": "Ruby Love, Inc.", "url": "https://www.rubylove.com" }, "address": { "@type": "PostalAddress", "addressCountry": "United States of America", "addressLocality": "New York" }, "aggregateRating": { "@type": "AggregateRating", "ratingCount": 1899, "ratingValue": 4.9 }, "interactionStatistic": { "@type": "InteractionCounter", "userInteractionCount": 19000000, "interactionType": "https://schema.org/TradeAction" }, "foundingDate": "2015-12-05" } </script> <script src="https://www.googleoptimize.com/optimize.js?id=OPT-TV3FNX8"></script> <!-- Taboola Pixel Code --> <script type='text/javascript'> window._tfa = window._tfa || []; window._tfa.push({notify: 'event', name: 'page_view', id: 1707016}); !function (t, f, a, x) { if (!document.getElementById(x)) { t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f); } }(document.createElement('script'), document.getElementsByTagName('script')[0], '//cdn.taboola.com/libtrc/unip/1707016/tfa.js', 'tb_tfa_script'); </script> <!-- End of Taboola Pixel Code --> <!-- Start of clarity Code --> <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", "mpxgayobsk"); </script> <!-- End of clarity Code --> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-SK32V0QZ6M"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-942523566'); </script> <script> window.StoreCreditInit = { shop: 'rubylovedev.myshopify.com', cashback_widget_status: 0 } </script> <!-- BEGIN app block: shopify://apps/bundle-builder/blocks/bundle-page-redirect/78802baf-205d-4d1d-908c-fae911f24e36 --> <!-- END app app block --><script src="https://cdn.shopify.com/extensions/36ef8575-758f-41aa-a0a7-9b302dc1885f/smile-io-151/assets/smile-loader.js" type="text/javascript" defer="defer"></script> <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> <script>(function(){if ("sendBeacon" in navigator && "performance" in window) {var session_token = document.cookie.match(/_shopify_s=([^;]*)/);function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 55202512940,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token: session_token && session_token.length === 2 ? session_token[1] : "",page_type: "collection"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script> <script id="web-pixels-manager-setup">(function d(d,e,r,a,n){var o,i,t,s,l=(i=(o={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(12[7-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,t=o.legacy,s=navigator.userAgent,i.test(s)?"modern":(t.test(s),"legacy"));window.Shopify=window.Shopify||{};var c=window.Shopify;c.analytics=c.analytics||{};var u=c.analytics;u.replayQueue=[],u.publish=function(d,e,r){return u.replayQueue.push([d,e,r]),!0};try{self.performance.mark("wpm:start")}catch(d){}var h=[r,"/wpm","/b",n,l.substring(0,1),".js"].join("");!function(d){var e=d.src,r=d.async,a=void 0===r||r,n=d.onload,o=d.onerror,i=document.createElement("script"),t=document.head,s=document.body;i.async=a,i.src=e,n&&i.addEventListener("load",n),o&&i.addEventListener("error",o),t?t.appendChild(i):s?s.appendChild(i):console.error("Did not find a head or body element to append the script")}({src:h,async:!0,onload:function(){var r=window.webPixelsManager.init(d);e(r);var a=window.Shopify.analytics;a.replayQueue.forEach((function(d){var e=d[0],a=d[1],n=d[2];r.publishCustomEvent(e,a,n)})),a.replayQueue=[],a.publish=r.publishCustomEvent,a.visitor=r.visitor},onerror:function(){var e=d.storefrontBaseUrl.replace(/\/$/,""),r="".concat(e,"/.well-known/shopify/monorail/unstable/produce_batch"),n=JSON.stringify({metadata:{event_sent_at_ms:(new Date).getTime()},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:a||"latest",bundle_target:l,page_url:self.location.href,status:"failed",surface:d.surface,error_msg:"".concat(h," has failed to load")},metadata:{event_created_at_ms:(new Date).getTime()}}]});try{if(self.navigator.sendBeacon.bind(self.navigator)(r,n))return!0}catch(d){}var o=new XMLHttpRequest;try{return o.open("POST",r,!0),o.setRequestHeader("Content-Type","text/plain"),o.send(n),!0}catch(d){console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging a load error.")}return!1}})})({shopId: 55202512940,storefrontBaseUrl: "https://www.rubylove.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"164921388","configuration":"{\"pixel_id\":\"893202284101147\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"8d894c63179843e74a9691414b5ad83d","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"89554988","configuration":"{\"trackingId\":\"KphZQSKYlY5U\",\"organizationUid\":\"42e84e7d-110b-4c28-ba43-4ab34e280cc8\",\"storeDomain\":\"rubylovedev.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4feb61e5970d6783a027ce2004ab588a","type":"APP","apiClientId":1366435,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"49381420","configuration":"{\"tagID\":\"2619264319141\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4fd0680eed907adaf3f85849c393d688","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"22085676","configuration":"{\"accountID\":\"c50d5c17-2934-4b38-866d-122c47a00221\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"69b699c6739a047a75311abd9eb4c163","type":"APP","apiClientId":2441839,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"9207852","configuration":"{\"myshopifyDomain\":\"rubylovedev.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e32653096b768840c4e834ea506d7953","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"24182828","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES","SALE_OF_DATA"],"name":" listrak-pixel"},{"id":"28606508","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Taboola Pixel"},{"id":"32210988","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Tag Manager"},{"id":"41156652","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Retention"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0220","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Ruby Love","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"rubylovedev.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.rubylove.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"purchasingCompany":null},},function pageEvents(webPixelsManagerAPI) {webPixelsManagerAPI.publish("page_viewed", {});webPixelsManagerAPI.publish("collection_viewed", {"collection":{"id":"268387024940","title":"Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors","productVariants":[{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Black Sea","vendor":"vendor-unknown","id":"6731879874604","untranslatedTitle":"Period Swimwear Tank Set | Black Sea","url":"\/products\/period-swimwear-tank-set-black-sea","type":"All Products"},"id":"39860526448684","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_d129f82c0da64efbba94edb4630d6941_mv2.jpg?v=1655834035"},"sku":"59078042210","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Wild Berry","vendor":"vendor-unknown","id":"6731905433644","untranslatedTitle":"Period Swimwear Tank Set | Wild Berry","url":"\/products\/period-swimwear-tank-set-wild-berry","type":"All Products"},"id":"40894320279596","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587.jpg?v=1655834097"},"sku":"59194045815","title":"LG","untranslatedTitle":"LG"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Bubbles","vendor":"vendor-unknown","id":"6731905302572","untranslatedTitle":"Period Swimwear Tank Set | Bubbles","url":"\/products\/period-swimwear-tank-set-bubbles","type":"All Products"},"id":"40708115136556","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2.jpg?v=1655834052"},"sku":"59191045710","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Ruffle Set | Tropical Vacation","vendor":"vendor-unknown","id":"6731880202284","untranslatedTitle":"Period Swimwear Ruffle Set | Tropical Vacation","url":"\/products\/period-swimwear-ruffle-set-tropical-vacation","type":"All Products"},"id":"43638873030700","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83.jpg?v=1655833982"},"sku":"59109026810","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Napa","vendor":"vendor-unknown","id":"6731904647212","untranslatedTitle":"Period Swimwear Tank Set | Napa","url":"\/products\/period-swimwear-tank-set-napa-plus-size-collection","type":"All Products"},"id":"41717137866796","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92.jpg?v=1655834092"},"sku":"59074026117","title":"Two-Piece \/ XXS","untranslatedTitle":"Two-Piece \/ XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Pink Sand \u0026 Beach","vendor":"vendor-unknown","id":"6731904417836","untranslatedTitle":"Period Swimwear Tank Set | Pink Sand \u0026 Beach","url":"\/products\/period-swimwear-tank-set-pink-sand-beach-plus-size-collection","type":"All Products"},"id":"41048425267244","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297.jpg?v=1655834094"},"sku":"59150045314","title":"Two-Piece \/ MD","untranslatedTitle":"Two-Piece \/ MD"},{"price":{"amount":254.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Bundle | Select 3 of any black swimwear style","vendor":"Ruby Love","id":"6935299522604","untranslatedTitle":"Period Swimwear Bundle | Select 3 of any black swimwear style","url":"\/products\/period-swimwear-bundle-select-3-of-any-black-swimwear-style-1","type":""},"id":"40616531329068","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2.webp?v=1661536883"},"sku":"61113055310","title":"XXS \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","untranslatedTitle":"XXS \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Classic Ruby","vendor":"vendor-unknown","id":"6731893407788","untranslatedTitle":"Period Swimwear Tank Set | Classic Ruby","url":"\/products\/period-swimwear-tank-set-classic-ruby","type":"All Products"},"id":"40564711751724","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b.jpg?v=1655834059"},"sku":"59034042410","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Blue Waters (Navy)","vendor":"vendor-unknown","id":"6731880038444","untranslatedTitle":"Period Swimwear Tank Set | Blue Waters (Navy)","url":"\/products\/period-swimwear-tank-set-blue-waters","type":"All Products"},"id":"39860527431724","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e.jpg?v=1655834044"},"sku":"59111042310","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Ruffle Set | Black Sea","vendor":"vendor-unknown","id":"6731879841836","untranslatedTitle":"Period Swimwear Ruffle Set | Black Sea","url":"\/products\/period-swimwear-ruffle-set-black-sea","type":"All Products"},"id":"39860526186540","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2.jpg?v=1655833929"},"sku":"59021030015","title":"LG","untranslatedTitle":"LG"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Ruffle Set | Black Sand","vendor":"vendor-unknown","id":"6731880431660","untranslatedTitle":"Period Swimwear Ruffle Set | Black Sand","url":"\/products\/period-swimwear-ruffle-set-black-sand","type":"All Products"},"id":"40345961889836","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa.jpg?v=1655833921"},"sku":"59020011514","title":"MD","untranslatedTitle":"MD"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Ruffle Set | Beach Bum","vendor":"vendor-unknown","id":"6731904942124","untranslatedTitle":"Period Swimwear Ruffle Set | Beach Bum","url":"\/products\/period-swimwear-ruffle-set-beach-bum","type":"All Products"},"id":"39860622688300","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2.jpg?v=1655833919"},"sku":"59155046110","title":"XXS","untranslatedTitle":"XXS"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Period Swimwear Tank Set | Blue Chains","vendor":"vendor-unknown","id":"6731905368108","untranslatedTitle":"Period Swimwear Tank Set | Blue Chains","url":"\/products\/teen-period-swimwear-tank-set-blue-chains","type":"All Products"},"id":"39860625539116","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2.jpg?v=1655834940"},"sku":"59185034913","title":"SM","untranslatedTitle":"SM"},{"price":{"amount":119.99,"currencyCode":"USD"},"product":{"title":"Teen Period Swimwear Ruffle Set | Rose Dreams","vendor":"vendor-unknown","id":"6731905204268","untranslatedTitle":"Teen Period Swimwear Ruffle Set | Rose Dreams","url":"\/products\/teen-period-swimwear-ruffle-set-rose-dreams","type":"All Products"},"id":"40438474866732","image":{"src":"\/\/www.rubylove.com\/cdn\/shop\/products\/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c.jpg?v=1655834891"},"sku":"59192046215","title":"LG","untranslatedTitle":"LG"}]}});},"https://www.rubylove.com/cdn","1518c2ba4d2b3301a1e3cb6576947ef22edf7bb6","3c762e5aw5b983e43pc2dc4883m545d5a27",);</script> <script>window.ShopifyAnalytics = window.ShopifyAnalytics || {}; window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; window.ShopifyAnalytics.meta.currency = 'USD'; var meta = {"products":[{"id":6731879874604,"gid":"gid:\/\/shopify\/Product\/6731879874604","vendor":"vendor-unknown","type":"All Products","variants":[{"id":39860526448684,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - XXS","public_title":"XXS","sku":"59078042210"},{"id":43706114048044,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - XS","public_title":"XS","sku":"59078042212"},{"id":39860526514220,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - MD","public_title":"MD","sku":"59078042214"},{"id":41074637799468,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - LG","public_title":"LG","sku":"59078042215"},{"id":39860526546988,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - XL","public_title":"XL","sku":"59078042216"},{"id":39860526415916,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - XXL","public_title":"XXL","sku":"59078042217"},{"id":39860526645292,"price":11999,"name":"Period Swimwear Tank Set | Black Sea - 3XL","public_title":"3XL","sku":"59078042218"}]},{"id":6731905433644,"gid":"gid:\/\/shopify\/Product\/6731905433644","vendor":"vendor-unknown","type":"All Products","variants":[{"id":40894320279596,"price":11999,"name":"Period Swimwear Tank Set | Wild Berry - LG","public_title":"LG","sku":"59194045815"},{"id":39860625866796,"price":11999,"name":"Period Swimwear Tank Set | Wild Berry - XL","public_title":"XL","sku":"59194045816"}]},{"id":6731905302572,"gid":"gid:\/\/shopify\/Product\/6731905302572","vendor":"vendor-unknown","type":"All Products","variants":[{"id":40708115136556,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - XXS","public_title":"XXS","sku":"59191045710"},{"id":39860625276972,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - XS","public_title":"XS","sku":"59191045712"},{"id":39860625244204,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - SM","public_title":"SM","sku":"59191045713"},{"id":39860625211436,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - MD","public_title":"MD","sku":"59191045714"},{"id":39860625342508,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - LG","public_title":"LG","sku":"59191045715"},{"id":39860625309740,"price":11999,"name":"Period Swimwear Tank Set | Bubbles - XL","public_title":"XL","sku":"59191045716"}]},{"id":6731880202284,"gid":"gid:\/\/shopify\/Product\/6731880202284","vendor":"vendor-unknown","type":"All Products","variants":[{"id":43638873030700,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - XXS","public_title":"XXS","sku":"59109026810"},{"id":43638973202476,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - SM","public_title":"SM","sku":""},{"id":40534025207852,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - MD","public_title":"MD","sku":"59109026814"},{"id":40534025240620,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - XL","public_title":"XL","sku":"59109026816"},{"id":40534025273388,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - 2XL","public_title":"2XL","sku":"59109026817"},{"id":39860528119852,"price":11999,"name":"Period Swimwear Ruffle Set | Tropical Vacation - 3XL","public_title":"3XL","sku":"59109026818"}]},{"id":6731904647212,"gid":"gid:\/\/shopify\/Product\/6731904647212","vendor":"vendor-unknown","type":"All Products","variants":[{"id":41717137866796,"price":11999,"name":"Period Swimwear Tank Set | Napa - Two-Piece \/ XXS","public_title":"Two-Piece \/ XXS","sku":"59074026117"}]},{"id":6731904417836,"gid":"gid:\/\/shopify\/Product\/6731904417836","vendor":"vendor-unknown","type":"All Products","variants":[{"id":41048425267244,"price":11999,"name":"Period Swimwear Tank Set | Pink Sand \u0026 Beach - Two-Piece \/ MD","public_title":"Two-Piece \/ MD","sku":"59150045314"},{"id":41048425300012,"price":11999,"name":"Period Swimwear Tank Set | Pink Sand \u0026 Beach - Two-Piece \/ LG","public_title":"Two-Piece \/ LG","sku":"59150045315"},{"id":39860620591148,"price":11999,"name":"Period Swimwear Tank Set | Pink Sand \u0026 Beach - Two-Piece \/ 3XL","public_title":"Two-Piece \/ 3XL","sku":"59150045318"}]},{"id":6935299522604,"gid":"gid:\/\/shopify\/Product\/6935299522604","vendor":"Ruby Love","type":"","variants":[{"id":40616531329068,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"XXS \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055310"},{"id":40616536113196,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"XXS \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055210"},{"id":40616536145964,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"XXS \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055410"},{"id":41686475833388,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"XXS \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054910"},{"id":41686478618668,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"XXS \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054810"},{"id":41686480814124,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"XXS \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055010"},{"id":41686483664940,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"XXS \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054510"},{"id":41686486384684,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"XXS \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054410"},{"id":41686489268268,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XXS \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"XXS \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054610"},{"id":42373624397868,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XS \/ ONE PIECE \/ MIX THE STYLES","public_title":"XS \/ ONE PIECE \/ MIX THE STYLES","sku":"61113054512"},{"id":40616531525676,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"S \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055313"},{"id":40616536506412,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"S \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055213"},{"id":40616536539180,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"S \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055413"},{"id":41686494183468,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"S \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054413"},{"id":41686491725868,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"S \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054513"},{"id":41686496247852,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - S \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"S \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054613"},{"id":40616531623980,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"M \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055314"},{"id":40616536703020,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"M \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055214"},{"id":40616536735788,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"M \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055414"},{"id":40616531591212,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"M \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054914"},{"id":40616536637484,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"M \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054814"},{"id":40616536670252,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"M \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055014"},{"id":41686500048940,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"M \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054414"},{"id":41686497067052,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"M \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054514"},{"id":41686502539308,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - M \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"M \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054614"},{"id":40616531722284,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"L \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055315"},{"id":40616536899628,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"L \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055215"},{"id":40616536932396,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"L \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055415"},{"id":40616531689516,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"L \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054915"},{"id":40616536834092,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"L \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054815"},{"id":40616536866860,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"L \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055015"},{"id":41686507028524,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"L \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054415"},{"id":41686505095212,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"L \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054515"},{"id":41686509682732,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - L \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"L \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054615"},{"id":40616531820588,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055316"},{"id":40616537096236,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055216"},{"id":40616537129004,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055416"},{"id":40616531787820,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054916"},{"id":40616537030700,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054816"},{"id":40616537063468,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"XL \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055016"},{"id":40616531755052,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054516"},{"id":40616536965164,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054416"},{"id":40616536997932,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054616"},{"id":40616531918892,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"2XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055317"},{"id":40616537292844,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"2XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055217"},{"id":40616537325612,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"2XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055417"},{"id":40616531886124,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"2XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054917"},{"id":40616537227308,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"2XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054817"},{"id":40616537260076,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"2XL \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055017"},{"id":40616531853356,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"2XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054517"},{"id":40616537161772,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"2XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054417"},{"id":40616537194540,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 2XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"2XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054617"},{"id":40616532017196,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","public_title":"3XL \/ TWO PIECE TANK \/ 2 CLASSIC BOTTOMS","sku":"61113055318"},{"id":40616537489452,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","public_title":"3XL \/ TWO PIECE TANK \/ 2 HIPSTER BOTTOMS","sku":"61113055218"},{"id":40616537522220,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","public_title":"3XL \/ TWO PIECE TANK \/ 2 MIXED BOTTOMS","sku":"61113055418"},{"id":40616531984428,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","public_title":"3XL \/ RACERBACK \/ 2 CLASSIC BOTTOMS","sku":"61113054918"},{"id":40616537423916,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","public_title":"3XL \/ RACERBACK \/ 2 HIPSTER BOTTOMS","sku":"61113054818"},{"id":40616537456684,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ RACERBACK \/ 2 MIXED BOTTOMS","public_title":"3XL \/ RACERBACK \/ 2 MIXED BOTTOMS","sku":"61113055018"},{"id":40616531951660,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","public_title":"3XL \/ ONE PIECE \/ 2 CLASSIC BOTTOMS","sku":"61113054518"},{"id":40616537358380,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","public_title":"3XL \/ ONE PIECE \/ 2 HIPSTER BOTTOMS","sku":"61113054418"},{"id":40616537391148,"price":25499,"name":"Period Swimwear Bundle | Select 3 of any black swimwear style - 3XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","public_title":"3XL \/ ONE PIECE \/ 2 MIXED BOTTOMS","sku":"61113054618"}]},{"id":6731893407788,"gid":"gid:\/\/shopify\/Product\/6731893407788","vendor":"vendor-unknown","type":"All Products","variants":[{"id":40564711751724,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - XXS","public_title":"XXS","sku":"59034042410"},{"id":40564711620652,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - XS","public_title":"XS","sku":"59034042412"},{"id":40564711653420,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - SM","public_title":"SM","sku":"59034042413"},{"id":39860580614188,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - MD","public_title":"MD","sku":"59034042414"},{"id":41074645663788,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - LG","public_title":"LG","sku":"59034042415"},{"id":43638952624172,"price":11999,"name":"Period Swimwear Tank Set | Classic Ruby - XL","public_title":"XL","sku":""}]},{"id":6731880038444,"gid":"gid:\/\/shopify\/Product\/6731880038444","vendor":"vendor-unknown","type":"All Products","variants":[{"id":39860527431724,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - XXS","public_title":"XXS","sku":"59111042310"},{"id":43729514790956,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - XS","public_title":"XS","sku":""},{"id":43729514823724,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - SM","public_title":"SM","sku":""},{"id":39860527235116,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - MD","public_title":"MD","sku":"59111042314"},{"id":40948729970732,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - LG","public_title":"LG","sku":"59111042315"},{"id":39860527300652,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - XL","public_title":"XL","sku":"59111042316"},{"id":39860527202348,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - XXL","public_title":"XXL","sku":"59111042317"},{"id":39860527398956,"price":11999,"name":"Period Swimwear Tank Set | Blue Waters (Navy) - 3XL","public_title":"3XL","sku":"59111042318"}]},{"id":6731879841836,"gid":"gid:\/\/shopify\/Product\/6731879841836","vendor":"vendor-unknown","type":"All Products","variants":[{"id":39860526186540,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sea - LG","public_title":"LG","sku":"59021030015"},{"id":39860526153772,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sea - XL","public_title":"XL","sku":"59021030016"},{"id":39860526350380,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sea - XXL","public_title":"XXL","sku":"59021030017"},{"id":39860526317612,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sea - 3XL","public_title":"3XL","sku":"59021030018"}]},{"id":6731880431660,"gid":"gid:\/\/shopify\/Product\/6731880431660","vendor":"vendor-unknown","type":"All Products","variants":[{"id":40345961889836,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sand - MD","public_title":"MD","sku":"59020011514"},{"id":39860529463340,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sand - LG","public_title":"LG","sku":"59020011515"},{"id":40894308286508,"price":11999,"name":"Period Swimwear Ruffle Set | Black Sand - XL","public_title":"XL","sku":"59020011516"}]},{"id":6731904942124,"gid":"gid:\/\/shopify\/Product\/6731904942124","vendor":"vendor-unknown","type":"All Products","variants":[{"id":39860622688300,"price":11999,"name":"Period Swimwear Ruffle Set | Beach Bum - XXS","public_title":"XXS","sku":"59155046110"},{"id":39860622753836,"price":11999,"name":"Period Swimwear Ruffle Set | Beach Bum - SM\/MD","public_title":"SM\/MD","sku":"59155046113"}]},{"id":6731905368108,"gid":"gid:\/\/shopify\/Product\/6731905368108","vendor":"vendor-unknown","type":"All Products","variants":[{"id":39860625539116,"price":11999,"name":"Period Swimwear Tank Set | Blue Chains - SM","public_title":"SM","sku":"59185034913"}]},{"id":6731905204268,"gid":"gid:\/\/shopify\/Product\/6731905204268","vendor":"vendor-unknown","type":"All Products","variants":[{"id":40438474866732,"price":11999,"name":"Teen Period Swimwear Ruffle Set | Rose Dreams - LG","public_title":"LG","sku":"59192046215"}]}],"page":{"pageType":"collection","resourceType":"collection","resourceId":268387024940}}; for (var attr in meta) { window.ShopifyAnalytics.meta[attr] = meta[attr]; }</script> <script>window.ShopifyAnalytics.merchantGoogleAnalytics = function() { }; </script> <script class="analytics">(window.gaDevIds=window.gaDevIds||[]).push('BwiEti'); (function () { var customDocumentWrite = function(content) { var jquery = null; if (window.jQuery) { jquery = window.jQuery; } else if (window.Checkout && window.Checkout.$) { jquery = window.Checkout.$; } if (jquery) { jquery('body').append(content); } }; var hasLoggedConversion = function(token) { if (token) { return document.cookie.indexOf('loggedConversion=' + token) !== -1; } return false; } var setCookieIfConversion = function(token) { if (token) { var twoMonthsFromNow = new Date(Date.now()); twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; } } var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; if (trekkie.integrations) { return; } trekkie.methods = [ 'identify', 'page', 'ready', 'track', 'trackForm', 'trackLink' ]; trekkie.factory = function(method) { return function() { var args = Array.prototype.slice.call(arguments); args.unshift(method); trekkie.push(args); return trekkie; }; }; for (var i = 0; i < trekkie.methods.length; i++) { var key = trekkie.methods[i]; trekkie[key] = trekkie.factory(key); } trekkie.load = function(config) { trekkie.config = config || {}; trekkie.config.initialDocumentCookie = document.cookie; var first = document.getElementsByTagName('script')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.onerror = function(e) { var scriptFallback = document.createElement('script'); scriptFallback.type = 'text/javascript'; scriptFallback.onerror = function(error) { var Monorail = { produce: function produce(monorailDomain, schemaId, payload) { var currentMs = new Date().getTime(); var event = { schema_id: schemaId, payload: payload, metadata: { event_created_at_ms: currentMs, event_sent_at_ms: currentMs } }; return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); }, sendRequest: function sendRequest(endpointUrl, payload) { // Try the sendBeacon API if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { var blobData = new window.Blob([payload], { type: 'text/plain' }); if (window.navigator.sendBeacon(endpointUrl, blobData)) { return true; } // sendBeacon was not successful } // XHR beacon var xhr = new XMLHttpRequest(); try { xhr.open('POST', endpointUrl); xhr.setRequestHeader('Content-Type', 'text/plain'); xhr.send(payload); } catch (e) { console.log(e); } return false; }, isIos12: function isIos12() { return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; } }; Monorail.produce('monorail-edge.shopifysvc.com', 'trekkie_storefront_load_errors/1.1', {shop_id: 55202512940, theme_id: 132881121324, app_name: "storefront", context_url: window.location.href, source_url: "//www.rubylove.com/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js"}); }; scriptFallback.async = true; scriptFallback.src = '//www.rubylove.com/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js'; first.parentNode.insertBefore(scriptFallback, first); }; script.async = true; script.src = '//www.rubylove.com/cdn/s/trekkie.storefront.20de3b35f21c3bd6ff73e3f1547eb7d54e6e94e4.min.js'; first.parentNode.insertBefore(script, first); }; trekkie.load( {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":55202512940,"isMerchantRequest":null,"themeId":132881121324,"themeCityHash":"15833821398220462078","contentLanguage":"en","currency":"USD"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Google Analytics":{"trackingId":"UA-223121788-1","domain":"auto","siteSpeedSampleRate":"10","enhancedEcommerce":true,"doubleClick":true,"includeSearch":true},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} ); var loaded = false; trekkie.ready(function() { if (loaded) return; loaded = true; window.ShopifyAnalytics.lib = window.trekkie; ga('require', 'linker'); function addListener(element, type, callback) { if (element.addEventListener) { element.addEventListener(type, callback); } else if (element.attachEvent) { element.attachEvent('on' + type, callback); } } function decorate(event) { event = event || window.event; var target = event.target || event.srcElement; if (target && (target.getAttribute('action') || target.getAttribute('href'))) { ga(function (tracker) { var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/'; }); } } addListener(window, 'load', function(){ for (var i=0; i < document.forms.length; i++) { var action = document.forms[i].getAttribute('action'); if(action && action.indexOf('/cart') >= 0) { addListener(document.forms[i], 'submit', decorate); } } for (var i=0; i < document.links.length; i++) { var href = document.links[i].getAttribute('href'); if(href && href.indexOf('/checkout') >= 0) { addListener(document.links[i], 'click', decorate); } } }); var originalDocumentWrite = document.write; document.write = customDocumentWrite; try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; document.write = originalDocumentWrite; window.ShopifyAnalytics.lib.page(null,{"pageType":"collection","resourceType":"collection","resourceId":268387024940}); var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) var token = match? match[1]: undefined; if (!hasLoggedConversion(token)) { setCookieIfConversion(token); window.ShopifyAnalytics.lib.track("Viewed Product Category",{"currency":"USD","category":"Collection: rl-two-piece-period-swimsuits","collectionName":"rl-two-piece-period-swimsuits","collectionId":268387024940,"nonInteraction":true}); } }); var eventsListenerScript = document.createElement('script'); eventsListenerScript.async = true; eventsListenerScript.src = "//www.rubylove.com/cdn/shopifycloud/shopify/assets/shop_events_listener-61fa9e0a912c675e178777d2b27f6cbd482f8912a6b0aa31fa3515985a8cd626.js"; document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); })();</script> <script class="boomerang"> (function () { window.BOOMR = window.BOOMR || {}; window.BOOMR.themeName = "Buildify"; window.BOOMR.themeVersion = "1.0.0"; window.BOOMR.shopId = 55202512940; window.BOOMR.themeId = 132881121324; })();</script> <script defer src="https://www.rubylove.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-1.0.2.min.js" data-application="storefront-renderer" data-shop-id="55202512940" data-render-region="gcp-asia-southeast1" data-page-type="collection" data-theme-instance-id="132881121324" data-monorail-region="shop_domain" data-resource-timing-sampling-rate="10" ></script> </head> <body class="template-collection template-collection"> <!-- Google Tag Manager (noscript) --> <noscript ><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T29J5ZB" height="0" width="0" style="display:none;visibility:hidden" ></iframe ></noscript> <!-- End Google Tag Manager (noscript) --> <div id="shopify-section-header" class="shopify-section"> <style> .header .header__logo { order: 0 !important; } picture { max-width: 100px; } .container.header__content-row { grid-template-columns: 100px 1fr auto; gap: 43px; } .link-type-2 { color: black !important; } .divider { width: 1px; height: 15px; background: black; display: flex; } .announcement-bar .announcement-bar__text { font-size: 15px; font-weight: 400; line-height: 17.23px; text-align: center; padding-top: 3px; } ul.header__navigation-row .header__navigation-item--parent:last-child a { color: black; } ul.header__navigation-row .header__navigation-item--parent:nth-last-child(2) a { color: black; position: relative; padding-left: 10px; } ul.header__navigation-row .header__navigation-item--parent:last-child a { color: black; } ul.header__navigation-row .header__navigation-item--parent:nth-last-child(2) a:before { content: "|"; position: absolute; left: -10px; padding-left: 6px; top: 0; } </style> <div data-section-id="header" data-section-type="header"> <div class="mobile-menu js-mobile-menu"> <a href="/" class="mobile-menu__logo" aria-label="Go to Homepage"> <picture> <img class="mobile-menu__logo-image" src="//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_200x.png?v=1645824254" srcset="//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_200x.png?v=16458242541x,//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_400x.png?v=16458242542x" alt="Ruby"> </picture> </a> <form action="/search" method="get" class="mobile-menu__search-row" role="search"> <input class="input input--full-width" type="search" name="q" placeholder="Search" aria-label="Search" required> <input type="hidden" name="type" value="product,article"/> <button class="button mobile-menu__search-button" type="submit" aria-label="Search">Search</button> </form> <nav class="mobile-menu__navigation"> <ul class="js-accordion-container"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="/collections" class="mobile-menu__navigation-link" aria-label="Navigation item">Shop All</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="#" class="mobile-menu__navigation-link js-accordion-toggler" onclick="event.preventDefault();">Women<span class="mobile-menu__toggler-icon"></span> </a> <ul class="mobile-menu__navigation-content js-accordion-content"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Period Underwear All</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/bikini-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Bikini Underwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/hipster-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Hipster Underwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/brief-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Brief Underwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/high-waist-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">High-Waist Underwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-swimwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Period Swimwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-loungewear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Sleepwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-activewear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Activewear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/plus-size-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Curvy & Plus Size Collection</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/bundles" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Bundles</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/ultimate-collection-box" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Ultimate Collection Box </a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/period-athletic-wear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Ruby Love Athletics</a> </li> </ul> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="#" class="mobile-menu__navigation-link js-accordion-toggler" onclick="event.preventDefault();">Teen<span class="mobile-menu__toggler-icon"></span> </a> <ul class="mobile-menu__navigation-content js-accordion-content"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/teen-pads-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Teen Pads</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/teen-period-underwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Teen Underwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/teen-period-swimwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Teen Swimwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/first-period-kit" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">First Period Kit</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/monthly-period-kit" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Monthly Period Kit</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-loungewear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Teen Sleepwear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/period-activewear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Activewear</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/bundles" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Bundles</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/ultimate-collection-box" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Ultimate Collection Box</a> </li> </ul> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="#" class="mobile-menu__navigation-link js-accordion-toggler" onclick="event.preventDefault();">Swim<span class="mobile-menu__toggler-icon"></span> </a> <ul class="mobile-menu__navigation-content js-accordion-content"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/swim-bottoms" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Bottoms</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/rl-one-piece-period-swimsuits" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">One-Piece</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/rl-two-piece-period-swimsuits" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Two-Piece</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/teen-period-swimwear" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Teen Swim</a> </li> </ul> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="#" class="mobile-menu__navigation-link js-accordion-toggler" onclick="event.preventDefault();">Accessories<span class="mobile-menu__toggler-icon"></span> </a> <ul class="mobile-menu__navigation-content js-accordion-content"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/reusable-pads" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Double-Sided Pads</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/products/super-sanitary-pads" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Sanitary Pads</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/collections/other-accessories" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Other Accessories</a> </li> </ul> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="/pages/monthly-period-kit" class="mobile-menu__navigation-link" aria-label="Navigation item">Period Subscription</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="/collections/period-underwear-sale" class="mobile-menu__navigation-link" aria-label="Navigation item">Sale</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="/pages/sizing-guide" class="mobile-menu__navigation-link" aria-label="Navigation item">Sizing Guide</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent js-accordion"> <a href="#" class="mobile-menu__navigation-link js-accordion-toggler" onclick="event.preventDefault();">About<span class="mobile-menu__toggler-icon"></span> </a> <ul class="mobile-menu__navigation-content js-accordion-content"> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/wholesale" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Wholesale</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/rewards" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">Rewards</a> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--child"> <a href="/pages/how-it-works" class="mobile-menu__navigation-link mobile-menu__navigation-link--child" aria-label="Navigation item">How it works</a> </li> </ul> </li> <li class="mobile-menu__navigation-item mobile-menu__navigation-item--parent"> <a href="/account/login" class="mobile-menu__navigation-link" aria-label="Go to Account page">Account</a> </li> </ul> </nav> <button class="button mobile-menu__close-button js-mobile-menu-close-button" aria-label="Close mobile menu"> <svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" fill="none" viewBox="0 0 7 7" class="icon"><path fill="#fff" d="M6.365 7L3.502 4.134.64 7 0 6.361 2.868 3.5 0 .639.64 0l2.862 2.866L6.365.004 7 .64 4.137 3.5 7 6.361 6.365 7z"/></svg> </button> </div> <header class="header js-header"> <div class="announcement-bar js-announcement-bar" style="--announcement_bar_background_color: #c50029;"> <p class="announcement-bar__text" style="--announcement_bar_text_color: #ffffff;">Use code Hello10 for 10% off your order!</p> <button class="button announcement-bar__close-button js-announcement-bar-close-button" aria-label="Close announcement bar"> <svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" fill="none" viewBox="0 0 7 7" class="icon"><path fill="#fff" d="M6.365 7L3.502 4.134.64 7 0 6.361 2.868 3.5 0 .639.64 0l2.862 2.866L6.365.004 7 .64 4.137 3.5 7 6.361 6.365 7z"/></svg> </button> </div> <div class="header__content"> <div class="container header__content-row"> <div class="header__mobile-menu-row"> <button class="button header__mobile-menu-button js-mobile-menu-open-button" aria-label="Open mobile menu" > <svg xmlns="http://www.w3.org/2000/svg" width="16" height="9" fill="none" viewBox="0 0 16 9" class="icon"><path fill="#D02126" d="M16 1H0V0h16v1zm0 8H0V8h16v1zm0-4.008H0V4h16v.992z"/></svg> </button> </div> <a href="/" class="header__logo" aria-label="Go to Homepage"> <picture> <img class="header__logo-image" src="//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_200x.png?v=1645824254" srcset="//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_200x.png?v=16458242541x,//www.rubylove.com/cdn/shop/files/Ruby_Fractal_Heart_logo_2_400x.png?v=16458242542x" alt="Ruby" width="100" height="35" > </picture> </a> <nav class="header__navigation"> <ul class="header__navigation-row"> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/collections" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">Shop All</a> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="#" class="header__navigation-link js-navigation-link" onclick="event.preventDefault();">Women</a> <ul class="header__navigation-dropdown"> <li class="header__navigation-link"> <a href="/collections/period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Period Underwear All</a> </li> <li class="header__navigation-link"> <a href="/collections/bikini-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Bikini Underwear</a> </li> <li class="header__navigation-link"> <a href="/collections/hipster-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Hipster Underwear</a> </li> <li class="header__navigation-link"> <a href="/collections/brief-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Brief Underwear</a> </li> <li class="header__navigation-link"> <a href="/collections/high-waist-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">High-Waist Underwear</a> </li> <li class="header__navigation-link"> <a href="/collections/period-swimwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Period Swimwear</a> </li> <li class="header__navigation-link"> <a href="/collections/period-loungewear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Sleepwear</a> </li> <li class="header__navigation-link"> <a href="/collections/period-activewear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Activewear</a> </li> <li class="header__navigation-link"> <a href="/pages/plus-size-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Curvy & Plus Size Collection</a> </li> <li class="header__navigation-link"> <a href="/collections/bundles" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Bundles</a> </li> <li class="header__navigation-link"> <a href="/collections/ultimate-collection-box" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Ultimate Collection Box </a> </li> <li class="header__navigation-link"> <a href="/pages/period-athletic-wear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Ruby Love Athletics</a> </li> </ul> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="#" class="header__navigation-link js-navigation-link" onclick="event.preventDefault();">Teen</a> <ul class="header__navigation-dropdown"> <li class="header__navigation-link"> <a href="/pages/teen-pads-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Teen Pads</a> </li> <li class="header__navigation-link"> <a href="/collections/teen-period-underwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Teen Underwear</a> </li> <li class="header__navigation-link"> <a href="/collections/teen-period-swimwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Teen Swimwear</a> </li> <li class="header__navigation-link"> <a href="/pages/first-period-kit" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">First Period Kit</a> </li> <li class="header__navigation-link"> <a href="/pages/monthly-period-kit" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Monthly Period Kit</a> </li> <li class="header__navigation-link"> <a href="/collections/period-loungewear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Teen Sleepwear</a> </li> <li class="header__navigation-link"> <a href="/collections/period-activewear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Activewear</a> </li> <li class="header__navigation-link"> <a href="/collections/bundles" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Bundles</a> </li> <li class="header__navigation-link"> <a href="/collections/ultimate-collection-box" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Ultimate Collection Box</a> </li> </ul> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/pages/period-swimwear" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">Swim</a> <ul class="header__navigation-dropdown"> <li class="header__navigation-link"> <a href="/collections/swim-bottoms" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Bottoms</a> </li> <li class="header__navigation-link"> <a href="/collections/rl-one-piece-period-swimsuits" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">One-Piece</a> </li> <li class="header__navigation-link"> <a href="/collections/rl-two-piece-period-swimsuits" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Two-Piece</a> </li> <li class="header__navigation-link"> <a href="/collections/teen-period-swimwear" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Teen Swim</a> </li> </ul> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="#" class="header__navigation-link js-navigation-link" onclick="event.preventDefault();">Accessories</a> <ul class="header__navigation-dropdown"> <li class="header__navigation-link"> <a href="/collections/reusable-pads" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Double-Sided Pads</a> </li> <li class="header__navigation-link"> <a href="/products/super-sanitary-pads" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Sanitary Pads</a> </li> <li class="header__navigation-link"> <a href="/collections/other-accessories" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Other Accessories</a> </li> </ul> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/pages/monthly-period-kit" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">Period Subscription</a> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/collections/period-underwear-sale" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">Sale</a> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/pages/sizing-guide" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">Sizing Guide</a> </li> <li class="header__navigation-item header__navigation-item--parent js-navigation-item"> <a href="/pages/about" class="header__navigation-link js-navigation-link-parent" aria-label="Navigation item">About</a> <ul class="header__navigation-dropdown"> <li class="header__navigation-link"> <a href="/pages/wholesale" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Wholesale</a> </li> <li class="header__navigation-link"> <a href="/pages/rewards" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">Rewards</a> </li> <li class="header__navigation-link"> <a href="/pages/how-it-works" class="header__navigation-link header__navigation-link--child js-navigation-link" aria-label="Navigation item">How it works</a> </li> </ul> </li> </ul> </nav> <div class="header__icons"> <div class="header__search js-search-open-button"> <svg xmlns="http://www.w3.org/2000/svg" width="167" height="167" fill="none" viewBox="0 0 167 167" class="icon"><path fill="#D02126" d="M101.71 111.549A62.621 62.621 0 01.024 60.88a62.623 62.623 0 11111.525 40.83l53.41 53.397a6.963 6.963 0 010 9.852 6.963 6.963 0 01-9.852 0l-53.383-53.41h-.014zm9.616-48.93a48.717 48.717 0 00-30.067-45 48.707 48.707 0 1030.067 45z"/></svg> </div> <a href="/account/login" class="header__account" aria-label="Go to Account page"> <svg xmlns="http://www.w3.org/2000/svg" width="167" height="168" fill="none" viewBox="0 0 167 168" class="icon"><path fill="#D02126" d="M75.326.271C42.448 3.545 14.551 25.86 4.047 57.311 2.46 62.07 1.195 67.734.392 73.68c-.523 3.916-.523 15.766 0 19.682 2.61 19.261 10.283 35.228 23.438 48.685 13.858 14.199 32.015 22.836 52.019 24.744 4.157.401 14.099.281 17.674-.201 9.962-1.386 17.935-3.736 26.27-7.773 23.981-11.569 41.253-34.204 45.933-60.133.964-5.362 1.125-7.25 1.245-13.456.121-6.708-.12-10.203-1.064-15.766-4.459-26.512-21.752-49.488-46.114-61.237-9.058-4.379-18.397-6.99-28.46-7.954-3.795-.361-12.291-.361-16.007 0zm13.276 9.54c23.077 1.707 43.483 13.577 56.337 32.738 6.708 9.982 10.665 21.008 12.091 33.641.14 1.205.241 4.519.241 7.33 0 5.203-.181 7.573-.904 12.051-4.158 25.467-21.511 46.978-45.672 56.638-18.82 7.512-40.088 6.849-58.747-1.847-19.903-9.279-35.147-27.998-40.269-49.468-1.486-6.166-1.988-10.685-1.988-17.373 0-5.202.18-7.572.903-12.05 3.575-21.953 17.052-41.194 36.634-52.32C59.58 12.12 74.463 8.766 88.602 9.81z"/><path fill="#D02126" d="M77.516 18.086c-12.453 1.024-21.812 9.861-25.588 24.141-1.386 5.242-2.048 10.525-2.069 16.39-.02 3.394.08 4.84.523 8.234.863 6.547 1.064 9.36 1.044 15.565 0 4.419-.08 6.387-.341 8.134-.663 4.439-1.909 7.994-3.395 9.621-.562.622-.863.743-3.113 1.245-7.29 1.647-12.753 6.507-16.93 15.083L26.4 119.03l1.245 1.888c4.6 6.829 10.404 12.753 17.233 17.614 5.945 4.197 13.597 7.833 20.626 9.761 13.678 3.736 27.616 3.193 40.972-1.607 3.093-1.105 8.596-3.736 11.549-5.523 8.415-5.061 15.746-12.011 21.149-20.064l1.385-2.089-1.325-2.671c-3.334-6.709-7.231-10.946-12.272-13.356-1.787-.864-5.523-1.989-6.587-1.989-.964 0-2.752-2.972-3.616-6.025-1.024-3.515-1.245-5.945-1.225-13.055 0-6.788.302-10.805 1.286-17.433 1.004-6.708-.141-17.554-2.651-25.045-.944-2.832-2.933-7.01-4.339-9.139-4.338-6.507-10.725-10.705-18.196-11.95-2.17-.362-10.986-.522-14.12-.261zm-4.258 26.933c.703.382 3.133 1.627 5.402 2.792 2.27 1.165 9.42 4.84 15.887 8.174 6.467 3.314 11.85 6.046 11.95 6.046.101 0 .583-.382 1.085-.844.502-.462 1.145-1.044 1.426-1.305l.522-.482.502.502c.703.723 1.004 1.928.984 4.017-.02 4.277-2.068 8.596-3.916 8.294-.623-.1-.623-.1-1.326 1.748-3.253 8.616-9.138 15.846-15.284 18.799-4.479 2.129-9.219 2.169-13.597.1-4.117-1.948-8.054-5.644-11.267-10.544-1.426-2.19-3.375-6.005-4.238-8.375-.683-1.828-.683-1.828-1.306-1.728-1.867.302-3.916-4.037-3.916-8.335 0-2.25.261-3.233 1.044-3.996.502-.482.643-.523 1.145-.322l.583.201.32-1.767c.644-3.515 2.21-7.331 3.877-9.52 1.587-2.049 3.917-3.495 6.287-3.917 1.827-.321 2.49-.22 3.836.462zm-4.48 48.564c1.708 1.567 4.72 3.575 6.77 4.52 4.98 2.269 10.483 2.369 15.424.28 2.671-1.145 6.287-3.535 7.954-5.302.381-.402.763-.723.823-.723.06 0 .22.522.361 1.145.442 2.109 2.31 4.218 4.7 5.282.904.402.924.422.763 1.024-.321 1.125-1.164 2.29-2.57 3.615-2.672 2.551-6.528 4.76-10.504 6.086-3.134 1.044-4.8 1.346-8.115 1.466-4.84.181-9.058-.743-13.657-2.952-4.84-2.35-8.656-5.724-9.42-8.355-.1-.342 0-.482.523-.683 1.124-.462 3.294-1.969 3.856-2.712.663-.863 1.245-2.149 1.426-3.173.08-.402.18-.743.24-.743.061 0 .704.542 1.427 1.225z"/></svg> </a> <script type="text/javascript"> function openCartQuery(query,value) { const params = new URLSearchParams(window.location.search); if (params.has(query) && params.get(query) === value) { setTimeout(function () { const event = new CustomEvent("open:minicart"); document.dispatchEvent(event); },1000) } } openCartQuery('viewcart','true') </script> <div class="header__cart js-open-minicart"> <svg xmlns="http://www.w3.org/2000/svg" width="146" height="167" fill="none" viewBox="0 0 146 167" class="icon"><path fill="#D02126" d="M73 10.438a26.06 26.06 0 0118.435 7.642 26.105 26.105 0 017.636 18.451v5.219H46.93v-5.219a26.1 26.1 0 017.636-18.45A26.06 26.06 0 0173 10.437zm36.5 31.312v-5.219c0-9.688-3.846-18.98-10.69-25.831A36.484 36.484 0 0073 0a36.484 36.484 0 00-25.81 10.7A36.547 36.547 0 0036.5 36.53v5.219H0v104.375a20.885 20.885 0 006.109 14.761A20.847 20.847 0 0020.857 167h104.286a20.845 20.845 0 0014.748-6.114A20.883 20.883 0 00146 146.125V41.75h-36.5zM10.429 52.188H135.57v93.937a10.44 10.44 0 01-3.054 7.38 10.421 10.421 0 01-7.374 3.057H20.857a10.422 10.422 0 01-7.374-3.057 10.44 10.44 0 01-3.054-7.38V52.187z"/></svg> <span class="header__cart-counter js-cart-counter ">0</span> </div> </div> </div> </div> <div class="header__search-wrapper js-search-container"> <div class="header__search-container"> <form action="/search" method="get" class="header__search-row" role="search"> <input class="input input--full-width js-desktop-header-search-input" type="search" name="q" placeholder="Search" aria-label="Search" required> <input type="hidden" name="type" value="product,article"/> <button class="button mobile-menu__button" type="submit" aria-label="Search">Search</button> </form> </div> </div> </header> </div> </div> <main class="content" role="main" tabindex="-1"> <div id="shopify-section-template--16527447162924__collection" class="shopify-section"><section class="collection js-collection" data-default-url="https://www.rubylove.com/collections/rl-two-piece-period-swimsuits" data-section-type="collection" data-section-id="template--16527447162924__collection"><div class="container collection__container"> <div class="collection__header"><h1 class="collection__title" style="--collection-title-size:30px; --collection-title-color:#000000;">Two-Piece Period Swimwear - Real, Authentic Period Swimsuits from the Original Inventors</h1><div class="collection__sort js-collection-sort "><span class="collection__sort-by">Sort by:</span> <select name="sort_by" class="collection__sort-select js-sort-select" aria-label="Sort by option" form="form"><option value="manual"selected="selected">Featured</option><option value="best-selling">Best selling</option><option value="title-ascending">Alphabetically, A-Z</option><option value="title-descending">Alphabetically, Z-A</option><option value="price-ascending">Price, low to high</option><option value="price-descending">Price, high to low</option><option value="created-ascending">Date, old to new</option><option value="created-descending">Date, new to old</option></select> </div> </div> <div class="collection__filter-mobile js-filter-mobile"> <button class="button collection__filter-mobile-button js-button-open-mobile-filter" type="button" aria-label="Open mobile filter">Filter<span class="collection__filter-mobile-button-icon-wrapper"><svg aria-hidden="true" data-prefix="fas" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 512 512" class="icon"><path fill="#fff" d="M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"/></svg></span> </button> <div class="collection__filter-mobile-body js-menu-filter-mobile-body"> <form class="collection__filter-mobile-body-container js-form-mobile" id="form-mobile"> <button class="button collection__filter-menu-button-close js-collection-filter-menu-button-close" type="button" aria-label="Close mobile filter"><svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" fill="none" viewBox="0 0 7 7" class="icon"><path fill="#fff" d="M6.365 7L3.502 4.134.64 7 0 6.361 2.868 3.5 0 .639.64 0l2.862 2.866L6.365.004 7 .64 4.137 3.5 7 6.361 6.365 7z"/></svg></button><div class="collection__sort js-collection-sort collection__sort--mobile"><span class="collection__sort-by">Sort by:</span> <select name="sort_by" class="collection__sort-select js-sort-select" aria-label="Sort by option" ><option value="manual"selected="selected">Featured</option><option value="best-selling">Best selling</option><option value="title-ascending">Alphabetically, A-Z</option><option value="title-descending">Alphabetically, Z-A</option><option value="price-ascending">Price, low to high</option><option value="price-descending">Price, high to low</option><option value="created-ascending">Date, old to new</option><option value="created-descending">Date, new to old</option></select> </div> </form> <button class="button collection__column-reset js-collection-filter-reset" type="button" aria-label="Reset filter">clear all filters</button> </div> </div> <div class="collection__empty js-collection-empty "> <h2 class="collection__empty-title"> No products found </h2> <p class="collection__empty-subtitle js-empty-subtitle">Use fewer filters or <a class="link collection__empty-link js-collection-filter-reset" aria-label="Reset filter">clear all filters</a> </p> </div><div class="collection__row js-collection-row"> <form class="collection__column collection__column-filter js-form" id="form"><button class="button collection__column-reset js-collection-filter-reset" type="button" aria-label="Reset filter">clear all filters</button> </form> <div class="collection__column collection__column-products"> <div class="collection__column-products-row js-collection-products-row"> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-black-sea" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_350x.jpg?v=1655834040 1x, //www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_700x.jpg?v=1655834040 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_325x.jpg?v=1655834040 1x, //www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_650x.jpg?v=1655834040 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Black Sea - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_250x.jpg?v=1655834040" srcset="//www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_250x.jpg?v=1655834040 1x,//www.rubylove.com/cdn/shop/products/d47e3a7b12d8fffdf11c9f5ca5200f72_500x.jpg?v=1655834040 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_350x.jpg?v=1655834035 1x, //www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_700x.jpg?v=1655834035 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_325x.jpg?v=1655834035 1x, //www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_650x.jpg?v=1655834035 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Black Sea - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_250x.jpg?v=1655834035" srcset="//www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_250x.jpg?v=1655834035 1x,//www.rubylove.com/cdn/shop/products/e65772_d129f82c0da64efbba94edb4630d6941_mv2_500x.jpg?v=1655834035 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-black-sea" aria-label="Go to Product page">Period Swimwear Tank Set | Black Sea</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-wild-berry" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_350x.jpg?v=1655834097 1x, //www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_700x.jpg?v=1655834097 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_325x.jpg?v=1655834097 1x, //www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_650x.jpg?v=1655834097 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Wild Berry - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_250x.jpg?v=1655834097" srcset="//www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_250x.jpg?v=1655834097 1x,//www.rubylove.com/cdn/shop/products/9389d6_8b27d485f222469dbd6c1bf4d1e07de6_mv2_e1b47243-4d86-4223-b559-07c419cc7587_500x.jpg?v=1655834097 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-wild-berry" aria-label="Go to Product page">Period Swimwear Tank Set | Wild Berry</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-bubbles" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_350x.jpg?v=1655834052 1x, //www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_700x.jpg?v=1655834052 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_325x.jpg?v=1655834052 1x, //www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_650x.jpg?v=1655834052 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Bubbles - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_250x.jpg?v=1655834052" srcset="//www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_250x.jpg?v=1655834052 1x,//www.rubylove.com/cdn/shop/products/9389d6_567f5075000c494eb4e033ccb5371f1e_mv2_500x.jpg?v=1655834052 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-bubbles" aria-label="Go to Product page">Period Swimwear Tank Set | Bubbles</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-ruffle-set-tropical-vacation" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_350x.jpg?v=1655833987 1x, //www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_700x.jpg?v=1655833987 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_325x.jpg?v=1655833987 1x, //www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_650x.jpg?v=1655833987 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Tropical Vacation - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_250x.jpg?v=1655833987" srcset="//www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_250x.jpg?v=1655833987 1x,//www.rubylove.com/cdn/shop/products/43a59444558cc791cfed8c9c148694fb_500x.jpg?v=1655833987 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_350x.jpg?v=1655833982 1x, //www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_700x.jpg?v=1655833982 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_325x.jpg?v=1655833982 1x, //www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_650x.jpg?v=1655833982 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Tropical Vacation - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_250x.jpg?v=1655833982" srcset="//www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_250x.jpg?v=1655833982 1x,//www.rubylove.com/cdn/shop/products/a07e36_0edd4b4173eb49158cb751b4b5b075a3_mv2_d_2400_2400_s_4_2_5f30a0c6-0bb5-446a-a208-ac1989f00a83_500x.jpg?v=1655833982 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-ruffle-set-tropical-vacation" aria-label="Go to Product page">Period Swimwear Ruffle Set | Tropical Vacation</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-napa-plus-size-collection" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_350x.jpg?v=1655834092 1x, //www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_700x.jpg?v=1655834092 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_325x.jpg?v=1655834092 1x, //www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_650x.jpg?v=1655834092 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Napa - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_250x.jpg?v=1655834092" srcset="//www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_250x.jpg?v=1655834092 1x,//www.rubylove.com/cdn/shop/products/e65772_2ab35205b5894671bdbde7dc00859a64_mv2_2ae85da4-4d21-47a9-829d-396a4e5f5e92_500x.jpg?v=1655834092 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-napa-plus-size-collection" aria-label="Go to Product page">Period Swimwear Tank Set | Napa</a> </h3><div class="product-card__availability">Out of stock</div></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-pink-sand-beach-plus-size-collection" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_350x.jpg?v=1655834094 1x, //www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_700x.jpg?v=1655834094 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_325x.jpg?v=1655834094 1x, //www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_650x.jpg?v=1655834094 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Pink Sand & Beach | Plus Size Collection - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_250x.jpg?v=1655834094" srcset="//www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_250x.jpg?v=1655834094 1x,//www.rubylove.com/cdn/shop/products/f5e65a_04f2f45524d54a25b27f75c5bd5001bd_mv2_d_2400_2400_s_4_2_a1dcd4a1-e5bf-4bf1-8212-3330bb73d297_500x.jpg?v=1655834094 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-pink-sand-beach-plus-size-collection" aria-label="Go to Product page">Period Swimwear Tank Set | Pink Sand & Beach</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-bundle-select-3-of-any-black-swimwear-style-1" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_350x.webp?v=1661536959 1x, //www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_700x.webp?v=1661536959 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_325x.webp?v=1661536959 1x, //www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_650x.webp?v=1661536959 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Bundle | Select 3 of any black swimwear style - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_250x.webp?v=1661536959" srcset="//www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_250x.webp?v=1661536959 1x,//www.rubylove.com/cdn/shop/products/a07e36_681d33fce97545d9910a29b7daacce9e_mv2_d_1500_1500_s_2_500x.webp?v=1661536959 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_350x.webp?v=1661536883 1x, //www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_700x.webp?v=1661536883 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_325x.webp?v=1661536883 1x, //www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_650x.webp?v=1661536883 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Bundle | Select 3 of any black swimwear style - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_250x.webp?v=1661536883" srcset="//www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_250x.webp?v=1661536883 1x,//www.rubylove.com/cdn/shop/products/a07e36_c585435105b44e79a83194fbee91502f_mv2_d_1500_1500_s_2_500x.webp?v=1661536883 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-bundle-select-3-of-any-black-swimwear-style-1" aria-label="Go to Product page">Period Swimwear Bundle | Select 3 of any black swimw...</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$254.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-classic-ruby" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_350x.jpg?v=1655834058 1x, //www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_700x.jpg?v=1655834058 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_325x.jpg?v=1655834058 1x, //www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_650x.jpg?v=1655834058 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Classic Ruby - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_250x.jpg?v=1655834058" srcset="//www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_250x.jpg?v=1655834058 1x,//www.rubylove.com/cdn/shop/products/864fcd0d59f12a70e01b8b3eb464d022_500x.jpg?v=1655834058 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_350x.jpg?v=1655834059 1x, //www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_700x.jpg?v=1655834059 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_325x.jpg?v=1655834059 1x, //www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_650x.jpg?v=1655834059 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Classic Ruby - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_250x.jpg?v=1655834059" srcset="//www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_250x.jpg?v=1655834059 1x,//www.rubylove.com/cdn/shop/products/e65772_f33c6cd30a124b619070d9038e7c1035_mv2_6c395b3f-a54d-4d39-802c-a9a28e927a5b_500x.jpg?v=1655834059 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-classic-ruby" aria-label="Go to Product page">Period Swimwear Tank Set | Classic Ruby</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-tank-set-blue-waters" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_350x.jpg?v=1655834049 1x, //www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_700x.jpg?v=1655834049 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_325x.jpg?v=1655834049 1x, //www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_650x.jpg?v=1655834049 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Blue Waters (Navy) - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_250x.jpg?v=1655834049" srcset="//www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_250x.jpg?v=1655834049 1x,//www.rubylove.com/cdn/shop/products/c3a49f3dfd95046c39e311e2ceeb412e_500x.jpg?v=1655834049 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_350x.jpg?v=1655834044 1x, //www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_700x.jpg?v=1655834044 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_325x.jpg?v=1655834044 1x, //www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_650x.jpg?v=1655834044 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Tank Set | Blue Waters (Navy) - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_250x.jpg?v=1655834044" srcset="//www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_250x.jpg?v=1655834044 1x,//www.rubylove.com/cdn/shop/products/e65772_c43f44dca15a43689f8687c92e9f3fe4_mv2_dc5dd325-4b38-4902-bb53-2082d5a4b72e_500x.jpg?v=1655834044 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-tank-set-blue-waters" aria-label="Go to Product page">Period Swimwear Tank Set | Blue Waters (Navy)</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-ruffle-set-black-sea" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_350x.jpg?v=1655833934 1x, //www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_700x.jpg?v=1655833934 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_325x.jpg?v=1655833934 1x, //www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_650x.jpg?v=1655833934 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Black Sea - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_250x.jpg?v=1655833934" srcset="//www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_250x.jpg?v=1655833934 1x,//www.rubylove.com/cdn/shop/products/b035e6b1f0d46d13cdae37283cf94f68_500x.jpg?v=1655833934 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_350x.jpg?v=1655833929 1x, //www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_700x.jpg?v=1655833929 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_325x.jpg?v=1655833929 1x, //www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_650x.jpg?v=1655833929 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Black Sea - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_250x.jpg?v=1655833929" srcset="//www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_250x.jpg?v=1655833929 1x,//www.rubylove.com/cdn/shop/products/e65772_56d40c58d78a41d988a886d8a02c7e7d_mv2_500x.jpg?v=1655833929 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-ruffle-set-black-sea" aria-label="Go to Product page">Period Swimwear Ruffle Set | Black Sea</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-ruffle-set-black-sand" aria-label="Go to Product page"><div class="product-card__image-wrapper product-card__image--two-images"><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_350x.jpg?v=1655833924 1x, //www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_700x.jpg?v=1655833924 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_325x.jpg?v=1655833924 1x, //www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_650x.jpg?v=1655833924 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Black Sand - Ruby Love" class="product-card__image product-card__image--back" src="//www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_250x.jpg?v=1655833924" srcset="//www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_250x.jpg?v=1655833924 1x,//www.rubylove.com/cdn/shop/products/e65772_7b8f705a65e844ce8e92a375be19f347_mv2_d_2294_2999_s_2_500x.jpg?v=1655833924 2x" > </picture><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_350x.jpg?v=1655833921 1x, //www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_700x.jpg?v=1655833921 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_325x.jpg?v=1655833921 1x, //www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_650x.jpg?v=1655833921 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Black Sand - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_250x.jpg?v=1655833921" srcset="//www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_250x.jpg?v=1655833921 1x,//www.rubylove.com/cdn/shop/products/e65772_113ed92efbbf4782aaf5a521cc78bfea_mv2_b62ea140-944d-4576-9843-f928375e88fa_500x.jpg?v=1655833921 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-ruffle-set-black-sand" aria-label="Go to Product page">Period Swimwear Ruffle Set | Black Sand</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/period-swimwear-ruffle-set-beach-bum" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_350x.jpg?v=1655833919 1x, //www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_700x.jpg?v=1655833919 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_325x.jpg?v=1655833919 1x, //www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_650x.jpg?v=1655833919 2x" media="(max-width: 991px)" > <img alt="Period Swimwear Ruffle Set | Beach Bum - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_250x.jpg?v=1655833919" srcset="//www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_250x.jpg?v=1655833919 1x,//www.rubylove.com/cdn/shop/products/f5e65a_3aa56f35b5e84f34b7d02809a3a30c0f_mv2_500x.jpg?v=1655833919 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/period-swimwear-ruffle-set-beach-bum" aria-label="Go to Product page">Period Swimwear Ruffle Set | Beach Bum</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/teen-period-swimwear-tank-set-blue-chains" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_350x.jpg?v=1655834940 1x, //www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_700x.jpg?v=1655834940 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_325x.jpg?v=1655834940 1x, //www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_650x.jpg?v=1655834940 2x" media="(max-width: 991px)" > <img alt="Teen Period Swimwear Tank Set | Blue Chains - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_250x.jpg?v=1655834940" srcset="//www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_250x.jpg?v=1655834940 1x,//www.rubylove.com/cdn/shop/products/9389d6_c1e2362f86854ae2b98dcd9dcaa4673d_mv2_500x.jpg?v=1655834940 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/teen-period-swimwear-tank-set-blue-chains" aria-label="Go to Product page">Period Swimwear Tank Set | Blue Chains</a> </h3><div class="product-card__availability">Out of stock</div></div> </div> </div> </div> <div class="collection__column-products-column"><div class="product-card"> <div class="product-card__container"><a class="product-card__image-link" href="/products/teen-period-swimwear-ruffle-set-rose-dreams" aria-label="Go to Product page"><div class="product-card__image-wrapper "><!-- itg code --> <!-- itg code end --><picture> <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_350x.jpg?v=1655834891 1x, //www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_700x.jpg?v=1655834891 2x" media="(max-width: 767px)" > <source data-srcset="//www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_325x.jpg?v=1655834891 1x, //www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_650x.jpg?v=1655834891 2x" media="(max-width: 991px)" > <img alt="Teen Period Swimwear Ruffle Set | Rose Dreams - Ruby Love" class="product-card__image product-card__image--front" src="//www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_250x.jpg?v=1655834891" srcset="//www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_250x.jpg?v=1655834891 1x,//www.rubylove.com/cdn/shop/products/9389d6_b1fe88655842454c919aeaf50be79963_mv2_891c8482-d9e6-4b34-a4d0-ebb4d8b9b50c_500x.jpg?v=1655834891 2x" > </picture></div> </a> <div class="itg_product_card"> <h3 class="product-card__title"> <a class="product-card__title-link" href="/products/teen-period-swimwear-ruffle-set-rose-dreams" aria-label="Go to Product page">Teen Period Swimwear Ruffle Set | Rose Dreams</a> </h3><div class="product-card__price-wrapper"> <span class="product-card__price">$119.99</span></div> <!-- <p class="product-card__availability">Excluding Sales Tax</p> --></div> </div> </div> </div></div> </div> </div></div> <div class="collection__loader js-loader"></div> </section> <style> #shopify-section-template--16527447162924__collection .main-banner .main-banner__image {object-fit: cover; object-position: 10% 30%;} </style></div> </main> <div id="shopify-section-footer" class="shopify-section"> <style> .listrak-form div{ margin-bottom: 10px; } .listrak-form #submit { background: transparent; color: white; border: solid 1px white; padding: 5px 15px; line-height: 1; } .listrak-form .listrak-field{ color: black; height: 40px; padding-left: 10px; border:none; width: 100%; } </style><footer class="footer" style="--bg-color: #982531; --text-color: #ffffff; --newsletter-bg-color: #f5f5f5; --newsletter-text-color: #000000"><div class="footer__content"> <div class="container"> <ul class="footer__list js-accordion-container"><li class="footer__list-item js-accordion"> <span class="footer__list-item-title js-accordion-toggler"> More Ways to Shop <span class="footer__list-item-icon"></span> </span> <ul class="footer__sublist js-accordion-content"><li class="footer__sublist-item"> <a href="/collections/period-underwear" class="link footer__link" aria-label="Shop Women" tabindex="0"> Shop Women </a> </li><li class="footer__sublist-item"> <a href="/collections/teen-period-underwear" class="link footer__link" aria-label="Shop Teen" tabindex="0"> Shop Teen </a> </li><li class="footer__sublist-item"> <a href="/pages/first-period-kit" class="link footer__link" aria-label="Shop First Period Kit" tabindex="0"> Shop First Period Kit </a> </li><li class="footer__sublist-item"> <a href="/collections/period-swimwear" class="link footer__link" aria-label="Shop Swim" tabindex="0"> Shop Swim </a> </li><li class="footer__sublist-item"> <a href="/pages/sizing-guide" class="link footer__link" aria-label="Sizing Guide" tabindex="0"> Sizing Guide </a> </li><li class="footer__sublist-item"> <a href="https://www.rubylove.com/pages/wholesale-account" class="link footer__link" aria-label="Wholesale" tabindex="0"> Wholesale </a> </li><!----> </ul> </li> <li class="footer__list-item js-accordion"> <span class="footer__list-item-title js-accordion-toggler"> Customer Service <span class="footer__list-item-icon"></span> </span> <ul class="footer__sublist js-accordion-content"><li class="footer__sublist-item"> <a href="/pages/press" class="link footer__link" aria-label="Press & Reviews" tabindex="0"> Press & Reviews </a> </li><li class="footer__sublist-item"> <a href="/pages/contact-us" class="link footer__link" aria-label="Contact Us" tabindex="0"> Contact Us </a> </li><li class="footer__sublist-item"> <a href="/policies/privacy-policy" class="link footer__link" aria-label="Privacy Policy" tabindex="0"> Privacy Policy </a> </li><li class="footer__sublist-item"> <a href="/policies/terms-of-service" class="link footer__link" aria-label="Terms of Service" tabindex="0"> Terms of Service </a> </li><li class="footer__sublist-item"> <a href="/pages/refund-policy" class="link footer__link" aria-label="Refund Policy / Exchange" tabindex="0"> Refund Policy / Exchange </a> </li><li class="footer__sublist-item"> <a href="/pages/shipping-information" class="link footer__link" aria-label="Shipping Information" tabindex="0"> Shipping Information </a> </li><li class="footer__sublist-item"> <a href="/pages/rewards" class="link footer__link" aria-label="Rewards" tabindex="0"> Rewards </a> </li><li class="footer__sublist-item"> <a href="https://consumer.pollenreturns.net/rubylove" class="link footer__link" aria-label="Return Portal" tabindex="0"> Return Portal </a> </li><!----> </ul> </li> <li class="footer__list-item js-accordion"> <span class="footer__list-item-title js-accordion-toggler"> Corporate <span class="footer__list-item-icon"></span> </span> <ul class="footer__sublist js-accordion-content"><li class="footer__sublist-item"> <a href="/pages/faq" class="link footer__link" aria-label="FAQ" tabindex="0"> FAQ </a> </li><li class="footer__sublist-item"> <a href="/pages/about" class="link footer__link" aria-label="About Ruby Love" tabindex="0"> About Ruby Love </a> </li><li class="footer__sublist-item"> <a href="/pages/the-ruby-love-communitys-impact" class="link footer__link" aria-label="Community Impact" tabindex="0"> Community Impact </a> </li><li class="footer__sublist-item"> <a href="https://impact.com/partners/" class="link footer__link" aria-label="Affiliate Partners" tabindex="0"> Affiliate Partners </a> </li><li class="footer__sublist-item"> <a href="/pages/about" class="link footer__link" aria-label="Ruby Love Tech" tabindex="0"> Ruby Love Tech </a> </li><li class="footer__sublist-item"> <a href="/blogs/blog" class="link footer__link" aria-label="Blog" tabindex="0"> Blog </a> </li><li class="footer__sublist-item"> <a href="https://join.collabs.shopify.com/community/apply/s0Nz_GZL5ec" class="link footer__link" aria-label="Influencer Request Form" tabindex="0"> Influencer Request Form </a> </li><li class="footer__sublist-item"> <a href="/pages/social-landing-page" class="link footer__link" aria-label="Host a First Period Party" tabindex="0"> Host a First Period Party </a> </li><!--<li class="footer__sublist-item"> <a href="#" class="link footer__link" id="accessibility-button" aria-label="Open accessibility app">Accessibility</a> </li>--> </ul> </li> <li class="footer__list-item footer__list-item--social-links"> <span class="footer__list-item-title"> FOLLOW RUBY LOVE </span> <form class="listrak-form" method="post" action="https://link.rubylove.com/q/Rqa-eWsFURlQGPyFddgB5_acEbS5ygi0HpSECB6gv01x-aJQKy3dx8STkM" accept-charset="UTF-8"> <div><td align="left" colspan="2"><strong>Add your email for our private sales and discounts.</strong></div> <div><input placeholder="Email Address" class="listrak-field" type="text" name="email" size="40" maxlength="100" value=""/></td> </div> <div> <input type="submit" id="submit" value="Sign Up"/></div> </form> <div class="footer__sublist-icons"> <a href="https://www.instagram.com/shoprubylove/" class="link footer__sublist-icon" target="_blank" aria-label="Go to Instagram"> <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512" class="svg-inline--fa fa-instagram fa-w-14 fa-2x"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" class=""></path></svg> </a> <a href="https://www.facebook.com/myrubylove" class="link footer__sublist-icon" target="_blank" aria-label="Go to Facebook"> <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-f" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 320 512" class="svg-inline--fa fa-facebook-f fa-w-10 fa-2x"><path fill="currentColor" d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z" class=""></path></svg> </a> <a href="https://www.youtube.com/shoprubylove" class="link footer__sublist-icon" target="_blank" aria-label="Go to Youtube"> <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="youtube" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512" class="svg-inline--fa fa-youtube fa-w-18 fa-2x"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z" class=""></path></svg> </a> <a href="https://twitter.com/shoprubylove" class="link footer__sublist-icon" target="_blank" aria-label="Go to Twitter"> <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512" class="svg-inline--fa fa-twitter fa-w-16 fa-2x"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" class=""></path></svg> </a> <a href="https://www.pinterest.com/shoprubylove/" class="link footer__sublist-icon" target="_blank" aria-label="Go to Pinterest"> <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="pinterest-p" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 384 512" class="svg-inline--fa fa-pinterest-p fa-w-12 fa-2x"><path fill="currentColor" d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z" class=""></path></svg> </a> </div> </li> </ul> <div class="footer__copyright"> © 2024. PANTYPROP INC | DBA RUBY LOVE. ALL RIGHTS RESERVED. </div> </div> </div> </footer> <script> document.addEventListener('DOMContentLoaded', function () { KlaviyoSubscribe.attachToForms('#newsletter-form', { success: function () { $('.js-newsletter-success-message').css('display', 'block'); $('.js-newsletter-content').css('opacity', '0'); } }); function getCurrencyName(country){ switch (country){ case 'US': return 'USD' case 'CA': return 'CAD' case 'AU': return 'AUD' } } function addCurrencyInProduct(country){ const currency = getCurrencyName(country); document.querySelectorAll('.product-card__price').forEach((elem) => { const span = document.createElement('span') span.innerHTML = " "+currency; span.className = 'product-card__currency'; elem.append(span); }); } function addCurrencyInProduct(country) { const currency = getCurrencyName(country); document.querySelectorAll('.product-card__price').forEach((elem) => { const span = document.createElement('span') span.innerHTML = " " + currency; span.className = 'product-card__currency'; elem.append(span); }); } function isolateCountries(){ const countryCodeSelector = document.getElementById('country_code'); if(!countryCodeSelector){ setTimeout(isolateCountries, 1000); return; } const selectedCode = countryCodeSelector.options[countryCodeSelector.selectedIndex].value; // remove all options from country code selector except US and Canada for (var i = countryCodeSelector.options.length - 1; i >= 0; i--) { if (countryCodeSelector.options[i].value != 'US' && countryCodeSelector.options[i].value != 'CA' && countryCodeSelector.options[i].value != 'AU'){ countryCodeSelector.remove(i); } } if (selectedCode != 'US' && selectedCode != 'CA' && selectedCode != 'AU') { countryCodeSelector.value = 'US'; } // Save parent dom element as a variable const parent = countryCodeSelector.closest('.locale-selectors__container').parentElement; // Modify it real quick parent.classList.add('header__region-selector'); // Add class to element parent.querySelector('.locale-selectors__content').style.cssText = ''; // Remove inline styles // const parentMobileVersion = parent.cloneNode(true); // Clone element // Remove parent from Footer and add to Header > icons parent.remove(); if (window.innerWidth < 875) { document.querySelector('nav.mobile-menu__navigation').insertAdjacentElement('afterend', parent); } else { document.querySelector('.container.header__content-row .header__icons').insertAdjacentElement('afterbegin', parent); } // add currency in prices addCurrencyInProduct(countryCodeSelector.value); } // function addRegionSelector(element) { // element.remove(); // const windowWidth = window.innerWidth; // if (windowWidth < 875) { // document.querySelector('nav.mobile-menu__navigation').insertAdjacentElement('afterend', element); // } else { // document.querySelector('.container.header__content-row .header__icons').insertAdjacentElement('afterbegin', element); // } // } setTimeout(isolateCountries, 1000); }); </script> <style> /* Animate in after 1second and keep the animation at the last frame */ .header__region-selector { max-width: 0; opacity: 0; animation: 0.5s ease-out 0.25s 1 forwards slide-in-left; margin-right: 20px; } .locale-selectors__container { display: inline-block; padding: unset; background: unset !important; } .locale-selectors__container label#country_code_label { display: block; } .locale-selectors__container select#country_code.locale-selectors__selector { padding-top: 8px !important; background-color: unset !important; border: 1px solid #C50029 !important; color: #C50029 !important; } .mobile-menu.js-mobile-menu .header__region-selector { margin: 20px 0 100px; } @media only screen and (max-width: 875px) { .container.header__content-row .header__region-selector { display: none; } } @keyframes slide-in-left { 0% { transform: translateX(100%); opacity: 0; max-width: 0; } 100% { transform: translateX(0); opacity: 1; max-width: 210px; } } </style> </div> <div id="shopify-section-minicart" class="shopify-section"> <div id="minicart" data-test2 data-section-id="minicart" data-section-type="minicart" > </div> <script id="minicart-customizer-data" type="application/json"> { "customizer": { "cart_title":"MY CART", "subtotal_text":"SUBTOTAL:", "checkout_text":"CHECKOUT", "remove_text":"Remove", "enable_shipping_notice":true, "notice_message":"\u003cp\u003eSpend [remaining_amount] more and get \u003cstrong\u003eFREE SHIPPING\u003c\/strong\u003e!\u003c\/p\u003e", "complete_notice_message":"", "min_shipping_value":99, "empty_button_text":"SHOP ALL", "empty_button_url":"\/collections\/all-products", "empty_minicart_text":"YOUR CART IS EMPTY", "enable_related_product":true, "related_button_text":"ADD TO ORDER", "store_logo":"\/\/www.rubylove.com\/cdn\/shop\/files\/Ruby_Fractal_Heart_logo_2.png?v=1645824254"} } </script> </div> <!-- Mutesix Google Ads Add to cart tracking code --> <script> const MINICART_OPEN_BTNS = document.querySelectorAll('.js-open-minicart'); const elementsCart = document.querySelectorAll('[data-add-to-cart]'); MINICART_OPEN_BTNS.forEach(btn => { btn.addEventListener('click', openMenu) }); elementsCart.forEach(btn => { btn.addEventListener('click', openMenu) }); function openMenu() { checkCart(); let interval = setInterval(() => { let minicartProducts = document.querySelector('.minicart__body') let MINICART_REMOVE_BTNS = minicartProducts.querySelectorAll('.minicart-product__remove-button'); let MINICART_QUANTITY_BTNS = minicartProducts.querySelectorAll('.minicart-product__quantity-button'); console.log('INterval'); if (MINICART_REMOVE_BTNS.length > 0 && MINICART_QUANTITY_BTNS.length > 0) { MINICART_REMOVE_BTNS.forEach(btn => { btn.addEventListener('click', checkCart) }) MINICART_QUANTITY_BTNS.forEach(btn => { btn.addEventListener('click', checkCart) }) clearInterval(interval); } }, 300) } function checkCart() { setTimeout(() => { fetch('/cart.js') .then((data) => { return data.json() }) .then((response) => { let interval = setInterval(() => { let MINICART_NOTICE = document.querySelector('.minicart__shipping-notice'); if (MINICART_NOTICE) { if (response.original_total_price > 150000) { MINICART_NOTICE.style.display = "none"; } else { MINICART_NOTICE.style.display = "flex"; } clearInterval(interval) } }, 200) }) }, 1500) } </script> <script src="https://www.dwin1.com/58287.js" type="text/javascript" defer="defer"></script> <script defer="" src="//www.klaviyo.com/media/js/public/klaviyo_subscribe.js" type="text/javascript"></script> <script defer="" src="//www.rubylove.com/cdn/shop/t/160/assets/main.build.min.js?v=14204267769662346761718395769"></script> <script src="//www.rubylove.com/cdn/shop/t/160/assets/scripts.bundle.js?v=136307914983109177031718395767" type="text/javascript"></script> <!-- Start of rubylove Zendesk Widget script --> <script async id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=644f5ad6-7734-4f9c-a635-de1dc79988ab" ></script> <!-- End of rubylove Zendesk Widget script --> <!-- BEAM START --> <script type="module" async crossorigin src="https://production-beam-widgets.beamimpact.com/web-sdk/v1.7.0/dist/components/select-nonprofit.esm.js"></script> <script type="text/javascript" defer> </script> <script type="module" async crossorigin> import { registerCartIntegration } from "https://production-beam-widgets.beamimpact.com/web-sdk/v1.10.1/dist/components/shopify.esm.js"; registerCartIntegration({ apiKey: "pR71JarWRNFp.2128df50-d191-484c-97c7-de75621124da", storeId: 295, baseUrl: "https://production-central-backend-ne.beamimpact.com" }); </script> <div class="smile-shopify-init" data-channel-key="channel_xIPBrvQdNSuA1gGP5IGK8uPp" ></div> <!-- Gem_Page_Footer_Script --> <script data-instant-track type="text/javascript"> var GEMVENDOR = GEMVENDOR || (function(){ var _js = {}; return { init: function(Args) { _js = Args; }, getLibs: function() { return _js; } }; }()); if(typeof pageLibs === 'undefined' || pageLibs === null){ var pageLibs = []; } GEMVENDOR.init(pageLibs); </script> <script data-instant-track type="text/javascript" src="https://d1um8515vdn9kb.cloudfront.net/files/gempagev2.js?v=1.0" class="gf-script" defer></script> <!-- End_Gem_Page_Footer_Script --> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:ital" media="print" onload="this.media='all'; this.onload = null"> <!-- CRITEO START --> <script type="text/javascript"> (function(){ var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d"; window.criteo_q = window.criteo_q || []; window.criteo_q.push( { event: "setAccount", account: 75917 }, { event: "setEmail", email: "", hash_method: "none"}, { event: "setSiteType", type: deviceType }, { event: "setZipcode", zipcode: "" }, { event: "viewList", ecpplugin: "shopify-cg", category:"rl-two-piece-period-swimsuits", item: ["6731879874604","6731905433644","6731905302572"]} ); window.addEventListener('load', function() { // ajax request catching (function(open) { XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { this.addEventListener("readystatechange", function() { if (this.readyState == 4 && this._url.includes("/add.js") && "" != "") { try { $.getJSON("/cart.js", function(data) { var basketData = []; var item; if (!data.items || !data.items.length) return; for (var i = 0; i < data.items.length; i++) { item = data.items[i]; if (item.product_id == "") { basketData.push({ id: item.product_id, price: (typeof(item.price) != "number") ? item.price : (item.price/100), quantity: item.quantity }); } } window.criteo_q.push({ event: "addToCart", ecpplugin: "shopify-cg", product: basketData }); }); } catch (err) { // do nothing } } }, false); open.call(this, method, url, async, user, pass); }; })(XMLHttpRequest.prototype.open); // fetch request catching const crtoMock = window.fetch; window.fetch = function() { return new Promise((resolve, reject) => { crtoMock.apply(this, arguments) .then((response) => { if(response.url.includes("/add.js") && response.type != "cors" && "" != ""){ try { $.getJSON("/cart.js", function(data) { var basketData = []; var item; if (!data.items || !data.items.length) return; for (var i = 0; i < data.items.length; i++) { item = data.items[i]; if (item.product_id == "") { basketData.push({ id: item.product_id, price: (typeof(item.price) != "number") ? item.price : (item.price/100), quantity: item.quantity }); } } window.criteo_q.push({ event: "addToCart", ecpplugin: "shopify-cg", product: basketData }); }); } catch (err) { // do nothing } } resolve(response); }) .catch((error) => { reject(error); }) }); } }, false); })(); </script> <!-- CRITEO END --> <!-- Listrak Analytics – Javascript Framework --> <script type="text/javascript"> var biJsHost = (("https:" == document.location.protocol) ? "https://" : "http://"); (function (d, s, id, tid, vid) { var js, ljs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = biJsHost + "cdn.listrakbi.com/scripts/script.js?m=" + tid + "&v=" + vid; ljs.parentNode.insertBefore(js, ljs); })(document, 'script', 'ltkSDK', 'KphZQSKYlY5U', '1'); </script> <style> @font-face { font-family: "Gill Sans"; src: url("https://cdn.shopify.com/s/files/1/0552/0251/2940/files/Gill_Sans.otf"); } </style> <script> window.StoreCreditInit = { shop: 'rubylovedev.myshopify.com', cashback_widget_status: 0 } </script> <style> .mc-modal {display: none !important;} .locale-selectors__content {max-width: unset !important; margin-left: unset !important; margin-right: unset !important; padding-left: unset !important; padding-right: unset !important;} </style> <div id="shopify-block-6174324309569838175" class="shopify-block shopify-app-block"> <div class="smile-shopify-init" data-channel-key="channel_xIPBrvQdNSuA1gGP5IGK8uPp" ></div> </div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10