{"id":2545,"date":"2026-04-16T16:42:45","date_gmt":"2026-04-16T16:42:45","guid":{"rendered":"https:\/\/veperpins.com\/?page_id=2545"},"modified":"2026-07-12T10:02:30","modified_gmt":"2026-07-12T10:02:30","slug":"gallery","status":"publish","type":"page","link":"https:\/\/veperpins.com\/gallery\/","title":{"rendered":"Gallery"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<style data-wp-block-html=\"css\">\n.vp-product-gallery {\n  --vp-gallery-gold: #d4af37;\n  --vp-gallery-gold-dark: #b8962d;\n  --vp-gallery-overlay: rgba(0, 0, 0, 0.92);\n  --vp-gallery-nav-bg: rgba(0, 0, 0, 0.55);\n  --vp-gallery-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);\n\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n  padding: 20px 0 40px;\n  overflow: hidden;\n  background: #fcfcfc;\n  color: #333333;\n  font-family: \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  line-height: 1.6;\n}\n\n.vp-product-gallery,\n.vp-product-gallery *,\n.vp-product-gallery *::before,\n.vp-product-gallery *::after {\n  box-sizing: border-box;\n}\n\n.vp-product-gallery__container {\n  width: 100%;\n  max-width: 1440px;\n  margin: 0 auto;\n  padding: 20px clamp(16px, 3vw, 40px);\n}\n\n.vp-product-gallery__title {\n  margin: 45px 0 15px;\n  padding-left: 15px;\n  border-left: 5px solid var(--vp-gallery-gold);\n  color: #1a1a1a;\n  font-size: clamp(22px, 2.2vw, 30px);\n  line-height: 1.35;\n  font-weight: 700;\n}\n\n.vp-product-gallery__title:first-child {\n  margin-top: 10px;\n}\n\n.vp-product-gallery__scroller {\n  display: flex;\n  width: 100%;\n  max-width: 100%;\n  gap: 18px;\n  margin: 0;\n  padding: 10px 5px 25px;\n  overflow-x: auto;\n  overflow-y: hidden;\n  overscroll-behavior-inline: contain;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  scrollbar-width: thin;\n  scrollbar-color: #cccccc transparent;\n  -webkit-overflow-scrolling: touch;\n}\n\n.vp-product-gallery__scroller::-webkit-scrollbar {\n  height: 6px;\n}\n\n.vp-product-gallery__scroller::-webkit-scrollbar-track {\n  background: transparent;\n}\n\n.vp-product-gallery__scroller::-webkit-scrollbar-thumb {\n  background: #cccccc;\n  border-radius: 10px;\n}\n\n.vp-product-gallery__item {\n  flex: 0 0 clamp(200px, 18vw, 250px);\n  width: clamp(200px, 18vw, 250px);\n  min-width: 0;\n  height: auto;\n  aspect-ratio: 1 \/ 1;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  appearance: none;\n  background: #ffffff;\n  border: 0;\n  border-radius: 12px;\n  box-shadow: var(--vp-gallery-shadow);\n  cursor: pointer;\n  scroll-snap-align: start;\n  transition:\n    transform 0.3s ease,\n    box-shadow 0.3s ease;\n}\n\n.vp-product-gallery__item:focus-visible {\n  outline: 3px solid var(--vp-gallery-gold);\n  outline-offset: 4px;\n}\n\n.vp-product-gallery__item img {\n  display: block;\n  width: 100%;\n  height: 100%;\n  aspect-ratio: 1 \/ 1;\n  object-fit: cover;\n  transition: transform 0.3s ease;\n}\n\n.vp-product-gallery__cta {\n  margin: 80px 0 40px;\n  padding: 50px 25px;\n  text-align: center;\n  background: #ffffff;\n  border: 1px solid #eeeeee;\n  border-radius: 24px;\n  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);\n}\n\n.vp-product-gallery__cta h3 {\n  margin: 0 0 15px;\n  color: #111111;\n  font-size: clamp(26px, 3vw, 34px);\n  line-height: 1.3;\n  font-weight: 700;\n}\n\n.vp-product-gallery__features {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: 12px 20px;\n  margin: 0 0 30px;\n  color: #666666;\n  font-size: 15px;\n}\n\n.vp-product-gallery__features span {\n  display: inline-flex;\n  align-items: center;\n}\n\n.vp-product-gallery__features span::before {\n  content: \"\u2713\";\n  margin-right: 7px;\n  color: var(--vp-gallery-gold);\n  font-weight: 800;\n}\n\n.vp-product-gallery__cta-button {\n  display: inline-block;\n  padding: 18px 42px;\n  color: #ffffff;\n  background: var(--vp-gallery-gold);\n  border-radius: 50px;\n  box-shadow: 0 10px 20px rgba(212, 175, 55, 0.3);\n  font-size: 17px;\n  font-weight: 700;\n  line-height: 1.3;\n  text-decoration: none;\n  transition:\n    transform 0.3s ease,\n    background-color 0.3s ease,\n    box-shadow 0.3s ease;\n}\n\n.vp-product-gallery__cta-button:hover,\n.vp-product-gallery__cta-button:focus-visible {\n  color: #ffffff;\n  background: var(--vp-gallery-gold-dark);\n  box-shadow: 0 15px 30px rgba(212, 175, 55, 0.4);\n  transform: translateY(-3px);\n}\n\n.vp-product-gallery__cta-button:focus-visible {\n  outline: 3px solid #111111;\n  outline-offset: 4px;\n}\n\n\/* Modal *\/\n.vp-gallery-modal[hidden] {\n  display: none;\n}\n\n.vp-gallery-modal {\n  position: fixed;\n  inset: 0;\n  z-index: 100000;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: 80px 85px 40px;\n  background: var(--vp-gallery-overlay);\n}\n\n.vp-gallery-modal__image {\n  display: block;\n  width: auto;\n  height: auto;\n  max-width: min(90vw, 1100px);\n  max-height: 82vh;\n  object-fit: contain;\n  border: 3px solid rgba(255, 255, 255, 0.12);\n  border-radius: 6px;\n}\n\n.vp-gallery-modal__button {\n  position: absolute;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 54px;\n  height: 54px;\n  margin: 0;\n  padding: 0;\n  color: #ffffff;\n  background: var(--vp-gallery-nav-bg);\n  border: 1px solid rgba(255, 255, 255, 0.2);\n  border-radius: 50%;\n  cursor: pointer;\n  font-family: Arial, sans-serif;\n  font-size: 24px;\n  line-height: 1;\n  backdrop-filter: blur(5px);\n  transition:\n    background-color 0.2s ease,\n    transform 0.2s ease;\n}\n\n.vp-gallery-modal__button:hover {\n  background: rgba(0, 0, 0, 0.85);\n}\n\n.vp-gallery-modal__button:focus-visible {\n  outline: 3px solid #ffffff;\n  outline-offset: 3px;\n}\n\n.vp-gallery-modal__previous,\n.vp-gallery-modal__next {\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n.vp-gallery-modal__previous {\n  left: 20px;\n}\n\n.vp-gallery-modal__next {\n  right: 20px;\n}\n\n.vp-gallery-modal__close {\n  top: 25px;\n  right: 25px;\n  font-size: 34px;\n}\n\n\/* Desktop *\/\n@media (min-width: 768px) {\n  .vp-product-gallery__item:hover {\n    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);\n    transform: translateY(-5px);\n  }\n\n  .vp-product-gallery__item:hover img {\n    transform: scale(1.03);\n  }\n}\n\n\/* Tablet *\/\n@media (max-width: 1024px) {\n  .vp-product-gallery__container {\n    padding-right: 24px;\n    padding-left: 24px;\n  }\n\n  .vp-product-gallery__item {\n    flex-basis: 220px;\n    width: 220px;\n  }\n}\n\n\/* Mobile *\/\n@media (max-width: 767px) {\n  .vp-product-gallery {\n    padding-bottom: 20px;\n  }\n\n  .vp-product-gallery__container {\n    padding: 15px 16px;\n  }\n\n  .vp-product-gallery__title {\n    margin-top: 35px;\n    padding-left: 12px;\n    border-left-width: 4px;\n    font-size: 22px;\n  }\n\n  .vp-product-gallery__scroller {\n    gap: 12px;\n    padding-bottom: 20px;\n  }\n\n  .vp-product-gallery__item {\n    flex-basis: min(72vw, 240px);\n    width: min(72vw, 240px);\n  }\n\n  .vp-product-gallery__cta {\n    margin: 55px 0 25px;\n    padding: 38px 20px;\n    border-radius: 18px;\n  }\n\n  .vp-product-gallery__cta h3 {\n    font-size: 26px;\n  }\n\n  .vp-product-gallery__features {\n    flex-direction: column;\n    align-items: center;\n    gap: 8px;\n    font-size: 15px;\n  }\n\n  .vp-product-gallery__cta-button {\n    width: 100%;\n    max-width: 320px;\n    padding: 16px 25px;\n    font-size: 16px;\n  }\n\n  .vp-gallery-modal {\n    padding: 70px 55px 30px;\n  }\n\n  .vp-gallery-modal__button {\n    width: 44px;\n    height: 44px;\n    font-size: 20px;\n  }\n\n  .vp-gallery-modal__previous {\n    left: 7px;\n  }\n\n  .vp-gallery-modal__next {\n    right: 7px;\n  }\n\n  .vp-gallery-modal__close {\n    top: 15px;\n    right: 15px;\n    font-size: 30px;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .vp-product-gallery__scroller {\n    scroll-behavior: auto;\n  }\n\n  .vp-product-gallery__item,\n  .vp-product-gallery__item img,\n  .vp-product-gallery__cta-button,\n  .vp-gallery-modal__button {\n    transition: none;\n  }\n\n  .vp-product-gallery__item:hover,\n  .vp-product-gallery__item:hover img,\n  .vp-product-gallery__cta-button:hover {\n    transform: none;\n  }\n}\n<\/style>\n\n<section\n  class=\"vp-product-gallery\"\n  aria-label=\"VeperPins custom product gallery\"\n>\n  <div class=\"vp-product-gallery__container\">\n\n    <!-- Custom Pins -->\n    <h2 class=\"vp-product-gallery__title\">Custom Pins Showcase<\/h2>\n\n    <div\n      class=\"vp-product-gallery__scroller\"\n      aria-label=\"Custom pins gallery\"\n    >\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open VeperPins custom pins image\">\n        <img fetchpriority=\"high\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/trading-pins-custom.webp\"\n          alt=\"VeperPins custom pins\"\n          width=\"800\"\n          height=\"800\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom baseball pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-baseball-pins.webp\"\n          alt=\"Custom baseball pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom trading pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/bulk-custom-trading-pins-high-quality.webp\"\n          alt=\"High-quality custom trading pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open soft enamel lapel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/05\/high-quality-custom-soft-enamel-lapel-pins.webp\"\n          alt=\"High-quality custom soft enamel lapel pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open soft enamel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/soft-enamel-pins.webp\"\n          alt=\"Custom soft enamel pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open hard enamel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-pins-hard-enamel.webp\"\n          alt=\"Custom hard enamel pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open die struck pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-die-struck-pins.webp\"\n          alt=\"Custom die struck pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open VeperPins pin collection image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/IMG_2620.webp\"\n          alt=\"VeperPins custom pin collection\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open soft enamel badge pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/05\/custom-soft-enamel-badge-pins.webp\"\n          alt=\"Custom soft enamel badge pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open gold-plated hard enamel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/05\/custom-hard-enamel-lapel-pins-with-gold-plating.webp\"\n          alt=\"Custom hard enamel lapel pins with gold plating\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open premium hard enamel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/05\/premium-custom-hard-enamel-pins-for-brands.webp\"\n          alt=\"Premium custom hard enamel pins for brands\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open durable hard enamel pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/05\/custom-hard-enamel-pins-with-durable-enamel-colors.webp\"\n          alt=\"Custom hard enamel pins with durable enamel colors\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom printed pins image\">\n        <img loading=\"lazy\"\n          src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/03\/custom-prited-pins-.webp\"\n          alt=\"Custom printed pins\"\n          width=\"800\"\n          height=\"800\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/button>\n    <\/div>\n\n    <!-- Challenge Coins -->\n    <h2 class=\"vp-product-gallery__title\">Custom Challenge Coins<\/h2>\n\n    <div\n      class=\"vp-product-gallery__scroller\"\n      aria-label=\"Custom challenge coins gallery\"\n    >\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open Vietnam veteran challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/vietnam-veteran-challenge-coins_.webp\" alt=\"Vietnam veteran challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open veteran coins in bulk image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/veteran-coins-in-bulk.webp\" alt=\"Veteran coins in bulk\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open veteran challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/veteran-challenge-coins.webp\" alt=\"Veteran challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open Marine Corps challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/us-marine-corps-challenge-coins.webp\" alt=\"US Marine Corps challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open USMC challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/marine-corps-challenge-coins_.webp\" alt=\"Marine Corps challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom Marine Corps coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-marine-corps-coins.webp\" alt=\"Custom Marine Corps coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom Marine Corps challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-marine-corps-challenge-coins_.webp\" alt=\"Custom Marine Corps challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom coin manufacturer image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/best-custom-coins-manufacturer.webp\" alt=\"Custom challenge coin manufacturer\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open US Navy challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/us-navy-challenge-coins_.webp\" alt=\"US Navy challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open United States Navy coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/united-states-navy-challenge-coins.webp\" alt=\"United States Navy challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open Navy challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/navy-challenge-coins_.webp\" alt=\"Navy challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom Navy challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-navy-challenge-coins.webp\" alt=\"Custom Navy challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open Navy coin collection image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/challenge-coins-navy.webp\" alt=\"Custom challenge coins for the Navy\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open wholesale Army challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/wholesale-army-challenge-coins-bulk-100-coins-best-price-quality_.webp\" alt=\"Wholesale Army challenge coins in bulk\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom Army challenge coins image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-army-challenge-coins_.webp\" alt=\"Custom Army challenge coins\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n    <\/div>\n\n    <!-- Medals -->\n    <h2 class=\"vp-product-gallery__title\">Custom Medals &amp; Awards<\/h2>\n\n    <div\n      class=\"vp-product-gallery__scroller\"\n      aria-label=\"Custom medals and awards gallery\"\n    >\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom race medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-medals-for-races.webp\" alt=\"Custom medals for races\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom award medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-medals-for-awards_.webp\" alt=\"Custom medals for awards\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open affordable custom medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/cheap-custom-medals.webp\" alt=\"Affordable custom medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom race medal image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-race-medals-2.webp\" alt=\"Custom race medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open running event medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-running-event-medals-with-logo.webp\" alt=\"Custom running event medals with logo\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open die struck medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/die-struck-medals-custom.webp\" alt=\"Custom die struck medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open antique finish medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/antique-color-medals-custom.webp\" alt=\"Custom antique finish medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open soft enamel medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/soft-enamel-medals-2.webp\" alt=\"Custom soft enamel medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/03\/custom-medals.webp\" alt=\"Custom medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom 5K medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/03\/Custom-5K-Medals.webp\" alt=\"Custom 5K medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom sports medals image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/03\/custom-sport-medals.webp\" alt=\"Custom sports medals\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n    <\/div>\n\n    <!-- Keychains -->\n    <h2 class=\"vp-product-gallery__title\">Custom Keychains<\/h2>\n\n    <div\n      class=\"vp-product-gallery__scroller\"\n      aria-label=\"Custom keychains gallery\"\n    >\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open acrylic keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-acrylic-keychains.webp\" alt=\"Custom acrylic keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom acrylic keychains USA image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-acrylic-keychains-usa_.webp\" alt=\"Custom acrylic keychains USA\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open PVC rubber keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-pvc-rubber-keychains-wholesale.webp\" alt=\"Custom PVC rubber keychains wholesale\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open PVC rubber keychains USA image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-pvc-rubber-keychains-wholesale-usa.webp\" alt=\"Custom PVC rubber keychains wholesale USA\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom PVC keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-pvc-keychains.webp\" alt=\"Custom PVC keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open affordable custom keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/cheap-custom-keychains_.webp\" alt=\"Affordable custom keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open wholesale custom keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/wholesale-custom-keychains-1.webp\" alt=\"Wholesale custom keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/keychains-custom.webp\" alt=\"Custom keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom made keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-made-keychains-1.webp\" alt=\"Custom made keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open soft enamel keychains image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-soft-enamel-keychains-1.webp\" alt=\"Custom soft enamel keychains\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n    <\/div>\n\n    <!-- Patches -->\n    <h2 class=\"vp-product-gallery__title\">Custom Patches<\/h2>\n\n    <div\n      class=\"vp-product-gallery__scroller\"\n      aria-label=\"Custom patches gallery\"\n    >\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open embroidered patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/Embroidered-Patches-1.webp\" alt=\"Custom embroidered patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open embroidered patch collection image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/cool-embroidered-patches-1.webp\" alt=\"Custom embroidered patch collection\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom embroidered patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-embroidered-patches-near-me-1.webp\" alt=\"Custom embroidered patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open small quantity embroidered patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-embroidered-patches-no-minimum-1.webp\" alt=\"Small quantity custom embroidered patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open letter embroidered patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/letter-embroidered-patches-1.webp\" alt=\"Custom letter embroidered patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open woven patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/woven-patches-for-hats.webp\" alt=\"Custom woven patches for hats\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open Velcro patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/funny-velcro-patches.webp\" alt=\"Custom Velcro patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open custom Velcro patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/custom-velcro-patches.webp\" alt=\"Custom Velcro patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open chenille patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/chenille-patches-custom_.webp\" alt=\"Custom chenille patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open chenille patch collection image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/Chenille-Patches.webp\" alt=\"Chenille patch collection\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n\n      <button type=\"button\" class=\"vp-product-gallery__item\" aria-label=\"Open chenille letter patches image\">\n        <img loading=\"lazy\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/04\/chenille-letter-patches.webp\" alt=\"Custom chenille letter patches\" width=\"800\" height=\"800\" loading=\"lazy\" decoding=\"async\">\n      <\/button>\n    <\/div>\n\n    <!-- CTA -->\n    <div class=\"vp-product-gallery__cta\">\n      <h3>Start Your Project with VeperPins<\/h3>\n\n      <div class=\"vp-product-gallery__features\">\n        <span>Free Professional Design<\/span>\n        <span>Detailed Quote With No Hidden Fees<\/span>\n        <span>Fast Production<\/span>\n        <span>Guaranteed High Quality<\/span>\n      <\/div>\n\n      <a\n        href=\"https:\/\/veperpins.com\/get-quote\/\"\n        class=\"vp-product-gallery__cta-button\"\n      >\n        Get a Free Quote\n      <\/a>\n    <\/div>\n  <\/div>\n\n  <!-- Image Modal -->\n  <div\n    class=\"vp-gallery-modal\"\n    role=\"dialog\"\n    aria-modal=\"true\"\n    aria-label=\"Product gallery preview\"\n    aria-hidden=\"true\"\n    hidden\n  >\n    <button\n      type=\"button\"\n      class=\"vp-gallery-modal__button vp-gallery-modal__close\"\n      aria-label=\"Close gallery\"\n    >\n      \u00d7\n    <\/button>\n\n    <button\n      type=\"button\"\n      class=\"vp-gallery-modal__button vp-gallery-modal__previous\"\n      aria-label=\"View previous image\"\n    >\n      \u276e\n    <\/button>\n\n    <img decoding=\"async\"\n      class=\"vp-gallery-modal__image\"\n      src=\"\"\n      alt=\"Gallery preview\"\n      width=\"800\"\n      height=\"800\"\n    >\n\n    <button\n      type=\"button\"\n      class=\"vp-gallery-modal__button vp-gallery-modal__next\"\n      aria-label=\"View next image\"\n    >\n      \u276f\n    <\/button>\n  <\/div>\n<\/section>\n\n<script>\n  (() => {\n    const galleries = document.querySelectorAll(\".vp-product-gallery\");\n\n    galleries.forEach((gallery) => {\n      if (gallery.dataset.galleryReady === \"true\") {\n        return;\n      }\n\n      gallery.dataset.galleryReady = \"true\";\n\n      const modal = gallery.querySelector(\".vp-gallery-modal\");\n      const modalImage = gallery.querySelector(\".vp-gallery-modal__image\");\n      const closeButton = gallery.querySelector(\".vp-gallery-modal__close\");\n      const previousButton = gallery.querySelector(\".vp-gallery-modal__previous\");\n      const nextButton = gallery.querySelector(\".vp-gallery-modal__next\");\n\n      const galleryItems = Array.from(\n        gallery.querySelectorAll(\".vp-product-gallery__item\")\n      );\n\n      if (\n        !modal ||\n        !modalImage ||\n        !closeButton ||\n        !previousButton ||\n        !nextButton ||\n        galleryItems.length === 0\n      ) {\n        return;\n      }\n\n      let currentIndex = 0;\n      let previousBodyOverflow = \"\";\n      let lastFocusedElement = null;\n\n      const updateModalImage = () => {\n        const selectedImage =\n          galleryItems[currentIndex].querySelector(\"img\");\n\n        if (!selectedImage) {\n          return;\n        }\n\n        modalImage.src = selectedImage.currentSrc || selectedImage.src;\n        modalImage.alt = selectedImage.alt || \"Gallery preview\";\n      };\n\n      const openModal = (index) => {\n        currentIndex = index;\n        lastFocusedElement = document.activeElement;\n        previousBodyOverflow = document.body.style.overflow;\n\n        updateModalImage();\n\n        modal.hidden = false;\n        modal.setAttribute(\"aria-hidden\", \"false\");\n        document.body.style.overflow = \"hidden\";\n\n        closeButton.focus();\n      };\n\n      const closeModal = () => {\n        modal.hidden = true;\n        modal.setAttribute(\"aria-hidden\", \"true\");\n        document.body.style.overflow = previousBodyOverflow;\n        modalImage.src = \"\";\n\n        if (\n          lastFocusedElement &&\n          typeof lastFocusedElement.focus === \"function\"\n        ) {\n          lastFocusedElement.focus();\n        }\n      };\n\n      const changeImage = (direction) => {\n        currentIndex =\n          (currentIndex + direction + galleryItems.length) %\n          galleryItems.length;\n\n        updateModalImage();\n      };\n\n      galleryItems.forEach((item, index) => {\n        item.addEventListener(\"click\", () => {\n          openModal(index);\n        });\n      });\n\n      closeButton.addEventListener(\"click\", closeModal);\n\n      previousButton.addEventListener(\"click\", () => {\n        changeImage(-1);\n      });\n\n      nextButton.addEventListener(\"click\", () => {\n        changeImage(1);\n      });\n\n      modal.addEventListener(\"click\", (event) => {\n        if (event.target === modal) {\n          closeModal();\n        }\n      });\n\n      document.addEventListener(\"keydown\", (event) => {\n        if (modal.hidden) {\n          return;\n        }\n\n        if (event.key === \"ArrowLeft\") {\n          changeImage(-1);\n        }\n\n        if (event.key === \"ArrowRight\") {\n          changeImage(1);\n        }\n\n        if (event.key === \"Escape\") {\n          closeModal();\n        }\n\n        if (event.key === \"Tab\") {\n          const focusableElements = [\n            closeButton,\n            previousButton,\n            nextButton\n          ];\n\n          const firstElement = focusableElements[0];\n          const lastElement =\n            focusableElements[focusableElements.length - 1];\n\n          if (\n            event.shiftKey &&\n            document.activeElement === firstElement\n          ) {\n            event.preventDefault();\n            lastElement.focus();\n          } else if (\n            !event.shiftKey &&\n            document.activeElement === lastElement\n          ) {\n            event.preventDefault();\n            firstElement.focus();\n          }\n        }\n      });\n    });\n  })();\n<\/script>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Custom Pins Showcase Custom Challenge Coins Custom Medals &amp; Awards Custom Keychains Custom Patches Start Your Project with VeperPins Free Professional Design Detailed Quote With No Hidden Fees Fast Production Guaranteed High Quality Get a Free Quote \u00d7 \u276e \u276f<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2545","page","type-page","status-publish","hentry"],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"Shirya","author_link":"https:\/\/veperpins.com\/author\/boom\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/pages\/2545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/comments?post=2545"}],"version-history":[{"count":0,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/pages\/2545\/revisions"}],"wp:attachment":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/media?parent=2545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}