<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="canonical" href="https://www.replaprints.com/">
    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"><title>
      Repla Prints
</title><meta property="og:site_name" content="Repla Prints">
    <meta property="og:title" content="Repla Prints">
    <meta property="og:url" content="https://www.replaprints.com/"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Repla Prints"><script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "Organization",
        "name": "Repla Prints",
        "url": "https://www.replaprints.com",
        "logo": "",
        "contactPoint": {
          "@type": "ContactPoint",
          "telephone": "(770) 423-0201",
          "contactType": "customer service",
          "availableLanguage": "English"
        }
      }
    </script>

    <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="/82592858352/digital_wallets/dialog">
<meta name="shopify-checkout-api-token" content="ab59e46147787147ac50ba51d1396391">
<meta id="in-context-paypal-metadata" data-shop-id="82592858352" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
<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=82592858352" crossorigin="anonymous"></script>
<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":82592858352,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/82592858352","merchantName":"Repla Prints","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Repla Prints","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
<script id="shopify-features" type="application/json">{"accessToken":"ab59e46147787147ac50ba51d1396391","betas":["rich-media-storefront-analytics"],"domain":"www.replaprints.com","predictiveSearch":true,"shopId":82592858352,"locale":"en"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "exaxfn-zh.myshopify.com";
Shopify.locale = "en";
Shopify.currency = {"active":"USD","rate":"1.0"};
Shopify.country = "US";
Shopify.theme = {"name":"Repla Prints","id":161394131184,"schema_name":"Repla Prints","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.replaprints.com/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";
Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
Shopify.SignInWithShop = Shopify.SignInWithShop || {};
Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
Shopify.SignInWithShop.User.recognized = false;</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";
  window.ShopifyPay.redirectState = null;
</script>
<script>
  window.Shopify = window.Shopify || {};
  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.01 };
  window.Shopify.SignInWithShop.eligible = true;
</script>
<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
<script defer="defer" async type="module" src="//www.replaprints.com/cdn/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
<script type="module">
  await import("//www.replaprints.com/cdn/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");

  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});

</script>
<script>
  window.Shopify = window.Shopify || {};
  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
  window.Shopify.featureAssets['shop-js'] = {"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"avatar":["modules/v2/loader.avatar.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"]};
</script>
<script id="__st">var __st={"a":82592858352,"offset":-14400,"reqid":"8c59431c-57f6-4f42-935f-3193dedba01a-1781019736","pageurl":"www.replaprints.com\/index.xml","u":"0df9100111e2","p":"home"};</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(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(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){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.replaprints.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
<script crossorigin="anonymous" defer="defer" src="//www.replaprints.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-bf1cdb70.js?v=20250812"></script>
<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.replaprints.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
</script>
<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
</script>
<script async="async" integrity="sha256-hlq21VGceRKy8z+Fjhropk1BwDPACP0RdQ5rBrATyUo=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-67b41cb9.js" crossorigin="anonymous"></script>
<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.replaprints.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
<style id="shopify-accelerated-checkout-cart">
        #shopify-buyer-consent {
  margin-top: 1em;
  display: inline-block;
  width: 100%;
}

#shopify-buyer-consent.hidden {
  display: none;
}

#shopify-subscription-policy-button {
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  font-size: inherit;
  cursor: pointer;
}

#shopify-subscription-policy-button::before {
  box-shadow: none;
}

      </style>

<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>

    <link href="//www.replaprints.com/cdn/shop/t/7/assets/base.css?v=141961480649629607251776174801" rel="stylesheet" type="text/css" media="all" />
  <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";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: 82592858352,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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>
  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
</script>
<script id="web-pixels-manager-setup">(function(){var wpmLoader=function(){"use strict";return function(e,d,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!Boolean(null==(i=null==(a=window.Shopify)?void 0:a.analytics)?void 0:i.replayQueue)){var a,i;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l,u,c,m,p,f,h,g,y,w,v,b,S,P=(u=(l={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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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,c=l.legacy,(m=navigator.userAgent).match(u)?"modern":m.match(c)?"legacy":"unknown"),C="modern"===P?"modern":"legacy",_=(null!=n?n:{modern:"",legacy:""})[C],O=[(p={baseUrl:d,hashVersion:r,buildTarget:C}).baseUrl,"/wpm","/b",p.hashVersion,"modern"===p.buildTarget?"m":"l",".js"].join(""),U=(f={version:r,bundleTarget:P,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint},h=f.version,g=f.bundleTarget,y=f.surface,w=f.pageUrl,v=f.monorailEndpoint,{emit:function(e){var d=e.status,r=e.errorMsg,n=(new Date).getTime(),o=JSON.stringify({metadata:{event_sent_at_ms:n},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:h,bundle_target:g,page_url:w,status:d,surface:y,error_msg:r},metadata:{event_created_at_ms:n}}]});if(!v)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(v,o)}catch(e){}var a=new XMLHttpRequest;try{return a.open("POST",v,!0),a.setRequestHeader("Content-Type","text/plain"),a.send(o),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}});try{o.browserTarget=P,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,a=e.onerror,i=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,i&&(l.integrity=i,l.crossOrigin="anonymous"),s)for(var m in s)if(Object.prototype.hasOwnProperty.call(s,m))try{l.dataset[m]=s[m]}catch(e){}if(o&&l.addEventListener("load",o),a&&l.addEventListener("error",a),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:O,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null==(d=null==(e=window.Shopify)?void 0:e.analytics)?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)}),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return U.emit({status:"failed",errorMsg:"".concat(O," has failed to load")})},sri:(b=_,S=/^sha384-[A-Za-z0-9+/=]+$/,"string"==typeof b&&S.test(b)?_:""),scriptDataAttributes:o}),U.emit({status:"loading"})}catch(e){U.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}}}();wpmLoader({shopId: 82592858352,storefrontBaseUrl: "https://www.replaprints.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["2dca8a86","d5bdd5d0","3209b71c","5acaffe6","86d76263","3b3c7daf","6faea013"],webPixelsConfigList: [{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0460","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0460","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Repla Prints","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"exaxfn-zh.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.replaprints.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":null,"purchasingCompany":null,"page":null},},"https://www.replaprints.com/cdn","a9664f44w6a62cec8p04af10e4mb91e3447",{"modern":"","legacy":""},{"trekkieShim":true,"apiClientId":"580111","pageType":"home","shopId":"82592858352","storefrontBaseUrl":"https:\/\/www.replaprints.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"2dca8a86\", \"d5bdd5d0\", \"3209b71c\", \"5acaffe6\", \"86d76263\", \"3b3c7daf\", \"6faea013\"]","isMerchantRequest":"false","hashVersion":"a9664f44w6a62cec8p04af10e4mb91e3447","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script><script>
  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
  window.ShopifyAnalytics.meta.currency = 'USD';
  var meta = {"page":{"pageType":"home","requestId":"8c59431c-57f6-4f42-935f-3193dedba01a-1781019736"}};
  for (var attr in meta) {
    window.ShopifyAnalytics.meta[attr] = meta[attr];
  }
</script>
<script class="analytics">
  (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 || [];
    window.ShopifyAnalytics.lib.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);
        if (window.__TREKKIE_SHIM_QUEUE && (method == 'track' || method == 'page')) {
          try {
            window.__TREKKIE_SHIM_QUEUE.push({
              from: 'trekkie-stub',
              method: method,
              args: args.slice(1)
            });
          } catch (e) {
            // no-op
          }
        }
        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: 82592858352,
      theme_id: 161394131184,
      app_name: "storefront",
      context_url: window.location.href,
      source_url: "//www.replaprints.com/cdn/s/trekkie.storefront.370ef8ffef154dc56bb5a814fea4666724353464.min.js"});

  };
  scriptFallback.async = true;
  scriptFallback.src = '//www.replaprints.com/cdn/s/trekkie.storefront.370ef8ffef154dc56bb5a814fea4666724353464.min.js';
  first.parentNode.insertBefore(scriptFallback, first);
};
script.async = true;
script.src = '//www.replaprints.com/cdn/s/trekkie.storefront.370ef8ffef154dc56bb5a814fea4666724353464.min.js';
first.parentNode.insertBefore(script, first);

    };
    trekkie.load(
      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":82592858352,"isMerchantRequest":null,"themeId":161394131184,"themeCityHash":"15045805198995985739","contentLanguage":"en","currency":"USD","eventMetadataId":"a99bcc39-6f60-4996-aa51-ef74df9d35ae"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["b5387b81","d5bdd5d0"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
    );

    var loaded = false;
    trekkie.ready(function() {
      if (loaded) return;
      loaded = true;

      window.ShopifyAnalytics.lib = window.trekkie;

      var originalDocumentWrite = document.write;
      document.write = customDocumentWrite;
      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
      document.write = originalDocumentWrite;

      window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"8c59431c-57f6-4f42-935f-3193dedba01a-1781019736","shopifyEmitted":true});

      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
      var token = match? match[1]: undefined;
      if (!hasLoggedConversion(token)) {
        setCookieIfConversion(token);
        
      }
    });

    var eventsListenerScript = document.createElement('script');
    eventsListenerScript.async = true;
    eventsListenerScript.src = "//www.replaprints.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
<script
  defer
  src="https://www.replaprints.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.5.0.min.js"
  data-application="storefront-renderer"
  data-shop-id="82592858352"
  data-render-region="gcp-us-central1"
  data-page-type="index"
  data-theme-instance-id="161394131184"
  data-theme-name="Repla Prints"
  data-theme-version="1.0.0"
  data-monorail-region="shop_domain"
  data-resource-timing-sampling-rate="10"
  data-shs="true"
  data-shs-beacon="true"
  data-shs-export-with-fetch="true"
  data-shs-logs-sample-rate="1"
  data-shs-beacon-endpoint="https://www.replaprints.com/api/collect"
></script>
</head>

  <body>
    <a href="#MainContent" class="sr-only">Skip to content</a>

    <div id="shopify-section-header" class="shopify-section"><header class="hdr">
  <nav aria-label="Global" class="hdr-nav">
    <!-- Logo -->
    <div class="hdr-logo">
      <a href="/">
        <span class="sr-only">Repla Prints</span>
        <img src="//www.replaprints.com/cdn/shop/t/7/assets/repla-logo.svg?v=20752228856934857601773583041" alt="Repla Prints" class="hdr-logo__img" loading="eager" fetchpriority="high" />
      </a>
    </div>

    <!-- Mobile hamburger -->
    <button type="button" class="hdr-mobile-toggle" aria-label="Open menu" onclick="document.getElementById('mobile-menu').classList.add('mobile-menu--open')">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true" class="hdr-icon">
        <path d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" stroke-linecap="round" stroke-linejoin="round" />
      </svg>
    </button>

    <!-- Desktop nav links -->
    <div class="hdr-links"><!-- Simple link -->
            <a href="/" class="hdr-link" >
              Home
            </a><!-- Has children → mega menu -->
            <div class="hdr-dropdown">
              <a href="/pages/categories" class="hdr-link hdr-dropdown__trigger" >
                Categories
                <svg class="hdr-dropdown__chevron" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
                  <path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
                </svg>
              </a>
              <div class="hdr-mega">
                <div class="hdr-mega__inner">
                  <div class="hdr-mega__grid"><a href="/collections/activewear" class="hdr-mega__item">Activewear</a><a href="/collections/big-tall" class="hdr-mega__item">Big & Tall</a><a href="/collections/bottoms" class="hdr-mega__item">Bottoms</a><a href="/collections/t-shirts" class="hdr-mega__item">Hats</a><a href="/collections/infant-toddler" class="hdr-mega__item">Infants</a><a href="/collections/outerwear" class="hdr-mega__item">Outerwear</a><a href="/collections/polos" class="hdr-mega__item">Polos</a><a href="/collections/personal-protection" class="hdr-mega__item">Personal Protection</a><a href="/collections/sweatshirts-fleece" class="hdr-mega__item">Sweatshirts & Fleece</a><a href="/collections/t-shirts" class="hdr-mega__item">T-shirts</a><a href="/collections/woven-shirts" class="hdr-mega__item">Women</a><a href="/collections/t-shirts" class="hdr-mega__item">Workwear</a><a href="/blogs/resources/how-a-company-store-can-simplify-your-teams-merch-ordering" class="hdr-mega__item">Woven Shirts</a><a href="/blogs/news" class="hdr-mega__item">Youth</a></div>
                  <div class="hdr-mega__footer">
                    <a href="/pages/categories" class="hdr-mega__view-all">View all Categories</a>
                  </div>
                </div>
              </div>
            </div><!-- Has children → mega menu -->
            <div class="hdr-dropdown">
              <a href="/pages/services" class="hdr-link hdr-dropdown__trigger" >
                Services
                <svg class="hdr-dropdown__chevron" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
                  <path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
                </svg>
              </a>
              <div class="hdr-mega">
                <div class="hdr-mega__inner">
                  <div class="hdr-mega__grid"><a href="/pages/promotional-products" class="hdr-mega__item">Promotional Products</a><a href="/pages/screen-printing" class="hdr-mega__item">Screen Printing</a><a href="/pages/embroidery-1" class="hdr-mega__item">Embroidery</a><a href="/pages/fulfillment" class="hdr-mega__item">Fulfillment</a></div>
                  <div class="hdr-mega__footer">
                    <a href="/pages/services" class="hdr-mega__view-all">View all Services</a>
                  </div>
                </div>
              </div>
            </div><!-- Simple link -->
            <a href="/pages/contact" class="hdr-link" >
              Contact
            </a></div>

    <!-- Desktop search (>=1024px shows input, mobile shows icon-only button) -->
    <div class="hdr-search">
      <!-- Desktop inline search input -->
      <form
        action="/search"
        method="get"
        role="search"
        class="ps-form ps-form--desktop"
        data-ps-root="desktop"
      >
        <label for="ps-input-desktop" class="sr-only">Search</label>
        <svg class="ps-form__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
          <circle cx="11" cy="11" r="7" stroke-linecap="round" stroke-linejoin="round"/>
          <path d="m20 20-3.5-3.5" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
        <input
          id="ps-input-desktop"
          type="search"
          name="q"
          autocomplete="off"
          placeholder="Search products, collections, pages..."
          class="ps-form__input"
          role="combobox"
          aria-expanded="false"
          aria-autocomplete="list"
          aria-controls="ps-listbox-desktop"
          data-ps-input
        />
        <input type="hidden" name="options[prefix]" value="last">
        <!-- Dropdown panel anchored to this input -->
        <div
          id="ps-panel-desktop"
          class="ps-panel"
          data-ps-panel
          data-ps-state="closed"
          hidden
        >
          <div class="ps-panel__inner">
            <div class="ps-panel__body" data-ps-body></div>
            <div class="ps-panel__footer" data-ps-footer hidden>
              <a href="#" class="ps-view-all" data-ps-view-all>
                <span data-ps-view-all-label>View all results</span>
                <span aria-hidden="true">→</span>
              </a>
            </div>
          </div>
          <ul
            id="ps-listbox-desktop"
            class="ps-listbox"
            role="listbox"
            aria-label="Search suggestions"
            data-ps-listbox
          ></ul>
        </div>
      </form>

      <!-- Mobile search trigger (icon button) -->
      <button
        type="button"
        class="hdr-mobile-search-toggle"
        aria-label="Open search"
        data-ps-mobile-trigger
      >
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true" class="hdr-icon">
          <circle cx="11" cy="11" r="7" stroke-linecap="round" stroke-linejoin="round"/>
          <path d="m20 20-3.5-3.5" stroke-linecap="round" stroke-linejoin="round"/>
        </svg>
      </button>
    </div>

    <!-- Desktop right links -->
    <div class="hdr-actions"><a href="/account" class="hdr-link">Account</a><a href="/cart" class="hdr-link">
        Cart (0)
      </a>
    </div>
  </nav>

  <!-- Mobile menu overlay -->
  <div id="mobile-menu" class="mobile-menu">
    <div class="mobile-menu__backdrop" onclick="document.getElementById('mobile-menu').classList.remove('mobile-menu--open')"></div>
    <div class="mobile-menu__panel">
      <div class="mobile-menu__header">
        <button type="button" class="hdr-mobile-toggle" aria-label="Close menu" onclick="document.getElementById('mobile-menu').classList.remove('mobile-menu--open')">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true" class="hdr-icon">
            <path d="M6 18 18 6M6 6l12 12" stroke-linecap="round" stroke-linejoin="round" />
          </svg>
        </button>
      </div>
      <div class="mobile-menu__body"><a href="/" class="mobile-menu__link">Home</a><div class="mobile-menu__group">
                <button type="button" class="mobile-menu__link mobile-menu__accordion-trigger" onclick="this.parentElement.classList.toggle('mobile-menu__group--open')">
                  Categories
                  <svg class="mobile-menu__accordion-icon" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
                    <path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
                  </svg>
                </button>
                <div class="mobile-menu__children"><a href="/collections/activewear" class="mobile-menu__child-link">Activewear</a><a href="/collections/big-tall" class="mobile-menu__child-link">Big & Tall</a><a href="/collections/bottoms" class="mobile-menu__child-link">Bottoms</a><a href="/collections/t-shirts" class="mobile-menu__child-link">Hats</a><a href="/collections/infant-toddler" class="mobile-menu__child-link">Infants</a><a href="/collections/outerwear" class="mobile-menu__child-link">Outerwear</a><a href="/collections/polos" class="mobile-menu__child-link">Polos</a><a href="/collections/personal-protection" class="mobile-menu__child-link">Personal Protection</a><a href="/collections/sweatshirts-fleece" class="mobile-menu__child-link">Sweatshirts & Fleece</a><a href="/collections/t-shirts" class="mobile-menu__child-link">T-shirts</a><a href="/collections/woven-shirts" class="mobile-menu__child-link">Women</a><a href="/collections/t-shirts" class="mobile-menu__child-link">Workwear</a><a href="/blogs/resources/how-a-company-store-can-simplify-your-teams-merch-ordering" class="mobile-menu__child-link">Woven Shirts</a><a href="/blogs/news" class="mobile-menu__child-link">Youth</a><a href="/pages/categories" class="mobile-menu__child-link mobile-menu__child-link--all">View all Categories</a>
                </div>
              </div><div class="mobile-menu__group">
                <button type="button" class="mobile-menu__link mobile-menu__accordion-trigger" onclick="this.parentElement.classList.toggle('mobile-menu__group--open')">
                  Services
                  <svg class="mobile-menu__accordion-icon" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
                    <path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" />
                  </svg>
                </button>
                <div class="mobile-menu__children"><a href="/pages/promotional-products" class="mobile-menu__child-link">Promotional Products</a><a href="/pages/screen-printing" class="mobile-menu__child-link">Screen Printing</a><a href="/pages/embroidery-1" class="mobile-menu__child-link">Embroidery</a><a href="/pages/fulfillment" class="mobile-menu__child-link">Fulfillment</a><a href="/pages/services" class="mobile-menu__child-link mobile-menu__child-link--all">View all Services</a>
                </div>
              </div><a href="/pages/contact" class="mobile-menu__link">Contact</a><div class="mobile-menu__divider"></div><a href="/account" class="mobile-menu__link">Account</a><a href="/cart" class="mobile-menu__link">Cart (0)</a>
      </div>
    </div>
  </div>

  <!-- Mobile search overlay (slides from TOP, not right) -->
  <div id="ps-mobile-overlay" class="ps-overlay" data-ps-overlay hidden>
    <div class="ps-overlay__panel">
      <form
        action="/search"
        method="get"
        role="search"
        class="ps-form ps-form--mobile"
        data-ps-root="mobile"
      >
        <div class="ps-overlay__header">
          <label for="ps-input-mobile" class="sr-only">Search</label>
          <div class="ps-form__field">
            <svg class="ps-form__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
              <circle cx="11" cy="11" r="7" stroke-linecap="round" stroke-linejoin="round"/>
              <path d="m20 20-3.5-3.5" stroke-linecap="round" stroke-linejoin="round"/>
            </svg>
            <input
              id="ps-input-mobile"
              type="search"
              name="q"
              autocomplete="off"
              placeholder="Search products, collections, pages..."
              class="ps-form__input"
              role="combobox"
              aria-expanded="false"
              aria-autocomplete="list"
              aria-controls="ps-listbox-mobile"
              data-ps-input
            />
          </div>
          <input type="hidden" name="options[prefix]" value="last">
          <button type="button" class="ps-overlay__cancel" data-ps-mobile-close>
            Cancel
          </button>
        </div>
        <div
          id="ps-panel-mobile"
          class="ps-panel ps-panel--mobile"
          data-ps-panel
          data-ps-state="closed"
        >
          <div class="ps-panel__inner">
            <div class="ps-panel__body" data-ps-body></div>
            <div class="ps-panel__footer" data-ps-footer hidden>
              <a href="#" class="ps-view-all" data-ps-view-all>
                <span data-ps-view-all-label>View all results</span>
                <span aria-hidden="true">→</span>
              </a>
            </div>
          </div>
          <ul
            id="ps-listbox-mobile"
            class="ps-listbox"
            role="listbox"
            aria-label="Search suggestions"
            data-ps-listbox
          ></ul>
        </div>
      </form>
    </div>
  </div>
</header>

<style>
  /* ── Header shell ── */
  .hdr {
    background: #fff;
    position: relative;
    z-index: 100;
  }

  .hdr-nav {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 2rem;
    gap: 1.5rem;
  }

  .hdr-icon {
    width: 24px;
    height: 24px;
  }

  /* ── Logo ── */
  .hdr-logo {
    flex: 1;
  }

  .hdr-logo__img {
    height: 48px;
    width: auto;
  }

  .hdr-logo__img--small {
    height: 24px;
  }

  /* ── Links ── */
  .hdr-link {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    text-decoration: none;
    transition: color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
  }

  .hdr-link:hover {
    color: #1f2937;
  }

  .hdr-links {
    display: none;
    gap: 2.5rem;
  }

  .hdr-actions {
    display: none;
    flex: 0 0 auto;
    justify-content: flex-end;
    gap: 2rem;
  }

  /* ── Search slot in header ── */
  .hdr-search {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .hdr-mobile-search-toggle {
    background: none;
    border: none;
    padding: 0.5rem;
    cursor: pointer;
    color: #737373;
    display: inline-flex;
  }

  .hdr-mobile-search-toggle:hover { color: #171717; }

  /* ── Mobile toggle ── */
  .hdr-mobile-toggle {
    background: none;
    border: none;
    padding: 0.5rem;
    cursor: pointer;
    color: #737373;
  }

  .hdr-mobile-toggle:hover {
    color: #171717;
  }

  /* ── Dropdown / Mega menu (desktop) ── */
  .hdr-dropdown {
    position: relative;
  }

  .hdr-dropdown__trigger {
    cursor: pointer;
  }

  .hdr-dropdown__chevron {
    width: 14px;
    height: 14px;
    transition: transform 0.2s;
    flex-shrink: 0;
  }

  .hdr-mega {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    padding-top: 0.75rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
    z-index: 200;
  }

  .hdr-dropdown:hover .hdr-mega {
    opacity: 1;
    visibility: visible;
  }

  .hdr-dropdown:hover .hdr-dropdown__chevron {
    transform: rotate(180deg);
  }

  .hdr-mega__inner {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
    padding: 1.75rem 2rem;
    min-width: 480px;
  }

  .hdr-mega__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.15rem 2.5rem;
  }

  .hdr-mega__item {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    color: #525252;
    text-decoration: none;
    padding: 0.45rem 0;
    transition: color 0.15s;
    white-space: nowrap;
  }

  .hdr-mega__item:hover {
    color: #171717;
  }

  .hdr-mega__footer {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid #f0f0f0;
  }

  .hdr-mega__view-all {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: #171717;
    text-decoration: none;
    transition: color 0.15s;
  }

  .hdr-mega__view-all:hover {
    color: #525252;
  }

  /* ── Mobile menu ── */
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 300;
    pointer-events: none;
    visibility: hidden;
  }

  .mobile-menu--open {
    pointer-events: auto;
    visibility: visible;
  }

  .mobile-menu__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: opacity 0.3s;
  }

  .mobile-menu--open .mobile-menu__backdrop {
    opacity: 1;
  }

  .mobile-menu__panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 380px;
    background: #fff;
    overflow-y: auto;
    padding: 2rem;
    transform: translateX(100%);
    transition: transform 0.3s ease;
  }

  .mobile-menu--open .mobile-menu__panel {
    transform: translateX(0);
  }

  .mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
  }

  .mobile-menu__body {
    display: flex;
    flex-direction: column;
  }

  .mobile-menu__link {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #111827;
    text-decoration: none;
    padding: 0.75rem 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    transition: color 0.2s;
  }

  .mobile-menu__link:hover {
    color: #171717;
  }

  .mobile-menu__accordion-icon {
    width: 16px;
    height: 16px;
    transition: transform 0.2s;
  }

  .mobile-menu__group--open .mobile-menu__accordion-icon {
    transform: rotate(180deg);
  }

  .mobile-menu__children {
    display: none;
    flex-direction: column;
    padding-left: 1rem;
    padding-bottom: 0.5rem;
  }

  .mobile-menu__group--open .mobile-menu__children {
    display: flex;
  }

  .mobile-menu__child-link {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    color: #6b7280;
    text-decoration: none;
    padding: 0.5rem 0;
    transition: color 0.2s;
  }

  .mobile-menu__child-link:hover {
    color: #171717;
  }

  .mobile-menu__child-link--all {
    font-weight: 500;
    color: #171717;
    margin-top: 0.25rem;
  }

  .mobile-menu__divider {
    border-top: 1px solid #f0f0f0;
    margin: 0.5rem 0;
  }

  /* ════════════════════════════════════════════════════
     PREDICTIVE SEARCH (.ps-*)
     Tokens locked in scratchpad/search-system-plan.md
     ════════════════════════════════════════════════════ */

  /* ── Form (desktop input) ── */
  .ps-form {
    position: relative;
  }

  .ps-form--desktop {
    display: none;
  }

  .ps-form__input {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.4;
    color: #171717;
    background: #fafafa;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 0.5625rem 0.75rem 0.5625rem 2.25rem;
    width: 320px;
    height: 40px;
    transition: border-color 0.15s, background 0.15s;
    -webkit-appearance: none;
  }

  .ps-form__input::placeholder {
    color: #a3a3a3;
  }

  .ps-form__input:hover {
    border-color: #d4d4d4;
    background: #fff;
  }

  .ps-form__input:focus {
    outline: none;
    border-color: #171717;
    background: #fff;
  }

  .ps-form__input:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
  }

  .ps-form__icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    color: #737373;
    pointer-events: none;
  }

  /* Hide native search clear button */
  .ps-form__input::-webkit-search-cancel-button { -webkit-appearance: none; }

  /* ── Dropdown panel (desktop) ── */
  .ps-panel {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 380px;
    max-width: 480px;
    max-height: 70vh;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
    z-index: 90;
  }

  .ps-panel[hidden] {
    display: none;
  }

  .ps-panel--mobile {
    position: static;
    box-shadow: none;
    border: none;
    border-radius: 0;
    max-width: 100%;
    min-width: 0;
    max-height: none;
    flex: 1;
    overflow-y: auto;
  }

  .ps-panel__inner {
    display: flex;
    flex-direction: column;
  }

  .ps-panel__body {
    padding: 0;
  }

  /* ── Listbox / sections ── */
  .ps-listbox {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .ps-section {
    border-top: 1px solid #f0f0f0;
  }

  .ps-section:first-child {
    border-top: none;
  }

  .ps-section__header {
    font-family: 'Inter', sans-serif;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #737373;
    padding: 0.875rem 1rem 0.375rem;
    margin: 0;
  }

  .ps-section__list {
    list-style: none;
    margin: 0;
    padding: 0 0 0.5rem;
  }

  /* ── Result row (option) ── */
  .ps-result {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
    color: #171717;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s;
  }

  .ps-result:hover,
  .ps-result[aria-selected="true"] {
    background: #fafafa;
  }

  .ps-result:focus-visible {
    outline: 2px solid #171717;
    outline-offset: -2px;
    background: #fafafa;
  }

  .ps-result__thumb {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 4px;
    background: #fafafa;
    object-fit: cover;
    border: 1px solid #f0f0f0;
  }

  .ps-result__thumb--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #a3a3a3;
    font-size: 0.625rem;
  }

  .ps-result__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
  }

  .ps-result__title {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #171717;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ps-result__meta {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 400;
    color: #737373;
    line-height: 1.3;
  }

  .ps-result__price {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #525252;
    flex: 0 0 auto;
  }

  .ps-result__chevron {
    width: 14px;
    height: 14px;
    color: #a3a3a3;
    flex: 0 0 auto;
  }

  /* ── <mark> highlight (sanitizer-allowed tag) ── */
  .ps-result mark {
    background: #f0f0f0;
    color: #171717;
    font-weight: 600;
    padding: 0 1px;
    border-radius: 1px;
  }

  /* ── Footer (View all) ── */
  .ps-panel__footer {
    border-top: 1px solid #f0f0f0;
    background: #fafafa;
    position: sticky;
    bottom: 0;
  }

  .ps-view-all {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #171717;
    text-decoration: none;
    padding: 0.875rem 1rem;
    transition: color 0.15s;
  }

  .ps-view-all:hover { color: #525252; }

  .ps-view-all:focus-visible {
    outline: 2px solid #171717;
    outline-offset: -2px;
  }

  /* ── State blocks (loading / empty / error / no-query) ── */
  .ps-state {
    padding: 1rem;
  }

  .ps-state__heading {
    font-family: 'Inter', sans-serif;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #737373;
    margin: 0 0 0.5rem;
  }

  .ps-state__body {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    color: #525252;
    margin: 0 0 0.75rem;
    line-height: 1.5;
  }

  .ps-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
  }

  .ps-chip {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #171717;
    background: #fafafa;
    border: 1px solid #e5e5e5;
    border-radius: 999px;
    padding: 0.375rem 0.75rem;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
  }

  .ps-chip:hover {
    background: #fff;
    border-color: #171717;
  }

  .ps-chip:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
  }

  /* Loading skeleton */
  .ps-skeleton {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
  }

  .ps-skeleton__thumb {
    width: 48px;
    height: 48px;
    border-radius: 4px;
    background: #f0f0f0;
  }

  .ps-skeleton__lines {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
  }

  .ps-skeleton__bar {
    height: 0.75rem;
    background: #f0f0f0;
    border-radius: 2px;
  }

  .ps-skeleton__bar--short {
    width: 40%;
  }

  .ps-skeleton__bar--long {
    width: 70%;
  }

  @keyframes ps-shimmer {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
  }

  .ps-skeleton__thumb,
  .ps-skeleton__bar {
    animation: ps-shimmer 1.4s ease-in-out infinite;
  }

  @media (prefers-reduced-motion: reduce) {
    .ps-skeleton__thumb,
    .ps-skeleton__bar {
      animation: none;
    }
  }

  /* ── Mobile overlay (slides from TOP, NOT right) ── */
  .ps-overlay {
    position: fixed;
    inset: 0;
    z-index: 350; /* above mobile-menu (300) */
    background: rgba(0, 0, 0, 0.3);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    visibility: hidden;
  }

  .ps-overlay[hidden] {
    display: none;
  }

  .ps-overlay--open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
  }

  .ps-overlay__panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    height: 100%;
    transform: translateY(-100%);
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
  }

  .ps-overlay--open .ps-overlay__panel {
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .ps-overlay,
    .ps-overlay__panel {
      transition: none;
    }
  }

  .ps-overlay__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid #e5e5e5;
    background: #fff;
    flex: 0 0 auto;
    height: 60px;
  }

  .ps-form__field {
    flex: 1;
    position: relative;
  }

  .ps-form--mobile .ps-form__input {
    width: 100%;
    height: 44px;
  }

  .ps-overlay__cancel {
    background: none;
    border: none;
    padding: 0 0.5rem;
    min-height: 44px;
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #171717;
    cursor: pointer;
  }

  .ps-overlay__cancel:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
  }

  /* Mobile result rows: bigger touch targets */
  .ps-form--mobile + .ps-panel--mobile .ps-result,
  .ps-panel--mobile .ps-result {
    min-height: 56px;
    padding: 0.75rem 1rem;
  }

  .ps-panel--mobile .ps-result__thumb {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
  }

  /* ── Responsive: search input visibility ── */
  @media (min-width: 1024px) {
    .hdr-links {
      display: flex;
    }

    .hdr-actions {
      display: flex;
    }

    .hdr-mobile-toggle {
      display: none;
    }

    .ps-form--desktop {
      display: block;
    }

    .hdr-mobile-search-toggle {
      display: none;
    }

    .ps-overlay {
      display: none !important;
    }
  }

  @media (max-width: 1279px) and (min-width: 1024px) {
    .ps-form__input {
      width: 220px;
    }
  }

  /* sr-only utility (defensive — base.css may already define) */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
  }
</style>

<script>
  (function () {
    'use strict';

    /* ─────────────────────────────────────────────────────
       PREDICTIVE SEARCH
       Vanilla ES2018+: fetch, AbortController, Map, URLSearchParams
       ───────────────────────────────────────────────────── */

    var PREDICTIVE_URL = '/search/suggest';
    var SEARCH_URL = '/search';
    var DEBOUNCE_MS = 250;
    var REQUEST_TIMEOUT_MS = 5000;
    var POPULAR_QUERIES = ['t-shirts', 'polos', 'hats', 'hoodies'];

    var I18N = {
      view_all: 'View all results for',
      no_results: 'No results for',
      no_query_heading: 'Popular searches',
      unavailable: 'Search unavailable — press Enter to search anyway',
      loading: 'Searching...',
      section_products: 'Products',
      section_collections: 'Collections',
      section_pages: 'Pages',
      section_articles: 'Articles'
    };

    /* In-memory cache (Map<query, response>) — max 20 entries */
    var cache = new Map();
    var CACHE_MAX = 20;

    /* ─────── Utilities ─────── */

    function debounce(fn, wait) {
      var t;
      return function () {
        var ctx = this;
        var args = arguments;
        clearTimeout(t);
        t = setTimeout(function () { fn.apply(ctx, args); }, wait);
      };
    }

    function escapeHtml(s) {
      if (s == null) return '';
      var map = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' };
      return String(s).replace(/[&<>"']/g, function (c) { return map[c]; });
    }

    /* Allowlist sanitizer: ONLY <mark> tags are kept; <span> tags stripped (no
       attributes allowed through); everything else escaped to text.
       Shopify's styled_text format: "<span>prefix </span><mark>match</mark><span> suffix</span>" */
    function sanitizeStyledText(html) {
      if (!html) return '';
      var MARK_OPEN = '\u0001M_O\u0001';
      var MARK_CLOSE = '\u0001M_C\u0001';
      var safe = String(html)
        // Preserve <mark> / </mark>
        .replace(/<mark>/gi, MARK_OPEN)
        .replace(/<\/mark>/gi, MARK_CLOSE)
        // Drop <span ...> and </span> entirely (strip, don't escape)
        .replace(/<\/?span[^>]*>/gi, '')
        // Escape any remaining angle brackets / entities
        .replace(/&/g, '&amp;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        // Restore the preserved <mark> tags
        .split(MARK_OPEN).join('<mark>')
        .split(MARK_CLOSE).join('</mark>');
      return safe;
    }

    function trimQuery(s) {
      return (s || '').trim();
    }

    /* ─────── Overlay manager (mutual exclusion w/ mobile menu) ─────── */

    var overlayManager = {
      lockScroll: function () {
        document.body.style.overflow = 'hidden';
      },
      unlockScroll: function () {
        document.body.style.overflow = '';
      },
      closeMobileMenu: function () {
        var mm = document.getElementById('mobile-menu');
        if (mm) mm.classList.remove('mobile-menu--open');
      }
    };

    /* ─────── Render functions ─────── */

    function renderSkeleton() {
      var html = '';
      for (var i = 0; i < 3; i++) {
        html +=
          '<div class="ps-skeleton" aria-hidden="true">' +
            '<div class="ps-skeleton__thumb"></div>' +
            '<div class="ps-skeleton__lines">' +
              '<div class="ps-skeleton__bar ps-skeleton__bar--long"></div>' +
              '<div class="ps-skeleton__bar ps-skeleton__bar--short"></div>' +
            '</div>' +
          '</div>';
      }
      return html;
    }

    function renderNoQuery() {
      var chips = POPULAR_QUERIES.map(function (q) {
        return '<a href="' + SEARCH_URL + '?q=' + encodeURIComponent(q) + '" class="ps-chip">' + escapeHtml(q) + '</a>';
      }).join('');
      return (
        '<div class="ps-state">' +
          '<p class="ps-state__heading">' + escapeHtml(I18N.no_query_heading) + '</p>' +
          '<div class="ps-chips">' + chips + '</div>' +
        '</div>'
      );
    }

    function renderEmpty(query) {
      var chips = POPULAR_QUERIES.slice(0, 3).map(function (q) {
        return '<a href="' + SEARCH_URL + '?q=' + encodeURIComponent(q) + '" class="ps-chip">' + escapeHtml(q) + '</a>';
      }).join('');
      return (
        '<div class="ps-state">' +
          '<p class="ps-state__heading">' + escapeHtml(I18N.no_results) + " '" + escapeHtml(query) + "'" + '</p>' +
          '<p class="ps-state__body">Try a shorter or different term.</p>' +
          '<div class="ps-chips">' + chips + '</div>' +
        '</div>'
      );
    }

    function renderError() {
      return (
        '<div class="ps-state">' +
          '<p class="ps-state__body">' + escapeHtml(I18N.unavailable) + '</p>' +
        '</div>'
      );
    }

    function renderProductRow(p) {
      var thumb = '';
      if (p.featured_image && p.featured_image.url) {
        thumb = '<img class="ps-result__thumb" src="' + escapeHtml(p.featured_image.url) + '" alt="" loading="lazy" width="48" height="48">';
      } else {
        thumb = '<div class="ps-result__thumb ps-result__thumb--placeholder">No img</div>';
      }
      var price = '';
      if (p.price) {
        // p.price comes back as string like "$25.00"
        price = '<div class="ps-result__price">' + escapeHtml(p.price) + '</div>';
      }
      return (
        '<li role="option" aria-selected="false">' +
          '<a class="ps-result ps-result--product" href="' + escapeHtml(p.url) + '" data-ps-option>' +
            thumb +
            '<div class="ps-result__body">' +
              '<div class="ps-result__title">' + escapeHtml(p.title) + '</div>' +
              (p.vendor ? '<div class="ps-result__meta">' + escapeHtml(p.vendor) + '</div>' : '') +
            '</div>' +
            price +
          '</a>' +
        '</li>'
      );
    }

    function renderCollectionRow(c) {
      return (
        '<li role="option" aria-selected="false">' +
          '<a class="ps-result ps-result--collection" href="' + escapeHtml(c.url) + '" data-ps-option>' +
            '<div class="ps-result__body">' +
              '<div class="ps-result__title">' + escapeHtml(c.title) + '</div>' +
            '</div>' +
            '<svg class="ps-result__chevron" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 0 1 .02-1.06L11.168 10 7.23 6.29a.75.75 0 1 1 1.04-1.08l4.5 4.25a.75.75 0 0 1 0 1.08l-4.5 4.25a.75.75 0 0 1-1.06-.02Z" clip-rule="evenodd"/></svg>' +
          '</a>' +
        '</li>'
      );
    }

    function renderPageRow(p) {
      return (
        '<li role="option" aria-selected="false">' +
          '<a class="ps-result ps-result--page" href="' + escapeHtml(p.url) + '" data-ps-option>' +
            '<div class="ps-result__body">' +
              '<div class="ps-result__title">' + escapeHtml(p.title) + '</div>' +
            '</div>' +
            '<svg class="ps-result__chevron" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 0 1 .02-1.06L11.168 10 7.23 6.29a.75.75 0 1 1 1.04-1.08l4.5 4.25a.75.75 0 0 1 0 1.08l-4.5 4.25a.75.75 0 0 1-1.06-.02Z" clip-rule="evenodd"/></svg>' +
          '</a>' +
        '</li>'
      );
    }

    function renderArticleRow(a) {
      return (
        '<li role="option" aria-selected="false">' +
          '<a class="ps-result ps-result--article" href="' + escapeHtml(a.url) + '" data-ps-option>' +
            '<div class="ps-result__body">' +
              '<div class="ps-result__title">' + escapeHtml(a.title) + '</div>' +
              (a.published_at ? '<div class="ps-result__meta">' + escapeHtml(new Date(a.published_at).toLocaleDateString()) + '</div>' : '') +
            '</div>' +
          '</a>' +
        '</li>'
      );
    }

    function renderQueryRow(q) {
      // ONLY field that uses sanitizer for <mark>
      var styled = sanitizeStyledText(q.styled_text || q.text);
      return (
        '<li role="option" aria-selected="false">' +
          '<a class="ps-result ps-result--query" href="' + SEARCH_URL + '?q=' + encodeURIComponent(q.text) + '" data-ps-option>' +
            '<svg class="ps-result__chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true" style="width:16px;height:16px;color:#737373"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>' +
            '<div class="ps-result__body">' +
              '<div class="ps-result__title">' + styled + '</div>' +
            '</div>' +
          '</a>' +
        '</li>'
      );
    }

    function renderSection(label, items, renderFn) {
      if (!items || !items.length) return '';
      var rows = items.map(renderFn).join('');
      return (
        '<li role="presentation" class="ps-section">' +
          '<p class="ps-section__header" role="presentation">' + escapeHtml(label) + '</p>' +
          '<ul class="ps-section__list" role="presentation">' + rows + '</ul>' +
        '</li>'
      );
    }

    function renderResults(data) {
      var r = (data && data.resources && data.resources.results) || {};
      var queries = Array.isArray(r.queries) ? r.queries : [];
      var products = Array.isArray(r.products) ? r.products : [];
      var collections = Array.isArray(r.collections) ? r.collections : [];
      var pages = Array.isArray(r.pages) ? r.pages : [];
      var articles = Array.isArray(r.articles) ? r.articles : [];

      var html = '';
      // Suggested queries first (small, just text), then typed sections
      if (queries.length) {
        html += renderSection('SUGGESTIONS', queries.slice(0, 3), renderQueryRow);
      }
      html += renderSection(I18N.section_products, products, renderProductRow);
      html += renderSection(I18N.section_collections, collections, renderCollectionRow);
      html += renderSection(I18N.section_pages, pages, renderPageRow);
      html += renderSection(I18N.section_articles, articles, renderArticleRow);

      var total = queries.length + products.length + collections.length + pages.length + articles.length;
      return { html: html, total: total };
    }

    /* ─────── Per-instance controller ─────── */

    function createInstance(rootEl) {
      var input = rootEl.querySelector('[data-ps-input]');
      var panel = rootEl.querySelector('[data-ps-panel]');
      var listbox = rootEl.querySelector('[data-ps-listbox]');
      var body = rootEl.querySelector('[data-ps-body]');
      var footer = rootEl.querySelector('[data-ps-footer]');
      var viewAll = rootEl.querySelector('[data-ps-view-all]');
      var viewAllLabel = rootEl.querySelector('[data-ps-view-all-label]');
      var abortCtrl = null;
      var activeIdx = -1;
      var lastQuery = '';

      function setState(s) {
        panel.setAttribute('data-ps-state', s);
      }

      function open() {
        if (panel.hasAttribute('hidden')) panel.removeAttribute('hidden');
        input.setAttribute('aria-expanded', 'true');
      }

      function close() {
        if (rootEl.dataset.psRoot === 'desktop') {
          panel.setAttribute('hidden', '');
        }
        input.setAttribute('aria-expanded', 'false');
        setState('closed');
        activeIdx = -1;
      }

      function getOptionEls() {
        return body.querySelectorAll('[data-ps-option]');
      }

      function clearActive() {
        var opts = getOptionEls();
        for (var i = 0; i < opts.length; i++) {
          opts[i].parentElement.setAttribute('aria-selected', 'false');
        }
        input.removeAttribute('aria-activedescendant');
      }

      function setActive(idx) {
        var opts = getOptionEls();
        if (!opts.length) return;
        if (idx < 0) idx = opts.length - 1;
        if (idx >= opts.length) idx = 0;
        clearActive();
        activeIdx = idx;
        var li = opts[idx].parentElement;
        li.setAttribute('aria-selected', 'true');
        opts[idx].scrollIntoView({ block: 'nearest' });
      }

      function navigateActive() {
        var opts = getOptionEls();
        if (activeIdx >= 0 && opts[activeIdx]) {
          window.location.href = opts[activeIdx].href;
          return true;
        }
        return false;
      }

      function showLoading() {
        setState('loading');
        body.innerHTML = renderSkeleton();
        footer.setAttribute('hidden', '');
        open();
      }

      function showNoQuery() {
        setState('no-query');
        body.innerHTML = renderNoQuery();
        footer.setAttribute('hidden', '');
        open();
      }

      function showEmpty(query) {
        setState('empty');
        body.innerHTML = renderEmpty(query);
        footer.setAttribute('hidden', '');
        open();
      }

      function showError() {
        setState('error');
        body.innerHTML = renderError();
        footer.setAttribute('hidden', '');
        open();
      }

      function showResults(data, query) {
        var rendered = renderResults(data);
        if (rendered.total === 0) {
          showEmpty(query);
          return;
        }
        setState('results');
        body.innerHTML = '<ul class="ps-listbox" role="presentation">' + rendered.html + '</ul>';
        viewAll.setAttribute('href', SEARCH_URL + '?q=' + encodeURIComponent(query));
        viewAllLabel.textContent = I18N.view_all + " '" + query + "'";
        footer.removeAttribute('hidden');
        open();
      }

      function fetchResults(query) {
        // Cache hit?
        if (cache.has(query)) {
          showResults(cache.get(query), query);
          return;
        }

        showLoading();

        if (abortCtrl) abortCtrl.abort();
        abortCtrl = new AbortController();
        var timeoutId = setTimeout(function () { abortCtrl.abort(); }, REQUEST_TIMEOUT_MS);

        var params = new URLSearchParams();
        params.set('q', query);
        params.set('resources[type]', 'product,collection,page,article,query');
        params.set('resources[limit]', '6');
        params.set('resources[limit_scope]', 'each');
        params.set('resources[options][unavailable_products]', 'last');
        params.set('resources[options][fields]', 'title,product_type,vendor');
        params.set('section_id', '');

        fetch(PREDICTIVE_URL + '.json?' + params.toString(), {
          signal: abortCtrl.signal,
          headers: { 'Accept': 'application/json' }
        })
          .then(function (resp) {
            clearTimeout(timeoutId);
            if (!resp.ok) throw new Error('HTTP ' + resp.status);
            return resp.json();
          })
          .then(function (data) {
            // LRU eviction
            if (cache.size >= CACHE_MAX) {
              var firstKey = cache.keys().next().value;
              cache.delete(firstKey);
            }
            cache.set(query, data);
            // Only show if user hasn't typed something else since
            if (trimQuery(input.value) === query) {
              showResults(data, query);
            }
          })
          .catch(function (err) {
            clearTimeout(timeoutId);
            if (err && err.name === 'AbortError') return; // user typed again or unmounted
            showError();
          });
      }

      var debouncedFetch = debounce(function (q) {
        fetchResults(q);
      }, DEBOUNCE_MS);

      /* ── Input events ── */

      input.addEventListener('focus', function () {
        var q = trimQuery(input.value);
        if (!q) {
          showNoQuery();
        } else if (cache.has(q)) {
          showResults(cache.get(q), q);
        } else {
          // re-trigger fetch on focus if there's existing text
          fetchResults(q);
        }
      });

      input.addEventListener('input', function () {
        var q = trimQuery(input.value);
        if (q === lastQuery) return;
        lastQuery = q;
        if (!q) {
          if (abortCtrl) abortCtrl.abort();
          showNoQuery();
          return;
        }
        if (q.length < 2) {
          // Too short — show no-query but don't fetch
          showNoQuery();
          return;
        }
        debouncedFetch(q);
      });

      input.addEventListener('keydown', function (e) {
        switch (e.key) {
          case 'ArrowDown':
            e.preventDefault();
            setActive(activeIdx + 1);
            break;
          case 'ArrowUp':
            e.preventDefault();
            setActive(activeIdx - 1);
            break;
          case 'Enter':
            // If there's an active option, navigate to it; otherwise let form submit
            if (activeIdx >= 0 && navigateActive()) {
              e.preventDefault();
            }
            break;
          case 'Escape':
            e.preventDefault();
            if (rootEl.dataset.psRoot === 'mobile') {
              closeMobileOverlay();
            } else {
              close();
              input.blur();
            }
            break;
        }
      });

      /* Click outside (desktop only) */
      if (rootEl.dataset.psRoot === 'desktop') {
        document.addEventListener('click', function (e) {
          if (!rootEl.contains(e.target)) close();
        });
      }

      return {
        open: open,
        close: close,
        focus: function () { input.focus(); },
        showNoQuery: showNoQuery,
        clear: function () { input.value = ''; lastQuery = ''; }
      };
    }

    /* ─────── Init ─────── */

    var desktopRoot = document.querySelector('[data-ps-root="desktop"]');
    var mobileRoot = document.querySelector('[data-ps-root="mobile"]');
    var desktopInstance = desktopRoot ? createInstance(desktopRoot) : null;
    var mobileInstance = mobileRoot ? createInstance(mobileRoot) : null;

    /* ─────── Mobile overlay open/close ─────── */

    var mobileOverlay = document.getElementById('ps-mobile-overlay');
    var mobileTrigger = document.querySelector('[data-ps-mobile-trigger]');
    var mobileCloseBtn = document.querySelector('[data-ps-mobile-close]');

    function openMobileOverlay() {
      if (!mobileOverlay) return;
      overlayManager.closeMobileMenu();
      overlayManager.lockScroll();
      mobileOverlay.removeAttribute('hidden');
      // Force reflow before adding open class so transition runs
      void mobileOverlay.offsetWidth;
      mobileOverlay.classList.add('ps-overlay--open');
      setTimeout(function () {
        if (mobileInstance) mobileInstance.focus();
      }, 50);
    }

    function closeMobileOverlay() {
      if (!mobileOverlay) return;
      mobileOverlay.classList.remove('ps-overlay--open');
      overlayManager.unlockScroll();
      setTimeout(function () {
        mobileOverlay.setAttribute('hidden', '');
        if (mobileInstance) mobileInstance.close();
      }, 300);
    }

    if (mobileTrigger) {
      mobileTrigger.addEventListener('click', openMobileOverlay);
    }
    if (mobileCloseBtn) {
      mobileCloseBtn.addEventListener('click', closeMobileOverlay);
    }
    if (mobileOverlay) {
      // Tap backdrop (the dark area outside the panel) to close
      mobileOverlay.addEventListener('click', function (e) {
        if (e.target === mobileOverlay) closeMobileOverlay();
      });
    }

    // Escape closes mobile overlay even when input not focused
    document.addEventListener('keydown', function (e) {
      if (e.key === 'Escape' && mobileOverlay && mobileOverlay.classList.contains('ps-overlay--open')) {
        closeMobileOverlay();
      }
    });
  })();
</script>


</div>

    <main id="MainContent" role="main" tabindex="-1">
      <section id="shopify-section-template--22228820099312__hero" class="shopify-section"><div class="relative isolate overflow-hidden bg-neutral-900"><img
      src="//www.replaprints.com/cdn/shop/files/IMG_20170216_135218.jpg?v=1773645140&width=1920"
      alt=""
      height="100%"
      width="100%"
      class="absolute inset-0 -z-10 h-full w-full object-cover"
      loading="eager"
      fetchpriority="high"
    />
    <div class="absolute inset-0 -z-10 bg-black/35"></div><div class="mx-auto max-w-7xl px-8 py-28 sm:py-36 lg:py-44 lg:px-12">
    <div class="max-w-2xl">
      <h1 class="font-['DM_Serif_Display'] text-4xl font-normal tracking-tight sm:text-6xl lg:text-7xl text-neutral-100" style="line-height: 1.05;">
        Marietta's Printing Partner Since 1985
      </h1><p class="mt-8 text-base/7 max-w-lg text-neutral-100/70">
          Quality screen printing, embroidery, and promotional products for businesses of every size. Family-owned, locally trusted, nationally shipped.
        </p><div class="mt-10 flex items-center gap-x-6"><a href="/pages/quote" class="inline-block px-8 py-3.5 text-[13px] font-semibold tracking-widest uppercase transition-colors bg-white text-neutral-900 hover:bg-neutral-100">
            Get a Free Quote
          </a><a href="/account/login" class="text-[13px] font-semibold tracking-widest uppercase transition-colors border-b pb-0.5 text-white/80 hover:text-white border-white/30 hover:border-white">
            Reorder Your Inventory
          </a></div>
    </div>
  </div>
</div>


</section><section id="shopify-section-template--22228820099312__trust_bar" class="shopify-section"><div class="trust-bar">
  <div class="container">
    <div class="trust-bar__stats"><div class="trust-bar__stat" ><span class="trust-bar__stat-icon" aria-hidden="true">🏆</span><span class="trust-bar__stat-number">40+</span>
            <span class="trust-bar__stat-label">Years Experience</span>
          </div><div class="trust-bar__stat" ><span class="trust-bar__stat-icon" aria-hidden="true">👨‍👩‍👦</span><span class="trust-bar__stat-number">Family</span>
            <span class="trust-bar__stat-label">Owned & Operated</span>
          </div><div class="trust-bar__stat" ><span class="trust-bar__stat-icon" aria-hidden="true">🖨️</span><span class="trust-bar__stat-number">1985</span>
            <span class="trust-bar__stat-label">Established</span>
          </div><div class="trust-bar__stat" ><span class="trust-bar__stat-icon" aria-hidden="true">⏰</span><span class="trust-bar__stat-number">4hr</span>
            <span class="trust-bar__stat-label">Quote Response</span>
          </div></div></div>
</div>


</section><section id="shopify-section-template--22228820099312__services" class="shopify-section"><div class="section">
  <div class="container">
    <div class="section-heading">
      <h2>What We Do</h2><p>From custom apparel to branded merchandise and full-service fulfillment, we handle every step of bringing your brand to life.</p></div>

    <div class="card-grid card-grid--3"><div class="card" ><span class="card__icon" aria-hidden="true">🖨️</span><h3>Screen Printing</h3>
          <p>Bold, vibrant prints on t-shirts, hoodies, totes, and more. From 24 pieces to 10,000 — our presses handle it all with precision and consistency.</p><a href="/pages/screen-printing" class="card__link">Learn More &rarr;</a></div><div class="card" ><span class="card__icon" aria-hidden="true">🧵</span><h3>Custom Embroidery</h3>
          <p>Professional stitching for polos, hats, jackets, and workwear. Detailed logos with thread that lasts through years of use and washing.</p><a href="/pages/embroidery" class="card__link">Learn More &rarr;</a></div><div class="card" ><span class="card__icon" aria-hidden="true">🎁</span><h3>Promotional Products</h3>
          <p>Branded drinkware, pens, tech accessories, and thousands of other items to put your logo in front of the right people.</p><a href="/pages/promotional-products" class="card__link">Learn More &rarr;</a></div></div>
  </div>
</div>


</section><section id="shopify-section-template--22228820099312__fulfillment" class="shopify-section"><div class="fulfillment-cta">
  <div class="container">
    <div class="fulfillment-cta__grid py-24">
      <div>
        <h2>We Print It. We Store It.<br> Your Team Orders It.</h2>
        <p>Our fulfillment program lets you print branded merchandise in bulk, warehouse it at our facility, and give your team access to a branded online portal where they can reorder exactly what they need — on demand. No more closets full of boxes. No more reorder headaches.</p><a href="/pages/fulfillment" class="btn btn--primary btn--large">
            Learn About Fulfillment
          </a></div>
    </div>
  </div>
</div>


</section><section id="shopify-section-template--22228820099312__how_it_works" class="shopify-section"><div class="section section--alt">
  <div class="container">
    <div class="section-heading">
      <h2>How It Works</h2><p>Getting custom printed gear is easier than you think. Here's our simple four-step process.</p></div>

    <div class="process-steps"><div class="process-step" >
          <span class="process-step__number" aria-hidden="true">1</span>
          <h3>Submit Your Idea</h3>
          <p>Tell us what you need — product type, quantity, colors, and artwork. Not sure yet? We'll help you figure it out.</p>
        </div><div class="process-step" >
          <span class="process-step__number" aria-hidden="true">2</span>
          <h3>We Design & Proof</h3>
          <p>Our team creates a digital proof for your approval. We won't print a single piece until you say it's perfect.</p>
        </div><div class="process-step" >
          <span class="process-step__number" aria-hidden="true">3</span>
          <h3>Production</h3>
          <p>Your order hits our presses. Every piece is inspected for quality, color accuracy, and consistency before packing.</p>
        </div><div class="process-step" >
          <span class="process-step__number" aria-hidden="true">4</span>
          <h3>Delivery or Fulfillment</h3>
          <p>We ship it to your door — or store it in our warehouse and fulfill individual orders through your branded portal.</p>
        </div></div>
  </div>
</div>


</section><section id="shopify-section-template--22228820099312__featured_work" class="shopify-section"><div class="section">
  <div class="container">
    <div class="section-heading">
      <h2>Featured Work</h2><p>A look at some of our recent screen printing, embroidery, and promotional projects.</p></div>

    <div class="gallery-grid"><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>Tech Startup Team Shirts</span>
            </div>
          </div><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>Charity 5K Race Tees</span>
            </div>
          </div><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>Corporate Polo Embroidery</span>
            </div>
          </div><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>Restaurant Staff Uniforms</span>
            </div>
          </div><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>School Spirit Wear Collection</span>
            </div>
          </div><div class="gallery-item" ><div style="width: 100%; aspect-ratio: 1/1; background: #f5f5f5;"></div><div class="gallery-item__overlay">
              <span>Tradeshow Promo Kit</span>
            </div>
          </div></div><div style="text-align: center; margin-top: 3.5rem;">
        <a href="/pages/portfolio" class="btn btn--outline">View All Work</a>
      </div></div>
</div>


</section><section id="shopify-section-template--22228820099312__testimonials" class="shopify-section"><div class="section section--alt">
  <div class="container">
    <div class="section-heading">
      <h2>What Our Clients Say</h2>
    </div>

    <div class="testimonial-slider" data-testimonial-slider>
      <div class="testimonial-track" data-testimonial-track><div class="testimonial-slide" ><div class="testimonial-card"><div class="testimonial-card__stars" aria-label="5 out of 5 stars">&#9733;&#9733;&#9733;&#9733;&#9733;</div><blockquote class="testimonial-card__quote">
    &ldquo;[Testimonial placeholder — awaiting real customer quote]&rdquo;
  </blockquote>
  <p class="testimonial-card__name">[Customer Name]</p><p class="testimonial-card__company">[Company Name]</p></div>
</div><div class="testimonial-slide" ><div class="testimonial-card"><div class="testimonial-card__stars" aria-label="5 out of 5 stars">&#9733;&#9733;&#9733;&#9733;&#9733;</div><blockquote class="testimonial-card__quote">
    &ldquo;[Testimonial placeholder — awaiting real customer quote]&rdquo;
  </blockquote>
  <p class="testimonial-card__name">[Customer Name]</p><p class="testimonial-card__company">[Company Name]</p></div>
</div><div class="testimonial-slide" ><div class="testimonial-card"><div class="testimonial-card__stars" aria-label="5 out of 5 stars">&#9733;&#9733;&#9733;&#9733;&#9733;</div><blockquote class="testimonial-card__quote">
    &ldquo;[Testimonial placeholder — awaiting real customer quote]&rdquo;
  </blockquote>
  <p class="testimonial-card__name">[Customer Name]</p><p class="testimonial-card__company">[Company Name]</p></div>
</div></div><div class="testimonial-nav" data-testimonial-nav><button
              type="button"
              aria-label="Show testimonial 1"
              class="active"
              data-slide="0"
            ></button><button
              type="button"
              aria-label="Show testimonial 2"
              
              data-slide="1"
            ></button><button
              type="button"
              aria-label="Show testimonial 3"
              
              data-slide="2"
            ></button></div></div>
  </div>
</div>

<script>
  document.addEventListener('DOMContentLoaded', function () {
    var sliders = document.querySelectorAll('[data-testimonial-slider]');
    sliders.forEach(function (slider) {
      var track = slider.querySelector('[data-testimonial-track]');
      var nav = slider.querySelector('[data-testimonial-nav]');
      if (!track || !nav) return;

      var buttons = nav.querySelectorAll('button');
      var currentIndex = 0;
      var total = buttons.length;
      var autoInterval;

      function goToSlide(index) {
        currentIndex = index;
        track.style.transform = 'translateX(-' + (currentIndex * 100) + '%)';
        buttons.forEach(function (btn, i) {
          btn.classList.toggle('active', i === currentIndex);
        });
      }

      buttons.forEach(function (btn) {
        btn.addEventListener('click', function () {
          goToSlide(parseInt(this.getAttribute('data-slide')));
          clearInterval(autoInterval);
          startAuto();
        });
      });

      function startAuto() {
        autoInterval = setInterval(function () {
          goToSlide((currentIndex + 1) % total);
        }, 5000);
      }

      startAuto();
    });
  });
</script>


</section><section id="shopify-section-template--22228820099312__blog_preview" class="shopify-section"><div class="section">
  <div class="container">
    <div class="section-heading">
      <h2>Tips & Resources</h2><p>Expert advice on custom printing, branding, and promotional products from our team.</p></div><div class="card-grid card-grid--3"><div class="blog-card">
          <a href="/blogs/resources/how-a-company-store-can-simplify-your-teams-merch-ordering" class="blog-card__image-link"><div class="card__image">
                <img src="//www.replaprints.com/cdn/shop/articles/rosebox-BFdSCxmqvYc-unsplash_7d303415-20a0-42b6-91ee-65319e709c70.jpg?v=1773325727&amp;width=600" alt="How a Company Store Can Simplify Your Team&#39;s Merch Ordering" srcset="//www.replaprints.com/cdn/shop/articles/rosebox-BFdSCxmqvYc-unsplash_7d303415-20a0-42b6-91ee-65319e709c70.jpg?v=1773325727&amp;width=352 352w, //www.replaprints.com/cdn/shop/articles/rosebox-BFdSCxmqvYc-unsplash_7d303415-20a0-42b6-91ee-65319e709c70.jpg?v=1773325727&amp;width=600 600w" width="600" height="750" loading="lazy">
              </div></a>
          <p class="blog-card__date">March 10, 2026</p>
          <h3><a href="/blogs/resources/how-a-company-store-can-simplify-your-teams-merch-ordering">How a Company Store Can Simplify Your Team's Merch Ordering</a></h3><p>Tired of fielding one-off merch requests from every department? A company store gives your team a single place to order...</p><a href="/blogs/resources/how-a-company-store-can-simplify-your-teams-merch-ordering" class="card__link">Read</a>
        </div><div class="blog-card">
          <a href="/blogs/resources/screen-printing-vs-embroidery-which-is-right-for-your-brand" class="blog-card__image-link"><div class="card__image">
                <img src="//www.replaprints.com/cdn/shop/articles/rendy-novantino-MugXVZFpb0A-unsplash.jpg?v=1773325787&amp;width=600" alt="Screen Printing vs. Embroidery: Which Is Right for Your Brand?" srcset="//www.replaprints.com/cdn/shop/articles/rendy-novantino-MugXVZFpb0A-unsplash.jpg?v=1773325787&amp;width=352 352w, //www.replaprints.com/cdn/shop/articles/rendy-novantino-MugXVZFpb0A-unsplash.jpg?v=1773325787&amp;width=600 600w" width="600" height="900" loading="lazy">
              </div></a>
          <p class="blog-card__date">March 01, 2026</p>
          <h3><a href="/blogs/resources/screen-printing-vs-embroidery-which-is-right-for-your-brand">Screen Printing vs. Embroidery: Which Is Right for Your Brand?</a></h3><p>Not sure whether to go with screen printing or embroidery for your next custom order? Here's a straightforward breakdown to...</p><a href="/blogs/resources/screen-printing-vs-embroidery-which-is-right-for-your-brand" class="card__link">Read</a>
        </div><div class="blog-card">
          <a href="/blogs/resources/5-things-to-know-before-ordering-custom-t-shirts" class="blog-card__image-link"><div class="card__image">
                <img src="//www.replaprints.com/cdn/shop/articles/frank-van-hulst-DvIMVdLQinU-unsplash.jpg?v=1773325832&amp;width=600" alt="5 Things to Know Before Ordering Custom T-Shirts" srcset="//www.replaprints.com/cdn/shop/articles/frank-van-hulst-DvIMVdLQinU-unsplash.jpg?v=1773325832&amp;width=352 352w, //www.replaprints.com/cdn/shop/articles/frank-van-hulst-DvIMVdLQinU-unsplash.jpg?v=1773325832&amp;width=600 600w" width="600" height="900" loading="lazy">
              </div></a>
          <p class="blog-card__date">February 11, 2026</p>
          <h3><a href="/blogs/resources/5-things-to-know-before-ordering-custom-t-shirts">5 Things to Know Before Ordering Custom T-Shirts</a></h3><p>Ordering custom t-shirts for the first time? Avoid common mistakes and get better results by knowing these five things before...</p><a href="/blogs/resources/5-things-to-know-before-ordering-custom-t-shirts" class="card__link">Read</a>
        </div></div><div style="text-align: center; margin-top: 3.5rem;">
        <a href="/blogs/resources" class="btn btn--outline">View All Resources</a>
      </div></div>
</div>


</section><section id="shopify-section-template--22228820099312__cta" class="shopify-section"><div class="cta-banner">
  <div class="container">
    <h2>Ready to Get Started?</h2><p>Tell us about your project and we'll get back to you within 4 hours during business hours with a free, no-obligation quote.</p><a href="/pages/quote" class="btn btn--white btn--large">
        Request a Free Quote
      </a><div class="cta-banner__phone">
        Or call us: <a href="tel:7704230201">(770) 423-0201</a>
      </div></div>
</div>


</section>
    </main>

    <div id="shopify-section-footer" class="shopify-section"><footer class="site-footer">
  <div class="container">
    <div class="footer-grid">
      <!-- Column 1: Company Info -->
      <div class="footer-col">
        <h4>Repla Prints</h4>
        <p>400 Lockheed Ave, Suite D</p>
        <p>Marietta, GA 30060</p>
        <p>
          <a href="tel:7704230201">
            (770) 423-0201
          </a>
        </p>
        <p>
          <a href="mailto:info@replaprints.com">
            info@replaprints.com
          </a>
        </p>
        <p>Mon–Thu: 8:30am–5pm | Fri: 8:30am–4pm</p>

        <div class="footer-social"></div>
      </div>

      <!-- Column 2: Services -->
      <div class="footer-col">
        <h4>Services</h4>
        <ul><li><a href="/pages/screen-printing">Screen Printing</a></li>
            <li><a href="/pages/embroidery">Custom Embroidery</a></li>
            <li><a href="/pages/promotional-products">Promotional Products</a></li>
            <li><a href="/pages/fulfillment">Fulfillment &amp; Inventory</a></li>
            <li><a href="/pages/services">All Services</a></li></ul>
      </div>

      <!-- Column 3: Quick Links -->
      <div class="footer-col">
        <h4>Quick Links</h4>
        <ul><li><a href="/pages/about">About Us</a></li>
            <li><a href="/pages/portfolio">Our Work</a></li>
            <li><a href="/pages/quote">Request a Quote</a></li>
            <li><a href="/pages/contact">Contact</a></li>
            <li><a href="/pages/faq">FAQ</a></li>
            <li><a href="/account/login">Client Portal</a></li></ul>
      </div>

      <!-- Column 4: Newsletter -->
      <div class="footer-col">
        <h4>Stay in the Loop</h4>
        <p>Get printing tips, deals, and project ideas delivered to your inbox.</p>
        <div class="footer-newsletter"><form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter">
            <input
              type="email"
              name="contact[email]"
              placeholder="Your email address"
              required
              aria-label="Email address"
              autocomplete="email"
            >
            <button type="submit">Subscribe</button></form></div><div id="newsletter-toast" class="toast" role="status" aria-live="polite" aria-atomic="true">
          <span class="toast-icon">&#10003;</span>
          <span class="toast-message">You've been subscribed! Thanks for joining.</span>
          <button class="toast-close" aria-label="Dismiss notification" onclick="this.parentElement.classList.remove('toast--visible')">&times;</button>
        </div>
      </div>
    </div>

    <div class="footer-bottom">
      <p>&copy; 2026 Repla Prints. All rights reserved.</p>
      <nav aria-label="Footer legal">
        <a href="/policies/privacy-policy">Privacy Policy</a>
        &nbsp;&middot;&nbsp;
        <a href="/policies/terms-of-service">Terms of Service</a>
      </nav>
    </div>
  </div>

  <style>
    .toast {
      position: fixed;
      bottom: -100px;
      left: 50%;
      transform: translateX(-50%);
      background: #2d6a4f;
      color: #fff;
      padding: 14px 20px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      gap: 10px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
      z-index: 9999;
      font-family: 'Inter', sans-serif;
      font-size: 15px;
      transition: bottom 0.4s ease;
      max-width: 90vw;
    }
    .toast--visible {
      bottom: 30px;
    }
    .toast-icon {
      font-size: 18px;
      font-weight: 700;
      flex-shrink: 0;
    }
    .toast-close {
      background: none;
      border: none;
      color: #fff;
      font-size: 20px;
      cursor: pointer;
      padding: 0 0 0 8px;
      opacity: 0.7;
      flex-shrink: 0;
    }
    .toast-close:hover {
      opacity: 1;
    }
  </style>

  <script>
    (function() {
      // Shopify adds ?customer_posted=true on successful customer form submit
      if (window.location.search.indexOf('customer_posted=true') !== -1) {
        var toast = document.getElementById('newsletter-toast');
        if (toast) {
          // Small delay so the page settles before animating in
          setTimeout(function() {
            toast.classList.add('toast--visible');
          }, 300);

          // Auto-dismiss after 5 seconds
          setTimeout(function() {
            toast.classList.remove('toast--visible');
          }, 5300);

          // Clean the URL so refreshing doesn't re-trigger the toast
          if (window.history && window.history.replaceState) {
            var cleanUrl = window.location.pathname + window.location.hash;
            window.history.replaceState(null, '', cleanUrl);
          }
        }
      }
    })();
  </script><script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "LocalBusiness",
      "@id": "https://www.replaprints.com#localbusiness",
      "name": "Repla Prints",
      "description": "Proudly family-owned and delivering high-quality screen printing, embroidery, and promotional products from Marietta, Georgia since 1985.",
      "url": "https://www.replaprints.com",
      "telephone": "(770) 423-0201",
      "email": "info@replaprints.com",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "400 Lockheed Ave, Suite D",
        "addressLocality": "Marietta",
        "addressRegion": "GA",
        "postalCode": "30060",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 33.9464,
        "longitude": -84.5390
      },
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday"],
          "opens": "08:30",
          "closes": "17:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Friday"],
          "opens": "08:30",
          "closes": "16:00"
        }
      ],
      "areaServed": [
        { "@type": "City", "name": "Marietta" },
        { "@type": "City", "name": "Kennesaw" },
        { "@type": "City", "name": "Roswell" },
        { "@type": "City", "name": "Smyrna" },
        { "@type": "City", "name": "Acworth" },
        { "@type": "City", "name": "Woodstock" }
      ],
      "sameAs": [],
      "image": "https://www.replaprints.com/cdn/shop/files/repla-storefront.jpg",
      "priceRange": "$$"
    }
  </script>
</footer>


</div>
  <script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
</body>
</html>
