{"id":6993,"date":"2026-08-26T09:09:54","date_gmt":"2026-08-26T09:09:54","guid":{"rendered":"https:\/\/printlogistic.eu\/?page_id=6993"},"modified":"2026-09-10T10:21:33","modified_gmt":"2026-09-10T10:21:33","slug":"print-on-demand-2","status":"publish","type":"page","link":"https:\/\/printlogistic.eu\/pl\/","title":{"rendered":"Print-On-Demand"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"6993\" class=\"elementor elementor-6993\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-97c17ee elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"97c17ee\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a9eab0c\" data-id=\"a9eab0c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a277113 elementor-widget elementor-widget-html\" data-id=\"a277113\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Print Logistic \u2014 Hero refined<\/title>\n\n<style>\n:root{\n  --bg:#17181d;\n  --teal:#55c2a8;\n  --teal-soft:#a9ead9;\n  --white:#fff;\n  --max:1540px;\n  --side:clamp(22px,4.8vw,76px);\n  --header-safe:clamp(122px,12vh,146px);\n}\n\n*{box-sizing:border-box}\nhtml{scroll-behavior:smooth}\n\nbody{\n  margin:0;\n  background:var(--bg);\n  color:#fff;\n  font-family:Inter,Arial,Helvetica,sans-serif;\n  -webkit-font-smoothing:antialiased;\n}\n\na{color:inherit}\n\n\/* ======================================================\n   HERO\n====================================================== *\/\n\n.pl-hero{\n  position:relative;\n  width:100%;\n  height:clamp(760px,100svh,940px);\n  min-height:760px;\n  overflow:hidden;\n  isolation:isolate;\n  background:#11141a;\n}\n\n\/* native full-width video *\/\n.pl-hero-video{\n  position:absolute;\n  inset:0;\n  z-index:-3;\n}\n\n.pl-hero-video video{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:center 46%;\n  transform:scale(1.015);\n  filter:\n    brightness(.82)\n    contrast(1.10)\n    saturate(.86);\n\n}\n\n\/* intentionally dark, but still lets the production film breathe *\/\n.pl-hero-overlay{\n  position:absolute;\n  inset:0;\n  z-index:-2;\n  background:\n    linear-gradient(\n      90deg,\n      rgba(7,10,17,.86) 0%,\n      rgba(7,10,17,.64) 36%,\n      rgba(7,10,17,.25) 66%,\n      rgba(7,10,17,.13) 100%\n    ),\n    linear-gradient(\n      180deg,\n      rgba(11,15,29,.05) 0%,\n      rgba(5,26,24,.07) 38%,\n      rgba(7,10,17,.26) 63%,\n      rgba(7,10,17,.86) 100%\n    ),\n    radial-gradient(\n      circle at 72% 32%,\n      rgba(85,194,168,.08),\n      transparent 35%\n    );\n}\n\n.pl-hero-inner{\n  width:min(var(--max),100%);\n  height:100%;\n  margin:0 auto;\n  padding:\n    var(--header-safe)\n    var(--side)\n    28px;\n\n  display:flex;\n  flex-direction:column;\n}\n\n\/* ======================================================\n   MAIN COPY\n====================================================== *\/\n\n.pl-hero-copy{\n  width:min(1120px,80%);\n  padding-top:clamp(24px,3.2vh,40px);\n}\n\n.pl-hero-kicker{\n  display:flex;\n  align-items:center;\n  gap:11px;\n  margin-bottom:18px;\n\n  color:var(--teal-soft);\n  font-size:10px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.17em;\n  text-transform:uppercase;\n}\n\n.pl-hero-kicker::before{\n  content:\"\";\n  width:30px;\n  height:1px;\n  background:currentColor;\n}\n\n.pl-hero h1{\n  max-width:1120px;\n  margin:0;\n\n  font-size:clamp(54px,5.45vw,88px);\n  line-height:.91;\n  letter-spacing:-.06em;\n  font-weight:400;\n  text-wrap:balance;\n}\n\n.pl-hero h1 .line{\n  display:block;\n}\n\n\/* wider line 1 \/ shorter line 2 *\/\n.pl-hero h1 .line:last-child{\n  width:max-content;\n  max-width:100%;\n}\n\n\n.pl-hero-actions{\n  display:flex;\n  align-items:center;\n  gap:11px;\n  flex-wrap:wrap;\n  margin-top:24px;\n}\n\n.pl-btn{\n  min-height:47px;\n  padding:0 19px;\n\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n\n  border-radius:0;\n  border:1px solid transparent;\n\n  font-size:12px;\n  line-height:1;\n  font-weight:820;\n  text-decoration:none;\n\n  transition:\n    transform .2s ease,\n    background .2s ease,\n    border-color .2s ease;\n}\n\n.pl-btn:hover{\n  transform:translateY(-2px);\n}\n\n.pl-btn-primary{\n  background:var(--teal);\n  color:#fff;\n}\n\n.pl-btn-primary:hover{\n  background:#6ad6be;\n}\n\n.pl-btn-secondary{\n  border-color:rgba(255,255,255,.38);\n  background:rgba(255,255,255,.045);\n  color:#fff;\n  backdrop-filter:blur(7px);\n}\n\n.pl-btn-secondary:hover{\n  border-color:rgba(255,255,255,.78);\n  background:rgba(255,255,255,.08);\n}\n\n\/* ======================================================\n   INTERACTIVE FACTORY AREA\n====================================================== *\/\n\n.pl-hero-bottom{\n  margin-top:auto;\n  display:grid;\n  grid-template-columns:minmax(300px,.62fr) minmax(700px,1.6fr);\n  gap:clamp(38px,4.5vw,72px);\n  align-items:end;\n}\n\n.pl-factory-detail{\n  min-height:154px;\n  padding:4px 0 8px;\n  display:flex;\n  flex-direction:column;\n  justify-content:flex-end;\n}\n\n.pl-factory-detail-top{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:10px;\n\n  color:var(--teal-soft);\n  font-size:11px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-factory-detail-top::before{\n  content:\"\";\n  width:26px;\n  height:1px;\n  background:currentColor;\n}\n\n.pl-factory-detail h2{\n  margin:0;\n  max-width:390px;\n\n  color:#fff !important;\n  font-size:clamp(26px,2.5vw,38px);\n  line-height:1.02;\n  letter-spacing:-.022em;\n  font-weight:570;\n}\n\n\n.pl-factory-detail-tags{\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n  margin-top:16px;\n  max-width:440px;\n}\n\n.pl-factory-detail-tags span{\n  padding:8px 11px;\n  border:1px solid rgba(255,255,255,.18);\n  border-radius:999px;\n\n  color:rgba(255,255,255,.82);\n  font-size:10px;\n  line-height:1;\n  font-weight:780;\n  white-space:nowrap;\n}\n\n\/* ======================================================\n   FACTORY CARDS\n====================================================== *\/\n\n.pl-factory-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:14px;\n}\n\n.pl-factory{\n  appearance:none;\n  width:100%;\n  padding:0;\n  position:relative;\n  transform-origin:center center;\n  transform:perspective(1200px) translateY(0) rotateX(0deg) scale(1);\n  min-width:0;\n  height:218px;\n\n  overflow:hidden;\n  border-radius:12px;\n  border:1px solid rgba(255,255,255,.17);\n\n  color:#fff;\n  text-decoration:none;\n  text-align:left;\n  cursor:pointer;\n  background:#26292b;\n\n  transition:\n    transform .35s cubic-bezier(.2,.65,.25,1),\n    border-color .25s ease,\n    box-shadow .35s ease;\n}\n\n.pl-factory img{\n  position:absolute;\n  inset:0;\n\n  width:100%;\n  height:100%;\n  object-fit:cover;\n\n  transition:transform .65s cubic-bezier(.2,.65,.25,1), filter .35s ease;\n  transform-origin:center center;\n  filter:saturate(.96) contrast(1.02);\n}\n\n.pl-factory::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background:\n    linear-gradient(\n      180deg,\n      rgba(7,9,14,.04) 0%,\n      rgba(7,9,14,.18) 34%,\n      rgba(7,9,14,.90) 100%\n    );\n}\n\n.pl-factory:hover{\n  transform:perspective(1200px) translateY(-6px) rotateX(2deg) scale(1.01);\n  border-color:rgba(255,255,255,.48);\n  box-shadow:0 22px 48px rgba(0,0,0,.22);\n}\n\n.pl-factory:hover img{\n  transform:scale(1.09) translateY(-2px);\n  filter:saturate(1.02) contrast(1.06);\n}\n\n.pl-factory.is-active{\n  border-color:var(--teal);\n  box-shadow:\n    0 0 0 1px rgba(85,194,168,.24),\n    0 18px 42px rgba(0,0,0,.18);\n}\n\n.pl-factory.is-active::before{\n  content:\"\";\n  position:absolute;\n  z-index:3;\n  top:0;\n  left:0;\n  right:0;\n  height:3px;\n  background:var(--teal);\n}\n\n.pl-factory.is-active img{\n  transform:scale(1.03);\n}\n\n.pl-factory-content{\n  position:absolute;\n  z-index:2;\n\n  left:18px;\n  right:18px;\n  bottom:18px;\n}\n\n\n.pl-factory-city{\n  display:block;\n  margin-top:6px;\n  color:rgba(255,255,255,.84);\n  font-size:11px;\n  line-height:1.2;\n  font-weight:400;\n  letter-spacing:-.01em;\n}\n\n.pl-factory-label{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:10px;\n\n  margin-bottom:7px;\n\n  color:var(--teal-soft);\n  font-size:9px;\n  line-height:1;\n  font-weight:900;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-factory-label i{\n  width:32px;\n  height:1px;\n  background:rgba(169,234,217,.68);\n}\n\n\n\n\/* Poland *\/\n\n\/* United States *\/\n.pl-flag-us::before{\n  content:\"\";\n  position:absolute;\n  top:0;\n  left:0;\n  width:8px;\n  height:7.6px;\n  border-radius:1px 0 1px 0;\n  background:#3c3b6e;\n}\n\n\/* United Kingdom *\/\n.pl-flag-gb::before{\n  content:\"\";\n  position:absolute;\n  inset:-4px;\n  background:\n    linear-gradient(27deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%),\n    linear-gradient(-27deg, transparent 43%, #fff 43% 48%, #c8102e 48% 52%, #fff 52% 57%, transparent 57%);\n}\n\n.pl-factory strong{\n  display:block;\n\n  font-size:20px;\n  line-height:1.08;\n  font-weight:670;\n  letter-spacing:-.025em;\n}\n\n\n\n\n\/* ======================================================\n   LINKEDIN SIDE BADGE\n====================================================== *\/\n\n.pl-linkedin-badge{\n  position:fixed;\n  z-index:8;\n  top:50%;\n  transform:translateY(-50%);\n  right:0;\n\n  width:48px;\n  height:122px;\n\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n\n  border-radius:24px 0 0 24px;\n  background:#16c7c4;\n  color:#fff;\n  text-decoration:none;\n\n  box-shadow:0 8px 24px rgba(0,0,0,.16);\n\n  transition:\n    width .22s ease,\n    background .22s ease,\n    box-shadow .22s ease,\n    transform .22s ease;\n}\n\n.pl-linkedin-icon{\n  width:34px;\n  height:34px;\n  margin-top:7px;\n\n  display:grid;\n  place-items:center;\n\n  border-radius:50%;\n  background:#fff;\n  color:#16c7c4;\n\n  font-size:18px;\n  line-height:1;\n  font-weight:900;\n  letter-spacing:-.06em;\n  text-transform:none;\n}\n\n.pl-linkedin-follow{\n  flex:1;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n\n  writing-mode:vertical-rl;\n  transform:rotate(180deg);\n\n  font-size:9px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.18em;\n  text-transform:uppercase;\n}\n\n.pl-linkedin-badge:hover{\n  width:54px;\n  background:#19d1cd;\n  box-shadow:0 12px 30px rgba(0,0,0,.22);\n  transform:translateY(-50%);\n\n}\n\n\n\/* ======================================================\n   CINEMATIC VIDEO FINISH\n====================================================== *\/\n\n.pl-hero-grade{\n  position:absolute;\n  inset:0;\n  z-index:-1;\n  pointer-events:none;\n  background:\n    radial-gradient(\n      ellipse at center,\n      transparent 38%,\n      rgba(3,6,12,.13) 72%,\n      rgba(3,6,12,.31) 100%\n    ),\n    linear-gradient(\n      135deg,\n      rgba(25,34,62,.08),\n      rgba(7,28,25,.06) 52%,\n      rgba(0,0,0,.05)\n    );\n  mix-blend-mode:normal;\n}\n\n.pl-hero-grain{\n  position:absolute;\n  inset:-40%;\n  z-index:0;\n  pointer-events:none;\n  opacity:.055;\n  background-image:url(\"data:image\/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'\/%3E%3C\/svg%3E\");\n  background-repeat:repeat;\n  background-size:180px 180px;\n  animation:plGrain 9s steps(2,end) infinite;\n}\n\n@keyframes plGrain{\n  0%{transform:translate3d(0,0,0)}\n  20%{transform:translate3d(-2%,1%,0)}\n  40%{transform:translate3d(1%,-2%,0)}\n  60%{transform:translate3d(2%,2%,0)}\n  80%{transform:translate3d(-1%,1%,0)}\n  100%{transform:translate3d(0,0,0)}\n}\n\n\/* ======================================================\n   SCROLL REVEALS\n====================================================== *\/\n\n[data-reveal]{\n  opacity:0;\n  transform:translate3d(0,24px,0);\n  transition:\n    opacity .72s ease,\n    transform .82s cubic-bezier(.22,.61,.36,1);\n  will-change:opacity,transform;\n}\n\n[data-reveal=\"left\"]{\n  transform:translate3d(-24px,0,0);\n}\n\n[data-reveal=\"right\"]{\n  transform:translate3d(24px,0,0);\n}\n\n[data-reveal].is-visible{\n  opacity:1;\n  transform:translate3d(0,0,0);\n}\n\n[data-delay=\"1\"]{transition-delay:.08s}\n[data-delay=\"2\"]{transition-delay:.16s}\n[data-delay=\"3\"]{transition-delay:.24s}\n\n\/* ======================================================\n   RESPONSIVE\n====================================================== *\/\n\n@media(max-width:1180px){\n\n  .pl-hero{\n    height:auto;\n    min-height:920px;\n  }\n\n  .pl-hero-copy{\n    width:86%;\n  }\n\n  .pl-hero-bottom{\n    margin-top:58px;\n    grid-template-columns:1fr;\n    gap:28px;\n  }\n\n  .pl-factory-grid{\n    max-width:980px;\n  }\n\n  .pl-factory-detail{\n    min-height:auto;\n    max-width:620px;\n    padding-top:4px;\n  }\n\n  .pl-factory{\n    height:192px;\n  }\n\n  .pl-factory-detail h2{\n    max-width:620px;\n  }\n\n  .pl-factory-detail-tags{\n    max-width:620px;\n  }\n}\n\n\n@media(max-width:760px){\n  .pl-linkedin-badge{\n    top:50%;\n    transform:translateY(-50%);\n    width:42px;\n    height:108px;\n    border-radius:21px 0 0 21px;\n  }\n\n  .pl-linkedin-icon{\n    width:30px;\n    height:30px;\n    margin-top:6px;\n    font-size:16px;\n  }\n\n  .pl-linkedin-follow{\n    font-size:8px;\n  }\n}\n\n@media(max-width:760px){\n\n  :root{\n    --side:16px;\n    --header-safe:86px;\n  }\n\n  .pl-hero{\n    height:auto;\n    min-height:1080px;\n  }\n\n  .pl-hero-inner{\n    padding-bottom:22px;\n  }\n\n  .pl-hero-copy{\n    width:100%;\n  }\n\n  .pl-hero h1{\n    font-size:clamp(42px,11.3vw,58px);\n    line-height:.94;\n  }\n\n  .pl-hero h1 .line{\n    display:inline;\n  }\n\n  .pl-hero-actions{\n    flex-direction:column;\n    align-items:stretch;\n  }\n\n  .pl-btn{\n    width:100%;\n  }\n\n  .pl-hero-bottom{\n    margin-top:50px;\n  }\n\n  .pl-factory-grid{\n    grid-template-columns:1fr;\n    gap:8px;\n  }\n\n  .pl-factory{\n    height:118px;\n  }\n\n  .pl-factory-label{\n    font-size:8px;\n  }\n\n  .pl-factory strong{\n    font-size:17px;\n  }\n\n  .pl-factory-city{\n    font-size:10px;\n    margin-top:5px;\n  }\n.pl-factory-desc{\n    font-size:10px;\n  }\n\n  .pl-factory-content{\n    bottom:12px;\n  }\n\n  .pl-factory-detail h2{\n    font-size:28px;\n  }\n\n  .pl-factory-detail-tags{\n    gap:7px;\n    max-width:100%;\n  }\n\n  .pl-factory-detail-tags span{\n    font-size:9px;\n    padding:8px 10px;\n  }\n}\n\n@media(prefers-reduced-motion:reduce){\n  *,\n  *::before,\n  *::after{\n    animation:none!important;\n    transition:none!important;\n    scroll-behavior:auto!important;\n  }\n}\n\n\/* ======================================================\n   ABOUT PRINT LOGISTIC SECTION\n====================================================== *\/\n\n.pl-about{\n  background:#11141a;\n  color:#fff;\n  padding:clamp(86px,9vw,128px) 0 clamp(90px,10vw,138px);\n}\n\n.pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-about-grid{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(420px,1.15fr) minmax(300px,.68fr);\n  gap:clamp(32px,5vw,92px);\n  align-items:start;\n}\n\n.pl-about-label{\n  font-size:10px;\n  line-height:1.45;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n  color:rgba(255,255,255,.9);\n  padding-top:10px;\n}\n\n.pl-about-label span{\n  display:block;\n  margin-bottom:8px;\n}\n\n.pl-about-copy{\n  max-width:720px;\n}\n\n.pl-about-copy h2{\n  margin:0;\n  font-size:clamp(26px,2.35vw,38px);\n  line-height:1.12;\n  letter-spacing:-.045em;\n  font-weight:400;\n  font-style:normal;\n  color:rgba(255,255,255,.76);\n}\n\n.pl-about-copy h2 strong{\n  font-weight:700;\n  color:#fff;\n}\n\n.pl-about-body{\n  max-width:720px;\n  margin:24px 0 0;\n  color:rgba(255,255,255,.66);\n  font-size:clamp(14px,1.05vw,17px);\n  line-height:1.65;\n  font-weight:400;\n  letter-spacing:-.01em;\n}\n\n.pl-about-actions{\n  display:flex;\n  gap:12px;\n  flex-wrap:wrap;\n  margin-top:34px;\n}\n\n.pl-about-stats{\n  border-top:1px solid rgba(255,255,255,.12);\n}\n\n.pl-about-stat{\n  display:grid;\n  grid-template-columns:130px 1fr;\n  gap:20px;\n  align-items:center;\n  min-height:58px;\n  border-bottom:1px solid rgba(255,255,255,.12);\n}\n\n.pl-about-stat strong{\n  font-size:22px;\n  line-height:1;\n  letter-spacing:-.03em;\n  font-weight:700;\n  font-variant-numeric:tabular-nums;\n}\n\n.pl-about-stat span{\n  justify-self:end;\n  text-align:right;\n  color:rgba(255,255,255,.55);\n  font-size:10px;\n  line-height:1;\n  font-weight:700;\n  letter-spacing:.14em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1180px){\n  .pl-about-grid{\n    grid-template-columns:.36fr 1.2fr;\n  }\n  .pl-about-stats{\n    grid-column:2;\n    max-width:520px;\n  }\n}\n\n@media(max-width:760px){\n  .pl-about{\n    padding:72px 0 82px;\n  }\n\n  .pl-about-grid{\n    grid-template-columns:1fr;\n    gap:28px;\n  }\n\n  .pl-about-label{\n    padding-top:0;\n  }\n\n  .pl-about-copy h2{\n    font-size:clamp(26px,7.2vw,34px);\n  }\n\n  .pl-about-actions{\n    margin-top:30px;\n    flex-direction:column;\n    align-items:stretch;\n  }\n\n  .pl-about-stat{\n    grid-template-columns:1fr auto;\n  }\n\n  .pl-about-stat strong{\n    font-size:18px;\n  }\n\n  .pl-about-stat span{\n    font-size:9px;\n  }\n}\n\n\n@media(prefers-reduced-motion:reduce){\n  .pl-hero-grain{animation:none}\n  [data-reveal]{\n    opacity:1!important;\n    transform:none!important;\n    transition:none!important;\n  }\n}\n\n\n\/* ======================================================\n   TECHNOLOGIES CAROUSEL\n====================================================== *\/\n\n.pl-tech-carousel{\n  background:#e7e7e4;\n  color:#17191f;\n  padding:clamp(86px,8.5vw,128px) 0 clamp(100px,9vw,140px);\n  overflow:hidden;\n}\n\n.pl-tech-carousel .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-tech-top{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(340px,.84fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-tech-eyebrow{\n  padding-top:7px;\n  color:#252a29;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-tech-eyebrow span{\n  display:block;\n  margin-bottom:7px;\n}\n\n.pl-tech-heading{\n  margin:0;\n  max-width:700px;\n  font-size:clamp(40px,4.5vw,68px);\n  line-height:.98;\n  letter-spacing:-.05em;\n  font-weight:400;\n}\n\n.pl-tech-menu{\n  margin:0;\n  padding:0;\n  list-style:none;\n}\n\n.pl-tech-menu li{\n  --dynamic-opacity:.34;\n  --dynamic-shift:0px;\n}\n\n.pl-tech-menu button{\n  appearance:none;\n  width:100%;\n  padding:0;\n  border:0;\n  background:none;\n  color:rgba(23,25,31,var(--dynamic-opacity, .34));\n  text-align:left;\n  cursor:pointer;\n\n  font:inherit;\n  font-size:clamp(20px,2vw,31px);\n  line-height:1.62;\n  letter-spacing:-.025em;\n  font-weight:400;\n\n  transform:translateX(var(--dynamic-shift, 0px));\n  transition:\n    color .26s ease,\n    transform .32s ease,\n    opacity .26s ease;\n}\n\n.pl-tech-menu button:hover{\n  color:rgba(23,25,31,.96);\n  transform:translateX(calc(var(--dynamic-shift, 0px) + 5px));\n}\n\n.pl-tech-menu button.is-active{\n  color:#17191f;\n}\n\n.pl-tech-main{\n  display:grid;\n  grid-template-columns:minmax(220px,.32fr) minmax(0,1.68fr);\n  gap:clamp(40px,5vw,88px);\n  align-items:start;\n  margin-top:clamp(64px,7vw,106px);\n}\n\n.pl-tech-info{\n  padding-top:clamp(100px,10.5vw,160px);\n}\n\n.pl-tech-info h3{\n  margin:0;\n  color:#17191f !important;\n  font-size:clamp(24px,2vw,32px);\n  line-height:1.08;\n  letter-spacing:-.03em;\n  font-weight:650;\n}\n\n.pl-tech-info p{\n  max-width:260px;\n  margin:14px 0 0;\n  color:#5e6360;\n  font-size:12px;\n  line-height:1.55;\n}\n\n.pl-tech-stage{\n  min-width:0;\n  overflow:visible;\n}\n\n.pl-tech-viewport{\n  overflow-x:auto;\n  overflow-y:hidden;\n  border-radius:18px 0 0 18px;\n  scroll-snap-type:x mandatory;\n  scroll-behavior:smooth;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n\n.pl-tech-viewport::-webkit-scrollbar{\n  display:none;\n}\n\n.pl-tech-track{\n  display:flex;\n  gap:18px;\n  width:max-content;\n  padding-right:clamp(90px,10vw,180px);\n}\n\n.pl-tech-slide{\n  position:relative;\n  flex:0 0 min(66vw,760px);\n  scroll-snap-align:start;\n  height:clamp(360px,35vw,525px);\n  overflow:hidden;\n  border-radius:18px;\n  background:#d6d7d3;\n}\n\n.pl-tech-slide img{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  transition:transform .8s cubic-bezier(.2,.7,.2,1);\n}\n\n.pl-tech-slide::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background:\n    linear-gradient(180deg,rgba(10,12,16,.02),rgba(10,12,16,.12) 58%,rgba(10,12,16,.34) 100%);\n  pointer-events:none;\n}\n\n.pl-tech-slide.is-active img{\n  transform:scale(1.025);\n}\n\n.pl-tech-slide:hover img{\n  transform:scale(1.055);\n}\n\n.pl-tech-controls{\n  display:flex;\n  gap:12px;\n  margin-top:24px;\n}\n\n.pl-tech-arrow{\n  width:50px;\n  height:50px;\n  border-radius:50%;\n  border:1px solid rgba(23,25,31,.72);\n  background:transparent;\n  color:#17191f;\n  display:grid;\n  place-items:center;\n  cursor:pointer;\n  font-size:20px;\n  line-height:1;\n  transition:\n    background .2s ease,\n    color .2s ease,\n    transform .2s ease;\n}\n\n.pl-tech-arrow:hover{\n  background:#17191f;\n  color:#fff;\n  transform:translateY(-2px);\n}\n\n.pl-tech-arrow:disabled{\n  opacity:.28;\n  cursor:default;\n  transform:none;\n  background:transparent;\n  color:#17191f;\n}\n\n@media(max-width:1100px){\n  .pl-tech-top{\n    grid-template-columns:.35fr 1.3fr;\n  }\n\n  .pl-tech-menu{\n    grid-column:2;\n    margin-top:12px;\n  }\n\n  .pl-tech-menu button{\n    font-size:24px;\n    line-height:1.5;\n  }\n\n  .pl-tech-main{\n    grid-template-columns:210px 1fr;\n  }\n\n  .pl-tech-slide{\n    flex-basis:min(72vw,700px);\n  }\n}\n\n@media(max-width:760px){\n  .pl-tech-carousel{\n    padding:72px 0 82px;\n  }\n\n  .pl-tech-top,\n  .pl-tech-main{\n    grid-template-columns:1fr;\n    gap:28px;\n  }\n\n  .pl-tech-menu{\n    grid-column:auto;\n  }\n\n  .pl-tech-menu button{\n    font-size:19px;\n    line-height:1.55;\n  }\n\n  .pl-tech-main{\n    margin-top:46px;\n  }\n\n  .pl-tech-info{\n    padding-top:0;\n  }\n\n  .pl-tech-info p{\n    max-width:100%;\n    font-size:14px;\n    line-height:1.58;\n  }\n\n  .pl-tech-viewport{\n    overflow-x:auto;\n    overflow-y:hidden;\n  }\n\n  .pl-tech-track{\n    gap:12px;\n  }\n\n  .pl-tech-slide{\n    flex:0 0 84vw;\n    height:360px;\n  }\n\n  .pl-tech-arrow{\n    width:46px;\n    height:46px;\n  }\n}\n\n\n\/* ======================================================\n   03 \/ TECHNOLOGY PARTNERS\n====================================================== *\/\n\n.pl-partners{\n  background:#f5f5f2;\n  color:#17191f;\n  padding:clamp(76px,7.5vw,112px) 0 clamp(84px,8vw,118px);\n  overflow:hidden;\n}\n\n.pl-partners .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-partners-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-partners-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-partners-label span{\n  display:block;\n  margin-bottom:7px;\n}\n\n.pl-partners h2{\n  margin:0;\n  max-width:690px;\n  color:#17191f;\n  font-size:clamp(38px,4.35vw,66px);\n  line-height:.98;\n  letter-spacing:-.052em;\n  font-weight:400;\n}\n\n.pl-partners-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* LOGO GRID *\/\n\n.pl-partners-row{\n  margin-top:clamp(56px,6vw,88px);\n  display:grid;\n  grid-template-columns:repeat(5,1fr);\n  border-top:1px solid rgba(23,25,31,.14);\n  border-bottom:1px solid rgba(23,25,31,.14);\n}\n\n.pl-partner{\n  position:relative;\n  min-width:0;\n  min-height:150px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:28px 22px;\n  border-right:1px solid rgba(23,25,31,.14);\n  overflow:hidden;\n}\n\n.pl-partner:last-child{\n  border-right:0;\n}\n\n.pl-partner::after{\n  content:\"\";\n  position:absolute;\n  left:0;\n  right:0;\n  bottom:0;\n  height:3px;\n  background:#55c2a8;\n  transform:scaleX(0);\n  transform-origin:left center;\n  transition:transform .32s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-partner img{\n  display:block;\n  width:auto;\n  height:auto;\n  max-width:170px;\n  max-height:46px;\n  object-fit:contain;\n  filter:grayscale(100%);\n  opacity:.48;\n  transform:scale(.98);\n  transition:\n    filter .28s ease,\n    opacity .28s ease,\n    transform .36s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-partner-konica img{\n  max-width:190px;\n  max-height:50px;\n}\n\n.pl-partner:hover::after{\n  transform:scaleX(1);\n}\n\n.pl-partner:hover img{\n  filter:grayscale(0%);\n  opacity:1;\n  transform:scale(1.055);\n}\n\n\/* small editorial footer *\/\n.pl-partners-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-partners-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-partners-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-partners-row{\n    grid-template-columns:repeat(3,1fr);\n  }\n\n  .pl-partner:nth-child(3){\n    border-right:0;\n  }\n\n  .pl-partner:nth-child(n+4){\n    border-top:1px solid rgba(23,25,31,.14);\n  }\n\n  .pl-partner:nth-child(4){\n    border-right:1px solid rgba(23,25,31,.14);\n  }\n}\n\n@media(max-width:700px){\n  .pl-partners{\n    padding:68px 0 76px;\n  }\n\n  .pl-partners-head{\n    grid-template-columns:1fr;\n    gap:25px;\n  }\n\n  .pl-partners-copy{\n    grid-column:auto;\n    font-size:14px;\n  }\n\n  .pl-partners h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-partners-row{\n    margin-top:48px;\n    grid-template-columns:1fr 1fr;\n  }\n\n  .pl-partner{\n    min-height:112px;\n    padding:22px 16px;\n  }\n\n  .pl-partner:nth-child(odd){\n    border-right:1px solid rgba(23,25,31,.14);\n  }\n\n  .pl-partner:nth-child(even){\n    border-right:0;\n  }\n\n  .pl-partner:nth-child(n+3){\n    border-top:1px solid rgba(23,25,31,.14);\n  }\n\n  .pl-partner:last-child{\n    grid-column:1 \/ -1;\n    border-right:0;\n  }\n\n  .pl-partner img{\n    max-width:128px;\n    max-height:37px;\n  }\n\n  .pl-partner-konica img{\n    max-width:148px;\n    max-height:40px;\n  }\n\n  .pl-partners-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   04 \/ PRODUCT SELECTION\n====================================================== *\/\n\n.pl-products{\n  background:#ececea;\n  color:#17191f;\n  padding:clamp(82px,8vw,120px) 0 clamp(92px,9vw,132px);\n  overflow:hidden;\n}\n\n.pl-products .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-products-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-products-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-products-label span{\n  display:block;\n  margin-bottom:7px;\n}\n\n.pl-products h2{\n  margin:0;\n  max-width:760px;\n  color:#17191f;\n  font-size:clamp(40px,4.5vw,68px);\n  line-height:.98;\n  letter-spacing:-.055em;\n  font-weight:400;\n}\n\n.pl-products-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* EDITORIAL PRODUCT MOSAIC *\/\n\n.pl-products-grid{\n  margin-top:clamp(58px,6.5vw,96px);\n  display:grid;\n  grid-template-columns:repeat(12,minmax(0,1fr));\n  grid-template-rows:290px 260px 245px;\n  gap:14px;\n}\n\n.pl-product-card{\n  position:relative;\n  display:block;\n  min-width:0;\n  overflow:hidden;\n  border-radius:16px;\n  background:#1b1e21;\n  color:#fff;\n  text-decoration:none !important;\n  isolation:isolate;\n  transform:perspective(1200px) translateY(0) scale(1);\n  transition:\n    transform .38s cubic-bezier(.2,.65,.25,1),\n    box-shadow .38s ease;\n}\n\n.pl-product-card img{\n  position:absolute;\n  inset:0;\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  transition:\n    transform .72s cubic-bezier(.2,.65,.25,1),\n    filter .35s ease;\n}\n\n.pl-product-card::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  z-index:1;\n  background:\n    linear-gradient(\n      180deg,\n      rgba(6,8,12,.02) 8%,\n      rgba(6,8,12,.13) 48%,\n      rgba(6,8,12,.88) 100%\n    );\n  transition:background .3s ease;\n}\n\n.pl-product-card:hover{\n  transform:perspective(1200px) translateY(-5px) scale(1.006);\n  box-shadow:0 22px 52px rgba(15,23,42,.14);\n}\n\n.pl-product-card:hover img{\n  transform:scale(1.065);\n  filter:saturate(1.04) contrast(1.035);\n}\n\n.pl-product-card:hover::after{\n  background:\n    linear-gradient(\n      180deg,\n      rgba(6,8,12,.02) 4%,\n      rgba(6,8,12,.17) 42%,\n      rgba(6,8,12,.94) 100%\n    );\n}\n\n.pl-product-content{\n  position:absolute;\n  z-index:2;\n  left:20px;\n  right:20px;\n  bottom:19px;\n}\n\n.pl-product-index{\n  display:flex;\n  align-items:center;\n  gap:9px;\n  margin-bottom:7px;\n  color:#b9eee2;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-product-index::after{\n  content:\"\";\n  width:26px;\n  height:1px;\n  background:rgba(185,238,226,.58);\n}\n\n.pl-product-content h3{\n  margin:0;\n  font-size:clamp(21px,1.8vw,29px);\n  line-height:1;\n  letter-spacing:-.035em;\n  font-weight:600;\n}\n\n.pl-product-content p{\n  max-width:390px;\n  max-height:0;\n  margin:0;\n  overflow:hidden;\n  opacity:0;\n  transform:translateY(9px);\n  color:rgba(255,255,255,.76);\n  font-size:11px;\n  line-height:1.5;\n  transition:\n    max-height .28s ease,\n    opacity .28s ease,\n    transform .28s ease,\n    margin .28s ease;\n}\n\n.pl-product-card:hover .pl-product-content p{\n  max-height:80px;\n  margin-top:9px;\n  opacity:1;\n  transform:none;\n}\n\n\/* ASYMMETRIC POSITIONS *\/\n\n.pl-product-tshirts{\n  grid-column:1 \/ span 5;\n  grid-row:1 \/ span 2;\n}\n\n.pl-product-hoodies{\n  grid-column:6 \/ span 4;\n  grid-row:1;\n}\n\n.pl-product-accessories{\n  grid-column:10 \/ span 3;\n  grid-row:1;\n}\n\n.pl-product-sports{\n  grid-column:6 \/ span 3;\n  grid-row:2;\n}\n\n.pl-product-home{\n  grid-column:9 \/ span 4;\n  grid-row:2;\n}\n\n.pl-product-posters{\n  grid-column:1 \/ span 4;\n  grid-row:3;\n}\n\n\/* FULL CATALOG *\/\n\n.pl-product-catalog{\n  grid-column:5 \/ span 8;\n  grid-row:3;\n  padding:30px 32px;\n  display:flex;\n  align-items:flex-end;\n  background:\n    radial-gradient(circle at 12% 20%,rgba(85,194,168,.16),transparent 38%),\n    linear-gradient(145deg,#15191c,#0e1215);\n  border:1px solid rgba(255,255,255,.08);\n}\n\n.pl-product-catalog::after{\n  display:none;\n}\n\n.pl-product-catalog-inner{\n  position:relative;\n  z-index:2;\n  width:100%;\n  display:grid;\n  grid-template-columns:1fr auto;\n  gap:34px;\n  align-items:end;\n}\n\n.pl-product-catalog small{\n  display:block;\n  margin-bottom:10px;\n  color:#9fe7d6;\n  font-size:9px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.14em;\n  text-transform:uppercase;\n}\n\n.pl-product-catalog h3{\n  max-width:620px;\n  margin:0;\n  color:#fff;\n  font-size:clamp(30px,3.1vw,48px);\n  line-height:.98;\n  letter-spacing:-.048em;\n  font-weight:400;\n}\n\n.pl-product-catalog-cta{\n  width:52px;\n  height:52px;\n  display:grid;\n  place-items:center;\n  border-radius:50%;\n  border:1px solid rgba(255,255,255,.36);\n  color:#fff;\n  font-size:17px;\n  transition:\n    background .22s ease,\n    color .22s ease,\n    transform .22s ease;\n}\n\n.pl-product-catalog:hover .pl-product-catalog-cta{\n  background:#55c2a8;\n  border-color:#55c2a8;\n  transform:rotate(45deg);\n}\n\n.pl-products-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:18px;\n  color:#777e7a;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1100px){\n  .pl-products-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-products-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-products-grid{\n    grid-template-columns:repeat(2,1fr);\n    grid-template-rows:none;\n  }\n\n  .pl-product-card,\n  .pl-product-tshirts,\n  .pl-product-hoodies,\n  .pl-product-accessories,\n  .pl-product-sports,\n  .pl-product-home,\n  .pl-product-posters,\n  .pl-product-catalog{\n    grid-column:auto;\n    grid-row:auto;\n    min-height:300px;\n  }\n\n  .pl-product-tshirts{\n    grid-row:span 2;\n    min-height:614px;\n  }\n\n  .pl-product-catalog{\n    grid-column:1 \/ -1;\n    min-height:235px;\n  }\n}\n\n@media(max-width:700px){\n  .pl-products{\n    padding:68px 0 78px;\n  }\n\n  .pl-products-head{\n    grid-template-columns:1fr;\n    gap:25px;\n  }\n\n  .pl-products-copy{\n    grid-column:auto;\n  }\n\n  .pl-products h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-products-grid{\n    margin-top:46px;\n    grid-template-columns:1fr 1fr;\n    gap:9px;\n  }\n\n  .pl-product-card,\n  .pl-product-tshirts,\n  .pl-product-hoodies,\n  .pl-product-accessories,\n  .pl-product-sports,\n  .pl-product-home,\n  .pl-product-posters{\n    min-height:210px;\n    border-radius:12px;\n  }\n\n  .pl-product-tshirts{\n    grid-row:auto;\n  }\n\n  .pl-product-content{\n    left:12px;\n    right:12px;\n    bottom:12px;\n  }\n\n  .pl-product-index{\n    font-size:7px;\n  }\n\n  .pl-product-content h3{\n    font-size:18px;\n  }\n\n  .pl-product-content p{\n    display:none;\n  }\n\n  .pl-product-catalog{\n    grid-column:1 \/ -1;\n    min-height:210px;\n    padding:24px;\n  }\n\n  .pl-product-catalog-inner{\n    gap:16px;\n  }\n\n  .pl-product-catalog h3{\n    font-size:30px;\n  }\n\n  .pl-product-catalog-cta{\n    width:46px;\n    height:46px;\n  }\n\n  .pl-products-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   05 \/ BLANK PRODUCT BRANDS\n====================================================== *\/\n\n.pl-brands{\n  background:#f6f6f3;\n  color:#17191f;\n  padding:clamp(74px,7vw,104px) 0 clamp(76px,7.5vw,110px);\n  overflow:hidden;\n}\n\n.pl-brands .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-brands-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-brands-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-brands-label span{\n  display:block;\n  margin-bottom:7px;\n}\n\n.pl-brands h2{\n  margin:0;\n  max-width:720px;\n  color:#17191f;\n  font-size:clamp(36px,3.85vw,58px);\n  line-height:.98;\n  letter-spacing:-.052em;\n  font-weight:400;\n}\n\n\n\n.pl-brands-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* MARQUEE *\/\n\n.pl-brands-marquee{\n  position:relative;\n  margin-top:clamp(52px,5.5vw,82px);\n  overflow:hidden;\n  border-top:1px solid rgba(23,25,31,.14);\n  border-bottom:1px solid rgba(23,25,31,.14);\n  padding:28px 0;\n}\n\n.pl-brands-marquee::before,\n.pl-brands-marquee::after{\n  content:\"\";\n  position:absolute;\n  top:0;\n  bottom:0;\n  width:110px;\n  z-index:3;\n  pointer-events:none;\n}\n\n.pl-brands-marquee::before{\n  left:0;\n  background:linear-gradient(\n    90deg,\n    #f6f6f3 0%,\n    rgba(246,246,243,.88) 22%,\n    rgba(246,246,243,0) 100%\n  );\n}\n\n.pl-brands-marquee::after{\n  right:0;\n  background:linear-gradient(\n    270deg,\n    #f6f6f3 0%,\n    rgba(246,246,243,.88) 22%,\n    rgba(246,246,243,0) 100%\n  );\n}\n\n.pl-brands-track{\n  display:flex;\n  align-items:center;\n  width:max-content;\n  animation:plBrandsScroll 42s linear infinite;\n  will-change:transform;\n}\n\n.pl-brands-set{\n  display:flex;\n  align-items:center;\n  gap:clamp(44px,4.8vw,74px);\n  padding-right:clamp(44px,4.8vw,74px);\n}\n\n.pl-brand-logo{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  min-width:140px;\n  min-height:54px;\n}\n\n.pl-brand-logo img{\n  display:block;\n  width:auto;\n  height:auto;\n  max-width:158px;\n  max-height:42px;\n  object-fit:contain;\n  opacity:.48;\n  filter:grayscale(100%);\n  transform:scale(.98);\n  transition:\n    opacity .25s ease,\n    filter .25s ease,\n    transform .32s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-brand-logo:hover img{\n  opacity:1;\n  filter:grayscale(0%);\n  transform:scale(1.055) translateY(-2px);\n}\n\n.pl-brand-logo-stanley img{\n  max-width:178px;\n  max-height:38px;\n}\n\n.pl-brand-logo-hanes img{\n  max-width:126px;\n  max-height:50px;\n}\n\n.pl-brand-logo-shaka img{\n  max-height:46px;\n}\n\n.pl-brands-marquee:hover .pl-brands-track{\n  animation-play-state:paused;\n}\n\n@keyframes plBrandsScroll{\n  from{transform:translate3d(0,0,0)}\n  to{transform:translate3d(-50%,0,0)}\n}\n\n.pl-brands-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:16px;\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-brands-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-brands-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n}\n\n@media(max-width:700px){\n  .pl-brands{\n    padding:66px 0 74px;\n  }\n\n  .pl-brands-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-brands-copy{\n    grid-column:auto;\n  }\n\n  .pl-brands h2{\n    font-size:clamp(38px,11vw,50px);\n  }\n\n  .pl-brands-marquee{\n    margin-top:44px;\n    padding:24px 0;\n  }\n\n  .pl-brands-marquee::before,\n  .pl-brands-marquee::after{\n    width:48px;\n  }\n\n  .pl-brands-track{\n    animation-duration:30s;\n  }\n\n  .pl-brands-set{\n    gap:38px;\n    padding-right:38px;\n  }\n\n  .pl-brand-logo{\n    min-width:108px;\n    min-height:46px;\n  }\n\n  .pl-brand-logo img{\n    max-width:118px;\n    max-height:32px;\n  }\n\n  .pl-brand-logo-stanley img{\n    max-width:142px;\n    max-height:31px;\n  }\n\n  .pl-brand-logo-hanes img{\n    max-width:92px;\n    max-height:38px;\n  }\n\n  .pl-brand-logo-shaka img{\n    max-height:34px;\n  }\n\n  .pl-brands-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n@media(prefers-reduced-motion:reduce){\n  .pl-brands-track{\n    animation:none;\n  }\n}\n\n\n\/* ======================================================\n   06 \/ SOLUTIONS\n====================================================== *\/\n\n.pl-solutions{\n  position:relative;\n  background:\n    radial-gradient(circle at 14% 18%,rgba(85,194,168,.09),transparent 30%),\n    radial-gradient(circle at 84% 22%,rgba(255,255,255,.035),transparent 27%),\n    #101316;\n  color:#fff;\n  padding:clamp(86px,8vw,122px) 0 clamp(94px,9vw,136px);\n  overflow:hidden;\n}\n\n.pl-solutions .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-solutions-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-solutions-label{\n  padding-top:7px;\n  color:rgba(255,255,255,.78);\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-solutions-label span{\n  display:block;\n  margin-bottom:7px;\n  color:#9fe7d6;\n}\n\n.pl-solutions h2{\n  margin:0;\n  max-width:730px;\n  color:#fff;\n  font-size:clamp(40px,4.45vw,68px);\n  line-height:.98;\n  letter-spacing:-.055em;\n  font-weight:400;\n}\n\n.pl-solutions-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:rgba(255,255,255,.56);\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* ONE EDITORIAL PANEL *\/\n\n.pl-solutions-shell{\n  margin-top:clamp(58px,6vw,90px);\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  border-top:1px solid rgba(255,255,255,.13);\n  border-bottom:1px solid rgba(255,255,255,.13);\n}\n\n.pl-solution{\n  position:relative;\n  min-width:0;\n  min-height:555px;\n  padding:30px 30px 28px;\n  display:flex;\n  flex-direction:column;\n  border-right:1px solid rgba(255,255,255,.13);\n  overflow:hidden;\n  transition:\n    background .35s ease,\n    transform .35s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-solution:last-child{\n  border-right:0;\n}\n\n.pl-solution::before{\n  content:\"\";\n  position:absolute;\n  left:0;\n  right:0;\n  top:0;\n  height:3px;\n  background:#55c2a8;\n  transform:scaleX(0);\n  transform-origin:left center;\n  transition:transform .35s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-solution::after{\n  content:\"\";\n  position:absolute;\n  width:220px;\n  height:220px;\n  right:-100px;\n  bottom:-115px;\n  border-radius:50%;\n  background:rgba(255,255,255,.025);\n  pointer-events:none;\n}\n\n.pl-solution:hover{\n  background:rgba(255,255,255,.035);\n}\n\n.pl-solution:hover::before{\n  transform:scaleX(1);\n}\n\n\/* subtle middle emphasis, not a \"featured SaaS card\" *\/\n.pl-solution-wholesale{\n  background:rgba(85,194,168,.035);\n}\n\n.pl-solution-wholesale::before{\n  transform:scaleX(.22);\n}\n\n.pl-solution-top{\n  min-height:175px;\n}\n\n.pl-solution-index{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:18px;\n  color:#9fe7d6;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-solution-index::after{\n  content:\"\";\n  width:28px;\n  height:1px;\n  background:rgba(159,231,214,.55);\n}\n\n.pl-solution-badge{\n  display:inline-block;\n  margin-bottom:13px;\n  color:rgba(255,255,255,.48);\n  font-size:9px;\n  line-height:1.3;\n  font-weight:750;\n  letter-spacing:.11em;\n  text-transform:uppercase;\n}\n\n.pl-solution h3{\n  margin:0;\n  color:#fff;\n  font-size:clamp(30px,2.9vw,44px);\n  line-height:.98;\n  letter-spacing:-.045em;\n  font-weight:400;\n}\n\n.pl-snapwear-logo{\n  width:fit-content;\n  margin-top:20px;\n  display:inline-flex;\n  align-items:center;\n  opacity:.78;\n  transition:opacity .25s ease,transform .25s ease;\n}\n\n.pl-snapwear-logo img{\n  display:block;\n  width:auto;\n  height:auto;\n  max-width:135px;\n  max-height:34px;\n}\n\n.pl-snapwear-logo:hover{\n  opacity:1;\n  transform:translateY(-2px);\n}\n\n.pl-solution-desc{\n  margin:24px 0 0;\n  max-width:390px;\n  color:rgba(255,255,255,.57);\n  font-size:13px;\n  line-height:1.6;\n}\n\n.pl-solution-features{\n  list-style:none;\n  margin:32px 0 0;\n  padding:0;\n  display:grid;\n}\n\n.pl-solution-features li{\n  position:relative;\n  padding:12px 0 12px 18px;\n  border-top:1px solid rgba(255,255,255,.09);\n  color:rgba(255,255,255,.76);\n  font-size:11px;\n  line-height:1.45;\n}\n\n.pl-solution-features li::before{\n  content:\"\";\n  position:absolute;\n  left:0;\n  top:17px;\n  width:5px;\n  height:5px;\n  border-radius:50%;\n  background:#55c2a8;\n}\n\n.pl-solution-link{\n  position:relative;\n  z-index:2;\n  margin-top:auto;\n  padding-top:25px;\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:14px;\n  color:#9fe7d6 !important;\n  text-decoration:none !important;\n  font-size:10px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n}\n\n.pl-solution-link::after{\n  content:\"\u2197\";\n  width:34px;\n  height:34px;\n  display:grid;\n  place-items:center;\n  border:1px solid rgba(255,255,255,.23);\n  border-radius:50%;\n  color:#fff;\n  font-size:11px;\n  transition:\n    background .22s ease,\n    border-color .22s ease,\n    color .22s ease,\n    transform .22s ease;\n}\n\n.pl-solution:hover .pl-solution-link::after{\n  background:#55c2a8;\n  border-color:#55c2a8;\n  color:#091411;\n  transform:rotate(45deg);\n}\n\n.pl-solution-link-static{\n  color:rgba(255,255,255,.42) !important;\n  cursor:default;\n}\n\n.pl-solution-link-static::after{\n  content:\"\u2014\";\n}\n\n.pl-solution:hover .pl-solution-link-static::after{\n  transform:none;\n  background:transparent;\n  border-color:rgba(255,255,255,.23);\n  color:#fff;\n}\n\n\/* footer line *\/\n\n.pl-solutions-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:rgba(255,255,255,.35);\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-solutions-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-solutions-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-solutions-shell{\n    grid-template-columns:1fr;\n  }\n\n  .pl-solution{\n    min-height:auto;\n    border-right:0;\n    border-bottom:1px solid rgba(255,255,255,.13);\n    padding:30px 28px 30px;\n  }\n\n  .pl-solution:last-child{\n    border-bottom:0;\n  }\n\n  .pl-solution-top{\n    min-height:auto;\n  }\n\n  .pl-solution-desc{\n    max-width:700px;\n  }\n}\n\n@media(max-width:700px){\n  .pl-solutions{\n    padding:68px 0 78px;\n  }\n\n  .pl-solutions-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-solutions-copy{\n    grid-column:auto;\n  }\n\n  .pl-solutions h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-solutions-shell{\n    margin-top:46px;\n  }\n\n  .pl-solution{\n    padding:26px 20px 26px;\n  }\n\n  .pl-solution h3{\n    font-size:34px;\n  }\n\n  .pl-solution-desc{\n    font-size:13px;\n  }\n\n  .pl-solutions-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   07 \/ INTEGRATIONS\n====================================================== *\/\n\n.pl-integrations{\n  background:#121518;\n  color:#fff;\n  padding:clamp(76px,7vw,108px) 0 clamp(84px,8vw,118px);\n  overflow:hidden;\n}\n\n.pl-integrations .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-integrations-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-integrations-label{\n  padding-top:7px;\n  color:rgba(255,255,255,.76);\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-integrations-label span{\n  display:block;\n  margin-bottom:7px;\n  color:#9fe7d6;\n}\n\n.pl-integrations h2{\n  margin:0;\n  max-width:720px;\n  color:#fff;\n  font-size:clamp(40px,4.35vw,66px);\n  line-height:.98;\n  letter-spacing:-.052em;\n  font-weight:400;\n}\n\n.pl-integrations-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:rgba(255,255,255,.55);\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* SINGLE INTEGRATION FEATURE *\/\n\n.pl-integration-feature{\n  position:relative;\n  margin-top:clamp(54px,5.8vw,86px);\n  min-height:330px;\n  display:grid;\n  grid-template-columns:minmax(300px,.72fr) minmax(480px,1.28fr);\n  border-top:1px solid rgba(255,255,255,.13);\n  border-bottom:1px solid rgba(255,255,255,.13);\n  overflow:hidden;\n}\n\n.pl-integration-logo-panel{\n  position:relative;\n  min-height:330px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:38px;\n  border-right:1px solid rgba(255,255,255,.13);\n  background:\n    radial-gradient(circle at 26% 28%,rgba(85,194,168,.10),transparent 38%),\n    rgba(255,255,255,.018);\n}\n\n.pl-integration-logo-panel::after{\n  content:\"\";\n  position:absolute;\n  left:0;\n  right:0;\n  top:0;\n  height:3px;\n  background:#55c2a8;\n  transform:scaleX(.18);\n  transform-origin:left center;\n  transition:transform .35s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-integration-logo-panel img{\n  display:block;\n  width:auto;\n  height:auto;\n  max-width:min(330px,78%);\n  max-height:66px;\n  object-fit:contain;\n  filter:none;\n  opacity:.94;\n  transition:\n    transform .38s cubic-bezier(.2,.65,.25,1),\n    opacity .25s ease;\n}\n\n.pl-integration-feature:hover .pl-integration-logo-panel::after{\n  transform:scaleX(1);\n}\n\n.pl-integration-feature:hover .pl-integration-logo-panel img{\n  transform:scale(1.045);\n  opacity:1;\n}\n\n.pl-integration-body{\n  min-height:330px;\n  padding:34px 36px 32px;\n  display:flex;\n  flex-direction:column;\n  justify-content:space-between;\n  background:rgba(255,255,255,.014);\n  transition:background .3s ease;\n}\n\n.pl-integration-feature:hover .pl-integration-body{\n  background:rgba(255,255,255,.028);\n}\n\n.pl-integration-index{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:18px;\n  color:#9fe7d6;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-integration-index::after{\n  content:\"\";\n  width:28px;\n  height:1px;\n  background:rgba(159,231,214,.55);\n}\n\n.pl-integration-body h3{\n  margin:0;\n  color:#fff;\n  font-size:clamp(32px,3vw,46px);\n  line-height:.98;\n  letter-spacing:-.045em;\n  font-weight:400;\n}\n\n.pl-integration-body p{\n  max-width:660px;\n  margin:18px 0 0;\n  color:rgba(255,255,255,.58);\n  font-size:14px;\n  line-height:1.65;\n}\n\n.pl-integration-bottom{\n  display:flex;\n  justify-content:space-between;\n  align-items:flex-end;\n  gap:30px;\n  margin-top:36px;\n}\n\n.pl-integration-meta{\n  color:rgba(255,255,255,.36);\n  font-size:9px;\n  line-height:1.5;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n.pl-integration-link{\n  display:inline-flex;\n  align-items:center;\n  gap:14px;\n  color:#9fe7d6 !important;\n  text-decoration:none !important;\n  font-size:10px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n}\n\n.pl-integration-link::after{\n  content:\"\u2197\";\n  width:38px;\n  height:38px;\n  display:grid;\n  place-items:center;\n  border:1px solid rgba(255,255,255,.24);\n  border-radius:50%;\n  color:#fff;\n  font-size:11px;\n  transition:\n    background .22s ease,\n    border-color .22s ease,\n    color .22s ease,\n    transform .22s ease;\n}\n\n.pl-integration-link:hover::after{\n  background:#55c2a8;\n  border-color:#55c2a8;\n  color:#091411;\n  transform:rotate(45deg);\n}\n\n.pl-integrations-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:rgba(255,255,255,.34);\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-integrations-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-integrations-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-integration-feature{\n    grid-template-columns:1fr;\n  }\n\n  .pl-integration-logo-panel{\n    min-height:220px;\n    border-right:0;\n    border-bottom:1px solid rgba(255,255,255,.13);\n  }\n\n  .pl-integration-body{\n    min-height:auto;\n  }\n}\n\n@media(max-width:700px){\n  .pl-integrations{\n    padding:66px 0 76px;\n  }\n\n  .pl-integrations-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-integrations-copy{\n    grid-column:auto;\n  }\n\n  .pl-integrations h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-integration-feature{\n    margin-top:46px;\n  }\n\n  .pl-integration-logo-panel{\n    min-height:180px;\n    padding:28px 22px;\n  }\n\n  .pl-integration-logo-panel img{\n    max-width:230px;\n    max-height:54px;\n  }\n\n  .pl-integration-body{\n    padding:26px 20px 26px;\n  }\n\n  .pl-integration-body h3{\n    font-size:34px;\n  }\n\n  .pl-integration-bottom{\n    flex-direction:column;\n    align-items:flex-start;\n    gap:20px;\n  }\n\n  .pl-integrations-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   08 \/ RESPONSIBLE MANUFACTURING\n====================================================== *\/\n\n.pl-responsibility{\n  background:#f4f4f1;\n  color:#17191f;\n  padding:clamp(80px,7.5vw,112px) 0 clamp(88px,8vw,122px);\n  overflow:hidden;\n}\n\n.pl-responsibility .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-responsibility-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-responsibility-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-responsibility-label span{\n  display:block;\n  margin-bottom:7px;\n  color:#357d6c;\n}\n\n.pl-responsibility h2{\n  margin:0;\n  max-width:760px;\n  color:#17191f;\n  font-size:clamp(40px,4.35vw,66px);\n  line-height:.98;\n  letter-spacing:-.052em;\n  font-weight:400;\n}\n\n.pl-responsibility-copy{\n  max-width:400px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* AUDIT FEATURE *\/\n\n.pl-audit{\n  margin-top:clamp(56px,6vw,88px);\n  display:grid;\n  grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr);\n  border-top:1px solid rgba(23,25,31,.14);\n  border-bottom:1px solid rgba(23,25,31,.14);\n}\n\n.pl-audit-brand{\n  position:relative;\n  min-height:340px;\n  padding:36px;\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n  justify-content:space-between;\n  border-right:1px solid rgba(23,25,31,.14);\n  background:\n    radial-gradient(circle at 18% 22%,rgba(85,194,168,.11),transparent 38%),\n    rgba(255,255,255,.26);\n  overflow:hidden;\n}\n\n.pl-audit-brand::before{\n  content:\"\";\n  position:absolute;\n  top:0;\n  left:0;\n  right:0;\n  height:3px;\n  background:#55c2a8;\n  transform:scaleX(.18);\n  transform-origin:left center;\n  transition:transform .35s cubic-bezier(.2,.65,.25,1);\n}\n\n.pl-audit:hover .pl-audit-brand::before{\n  transform:scaleX(1);\n}\n\n.pl-audit-brand-label{\n  color:#357d6c;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-audit-brand img{\n  display:block;\n  width:auto;\n  height:auto;\n  max-width:min(310px,88%);\n  max-height:128px;\n  object-fit:contain;\n  opacity:.92;\n  transform:scale(1);\n  transition:\n    transform .4s cubic-bezier(.2,.65,.25,1),\n    opacity .25s ease;\n}\n\n.pl-audit:hover .pl-audit-brand img{\n  transform:scale(1.035);\n  opacity:1;\n}\n\n.pl-audit-brand-note{\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.45;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n.pl-audit-content{\n  min-height:340px;\n  padding:34px 38px 32px;\n  display:flex;\n  flex-direction:column;\n  justify-content:space-between;\n}\n\n.pl-audit-kicker{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:18px;\n  color:#357d6c;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-audit-kicker::after{\n  content:\"\";\n  width:30px;\n  height:1px;\n  background:rgba(53,125,108,.42);\n}\n\n.pl-audit-content h3{\n  margin:0;\n  color:#17191f;\n  font-size:clamp(32px,3.15vw,48px);\n  line-height:.98;\n  letter-spacing:-.045em;\n  font-weight:400;\n}\n\n.pl-audit-content p{\n  max-width:690px;\n  margin:18px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n}\n\n.pl-audit-pillars{\n  margin-top:34px;\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  border-top:1px solid rgba(23,25,31,.13);\n}\n\n.pl-audit-pillar{\n  min-height:58px;\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:18px;\n  padding:0 14px 0 0;\n  border-bottom:1px solid rgba(23,25,31,.13);\n  color:#353b38;\n  font-size:11px;\n  line-height:1.35;\n  font-weight:650;\n}\n\n.pl-audit-pillar:nth-child(odd){\n  border-right:1px solid rgba(23,25,31,.13);\n  padding-right:22px;\n}\n\n.pl-audit-pillar:nth-child(even){\n  padding-left:22px;\n}\n\n.pl-audit-pillar::after{\n  content:\"\u2713\";\n  width:24px;\n  height:24px;\n  flex:0 0 auto;\n  display:grid;\n  place-items:center;\n  border:1px solid rgba(53,125,108,.28);\n  border-radius:50%;\n  color:#357d6c;\n  font-size:9px;\n}\n\n.pl-responsibility-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-responsibility-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-responsibility-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-audit{\n    grid-template-columns:1fr;\n  }\n\n  .pl-audit-brand{\n    min-height:240px;\n    border-right:0;\n    border-bottom:1px solid rgba(23,25,31,.14);\n  }\n\n  .pl-audit-content{\n    min-height:auto;\n  }\n}\n\n@media(max-width:700px){\n  .pl-responsibility{\n    padding:66px 0 76px;\n  }\n\n  .pl-responsibility-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-responsibility-copy{\n    grid-column:auto;\n  }\n\n  .pl-responsibility h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-audit{\n    margin-top:46px;\n  }\n\n  .pl-audit-brand{\n    min-height:210px;\n    padding:26px 20px;\n  }\n\n  .pl-audit-brand img{\n    max-width:245px;\n    max-height:100px;\n  }\n\n  .pl-audit-content{\n    padding:26px 20px;\n  }\n\n  .pl-audit-content h3{\n    font-size:34px;\n  }\n\n  .pl-audit-pillars{\n    grid-template-columns:1fr;\n  }\n\n  .pl-audit-pillar,\n  .pl-audit-pillar:nth-child(odd),\n  .pl-audit-pillar:nth-child(even){\n    border-right:0;\n    padding:0;\n  }\n\n  .pl-responsibility-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   09 \/ CONTACT\n====================================================== *\/\n\n.pl-contact{\n  background:#eeefec;\n  color:#17191f;\n  padding:clamp(84px,8vw,120px) 0 clamp(92px,9vw,132px);\n  overflow:hidden;\n}\n\n.pl-contact .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-contact-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-contact-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-contact-label span{\n  display:block;\n  margin-bottom:7px;\n  color:#357d6c;\n}\n\n.pl-contact h2{\n  margin:0;\n  max-width:760px;\n  color:#17191f;\n  font-size:clamp(44px,4.8vw,74px);\n  line-height:.96;\n  letter-spacing:-.058em;\n  font-weight:400;\n}\n\n.pl-contact-copy{\n  max-width:400px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n  font-weight:400;\n}\n\n\/* MAIN CONTACT GRID *\/\n\n.pl-contact-main{\n  margin-top:clamp(58px,6vw,90px);\n  display:grid;\n  grid-template-columns:minmax(350px,.7fr) minmax(540px,1.3fr);\n  border-top:1px solid rgba(23,25,31,.14);\n  border-bottom:1px solid rgba(23,25,31,.14);\n}\n\n.pl-contact-details{\n  border-right:1px solid rgba(23,25,31,.14);\n}\n\n.pl-contact-block{\n  padding:26px 28px 26px 0;\n  border-bottom:1px solid rgba(23,25,31,.14);\n}\n\n.pl-contact-block:last-child{\n  border-bottom:0;\n}\n\n.pl-contact-block-label{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:12px;\n  color:#357d6c;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-contact-block-label::after{\n  content:\"\";\n  width:26px;\n  height:1px;\n  background:rgba(53,125,108,.38);\n}\n\n.pl-contact-block h3{\n  margin:0;\n  color:#17191f;\n  font-size:clamp(21px,1.8vw,28px);\n  line-height:1;\n  letter-spacing:-.03em;\n  font-weight:600;\n}\n\n.pl-contact-block address,\n.pl-contact-block p{\n  margin:10px 0 0;\n  color:#626865;\n  font-size:13px;\n  line-height:1.65;\n  font-style:normal;\n}\n\n.pl-contact-block a{\n  color:#357d6c !important;\n  text-decoration:none !important;\n}\n\n.pl-contact-block a:hover{\n  text-decoration:underline !important;\n}\n\n.pl-contact-company{\n  display:grid;\n  gap:8px;\n}\n\n.pl-contact-company-row{\n  display:grid;\n  grid-template-columns:84px 1fr;\n  gap:14px;\n  color:#626865;\n  font-size:12px;\n  line-height:1.5;\n}\n\n.pl-contact-company-row strong{\n  color:#353b38;\n  font-weight:650;\n}\n\n.pl-contact-socials{\n  display:flex;\n  flex-wrap:wrap;\n  gap:18px;\n  margin-top:14px;\n}\n\n.pl-contact-socials a{\n  position:relative;\n  padding-bottom:3px;\n  color:#353b38 !important;\n  text-decoration:none !important;\n  font-size:10px;\n  line-height:1;\n  font-weight:750;\n  letter-spacing:.09em;\n  text-transform:uppercase;\n}\n\n.pl-contact-socials a::after{\n  content:\"\";\n  position:absolute;\n  left:0;\n  right:100%;\n  bottom:0;\n  height:1px;\n  background:#55c2a8;\n  transition:right .24s ease;\n}\n\n.pl-contact-socials a:hover::after{\n  right:0;\n}\n\n\/* FORM SIDE *\/\n\n.pl-contact-form{\n  position:relative;\n  padding:28px 0 0 34px;\n  background:rgba(255,255,255,.18);\n}\n\n.pl-contact-form-top{\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:20px;\n  padding:0 0 22px;\n  border-bottom:1px solid rgba(23,25,31,.12);\n}\n\n.pl-contact-form-top span{\n  color:#357d6c;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-contact-form-top small{\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.3;\n  font-weight:700;\n  letter-spacing:.09em;\n  text-transform:uppercase;\n}\n\n.pl-zoho-form{\n  padding:30px 0 34px;\n}\n\n.pl-zoho-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:26px 22px;\n}\n\n.pl-zoho-field{\n  min-width:0;\n}\n\n.pl-zoho-field-full{\n  grid-column:1 \/ -1;\n}\n\n.pl-zoho-field label{\n  display:block;\n  margin:0 0 9px;\n  color:#353b38;\n  font-size:9px;\n  line-height:1.2;\n  font-weight:800;\n  letter-spacing:.105em;\n  text-transform:uppercase;\n}\n\n.pl-zoho-field label em{\n  color:#357d6c;\n  font-style:normal;\n}\n\n.pl-zoho-field input,\n.pl-zoho-field select,\n.pl-zoho-field textarea{\n  width:100%;\n  display:block;\n  box-sizing:border-box;\n  margin:0;\n  border:1px solid rgba(23,25,31,.15);\n  border-radius:0;\n  outline:0;\n  background:rgba(255,255,255,.52);\n  color:#17191f;\n  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;\n  font-size:14px;\n  line-height:1.35;\n  font-weight:400;\n  transition:\n    border-color .22s ease,\n    background .22s ease,\n    box-shadow .22s ease;\n}\n\n.pl-zoho-field input,\n.pl-zoho-field select{\n  height:52px;\n  padding:0 15px;\n}\n\n.pl-zoho-field textarea{\n  min-height:156px;\n  resize:vertical;\n  padding:15px;\n}\n\n.pl-zoho-field input::placeholder,\n.pl-zoho-field textarea::placeholder{\n  color:#929894;\n  opacity:1;\n}\n\n.pl-zoho-field input:hover,\n.pl-zoho-field select:hover,\n.pl-zoho-field textarea:hover{\n  background:rgba(255,255,255,.72);\n  border-color:rgba(23,25,31,.25);\n}\n\n.pl-zoho-field input:focus,\n.pl-zoho-field select:focus,\n.pl-zoho-field textarea:focus{\n  background:#fff;\n  border-color:#55c2a8;\n  box-shadow:0 0 0 3px rgba(85,194,168,.10);\n}\n\n.pl-zoho-select-wrap{\n  position:relative;\n}\n\n.pl-zoho-select-wrap::after{\n  content:\"\u2193\";\n  position:absolute;\n  right:15px;\n  top:50%;\n  transform:translateY(-50%);\n  color:#357d6c;\n  font-size:11px;\n  pointer-events:none;\n}\n\n.pl-zoho-field select{\n  appearance:none;\n  -webkit-appearance:none;\n  padding-right:40px;\n  cursor:pointer;\n}\n\n.pl-zoho-error{\n  margin:7px 0 0;\n  color:#a94747;\n  font-size:10px;\n  line-height:1.35;\n  font-weight:600;\n}\n\n.pl-zoho-footer{\n  margin-top:28px;\n  padding-top:22px;\n  border-top:1px solid rgba(23,25,31,.12);\n  display:flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:22px;\n}\n\n.pl-zoho-required{\n  color:#858b87;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.09em;\n  text-transform:uppercase;\n}\n\n.pl-zoho-submit{\n  min-width:185px;\n  min-height:52px;\n  padding:7px 7px 7px 19px;\n  border:0;\n  border-radius:0;\n  background:#55c2a8;\n  color:#fff;\n  display:inline-flex;\n  align-items:center;\n  justify-content:space-between;\n  gap:18px;\n  cursor:pointer;\n  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;\n  font-size:10px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.11em;\n  text-transform:uppercase;\n  transition:\n    background .22s ease,\n    transform .22s ease;\n}\n\n.pl-zoho-submit-arrow{\n  width:38px;\n  height:38px;\n  display:grid;\n  place-items:center;\n  background:rgba(255,255,255,.16);\n  border:1px solid rgba(255,255,255,.26);\n  font-size:12px;\n  transition:\n    transform .25s ease,\n    background .22s ease;\n}\n\n.pl-zoho-submit:hover{\n  background:#17191f;\n  transform:translateY(-2px);\n}\n\n.pl-zoho-submit:hover .pl-zoho-submit-arrow{\n  transform:rotate(45deg);\n  background:rgba(255,255,255,.10);\n}\n\n@media(max-width:700px){\n  .pl-zoho-grid{\n    grid-template-columns:1fr;\n    gap:20px;\n  }\n\n  .pl-zoho-field-full{\n    grid-column:auto;\n  }\n\n  .pl-zoho-footer{\n    align-items:flex-start;\n    flex-direction:column;\n  }\n\n  .pl-zoho-submit{\n    width:100%;\n  }\n}\n\n\/* small bottom note *\/\n\n.pl-contact-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1080px){\n  .pl-contact-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-contact-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-contact-main{\n    grid-template-columns:1fr;\n  }\n\n  .pl-contact-details{\n    border-right:0;\n    border-bottom:1px solid rgba(23,25,31,.14);\n  }\n\n  .pl-contact-form{\n    padding:28px 0 0;\n  }\n}\n\n@media(max-width:700px){\n  .pl-contact{\n    padding:66px 0 76px;\n  }\n\n  .pl-contact-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-contact-copy{\n    grid-column:auto;\n  }\n\n  .pl-contact h2{\n    font-size:clamp(40px,12vw,56px);\n  }\n\n  .pl-contact-main{\n    margin-top:46px;\n  }\n\n  .pl-contact-block{\n    padding:24px 0;\n  }\n\n  .pl-contact-company-row{\n    grid-template-columns:72px 1fr;\n  }\n\n  .pl-contact-form{\n  }\n\n  .pl-contact-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ======================================================\n   09 \/ CONTACT \u2014 DARK VARIANT\n====================================================== *\/\n\n.pl-contact{\n  background:\n    radial-gradient(circle at 88% 18%, rgba(85,194,168,.07), transparent 30%),\n    #111417;\n  color:#fff;\n}\n\n.pl-contact-label{\n  color:rgba(255,255,255,.76);\n}\n\n.pl-contact-label span{\n  color:#9fe7d6;\n}\n\n.pl-contact h2{\n  color:#fff;\n}\n\n.pl-contact-copy{\n  color:rgba(255,255,255,.56);\n}\n\n.pl-contact-main{\n  border-top-color:rgba(255,255,255,.13);\n  border-bottom-color:rgba(255,255,255,.13);\n}\n\n.pl-contact-details{\n  border-right-color:rgba(255,255,255,.13);\n}\n\n.pl-contact-block{\n  border-bottom-color:rgba(255,255,255,.12);\n}\n\n.pl-contact-block-label{\n  color:#9fe7d6;\n}\n\n.pl-contact-block-label::after{\n  background:rgba(159,231,214,.42);\n}\n\n.pl-contact-block h3{\n  color:#fff;\n}\n\n.pl-contact-block address,\n.pl-contact-block p{\n  color:rgba(255,255,255,.58);\n}\n\n.pl-contact-block a{\n  color:#9fe7d6 !important;\n}\n\n.pl-contact-company-row{\n  color:rgba(255,255,255,.56);\n}\n\n.pl-contact-company-row strong{\n  color:rgba(255,255,255,.86);\n}\n\n.pl-contact-socials a{\n  color:rgba(255,255,255,.82) !important;\n}\n\n.pl-contact-form{\n  background:rgba(255,255,255,.018);\n}\n\n.pl-contact-form-top{\n  border-bottom-color:rgba(255,255,255,.12);\n}\n\n.pl-contact-form-top span{\n  color:#9fe7d6;\n}\n\n.pl-contact-form-top small{\n  color:rgba(255,255,255,.38);\n}\n\n.pl-zoho-field label{\n  color:rgba(255,255,255,.82);\n}\n\n.pl-zoho-field label em{\n  color:#9fe7d6;\n}\n\n.pl-zoho-field input,\n.pl-zoho-field select,\n.pl-zoho-field textarea{\n  border-color:rgba(255,255,255,.14);\n  background:rgba(255,255,255,.045);\n  color:#fff;\n}\n\n.pl-zoho-field input::placeholder,\n.pl-zoho-field textarea::placeholder{\n  color:rgba(255,255,255,.34);\n}\n\n.pl-zoho-field input:hover,\n.pl-zoho-field select:hover,\n.pl-zoho-field textarea:hover{\n  background:rgba(255,255,255,.065);\n  border-color:rgba(255,255,255,.24);\n}\n\n.pl-zoho-field input:focus,\n.pl-zoho-field select:focus,\n.pl-zoho-field textarea:focus{\n  background:rgba(255,255,255,.075);\n  border-color:#55c2a8;\n  box-shadow:0 0 0 3px rgba(85,194,168,.10);\n}\n\n.pl-zoho-field select option{\n  background:#171b1f;\n  color:#fff;\n}\n\n.pl-zoho-select-wrap::after{\n  color:#9fe7d6;\n}\n\n.pl-zoho-error{\n  color:#ff9b9b;\n}\n\n.pl-zoho-footer{\n  border-top-color:rgba(255,255,255,.12);\n}\n\n.pl-zoho-required{\n  color:rgba(255,255,255,.38);\n}\n\n.pl-contact-note{\n  color:rgba(255,255,255,.34);\n}\n\n@media(max-width:1080px){\n  .pl-contact-details{\n    border-bottom-color:rgba(255,255,255,.13);\n  }\n}\n\n\n\/* ======================================================\n   10 \/ DIRECT CONTACTS\n====================================================== *\/\n\n.pl-team{\n  background:#f4f4f1;\n  color:#17191f;\n  padding:clamp(82px,7.5vw,114px) 0 clamp(92px,8.5vw,128px);\n  overflow:hidden;\n}\n\n.pl-team .pl-wrap{\n  width:min(var(--max),100%);\n  margin:0 auto;\n  padding-left:var(--side);\n  padding-right:var(--side);\n}\n\n.pl-team-head{\n  display:grid;\n  grid-template-columns:minmax(150px,.34fr) minmax(430px,1.12fr) minmax(300px,.76fr);\n  gap:clamp(34px,5vw,92px);\n  align-items:start;\n}\n\n.pl-team-label{\n  padding-top:7px;\n  color:#3d4541;\n  font-size:10px;\n  line-height:1.42;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-team-label span{\n  display:block;\n  margin-bottom:7px;\n  color:#357d6c;\n}\n\n.pl-team h2{\n  margin:0;\n  max-width:730px;\n  color:#17191f;\n  font-size:clamp(40px,4.35vw,66px);\n  line-height:.98;\n  letter-spacing:-.052em;\n  font-weight:400;\n}\n\n.pl-team-copy{\n  max-width:390px;\n  margin:3px 0 0;\n  color:#686e6a;\n  font-size:14px;\n  line-height:1.65;\n}\n\n\/* DIRECTORY GROUPS *\/\n\n.pl-team-directory{\n  margin-top:clamp(58px,6vw,90px);\n  border-top:1px solid rgba(23,25,31,.14);\n}\n\n.pl-team-group{\n  display:grid;\n  grid-template-columns:minmax(180px,.28fr) minmax(0,1.72fr);\n  border-bottom:1px solid rgba(23,25,31,.14);\n}\n\n.pl-team-group-title{\n  padding:30px 30px 30px 0;\n  border-right:1px solid rgba(23,25,31,.14);\n}\n\n.pl-team-group-index{\n  display:flex;\n  align-items:center;\n  gap:10px;\n  margin-bottom:14px;\n  color:#357d6c;\n  font-size:8px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n}\n\n.pl-team-group-index::after{\n  content:\"\";\n  width:28px;\n  height:1px;\n  background:rgba(53,125,108,.38);\n}\n\n.pl-team-group-title h3{\n  margin:0;\n  color:#17191f;\n  font-size:clamp(24px,2.2vw,34px);\n  line-height:1;\n  letter-spacing:-.035em;\n  font-weight:400;\n}\n\n.pl-team-group-title p{\n  margin:12px 0 0;\n  max-width:190px;\n  color:#7a817d;\n  font-size:11px;\n  line-height:1.55;\n}\n\n\/* PEOPLE *\/\n\n.pl-team-people{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n}\n\n.pl-team-person{\n  position:relative;\n  min-width:0;\n  min-height:210px;\n  display:grid;\n  grid-template-columns:112px minmax(0,1fr);\n  gap:22px;\n  align-items:center;\n  padding:26px 28px;\n  border-right:1px solid rgba(23,25,31,.11);\n  border-bottom:1px solid rgba(23,25,31,.11);\n  transition:background .28s ease;\n}\n\n.pl-team-person:nth-child(2n){\n  border-right:0;\n}\n\n.pl-team-person:nth-last-child(-n+2){\n  border-bottom:0;\n}\n\n.pl-team-person:hover{\n  background:rgba(255,255,255,.44);\n}\n\n.pl-team-photo{\n  position:relative;\n  width:112px;\n  height:142px;\n  overflow:hidden;\n  background:#dddeda;\n}\n\n.pl-team-photo::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  box-shadow:inset 0 0 0 1px rgba(23,25,31,.06);\n  pointer-events:none;\n}\n\n.pl-team-photo img{\n  width:100%;\n  height:100%;\n  display:block;\n  object-fit:cover;\n  filter:saturate(.88);\n  transition:\n    transform .38s cubic-bezier(.2,.65,.25,1),\n    filter .3s ease;\n}\n\n.pl-team-person:hover .pl-team-photo img{\n  transform:scale(1.045);\n  filter:saturate(1);\n}\n\n.pl-team-person-info{\n  min-width:0;\n}\n\n.pl-team-person-info h4{\n  margin:0;\n  color:#17191f;\n  font-size:clamp(19px,1.6vw,24px);\n  line-height:1.03;\n  letter-spacing:-.03em;\n  font-weight:550;\n}\n\n.pl-team-role{\n  margin:7px 0 16px;\n  min-height:34px;\n  color:#727975;\n  font-size:11px;\n  line-height:1.45;\n}\n\n.pl-team-links{\n  display:grid;\n  gap:6px;\n}\n\n.pl-team-links a{\n  width:fit-content;\n  max-width:100%;\n  color:#357d6c !important;\n  text-decoration:none !important;\n  font-size:11px;\n  line-height:1.4;\n  word-break:break-word;\n  transition:color .2s ease;\n}\n\n.pl-team-links a:hover{\n  color:#17191f !important;\n}\n\n\/* WHOLESALE *\/\n\n.pl-team-wholesale{\n  grid-template-columns:1fr;\n}\n\n.pl-team-wholesale-card{\n  min-height:190px;\n  padding:30px 32px;\n  display:grid;\n  grid-template-columns:minmax(250px,.7fr) minmax(300px,1fr) auto;\n  gap:34px;\n  align-items:center;\n}\n\n.pl-team-wholesale-card h4{\n  margin:0;\n  color:#17191f;\n  font-size:clamp(26px,2.4vw,38px);\n  line-height:1;\n  letter-spacing:-.04em;\n  font-weight:400;\n}\n\n.pl-team-wholesale-card p{\n  margin:0;\n  max-width:470px;\n  color:#707773;\n  font-size:13px;\n  line-height:1.6;\n}\n\n.pl-team-wholesale-link{\n  display:inline-flex;\n  align-items:center;\n  gap:14px;\n  color:#357d6c !important;\n  text-decoration:none !important;\n  font-size:9px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n}\n\n.pl-team-wholesale-link::after{\n  content:\"\u2197\";\n  width:38px;\n  height:38px;\n  display:grid;\n  place-items:center;\n  border:1px solid rgba(23,25,31,.18);\n  border-radius:50%;\n  color:#17191f;\n  font-size:11px;\n  transition:\n    background .22s ease,\n    border-color .22s ease,\n    color .22s ease,\n    transform .22s ease;\n}\n\n.pl-team-wholesale-link:hover::after{\n  background:#55c2a8;\n  border-color:#55c2a8;\n  color:#fff;\n  transform:rotate(45deg);\n}\n\n.pl-team-note{\n  display:flex;\n  justify-content:space-between;\n  gap:30px;\n  margin-top:17px;\n  color:#7a817d;\n  font-size:9px;\n  line-height:1.4;\n  font-weight:700;\n  letter-spacing:.1em;\n  text-transform:uppercase;\n}\n\n@media(max-width:1100px){\n  .pl-team-head{\n    grid-template-columns:.36fr 1.25fr;\n  }\n\n  .pl-team-copy{\n    grid-column:2;\n    max-width:620px;\n  }\n\n  .pl-team-group{\n    grid-template-columns:1fr;\n  }\n\n  .pl-team-group-title{\n    border-right:0;\n    border-bottom:1px solid rgba(23,25,31,.11);\n    padding:26px 0 24px;\n  }\n\n  .pl-team-group-title p{\n    max-width:520px;\n  }\n}\n\n@media(max-width:780px){\n  .pl-team-people{\n    grid-template-columns:1fr;\n  }\n\n  .pl-team-person,\n  .pl-team-person:nth-child(2n),\n  .pl-team-person:nth-last-child(-n+2){\n    border-right:0;\n    border-bottom:1px solid rgba(23,25,31,.11);\n  }\n\n  .pl-team-person:last-child{\n    border-bottom:0;\n  }\n\n  .pl-team-wholesale-card{\n    grid-template-columns:1fr;\n    gap:18px;\n  }\n}\n\n@media(max-width:700px){\n  .pl-team{\n    padding:66px 0 76px;\n  }\n\n  .pl-team-head{\n    grid-template-columns:1fr;\n    gap:24px;\n  }\n\n  .pl-team-copy{\n    grid-column:auto;\n  }\n\n  .pl-team h2{\n    font-size:clamp(38px,11vw,52px);\n  }\n\n  .pl-team-directory{\n    margin-top:46px;\n  }\n\n  .pl-team-person{\n    grid-template-columns:88px minmax(0,1fr);\n    gap:17px;\n    padding:22px 0;\n  }\n\n  .pl-team-photo{\n    width:88px;\n    height:112px;\n  }\n\n  .pl-team-role{\n    min-height:0;\n    margin-bottom:12px;\n  }\n\n  .pl-team-wholesale-card{\n    padding:26px 0;\n  }\n\n  .pl-team-note{\n    flex-direction:column;\n    gap:5px;\n  }\n}\n\n\n\/* ZOHO CONSENT *\/\n.pl-zoho-consent{\n  margin-top:24px;\n  padding-top:22px;\n  border-top:1px solid rgba(255,255,255,.12);\n}\n\n.pl-zoho-consent label{\n  position:relative;\n  display:flex;\n  align-items:flex-start;\n  gap:12px;\n  cursor:pointer;\n}\n\n.pl-zoho-consent input{\n  position:absolute;\n  opacity:0;\n  pointer-events:none;\n}\n\n.pl-zoho-check{\n  position:relative;\n  width:19px;\n  height:19px;\n  flex:0 0 19px;\n  margin-top:1px;\n  border:1px solid rgba(255,255,255,.28);\n  background:rgba(255,255,255,.04);\n  transition:\n    background .2s ease,\n    border-color .2s ease,\n    box-shadow .2s ease;\n}\n\n.pl-zoho-check::after{\n  content:\"\";\n  position:absolute;\n  left:6px;\n  top:3px;\n  width:5px;\n  height:9px;\n  border-right:2px solid #0d1714;\n  border-bottom:2px solid #0d1714;\n  transform:rotate(45deg) scale(0);\n  transition:transform .18s ease;\n}\n\n.pl-zoho-consent input:checked + .pl-zoho-check{\n  background:#55c2a8;\n  border-color:#55c2a8;\n}\n\n.pl-zoho-consent input:checked + .pl-zoho-check::after{\n  transform:rotate(45deg) scale(1);\n}\n\n.pl-zoho-consent input:focus-visible + .pl-zoho-check{\n  border-color:#55c2a8;\n  box-shadow:0 0 0 3px rgba(85,194,168,.12);\n}\n\n.pl-zoho-consent-copy{\n  max-width:620px;\n  color:rgba(255,255,255,.52);\n  font-size:11px;\n  line-height:1.55;\n}\n\n.pl-zoho-consent label:hover .pl-zoho-consent-copy{\n  color:rgba(255,255,255,.70);\n}\n\n\n\n\n\/* ======================================================\n   MOBILE UX PASS \u2014 2026\n   Keeps the editorial desktop system, but changes the\n   interaction model and spacing for narrow screens.\n====================================================== *\/\n\nhtml,\nbody{\n  max-width:100%;\n  overflow-x:hidden;\n}\n\n@media(max-width:767px){\n\n  :root{\n    --side:18px;\n    --header-safe:86px;\n  }\n\n  body{\n    overflow-x:hidden;\n  }\n\n  \/* Shared mobile typography \/ rhythm *\/\n  .pl-about,\n  .pl-tech-carousel,\n  .pl-partners,\n  .pl-products,\n  .pl-brands,\n  .pl-solutions,\n  .pl-integrations,\n  .pl-responsibility,\n  .pl-contact,\n  .pl-team{\n    padding-top:64px;\n    padding-bottom:72px;\n  }\n\n  .pl-tech-top,\n  .pl-partners-head,\n  .pl-products-head,\n  .pl-brands-head,\n  .pl-solutions-head,\n  .pl-integrations-head,\n  .pl-responsibility-head,\n  .pl-contact-head,\n  .pl-team-head{\n    gap:18px;\n  }\n\n  .pl-tech-eyebrow,\n  .pl-partners-label,\n  .pl-products-label,\n  .pl-brands-label,\n  .pl-solutions-label,\n  .pl-integrations-label,\n  .pl-responsibility-label,\n  .pl-contact-label,\n  .pl-team-label,\n  .pl-about-label{\n    font-size:9px;\n    line-height:1.4;\n    letter-spacing:.12em;\n  }\n\n  .pl-tech-heading,\n  .pl-partners h2,\n  .pl-products h2,\n  .pl-brands h2,\n  .pl-solutions h2,\n  .pl-integrations h2,\n  .pl-responsibility h2,\n  .pl-contact h2,\n  .pl-team h2{\n    font-size:clamp(38px,10.8vw,48px);\n    line-height:.98;\n    letter-spacing:-.05em;\n  }\n\n  \/* Let mobile choose line breaks naturally. *\/\n  .pl-tech-heading br,\n  .pl-partners h2 br,\n  .pl-products h2 br,\n  .pl-solutions h2 br{\n    display:none;\n  }\n\n  \/* ====================================================\n     HERO\n  ==================================================== *\/\n\n  .pl-hero{\n    height:auto;\n    min-height:max(820px,100svh);\n    overflow:hidden;\n  }\n\n  .pl-hero-inner{\n    height:auto;\n    min-height:max(820px,100svh);\n    padding:\n      var(--header-safe)\n      var(--side)\n      30px;\n  }\n\n  .pl-hero-video video{\n    object-position:58% center;\n    transform:scale(1.035);\n  }\n\n  .pl-hero-overlay{\n    background:\n      linear-gradient(\n        180deg,\n        rgba(7,10,17,.64) 0%,\n        rgba(7,10,17,.38) 28%,\n        rgba(7,10,17,.58) 58%,\n        rgba(7,10,17,.94) 100%\n      ),\n      linear-gradient(\n        90deg,\n        rgba(7,10,17,.82) 0%,\n        rgba(7,10,17,.50) 72%,\n        rgba(7,10,17,.30) 100%\n      );\n  }\n\n  .pl-hero-copy{\n    width:100%;\n    padding-top:18px;\n  }\n\n  .pl-hero-kicker{\n    align-items:flex-start;\n    gap:9px;\n    max-width:340px;\n    margin-bottom:16px;\n    font-size:8.5px;\n    line-height:1.45;\n    letter-spacing:.12em;\n  }\n\n  .pl-hero-kicker::before{\n    width:22px;\n    flex:0 0 22px;\n    margin-top:5px;\n  }\n\n  .pl-hero h1{\n    max-width:520px;\n    font-size:clamp(41px,11.6vw,52px);\n    line-height:.96;\n    letter-spacing:-.055em;\n  }\n\n  .pl-hero h1 .line{\n    display:inline;\n  }\n\n  .pl-hero-actions{\n    margin-top:22px;\n    gap:8px;\n  }\n\n  .pl-btn{\n    min-height:48px;\n    padding-left:18px;\n    padding-right:18px;\n    font-size:11px;\n  }\n\n  .pl-hero-actions .pl-btn{\n    width:100%;\n  }\n\n  .pl-hero-bottom{\n    margin-top:44px;\n    gap:22px;\n  }\n\n  .pl-factory-detail{\n    min-height:0;\n    padding:0;\n    justify-content:flex-start;\n  }\n\n  .pl-factory-detail-top{\n    margin-bottom:9px;\n    font-size:9px;\n  }\n\n  .pl-factory-detail h2{\n    max-width:330px;\n    font-size:26px;\n    line-height:1;\n  }\n\n  .pl-factory-detail-tags{\n    max-width:100%;\n    margin-top:13px;\n    gap:6px;\n  }\n\n  .pl-factory-detail-tags span{\n    padding:7px 9px;\n    font-size:8.5px;\n  }\n\n  \/* Facilities become a swipeable strip instead of a tall stack. *\/\n  .pl-factory-grid{\n    display:flex;\n    gap:10px;\n    width:auto;\n    max-width:none;\n    margin-left:calc(var(--side) * -1);\n    margin-right:calc(var(--side) * -1);\n    padding:0 var(--side) 8px;\n    overflow-x:auto;\n    overflow-y:hidden;\n    scroll-snap-type:x mandatory;\n    scrollbar-width:none;\n    -webkit-overflow-scrolling:touch;\n  }\n\n  .pl-factory-grid::-webkit-scrollbar{\n    display:none;\n  }\n\n  .pl-factory{\n    flex:0 0 min(78vw,300px);\n    width:auto;\n    height:148px;\n    border-radius:10px;\n    scroll-snap-align:start;\n  }\n\n  .pl-factory-content{\n    left:14px;\n    right:14px;\n    bottom:14px;\n  }\n\n  .pl-factory-label{\n    margin-bottom:6px;\n    font-size:7.5px;\n  }\n\n  .pl-factory-label i{\n    width:24px;\n  }\n\n  .pl-factory strong{\n    font-size:18px;\n  }\n\n  .pl-factory-city{\n    margin-top:4px;\n    font-size:10px;\n  }\n\/* The side tab becomes a compact floating LinkedIn button. *\/\n  .pl-linkedin-badge{\n    top:auto;\n    right:14px;\n    bottom:16px;\n    width:44px;\n    height:44px;\n    transform:none;\n    border-radius:50%;\n    z-index:30;\n  }\n\n  .pl-linkedin-badge:hover{\n    width:44px;\n    transform:none;\n  }\n\n  .pl-linkedin-icon{\n    width:30px;\n    height:30px;\n    margin:auto;\n    font-size:16px;\n  }\n\n  .pl-linkedin-follow{\n    display:none;\n  }\n\n  \/* ====================================================\n     ABOUT\n  ==================================================== *\/\n\n  .pl-about-grid{\n    gap:22px;\n  }\n\n  .pl-about-copy h2{\n    font-size:clamp(30px,8vw,36px);\n    line-height:1.1;\n    letter-spacing:-.042em;\n  }\n\n  .pl-about-body{\n    margin-top:20px;\n    font-size:14px;\n    line-height:1.62;\n  }\n\n  .pl-about-actions{\n    margin-top:26px;\n    gap:8px;\n  }\n\n  .pl-about-actions .pl-btn{\n    width:100%;\n  }\n\n  .pl-about-stats{\n    grid-column:auto;\n    width:100%;\n    max-width:none;\n    margin-top:4px;\n  }\n\n  .pl-about-stat{\n    min-height:62px;\n    grid-template-columns:auto 1fr;\n    gap:18px;\n  }\n\n  .pl-about-stat strong{\n    font-size:22px;\n  }\n\n  \/* ====================================================\n     TECHNOLOGIES\n  ==================================================== *\/\n\n  .pl-tech-menu{\n    display:flex;\n    gap:22px;\n    width:auto;\n    margin:4px calc(var(--side) * -1) 0;\n    padding:0 var(--side) 10px;\n    overflow-x:auto;\n    overflow-y:hidden;\n    scrollbar-width:none;\n    -webkit-overflow-scrolling:touch;\n  }\n\n  .pl-tech-menu::-webkit-scrollbar{\n    display:none;\n  }\n\n  .pl-tech-menu li{\n    flex:0 0 auto;\n  }\n\n  .pl-tech-menu button{\n    width:auto;\n    padding:0 0 8px;\n    white-space:nowrap;\n    font-size:14px;\n    line-height:1.2;\n    letter-spacing:-.01em;\n    color:rgba(23,25,31,.42) !important;\n    transform:none !important;\n    border-bottom:1px solid transparent;\n  }\n\n  .pl-tech-menu button.is-active{\n    color:#17191f !important;\n    border-bottom-color:#17191f;\n  }\n\n  .pl-tech-main{\n    margin-top:34px;\n    gap:20px;\n  }\n\n  .pl-tech-info h3{\n    font-size:24px;\n  }\n\n  .pl-tech-info p{\n    margin-top:10px;\n    font-size:13px;\n    line-height:1.58;\n  }\n\n  .pl-tech-viewport{\n    margin-right:calc(var(--side) * -1);\n    border-radius:12px 0 0 12px;\n  }\n\n  .pl-tech-track{\n    gap:10px;\n    padding-right:var(--side);\n  }\n\n  .pl-tech-slide{\n    flex-basis:82vw;\n    max-width:340px;\n    height:300px;\n    border-radius:12px;\n  }\n\n  .pl-tech-controls{\n    justify-content:flex-end;\n    gap:9px;\n    margin-top:16px;\n  }\n\n  .pl-tech-arrow{\n    width:44px;\n    height:44px;\n  }\n\n  \/* ====================================================\n     PARTNERS\n  ==================================================== *\/\n\n  .pl-partners-row{\n    margin-top:40px;\n  }\n\n  .pl-partner{\n    min-height:100px;\n    padding:18px 12px;\n  }\n\n  .pl-partner img{\n    max-width:118px;\n    max-height:34px;\n  }\n\n  .pl-partner-konica img{\n    max-width:138px;\n  }\n\n  \/* ====================================================\n     PRODUCTS\n  ==================================================== *\/\n\n  .pl-products-grid{\n    margin-top:40px;\n    gap:8px;\n  }\n\n  .pl-product-card,\n  .pl-product-hoodies,\n  .pl-product-accessories,\n  .pl-product-sports,\n  .pl-product-home{\n    min-height:190px;\n    border-radius:10px;\n  }\n\n  .pl-product-tshirts{\n    grid-column:1 \/ -1;\n    min-height:270px;\n  }\n\n  .pl-product-posters{\n    grid-column:1 \/ -1;\n    min-height:205px;\n  }\n\n  .pl-product-content{\n    left:13px;\n    right:13px;\n    bottom:13px;\n  }\n\n  .pl-product-content h3{\n    font-size:18px;\n  }\n\n  .pl-product-catalog{\n    min-height:190px;\n    padding:22px;\n  }\n\n  .pl-product-catalog h3{\n    font-size:28px;\n  }\n\n  \/* ====================================================\n     BRAND MARQUEE\n  ==================================================== *\/\n\n  .pl-brands-marquee{\n    margin-top:40px;\n    margin-left:calc(var(--side) * -1);\n    margin-right:calc(var(--side) * -1);\n    padding:22px 0;\n  }\n\n  .pl-brands-marquee::before,\n  .pl-brands-marquee::after{\n    width:34px;\n  }\n\n  .pl-brands-set{\n    gap:34px;\n    padding-right:34px;\n  }\n\n  \/* ====================================================\n     SOLUTIONS\n  ==================================================== *\/\n\n  .pl-solutions-shell{\n    margin-top:40px;\n  }\n\n  .pl-solution{\n    padding:24px 18px;\n  }\n\n  .pl-solution-top{\n    min-height:0;\n  }\n\n  .pl-solution-index{\n    margin-bottom:15px;\n  }\n\n  .pl-solution h3{\n    font-size:32px;\n  }\n\n  .pl-solution-desc{\n    margin-top:18px;\n    font-size:12.5px;\n  }\n\n  .pl-solution-features{\n    margin-top:24px;\n  }\n\n  .pl-solution-features li{\n    padding-top:11px;\n    padding-bottom:11px;\n    font-size:11px;\n  }\n\n  .pl-solution-link{\n    min-height:50px;\n    padding-top:18px;\n  }\n\n  \/* ====================================================\n     INTEGRATIONS\n  ==================================================== *\/\n\n  .pl-integration-feature{\n    margin-top:40px;\n  }\n\n  .pl-integration-logo-panel{\n    min-height:160px;\n    padding:24px 18px;\n  }\n\n  .pl-integration-logo-panel img{\n    max-width:210px;\n    max-height:48px;\n  }\n\n  .pl-integration-body{\n    padding:24px 18px;\n  }\n\n  .pl-integration-body h3{\n    font-size:32px;\n  }\n\n  .pl-integration-body p{\n    margin-top:14px;\n    font-size:12.5px;\n  }\n\n  .pl-integration-bottom{\n    margin-top:28px;\n  }\n\n  .pl-integration-link{\n    width:100%;\n    min-height:46px;\n    justify-content:space-between;\n  }\n\n  \/* ====================================================\n     RESPONSIBILITY \/ SEDEX\n  ==================================================== *\/\n\n  .pl-audit{\n    margin-top:40px;\n  }\n\n  .pl-audit-brand{\n    min-height:190px;\n    padding:24px 18px;\n  }\n\n  .pl-audit-brand img{\n    max-width:230px;\n    max-height:92px;\n  }\n\n  .pl-audit-content{\n    padding:24px 18px;\n  }\n\n  .pl-audit-content h3{\n    font-size:32px;\n  }\n\n  .pl-audit-content p{\n    margin-top:14px;\n    font-size:12.5px;\n  }\n\n  .pl-audit-pillars{\n    margin-top:28px;\n  }\n\n  .pl-audit-pillar{\n    min-height:54px;\n  }\n\n  \/* ====================================================\n     CONTACT \/ DIRECT ZOHO FORM\n  ==================================================== *\/\n\n  .pl-contact-main{\n    margin-top:40px;\n  }\n\n  \/* Form comes first on mobile \u2014 faster path to conversion. *\/\n  .pl-contact-form{\n    order:1;\n    padding:24px 0 30px;\n    border-bottom:1px solid rgba(255,255,255,.13);\n  }\n\n  .pl-contact-details{\n    order:2;\n    border-top:0;\n    border-bottom:0 !important;\n  }\n\n  .pl-contact-form-top{\n    align-items:flex-start;\n    gap:8px;\n    padding-bottom:18px;\n  }\n\n  .pl-contact-form-top span{\n    font-size:8px;\n  }\n\n  .pl-contact-form-top small{\n    font-size:8px;\n    text-align:right;\n  }\n\n  .pl-zoho-form{\n    padding:24px 0 0;\n  }\n\n  .pl-zoho-grid{\n    gap:18px;\n  }\n\n  .pl-zoho-field label{\n    margin-bottom:8px;\n    font-size:8.5px;\n  }\n\n  .pl-zoho-field input,\n  .pl-zoho-field select{\n    height:50px;\n    padding-left:13px;\n    padding-right:13px;\n    font-size:14px;\n  }\n\n  .pl-zoho-field textarea{\n    min-height:140px;\n    padding:13px;\n    font-size:14px;\n  }\n\n  .pl-zoho-consent{\n    margin-top:20px;\n    padding-top:18px;\n  }\n\n  .pl-zoho-consent-copy{\n    font-size:10.5px;\n    line-height:1.5;\n  }\n\n  .pl-zoho-footer{\n    margin-top:20px;\n    padding-top:18px;\n    gap:14px;\n  }\n\n  .pl-zoho-submit{\n    width:100%;\n    min-height:52px;\n  }\n\n  .pl-contact-block{\n    padding:22px 0;\n  }\n\n  .pl-contact-block h3{\n    font-size:24px;\n  }\n\n  .pl-contact-block address{\n    font-size:12.5px;\n  }\n\n  .pl-contact-company-row{\n    grid-template-columns:70px minmax(0,1fr);\n    gap:12px;\n    font-size:11px;\n  }\n\n  .pl-contact-socials{\n    gap:14px 18px;\n  }\n\n  \/* ====================================================\n     DIRECT CONTACTS\n  ==================================================== *\/\n\n  .pl-team-directory{\n    margin-top:40px;\n  }\n\n  .pl-team-group-title{\n    padding:22px 0 18px;\n  }\n\n  .pl-team-group-title p{\n    margin-top:9px;\n    max-width:320px;\n  }\n\n  .pl-team-person{\n    min-height:0;\n    grid-template-columns:82px minmax(0,1fr);\n    gap:15px;\n    padding:20px 0;\n  }\n\n  .pl-team-photo{\n    width:82px;\n    height:106px;\n  }\n\n  .pl-team-person-info h4{\n    font-size:20px;\n  }\n\n  .pl-team-role{\n    margin:6px 0 10px;\n    font-size:10.5px;\n  }\n\n  .pl-team-links{\n    gap:4px;\n  }\n\n  .pl-team-links a{\n    font-size:10.5px;\n  }\n\n  .pl-team-wholesale-card{\n    min-height:0;\n    padding:24px 0;\n  }\n\n  .pl-team-wholesale-card h4{\n    font-size:28px;\n  }\n\n  .pl-team-wholesale-link{\n    width:100%;\n    justify-content:space-between;\n    gap:10px;\n    word-break:break-word;\n  }\n\n  \/* Notes are supportive, not primary, on small screens. *\/\n  .pl-partners-note,\n  .pl-products-note,\n  .pl-brands-note,\n  .pl-solutions-note,\n  .pl-integrations-note,\n  .pl-responsibility-note,\n  .pl-contact-note,\n  .pl-team-note{\n    margin-top:14px;\n    font-size:8px;\n    line-height:1.45;\n  }\n}\n\n\n\/* Extra-small phones *\/\n@media(max-width:390px){\n\n  :root{\n    --side:16px;\n  }\n\n  .pl-hero h1{\n    font-size:clamp(39px,11.2vw,44px);\n  }\n\n  .pl-factory{\n    flex-basis:82vw;\n  }\n\n  .pl-tech-slide{\n    flex-basis:84vw;\n    height:280px;\n  }\n\n  .pl-products-grid{\n    gap:7px;\n  }\n\n  .pl-product-card,\n  .pl-product-hoodies,\n  .pl-product-accessories,\n  .pl-product-sports,\n  .pl-product-home{\n    min-height:176px;\n  }\n\n  .pl-product-content h3{\n    font-size:16px;\n  }\n\n  .pl-team-person{\n    grid-template-columns:74px minmax(0,1fr);\n    gap:13px;\n  }\n\n  .pl-team-photo{\n    width:74px;\n    height:96px;\n  }\n\n  .pl-team-person-info h4{\n    font-size:18px;\n  }\n\n  .pl-team-links a{\n    font-size:10px;\n  }\n}\n\n\n\/* Touch devices should not inherit desktop lift \/ perspective states. *\/\n@media(hover:none){\n  .pl-factory:hover,\n  .pl-product-card:hover,\n  .pl-solution:hover,\n  .pl-partner:hover,\n  .pl-integration-feature:hover{\n    transform:none;\n  }\n}\n\n\n\n\/* WordPress \/ Elementor conflict fix \u2014 hero CTA text *\/\n.pl-hero .pl-btn,\n.pl-hero .pl-btn:visited,\n.pl-hero .pl-btn:hover,\n.pl-hero .pl-btn:focus,\n.pl-hero .pl-btn:active{\n  color:#fff !important;\n}\n\n.pl-hero .pl-btn-primary,\n.pl-hero .pl-btn-primary:visited,\n.pl-hero .pl-btn-primary:hover,\n.pl-hero .pl-btn-primary:focus,\n.pl-hero .pl-btn-primary:active{\n  color:#fff !important;\n}\n\n.pl-hero .pl-btn-secondary,\n.pl-hero .pl-btn-secondary:visited,\n.pl-hero .pl-btn-secondary:hover,\n.pl-hero .pl-btn-secondary:focus,\n.pl-hero .pl-btn-secondary:active{\n  color:#fff !important;\n}\n\n\n\n\/* WordPress \/ Elementor conflict fix \u2014 technology carousel arrows *\/\n.pl-tech-controls .pl-tech-arrow,\n.pl-tech-controls .pl-tech-arrow:visited,\n.pl-tech-controls .pl-tech-arrow:hover,\n.pl-tech-controls .pl-tech-arrow:focus,\n.pl-tech-controls .pl-tech-arrow:active{\n  -webkit-appearance:none !important;\n  appearance:none !important;\n\n  width:64px !important;\n  height:64px !important;\n  min-width:64px !important;\n  min-height:64px !important;\n\n  margin:0 !important;\n  padding:0 !important;\n\n  display:grid !important;\n  place-items:center !important;\n\n  border:1px solid rgba(23,25,31,.72) !important;\n  border-radius:50% !important;\n\n  background:transparent !important;\n  background-image:none !important;\n\n  color:#17191f !important;\n  box-shadow:none !important;\n  text-shadow:none !important;\n\n  font-size:0 !important;\n  line-height:1 !important;\n\n  cursor:pointer;\n}\n\n.pl-tech-controls .pl-tech-arrow::before{\n  display:block;\n  color:#17191f;\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:23px;\n  font-weight:400;\n  line-height:1;\n  transform:translateY(-1px);\n}\n\n.pl-tech-controls #tech-prev::before{\n  content:\"\u2039\";\n}\n\n.pl-tech-controls #tech-next::before{\n  content:\"\u203a\";\n}\n\n.pl-tech-controls .pl-tech-arrow:hover{\n  background:#17191f !important;\n  border-color:#17191f !important;\n  color:#fff !important;\n  transform:translateY(-2px);\n}\n\n.pl-tech-controls .pl-tech-arrow:hover::before{\n  color:#fff !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:focus-visible{\n  outline:2px solid #55c2a8 !important;\n  outline-offset:3px !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:disabled,\n.pl-tech-controls .pl-tech-arrow:disabled:hover{\n  opacity:.28 !important;\n  background:transparent !important;\n  border-color:rgba(23,25,31,.72) !important;\n  transform:none !important;\n  cursor:default !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:disabled::before{\n  color:#17191f !important;\n}\n\n@media(max-width:767px){\n  .pl-tech-controls .pl-tech-arrow,\n  .pl-tech-controls .pl-tech-arrow:visited,\n  .pl-tech-controls .pl-tech-arrow:hover,\n  .pl-tech-controls .pl-tech-arrow:focus,\n  .pl-tech-controls .pl-tech-arrow:active{\n    width:54px !important;\n    height:54px !important;\n    min-width:54px !important;\n    min-height:54px !important;\n  }\n}\n\n\n\n\/* WordPress \/ Elementor conflict fix \u2014 technology text menu *\/\n.pl-tech-menu button,\n.pl-tech-menu button:visited,\n.pl-tech-menu button:hover,\n.pl-tech-menu button:focus,\n.pl-tech-menu button:active{\n  -webkit-appearance:none !important;\n  appearance:none !important;\n\n  background:transparent !important;\n  background-color:transparent !important;\n  background-image:none !important;\n\n  border:0 !important;\n  border-radius:0 !important;\n\n  box-shadow:none !important;\n  text-shadow:none !important;\n\n  outline:none;\n}\n\n.pl-tech-menu button:hover{\n  background:transparent !important;\n  color:#17191f !important;\n}\n\n.pl-tech-menu button.is-active,\n.pl-tech-menu button.is-active:hover,\n.pl-tech-menu button.is-active:focus,\n.pl-tech-menu button.is-active:active{\n  background:transparent !important;\n  background-color:transparent !important;\n  border:0 !important;\n  box-shadow:none !important;\n  color:#17191f !important;\n}\n\n.pl-tech-menu button:focus-visible{\n  outline:1px solid rgba(23,25,31,.35) !important;\n  outline-offset:5px !important;\n}\n\n\n\n\/* Fine-tune technology carousel arrows \u2014 geometric chevrons *\/\n.pl-tech-controls{\n  align-items:center !important;\n  gap:14px !important;\n}\n\n.pl-tech-controls .pl-tech-arrow,\n.pl-tech-controls .pl-tech-arrow:visited,\n.pl-tech-controls .pl-tech-arrow:hover,\n.pl-tech-controls .pl-tech-arrow:focus,\n.pl-tech-controls .pl-tech-arrow:active{\n  box-sizing:border-box !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  flex:0 0 64px !important;\n  vertical-align:middle !important;\n}\n\n.pl-tech-controls .pl-tech-arrow::before{\n  content:\"\" !important;\n  width:8px !important;\n  height:8px !important;\n  display:block !important;\n  box-sizing:border-box !important;\n  border-top:1.5px solid currentColor !important;\n  border-right:1.5px solid currentColor !important;\n  font-size:0 !important;\n  line-height:0 !important;\n}\n\n.pl-tech-controls #tech-prev::before{\n  transform:translateX(2px) rotate(-135deg) !important;\n}\n\n.pl-tech-controls #tech-next::before{\n  transform:translateX(-2px) rotate(45deg) !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:hover{\n  transform:none !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:hover::before{\n  border-color:#fff !important;\n}\n\n.pl-tech-controls .pl-tech-arrow:disabled::before{\n  border-color:#17191f !important;\n}\n\n@media(max-width:767px){\n  .pl-tech-controls .pl-tech-arrow,\n  .pl-tech-controls .pl-tech-arrow:visited,\n  .pl-tech-controls .pl-tech-arrow:hover,\n  .pl-tech-controls .pl-tech-arrow:focus,\n  .pl-tech-controls .pl-tech-arrow:active{\n    flex-basis:54px !important;\n  }\n}\n\n\n\n\/* WordPress \/ Elementor conflict fix \u2014 hero H1 weight *\/\n.pl-hero h1,\n.pl-hero h1 *,\n.pl-hero h1 .line{\n  font-weight:400 !important;\n  font-synthesis:none;\n}\n\n\n\n\/* Anchor offset for sticky WordPress header *\/\n#About-Us,\n#Technology,\n#Products,\n#Solutions,\n#Contact{\n  scroll-margin-top:110px;\n}\n\n@media(max-width:767px){\n  #About-Us,\n  #Technology,\n  #Products,\n  #Solutions,\n  #Contact{\n    scroll-margin-top:84px;\n  }\n}\n\n\n\n\/* WordPress \/ Elementor conflict fix \u2014 About section CTA text *\/\n.pl-about .pl-btn,\n.pl-about .pl-btn:visited,\n.pl-about .pl-btn:hover,\n.pl-about .pl-btn:focus,\n.pl-about .pl-btn:active,\n.pl-about a.pl-btn,\n.pl-about a.pl-btn:visited,\n.pl-about a.pl-btn:hover,\n.pl-about a.pl-btn:focus,\n.pl-about a.pl-btn:active{\n  color:#fff !important;\n}\n\n.pl-about .pl-btn *,\n.pl-about .pl-btn:hover *,\n.pl-about .pl-btn:focus *,\n.pl-about .pl-btn:active *{\n  color:#fff !important;\n}\n\n\n\n\/* ======================================================\n   V84 \u2014 LOCATION SUBPAGE LINKS IN HERO\n   ====================================================== *\/\n\n.pl-factory-detail-link,\n.pl-factory-detail-link:visited,\n.pl-factory-detail-link:hover,\n.pl-factory-detail-link:focus{\n  width:max-content;\n  margin-top:12px;\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  color:#a9ead9 !important;\n  background:transparent !important;\n  text-decoration:none !important;\n  font-size:10px;\n  line-height:1;\n  font-weight:850;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n}\n\n.pl-factory-detail-link::after{\n  content:\"\";\n  width:30px;\n  height:1px;\n  background:rgba(169,234,217,.62);\n  transition:width .22s ease, background .22s ease;\n}\n\n.pl-factory-detail-link:hover{\n  color:#ffffff !important;\n}\n\n.pl-factory-detail-link:hover::after{\n  width:42px;\n  background:#55c2a8;\n}\n\n@media(max-width:760px){\n  .pl-factory-detail-link,\n  .pl-factory-detail-link:visited,\n  .pl-factory-detail-link:hover,\n  .pl-factory-detail-link:focus{\n    margin-top:11px;\n    font-size:9px;\n  }\n\n  .pl-factory-detail-link::after{\n    width:24px;\n  }\n}\n\n\n\n\/* ======================================================\n   V85 \u2014 SMALL LOCATION CTA BELOW TECHNOLOGIES\n   + CLICKABLE LOCATION CARDS\n   ====================================================== *\/\n\n.pl-factory-detail-link,\n.pl-factory-detail-link:visited,\n.pl-factory-detail-link:hover,\n.pl-factory-detail-link:focus,\n.pl-factory-detail-link:active{\n  width:max-content !important;\n  margin-top:13px !important;\n  padding:0 !important;\n  display:inline-flex !important;\n  align-items:center !important;\n  gap:7px !important;\n  color:#a9ead9 !important;\n  background:transparent !important;\n  border:0 !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n  text-decoration:none !important;\n  font-size:8px !important;\n  line-height:1 !important;\n  font-weight:850 !important;\n  letter-spacing:.13em !important;\n  text-transform:uppercase !important;\n}\n\n.pl-factory-detail-link::after{\n  content:\"\" !important;\n  width:22px !important;\n  height:1px !important;\n  background:rgba(169,234,217,.58) !important;\n  transition:width .22s ease,background .22s ease !important;\n}\n\n.pl-factory-detail-link:hover{\n  color:#fff !important;\n}\n\n.pl-factory-detail-link:hover::after{\n  width:30px !important;\n  background:#55c2a8 !important;\n}\n\na.pl-factory,\na.pl-factory:visited,\na.pl-factory:hover,\na.pl-factory:focus,\na.pl-factory:active{\n  color:#fff !important;\n  text-decoration:none !important;\n}\n\n@media(max-width:760px){\n  .pl-factory-detail-link,\n  .pl-factory-detail-link:visited,\n  .pl-factory-detail-link:hover,\n  .pl-factory-detail-link:focus,\n  .pl-factory-detail-link:active{\n    margin-top:11px !important;\n    font-size:7.5px !important;\n  }\n}\n\n\n\n\/* ======================================================\n   V86 \u2014 SQUARE CTA BUTTONS\n   Match location subpages\n   ====================================================== *\/\n\n.pl-btn,\n.pl-btn:visited,\n.pl-btn:hover,\n.pl-btn:focus,\n.pl-btn:active{\n  border-radius:0 !important;\n}\n\n<\/style>\n<\/head>\n\n<body>\n\n<section class=\"pl-hero\" aria-label=\"Print Logistic manufacturing, printing and fulfillment\">\n\n  <div class=\"pl-hero-video\">\n    <video\n      autoplay\n muted\n loop\n playsinline\n preload=\"metadata\"\n      poster=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/10_PrintLogic_foto.jpg\"\n      aria-hidden=\"true\">\n      <source\n        src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/05\/Print-Logistic-Hero-Video.mp4\"\n        type=\"video\/mp4\">\n    <\/video>\n  <\/div>\n\n  <div class=\"pl-hero-overlay\"><\/div>\n  <div class=\"pl-hero-grade\"><\/div>\n  <div class=\"pl-hero-grain\"><\/div>\n\n  <a\n    class=\"pl-linkedin-badge\"\n    href=\"https:\/\/www.linkedin.com\/company\/18908951\/\"\n    target=\"_blank\"\n    rel=\"noopener\"\n    aria-label=\"Follow Print Logistic on LinkedIn\">\n    <span class=\"pl-linkedin-icon\">in<\/span>\n    <span class=\"pl-linkedin-follow\">Follow<\/span>\n  <\/a>\n\n  <div class=\"pl-hero-inner\">\n\n    <div class=\"pl-hero-copy\" data-reveal>\n\n      <div class=\"pl-hero-kicker\">\n        In-house print on demand\n      <\/div>\n\n      <h1>\n        <span class=\"line\">Manufacturing, printing and fulfillment,<\/span>\n        <span class=\"line\">closer to your market.<\/span>\n      <\/h1>\n\n      <div class=\"pl-hero-actions\">\n        <a class=\"pl-btn pl-btn-primary\" href=\"#Technology\">\n          Explore our capabilities \u2197\n        <\/a>\n\n        <a class=\"pl-btn pl-btn-secondary\" href=\"#Contact\">\n          Let\u2019s talk \u2192\n        <\/a>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"pl-hero-bottom\" data-reveal data-delay=\"1\">\n\n      <aside class=\"pl-factory-detail\" aria-live=\"polite\">\n        <div class=\"pl-factory-detail-top\" id=\"factory-location\">\n          Poland \/ \u0141\u00f3d\u017a\n        <\/div>\n\n        <h2 id=\"factory-title\">\n          Full-scale production under one roof.\n        <\/h2>\n\n        <div class=\"pl-factory-detail-tags\" id=\"factory-tags\">\n          <span>AOP<\/span>\n          <span>Cut &amp; Sew<\/span>\n          <span>DTG<\/span>\n          <span>DTF<\/span>\n          <span>Embroidery<\/span>\n          <span>Sublimation<\/span>\n        <\/div>\n\n        <a\n          class=\"pl-factory-detail-link\"\n          id=\"factory-link\"\n          href=\"https:\/\/printlogistic.eu\/pl\/print-logistic-poland\/\"\n          aria-label=\"Learn more about Print Logistic Poland\">\n          Learn more \u2197\n        <\/a>\n      <\/aside>\n\n      <div class=\"pl-factory-grid\" role=\"navigation\" aria-label=\"Print Logistic production facilities\">\n\n        <a\n          class=\"pl-factory is-active\"\n          href=\"https:\/\/printlogistic.eu\/pl\/print-logistic-poland\/\"\n          aria-current=\"true\"\n          aria-label=\"Print Logistic Poland \u2014 \u0141\u00f3d\u017a production facility\"\n          data-factory=\"poland\">\n\n          <img decoding=\"async\"\n            src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/09\/Print-on-demand-Poland-Print-Logistic.png\"\n            alt=\"Print Logistic production facility in \u0141\u00f3d\u017a, Poland\">\n\n          <span class=\"pl-factory-content\">\n            <span class=\"pl-factory-label\">\n              01 \/ Poland facility\n              <i><\/i>\n            <\/span>\n\n            <strong> Poland<\/strong>\n            <span class=\"pl-factory-city\">\u0141\u00f3d\u017a<\/span>\n          <\/span>\n        <\/a>\n\n        <a\n          class=\"pl-factory\"\n          href=\"https:\/\/printlogistic.eu\/pl\/print-logistic-usa\/\"\n          aria-label=\"Print Logistic USA \u2014 Carrollton, Texas production facility\"\n          data-factory=\"usa\">\n\n          <img decoding=\"async\"\n            src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/03\/Print-Logistic-Dallas.png\"\n            alt=\"Print Logistic production in Carrollton, Texas\">\n\n          <span class=\"pl-factory-content\">\n            <span class=\"pl-factory-label\">\n              02 \/ U.S. facility\n              <i><\/i>\n            <\/span>\n\n            <strong> United States<\/strong>\n            <span class=\"pl-factory-city\">Carrollton, TX<\/span>\n          <\/span>\n        <\/a>\n\n        <a\n          class=\"pl-factory\"\n          href=\"https:\/\/printlogistic.eu\/pl\/print-logistic-uk\/\"\n          aria-label=\"Print Logistic UK \u2014 Plymouth production facility\"\n          data-factory=\"uk\">\n\n          <img decoding=\"async\"\n            src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/09\/Print-on-demand-UK-Print_logistic.png\"\n            alt=\"Print Logistic production in Plymouth, United Kingdom\">\n\n          <span class=\"pl-factory-content\">\n            <span class=\"pl-factory-label\">\n              03 \/ UK facility\n              <i><\/i>\n            <\/span>\n\n            <strong> United Kingdom<\/strong>\n            <span class=\"pl-factory-city\">Plymouth<\/span>\n          <\/span>\n        <\/a>\n\n      <\/div>\n\n      \n\n    <\/div>\n\n  <\/div>\n\n\n<\/section>\n\n\n<script>\n(function(){\n  const factoryData = {\n    poland: {\n      location: 'Poland \/ \u0141\u00f3d\u017a',\n      title: 'Full-scale production under one roof.',\n      url: 'https:\/\/printlogistic.eu\/print-logistic-poland\/',\n      ariaLabel: 'Learn more about Print Logistic Poland',\n      tags: ['AOP','Cut & Sew','DTG','DTF','Embroidery','Sublimation']\n    },\n    usa: {\n      location: 'United States \/ Carrollton, TX',\n      title: 'Built for speed and flexibility.',\n      url: 'https:\/\/printlogistic.eu\/print-logistic-usa\/',\n      ariaLabel: 'Learn more about Print Logistic USA',\n      tags: ['DTG','DTF','Stocked POD','JIT sourcing','Fulfillment']\n    },\n    uk: {\n      location: 'United Kingdom \/ Plymouth',\n      title: 'Custom products beyond apparel.',\n      url: 'https:\/\/printlogistic.eu\/print-logistic-uk\/',\n      ariaLabel: 'Learn more about Print Logistic UK',\n      tags: ['Apparel','Homeware','Hard goods','3D','CNC','Contract printing']\n    }\n  };\n\n  const cards = [...document.querySelectorAll('[data-factory]')];\n  const location = document.getElementById('factory-location');\n  const title = document.getElementById('factory-title');\n  const link = document.getElementById('factory-link');\n  const tags = document.getElementById('factory-tags');\n\n  function activateFactory(key){\n    const data = factoryData[key];\n    if(!data) return;\n\n    cards.forEach(card => {\n      const active = card.dataset.factory === key;\n      card.classList.toggle('is-active', active);\n      if(active){\n        card.setAttribute('aria-current', 'true');\n      }else{\n        card.removeAttribute('aria-current');\n      }\n    });\n\n    location.textContent = data.location;\n    title.textContent = data.title;\n    link.href = data.url;\n    link.setAttribute('aria-label', data.ariaLabel);\n    tags.innerHTML = data.tags.map(tag => `<span>${tag}<\/span>`).join('');\n  }\n\n  cards.forEach(card => {\n    card.addEventListener('mouseenter', () => activateFactory(card.dataset.factory));\n    card.addEventListener('focus', () => activateFactory(card.dataset.factory));\n    card.addEventListener('click', () => activateFactory(card.dataset.factory));\n  });\n\n  activateFactory('poland');\n})();\n<\/script>\n\n\n\n<section class=\"pl-about\" aria-label=\"About Print Logistic\" id=\"About-Us\">\n  <div class=\"pl-wrap\">\n    <div class=\"pl-about-grid\">\n      <div class=\"pl-about-label\" data-reveal=\"left\">\n        <span>(01)<\/span>\n        ABOUT PRINT LOGISTIC\n      <\/div>\n\n      <div class=\"pl-about-copy\" data-reveal data-delay=\"1\">\n        <h2>\n          We help global brands and retailers scale\n          <strong>on-demand production<\/strong> through strategically located,\n          <strong>factory-owned facilities<\/strong> across Europe and the United States.\n        <\/h2>\n\n        <p class=\"pl-about-body\">\n          Print Logistic brings custom product manufacturing, print technology and fulfillment\n          together under one production partner, helping brands simplify operations, maintain\n          consistent quality and scale with greater control.\n        <\/p>\n\n        <div class=\"pl-about-actions\">\n          <a class=\"pl-btn pl-btn-primary\" href=\"#Contact\">Let\u2019s talk<\/a>\n          <a class=\"pl-btn pl-btn-secondary\" href=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/05\/Print-Logistic-Hero-Video.mp4\" target=\"_blank\" rel=\"noopener\">Watch video \u2197<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"pl-about-stats\" aria-label=\"Key company stats\" data-reveal=\"right\" data-delay=\"2\">\n        <div class=\"pl-about-stat\">\n          <strong class=\"pl-count\" data-target=\"20000\" data-suffix=\"\">0<\/strong>\n          <span>Products produced daily<\/span>\n        <\/div>\n        <div class=\"pl-about-stat\">\n          <strong class=\"pl-count\" data-target=\"200\" data-suffix=\"+\">0<\/strong>\n          <span>Products<\/span>\n        <\/div>\n        <div class=\"pl-about-stat\">\n          <strong class=\"pl-count\" data-target=\"3\" data-suffix=\"\">0<\/strong>\n          <span>Factories<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<script>\n(function(){\n  const items = [...document.querySelectorAll('[data-reveal]')];\n\n  if(!items.length) return;\n\n  if('IntersectionObserver' in window){\n    const observer = new IntersectionObserver((entries)=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          entry.target.classList.add('is-visible');\n          observer.unobserve(entry.target);\n        }\n      });\n    },{\n      threshold:.12,\n      rootMargin:'0px 0px -6% 0px'\n    });\n\n    items.forEach(item=>observer.observe(item));\n  } else {\n    items.forEach(item=>item.classList.add('is-visible'));\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const counts = [...document.querySelectorAll('.pl-count')];\n  const statsWrap = document.querySelector('.pl-about-stats');\n  if(!counts.length || !statsWrap) return;\n\n  function animateCount(el){\n    const target = Number(el.dataset.target || 0);\n    const suffix = el.dataset.suffix || '';\n    const duration = 1350;\n    const start = performance.now();\n\n    function frame(now){\n      const progress = Math.min((now - start) \/ duration, 1);\n      const eased = 1 - Math.pow(1 - progress, 3);\n      const value = Math.round(target * eased);\n      el.textContent = value + suffix;\n\n      if(progress < 1){\n        requestAnimationFrame(frame);\n      } else {\n        el.textContent = target + suffix;\n      }\n    }\n\n    requestAnimationFrame(frame);\n  }\n\n  function startCounts(){\n    counts.forEach(el => {\n      if(el.dataset.played === 'true') return;\n      el.dataset.played = 'true';\n      animateCount(el);\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io = new IntersectionObserver((entries)=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          startCounts();\n          io.unobserve(entry.target);\n        }\n      });\n    }, {\n      threshold: 0.35\n    });\n\n    io.observe(statsWrap);\n  } else {\n    startCounts();\n  }\n})();\n<\/script>\n\n\n<section class=\"pl-tech-carousel\" aria-label=\"Print Logistic customization technologies\" id=\"Technology\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-tech-top\">\n      <div class=\"pl-tech-eyebrow\" data-reveal=\"left\">\n        <span>(02)<\/span>\n        OUR CUSTOMIZATION TECHNOLOGIES\n      <\/div>\n\n      <h2 class=\"pl-tech-heading\" data-reveal data-delay=\"1\">\n        The right production<br>\n        method for every product.\n      <\/h2>\n\n      <ul class=\"pl-tech-menu\" data-reveal=\"right\" data-delay=\"2\">\n        <li><button class=\"is-active\" type=\"button\" data-tech-index=\"0\">All-Over Print<\/button><\/li>\n        <li><button type=\"button\" data-tech-index=\"1\">Direct-to-Garment<\/button><\/li>\n        <li><button type=\"button\" data-tech-index=\"2\">Direct-to-Film<\/button><\/li>\n        <li><button type=\"button\" data-tech-index=\"3\">Dye Sublimation<\/button><\/li>\n        <li><button type=\"button\" data-tech-index=\"4\">Digital Embroidery<\/button><\/li>\n        <li><button type=\"button\" data-tech-index=\"5\">Digital Production Printing<\/button><\/li>\n      <\/ul>\n    <\/div>\n\n    <div class=\"pl-tech-main\">\n\n      <div class=\"pl-tech-info\" data-reveal=\"left\">\n        <h3 id=\"tech-active-title\">All-Over Print<\/h3>\n        <p id=\"tech-active-copy\">\n          Fabric-first printing for full-surface designs, followed by cut-and-sew production for custom garments and textile products.\n        <\/p>\n      <\/div>\n\n      <div class=\"pl-tech-stage\" data-reveal data-delay=\"1\">\n        <div class=\"pl-tech-viewport\">\n          <div class=\"pl-tech-track\" id=\"tech-track\">\n\n            <article class=\"pl-tech-slide is-active\" data-slide=\"0\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg\" alt=\"All-Over Print production\">\n            <\/article>\n\n            <article class=\"pl-tech-slide\" data-slide=\"1\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/09\/01_PrintLogic_foto.jpg\" alt=\"Direct-to-Garment printing\">\n            <\/article>\n\n            <article class=\"pl-tech-slide\" data-slide=\"2\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/03\/DTF-Technology-Print-Logistic.jpg\" alt=\"Direct-to-Film printing\">\n            <\/article>\n\n            <article class=\"pl-tech-slide\" data-slide=\"3\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/Print_Logistic_print_on_demand_sublimation.png\" alt=\"Dye sublimation production\">\n            <\/article>\n\n            <article class=\"pl-tech-slide\" data-slide=\"4\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/Print_Logistic_print_on_demand_digital_embroidery_coloreel.png\" alt=\"Digital embroidery production\">\n            <\/article>\n\n            <article class=\"pl-tech-slide\" data-slide=\"5\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/08\/konica_minolta.png\" alt=\"Digital production printing\">\n            <\/article>\n\n          <\/div>\n        <\/div>\n\n        <div class=\"pl-tech-controls\">\n          <button class=\"pl-tech-arrow\" id=\"tech-prev\" type=\"button\" aria-label=\"Previous technology\">\u2039<\/button>\n          <button class=\"pl-tech-arrow\" id=\"tech-next\" type=\"button\" aria-label=\"Next technology\">\u203a<\/button>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<section class=\"pl-partners\" aria-label=\"Technology partners\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-partners-head\">\n      <div class=\"pl-partners-label\" data-partners-reveal=\"left\">\n        <span>(03)<\/span>\n        TECHNOLOGY PARTNERS\n      <\/div>\n\n      <h2 data-partners-reveal data-partners-delay=\"1\">\n        Powered by trusted<br>\n        production systems.\n      <\/h2>\n\n      <p class=\"pl-partners-copy\" data-partners-reveal=\"right\" data-partners-delay=\"2\">\n        Our factory infrastructure is supported by proven technology partners\n        that help deliver precision, consistency and scalable output across\n        production workflows.\n      <\/p>\n    <\/div>\n\n    <div class=\"pl-partners-row\" data-partners-reveal data-partners-delay=\"1\">\n\n      <div class=\"pl-partner\" data-logo-delay=\"0\">\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/kornit-digital.svg\"\n          alt=\"Kornit Digital logo\"\n          loading=\"lazy\">\n      <\/div>\n\n      <div class=\"pl-partner\" data-logo-delay=\"1\">\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/Mimaki_Logo-1.svg\"\n          alt=\"Mimaki logo\"\n          loading=\"lazy\">\n      <\/div>\n\n      <div class=\"pl-partner\" data-logo-delay=\"2\">\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/zund_retina-1.svg\"\n          alt=\"Z\u00fcnd logo\"\n          loading=\"lazy\">\n      <\/div>\n\n      <div class=\"pl-partner\" data-logo-delay=\"3\">\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/05\/Coloreel-Logotype-1.svg\"\n          alt=\"Coloreel logo\"\n          loading=\"lazy\">\n      <\/div>\n\n      <div class=\"pl-partner pl-partner-konica\" data-logo-delay=\"4\">\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/08\/Logo_Konica_Minolta.svg\"\n          alt=\"Konica Minolta logo\"\n          loading=\"lazy\">\n      <\/div>\n\n    <\/div>\n\n    <div class=\"pl-partners-note\">\n      <span>Technology selected around product and process requirements<\/span>\n      <span>In-house production infrastructure<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-products\" aria-label=\"Product selection\" id=\"Products\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-products-head\">\n      <div class=\"pl-products-label\" data-products-reveal=\"left\">\n        <span>(04)<\/span>\n        OUR PRODUCT SELECTION\n      <\/div>\n\n      <h2 data-products-reveal data-products-delay=\"1\">\n        Scalable product categories<br>\n        for modern brands.\n      <\/h2>\n\n      <p class=\"pl-products-copy\" data-products-reveal=\"right\" data-products-delay=\"2\">\n        Explore customizable apparel, accessories, home textiles and printed products\n        built for scalable e-commerce and fulfillment workflows across Europe and the United States.\n      <\/p>\n    <\/div>\n\n    <div class=\"pl-products-grid\">\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-tshirts\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/06\/Print-Logistic-product-category-t-shirts.jpg\" alt=\"Custom printed t-shirts\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">01 \/ Apparel<\/div>\n          <h3>T-shirts<\/h3>\n          <p>Bestseller blanks ready for DTG, DTF and branded decoration workflows.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-hoodies\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/06\/all-over-print-hoodie-cotton-print-logistic.jpg\" alt=\"Custom printed hoodies\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">02 \/ Apparel<\/div>\n          <h3>Hoodies<\/h3>\n          <p>Everyday and premium styles for scalable e-commerce collections.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-accessories\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/06\/totebag-printlogistic-accessories.jpg\" alt=\"Custom printed accessories\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">03 \/ Merch<\/div>\n          <h3>Akcesoria<\/h3>\n          <p>Custom everyday products for merch, campaigns and branded add-ons.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-sports\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/sportswear-print-on-demand-europe.jpg\" alt=\"Custom printed sportswear\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">04 \/ Performance<\/div>\n          <h3>Odzie\u017c sportowa<\/h3>\n          <p>Performance products supporting sublimation and AOP workflows.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-home\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/23.jpg\" alt=\"Custom printed home textiles\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">05 \/ Home<\/div>\n          <h3>Home textiles<\/h3>\n          <p>Soft goods and interior products for personalized home collections.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-posters\" data-product-card>\n        <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/posters-print-on-demand-europe-print-logistic.jpg\" alt=\"Custom printed posters\">\n        <div class=\"pl-product-content\">\n          <div class=\"pl-product-index\">06 \/ Print<\/div>\n          <h3>Posters<\/h3>\n          <p>Wall art and poster production for creators, stores and campaigns.<\/p>\n        <\/div>\n      <\/a>\n\n      <a href=\"https:\/\/printlogistic.eu\/pl\/product-catalog\/\" target=\"_blank\" rel=\"noopener noreferrer\"\n         class=\"pl-product-card pl-product-catalog\" data-product-card>\n        <div class=\"pl-product-catalog-inner\">\n          <div>\n            <small>Full product catalog<\/small>\n            <h3>Choose from 200+ customizable products.<\/h3>\n          <\/div>\n          <span class=\"pl-product-catalog-cta\">\u2197<\/span>\n        <\/div>\n      <\/a>\n\n    <\/div>\n\n    <div class=\"pl-products-note\">\n      <span>Apparel \u00b7 Accessories \u00b7 Home \u00b7 Sportswear \u00b7 Print<\/span>\n      <span>200+ customizable products<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n\n<section class=\"pl-brands\" aria-label=\"Blank product brands\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-brands-head\">\n      <div class=\"pl-brands-label\" data-brands-reveal=\"left\">\n        <span>(05)<\/span>\n        BLANK PRODUCT BRANDS\n      <\/div>\n\n      <h2 data-brands-reveal data-brands-delay=\"1\">Premium blanks from brands your customers already know.<\/h2>\n\n      <p class=\"pl-brands-copy\" data-brands-reveal=\"right\" data-brands-delay=\"2\">\n        Choose from trusted apparel brands across different price points, fits and fabric weights,\n        ready for decoration and scalable production.\n      <\/p>\n    <\/div>\n\n    <div class=\"pl-brands-marquee\" data-brands-reveal data-brands-delay=\"1\">\n      <div class=\"pl-brands-track\">\n\n        <div class=\"pl-brands-set\">\n          <div class=\"pl-brand-logo pl-brand-logo-stanley\">\n            <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/06\/StanleyStella_Logo-Dark_RGB.svg\" alt=\"Stanley\/Stella\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Gildan_logo.svg-1.png\" alt=\"Gildan\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Vector.png\" alt=\"Bella+Canvas\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Comfort_Colors_logo-2.png\" alt=\"Comfort Colors\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/colortone_logo_102021-2.png\" alt=\"Colortone\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/nla_logo_stacked-2.png\" alt=\"Next Level Apparel\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo pl-brand-logo-shaka\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/shaka.png\" alt=\"Shaka Wear\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo pl-brand-logo-hanes\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Hanes-logo.svg-2.png\" alt=\"Hanes\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/lane7.png\" alt=\"Lane Seven\" loading=\"lazy\">\n          <\/div>\n        <\/div>\n\n\n        <div class=\"pl-brands-set\">\n          <div class=\"pl-brand-logo pl-brand-logo-stanley\">\n            <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/06\/StanleyStella_Logo-Dark_RGB.svg\" alt=\"Stanley\/Stella\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Gildan_logo.svg-1.png\" alt=\"Gildan\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Vector.png\" alt=\"Bella+Canvas\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Comfort_Colors_logo-2.png\" alt=\"Comfort Colors\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/colortone_logo_102021-2.png\" alt=\"Colortone\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/nla_logo_stacked-2.png\" alt=\"Next Level Apparel\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo pl-brand-logo-shaka\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/shaka.png\" alt=\"Shaka Wear\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo pl-brand-logo-hanes\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/Hanes-logo.svg-2.png\" alt=\"Hanes\" loading=\"lazy\">\n          <\/div>\n\n          <div class=\"pl-brand-logo\">\n            <img decoding=\"async\" src=\"https:\/\/solutions.snapwear.pro\/wp-content\/uploads\/2026\/03\/lane7.png\" alt=\"Lane Seven\" loading=\"lazy\">\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n    <div class=\"pl-brands-note\">\n      <span>Multiple fits \u00b7 weights \u00b7 price points<\/span>\n      <span>Ready for DTG \u00b7 DTF \u00b7 embroidery<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-solutions\" aria-label=\"Print Logistic solutions\" id=\"Solutions\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-solutions-head\">\n\n      <div class=\"pl-solutions-label\" data-solutions-reveal=\"left\">\n        <span>(06)<\/span>\n        PRINT LOGISTIC SOLUTIONS\n      <\/div>\n\n      <h2 data-solutions-reveal data-solutions-delay=\"1\">\n        Three ways to work<br>\n        with Print Logistic.\n      <\/h2>\n\n      <p class=\"pl-solutions-copy\" data-solutions-reveal=\"right\" data-solutions-delay=\"2\">\n        Choose the production access model that fits your business stage \u2014\n        from on-demand fulfillment to wholesale production and enterprise-level automation.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"pl-solutions-shell\">\n\n      <!-- POD -->\n      <article class=\"pl-solution\" data-solution-card>\n\n        <div class=\"pl-solution-top\">\n          <div class=\"pl-solution-index\">01 \/ On demand<\/div>\n          <div class=\"pl-solution-badge\">Best for online sellers<\/div>\n\n          <h3>Print on Demand<\/h3>\n\n          <a href=\"https:\/\/snapwear.pro\/\"\n             target=\"_blank\"\n             rel=\"noopener noreferrer\"\n             class=\"pl-snapwear-logo\"\n             aria-label=\"Visit Snapwear\">\n            <img decoding=\"async\"\n              src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/Snapwear-logo-white.png\"\n              alt=\"Snapwear\">\n          <\/a>\n        <\/div>\n\n        <p class=\"pl-solution-desc\">\n          Launch and fulfill products without holding inventory through Snapwear \u2014\n          Print Logistic\u2019s platform for store integrations and automated order routing.\n        <\/p>\n\n        <ul class=\"pl-solution-features\">\n          <li>Shopify, Etsy and WooCommerce integrations<\/li>\n          <li>Production-ready apparel and accessories catalog<\/li>\n          <li>No minimum order<\/li>\n          <li>Automated fulfillment workflow<\/li>\n        <\/ul>\n\n        <a href=\"https:\/\/snapwear.pro\/\"\n           target=\"_blank\"\n           rel=\"noopener noreferrer\"\n           class=\"pl-solution-link\">\n          Explore Snapwear\n        <\/a>\n\n      <\/article>\n\n\n      <!-- WHOLESALE -->\n      <article class=\"pl-solution pl-solution-wholesale\" data-solution-card>\n\n        <div class=\"pl-solution-top\">\n          <div class=\"pl-solution-index\">02 \/ Bulk production<\/div>\n          <div class=\"pl-solution-badge\">Best for scaling brands<\/div>\n\n          <h3>Zam\u00f3wienia hurtowe<\/h3>\n        <\/div>\n\n        <p class=\"pl-solution-desc\">\n          Flexible bulk production for branded collections, merchandise programs\n          and products with predictable demand.\n        <\/p>\n\n        <ul class=\"pl-solution-features\">\n          <li>Better pricing from larger quantities<\/li>\n          <li>Multiple designs within one bulk production order<\/li>\n          <li>Extended branding and finishing options<\/li>\n          <li>Dedicated production coordination<\/li>\n        <\/ul>\n\n        <a href=\"https:\/\/printlogistic.eu\/pl\/wholesale\/\"\n           target=\"_blank\"\n           rel=\"noopener noreferrer\"\n           class=\"pl-solution-link\">\n          Explore Wholesale\n        <\/a>\n\n      <\/article>\n\n\n      <!-- API -->\n      <article class=\"pl-solution\" data-solution-card>\n\n        <div class=\"pl-solution-top\">\n          <div class=\"pl-solution-index\">03 \/ Integration<\/div>\n          <div class=\"pl-solution-badge\">Best for large platforms<\/div>\n\n          <h3>Enterprise API<\/h3>\n        <\/div>\n\n        <p class=\"pl-solution-desc\">\n          Connect Print Logistic production directly with your own infrastructure\n          and automate high-volume order routing.\n        <\/p>\n\n        <ul class=\"pl-solution-features\">\n          <li>Direct API connection<\/li>\n          <li>Automated order routing<\/li>\n          <li>Scalable production workflows<\/li>\n          <li>Infrastructure-level integration<\/li>\n        <\/ul>\n\n        <div class=\"pl-solution-link pl-solution-link-static\">\n          Direct integration\n        <\/div>\n\n      <\/article>\n\n    <\/div>\n\n\n    <div class=\"pl-solutions-note\">\n      <span>Print on Demand \u00b7 Wholesale \u00b7 Enterprise API<\/span>\n      <span>Choose the workflow that fits your scale<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-integrations\" id=\"Integrations\" aria-label=\"Integration guides\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-integrations-head\">\n\n      <div class=\"pl-integrations-label\" data-integrations-reveal=\"left\">\n        <span>(07)<\/span>\n        INTEGRATIONS\n      <\/div>\n\n      <h2 data-integrations-reveal data-integrations-delay=\"1\">\n        Connect your existing workflow.\n      <\/h2>\n\n      <p class=\"pl-integrations-copy\" data-integrations-reveal=\"right\" data-integrations-delay=\"2\">\n        Connect Print Logistic with the tools you already use to manage orders,\n        product publishing and fulfillment workflows.\n      <\/p>\n\n    <\/div>\n\n\n    <article class=\"pl-integration-feature\" data-integration-card>\n\n      <div class=\"pl-integration-logo-panel\">\n        <img decoding=\"async\"\n          src=\"https:\/\/www.orderdesk.com\/wp-content\/uploads\/2024\/11\/ODlogo-horizontal-white-nofx-r-1500-265x40.png\"\n          alt=\"Order Desk logo\"\n          loading=\"lazy\">\n      <\/div>\n\n      <div class=\"pl-integration-body\">\n\n        <div>\n          <div class=\"pl-integration-index\">01 \/ Order management<\/div>\n\n          <h3>Order Desk<\/h3>\n\n          <p>\n            Route orders from connected sales channels into Print Logistic production workflows.\n            Order Desk helps centralize order management and connect existing commerce operations\n            with your fulfillment setup.\n          <\/p>\n        <\/div>\n\n        <div class=\"pl-integration-bottom\">\n\n          <div class=\"pl-integration-meta\">\n            Order routing \u00b7 Connected sales channels \u00b7 Fulfillment workflow\n          <\/div>\n\n          <a\n            href=\"https:\/\/printlogistic.eu\/pl\/order-desk-integration\/\"\n            class=\"pl-integration-link\">\n            Explore integration\n          <\/a>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <div class=\"pl-integrations-note\">\n      <span>Current integration guide: Order Desk<\/span>\n      <span>More integrations coming soon<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-responsibility\" id=\"Responsibility\" aria-label=\"Responsible manufacturing\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-responsibility-head\">\n\n      <div class=\"pl-responsibility-label\" data-responsibility-reveal=\"left\">\n        <span>(08)<\/span>\n        RESPONSIBLE MANUFACTURING\n      <\/div>\n\n      <h2 data-responsibility-reveal data-responsibility-delay=\"1\">\n        Responsible production infrastructure.\n      <\/h2>\n\n      <p class=\"pl-responsibility-copy\" data-responsibility-reveal=\"right\" data-responsibility-delay=\"2\">\n        Print Logistic completed the SMETA Pillar 4 audit through Sedex,\n        supporting transparency across labour standards, health &amp; safety,\n        environmental practices and business ethics.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"pl-audit\" data-audit-card>\n\n      <div class=\"pl-audit-brand\">\n\n        <div class=\"pl-audit-brand-label\">\n          Our business is a proud\n        <\/div>\n\n        <img decoding=\"async\"\n          src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/Sedex_Member_Logo_RGB_Pos-scaled.png\"\n          alt=\"Sedex Member\"\n          loading=\"lazy\">\n\n        <div class=\"pl-audit-brand-note\">\n          Sedex member\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"pl-audit-content\">\n\n        <div>\n          <div class=\"pl-audit-kicker\">\n            Verified responsibility standard\n          <\/div>\n\n          <h3>SMETA Pillar 4 audited.<\/h3>\n\n          <p>\n            The audit covers four key areas of operational responsibility,\n            supporting more transparent manufacturing and responsible supply-chain practices.\n          <\/p>\n        <\/div>\n\n\n        <div class=\"pl-audit-pillars\">\n          <div class=\"pl-audit-pillar\">Labour standards<\/div>\n          <div class=\"pl-audit-pillar\">Health &amp; Safety<\/div>\n          <div class=\"pl-audit-pillar\">Environment<\/div>\n          <div class=\"pl-audit-pillar\">Business Ethics<\/div>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"pl-responsibility-note\">\n      <span>SMETA Pillar 4<\/span>\n      <span>Labour \u00b7 Safety \u00b7 Environment \u00b7 Ethics<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-contact\" aria-label=\"Contact Print Logistic\" id=\"Contact\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-contact-head\">\n\n      <div class=\"pl-contact-label\" data-contact-reveal=\"left\">\n        <span>(09)<\/span>\n        CONTACT\n      <\/div>\n\n      <h2 data-contact-reveal data-contact-delay=\"1\">\n        Let\u2019s build your production workflow.\n      <\/h2>\n\n      <p class=\"pl-contact-copy\" data-contact-reveal=\"right\" data-contact-delay=\"2\">\n        Tell us what you want to produce, where you sell and what kind of\n        fulfillment setup you need. We\u2019ll help you find the right production\n        workflow for your business.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"pl-contact-main\" data-contact-main>\n\n      <div class=\"pl-contact-details\">\n\n        <div class=\"pl-contact-block\">\n          <div class=\"pl-contact-block-label\">Europe<\/div>\n          <h3>\u0141\u00f3d\u017a, Poland<\/h3>\n          <address>\n            Dostawcza 3<br>\n            93-231 \u0141\u00f3d\u017a<br>\n            Poland\n          <\/address>\n        <\/div>\n\n        <div class=\"pl-contact-block\">\n          <div class=\"pl-contact-block-label\">United States<\/div>\n          <h3>Carrollton, Texas<\/h3>\n          <address>\n            1624 W Crosby Rd #128<br>\n            Carrollton, TX 75006<br>\n            USA\n          <\/address>\n        <\/div>\n\n        <div class=\"pl-contact-block\">\n          <div class=\"pl-contact-block-label\">United Kingdom<\/div>\n          <h3>Plymouth<\/h3>\n          <address>\n            Unit B Armada Point<br>\n            Estover Road<br>\n            Plymouth, PL6 7PY<br>\n            United Kingdom\n          <\/address>\n        <\/div>\n\n        <div class=\"pl-contact-block\">\n          <div class=\"pl-contact-block-label\">Company details<\/div>\n\n          <div class=\"pl-contact-company\">\n            <div class=\"pl-contact-company-row\">\n              <strong>Company<\/strong>\n              <span>Print Logistic Sp. z o.o.<\/span>\n            <\/div>\n\n            <div class=\"pl-contact-company-row\">\n              <strong>Tax ID<\/strong>\n              <span>5213737595<\/span>\n            <\/div>\n\n            <div class=\"pl-contact-company-row\">\n              <strong>Email<\/strong>\n              <span><a href=\"mailto:office@printlogistic.eu\">office@printlogistic.eu<\/a><\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"pl-contact-socials\">\n            <a href=\"https:\/\/www.linkedin.com\/company\/18908951\/\" target=\"_blank\" rel=\"noopener\">LinkedIn \u2197<\/a>\n            <a href=\"https:\/\/www.facebook.com\/PrintLogistic\" target=\"_blank\" rel=\"noopener\">Facebook \u2197<\/a>\n            <a href=\"https:\/\/www.instagram.com\/printlogistic\/\" target=\"_blank\" rel=\"noopener\">Instagram \u2197<\/a>\n            <a href=\"https:\/\/www.youtube.com\/@PrintLogistic\" target=\"_blank\" rel=\"noopener\">YouTube \u2197<\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"pl-contact-form\">\n\n        <div class=\"pl-contact-form-top\">\n          <span>Start a conversation<\/span>\n          <small>Tell us about your project<\/small>\n        <\/div>\n\n        <form\n          class=\"pl-zoho-form\"\n          action=\"https:\/\/forms.zohopublic.eu\/snapwear1\/form\/ContactUs\/formperma\/EJ4cXVit_vkUIQ05RjJRfHCWEbtxDt-btef-PrXihYE\/htmlRecords\/submit\"\n          name=\"form\"\n          method=\"POST\"\n          onsubmit='document.charset=\"UTF-8\"; return zf_ValidateAndSubmit();'\n          accept-charset=\"UTF-8\"\n          enctype=\"multipart\/form-data\"\n          id=\"form\">\n\n          <input type=\"hidden\" name=\"zf_referrer_name\" value=\"\">\n          <input type=\"hidden\" name=\"zf_redirect_url\" value=\"\">\n          <input type=\"hidden\" name=\"zc_gad\" value=\"\">\n\n          <div class=\"pl-zoho-grid\">\n\n            <div class=\"pl-zoho-field\">\n              <label for=\"pl-sales-area\">\n                Sales area <em>*<\/em>\n              <\/label>\n\n              <div class=\"pl-zoho-select-wrap\">\n                <select id=\"pl-sales-area\" name=\"Dropdown\" checktype=\"c1\">\n                  <option selected value=\"-Select-\">Select sales area<\/option>\n                  <option value=\"PL\">Poland<\/option>\n                  <option value=\"EU\">European Union<\/option>\n                  <option value=\"UK\">United Kingdom<\/option>\n                  <option value=\"USA\">United States<\/option>\n                  <option value=\"Asia\">Asia<\/option>\n                <\/select>\n              <\/div>\n\n              <p id=\"Dropdown_error\" class=\"pl-zoho-error\" style=\"display:none;\">Please select a sales area.<\/p>\n            <\/div>\n\n\n            <div class=\"pl-zoho-field\">\n              <label for=\"pl-email\">\n                Email <em>*<\/em>\n              <\/label>\n\n              <input\n                id=\"pl-email\"\n                type=\"text\"\n                name=\"Email\"\n                checktype=\"c5\"\n                value=\"\"\n                maxlength=\"255\"\n                fieldtype=\"9\"\n                autocomplete=\"email\"\n                placeholder=\"you@company.com\">\n\n              <p id=\"Email_error\" class=\"pl-zoho-error\" style=\"display:none;\">Please enter a valid email address.<\/p>\n            <\/div>\n\n\n            <div class=\"pl-zoho-field\">\n              <label for=\"pl-first-name\">\n                First name <em>*<\/em>\n              <\/label>\n\n              <input\n                id=\"pl-first-name\"\n                type=\"text\"\n                maxlength=\"255\"\n                name=\"Name_First\"\n                fieldtype=\"7\"\n                autocomplete=\"given-name\"\n                placeholder=\"First name\">\n            <\/div>\n\n\n            <div class=\"pl-zoho-field\">\n              <label for=\"pl-last-name\">\n                Last name <em>*<\/em>\n              <\/label>\n\n              <input\n                id=\"pl-last-name\"\n                type=\"text\"\n                maxlength=\"255\"\n                name=\"Name_Last\"\n                fieldtype=\"7\"\n                autocomplete=\"family-name\"\n                placeholder=\"Last name\">\n\n              <p id=\"Name_error\" class=\"pl-zoho-error\" style=\"display:none;\">Please enter your first and last name.<\/p>\n            <\/div>\n\n\n            <div class=\"pl-zoho-field pl-zoho-field-full\">\n              <label for=\"pl-subject\">\n                Subject <em>*<\/em>\n              <\/label>\n\n              <input\n                id=\"pl-subject\"\n                type=\"text\"\n                name=\"SingleLine\"\n                checktype=\"c1\"\n                value=\"\"\n                maxlength=\"255\"\n                fieldtype=\"1\"\n                placeholder=\"What would you like to produce?\">\n\n              <p id=\"SingleLine_error\" class=\"pl-zoho-error\" style=\"display:none;\">Please enter a subject.<\/p>\n            <\/div>\n\n\n            <div class=\"pl-zoho-field pl-zoho-field-full\">\n              <label for=\"pl-message\">\n                Your message <em>*<\/em>\n              <\/label>\n\n              <textarea\n                id=\"pl-message\"\n                name=\"MultiLine\"\n                checktype=\"c1\"\n                maxlength=\"65535\"\n                placeholder=\"Tell us about your products, volumes, markets and fulfillment needs.\"><\/textarea>\n\n              <p id=\"MultiLine_error\" class=\"pl-zoho-error\" style=\"display:none;\">Please enter your message.<\/p>\n            <\/div>\n\n          <\/div>\n\n\n          <div class=\"pl-zoho-consent\">\n            <label for=\"pl-terms\">\n              <input\n                id=\"pl-terms\"\n                type=\"checkbox\"\n                name=\"TermsConditions\"\n                value=\"true\"\n                checktype=\"c1\">\n              <span class=\"pl-zoho-check\"><\/span>\n              <span class=\"pl-zoho-consent-copy\">\n                I accept the Terms and Conditions and agree to the processing of my data for the purpose of responding to my inquiry.\n              <\/span>\n            <\/label>\n\n            <p id=\"TermsConditions_error\" class=\"pl-zoho-error\" style=\"display:none;\">\n              Please accept the terms and conditions.\n            <\/p>\n          <\/div>\n\n          <div class=\"pl-zoho-footer\">\n            <div class=\"pl-zoho-required\">\n              * Required fields\n            <\/div>\n\n            <button class=\"pl-zoho-submit\" type=\"submit\">\n              <span>Send inquiry<\/span>\n              <span class=\"pl-zoho-submit-arrow\">\u2197<\/span>\n            <\/button>\n          <\/div>\n\n        <\/form>\n\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"pl-contact-note\">\n      <span>Poland \u00b7 United States \u00b7 United Kingdom<\/span>\n      <span>office@printlogistic.eu<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"pl-team\" id=\"DirectContacts\" aria-label=\"Direct contacts at Print Logistic\">\n  <div class=\"pl-wrap\">\n\n    <div class=\"pl-team-head\">\n\n      <div class=\"pl-team-label\" data-team-reveal=\"left\">\n        <span>(10)<\/span>\n        DIRECT CONTACTS\n      <\/div>\n\n      <h2 data-team-reveal data-team-delay=\"1\">\n        Talk to the right team.\n      <\/h2>\n\n      <p class=\"pl-team-copy\" data-team-reveal=\"right\" data-team-delay=\"2\">\n        Choose the right contact depending on your needs \u2014 customer care,\n        business development or wholesale cooperation.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"pl-team-directory\">\n\n      <!-- CUSTOMER CARE -->\n      <section class=\"pl-team-group\" data-team-group>\n\n        <div class=\"pl-team-group-title\">\n          <div class=\"pl-team-group-index\">01 \/ Support<\/div>\n          <h3>Customer Care<\/h3>\n          <p>Day-to-day support for existing customers and production orders.<\/p>\n        <\/div>\n\n        <div class=\"pl-team-people\">\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/10\/1630351013711.jpeg\" alt=\"Eugenia Bujalska\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Eugenia Bujalska<\/h4>\n              <div class=\"pl-team-role\">Customer Care<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:eugenia.bujalska@printlogistic.pl\">eugenia.bujalska@printlogistic.pl<\/a>\n                <a href=\"tel:+48530512302\">+48 530 512 302<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/11\/1760935360973.jpeg\" alt=\"Kalina Olak\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Kalina Olak<\/h4>\n              <div class=\"pl-team-role\">Customer Care<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:kalina.olak@printlogistic.pl\">kalina.olak@printlogistic.pl<\/a>\n                <a href=\"tel:+48530512302\">+48 530 512 302<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n        <\/div>\n      <\/section>\n\n\n      <!-- BUSINESS DEVELOPMENT -->\n      <section class=\"pl-team-group\" data-team-group>\n\n        <div class=\"pl-team-group-title\">\n          <div class=\"pl-team-group-index\">02 \/ Growth<\/div>\n          <h3>Business Development<\/h3>\n          <p>New projects, production partnerships and international cooperation.<\/p>\n        <\/div>\n\n        <div class=\"pl-team-people\">\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/10\/1679483861678.jpeg\" alt=\"Hossein Fayazi\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Hossein Fayazi<\/h4>\n              <div class=\"pl-team-role\">B2B Sales Specialist<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:hossein@printlogistic.eu\">hossein@printlogistic.eu<\/a>\n                <a href=\"tel:+48533641420\">+48 533 641 420<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/10\/1758706000455.jpeg\" alt=\"Artur Murzyniak\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Artur Murzyniak<\/h4>\n              <div class=\"pl-team-role\">Fabric Printing &amp; B2B Sales Specialist<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:artur.murzyniak@printlogistic.eu\">artur.murzyniak@printlogistic.eu<\/a>\n                <a href=\"tel:+48733817888\">+48 733 817 888<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/10\/1741091481767.jpeg\" alt=\"Kate Dao\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Kate Dao<\/h4>\n              <div class=\"pl-team-role\">Asian Business Development Manager<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:kate.dao@printlogistic.eu\">kate.dao@printlogistic.eu<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2025\/11\/1737133900055.jpg\" alt=\"Dmitriy Astapkovich\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Dmitriy Astapkovich<\/h4>\n              <div class=\"pl-team-role\">Chief Operating Officer US<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:dmitriy.astapkovich@printlogistic.eu\">dmitriy.astapkovich@printlogistic.eu<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/03\/shane-remington-brick11.jpg\" alt=\"Shane Remington\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Shane Remington<\/h4>\n              <div class=\"pl-team-role\">Business Development Executive (US Market)<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:shane.remington@printlogistic.us\">shane.remington@printlogistic.us<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n          <article class=\"pl-team-person\">\n            <div class=\"pl-team-photo\">\n              <img decoding=\"async\" src=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/1741122136118.jpg\" alt=\"Tomasz Zar\u0119bski\" loading=\"lazy\">\n            <\/div>\n            <div class=\"pl-team-person-info\">\n              <h4>Tomasz Zar\u0119bski<\/h4>\n              <div class=\"pl-team-role\">Sales Director<\/div>\n              <div class=\"pl-team-links\">\n                <a href=\"mailto:tomasz.zarebski@printlogistic.pl\">tomasz.zarebski@printlogistic.pl<\/a>\n              <\/div>\n            <\/div>\n          <\/article>\n\n        <\/div>\n      <\/section>\n\n\n      <!-- WHOLESALE -->\n      <section class=\"pl-team-group\" data-team-group>\n\n        <div class=\"pl-team-group-title\">\n          <div class=\"pl-team-group-index\">03 \/ Bulk orders<\/div>\n          <h3>Zam\u00f3wienia hurtowe<\/h3>\n          <p>For larger production runs and dedicated B2B cooperation.<\/p>\n        <\/div>\n\n        <div class=\"pl-team-people pl-team-wholesale\">\n          <div class=\"pl-team-wholesale-card\">\n            <h4>Wholesale inquiries<\/h4>\n            <p>\n              Planning a larger order or recurring production?\n              Contact our wholesale team directly.\n            <\/p>\n            <a class=\"pl-team-wholesale-link\" href=\"mailto:wholesale@printlogistic.eu\">\n              wholesale@printlogistic.eu\n            <\/a>\n          <\/div>\n        <\/div>\n\n      <\/section>\n\n    <\/div>\n\n\n    <div class=\"pl-team-note\">\n      <span>Customer Care \u00b7 Business Development \u00b7 Wholesale<\/span>\n      <span>Print Logistic team<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<script>\n(function(){\n  const data = [\n    {\n      title:'All-Over Print',\n      copy:'Fabric-first printing for full-surface designs, followed by cut-and-sew production for custom garments and textile products.'\n    },\n    {\n      title:'Direct-to-Garment',\n      copy:'High-resolution digital printing directly onto garments, ideal for detailed artwork, short runs and print-on-demand production.'\n    },\n    {\n      title:'Direct-to-Film',\n      copy:'Flexible transfer printing for a broad range of fabrics and product types, with strong color and detail.'\n    },\n    {\n      title:'Dye Sublimation',\n      copy:'Heat-based color transfer for polyester fabrics and compatible coated products, creating a smooth, vibrant finish.'\n    },\n    {\n      title:'Digital Embroidery',\n      copy:'Premium stitched decoration for logos, branding and detailed finishes across apparel and accessories.'\n    },\n    {\n      title:'Digital Production Printing',\n      copy:'High-quality digital production printing for paper goods, inserts, branded extras and supporting materials.'\n    }\n  ];\n\n  const viewport = document.querySelector('.pl-tech-viewport');\n  const slides = [...document.querySelectorAll('.pl-tech-slide')];\n  const menu = [...document.querySelectorAll('[data-tech-index]')];\n  const menuItems = [...document.querySelectorAll('.pl-tech-menu li')];\n  const title = document.getElementById('tech-active-title');\n  const copy = document.getElementById('tech-active-copy');\n  const prev = document.getElementById('tech-prev');\n  const next = document.getElementById('tech-next');\n\n  if(!viewport || !slides.length || !title || !copy || !prev || !next) return;\n\n  let active = 0;\n  let scrollTimer = null;\n\n  function applyMenuDepth(){\n    menuItems.forEach((item, i) => {\n      const distance = Math.abs(i - active);\n\n      let opacity = 0.22;\n      let shift = 0;\n\n      if(distance === 0){\n        opacity = 1;\n        shift = 0;\n      } else if(distance === 1){\n        opacity = 0.82;\n        shift = 1.5;\n      } else if(distance === 2){\n        opacity = 0.62;\n        shift = 3;\n      } else if(distance === 3){\n        opacity = 0.44;\n        shift = 4;\n      } else if(distance === 4){\n        opacity = 0.30;\n        shift = 5;\n      } else {\n        opacity = 0.18;\n        shift = 6;\n      }\n\n      item.style.setProperty('--dynamic-opacity', opacity);\n      item.style.setProperty('--dynamic-shift', shift + 'px');\n    });\n  }\n\n  function setActive(index, shouldScroll=true){\n    active = Math.max(0, Math.min(index, slides.length - 1));\n\n    slides.forEach((slide,i)=>{\n      slide.classList.toggle('is-active', i === active);\n    });\n\n    menu.forEach((btn,i)=>{\n      btn.classList.toggle('is-active', i === active);\n      btn.setAttribute('aria-current', i === active ? 'true' : 'false');\n    });\n\n    applyMenuDepth();\n\n    title.textContent = data[active].title;\n    copy.textContent = data[active].copy;\n\n    prev.disabled = active === 0;\n    next.disabled = active === slides.length - 1;\n\n    if(shouldScroll){\n      slides[active].scrollIntoView({\n        behavior:'smooth',\n        block:'nearest',\n        inline:'start'\n      });\n    }\n  }\n\n  prev.addEventListener('click',()=>{\n    setActive(active - 1);\n  });\n\n  next.addEventListener('click',()=>{\n    setActive(active + 1);\n  });\n\n  menu.forEach((btn,i)=>{\n    btn.addEventListener('click',()=>{\n      setActive(i);\n    });\n  });\n\n  viewport.addEventListener('scroll',()=>{\n    clearTimeout(scrollTimer);\n    scrollTimer = setTimeout(()=>{\n      const left = viewport.scrollLeft;\n      let nearest = 0;\n      let best = Infinity;\n\n      slides.forEach((slide,i)=>{\n        const distance = Math.abs(slide.offsetLeft - viewport.offsetLeft - left);\n        if(distance < best){\n          best = distance;\n          nearest = i;\n        }\n      });\n\n      if(nearest !== active){\n        setActive(nearest, false);\n      }\n    }, 90);\n  }, {passive:true});\n\n  setActive(0, false);\n\n  const revealItems = [...document.querySelectorAll('.pl-tech-carousel [data-reveal]')];\n\n  if('IntersectionObserver' in window){\n    const revealObserver = new IntersectionObserver((entries)=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          entry.target.classList.add('is-visible');\n          revealObserver.unobserve(entry.target);\n        }\n      });\n    },{\n      threshold:.12,\n      rootMargin:'0px 0px -5% 0px'\n    });\n\n    revealItems.forEach(item=>revealObserver.observe(item));\n  } else {\n    revealItems.forEach(item=>item.classList.add('is-visible'));\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-partners');\n  if(!section) return;\n\n  const revealItems = [...section.querySelectorAll('[data-partners-reveal]')];\n  const logos = [...section.querySelectorAll('.pl-partner')];\n\n  revealItems.forEach(el=>{\n    el.style.opacity = '0';\n\n    const direction = el.dataset.partnersReveal;\n    if(direction === 'left'){\n      el.style.transform = 'translate3d(-24px,0,0)';\n    } else if(direction === 'right'){\n      el.style.transform = 'translate3d(24px,0,0)';\n    } else {\n      el.style.transform = 'translate3d(0,22px,0)';\n    }\n\n    el.style.transition =\n      'opacity .7s ease, transform .78s cubic-bezier(.22,.61,.36,1)';\n\n    const delay = Number(el.dataset.partnersDelay || 0);\n    el.style.transitionDelay = (delay * .09) + 's';\n  });\n\n  logos.forEach((logo,i)=>{\n    logo.style.opacity = '0';\n    logo.style.transform = 'translate3d(0,16px,0)';\n    logo.style.transition =\n      'opacity .55s ease ' + (.12 + i * .07) + 's, ' +\n      'transform .62s cubic-bezier(.22,.61,.36,1) ' + (.12 + i * .07) + 's';\n  });\n\n  function reveal(){\n    revealItems.forEach(el=>{\n      el.style.opacity = '1';\n      el.style.transform = 'translate3d(0,0,0)';\n    });\n\n    logos.forEach(logo=>{\n      logo.style.opacity = '1';\n      logo.style.transform = 'translate3d(0,0,0)';\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io = new IntersectionObserver((entries)=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.18,\n      rootMargin:'0px 0px -6% 0px'\n    });\n\n    io.observe(section);\n  } else {\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-products');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-products-reveal]')];\n  const cards = [...section.querySelectorAll('[data-product-card]')];\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n    const d=el.dataset.productsReveal;\n    el.style.transform =\n      d==='left' ? 'translate3d(-22px,0,0)' :\n      d==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n    const delay=Number(el.dataset.productsDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  cards.forEach((card,i)=>{\n    card.style.opacity='0';\n    card.style.transform='translate3d(0,24px,0)';\n    const delay=.10+i*.055;\n    card.style.transition +=\n      `, opacity .62s ease ${delay}s, transform .72s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n    cards.forEach(card=>{\n      card.style.opacity='1';\n      card.style.transform='translate3d(0,0,0)';\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{threshold:.10,rootMargin:'0px 0px -5% 0px'});\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-brands');\n  if(!section) return;\n\n  const items = [...section.querySelectorAll('[data-brands-reveal]')];\n\n  items.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.brandsReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,20px,0)';\n\n    const delay=Number(el.dataset.brandsDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  function reveal(){\n    items.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{threshold:.14,rootMargin:'0px 0px -5% 0px'});\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-solutions');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-solutions-reveal]')];\n  const cards = [...section.querySelectorAll('[data-solution-card]')];\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.solutionsReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n\n    const delay=Number(el.dataset.solutionsDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  cards.forEach((card,i)=>{\n    card.style.opacity='0';\n    card.style.transform='translate3d(0,22px,0)';\n\n    const delay=.10+i*.08;\n    card.style.transition +=\n      `, opacity .62s ease ${delay}s, transform .72s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n\n    cards.forEach(card=>{\n      card.style.opacity='1';\n      card.style.transform='translate3d(0,0,0)';\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.10,\n      rootMargin:'0px 0px -5% 0px'\n    });\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-integrations');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-integrations-reveal]')];\n  const card = section.querySelector('[data-integration-card]');\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.integrationsReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n\n    const delay=Number(el.dataset.integrationsDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  if(card){\n    card.style.opacity='0';\n    card.style.transform='translate3d(0,24px,0)';\n    card.style.transition +=\n      ', opacity .65s ease .13s, transform .76s cubic-bezier(.22,.61,.36,1) .13s';\n  }\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n\n    if(card){\n      card.style.opacity='1';\n      card.style.transform='translate3d(0,0,0)';\n    }\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.12,\n      rootMargin:'0px 0px -5% 0px'\n    });\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-responsibility');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-responsibility-reveal]')];\n  const card = section.querySelector('[data-audit-card]');\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.responsibilityReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n\n    const delay=Number(el.dataset.responsibilityDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  if(card){\n    card.style.opacity='0';\n    card.style.transform='translate3d(0,24px,0)';\n    card.style.transition=\n      'opacity .66s ease .13s, transform .76s cubic-bezier(.22,.61,.36,1) .13s';\n  }\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n\n    if(card){\n      card.style.opacity='1';\n      card.style.transform='translate3d(0,0,0)';\n    }\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.12,\n      rootMargin:'0px 0px -5% 0px'\n    });\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-contact');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-contact-reveal]')];\n  const main = section.querySelector('[data-contact-main]');\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.contactReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n\n    const delay=Number(el.dataset.contactDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  if(main){\n    main.style.opacity='0';\n    main.style.transform='translate3d(0,24px,0)';\n    main.style.transition=\n      'opacity .68s ease .13s, transform .78s cubic-bezier(.22,.61,.36,1) .13s';\n  }\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n\n    if(main){\n      main.style.opacity='1';\n      main.style.transform='translate3d(0,0,0)';\n    }\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.09,\n      rootMargin:'0px 0px -4% 0px'\n    });\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n\n<script>\n\/\/ $Id: $\nfunction zf_ValidateAndSubmit(){\n\t\tif(zf_CheckMandatory()){\n\t\t\tif(zf_ValidCheck()){\n\t\t\t\tif(isSalesIQIntegrationEnabled){\n\t\t\t\t\tzf_addDataToSalesIQ();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}else{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}else{\n\t\t\treturn false;\n\t\t}\n\t}\n\t\tfunction zf_CheckMandatory(){\n\t\tfor(i = 0 ; i < zf_MandArray.length ; i ++) {\n\t\t  \tvar fieldObj=document.forms.form[zf_MandArray[i]];\n\t\t  \tif(fieldObj) {\n\t\t\t\t  \tif(fieldObj.nodeName != null ){\n\t\t\t\t  \t\tif ( fieldObj.nodeName=='OBJECT' ) {\n\t\t\t\t\t\t\t\tif(!zf_MandatoryCheckSignature(fieldObj)){\n\t\t\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t\t\t\t\t \treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}else if (((fieldObj.value).replace(\/^\\s+|\\s+$\/g, '')).length==0) {\n\t\t\t\t\t\t\t if(fieldObj.type =='file')\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t fieldObj.focus();\n\t\t\t\t\t\t\t\t zf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t\t\t\t\t return false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t   \t   \t  \t  fieldObj.focus();\n\t\t\t\t   \t   \t  \t  zf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t   \t   \t  \t  return false;\n\t\t\t\t\t\t\t}  else if( fieldObj.nodeName=='SELECT' ) {\/\/ No I18N\n\t\t\t\t  \t   \t   \t if(fieldObj.options[fieldObj.selectedIndex].value=='-Select-') {\n\t\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t   }\n\t\t\t\t\t\t\t} else if( fieldObj.type =='checkbox' || fieldObj.type =='radio' ){\n\t\t\t\t\t\t\t\tif(fieldObj.checked == false){\n\t\t\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t   \t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t  \t}else{\n\t\t\t\t  \t\tvar checkedValsCount = 0;\n\t\t\t\t\t\tvar inpChoiceElems = fieldObj;\n\t\t\t\t\t\t\tfor(var ii = 0; ii < inpChoiceElems.length ; ii ++ ){\n\t\t\t\t\t\t      \tif(inpChoiceElems[ii].checked === true ){\n\t\t\t\t\t\t      \t\tcheckedValsCount ++;\n\t\t\t\t\t\t      \t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( checkedValsCount == 0) {\n\t\t\t\t\t\t\t\t\tinpChoiceElems[0].focus();\n\t\t\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_MandArray[i]);\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t \t}\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tfunction zf_ValidCheck(){\n\t\tvar isValid = true;\n\t\tfor(ind = 0 ; ind < zf_FieldArray.length ; ind++ ) {\n\t\t\tvar fieldObj=document.forms.form[zf_FieldArray[ind]];\n\t\t  \tif(fieldObj) {\n\t\t  \t\tif(fieldObj.nodeName != null ){\n\t\t\t  \t\tvar checkType = fieldObj.getAttribute(\"checktype\");\n\t\t\t  \t\tif( checkType == \"c2\" ){\/\/ No I18N\n\t\t\t  \t\t\tif( !zf_ValidateNumber(fieldObj)){\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c3\" ){\/\/ No I18N\n\t\t\t  \t\t\tif (!zf_ValidateCurrency(fieldObj) || !zf_ValidateDecimalLength(fieldObj,10) ) {\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c4\" ){\/\/ No I18N\n\t\t\t  \t\t\tif( !zf_ValidateDateFormat(fieldObj)){\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c5\" ){\/\/ No I18N\n\t\t\t  \t\t\tif (!zf_ValidateEmailID(fieldObj)) {\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c6\" ){\/\/ No I18N\n\t\t\t  \t\t\tif (!zf_ValidateLiveUrl(fieldObj)) {\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c7\" ){\/\/ No I18N\n\t\t\t  \t\t\tif (!zf_ValidatePhone(fieldObj)) {\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t  \t\t}else if( checkType == \"c8\" ){\/\/ No I18N\n\t\t\t  \t\t\tzf_ValidateSignature(fieldObj);\n\t\t\t  \t\t}else if( checkType == \"c9\" ){\/\/ No I18N\n\t\t\t\t\t\tif( !zf_ValidateMonthYearFormat(fieldObj)){\n\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\tfieldObj.focus();\n\t\t\t\t\t\t\tzf_ShowErrorMsg(zf_FieldArray[ind]);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t  \t\t}\n\t\t\t  \t}\n\t\t  \t}\n\t\t}\n         \treturn isValid;\n\t}\n\tfunction zf_ShowErrorMsg(uniqName){\n\t\tvar fldLinkName;\n\t\tfor( errInd = 0 ; errInd < zf_FieldArray.length ; errInd ++ ) {\n\t\t\tfldLinkName = zf_FieldArray[errInd].split('_')[0];\n\t\t\tdocument.getElementById(fldLinkName+\"_error\").style.display = 'none';\n\t\t}\n\t\tvar linkName = uniqName.split('_')[0];\n\t\tdocument.getElementById(linkName+\"_error\").style.display = 'block';\n\t}\n\tfunction zf_ValidateNumber(elem) {\n\t \tvar validChars = \"-0123456789\";\n\t \tvar numValue = elem.value.replace(\/^\\s+|\\s+$\/g, '');\n\t \tif (numValue != null && !numValue == \"\") {\n\t \t\tvar strChar;\n\t \t\tvar result = true;\n\t \t\tif (numValue.charAt(0) == \"-\" && numValue.length == 1) {\n\t \t\t\treturn false;\n\t \t\t}\n\t \t\tfor (i = 0; i < numValue.length && result == true; i++) {\n\t \t\t\tstrChar = numValue.charAt(i);\n\t \t\t\tif ((strChar == \"-\") && (i != 0)) {\n\t \t\t\t\treturn false;\n\t \t\t\t}\n\t \t\t\tif (validChars.indexOf(strChar) == -1) {\n\t \t\t\t\tresult = false;\n\t \t\t\t}\n\t \t\t}\n\t \t\treturn result;\n\t \t} else {\n\t \t\treturn true;\n\t \t}\n\t }\n\t function zf_ValidateDateFormat(inpElem){\n\t \tvar dateValue = inpElem.value.replace(\/^\\s+|\\s+$\/g, '');\n\t \tif( dateValue == \"\" ){\n\t \t\treturn true;\n\t \t}else{\n\t\t\treturn( zf_DateRegex.test(dateValue) );\n\t\t}\n\t }\n\t function zf_ValidateCurrency(elem) {\n\t \tvar validChars = \"0123456789.\";\n\t \tvar numValue = elem.value.replace(\/^\\s+|\\s+$\/g, '');\n\t \tif(numValue.charAt(0) == '-'){\n\t \t\tnumValue = numValue.substring(1,numValue.length);\n\t \t}\n\t \tif (numValue != null && !numValue == \"\") {\n\t \t\tvar strChar;\n\t \t\tvar result = true;\n\t \t\tfor (i = 0; i < numValue.length && result == true; i++) {\n\t \t\t\tstrChar = numValue.charAt(i);\n\t \t\t\tif (validChars.indexOf(strChar) == -1) {\n\t \t\t\t\tresult = false;\n\t \t\t\t}\n\t \t\t}\n\t \t\treturn result;\n\t \t} else {\n\t \t\treturn true;\n\t \t}\n\t }\n\t function zf_ValidateDecimalLength(elem,decimalLen) {\n\t \tvar numValue = elem.value;\n\t \tif (numValue.indexOf('.') >= 0) {\n\t \t\tvar decimalLength = numValue.substring(numValue.indexOf('.') + 1).length;\n\t \t\tif (decimalLength > decimalLen) {\n\t \t\t\treturn false;\n\t \t\t} else {\n\t \t\t\treturn true;\n\t \t\t}\n\t \t}\n\t \treturn true;\n\t }\n\t function zf_ValidateEmailID(elem) {\n        var check = 0;\n        var emailValue = elem.value;\n        if (emailValue != null && !emailValue == \"\") {\n            var emailArray = emailValue.split(\",\");\n            for (i = 0; i < emailArray.length; i++) {\n                var emailExp = \/^[\\w]([\\w\\-.+&'\/]*)@([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,22}$\/;\n                if (!emailExp.test(emailArray[i].replace(\/^\\s+|\\s+$\/g, ''))) {\n                    check = 1;\n                }\n            }\n            if (check == 0) {\n                return true;\n            } else {\n                return false;\n            }\n        } else {\n            return true;\n        }\n    }\n    function zf_ValidateLiveUrl(elem) {\n    \tvar urlValue = elem.value;\n\t\tif(urlValue !== null && typeof(urlValue) !== \"undefined\") {\n\t\t\turlValue = urlValue.replace(\/^\\s+|\\s+$\/g, '');\n\t\t\tif(urlValue !== \"\") {\n      \t\t\tvar urlregex = new RegExp(\"^(((https|http|ftps|ftp):\/\/[a-zA-Z\\\\d]+((_|-|@)[a-zA-Z\\\\d]+)*(\\\\.[a-zA-Z\\\\d]+((_|-|@)[a-zA-Z\\\\d]+)*)+(:\\\\d{1,5})?)|((w|W){3}(\\\\.[a-zA-Z\\\\d]+((_|-|@)[a-zA-Z\\\\d]+)*){2,}(:\\\\d{1,5})?)|([a-zA-Z\\\\d]+((_|-)[a-zA-Z\\\\d]+)*(\\\\.[a-zA-Z\\\\d]+((_|-)[a-zA-Z\\\\d]+)*)+(:\\\\d{1,5})?))(\/[-\\\\w.?,:'\/\\\\\\\\+=&;%$#@()!~]*)?$\", \"i\"); \/\/ This regex is taken from LiveFieldsUtil.isValidWebSiteFieldURL() method. Changes: i) Add ^ at the beginning and $ at the end. ii) Remove ?i before https and adjust () around https. iii) Add \"i\" in the RegExp constructor. \/\/ No I18N\n\t\t\t\treturn(urlregex.test(urlValue));\n\t\t\t}\n        }\n        return true;\n    }\n    function zf_ValidatePhone(inpElem){\n\n        var ZFPhoneRegex = {\n            PHONE_INTE_ALL_REG: \/^[+]{0,1}[()0-9-. ]+$\/,\n            PHONE_INTE_NUMERIC_REG: \/^[0-9]+$\/,\n            PHONE_INTE_CONT_CODE_ENABLED_REG: \/^[(0-9-.][()0-9-. ]*$\/,\n            PHONE_USA_REG: \/^[0-9]+$\/,\n            PHONE_CONT_CODE_REG: \/^[+][0-9]{1,4}$\/\n        }\n    \tvar phoneFormat = parseInt(inpElem.getAttribute(\"phoneFormat\"));\n    \tvar fieldInpVal = inpElem.value.replace(\/^\\s+|\\s+$\/g, '');\n    \tvar toReturn = true ;\n    \tif( phoneFormat === 1 ){\n    \t\tif(inpElem.getAttribute(\"valType\") == 'code'){\n                var codeRexp = ZFPhoneRegex.PHONE_CONT_CODE_REG;\n                if(fieldInpVal != \"\" && !codeRexp.test(fieldInpVal)){\n\t\t           return false;\n\t\t\t\t}\n    \t\t}else{\n\t\t\t\tvar IRexp = ZFPhoneRegex.PHONE_INTE_ALL_REG;\n\t\t\t\tif(inpElem.getAttribute(\"phoneFormatType\") == '2'){\n\t\t\t\t\tIRexp = ZFPhoneRegex.PHONE_INTE_NUMERIC_REG;\n\t\t\t\t}\n\t \t\t\tif (fieldInpVal != \"\" && !IRexp.test(fieldInpVal)) {\n\t \t\t\t\ttoReturn = false;\n\t \t\t\t\treturn toReturn;\n\t \t\t\t}\n \t\t    }\n \t\t\treturn toReturn;\n    \t}else if( phoneFormat === 2 ){\n    \t\tvar InpMaxlength = inpElem.getAttribute(\"maxlength\");\n    \t\tvar USARexp = ZFPhoneRegex.PHONE_USA_REG;\n    \t\tif  ( fieldInpVal != \"\" && USARexp.test(fieldInpVal) &&  fieldInpVal.length == InpMaxlength ) {\n\t\t\t\ttoReturn = true;\n\t\t\t}else if( fieldInpVal == \"\" ){\n\t\t\t\ttoReturn = true;\n\t\t\t}else{\n\t\t\t\ttoReturn = false;\n\t\t\t}\n\t\t\treturn toReturn;\n    \t}\n    }\n\n  function zf_ValidateSignature(objElem) {\n  \t\tvar linkName = objElem.getAttribute(\"compname\");\n  \t\tvar canvasElem = document.getElementById(\"drawingCanvas-\"+linkName);\n  \t\tvar isValidSign = zf_IsSignaturePresent(objElem,linkName,canvasElem);\n   \t\tvar hiddenSignInputElem = document.getElementById(\"hiddenSignInput-\"+linkName);\n\t\tif(isValidSign){\n\t\t\thiddenSignInputElem.value = canvasElem.toDataURL();\n\t\t}else{\n\t\t\thiddenSignInputElem.value = \"\";\/\/ No I18N\n\t\t}\n\t\treturn isValidSign;\n  \t}\n\n  \tfunction zf_MandatoryCheckSignature(objElem){\n  \t\tvar linkName = objElem.getAttribute(\"compname\");\n  \t\tvar canvasElem = document.getElementById(\"drawingCanvas-\"+linkName);\n  \t\tvar isValid = zf_IsSignaturePresent(objElem,linkName,canvasElem);\n\t\treturn isValid;\n  \t}\n\n  \tfunction zf_IsSignaturePresent(objElem,linkName,canvasElem){\n   \t\tvar context = canvasElem.getContext('2d'); \/\/ No I18N\n   \t\tvar canvasWidth = canvasElem.width;\n   \t\tvar canvasHeight = canvasElem.height;\n   \t\tvar canvasData = context.getImageData(0, 0, canvasWidth, canvasHeight);\n   \t\tvar signLen = canvasData.data.length;\n   \t\tvar flag = false;\n   \t\tfor(var index =0; index< signLen; index++) {\n   \t     \tif(!canvasData.data[index]) {\n   \t       \t\tflag =  false;\n   \t     \t}else if(canvasData.data[index]) {\n   \t\t   \t\tflag = true;\n   \t\t   \t\tbreak;\n   \t     \t}\n   \t\t}\n\t\treturn flag;\n  \t}\n\n\tfunction zf_FocusNext(elem,event) {\n\t \tif(event.keyCode == 9 || event.keyCode == 16){\n\t      return;\n\t    }\n\t    if(event.keyCode >=37 && event.keyCode <=40){\n\t       return;\n\t    }\n\t    var compname = elem.getAttribute(\"compname\");\n\t    var inpElemName = elem.getAttribute(\"name\");\n\t \tif (inpElemName == compname+\"_countrycode\") {\n\t \t\tif (elem.value.length == 3) {\n\t \t\t\tdocument.getElementsByName(compname+\"_first\")[0].focus();\n\t \t\t}\n\t \t} else if (inpElemName == compname+\"_first\" ) {\n\t \t\tif (elem.value.length == 3) {\n\t \t\t\tdocument.getElementsByName(compname+\"_second\")[0].focus();\n\t \t\t}\n\t \t}\n\t}\n\tfunction zf_ValidateMonthYearFormat(inpElem){\n\t\tvar monthYearValue = inpElem.value.replace(\/^\\s+|\\s+$\/g, '');\n\t\tif( monthYearValue == \"\" ){\n\t\t\treturn true;\n\t\t}else{\n\t\t   return (zf_MonthYearRegex.test(monthYearValue));\n\t   }\n\t}\n\t\n\tfunction zf_SetDateAndMonthRegexBasedOnDateFormate(dateFormat){\n\t\t\n\t\tvar dateAndMonthRegexFormateArray = new Array();\n\t\tvar dateFormatRegExp;\n        var monthYearFormatRegExp;\n\t\tif(dateFormat === \"dd-MMM-yyyy\"){\n\t\t\t\n    \t     dateFormatRegExp = \"^(([0][1-9])|([1-2][0-9])|([3][0-1]))[-](Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)[-](?:(?:19|20)[0-9]{2})$\";\n    \t     monthYearFormatRegExp = \"^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)[-](?:(?:19|20)[0-9]{2})$\";\/\/ No I18N\n    \t  \n    \t  }else if(dateFormat === \"dd-MMMM-yyyy\"){\/\/ No I18N\n    \t     dateFormatRegExp = \"^(([0][1-9])|([1-2][0-9])|([3][0-1]))[-](January|February|March|April|May|June|July|August|September|October|November|December|JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER)[-](?:(?:19|20)[0-9]{2})$\";\n    \t     monthYearFormatRegExp = \"^(January|February|March|April|May|June|July|August|September|October|November|December|JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER)[-](?:(?:19|20)[0-9]{2})$\";\/\/ No I18N\n    \t  \n    \t  }else if(dateFormat === \"MMMM-dd-yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^(January|February|March|April|May|June|July|August|September|October|November|December|JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER)[-](([0][1-9])|([1-2][0-9])|([3][0-1]))[-](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp =\"^(January|February|March|April|May|June|July|August|September|October|November|December|JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER)[-](?:(?:19|20)[0-9]{2})$\";\/\/ No I18N\n    \t  \n    \t  }else if(dateFormat === \"dd\/MM\/yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp =\"^(([0][1-9])|([1-2][0-9])|([3][0-1]))[\\\/]([0][1-9]|1[012])[\\\/](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp =\"^([0][1-9]|1[012])[\\\/](?:(?:19|20)[0-9]{2})$\";\n    \t  \n    \t  }else if(dateFormat === \"dd-MM-yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^(([0][1-9])|([1-2][0-9])|([3][0-1]))[-]([0][1-9]|1[012])[-](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp = \"^([0][1-9]|1[012])[-](?:(?:19|20)[0-9]{2})$\";\n    \t  \n    \t  }else if(dateFormat === \"MM\/dd\/yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^([0][1-9]|1[012])[\\\/](([0][1-9])|([1-2][0-9])|([3][0-1]))[\\\/](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp = \"^([0][1-9]|1[012])[\\\/](?:(?:19|20)[0-9]{2})$\";\n    \t  \n    \t  }else if(dateFormat === \"yyyy-MM-dd\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^(?:(?:19|20)[0-9]{2})[-]([0][1-9]|1[012])[-](([0][1-9])|([1-2][0-9])|([3][0-1]))$\";\n    \t    monthYearFormatRegExp = \"^(?:(?:19|20)[0-9]{2})[-]([0][1-9]|1[012])$\";\n    \t  \n    \t  }else if(dateFormat === \"yyyy\/MM\/dd\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^(?:(?:19|20)[0-9]{2})[\\\/]([0][1-9]|1[012])[\\\/](([0][1-9])|([1-2][0-9])|([3][0-1]))$\";\n    \t    monthYearFormatRegExp = \"^(?:(?:19|20)[0-9]{2})[\\\/]([0][1-9]|1[012])$\";\n    \t  \n    \t  }else if(dateFormat === \"dd.MM.yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^(([0][1-9])|([1-2][0-9])|([3][0-1]))[.]([0][1-9]|1[012])[.](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp = \"^([0][1-9]|1[012])[.](?:(?:19|20)[0-9]{2})$\";\n    \t  \n    \t  }else if(dateFormat === \"MM-dd-yyyy\"){\/\/ No I18N\n    \t  \tdateFormatRegExp = \"^([0][1-9]|1[012])[-](([0][1-9])|([1-2][0-9])|([3][0-1]))[-](?:(?:19|20)[0-9]{2})$\";\n    \t    monthYearFormatRegExp = \"^([0][1-9]|1[012])[-](?:(?:19|20)[0-9]{2})$\";\n    \t  }\n    \t  dateAndMonthRegexFormateArray.push(dateFormatRegExp);\n    \t  dateAndMonthRegexFormateArray.push(monthYearFormatRegExp);\n    \t  \n    \t  return dateAndMonthRegexFormateArray;\n    \t  \n    \t\n    }\n\n\nvar dateAndMonthRegexFormateArray = zf_SetDateAndMonthRegexBasedOnDateFormate('dd-MMM-yyyy');\nvar zf_DateRegex = new RegExp(dateAndMonthRegexFormateArray[0]);\nvar zf_MonthYearRegex = new RegExp(dateAndMonthRegexFormateArray[1]);\nvar zf_MandArray = [\"Dropdown\",\"Name_First\",\"Name_Last\",\"Email\",\"SingleLine\",\"MultiLine\",\"TermsConditions\"];\nvar zf_FieldArray = [\"Dropdown\",\"Name_First\",\"Name_Last\",\"Email\",\"SingleLine\",\"MultiLine\",\"TermsConditions\"];\nvar isSalesIQIntegrationEnabled = false;\nvar salesIQFieldsArray = [];\n<\/script>\n\n\n<script>\n(function(){\n  const section = document.querySelector('.pl-team');\n  if(!section) return;\n\n  const heads = [...section.querySelectorAll('[data-team-reveal]')];\n  const groups = [...section.querySelectorAll('[data-team-group]')];\n\n  heads.forEach(el=>{\n    el.style.opacity='0';\n\n    const direction=el.dataset.teamReveal;\n    el.style.transform =\n      direction==='left' ? 'translate3d(-22px,0,0)' :\n      direction==='right' ? 'translate3d(22px,0,0)' :\n      'translate3d(0,22px,0)';\n\n    const delay=Number(el.dataset.teamDelay||0)*.09;\n    el.style.transition=\n      `opacity .72s ease ${delay}s, transform .8s cubic-bezier(.22,.61,.36,1) ${delay}s`;\n  });\n\n  groups.forEach((group,i)=>{\n    group.style.opacity='0';\n    group.style.transform='translate3d(0,22px,0)';\n    group.style.transition=\n      `opacity .64s ease ${.10+i*.08}s, transform .74s cubic-bezier(.22,.61,.36,1) ${.10+i*.08}s`;\n  });\n\n  function reveal(){\n    heads.forEach(el=>{\n      el.style.opacity='1';\n      el.style.transform='translate3d(0,0,0)';\n    });\n\n    groups.forEach(group=>{\n      group.style.opacity='1';\n      group.style.transform='translate3d(0,0,0)';\n    });\n  }\n\n  if('IntersectionObserver' in window){\n    const io=new IntersectionObserver(entries=>{\n      entries.forEach(entry=>{\n        if(entry.isIntersecting){\n          reveal();\n          io.disconnect();\n        }\n      });\n    },{\n      threshold:.08,\n      rootMargin:'0px 0px -4% 0px'\n    });\n\n    io.observe(section);\n  }else{\n    reveal();\n  }\n})();\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Print Logistic \u2014 Hero refined in Follow In-house print on demand Manufacturing, printing and fulfillment, closer to your market. Explore our capabilities \u2197 Let\u2019s talk \u2192 Poland \/ \u0141\u00f3d\u017a Full-scale production under one roof. AOP Cut &amp; Sew DTG DTF Embroidery Sublimation Learn more \u2197 01 \/ Poland facility Poland \u0141\u00f3d\u017a 02 \/ U.S. facility [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6993","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Print-On-Demand - Print Logistic<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/printlogistic.eu\/pl\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Print-On-Demand - Print Logistic\" \/>\n<meta property=\"og:description\" content=\"Print Logistic \u2014 Hero refined in Follow In-house print on demand Manufacturing, printing and fulfillment, closer to your market. Explore our capabilities \u2197 Let\u2019s talk \u2192 Poland \/ \u0141\u00f3d\u017a Full-scale production under one roof. AOP Cut &amp; Sew DTG DTF Embroidery Sublimation Learn more \u2197 01 \/ Poland facility Poland \u0141\u00f3d\u017a 02 \/ U.S. facility [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/printlogistic.eu\/pl\/\" \/>\n<meta property=\"og:site_name\" content=\"Print Logistic\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-10T10:21:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/printlogistic.eu\/\",\"url\":\"https:\/\/printlogistic.eu\/\",\"name\":\"Print-On-Demand - Print Logistic\",\"isPartOf\":{\"@id\":\"https:\/\/printlogistic.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/printlogistic.eu\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/printlogistic.eu\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg\",\"datePublished\":\"2026-08-26T09:09:54+00:00\",\"dateModified\":\"2026-09-10T10:21:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/printlogistic.eu\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/printlogistic.eu\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/printlogistic.eu\/#primaryimage\",\"url\":\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg\",\"contentUrl\":\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/printlogistic.eu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/printlogistic.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Print-On-Demand\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/printlogistic.eu\/#website\",\"url\":\"https:\/\/printlogistic.eu\/\",\"name\":\"Print Logistic - Print on Demand\",\"description\":\"Print On Demand - on demand manufacturing\",\"publisher\":{\"@id\":\"https:\/\/printlogistic.eu\/#organization\"},\"alternateName\":\"Print Logistic\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/printlogistic.eu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/printlogistic.eu\/#organization\",\"name\":\"Print Logistic - Print on Demand\",\"url\":\"https:\/\/printlogistic.eu\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/printlogistic.eu\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2023\/01\/Zasob-4-1.png\",\"contentUrl\":\"https:\/\/printlogistic.eu\/wp-content\/uploads\/2023\/01\/Zasob-4-1.png\",\"width\":151,\"height\":82,\"caption\":\"Print Logistic - Print on Demand\"},\"image\":{\"@id\":\"https:\/\/printlogistic.eu\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Print-On-Demand - Print Logistic","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/printlogistic.eu\/pl\/","og_locale":"pl_PL","og_type":"article","og_title":"Print-On-Demand - Print Logistic","og_description":"Print Logistic \u2014 Hero refined in Follow In-house print on demand Manufacturing, printing and fulfillment, closer to your market. Explore our capabilities \u2197 Let\u2019s talk \u2192 Poland \/ \u0141\u00f3d\u017a Full-scale production under one roof. AOP Cut &amp; Sew DTG DTF Embroidery Sublimation Learn more \u2197 01 \/ Poland facility Poland \u0141\u00f3d\u017a 02 \/ U.S. facility [&hellip;]","og_url":"https:\/\/printlogistic.eu\/pl\/","og_site_name":"Print Logistic","article_modified_time":"2026-09-10T10:21:33+00:00","og_image":[{"url":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"15 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/printlogistic.eu\/","url":"https:\/\/printlogistic.eu\/","name":"Print-On-Demand - Print Logistic","isPartOf":{"@id":"https:\/\/printlogistic.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/printlogistic.eu\/#primaryimage"},"image":{"@id":"https:\/\/printlogistic.eu\/#primaryimage"},"thumbnailUrl":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg","datePublished":"2026-08-26T09:09:54+00:00","dateModified":"2026-09-10T10:21:33+00:00","breadcrumb":{"@id":"https:\/\/printlogistic.eu\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/printlogistic.eu\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/printlogistic.eu\/#primaryimage","url":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg","contentUrl":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2026\/04\/15_PrintLogic_foto.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/printlogistic.eu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/printlogistic.eu\/"},{"@type":"ListItem","position":2,"name":"Print-On-Demand"}]},{"@type":"WebSite","@id":"https:\/\/printlogistic.eu\/#website","url":"https:\/\/printlogistic.eu\/","name":"Print Logistic - Print on Demand","description":"Print On Demand - on demand manufacturing","publisher":{"@id":"https:\/\/printlogistic.eu\/#organization"},"alternateName":"Print Logistic","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/printlogistic.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/printlogistic.eu\/#organization","name":"Print Logistic - Print on Demand","url":"https:\/\/printlogistic.eu\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/printlogistic.eu\/#\/schema\/logo\/image\/","url":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2023\/01\/Zasob-4-1.png","contentUrl":"https:\/\/printlogistic.eu\/wp-content\/uploads\/2023\/01\/Zasob-4-1.png","width":151,"height":82,"caption":"Print Logistic - Print on Demand"},"image":{"@id":"https:\/\/printlogistic.eu\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/pages\/6993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/comments?post=6993"}],"version-history":[{"count":61,"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/pages\/6993\/revisions"}],"predecessor-version":[{"id":7139,"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/pages\/6993\/revisions\/7139"}],"wp:attachment":[{"href":"https:\/\/printlogistic.eu\/pl\/wp-json\/wp\/v2\/media?parent=6993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}