{"product_id":"tactical-helmet-vest-wall-rack","title":"Tactical Helmet \u0026 Vest Wall Rack","description":"\u003cbody\u003e\n\n\n  \u003cmeta charset=\"UTF-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n  \u003cmeta name=\"description\" content=\"Heavy-duty stainless steel Tactical Helmet and Vest Wall Rack for organised storage of helmets, vests and accessories.\"\u003e\n  \u003ctitle\u003eTactical Helmet \u0026amp; Vest Wall Rack\u003c\/title\u003e\n\n  \u003cstyle\u003e\n    .bosveld-rod-section {\n      --olive-dark: #26351f;\n      --olive: #556b2f;\n      --olive-medium: #718447;\n      --olive-light: #a8b486;\n      --cream: #f6f2e7;\n      --white: #ffffff;\n      --gold: #d4af37;\n      --text: #252a22;\n      --muted: #535c4d;\n      --border: rgba(85, 107, 47, 0.18);\n\n      position: relative;\n      width: 100%;\n      overflow: hidden;\n      padding: 72px 20px;\n      color: var(--text);\n      font-family: Arial, Helvetica, sans-serif;\n      background:\n        radial-gradient(\n          circle at 10% 10%,\n          rgba(113, 132, 71, 0.18),\n          transparent 32%\n        ),\n        radial-gradient(\n          circle at 90% 80%,\n          rgba(85, 107, 47, 0.14),\n          transparent 30%\n        ),\n        var(--cream);\n    }\n\n    .bosveld-rod-section,\n    .bosveld-rod-section * {\n      box-sizing: border-box;\n    }\n\n    .bosveld-rod-container {\n      position: relative;\n      z-index: 2;\n      width: min(100%, 860px);\n      margin: 0 auto;\n    }\n\n    .bosveld-decoration {\n      position: absolute;\n      border-radius: 50%;\n      pointer-events: none;\n      animation: bosveld-float 7s ease-in-out infinite;\n    }\n\n    .bosveld-decoration--one {\n      top: 40px;\n      right: 4%;\n      width: 130px;\n      height: 130px;\n      border: 2px solid rgba(85, 107, 47, 0.18);\n    }\n\n    .bosveld-decoration--two {\n      bottom: 100px;\n      left: 3%;\n      width: 84px;\n      height: 84px;\n      background: rgba(113, 132, 71, 0.1);\n      animation-delay: -3s;\n    }\n\n    .bosveld-eyebrow {\n      margin: 0 0 14px;\n      color: var(--olive);\n      font-size: 0.8rem;\n      font-weight: 900;\n      letter-spacing: 2.2px;\n      text-transform: uppercase;\n      animation: bosveld-fade-up 0.7s ease both;\n    }\n\n    .bosveld-title {\n      max-width: 100%;\n      margin: 0;\n      color: var(--olive-dark);\n      font-size: clamp(2.7rem, 8vw, 5.4rem);\n      line-height: 0.95;\n      letter-spacing: -0.055em;\n      overflow-wrap: normal;\n      word-break: normal;\n      animation: bosveld-fade-up 0.8s 0.1s ease both;\n    }\n\n    .bosveld-title span {\n      display: block;\n      color: var(--olive-medium);\n    }\n\n    .bosveld-tagline {\n      margin: 22px 0 0;\n      color: #9a7637;\n      font-size: clamp(1.05rem, 2vw, 1.35rem);\n      font-weight: 900;\n      line-height: 1.4;\n      animation: bosveld-fade-up 0.8s 0.15s ease both;\n    }\n\n    .bosveld-intro {\n      max-width: 760px;\n      margin: 18px 0 36px;\n      color: #3f4939;\n      font-size: 1.05rem;\n      line-height: 1.75;\n      animation: bosveld-fade-up 0.8s 0.2s ease both;\n    }\n\n    .bosveld-product-visual {\n      position: relative;\n      display: grid;\n      width: 100%;\n      min-height: 480px;\n      margin-bottom: 38px;\n      overflow: hidden;\n      place-items: center;\n      border: 1px solid var(--border);\n      border-radius: 26px;\n      background:\n        radial-gradient(\n          circle at center,\n          rgba(168, 180, 134, 0.25),\n          transparent 46%\n        ),\n        linear-gradient(150deg, #ffffff, #e8eddc);\n      box-shadow: 0 22px 48px rgba(38, 53, 31, 0.14);\n    }\n\n    .bosveld-product-visual::before {\n      position: absolute;\n      width: 430px;\n      height: 430px;\n      border-radius: 50%;\n      background: rgba(113, 132, 71, 0.1);\n      content: \"\";\n      animation: bosveld-halo 5s ease-in-out infinite;\n    }\n\n    .bosveld-product-badge {\n      position: absolute;\n      top: 22px;\n      right: 22px;\n      z-index: 4;\n      display: grid;\n      width: 96px;\n      height: 96px;\n      place-items: center;\n      border-radius: 50%;\n      color: #dce7be;\n      text-align: center;\n      background: var(--olive-dark);\n      box-shadow: 0 14px 30px rgba(38, 53, 31, 0.25);\n    }\n\n    .bosveld-product-badge strong {\n      display: block;\n      font-size: 0.95rem;\n      line-height: 1.1;\n    }\n\n    .bosveld-product-badge span {\n      display: block;\n      margin-top: 5px;\n      color: rgba(255, 255, 255, 0.68);\n      font-size: 0.5rem;\n      font-weight: 900;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n    }\n\n    .bosveld-rod-bag {\n      position: relative;\n      z-index: 3;\n      width: min(650px, 86%);\n      height: 290px;\n      animation: bosveld-product-float 4s ease-in-out infinite;\n    }\n\n    .bosveld-bag-body {\n      position: absolute;\n      inset: 28px 48px 28px 32px;\n      overflow: hidden;\n      border: 8px solid #151915;\n      border-radius: 32px 18px 18px 32px;\n      background:\n        repeating-linear-gradient(\n          90deg,\n          rgba(255, 255, 255, 0.025) 0 5px,\n          rgba(0, 0, 0, 0.035) 5px 10px\n        ),\n        linear-gradient(145deg, #333a33, #181c18 70%);\n      box-shadow:\n        inset 10px 10px 18px rgba(255, 255, 255, 0.035),\n        inset -14px -14px 24px rgba(0, 0, 0, 0.3),\n        0 26px 38px rgba(34, 40, 31, 0.22);\n    }\n\n    .bosveld-bag-tip {\n      position: absolute;\n      top: 88px;\n      right: 0;\n      width: 88px;\n      height: 118px;\n      border: 8px solid #151915;\n      border-left: 0;\n      border-radius: 0 64px 64px 0;\n      background: linear-gradient(145deg, #2d332d, #151915);\n    }\n\n    .bosveld-strap {\n      position: absolute;\n      top: 0;\n      left: 125px;\n      width: 350px;\n      height: 92px;\n      border: 18px solid #2b312b;\n      border-bottom: 0;\n      border-radius: 50% 50% 0 0;\n      box-shadow: inset 0 0 0 4px #454d44;\n      transform: rotate(-4deg);\n    }\n\n    .bosveld-zip-line {\n      position: absolute;\n      z-index: 2;\n      top: 66px;\n      left: 60px;\n      right: 62px;\n      height: 4px;\n      border-radius: 999px;\n      background: #737c6c;\n      box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.18);\n    }\n\n    .bosveld-pocket {\n      position: absolute;\n      z-index: 2;\n      bottom: 52px;\n      height: 72px;\n      border: 4px solid #121612;\n      border-radius: 14px;\n      background: linear-gradient(145deg, #3b4339, #232923);\n    }\n\n    .bosveld-pocket::before {\n      position: absolute;\n      top: 11px;\n      left: 14px;\n      right: 14px;\n      height: 3px;\n      border-radius: 999px;\n      background: #717a69;\n      content: \"\";\n    }\n\n    .bosveld-pocket--one {\n      left: 90px;\n      width: 180px;\n    }\n\n    .bosveld-pocket--two {\n      left: 292px;\n      width: 150px;\n    }\n\n    .bosveld-brand-mark {\n      position: absolute;\n      z-index: 4;\n      top: 111px;\n      left: 50%;\n      width: 160px;\n      padding: 12px 14px;\n      border: 2px solid rgba(228, 236, 205, 0.55);\n      color: #f0f3e7;\n      font-size: 0.78rem;\n      font-weight: 900;\n      letter-spacing: 0.14em;\n      text-align: center;\n      text-transform: uppercase;\n      background: #3a462c;\n      transform: translateX(-50%) rotate(-2deg);\n      box-shadow: 0 14px 28px rgba(32, 39, 28, 0.2);\n    }\n\n    .bosveld-section {\n      width: 100%;\n      margin-bottom: 36px;\n      padding: clamp(24px, 5vw, 40px);\n      border: 1px solid var(--border);\n      border-radius: 22px;\n      background: rgba(255, 255, 255, 0.94);\n      box-shadow: 0 14px 35px rgba(38, 53, 31, 0.08);\n    }\n\n    .bosveld-section--dark {\n      color: var(--white);\n      background: var(--olive-dark);\n      box-shadow: 0 20px 45px rgba(38, 53, 31, 0.18);\n    }\n\n    .bosveld-section-heading {\n      max-width: 100%;\n      margin: 0 0 10px;\n      color: var(--olive-dark);\n      font-size: clamp(1.65rem, 4vw, 2.45rem);\n      line-height: 1.15;\n      letter-spacing: -0.03em;\n    }\n\n    .bosveld-section--dark .bosveld-section-heading {\n      color: var(--white);\n    }\n\n    .bosveld-section-intro {\n      max-width: 680px;\n      margin: 0 0 24px;\n      color: var(--muted);\n      line-height: 1.65;\n    }\n\n    .bosveld-section--dark .bosveld-section-intro {\n      color: rgba(255, 255, 255, 0.72);\n    }\n\n    .bosveld-benefit-grid,\n    .bosveld-feature-grid,\n    .bosveld-spec-grid,\n    .bosveld-review-grid {\n      display: grid;\n      width: 100%;\n      gap: 16px;\n    }\n\n    .bosveld-benefit-grid {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n\n    .bosveld-feature-grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .bosveld-spec-grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .bosveld-review-grid {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n\n    .bosveld-benefit-card,\n    .bosveld-feature-card,\n    .bosveld-spec-card,\n    .bosveld-review-card {\n      position: relative;\n      overflow: hidden;\n      min-width: 0;\n      border-radius: 17px;\n      transition:\n        transform 0.35s ease,\n        box-shadow 0.35s ease,\n        border-color 0.35s ease,\n        background 0.35s ease;\n    }\n\n    .bosveld-benefit-card {\n      padding: 22px;\n      border: 1px solid rgba(255, 255, 255, 0.13);\n      background: rgba(255, 255, 255, 0.07);\n    }\n\n    .bosveld-benefit-card:hover {\n      border-color: rgba(255, 255, 255, 0.32);\n      background: rgba(255, 255, 255, 0.12);\n      transform: translateY(-6px);\n    }\n\n    .bosveld-benefit-icon {\n      display: grid;\n      width: 48px;\n      height: 48px;\n      margin-bottom: 14px;\n      place-items: center;\n      border-radius: 15px;\n      color: var(--olive-dark);\n      font-size: 1.3rem;\n      background: #dce7be;\n      animation: bosveld-icon-bob 3.3s ease-in-out infinite;\n    }\n\n    .bosveld-benefit-card:nth-child(2) .bosveld-benefit-icon {\n      animation-delay: 0.3s;\n    }\n\n    .bosveld-benefit-card:nth-child(3) .bosveld-benefit-icon {\n      animation-delay: 0.6s;\n    }\n\n    .bosveld-benefit-card strong,\n    .bosveld-feature-card strong,\n    .bosveld-spec-card strong {\n      display: block;\n      margin-bottom: 8px;\n      font-size: 0.96rem;\n    }\n\n    .bosveld-benefit-card p {\n      margin: 0;\n      color: rgba(255, 255, 255, 0.72);\n      font-size: 0.86rem;\n      line-height: 1.6;\n    }\n\n    .bosveld-feature-card,\n    .bosveld-spec-card {\n      padding: 20px;\n      border: 1px solid var(--border);\n      background: #f8faf3;\n    }\n\n    .bosveld-feature-card:hover,\n    .bosveld-spec-card:hover {\n      border-color: var(--olive-medium);\n      box-shadow: 0 18px 36px rgba(38, 53, 31, 0.12);\n      transform: translateY(-6px);\n    }\n\n    .bosveld-feature-card p,\n    .bosveld-spec-card p {\n      margin: 0;\n      color: var(--muted);\n      font-size: 0.86rem;\n      line-height: 1.6;\n    }\n\n    .bosveld-review-card {\n      padding: 24px;\n      border: 1px solid var(--border);\n      background: var(--white);\n      box-shadow: 0 12px 30px rgba(38, 53, 31, 0.07);\n      cursor: pointer;\n    }\n\n    .bosveld-review-card::before {\n      position: absolute;\n      top: 0;\n      left: -120%;\n      width: 70%;\n      height: 100%;\n      background: linear-gradient(\n        120deg,\n        transparent,\n        rgba(255, 255, 255, 0.8),\n        transparent\n      );\n      content: \"\";\n      transition: left 0.7s ease;\n    }\n\n    .bosveld-review-card:hover {\n      border-color: var(--olive-medium);\n      box-shadow: 0 24px 50px rgba(38, 53, 31, 0.16);\n      transform: translateY(-8px);\n    }\n\n    .bosveld-review-card:hover::before {\n      left: 150%;\n    }\n\n    .bosveld-review-stars {\n      position: relative;\n      z-index: 2;\n      margin-bottom: 14px;\n      color: var(--gold);\n      font-size: 1.2rem;\n      letter-spacing: 3px;\n      animation: bosveld-star-glow 2.2s ease-in-out infinite;\n    }\n\n    .bosveld-review-quote {\n      position: relative;\n      z-index: 2;\n      margin: 0 0 18px;\n      color: #3f473a;\n      font-size: 0.92rem;\n      font-style: italic;\n      line-height: 1.7;\n    }\n\n    .bosveld-reviewer-name {\n      position: relative;\n      z-index: 2;\n      display: block;\n      color: var(--olive-dark);\n      font-size: 0.92rem;\n      font-weight: 900;\n    }\n\n    .bosveld-reviewer-location {\n      position: relative;\n      z-index: 2;\n      display: block;\n      margin-top: 3px;\n      color: #70786a;\n      font-size: 0.78rem;\n    }\n\n    .bosveld-cta {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr);\n      gap: 18px;\n      padding: clamp(24px, 5vw, 38px);\n      border-radius: 22px;\n      color: var(--white);\n      background: linear-gradient(135deg, var(--olive), var(--olive-dark));\n      box-shadow: 0 20px 45px rgba(38, 53, 31, 0.2);\n    }\n\n    .bosveld-cta h2 {\n      margin: 0 0 8px;\n      font-size: clamp(1.55rem, 4vw, 2.2rem);\n    }\n\n    .bosveld-cta p {\n      margin: 0;\n      color: rgba(255, 255, 255, 0.76);\n      line-height: 1.65;\n    }\n\n    .bosveld-button-group {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 12px;\n    }\n\n    .bosveld-button {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      min-height: 52px;\n      overflow: hidden;\n      padding: 0 22px;\n      border: 2px solid var(--white);\n      border-radius: 10px;\n      font-weight: 900;\n      text-align: center;\n      text-decoration: none;\n      transition:\n        transform 0.3s ease,\n        background 0.3s ease,\n        color 0.3s ease,\n        box-shadow 0.3s ease;\n    }\n\n    .bosveld-button:hover {\n      transform: translateY(-4px);\n      box-shadow: 0 12px 25px rgba(0, 0, 0, 0.18);\n    }\n\n    .bosveld-button--primary {\n      color: var(--olive-dark);\n      background: var(--white);\n    }\n\n    .bosveld-button--secondary {\n      color: var(--white);\n      background: transparent;\n    }\n\n    .bosveld-footer-tagline {\n      margin: 30px 0 0;\n      color: var(--olive-dark);\n      font-size: 0.86rem;\n      font-weight: 900;\n      letter-spacing: 2.3px;\n      text-align: center;\n      text-transform: uppercase;\n    }\n\n    .bosveld-reveal {\n      opacity: 0;\n      transform: translateY(28px);\n      transition:\n        opacity 0.75s ease,\n        transform 0.75s ease;\n    }\n\n    .bosveld-reveal.is-visible {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    @keyframes bosveld-fade-up {\n      from {\n        opacity: 0;\n        transform: translateY(24px);\n      }\n\n      to {\n        opacity: 1;\n        transform: translateY(0);\n      }\n    }\n\n    @keyframes bosveld-float {\n      0%,\n      100% {\n        transform: translateY(0) rotate(0deg);\n      }\n\n      50% {\n        transform: translateY(-18px) rotate(8deg);\n      }\n    }\n\n    @keyframes bosveld-product-float {\n      0%,\n      100% {\n        transform: translateY(0) rotate(-1deg);\n      }\n\n      50% {\n        transform: translateY(-12px) rotate(1deg);\n      }\n    }\n\n    @keyframes bosveld-halo {\n      0%,\n      100% {\n        opacity: 0.75;\n        transform: scale(0.92);\n      }\n\n      50% {\n        opacity: 1;\n        transform: scale(1.06);\n      }\n    }\n\n    @keyframes bosveld-icon-bob {\n      0%,\n      100% {\n        transform: translateY(0) rotate(-2deg);\n      }\n\n      50% {\n        transform: translateY(-7px) rotate(2deg);\n      }\n    }\n\n    @keyframes bosveld-star-glow {\n      0%,\n      100% {\n        transform: scale(1);\n        text-shadow:\n          0 0 6px rgba(212, 175, 55, 0.45),\n          0 0 14px rgba(212, 175, 55, 0.22);\n      }\n\n      50% {\n        transform: scale(1.05);\n        text-shadow:\n          0 0 10px rgba(212, 175, 55, 0.85),\n          0 0 22px rgba(212, 175, 55, 0.46);\n      }\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-rod-section {\n        padding: 48px 16px;\n      }\n\n      .bosveld-title {\n        font-size: clamp(2.45rem, 13vw, 4rem);\n      }\n\n      .bosveld-product-visual {\n        min-height: 390px;\n      }\n\n      .bosveld-rod-bag {\n        width: min(500px, 90%);\n        height: 225px;\n      }\n\n      .bosveld-bag-body {\n        inset: 22px 38px 24px 24px;\n      }\n\n      .bosveld-bag-tip {\n        top: 68px;\n        width: 66px;\n        height: 92px;\n      }\n\n      .bosveld-strap {\n        left: 92px;\n        width: 270px;\n        height: 68px;\n        border-width: 14px;\n      }\n\n      .bosveld-zip-line {\n        top: 51px;\n        left: 45px;\n        right: 50px;\n      }\n\n      .bosveld-pocket {\n        bottom: 42px;\n        height: 56px;\n      }\n\n      .bosveld-pocket--one {\n        left: 66px;\n        width: 130px;\n      }\n\n      .bosveld-pocket--two {\n        left: 214px;\n        width: 105px;\n      }\n\n      .bosveld-brand-mark {\n        top: 84px;\n        width: 130px;\n        padding: 9px 11px;\n      }\n\n      .bosveld-benefit-grid,\n      .bosveld-feature-grid,\n      .bosveld-spec-grid,\n      .bosveld-review-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .bosveld-product-badge {\n        top: 14px;\n        right: 14px;\n        width: 76px;\n        height: 76px;\n      }\n    }\n\n    @media screen and (max-width: 430px) {\n      .bosveld-rod-section {\n        padding-inline: 10px;\n      }\n\n      .bosveld-rod-container {\n        width: 100%;\n      }\n\n      .bosveld-title {\n        font-size: clamp(2.2rem, 14vw, 3.35rem);\n      }\n\n      .bosveld-intro {\n        font-size: 0.96rem;\n      }\n\n      .bosveld-product-visual {\n        min-height: 330px;\n        border-radius: 20px;\n      }\n\n      .bosveld-rod-bag {\n        width: 94%;\n        height: 190px;\n      }\n\n      .bosveld-bag-body {\n        inset: 20px 34px 20px 20px;\n        border-width: 6px;\n      }\n\n      .bosveld-bag-tip {\n        top: 60px;\n        width: 54px;\n        height: 74px;\n        border-width: 6px;\n      }\n\n      .bosveld-strap {\n        left: 70px;\n        width: 220px;\n        height: 58px;\n        border-width: 12px;\n      }\n\n      .bosveld-pocket {\n        display: none;\n      }\n\n      .bosveld-brand-mark {\n        top: 72px;\n        width: 110px;\n        font-size: 0.67rem;\n      }\n\n      .bosveld-product-badge {\n        width: 66px;\n        height: 66px;\n      }\n\n      .bosveld-section {\n        padding: 22px 17px;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .bosveld-rod-section *,\n      .bosveld-rod-section *::before,\n      .bosveld-rod-section *::after {\n        animation-duration: 0.01ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: 0.01ms !important;\n      }\n\n      .bosveld-reveal {\n        opacity: 1;\n        transform: none;\n      }\n    }\n  \u003c\/style\u003e\n\n  \u003cstyle\u003e\n    \/* Creative animation upgrade *\/\n    .bosveld-product-visual {\n      perspective: 1200px;\n    }\n\n    .bosveld-product-visual::after {\n      position: absolute;\n      left: 50%;\n      bottom: 30px;\n      width: 72%;\n      height: 34px;\n      border-radius: 50%;\n      background: rgba(34, 48, 29, 0.18);\n      filter: blur(18px);\n      content: \"\";\n      transform: translateX(-50%);\n      animation: bosveld-shadow-breathe 4s ease-in-out infinite;\n    }\n\n    .bosveld-water-ripple,\n    .bosveld-water-ripple::before,\n    .bosveld-water-ripple::after {\n      position: absolute;\n      left: 50%;\n      bottom: 42px;\n      border: 2px solid rgba(85, 107, 47, 0.16);\n      border-radius: 50%;\n      content: \"\";\n      pointer-events: none;\n      transform: translateX(-50%) scale(0.35);\n      animation: bosveld-ripple 4.8s ease-out infinite;\n    }\n\n    .bosveld-water-ripple {\n      z-index: 1;\n      width: 360px;\n      height: 74px;\n    }\n\n    .bosveld-water-ripple::before {\n      bottom: -2px;\n      width: 280px;\n      height: 58px;\n      animation-delay: 1.2s;\n    }\n\n    .bosveld-water-ripple::after {\n      bottom: -2px;\n      width: 210px;\n      height: 44px;\n      animation-delay: 2.4s;\n    }\n\n    .bosveld-floating-lure {\n      position: absolute;\n      top: 72px;\n      left: 8%;\n      z-index: 5;\n      display: grid;\n      width: 48px;\n      height: 48px;\n      place-items: center;\n      border-radius: 50% 50% 48% 52%;\n      color: var(--olive-dark);\n      font-size: 1.35rem;\n      background: rgba(255, 255, 255, 0.86);\n      box-shadow: 0 12px 28px rgba(38, 53, 31, 0.14);\n      animation: bosveld-lure-swing 4.6s ease-in-out infinite;\n    }\n\n    .bosveld-floating-lure::before {\n      position: absolute;\n      left: 50%;\n      bottom: 100%;\n      width: 1px;\n      height: 90px;\n      background: linear-gradient(\n        to top,\n        rgba(38, 53, 31, 0.34),\n        transparent\n      );\n      content: \"\";\n    }\n\n    .bosveld-rod-bag {\n      transform-style: preserve-3d;\n      will-change: transform;\n      transition: transform 0.28s ease;\n    }\n\n    .bosveld-brand-mark {\n      animation: bosveld-brand-pulse 3.4s ease-in-out infinite;\n    }\n\n    .bosveld-zip-line {\n      overflow: hidden;\n    }\n\n    .bosveld-zip-line::after {\n      position: absolute;\n      top: 0;\n      left: -40%;\n      width: 40%;\n      height: 100%;\n      border-radius: inherit;\n      background: linear-gradient(\n        90deg,\n        transparent,\n        rgba(255, 255, 255, 0.75),\n        transparent\n      );\n      content: \"\";\n      animation: bosveld-zip-shine 3.8s ease-in-out infinite;\n    }\n\n    .bosveld-product-badge {\n      animation:\n        bosveld-badge-float 3.5s ease-in-out infinite,\n        bosveld-badge-glow 2.8s ease-in-out infinite;\n    }\n\n    .bosveld-section {\n      isolation: isolate;\n    }\n\n    .bosveld-section::before {\n      position: absolute;\n      inset: 0;\n      z-index: -1;\n      border-radius: inherit;\n      background:\n        radial-gradient(\n          circle at 100% 0%,\n          rgba(168, 180, 134, 0.15),\n          transparent 30%\n        );\n      content: \"\";\n      opacity: 0;\n      transition: opacity 0.4s ease;\n    }\n\n    .bosveld-section:hover::before {\n      opacity: 1;\n    }\n\n    .bosveld-benefit-card,\n    .bosveld-feature-card,\n    .bosveld-spec-card,\n    .bosveld-review-card {\n      transform-style: preserve-3d;\n      will-change: transform;\n    }\n\n    .bosveld-benefit-card::after,\n    .bosveld-feature-card::after,\n    .bosveld-spec-card::after,\n    .bosveld-review-card::after {\n      position: absolute;\n      inset: 0;\n      border-radius: inherit;\n      background: linear-gradient(\n        135deg,\n        rgba(255, 255, 255, 0.16),\n        transparent 42%\n      );\n      content: \"\";\n      opacity: 0;\n      pointer-events: none;\n      transition: opacity 0.35s ease;\n    }\n\n    .bosveld-benefit-card:hover::after,\n    .bosveld-feature-card:hover::after,\n    .bosveld-spec-card:hover::after,\n    .bosveld-review-card:hover::after {\n      opacity: 1;\n    }\n\n    .bosveld-benefit-icon {\n      box-shadow:\n        0 10px 24px rgba(38, 53, 31, 0.18),\n        inset 0 0 0 1px rgba(255, 255, 255, 0.3);\n    }\n\n    .bosveld-review-card:nth-child(2) {\n      transition-delay: 0.04s;\n    }\n\n    .bosveld-review-card:nth-child(3) {\n      transition-delay: 0.08s;\n    }\n\n    .bosveld-button {\n      isolation: isolate;\n    }\n\n    .bosveld-button::before {\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      z-index: -1;\n      width: 0;\n      height: 0;\n      border-radius: 50%;\n      background: rgba(168, 180, 134, 0.34);\n      content: \"\";\n      transform: translate(-50%, -50%);\n      transition:\n        width 0.45s ease,\n        height 0.45s ease;\n    }\n\n    .bosveld-button:hover::before {\n      width: 360px;\n      height: 360px;\n    }\n\n    .bosveld-button--primary:hover {\n      color: var(--olive-dark);\n      background: #edf1e1;\n    }\n\n    .bosveld-footer-tagline {\n      animation: bosveld-letter-breathe 4s ease-in-out infinite;\n    }\n\n    .bosveld-reveal {\n      filter: blur(7px);\n    }\n\n    .bosveld-reveal.is-visible {\n      filter: blur(0);\n    }\n\n    .bosveld-stagger \u003e * {\n      opacity: 0;\n      transform: translateY(18px);\n      transition:\n        opacity 0.6s ease,\n        transform 0.6s ease;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e * {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(1) {\n      transition-delay: 0.08s;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(2) {\n      transition-delay: 0.16s;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(3) {\n      transition-delay: 0.24s;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(4) {\n      transition-delay: 0.32s;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(5) {\n      transition-delay: 0.40s;\n    }\n\n    .bosveld-reveal.is-visible .bosveld-stagger \u003e *:nth-child(6) {\n      transition-delay: 0.48s;\n    }\n\n    @keyframes bosveld-ripple {\n      0% {\n        opacity: 0;\n        transform: translateX(-50%) scale(0.35);\n      }\n\n      20% {\n        opacity: 0.75;\n      }\n\n      100% {\n        opacity: 0;\n        transform: translateX(-50%) scale(1.35);\n      }\n    }\n\n    @keyframes bosveld-shadow-breathe {\n      0%,\n      100% {\n        opacity: 0.34;\n        transform: translateX(-50%) scaleX(0.85);\n      }\n\n      50% {\n        opacity: 0.18;\n        transform: translateX(-50%) scaleX(0.7);\n      }\n    }\n\n    @keyframes bosveld-lure-swing {\n      0%,\n      100% {\n        transform: translateY(0) rotate(-10deg);\n      }\n\n      50% {\n        transform: translateY(14px) rotate(10deg);\n      }\n    }\n\n    @keyframes bosveld-brand-pulse {\n      0%,\n      100% {\n        box-shadow: 0 14px 28px rgba(32, 39, 28, 0.2);\n      }\n\n      50% {\n        box-shadow:\n          0 16px 34px rgba(32, 39, 28, 0.28),\n          0 0 24px rgba(168, 180, 134, 0.22);\n      }\n    }\n\n    @keyframes bosveld-zip-shine {\n      0%,\n      45% {\n        left: -40%;\n      }\n\n      75%,\n      100% {\n        left: 120%;\n      }\n    }\n\n    @keyframes bosveld-badge-float {\n      0%,\n      100% {\n        transform: translateY(0) rotate(-2deg);\n      }\n\n      50% {\n        transform: translateY(-7px) rotate(2deg);\n      }\n    }\n\n    @keyframes bosveld-badge-glow {\n      0%,\n      100% {\n        box-shadow: 0 14px 30px rgba(38, 53, 31, 0.25);\n      }\n\n      50% {\n        box-shadow:\n          0 18px 38px rgba(38, 53, 31, 0.32),\n          0 0 25px rgba(168, 180, 134, 0.2);\n      }\n    }\n\n    @keyframes bosveld-letter-breathe {\n      0%,\n      100% {\n        letter-spacing: 2.3px;\n      }\n\n      50% {\n        letter-spacing: 3.2px;\n      }\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-floating-lure {\n        top: 58px;\n        left: 6%;\n        width: 42px;\n        height: 42px;\n        font-size: 1.1rem;\n      }\n\n      .bosveld-water-ripple {\n        width: 270px;\n        height: 56px;\n      }\n    }\n\n    @media screen and (max-width: 430px) {\n      .bosveld-floating-lure {\n        display: none;\n      }\n\n      .bosveld-water-ripple {\n        width: 210px;\n        height: 44px;\n      }\n\n      .bosveld-button:hover::before {\n        width: 260px;\n        height: 260px;\n      }\n    }\n\n    @media (hover: none) {\n      .bosveld-benefit-card,\n      .bosveld-feature-card,\n      .bosveld-spec-card,\n      .bosveld-review-card {\n        transform: none !important;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .bosveld-reveal {\n        filter: none;\n      }\n\n      .bosveld-stagger \u003e * {\n        opacity: 1;\n        transform: none;\n      }\n\n      .bosveld-water-ripple,\n      .bosveld-floating-lure {\n        display: none;\n      }\n    }\n  \u003c\/style\u003e\n\n\n  \u003cstyle\u003e\n    \/* Alternate layouts while preserving the same section formatting *\/\n\n    .bosveld-feature-timeline {\n      position: relative;\n      display: grid;\n      gap: 16px;\n      margin-top: 24px;\n      padding-left: 26px;\n    }\n\n    .bosveld-feature-timeline::before {\n      position: absolute;\n      top: 10px;\n      bottom: 10px;\n      left: 9px;\n      width: 2px;\n      border-radius: 999px;\n      background: linear-gradient(\n        to bottom,\n        var(--olive-light),\n        var(--olive),\n        var(--olive-light)\n      );\n      content: \"\";\n      opacity: 0.65;\n    }\n\n    .bosveld-feature-step {\n      position: relative;\n      display: grid;\n      grid-template-columns: 42px minmax(0, 1fr);\n      gap: 14px;\n      align-items: start;\n      padding: 18px;\n      border: 1px solid var(--border);\n      border-radius: 17px;\n      background: #f8faf3;\n      transition:\n        transform 0.35s ease,\n        box-shadow 0.35s ease,\n        border-color 0.35s ease;\n    }\n\n    .bosveld-feature-step::before {\n      position: absolute;\n      top: 28px;\n      left: -23px;\n      width: 14px;\n      height: 14px;\n      border: 4px solid var(--cream);\n      border-radius: 50%;\n      background: var(--olive);\n      box-shadow: 0 0 0 3px rgba(85, 107, 47, 0.14);\n      content: \"\";\n      transition: transform 0.35s ease;\n    }\n\n    .bosveld-feature-step:hover {\n      border-color: var(--olive-medium);\n      box-shadow: 0 18px 36px rgba(38, 53, 31, 0.12);\n      transform: translateX(8px);\n    }\n\n    .bosveld-feature-step:hover::before {\n      transform: scale(1.25);\n    }\n\n    .bosveld-feature-step-number {\n      display: grid;\n      width: 42px;\n      height: 42px;\n      place-items: center;\n      border-radius: 13px;\n      color: var(--olive-dark);\n      font-size: 0.76rem;\n      font-weight: 900;\n      background: #dce7be;\n      box-shadow: 0 8px 18px rgba(38, 53, 31, 0.12);\n    }\n\n    .bosveld-feature-step strong {\n      display: block;\n      margin: 2px 0 6px;\n      color: var(--olive-dark);\n      font-size: 0.98rem;\n    }\n\n    .bosveld-feature-step p {\n      margin: 0;\n      color: var(--muted);\n      font-size: 0.86rem;\n      line-height: 1.62;\n    }\n\n    .bosveld-spec-table-wrap {\n      width: 100%;\n      margin-top: 24px;\n      overflow: hidden;\n      border: 1px solid var(--border);\n      border-radius: 18px;\n      background: var(--white);\n      box-shadow: 0 12px 28px rgba(38, 53, 31, 0.06);\n    }\n\n    .bosveld-spec-table {\n      width: 100%;\n      border-collapse: collapse;\n    }\n\n    .bosveld-spec-table tr {\n      transition: background 0.3s ease;\n    }\n\n    .bosveld-spec-table tr:hover {\n      background: #f1f5e5;\n    }\n\n    .bosveld-spec-table th,\n    .bosveld-spec-table td {\n      padding: 18px 20px;\n      border-bottom: 1px solid var(--border);\n      text-align: left;\n      vertical-align: top;\n    }\n\n    .bosveld-spec-table tr:last-child th,\n    .bosveld-spec-table tr:last-child td {\n      border-bottom: 0;\n    }\n\n    .bosveld-spec-table th {\n      width: 34%;\n      color: var(--olive-dark);\n      font-size: 0.86rem;\n      font-weight: 900;\n      letter-spacing: 0.02em;\n      background: rgba(168, 180, 134, 0.12);\n    }\n\n    .bosveld-spec-table td {\n      color: var(--muted);\n      font-size: 0.88rem;\n      line-height: 1.55;\n    }\n\n    .bosveld-review-showcase {\n      display: grid;\n      grid-template-columns: minmax(0, 1.15fr) minmax(250px, 0.85fr);\n      gap: 18px;\n      margin-top: 24px;\n    }\n\n    .bosveld-review-featured {\n      position: relative;\n      overflow: hidden;\n      padding: 30px;\n      border-radius: 20px;\n      color: var(--white);\n      background:\n        radial-gradient(\n          circle at 100% 0%,\n          rgba(168, 180, 134, 0.18),\n          transparent 36%\n        ),\n        linear-gradient(145deg, var(--olive), var(--olive-dark));\n      box-shadow: 0 20px 42px rgba(38, 53, 31, 0.16);\n      transition:\n        transform 0.35s ease,\n        box-shadow 0.35s ease;\n    }\n\n    .bosveld-review-featured:hover {\n      transform: translateY(-7px);\n      box-shadow: 0 28px 54px rgba(38, 53, 31, 0.24);\n    }\n\n    .bosveld-review-featured::before {\n      position: absolute;\n      top: 18px;\n      right: 22px;\n      color: rgba(255, 255, 255, 0.09);\n      font-family: Georgia, serif;\n      font-size: 7rem;\n      line-height: 1;\n      content: \"“\";\n    }\n\n    .bosveld-review-featured .bosveld-review-stars {\n      color: #f3d86b;\n    }\n\n    .bosveld-review-featured .bosveld-review-quote {\n      max-width: 92%;\n      color: rgba(255, 255, 255, 0.88);\n      font-size: 1rem;\n      line-height: 1.8;\n    }\n\n    .bosveld-review-featured .bosveld-reviewer-name {\n      color: var(--white);\n    }\n\n    .bosveld-review-featured .bosveld-reviewer-location {\n      color: rgba(255, 255, 255, 0.7);\n    }\n\n    .bosveld-review-mini-list {\n      display: grid;\n      gap: 14px;\n    }\n\n    .bosveld-review-mini {\n      position: relative;\n      overflow: hidden;\n      padding: 20px;\n      border: 1px solid var(--border);\n      border-radius: 17px;\n      background: var(--white);\n      box-shadow: 0 12px 28px rgba(38, 53, 31, 0.07);\n      transition:\n        transform 0.35s ease,\n        box-shadow 0.35s ease,\n        border-color 0.35s ease;\n    }\n\n    .bosveld-review-mini:hover {\n      border-color: var(--olive-medium);\n      box-shadow: 0 20px 40px rgba(38, 53, 31, 0.13);\n      transform: translateX(7px);\n    }\n\n    .bosveld-review-mini .bosveld-review-stars {\n      margin-bottom: 10px;\n      font-size: 1rem;\n    }\n\n    .bosveld-review-mini .bosveld-review-quote {\n      margin-bottom: 14px;\n      font-size: 0.86rem;\n      line-height: 1.62;\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-review-showcase {\n        grid-template-columns: 1fr;\n      }\n\n      .bosveld-feature-timeline {\n        padding-left: 20px;\n      }\n\n      .bosveld-feature-step {\n        grid-template-columns: 36px minmax(0, 1fr);\n      }\n\n      .bosveld-feature-step-number {\n        width: 36px;\n        height: 36px;\n      }\n\n      .bosveld-spec-table th,\n      .bosveld-spec-table td {\n        padding: 15px 14px;\n      }\n    }\n\n    @media screen and (max-width: 500px) {\n      .bosveld-spec-table,\n      .bosveld-spec-table tbody,\n      .bosveld-spec-table tr,\n      .bosveld-spec-table th,\n      .bosveld-spec-table td {\n        display: block;\n        width: 100%;\n      }\n\n      .bosveld-spec-table tr {\n        padding: 14px 0;\n        border-bottom: 1px solid var(--border);\n      }\n\n      .bosveld-spec-table tr:last-child {\n        border-bottom: 0;\n      }\n\n      .bosveld-spec-table th,\n      .bosveld-spec-table td {\n        border: 0;\n      }\n\n      .bosveld-spec-table th {\n        padding-bottom: 6px;\n      }\n\n      .bosveld-spec-table td {\n        padding-top: 0;\n      }\n\n      .bosveld-review-featured {\n        padding: 24px 20px;\n      }\n\n      .bosveld-review-featured .bosveld-review-quote {\n        max-width: 100%;\n      }\n    }\n  \u003c\/style\u003e\n\n\n  \u003cstyle\u003e\n    \/* Website-first desktop layout *\/\n    html,\n    body {\n      width: 100%;\n      max-width: 100%;\n      margin: 0;\n      overflow-x: hidden;\n    }\n\n    .bosveld-rod-section {\n      width: 100%;\n      padding: 64px 28px 80px;\n    }\n\n    .bosveld-rod-container {\n      width: min(1180px, 100%);\n      max-width: 1180px;\n      margin: 0 auto;\n    }\n\n    .bosveld-title,\n    .bosveld-tagline,\n    .bosveld-intro {\n      text-align: left;\n    }\n\n    .bosveld-title {\n      max-width: 1000px;\n      font-size: clamp(3.8rem, 6vw, 6.8rem);\n    }\n\n    .bosveld-intro {\n      max-width: 900px;\n    }\n\n    .bosveld-product-visual {\n      width: 100%;\n      min-height: 600px;\n    }\n\n    .bosveld-rod-bag {\n      width: min(760px, 82%);\n      height: 330px;\n    }\n\n    .bosveld-section {\n      width: 100%;\n      padding: 38px;\n    }\n\n    .bosveld-benefit-grid {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n\n    .bosveld-feature-timeline {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      padding-left: 0;\n    }\n\n    .bosveld-feature-timeline::before {\n      display: none;\n    }\n\n    .bosveld-feature-step::before {\n      display: none;\n    }\n\n    .bosveld-feature-step {\n      min-height: 150px;\n    }\n\n    .bosveld-spec-table th {\n      width: 28%;\n    }\n\n    .bosveld-review-showcase {\n      grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);\n    }\n\n    .bosveld-cta {\n      grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);\n      align-items: center;\n    }\n\n    .bosveld-button-group {\n      grid-template-columns: 1fr;\n    }\n\n    @media screen and (max-width: 980px) {\n      .bosveld-rod-container {\n        width: min(860px, 100%);\n      }\n\n      .bosveld-title {\n        font-size: clamp(3.2rem, 8vw, 5.4rem);\n      }\n\n      .bosveld-product-visual {\n        min-height: 520px;\n      }\n\n      .bosveld-feature-timeline {\n        grid-template-columns: 1fr;\n      }\n\n      .bosveld-review-showcase {\n        grid-template-columns: 1fr;\n      }\n\n      .bosveld-cta {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-rod-section {\n        padding: 42px 16px 56px;\n      }\n\n      .bosveld-title {\n        font-size: clamp(2.65rem, 12vw, 4.2rem);\n      }\n\n      .bosveld-product-visual {\n        min-height: 400px;\n      }\n\n      .bosveld-benefit-grid,\n      .bosveld-feature-timeline,\n      .bosveld-review-showcase {\n        grid-template-columns: 1fr;\n      }\n\n      .bosveld-section {\n        padding: 26px 20px;\n      }\n    }\n\n    @media screen and (max-width: 430px) {\n      .bosveld-rod-section {\n        padding-inline: 10px;\n      }\n\n      .bosveld-title {\n        font-size: clamp(2.25rem, 13vw, 3.35rem);\n      }\n\n      .bosveld-product-visual {\n        min-height: 330px;\n      }\n\n      .bosveld-section {\n        padding: 22px 16px;\n      }\n    }\n  \u003c\/style\u003e\n\n\n  \u003cstyle\u003e\n    \/* Final single-column fix for every section *\/\n    .bosveld-benefit-grid,\n    .bosveld-feature-timeline,\n    .bosveld-feature-grid,\n    .bosveld-spec-grid,\n    .bosveld-review-grid,\n    .bosveld-review-showcase,\n    .bosveld-review-mini-list,\n    .bosveld-cta {\n      display: grid !important;\n      grid-template-columns: 1fr !important;\n      width: 100% !important;\n      gap: 16px !important;\n    }\n\n    .bosveld-benefit-card,\n    .bosveld-feature-step,\n    .bosveld-feature-card,\n    .bosveld-spec-card,\n    .bosveld-review-card,\n    .bosveld-review-featured,\n    .bosveld-review-mini {\n      width: 100% !important;\n      max-width: 100% !important;\n      min-width: 0 !important;\n    }\n\n    .bosveld-feature-timeline {\n      padding-left: 22px !important;\n    }\n\n    .bosveld-feature-timeline::before {\n      display: block !important;\n    }\n\n    .bosveld-feature-step::before {\n      display: block !important;\n    }\n\n    .bosveld-spec-table-wrap {\n      width: 100% !important;\n      overflow: hidden;\n    }\n\n    .bosveld-spec-table {\n      width: 100% !important;\n      table-layout: fixed;\n    }\n\n    .bosveld-spec-table th,\n    .bosveld-spec-table td {\n      width: auto !important;\n      overflow-wrap: anywhere;\n      word-break: normal;\n    }\n\n    .bosveld-review-showcase {\n      align-items: stretch;\n    }\n\n    .bosveld-review-featured,\n    .bosveld-review-mini {\n      display: block;\n    }\n\n    .bosveld-review-featured .bosveld-review-quote,\n    .bosveld-review-mini .bosveld-review-quote {\n      max-width: 100% !important;\n    }\n\n    .bosveld-section {\n      overflow: hidden;\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-feature-timeline {\n        padding-left: 20px !important;\n      }\n    }\n\n    @media screen and (max-width: 500px) {\n      .bosveld-spec-table,\n      .bosveld-spec-table tbody,\n      .bosveld-spec-table tr,\n      .bosveld-spec-table th,\n      .bosveld-spec-table td {\n        display: block;\n        width: 100% !important;\n      }\n\n      .bosveld-spec-table tr {\n        padding: 14px 0;\n        border-bottom: 1px solid var(--border);\n      }\n\n      .bosveld-spec-table tr:last-child {\n        border-bottom: 0;\n      }\n\n      .bosveld-spec-table th,\n      .bosveld-spec-table td {\n        border: 0;\n      }\n\n      .bosveld-spec-table th {\n        padding-bottom: 6px;\n      }\n\n      .bosveld-spec-table td {\n        padding-top: 0;\n      }\n    }\n  \u003c\/style\u003e\n\n\n\n\n  \n  \u003cstyle\u003e\n    \/* Earmuff case illustration overrides *\/\n    .bosveld-earmuff-case {\n      width: min(650px, 86%);\n      height: 330px;\n    }\n\n    .bosveld-earmuff-case .bosveld-case-shell {\n      inset: 42px 54px 34px;\n      border-radius: 72px 66px 60px 72px;\n    }\n\n    .bosveld-earmuff-case .bosveld-case-handle {\n      top: 5px;\n      left: 50%;\n      width: 235px;\n      height: 78px;\n      transform: translateX(-50%);\n    }\n\n    .bosveld-earmuff-case .bosveld-case-zip {\n      top: 65px;\n      left: 80px;\n      right: 80px;\n      height: 4px;\n    }\n\n    .bosveld-headband {\n      position: absolute;\n      z-index: 3;\n      top: 74px;\n      left: 50%;\n      width: 330px;\n      height: 155px;\n      border: 18px solid #242a24;\n      border-bottom: 0;\n      border-radius: 50% 50% 0 0;\n      transform: translateX(-50%);\n    }\n\n    .bosveld-earcup {\n      position: absolute;\n      z-index: 4;\n      top: 98px;\n      width: 96px;\n      height: 132px;\n      border: 10px solid #171b17;\n      border-radius: 46px;\n      background: linear-gradient(145deg, #454d44, #222722);\n      box-shadow: inset 0 0 0 6px rgba(255,255,255,.04);\n    }\n\n    .bosveld-earcup--left {\n      left: 126px;\n      transform: rotate(-7deg);\n    }\n\n    .bosveld-earcup--right {\n      right: 126px;\n      transform: rotate(7deg);\n    }\n\n    .bosveld-earmuff-case .bosveld-brand-mark {\n      top: 150px;\n      width: 190px;\n    }\n\n    .bosveld-earmuff-case .bosveld-case-pocket {\n      left: 50%;\n      bottom: 58px;\n      width: 280px;\n      height: 48px;\n      transform: translateX(-50%);\n    }\n\n    .bosveld-earmuff-case .bosveld-pocket--two,\n    .bosveld-earmuff-case .bosveld-bag-tip {\n      display: none;\n    }\n\n    @media screen and (max-width: 760px) {\n      .bosveld-earmuff-case {\n        width: min(500px, 92%);\n        height: 250px;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-shell {\n        inset: 34px 34px 28px;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-handle {\n        width: 175px;\n        height: 60px;\n        border-width: 14px;\n      }\n\n      .bosveld-headband {\n        top: 61px;\n        width: 245px;\n        height: 115px;\n        border-width: 14px;\n      }\n\n      .bosveld-earcup {\n        top: 77px;\n        width: 72px;\n        height: 100px;\n        border-width: 8px;\n      }\n\n      .bosveld-earcup--left { left: 78px; }\n      .bosveld-earcup--right { right: 78px; }\n\n      .bosveld-earmuff-case .bosveld-brand-mark {\n        top: 112px;\n        width: 145px;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-pocket {\n        bottom: 42px;\n        width: 210px;\n        height: 36px;\n        display: block;\n      }\n    }\n\n    @media screen and (max-width: 430px) {\n      .bosveld-earmuff-case {\n        width: 96%;\n        height: 205px;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-shell {\n        inset: 30px 18px 24px;\n        border-width: 6px;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-handle {\n        width: 138px;\n        height: 50px;\n        border-width: 11px;\n      }\n\n      .bosveld-headband {\n        top: 54px;\n        width: 188px;\n        height: 91px;\n        border-width: 11px;\n      }\n\n      .bosveld-earcup {\n        top: 65px;\n        width: 58px;\n        height: 80px;\n        border-width: 7px;\n      }\n\n      .bosveld-earcup--left { left: 47px; }\n      .bosveld-earcup--right { right: 47px; }\n\n      .bosveld-earmuff-case .bosveld-brand-mark {\n        top: 92px;\n        width: 118px;\n        font-size: .65rem;\n      }\n\n      .bosveld-earmuff-case .bosveld-case-pocket {\n        bottom: 35px;\n        width: 165px;\n        height: 28px;\n        display: block;\n      }\n    }\n  \u003c\/style\u003e\n\n\n\n  \u003cstyle\u003e\n    \/* Bosveld tactical soft gun case illustration *\/\n    .bosveld-tactical-case {\n      position: relative;\n      z-index: 3;\n      width: min(820px, 92%);\n      height: 350px;\n      transform-style: preserve-3d;\n      animation: bosveld-product-float 4s ease-in-out infinite;\n    }\n\n    .tactical-case-body {\n      position: absolute;\n      inset: 58px 46px 42px 38px;\n      overflow: hidden;\n      border: 8px solid #3a2c1c;\n      border-radius: 26px 54px 54px 26px;\n      background:\n        repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 3px, rgba(0,0,0,.025) 3px 7px),\n        linear-gradient(145deg, #b38a56, #8a6238 72%);\n      box-shadow: inset 0 0 0 4px rgba(255,255,255,.05), 0 28px 38px rgba(62,44,25,.28);\n    }\n\n    .tactical-case-body::after {\n      position: absolute;\n      inset: 17px;\n      border: 2px dashed rgba(63,43,24,.42);\n      border-radius: 18px 42px 42px 18px;\n      content: \"\";\n    }\n\n    .tactical-case-zip {\n      position: absolute;\n      z-index: 4;\n      top: 79px;\n      left: 70px;\n      right: 82px;\n      height: 5px;\n      border-radius: 999px;\n      background: #4b3924;\n      box-shadow: 0 0 0 2px rgba(255,255,255,.1);\n      overflow: hidden;\n    }\n\n    .tactical-case-zip::after {\n      position: absolute;\n      top: 0;\n      left: -35%;\n      width: 34%;\n      height: 100%;\n      background: linear-gradient(90deg, transparent, rgba(255,255,255,.62), transparent);\n      content: \"\";\n      animation: bosveld-zip-shine 3.8s ease-in-out infinite;\n    }\n\n    .tactical-handle {\n      position: absolute;\n      z-index: 2;\n      top: 19px;\n      left: 50%;\n      width: 250px;\n      height: 82px;\n      border: 20px solid #60462b;\n      border-bottom: 0;\n      border-radius: 50% 50% 0 0;\n      transform: translateX(-50%);\n      box-shadow: inset 0 0 0 4px rgba(255,255,255,.08);\n    }\n\n    .tactical-pocket {\n      position: absolute;\n      z-index: 5;\n      bottom: 67px;\n      height: 92px;\n      border: 6px solid #4a351f;\n      border-radius: 16px;\n      background: linear-gradient(145deg, #a47747, #75502d);\n      box-shadow: inset 0 0 0 3px rgba(255,255,255,.04), 0 10px 18px rgba(54,36,19,.18);\n    }\n\n    .tactical-pocket::before {\n      position: absolute;\n      top: 15px;\n      left: 15px;\n      right: 15px;\n      height: 4px;\n      border-radius: 999px;\n      background: #4b3621;\n      content: \"\";\n    }\n\n    .tactical-pocket--one { left: 86px; width: 210px; }\n    .tactical-pocket--two { left: 316px; width: 170px; }\n    .tactical-pocket--three { right: 92px; width: 155px; }\n\n    .tactical-webbing {\n      position: absolute;\n      z-index: 6;\n      left: 112px;\n      right: 115px;\n      bottom: 89px;\n      height: 18px;\n      border-top: 7px solid #49351f;\n      border-bottom: 7px solid #49351f;\n      opacity: .62;\n    }\n\n    .tactical-sling {\n      position: absolute;\n      z-index: 1;\n      top: 83px;\n      left: 160px;\n      width: 470px;\n      height: 210px;\n      border: 18px solid #52402b;\n      border-top: 0;\n      border-radius: 0 0 50% 50%;\n      transform: rotate(-4deg);\n      opacity: .92;\n    }\n\n    .tactical-brand {\n      position: absolute;\n      z-index: 7;\n      top: 132px;\n      left: 50%;\n      width: 170px;\n      padding: 12px 14px;\n      border: 2px solid rgba(255,244,221,.5);\n      color: #fff4dd;\n      font-size: .78rem;\n      font-weight: 900;\n      letter-spacing: .14em;\n      text-align: center;\n      text-transform: uppercase;\n      background: #594326;\n      transform: translateX(-50%) rotate(-1deg);\n      animation: bosveld-brand-pulse 3.4s ease-in-out infinite;\n    }\n\n    .tactical-colour-row {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 12px;\n      margin-top: 18px;\n    }\n\n    .tactical-colour {\n      display: inline-flex;\n      align-items: center;\n      gap: 9px;\n      padding: 10px 14px;\n      border: 1px solid var(--border);\n      border-radius: 999px;\n      color: var(--olive-dark);\n      font-size: .86rem;\n      font-weight: 900;\n      background: #fff;\n    }\n\n    .tactical-swatch {\n      width: 18px;\n      height: 18px;\n      border: 2px solid rgba(38,53,31,.18);\n      border-radius: 50%;\n      background: #a87943;\n    }\n\n    @media screen and (max-width:760px) {\n      .bosveld-tactical-case { width:min(600px,96%); height:280px; }\n      .tactical-case-body { inset:48px 25px 32px 22px; border-width:7px; }\n      .tactical-handle { width:190px; height:65px; border-width:16px; }\n      .tactical-case-zip { top:65px; left:50px; right:55px; }\n      .tactical-pocket { bottom:49px; height:73px; }\n      .tactical-pocket--one { left:52px; width:155px; }\n      .tactical-pocket--two { left:220px; width:130px; }\n      .tactical-pocket--three { right:58px; width:115px; }\n      .tactical-sling { left:110px; width:350px; height:160px; border-width:14px; }\n      .tactical-brand { top:106px; width:140px; }\n      .tactical-webbing { left:75px; right:78px; bottom:66px; }\n    }\n\n    @media screen and (max-width:430px) {\n      .bosveld-tactical-case { height:220px; }\n      .tactical-case-body { inset:42px 10px 25px 10px; border-width:6px; }\n      .tactical-handle { top:17px; width:140px; height:52px; border-width:12px; }\n      .tactical-case-zip { top:57px; left:30px; right:34px; }\n      .tactical-pocket { bottom:38px; height:56px; border-width:4px; }\n      .tactical-pocket--one { left:28px; width:112px; }\n      .tactical-pocket--two { left:149px; width:90px; }\n      .tactical-pocket--three { right:29px; width:82px; }\n      .tactical-pocket::before { top:10px; left:10px; right:10px; }\n      .tactical-brand { top:88px; width:112px; padding:9px; font-size:.65rem; }\n      .tactical-sling { display:none; }\n      .tactical-webbing { left:45px; right:45px; bottom:51px; height:12px; border-width:5px; }\n    }\n  \u003c\/style\u003e\n\n\n\n\n\n\n\u003cstyle id=\"helmet-rack-shopify-safe-fix\"\u003e\n.gear-wall,\n.gear-backplate,\n.gear-arm,\n.gear-helmet,\n.gear-vest,\n.gear-hook{\n  display:block !important;\n  visibility:visible !important;\n  opacity:1 !important;\n  overflow:hidden !important;\n  text-indent:-9999px !important;\n  font-size:0 !important;\n  line-height:0 !important;\n}\n\n.gear-rack-visual{\n  position:relative !important;\n  z-index:10 !important;\n  display:block !important;\n  visibility:visible !important;\n  opacity:1 !important;\n  width:min(700px,92%) !important;\n  height:390px !important;\n  margin:0 auto !important;\n}\n\n.bosveld-product-visual{\n  min-height:500px !important;\n}\n\n@media(max-width:760px){\n  .gear-rack-visual{height:315px !important;width:96% !important;}\n  .bosveld-product-visual{min-height:410px !important;}\n}\n\n@media(max-width:430px){\n  .gear-rack-visual{height:250px !important;width:98% !important;}\n  .bosveld-product-visual{min-height:330px !important;}\n}\n\u003c\/style\u003e\n\n\u003csection class=\"bosveld-rod-section\"\u003e\n  \u003cspan class=\"bosveld-decoration bosveld-decoration--one\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n  \u003cspan class=\"bosveld-decoration bosveld-decoration--two\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n\n  \u003cstyle\u003e\n    .gear-rack-visual{position:relative;z-index:3;width:min(700px,92%);height:390px;animation:bosveld-product-float 4s ease-in-out infinite}\n    .gear-wall{position:absolute;left:50%;bottom:28px;width:520px;height:300px;border:10px solid #293028;border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.08),transparent 30%),repeating-linear-gradient(90deg,#747a71 0 56px,#666c63 56px 60px);box-shadow:0 28px 46px rgba(38,53,31,.22);transform:translateX(-50%)}\n    .gear-backplate{position:absolute;z-index:5;left:50%;top:78px;width:230px;height:70px;border:8px solid #151915;border-radius:18px;background:linear-gradient(145deg,#7f8980,#434b43);transform:translateX(-50%);box-shadow:0 16px 28px rgba(25,30,24,.22)}\n    .gear-arm{position:absolute;z-index:4;left:50%;top:115px;width:26px;height:150px;border:7px solid #171b17;border-radius:999px;background:linear-gradient(145deg,#687168,#343b34);transform:translateX(-50%)}\n    .gear-helmet{position:absolute;z-index:7;left:50%;top:100px;width:200px;height:130px;border:8px solid #171b17;border-radius:50% 50% 34% 34%;background:linear-gradient(145deg,rgba(255,255,255,.08),transparent 34%),linear-gradient(145deg,#4d5b45,#293426 72%);transform:translateX(-50%);box-shadow:0 20px 32px rgba(27,34,24,.24)}\n    .gear-vest{position:absolute;z-index:6;left:50%;bottom:42px;width:240px;height:140px;border:8px solid #171b17;clip-path:polygon(14% 0,36% 12%,50% 4%,64% 12%,86% 0,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#4a5745 0 26px,#3d4939 26px 30px);transform:translateX(-50%);box-shadow:0 22px 34px rgba(27,34,24,.22)}\n    .gear-hook{position:absolute;z-index:6;top:142px;width:92px;height:18px;border:6px solid #171b17;border-radius:999px;background:linear-gradient(145deg,#697168,#323832)}\n    .gear-hook.left{left:92px;transform:rotate(-8deg)}\n    .gear-hook.right{right:92px;transform:rotate(8deg)}\n    .gear-label{position:absolute;z-index:9;left:50%;bottom:18px;width:250px;padding:11px 15px;border:2px solid rgba(236,242,225,.52);border-radius:999px;color:#eff4e8;font-size:.68rem;font-weight:900;letter-spacing:.1em;text-align:center;text-transform:uppercase;background:#35402f;transform:translateX(-50%)}\n    .gear-grid{display:grid!important;grid-template-columns:1fr!important;gap:14px}\n    .gear-item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:15px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:16px;background:#f8faf3}\n    .gear-icon{display:grid;width:56px;height:56px;place-items:center;border-radius:16px;font-size:1.4rem;background:#dce7be}\n    @media(max-width:760px){.gear-rack-visual{height:315px}.gear-wall{width:390px;height:245px}.gear-backplate{top:65px;width:180px;height:58px}.gear-helmet{top:84px;width:154px;height:104px}.gear-arm{top:98px;height:120px}.gear-vest{width:188px;height:110px}.gear-hook.left{left:55px}.gear-hook.right{right:55px}}\n    @media(max-width:430px){.gear-rack-visual{height:250px}.gear-wall{width:285px;height:195px;border-width:6px}.gear-backplate{top:52px;width:138px;height:46px;border-width:6px}.gear-helmet{top:68px;width:118px;height:82px;border-width:6px}.gear-arm{top:80px;height:92px;border-width:6px}.gear-vest{width:145px;height:88px;border-width:6px}.gear-hook{width:62px;height:14px;border-width:5px}.gear-hook.left{left:35px}.gear-hook.right{right:35px}.gear-label{width:160px;font-size:.5rem;padding:9px}}\n  \u003c\/style\u003e\n\n  \u003cdiv class=\"bosveld-rod-container\"\u003e\n    \u003cp class=\"bosveld-eyebrow\"\u003ePurpose-built wall storage for serious gear\u003c\/p\u003e\n    \u003ch1 class=\"bosveld-title\"\u003eTactical Helmet \u0026amp; Vest \u003cspan\u003eWall Rack\u003c\/span\u003e\n\u003c\/h1\u003e\n    \u003cp class=\"bosveld-tagline\"\u003eMount Your Gear. Own Your Space.\u003c\/p\u003e\n    \u003cp class=\"bosveld-intro\"\u003eKeep helmets, vests and accessories organised, accessible and off the floor. This heavy-duty stainless steel wall rack is built for garages, armouries, mudrooms and tactical prep spaces where reliable storage matters.\u003c\/p\u003e\n\n    \u003cdiv class=\"bosveld-product-visual\" data-parallax\u003e\n      \u003cdiv class=\"bosveld-water-ripple\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"bosveld-floating-lure\" aria-hidden=\"true\"\u003e🪖\u003c\/div\u003e\n      \u003cdiv class=\"bosveld-product-badge\"\u003e\u003cdiv\u003e\n\u003cstrong\u003eStainless Steel\u003c\/strong\u003e\u003cspan\u003eRust and corrosion resistant\u003c\/span\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gear-rack-visual\" role=\"img\" aria-label=\"Wall-mounted rack holding a tactical helmet and vest\"\u003e\n        \u003cdiv class=\"gear-wall\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-backplate\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-arm\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-helmet\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-vest\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-hook left\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-hook right\" aria-hidden=\"true\"\u003e​\u003c\/div\u003e\n        \u003cdiv class=\"gear-label\"\u003eHelmet \u0026amp; Vest Wall Rack\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003csection class=\"bosveld-section bosveld-section--dark bosveld-reveal\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eGive your gear a proper home\u003c\/h2\u003e\n      \u003cp class=\"bosveld-section-intro\"\u003eSave space, protect valuable equipment and keep essential kit ready to grab.\u003c\/p\u003e\n      \u003cdiv class=\"bosveld-benefit-grid bosveld-stagger\"\u003e\n        \u003carticle class=\"bosveld-benefit-card\"\u003e\u003cdiv class=\"bosveld-benefit-icon\"\u003e📐\u003c\/div\u003e\n\u003cstrong\u003eReclaim Floor Space\u003c\/strong\u003e\u003cp\u003eWall-mounted storage keeps bulky helmets and vests off benches, floors and shelves.\u003c\/p\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-benefit-card\"\u003e\u003cdiv class=\"bosveld-benefit-icon\"\u003e⚡\u003c\/div\u003e\n\u003cstrong\u003eFaster Gear Access\u003c\/strong\u003e\u003cp\u003eKeep essential equipment visible and ready for quick use.\u003c\/p\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-benefit-card\"\u003e\u003cdiv class=\"bosveld-benefit-icon\"\u003e🛡️\u003c\/div\u003e\n\u003cstrong\u003eBuilt for Long-Term Use\u003c\/strong\u003e\u003cp\u003eStainless steel construction resists rust and corrosion in demanding environments.\u003c\/p\u003e\u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"bosveld-section bosveld-reveal\" id=\"features\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eWhy operators choose this rack\u003c\/h2\u003e\n      \u003cdiv class=\"bosveld-feature-timeline bosveld-stagger\"\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e01\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003ePremium Stainless Steel\u003c\/strong\u003e\u003cp\u003eRust-resistant, corrosion-resistant and built for repeated use.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e02\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eSpace-Saving Wall Mount\u003c\/strong\u003e\u003cp\u003eMoves gear off the floor and frees shelving and workbench space.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e03\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eHelmet \u0026amp; Vest Support\u003c\/strong\u003e\u003cp\u003ePurpose-built support for helmets, vests and accessories.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e04\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eVersatile Compatibility\u003c\/strong\u003e\u003cp\u003eSuitable for tactical, motorcycle, soccer and racing helmets.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e05\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eClean Minimal Profile\u003c\/strong\u003e\u003cp\u003eFits garages, armouries, mudrooms and preparation areas.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e06\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eInstallation Hardware Included\u003c\/strong\u003e\u003cp\u003eSupplied ready for straightforward wall mounting.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"bosveld-section bosveld-reveal\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eWhat can it hold?\u003c\/h2\u003e\n      \u003cdiv class=\"gear-grid bosveld-stagger\"\u003e\n        \u003cdiv class=\"gear-item\"\u003e\n\u003cdiv class=\"gear-icon\"\u003e🪖\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eTactical Helmets\u003c\/strong\u003e\u003cp\u003eSupport compatible tactical and ballistic-style helmets.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"gear-item\"\u003e\n\u003cdiv class=\"gear-icon\"\u003e🏍️\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eMotorcycle Helmets\u003c\/strong\u003e\u003cp\u003eStore road, off-road and adventure helmets off the floor.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"gear-item\"\u003e\n\u003cdiv class=\"gear-icon\"\u003e🏎️\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eRacing \u0026amp; Sports Helmets\u003c\/strong\u003e\u003cp\u003eSuitable for many racing, soccer and protective helmets.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"gear-item\"\u003e\n\u003cdiv class=\"gear-icon\"\u003e🦺\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eVests \u0026amp; Accessories\u003c\/strong\u003e\u003cp\u003eHang compatible tactical vests, harnesses and lightweight gear.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"bosveld-section bosveld-reveal\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eWhat you get\u003c\/h2\u003e\n      \u003cdiv class=\"gear-grid\"\u003e\n        \u003cdiv class=\"gear-item\"\u003e\n\u003cdiv class=\"gear-icon\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eStainless Steel Wall-Mounted Helmet \u0026amp; Vest Rack\u003c\/strong\u003e\u003cp\u003eReady to install, with mounting hardware included.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"bosveld-section bosveld-reveal\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eProduct specifications\u003c\/h2\u003e\n      \u003cdiv class=\"bosveld-spec-table-wrap\"\u003e\u003ctable class=\"bosveld-spec-table\"\u003e\u003ctbody\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eProduct Type\u003c\/th\u003e\n\u003ctd\u003eWall-mounted helmet and vest storage rack\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eMaterial\u003c\/th\u003e\n\u003ctd\u003eStainless steel\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eMounting Style\u003c\/th\u003e\n\u003ctd\u003eWall mounted\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eCorrosion Resistance\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eSuitable Gear\u003c\/th\u003e\n\u003ctd\u003eTactical, motorcycle, soccer and racing helmets, plus compatible vests and accessories\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eHardware\u003c\/th\u003e\n\u003ctd\u003eInstallation hardware included\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth scope=\"row\"\u003eBest For\u003c\/th\u003e\n\u003ctd\u003eGarages, armouries, mudrooms, workshops and tactical prep rooms\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"bosveld-section bosveld-reveal\"\u003e\n      \u003ch2 class=\"bosveld-section-heading\"\u003eInstallation guidance\u003c\/h2\u003e\n      \u003cdiv class=\"bosveld-feature-timeline bosveld-stagger\"\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e01\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eChoose a Solid Surface\u003c\/strong\u003e\u003cp\u003eSelect a suitable wall, stud, masonry surface or reinforced mounting point.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e02\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eMark the Mounting Points\u003c\/strong\u003e\u003cp\u003eLevel the rack and mark each fixing position before drilling.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e03\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eUse Suitable Fixings\u003c\/strong\u003e\u003cp\u003eMatch the hardware to the wall type and expected load.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n        \u003carticle class=\"bosveld-feature-step\"\u003e\u003cspan class=\"bosveld-feature-step-number\"\u003e04\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck Before Loading\u003c\/strong\u003e\u003cp\u003eConfirm the rack is level, tight and secure before adding equipment.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003cdiv class=\"bosveld-section bosveld-reveal\" style=\"padding:22px 24px;border-left:6px solid var(--olive);background:#edf1e1;\"\u003e\n\u003cstrong\u003eInstallation note:\u003c\/strong\u003e Confirm that the wall and fixings can safely support the rack and stored equipment. Hardware requirements may differ by wall type. Gear shown is for illustration and is not included.\u003c\/div\u003e\n\n    \u003cdiv class=\"bosveld-cta bosveld-reveal\"\u003e\n      \u003cdiv\u003e\n\u003ch2\u003eReady to give your gear a proper home?\u003c\/h2\u003e\n\u003cp\u003eSave space, protect valuable equipment and keep your helmet and vest ready to grab.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"bosveld-button-group\"\u003e\n        \u003ca class=\"bosveld-button bosveld-button--primary\" href=\"#features\"\u003eView Product Features\u003c\/a\u003e\n        \u003cbutton type=\"button\" class=\"bosveld-button bosveld-button--secondary\" id=\"bosveld-add-to-cart\" data-bosveld-add-to-cart\u003e🛒 Add to Cart\u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"bosveld-footer-tagline\"\u003eMounted. Organised. Mission Ready.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const revealItems = document.querySelectorAll(\".bosveld-reveal\");\n  if (\"IntersectionObserver\" in window) {\n    const observer = new IntersectionObserver(function(entries, revealObserver) {\n      entries.forEach(function(entry) {\n        if (!entry.isIntersecting) return;\n        entry.target.classList.add(\"is-visible\");\n        revealObserver.unobserve(entry.target);\n      });\n    }, { threshold: 0.14 });\n    revealItems.forEach(function(item) { observer.observe(item); });\n  } else {\n    revealItems.forEach(function(item) { item.classList.add(\"is-visible\"); });\n  }\n\n  document.querySelectorAll('.bosveld-rod-section a[href^=\"#\"]').forEach(function(link) {\n    link.addEventListener(\"click\", function(event) {\n      const target = document.querySelector(link.getAttribute(\"href\"));\n      if (!target) return;\n      event.preventDefault();\n      target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n    });\n  });\n\n  const canHover = window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches;\n  if (canHover) {\n    const visual = document.querySelector(\"[data-parallax]\");\n    const product = document.querySelector(\".gear-rack-visual\");\n    if (visual \u0026\u0026 product) {\n      visual.addEventListener(\"mousemove\", function(event) {\n        const rect = visual.getBoundingClientRect();\n        const x = (event.clientX - rect.left) \/ rect.width - 0.5;\n        const y = (event.clientY - rect.top) \/ rect.height - 0.5;\n        product.style.animation = \"none\";\n        product.style.transform = \"rotateY(\" + x * 8 + \"deg) rotateX(\" + y * -6 + \"deg) translate3d(\" + x * 14 + \"px,\" + y * 10 + \"px,20px)\";\n      });\n      visual.addEventListener(\"mouseleave\", function() {\n        product.style.transform = \"\";\n        product.style.animation = \"bosveld-product-float 4s ease-in-out infinite\";\n      });\n    }\n  }\n\n  document.querySelectorAll(\".bosveld-section, .bosveld-cta\").forEach(function(section, index) {\n    section.style.transitionDelay = index * 0.04 + \"s\";\n  });\n});\n\u003c\/script\u003e\n\n\n\n\n\n\n\n\n\n\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const buttons = document.querySelectorAll(\n    \"#bosveld-add-to-cart, [data-bosveld-add-to-cart]\"\n  );\n\n  if (!buttons.length) return;\n\n  function getSelectedVariantId() {\n    const productForms = document.querySelectorAll(\n      'form[action*=\"\/cart\/add\"], product-form form'\n    );\n\n    for (const form of productForms) {\n      const selectedVariant = form.querySelector(\n        'input[name=\"id\"]:checked, select[name=\"id\"], input[name=\"id\"]'\n      );\n\n      if (selectedVariant \u0026\u0026 selectedVariant.value) {\n        const variantId = Number(selectedVariant.value);\n        if (Number.isInteger(variantId) \u0026\u0026 variantId \u003e 0) return variantId;\n      }\n    }\n\n    const variantField = document.querySelector(\n      '[name=\"id\"][value], [data-variant-id]'\n    );\n\n    if (variantField) {\n      const rawValue =\n        variantField.value ||\n        variantField.getAttribute(\"data-variant-id\");\n\n      const variantId = Number(rawValue);\n      if (Number.isInteger(variantId) \u0026\u0026 variantId \u003e 0) return variantId;\n    }\n\n    for (const button of buttons) {\n      const manualId = Number(button.dataset.variantId);\n      if (Number.isInteger(manualId) \u0026\u0026 manualId \u003e 0) return manualId;\n    }\n\n    return null;\n  }\n\n  async function addToCart(button) {\n    const variantId = getSelectedVariantId();\n\n    if (!variantId) {\n      alert(\n        \"No Shopify variant could be detected. Place this section on the Shopify product page or add data-variant-id to the Add to Cart button.\"\n      );\n      return;\n    }\n\n    const originalText = button.innerHTML;\n\n    buttons.forEach(function (item) {\n      item.disabled = true;\n      item.setAttribute(\"aria-busy\", \"true\");\n      item.innerHTML = \"Adding…\";\n    });\n\n    try {\n      const root =\n        window.Shopify \u0026\u0026 window.Shopify.routes\n          ? window.Shopify.routes.root\n          : \"\/\";\n\n      const response = await fetch(root + \"cart\/add.js\", {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application\/json\",\n          \"Accept\": \"application\/json\"\n        },\n        body: JSON.stringify({\n          items: [{ id: variantId, quantity: 1 }]\n        })\n      });\n\n      const result = await response.json();\n\n      if (!response.ok) {\n        throw new Error(\n          result.description ||\n          result.message ||\n          \"The product could not be added.\"\n        );\n      }\n\n      buttons.forEach(function (item) {\n        item.innerHTML = \"Added ✓\";\n        item.removeAttribute(\"aria-busy\");\n      });\n\n      document.documentElement.dispatchEvent(\n        new CustomEvent(\"cart:refresh\", { bubbles: true })\n      );\n\n      document.dispatchEvent(\n        new CustomEvent(\"cart:updated\", {\n          bubbles: true,\n          detail: result\n        })\n      );\n\n      setTimeout(function () {\n        window.location.href = root + \"cart\";\n      }, 450);\n    } catch (error) {\n      console.error(\"Bosveld Add to Cart:\", error);\n\n      buttons.forEach(function (item) {\n        item.disabled = false;\n        item.removeAttribute(\"aria-busy\");\n        item.innerHTML = originalText;\n      });\n\n      alert(error.message || \"Unable to add this product to the cart.\");\n    }\n  }\n\n  buttons.forEach(function (button) {\n    button.addEventListener(\"click\", function () {\n      addToCart(button);\n    });\n  });\n});\n\u003c\/script\u003e\n\n\u003c\/body\u003e","brand":"Bosveld Tactical","offers":[{"title":"Default Title","offer_id":48357067784345,"sku":null,"price":999.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0732\/9375\/8617\/files\/ChatGPTImageJul24_2026_10_45_10AM.png?v=1784882739","url":"https:\/\/bosveldtactical.co.za\/products\/tactical-helmet-vest-wall-rack","provider":"Bosveld Tactical ","version":"1.0","type":"link"}