{"product_id":"magna-anchor™-magnetic-golf-towel-the-40-16-40","title":"Magna-Anchor™ Magnetic Golf Towel – The 40 (16×40)","description":"\u003cstyle\u003e\n\/* =========================\n   AF APPLE-STYLE DARK MODE — THE 40 PDP\n   LOCKED OPTION A PALETTE APPLIED\n   ========================= *\/\n:root {\n  --af-graphite: #0B0D0B;\n  --af-tech: #9FB8A0;\n  --af-olive: #1A2517;\n  --af-signal: #22C55E;\n  --bg-color: var(--af-graphite);\n  --card-bg: #0B0D0B;\n  --text-main: #f5f5f7;\n  --text-muted: #A3A3A8;\n  --border: rgba(159, 184, 160, 0.2); \n  --border-soft: rgba(159, 184, 160, 0.1);\n  --shadow: 0 20px 40px rgba(0,0,0,0.6);\n}\n\n.af-luxury-page {\n  background: var(--bg-color);\n  color: var(--text-main);\n  padding: 60px 20px;\n  font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  line-height: 1.6;\n  -webkit-font-smoothing: antialiased;\n}\n.af-luxury-page * { box-sizing: border-box; }\n.af-container { max-width: 1000px; margin: 0 auto; }\n\n\/* Header *\/\n.af-eyebrow {\n  color: var(--af-tech);\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  font-weight: 800;\n  font-size: .75rem;\n  margin: 0 0 16px;\n  text-align: center;\n}\n.af-hero {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  margin-bottom: 24px;\n}\n.af-hero h1 {\n  margin: 0 0 14px;\n  font-weight: 800;\n  line-height: 1.05;\n  font-size: clamp(2.25rem, 5vw, 3.75rem);\n  letter-spacing: -0.02em;\n  background: linear-gradient(180deg, #fff, #a1a1aa);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  text-align: center;\n}\n.af-lead {\n  font-size: 1.2rem;\n  color: #fff;\n  font-weight: 750;\n  text-align: center;\n  margin: 12px 0 10px;\n}\n.af-lede {\n  margin: 0 auto 0;\n  max-width: 760px;\n  color: var(--text-muted);\n  font-size: 1.05rem;\n  text-align: center;\n  line-height: 1.65;\n}\n\n\/* Cards *\/\n.af-card {\n  background: rgba(255,255,255,0.02);\n  border-radius: 24px;\n  padding: 34px;\n  margin: 18px 0;\n  border: 1px solid var(--border);\n  box-shadow: var(--shadow);\n}\n.af-card--tech {\n  background: linear-gradient(180deg, rgba(159,184,160,0.08), var(--af-graphite));\n  border: 1px solid rgba(159,184,160,0.3);\n}\n.af-h2 {\n  margin: 0 0 12px;\n  font-size: 1.7rem;\n  line-height: 1.2;\n  font-weight: 750;\n  color: #fff;\n  letter-spacing: -0.01em;\n}\n.af-muted {\n  color: var(--text-muted);\n  font-size: 1.02rem;\n  margin: 0 0 .9rem;\n}\n\n\/* Exec summary *\/\n.af-exec-summary {\n  background: var(--af-olive);\n  border: 1px solid rgba(159,184,160,0.3);\n  border-radius: 20px;\n  padding: 20px;\n  margin: 0 auto 18px;\n  max-width: 860px;\n  text-align: left;\n}\n.af-exec-summary strong {\n  display: block;\n  font-size: .75rem;\n  letter-spacing: .05em;\n  text-transform: uppercase;\n  color: var(--af-tech);\n  font-weight: 900;\n  margin-bottom: 8px;\n}\n.af-exec-summary p {\n  margin: 0;\n  color: #e5e7eb;\n  font-size: 1.02rem;\n  line-height: 1.65;\n}\n\n\/* Image wrappers *\/\n.af-img-wrap {\n  margin: 0 0 14px 0;\n  border-radius: 18px;\n  overflow: hidden;\n  border: 1px solid var(--border-soft);\n  background: rgba(255,255,255,0.02);\n}\n.af-img {\n  display: block;\n  width: 100%;\n  height: auto;\n}\nvideo.af-img {\n  width: 100%;\n  height: auto;\n  display: block;\n  border-radius: 18px;\n  object-fit: cover;\n}\n\n\/* Bullets *\/\n.af-bullets { margin: 0; padding-left: 1.2rem; color: var(--text-muted); }\n.af-bullets li { margin: .75rem 0; }\n.af-bullets li strong { color: #fff; font-weight: 750; }\n\n\/* Chips *\/\n.af-chip-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin-top: 16px;\n  justify-content: center;\n}\n.af-chip {\n  background: rgba(159,184,160,0.1);\n  border: 1px solid rgba(159,184,160,0.25);\n  color: #e5e5e7;\n  padding: 8px 16px;\n  border-radius: 999px;\n  font-size: .9rem;\n  font-weight: 650;\n}\n\n\/* Buttons *\/\n.af-btn-wrap {\n  display: flex;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 12px;\n  margin-top: 16px;\n  align-items: center;\n}\n.af-btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  padding: 14px 28px;\n  border-radius: 999px;\n  font-weight: 750;\n  text-decoration: none;\n  font-size: 1rem;\n  transition: all .2s ease;\n  border: 0;\n  cursor: pointer;\n  min-height: 48px;\n}\n.af-btn-primary {\n  background: var(--af-signal);\n  color: #000;\n  border: 1px solid var(--af-signal);\n  font-weight: 900;\n  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);\n}\n.af-btn-primary:hover {\n  filter: brightness(1.1);\n  transform: translateY(-2px);\n}\n.af-btn-secondary {\n  background: transparent;\n  color: #fff;\n  border: 1px solid rgba(255,255,255,0.2);\n  font-size: .95rem;\n  padding: 12px 24px;\n}\n.af-btn-secondary:hover {\n  background: rgba(255,255,255,0.06);\n  border-color: rgba(255,255,255,0.4);\n  transform: translateY(-2px);\n}\n\n\/* Interaction Module *\/\n.af-hero-interaction {\n  background: rgba(255,255,255,0.03);\n  border: 1px solid var(--af-tech);\n  border-radius: 24px;\n  padding: 22px;\n  margin: 0 auto;\n  max-width: 560px;\n  width: 100%;\n  backdrop-filter: blur(10px);\n  text-align: center;\n  box-shadow: 0 10px 30px rgba(0,0,0,0.5);\n}\n.af-interaction-label {\n  font-size: .8rem;\n  text-transform: uppercase;\n  letter-spacing: .05em;\n  color: var(--af-tech);\n  margin-bottom: 10px;\n  font-weight: 800;\n  display: block;\n  text-align: center;\n}\n.af-swatch-row {\n  display: flex;\n  justify-content: center;\n  gap: 12px;\n  margin-bottom: 14px;\n  flex-wrap: wrap;\n}\n.af-swatch {\n  width: 32px; height: 32px; border-radius: 50%;\n  border: 2px solid rgba(255,255,255,0.2);\n  cursor: pointer;\n  transition: transform .2s, border-color .2s, box-shadow .2s;\n  padding: 0;\n  background: #111;\n  position: relative;\n}\n.af-swatch:hover { transform: scale(1.1); border-color: #fff; }\n.af-swatch[aria-selected=\"true\"] {\n  border-color: var(--af-signal);\n  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2);\n  transform: scale(1.1);\n}\n\/* Finish colors - THE 40 (Primary) *\/\n.af-swatch[data-af-finish=\"Black\"], .af-swatch[data-af-bundle-finish=\"Black\"], .af-swatch[data-af-finish-both-40=\"Black\"] {background:#111;}\n.af-swatch[data-af-finish=\"Blue\"], .af-swatch[data-af-bundle-finish=\"Blue\"], .af-swatch[data-af-finish-both-40=\"Blue\"] {background:#1e3a8a;}\n.af-swatch[data-af-finish=\"Green\"], .af-swatch[data-af-bundle-finish=\"Green\"], .af-swatch[data-af-finish-both-40=\"Green\"] {background:#14532d;}\n.af-swatch[data-af-finish=\"Grey\"], .af-swatch[data-af-bundle-finish=\"Grey\"], .af-swatch[data-af-finish-both-40=\"Grey\"] {background:#4b5563;}\n\n\/* Finish colors - STUBBY *\/\n.af-swatch[data-af-finish-both-stubby=\"Black\"] {background:#111;}\n.af-swatch[data-af-finish-both-stubby=\"Blue\"] {background:#1e3a8a;}\n.af-swatch[data-af-finish-both-stubby=\"Augusta Green\"] {background:#14532d;}\n.af-swatch[data-af-finish-both-stubby=\"Birdie Blue\"] {background:#0ea5e9;}\n.af-swatch[data-af-finish-both-stubby=\"Grey\"] {background:#4b5563;}\n.af-swatch[data-af-finish-both-stubby=\"Gunmetal Grey\"] {background:#374151;}\n.af-swatch[data-af-finish-both-stubby=\"Red\"] {background:#991b1b;}\n\n.af-nudge {\n  text-align: center;\n  margin-top: 10px;\n  color: var(--text-muted);\n  font-size: .92rem;\n}\n\n\/* Steps *\/\n.af-steps {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 16px;\n  margin-top: 14px;\n}\n.af-step {\n  background: rgba(159,184,160,0.08);\n  border: 1px solid rgba(159,184,160,0.25);\n  border-radius: 18px;\n  padding: 24px;\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start;\n  text-align: left;\n}\n.af-step h3 {\n  margin: 14px 0 8px 0;\n  font-size: 1.25rem;\n  font-weight: 900;\n  color: var(--af-signal);\n  text-transform: uppercase;\n  letter-spacing: 0.02em;\n}\n.af-step p {\n  margin: 0;\n  color: #d1d5db;\n  font-size: 1.05rem;\n  line-height: 1.5;\n}\n.af-step .af-chip {\n  color: var(--af-signal);\n  border-color: rgba(34, 197, 94, 0.5);\n  background: rgba(34, 197, 94, 0.1);\n}\n\n\/* Comparison Table *\/\n.af-compare-table {\n  width: 100%;\n  border-collapse: separate;\n  border-spacing: 0;\n  margin: 20px 0;\n  font-size: 0.95rem;\n  color: var(--text-main);\n  border: 1px solid var(--border);\n  border-radius: 12px;\n  overflow: hidden;\n}\n.af-compare-table caption {\n  font-weight: 700;\n  text-align: left;\n  margin-bottom: 10px;\n  color: var(--af-tech);\n  text-transform: uppercase;\n  font-size: 0.8rem;\n  letter-spacing: 0.05em;\n}\n.af-compare-table th, .af-compare-table td {\n  padding: 12px 16px;\n  text-align: left;\n  border-bottom: 1px solid var(--border-soft);\n}\n.af-compare-table th {\n  background: rgba(159,184,160,0.1);\n  color: #fff;\n  font-weight: 700;\n}\n.af-compare-table td:first-child {\n  font-weight: 600;\n  color: var(--af-tech);\n  width: 30%;\n}\n.af-compare-table tr:last-child td {\n  border-bottom: none;\n}\n@media (max-width: 600px) {\n  .af-compare-table thead { display: none; }\n  .af-compare-table, .af-compare-table tbody, .af-compare-table tr, .af-compare-table td {\n    display: block;\n    width: 100%;\n  }\n  .af-compare-table tr {\n    margin-bottom: 16px;\n    background: rgba(255,255,255,0.03);\n    border: 1px solid var(--border);\n    border-radius: 12px;\n    padding: 12px;\n  }\n  .af-compare-table td {\n    padding: 8px 0;\n    border-bottom: 1px solid var(--border-soft);\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n  }\n  .af-compare-table td:last-child { border-bottom: none; }\n  .af-compare-table td::before {\n    content: attr(data-label);\n    font-weight: 700;\n    color: var(--af-tech);\n    margin-right: 12px;\n    text-transform: uppercase;\n    font-size: 0.75rem;\n  }\n}\n\n\/* Grid *\/\n.af-grid-2 { display: grid; grid-template-columns: 1fr; gap: 18px; }\n@media (min-width: 768px) {\n  .af-grid-2 { grid-template-columns: 1fr 1fr; }\n  .af-bundle-preview { grid-template-columns: 1fr 1fr !important; }\n}\n@media (max-width: 767px) {\n  .af-luxury-page { padding: 40px 16px; }\n  .af-card { padding: 26px; }\n  .af-btn { width: 100%; }\n}\n\n\/* FAQ *\/\n.af-faq { border-top: 1px solid var(--border); padding: 18px 0; }\n.af-faq summary {\n  cursor: pointer;\n  font-weight: 750;\n  color: #fff;\n  font-size: 1.05rem;\n  list-style: none;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 4px 0;\n}\n.af-faq summary::-webkit-details-marker { display: none; }\n.af-faq summary::after { content: \"+\"; font-weight: 400; color: var(--text-muted); font-size: 1.5rem; }\ndetails[open] summary::after { content: \"−\"; }\n.af-faq div { margin-top: 10px; color: var(--text-muted); line-height: 1.6; }\n\n\/* Standards *\/\n.af-standards-citation {\n  margin: 2.2rem 0 0 0;\n  padding: 1.75rem 1.75rem;\n  background: var(--af-olive);\n  border: 1px solid rgba(159,184,160,0.3);\n  border-radius: 16px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"af-luxury-page\"\u003e\n\u003cdiv class=\"af-container\"\u003e\n\u003cheader class=\"af-hero\"\u003e\n\u003cp class=\"af-eyebrow\"\u003e16×40 Size • Dual Wash Pockets • Center Magnet\u003c\/p\u003e\n\u003ch1\u003eMagna-Anchor™ Magnetic Towel — “The 40”\u003c\/h1\u003e\n\u003cdiv class=\"af-exec-summary\"\u003e\n\u003cstrong\u003eTest Verdict\u003c\/strong\u003e\n\u003cp\u003eThe 40 is for players who need maximum coverage and true wet\/dry separation. The center magnet creates two usable 20-inch zones when docked, and dual wash pockets allow you to keep a dedicated wet scrubbing zone while the rest of the towel stays dry for your hands and grips. \u003cbr\u003e\u003cbr\u003e\u003cstrong\u003eVerdict:\u003c\/strong\u003e The default choice for riders, muddy rounds, and players who want maximum surface area.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cp class=\"af-lead\"\u003eTwo 20-inch towels in one system.\u003c\/p\u003e\n\u003cp class=\"af-lede\"\u003eMost large towels are just \"big.\" The 40 is engineered: centered docking keeps it balanced, and dual wash pockets give you true separation between the dirty work and the dry finish.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\" style=\"margin-top: 14px;\"\u003e\n\u003ca href=\"\/pages\/golf-towel-cleaning-science-grooves-debris-gsm-magnet-physics\" class=\"af-btn af-btn-secondary\" style=\"border: 0; color: var(--text-muted);\"\u003eCleaning Science\u003c\/a\u003e \u003ca href=\"\/collections\/magnetic-towels\" class=\"af-btn af-btn-secondary\" style=\"border: 0; color: var(--text-muted);\"\u003eShop Magnetic Towels\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/header\u003e\n\u003csection id=\"problem\" class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eThe real problem: once a towel is wet, it’s all wet.\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eStandard towels become a liability once you start cleaning clubs. Moisture wicks everywhere, turning your \"dry\" towel into a damp rag that can't dry your grips. The 40 fixes this with \u003cstrong\u003edual wash pockets\u003c\/strong\u003e that trap moisture and grime, keeping the rest of the 16x40 surface pristine.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003csection id=\"solution\" class=\"af-card af-card--tech\"\u003e\n\u003ch2 class=\"af-h2\"\u003eThe solution: separation by design\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eThe 40 gives you two distinct zones. Use the wash pockets for mud and sand. Use the rest of the towel for precision drying. It docks dead-center so it hangs balanced, not like a dragging flag.\u003c\/p\u003e\n\u003cdiv class=\"af-hero-interaction\" data-af-variant-sync=\"\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"eager\" alt=\"Magna-Anchor Magnetic Towel — The 40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\" data-af-hero-img=\"\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cspan class=\"af-interaction-label\"\u003ePick Your Finish (The 40)\u003c\/span\u003e\n\u003cdiv aria-label=\"Choose finish\" role=\"listbox\" class=\"af-swatch-row\"\u003e\n\u003cbutton aria-selected=\"false\" aria-label=\"Black finish\" data-af-finish=\"Black\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Blue finish\" data-af-finish=\"Blue\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Green finish\" data-af-finish=\"Green\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Grey finish\" data-af-finish=\"Grey\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-af-status=\"\" class=\"af-nudge\"\u003ePick a finish. I’ll sync the variant and update the hero image.\u003c\/div\u003e\n\u003cul style=\"margin-top: 14px;\" class=\"af-bullets\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eCentered Magnet:\u003c\/strong\u003e Docks perfectly balanced, creating two 20\" usable zones.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDual Wash Pockets:\u003c\/strong\u003e Separate pockets for wet\/dry or face\/hands workflow.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaximum Coverage:\u003c\/strong\u003e 16×40 size creates a massive cleaning surface.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv style=\"margin-top: 14px;\" class=\"af-btn-wrap\"\u003e\n\u003cbutton data-af-atc=\"\" type=\"button\" class=\"af-btn af-btn-primary\"\u003eAdd The 40 to cart\u003c\/button\u003e \u003ca href=\"#workflow\" class=\"af-btn af-btn-secondary\"\u003eSee the routine\u003c\/a\u003e \u003ca href=\"#instant-access\" class=\"af-btn af-btn-secondary\"\u003eInstant access upgrade\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"margin-top: 12px;\" class=\"af-nudge\"\u003eNote: the bundle comes later after you’ve seen why access is the multiplier.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection id=\"workflow\" class=\"af-card af-card--tech\"\u003e\n\u003ch2 class=\"af-h2\"\u003eScrub → Wash → Dry (The 40 Routine)\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eWith The 40, you have more room to work. Keep one side wet, one side dry.\u003c\/p\u003e\n\u003cdiv aria-label=\"Scrub Wash Dry steps\" class=\"af-steps\"\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"lazy\" alt=\"Close-up of a golf iron clubface being scrubbed with a triangular scrub pad to break dirt and debris out of the grooves.\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_x5yyywx5yyywx5yy.png?v=1770299282\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo class=\"af-img\" controls=\"controls\" playsinline=\"\" preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_x5yyywx5yyywx5yy.png?v=1770299282\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/60c75c71626e4e409c45f976ad497ce7.mov\" type=\"video\/quicktime\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/60c75c71626e4e409c45f976ad497ce7.mov\" type=\"video\/mp4\"\u003e\u003c\/source\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003ch3\u003eScrub\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong data-end=\"347\" data-start=\"311\"\u003eLoosen what wiping can’t remove.\u003c\/strong\u003e\u003cbr data-end=\"350\" data-start=\"347\"\u003ePacked sand, mud, and grass lock into grooves and don’t come out with a casual wipe. The scrub pad applies focused friction to break debris free so the grooves can actually do their job instead of masking spin and launch.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"lazy\" alt=\"Golf ball being rinsed inside a wet wash pocket on a golf towel to flush dirt and debris away.\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_8sxn1w8sxn1w8sxn.png?v=1770299798\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo class=\"af-img\" controls=\"controls\" playsinline=\"\" preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_8sxn1w8sxn1w8sxn.png?v=1770299798\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/40052d60ea544d01bf589309f85e13f3.mov\" type=\"video\/quicktime\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/40052d60ea544d01bf589309f85e13f3.mov\" type=\"video\/mp4\"\u003e\u003c\/source\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003ch3\u003eWash\u003c\/h3\u003e\n\u003cp\u003eUse the \u003cstrong\u003edual wash pockets\u003c\/strong\u003e to \u003cstrong data-end=\"633\" data-start=\"591\"\u003eFlush contamination out of the system.\u003c\/strong\u003e\u003cbr data-end=\"636\" data-start=\"633\"\u003eOnce debris is loosened, it has to go somewhere. The wet wash pocket rinses grime away instead of smearing it across the towel. This keeps dirt isolated and prevents re-contaminating the ball, face, or grips.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"lazy\" alt=\"Clean, dry golf ball held in a dry microfiber towel, showing the final drying step before putting or striking.\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Gemini_Generated_Image_wqabnrwqabnrwqab.jpg?v=1770300553\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003ch3\u003eDry\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong data-end=\"907\" data-start=\"863\"\u003eRestore clean contact and true feedback.\u003c\/strong\u003e\u003cbr data-end=\"910\" data-start=\"907\"\u003eDrying isn’t cosmetic. A clean, dry ball and face restore predictable friction at impact and a truer roll on the green. This is the step that turns “clean enough” into consistent results.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-step\"\u003e\n\u003ch3\u003eWhy it sticks\u003c\/h3\u003e\n\u003cp\u003eThe system works because the magnet keeps it accessible and the size keeps it functional.\u003c\/p\u003e\n\u003cdiv aria-hidden=\"true\" class=\"af-chip-row\"\u003e\n\u003cspan class=\"af-chip\"\u003eScrub\u003c\/span\u003e \u003cspan class=\"af-chip\"\u003eWash\u003c\/span\u003e \u003cspan class=\"af-chip\"\u003eDry\u003c\/span\u003e \u003cspan class=\"af-chip\"\u003eRe-dock\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection id=\"instant-access\" class=\"af-card af-card--tech\"\u003e\n\u003ch2 class=\"af-h2\"\u003eMake the routine automatic: instant access upgrade\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eAccess friction kills routines. If the towel doesn’t re-dock to the same spot every time, you stop using it. The Landing Pad creates a \u003cstrong\u003eguaranteed docking point inside your bag between club dividers\u003c\/strong\u003e so The 40 is always where your hand expects it.\u003c\/p\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\n\u003cdiv class=\"af-bundle-preview\" style=\"display: grid; grid-template-columns: 1fr; gap: 12px;\"\u003e\n\u003cimg loading=\"lazy\" class=\"af-img\" data-af-bundle-pad-img=\"\" alt=\"Magnetic Landing Pad preview\"\u003e \u003cimg loading=\"lazy\" class=\"af-img\" data-af-bundle-towel-img=\"\" alt=\"The 40 towel bundle preview\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_21196650-eeaf-4b5b-a449-9e56e0c587a1.jpg?v=1769716887\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"af-interaction-label\"\u003ePick Your Finish (Bundle)\u003c\/span\u003e\n\u003cdiv aria-label=\"Choose finish for bundle\" role=\"listbox\" class=\"af-swatch-row\" data-af-bundle-variant-sync=\"\"\u003e\n\u003cbutton aria-selected=\"false\" aria-label=\"Black finish\" data-af-bundle-finish=\"Black\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Blue finish\" data-af-bundle-finish=\"Blue\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Green finish\" data-af-bundle-finish=\"Green\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e \u003cbutton aria-selected=\"false\" aria-label=\"Grey finish\" data-af-bundle-finish=\"Grey\" type=\"button\" class=\"af-swatch\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" class=\"af-chip-row\"\u003e\n\u003cspan class=\"af-chip\"\u003eGuaranteed dock point\u003c\/span\u003e \u003cspan class=\"af-chip\"\u003eInside bag dividers only\u003c\/span\u003e \u003cspan class=\"af-chip\"\u003eRoutine stays automatic\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\n\u003cbutton data-af-atc-bundle=\"\" class=\"af-btn af-btn-primary\" type=\"button\"\u003eAdd The 40 + Landing Pad (Instant Access)\u003c\/button\u003e \u003cbutton data-af-atc=\"\" class=\"af-btn af-btn-secondary\" type=\"button\"\u003eNo thanks, towel only\u003c\/button\u003e \u003ca class=\"af-btn af-btn-secondary\" href=\"\/products\/magnetic-landing-pad\"\u003eView Landing Pad\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-nudge\" data-af-bundle-status=\"\" style=\"margin-top: 12px;\"\u003eTip: Landing Pad mounts inside the bag between club dividers (not on the cart frame).\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eIndependent on-course test\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eSee the routine under real pace: clean → re-dock → move on.\u003c\/p\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cvideo class=\"af-img\" controls=\"controls\" playsinline=\"\" preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\"\u003e\n      \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/01bd39c9ab2c44e6b5036037fc35b895.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eThe 40 vs Stubby\u003c\/h2\u003e\n\u003ctable class=\"af-compare-table\"\u003e\n\u003ccaption\u003eQuick Spec Check\u003c\/caption\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eFeature\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eThe 40 (This Towel)\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eStubby\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eSize\u003c\/th\u003e\n\u003ctd data-label=\"The 40\"\u003eLarge (16\" x 40\")\u003c\/td\u003e\n\u003ctd data-label=\"Stubby\"\u003eCompact (16\" x 24\")\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eMagnet Position\u003c\/th\u003e\n\u003ctd data-label=\"The 40\"\u003eCenter (Balanced)\u003c\/td\u003e\n\u003ctd data-label=\"Stubby\"\u003eCorner (Quick Draw)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eWash Pockets\u003c\/th\u003e\n\u003ctd data-label=\"The 40\"\u003eDual (2)\u003c\/td\u003e\n\u003ctd data-label=\"Stubby\"\u003eSingle (1)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eBest for\u003c\/th\u003e\n\u003ctd data-label=\"The 40\"\u003eRiders, Mud, Max Prep\u003c\/td\u003e\n\u003ctd data-label=\"Stubby\"\u003eWalkers, Fast Play\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/section\u003e\n\u003csection id=\"both-system\" class=\"af-card af-card--tech\"\u003e\n\u003ch2 class=\"af-h2\"\u003eThe Two-Towel System\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003ePro move: Use a Stubby for \"dry\/clean\" tasks (hands\/grips) and The 40 as your \"wet\/dirty\" workhorse (clubs\/grooves). Zero cross-contamination.\u003c\/p\u003e\n\u003cdiv class=\"af-grid-2\" style=\"margin-top: 24px;\"\u003e\n\u003cdiv data-af-both-stubby-sync=\"\"\u003e\n\u003ch3 style=\"text-align: center; color: var(--af-signal); font-size: 1.1rem; font-weight: bold; margin-bottom: 12px;\"\u003e1. Stubby (Dry\/Clean)\u003c\/h3\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\" data-af-both-stubby-img=\"\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-swatch-row\"\u003e\n\u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Black\" aria-label=\"Black\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Blue\" aria-label=\"Blue\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Augusta Green\" aria-label=\"Augusta Green\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Birdie Blue\" aria-label=\"Birdie Blue\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Grey\" aria-label=\"Grey\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Gunmetal Grey\" aria-label=\"Gunmetal Grey\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-stubby=\"Red\" aria-label=\"Red\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-af-both-40-sync=\"\"\u003e\n\u003ch3 style=\"text-align: center; color: var(--af-signal); font-size: 1.1rem; font-weight: bold; margin-bottom: 12px;\"\u003e2. The 40 (Wet\/Dirty)\u003c\/h3\u003e\n\u003cdiv class=\"af-img-wrap\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\" data-af-both-40-img=\"\" class=\"af-img\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-swatch-row\"\u003e\n\u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-40=\"Black\" aria-label=\"Black\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-40=\"Blue\" aria-label=\"Blue\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-40=\"Green\" aria-label=\"Green\"\u003e\u003c\/button\u003e \u003cbutton type=\"button\" class=\"af-swatch\" data-af-finish-both-40=\"Grey\" aria-label=\"Grey\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"af-btn-wrap\" style=\"margin-top: 24px;\"\u003e\u003cbutton type=\"button\" class=\"af-btn af-btn-primary\" data-af-atc-both=\"\"\u003eAdd The 40 + Stubby to cart\u003c\/button\u003e\u003c\/div\u003e\n\u003cdiv class=\"af-nudge\" data-af-both-status=\"\" style=\"margin-top: 12px;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection aria-label=\"Product FAQ\" class=\"af-card\"\u003e\n\u003ch2 class=\"af-h2\"\u003eProduct FAQ\u003c\/h2\u003e\n\u003cdetails class=\"af-faq\"\u003e\n\u003csummary\u003eDoes The 40 drag on the ground?\u003c\/summary\u003e\n\u003cdiv\u003eBecause the magnet is centered, it hangs balanced (20 inches on each side when folded over a club). On most cart bags and stand bags, it hangs perfectly. If you carry a very low-slung Sunday bag, check the Stubby.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-faq\"\u003e\n\u003csummary\u003eWhy dual wash pockets?\u003c\/summary\u003e\n\u003cdiv\u003eSo you can use one pocket for aggressive mud cleaning and the other for a quick ball rinse, or just keep one side entirely dry. It’s about separation.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-faq\"\u003e\n\u003csummary\u003eWhere is the magnet?\u003c\/summary\u003e\n\u003cdiv\u003eDead center. This allows the towel to drape evenly over a club or stick flat to the Landing Pad without twisting.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-faq\"\u003e\n\u003csummary\u003eDo I need a Landing Pad?\u003c\/summary\u003e\n\u003cdiv\u003eIt is highly recommended for The 40 to ensure a secure, high docking point on your bag, keeping the towel off the ground.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"af-faq\"\u003e\n\u003csummary\u003eCan I wash it?\u003c\/summary\u003e\n\u003cdiv\u003eYes. Wash cold on gentle\/low spin and air dry. Avoid high heat; hot dryers can degrade microfiber performance.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003csection aria-label=\"Final call to action\" class=\"af-card\" style=\"text-align: center;\"\u003e\n\u003ch2 class=\"af-h2\"\u003eMaximum coverage. Zero drag.\u003c\/h2\u003e\n\u003cp class=\"af-muted\"\u003eUpgrade to The 40 for the ultimate all-weather cleaning system.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\n\u003cbutton data-af-atc=\"\" type=\"button\" class=\"af-btn af-btn-primary\"\u003eAdd The 40 to cart\u003c\/button\u003e \u003cbutton data-af-atc-bundle=\"\" type=\"button\" class=\"af-btn af-btn-secondary\"\u003eAdd The 40 + Landing Pad\u003c\/button\u003e \u003ca href=\"\/pages\/our-golf-gear-testing-design-standards\" class=\"af-btn af-btn-secondary\"\u003eTesting Standards\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"af-standards-citation\"\u003e\n\u003ch3 style=\"margin: 0 0 .75rem 0; font-size: 1.15rem; font-weight: 900; color: #ffffff;\"\u003eEvaluated Against Published Testing Standards\u003c\/h3\u003e\n\u003cp style=\"margin: 0 0 1rem 0; font-size: 1.02rem; color: #d1d5db; line-height: 1.6;\"\u003eThis product is evaluated using Aiming Fluid Golf’s published magnetic gear testing framework. The framework defines how magnetic towels and docking systems are assessed across retention, cleaning effectiveness, usability, durability, and compatibility under real on-course conditions.\u003c\/p\u003e\n\u003cp style=\"margin: 0 0 1.25rem 0; font-size: .95rem; color: #cbd5d1;\"\u003eThe standards page documents evaluation criteria, common failure modes, and the scorecard logic used to assess magnetic golf gear independent of product marketing claims.\u003c\/p\u003e\n\u003cdiv class=\"af-btn-wrap\"\u003e\u003ca class=\"af-btn af-btn-secondary\" href=\"\/pages\/our-golf-gear-testing-design-standards\"\u003eView Testing \u0026amp; Design Standards\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript type=\"application\/ld+json\"\u003e\n{\n  \"@context\":\"https:\/\/schema.org\",\n  \"@type\":\"FAQPage\",\n  \"mainEntity\":[\n    {\"@type\":\"Question\",\"name\":\"Does The 40 drag on the ground?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Because the magnet is centered, it hangs balanced (20 inches on each side when folded over a club). On most cart bags and stand bags, it hangs perfectly. If you carry a very low-slung Sunday bag, check the Stubby.\"}},\n    {\"@type\":\"Question\",\"name\":\"Why dual wash pockets?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"So you can use one pocket for aggressive mud cleaning and the other for a quick ball rinse, or just keep one side entirely dry. It’s about separation.\"}},\n    {\"@type\":\"Question\",\"name\":\"Where is the magnet?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dead center. This allows the towel to drape evenly over a club or stick flat to the Landing Pad without twisting.\"}},\n    {\"@type\":\"Question\",\"name\":\"Do I need a Landing Pad?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It is highly recommended for The 40 to ensure a secure, high docking point on your bag, keeping the towel off the ground.\"}},\n    {\"@type\":\"Question\",\"name\":\"Can I wash it?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Wash cold on gentle\/low spin and air dry. Avoid high heat; hot dryers can degrade microfiber performance over time.\"}}\n  ]\n}\n\u003c\/script\u003e \u003cscript\u003e\n(function(){\n  \/\/ 1. THE 40 MAPS (HARDCODED)\n  const finishToImage40 = {\n    \"Green\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_29.jpg?v=1767904750\",\n    \"Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_26.jpg?v=1764811297\",\n    \"Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_27.jpg?v=1767904750\",\n    \"Black\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/mAIN_IMAGE_UPDATE_28.jpg?v=1767904750\"\n  };\n  const finishToVariantId40 = {\n    \"Green\": 40882080153643,\n    \"Grey\": 40882080088107,\n    \"Blue\": 40882080055339,\n    \"Black\": 40882080022571\n  };\n\n  \/\/ 2. STUBBY MAPS (HARDCODED for Upsell)\n  const finishToImageStubby = {\n    \"Red\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_Image_2.jpg?v=1769714394\",\n    \"Birdie Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image_4a14208d-a588-4d0c-8257-be4c6f929d2c.jpg?v=1769714394\",\n    \"Gunmetal Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Main_Image_732dcd44-f78d-458d-bd41-2e148e5b7af7.jpg?v=1769714394\",\n    \"Grey\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_amazon_Main_Image_a81807c5-6f77-44c4-a531-5cf6b47a5bbd.jpg?v=1769714394\",\n    \"Augusta Green\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image_128423e7-67ac-4508-82b8-2b1076ec7e3e.jpg?v=1769714394\",\n    \"Blue\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_main_image.jpg?v=1769714394\",\n    \"Black\": \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/2026_Amazon_Main_Image.jpg?v=1769714394\"\n  };\n  const finishToVariantIdStubby = {\n    \"Red\": 40987341815851,\n    \"Birdie Blue\": 42663187546155,\n    \"Gunmetal Grey\": 41151790088235,\n    \"Grey\": 40882080743467,\n    \"Augusta Green\": 40882080776235,\n    \"Blue\": 40882080710699,\n    \"Black\": 40882080677931\n  };\n\n  \/\/ 3. BUNDLE MAP (The 40 + Pad)\n  const bundleMap = {\n    \"Grey\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_70852911-336a-4f52-8952-ad7a71331ee4.jpg?v=1769717226\", id: 42694796181547 },\n    \"Green\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_a9bf27d1-982b-4134-838c-4ba64802284c.jpg?v=1769717110\", id: 42694796148779 },\n    \"Blue\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_5dc2ca4f-7081-4422-9bb5-ab1ed1d87985.jpg?v=1769717255\", id: 42694796116011 },\n    \"Black\": { img: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0555\/0830\/3915\/files\/Updated_Main_21196650-eeaf-4b5b-a449-9e56e0c587a1.jpg?v=1769716887\", id: 42694796214315 }\n  };\n\n  const landingPadHandle = \"magnetic-landing-pad\";\n\n  \/\/ --- ELEMENTS ---\n  const module = document.querySelector('[data-af-variant-sync]');\n  if(!module) return;\n\n  const status = module.querySelector('[data-af-status]');\n  const swatches = Array.from(module.querySelectorAll('[data-af-finish]'));\n  const heroImg = module.querySelector('[data-af-hero-img]');\n  const towelOnlyBtns = Array.from(document.querySelectorAll('[data-af-atc]'));\n\n  \/\/ Bundle Elements\n  const bundleSwatches = Array.from(document.querySelectorAll('[data-af-bundle-finish]'));\n  const bundleTowelImg = document.querySelector('[data-af-bundle-towel-img]');\n  const bundlePadImg = document.querySelector('[data-af-bundle-pad-img]');\n  const bundleBtns = Array.from(document.querySelectorAll('[data-af-atc-bundle]'));\n  const bundleStatus = document.querySelector('[data-af-bundle-status]');\n\n  \/\/ Both System Elements\n  const bothStubbySwatches = Array.from(document.querySelectorAll('[data-af-finish-both-stubby]'));\n  const both40Swatches = Array.from(document.querySelectorAll('[data-af-finish-both-40]'));\n  const bothStubbyImg = document.querySelector('[data-af-both-stubby-img]');\n  const both40Img = document.querySelector('[data-af-both-40-img]');\n  const atcBothBtn = document.querySelector('[data-af-atc-both]');\n  const statusBoth = document.querySelector('[data-af-both-status]');\n\n  \/\/ --- STATE ---\n  let selectedBundleFinish = 'Black';\n  let selectedBothStubbyFinish = 'Black';\n  let selectedBoth40Finish = 'Black';\n\n  \/\/ --- HELPERS ---\n  function setStatus(msg){ if(status) status.textContent = msg; }\n  function setBundleStatus(msg){ if(bundleStatus) bundleStatus.textContent = msg; }\n  \n  \/\/ 1. NATIVE SELECT SYNC\n  const variantSelect = document.querySelector('select[name=\"id\"]');\n  const nativeAtc = document.querySelector('button[name=\"add\"]');\n\n  function setVariantByFinish(finishLabel){\n    if(!variantSelect) return;\n    const id = finishToVariantId40[finishLabel];\n    if(id){\n      variantSelect.value = id;\n      variantSelect.dispatchEvent(new Event('change', { bubbles:true }));\n    }\n  }\n\n  \/\/ 2. MAIN HERO LOGIC\n  function updateMainHero(finishLabel){\n    \/\/ Update Swatches\n    swatches.forEach(btn =\u003e btn.setAttribute('aria-selected', btn.getAttribute('data-af-finish') === finishLabel ? 'true' : 'false'));\n    \n    \/\/ Update Image\n    if(heroImg \u0026\u0026 finishToImage40[finishLabel]) heroImg.src = finishToImage40[finishLabel];\n    \n    \/\/ Update Native Select\n    setVariantByFinish(finishLabel);\n    \n    setStatus('Selected: ' + finishLabel);\n  }\n\n  swatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e updateMainHero(btn.getAttribute('data-af-finish'))));\n\n  \/\/ 3. BUNDLE LOGIC\n  bundleSwatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-bundle-finish');\n    selectedBundleFinish = f;\n    bundleSwatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-bundle-finish') === f ? 'true' : 'false'));\n    if(bundleMap[f] \u0026\u0026 bundleTowelImg) bundleTowelImg.src = bundleMap[f].img;\n  }));\n\n  \/\/ Fetch Pad ID Once\n  let cachedPadId = null;\n  async function getPadId(){\n    if(cachedPadId) return cachedPadId;\n    const res = await fetch('\/products\/' + landingPadHandle + '.js');\n    const data = await res.json();\n    cachedPadId = data.variants[0].id;\n    if(bundlePadImg \u0026\u0026 data.featured_image) bundlePadImg.src = data.featured_image;\n    return cachedPadId;\n  }\n\n  bundleBtns.forEach(b =\u003e b.addEventListener('click', async () =\u003e {\n    setBundleStatus('Adding...');\n    try {\n        const padId = await getPadId();\n        const towelId = bundleMap[selectedBundleFinish].id;\n        await addToCart([{ id: towelId, quantity: 1 }, { id: padId, quantity: 1 }], bundleStatus);\n    } catch(e){ setBundleStatus(\"Error adding.\"); }\n  }));\n\n  \/\/ 4. BOTH SYSTEM LOGIC (DECOUPLED)\n  \/\/ Left Side (Stubby) - REVERSED as requested (Stubby Left \/ The 40 Right)\n  bothStubbySwatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-finish-both-stubby');\n    selectedBothStubbyFinish = f;\n    bothStubbySwatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-finish-both-stubby') === f ? 'true' : 'false'));\n    if(bothStubbyImg \u0026\u0026 finishToImageStubby[f]) bothStubbyImg.src = finishToImageStubby[f];\n  }));\n\n  \/\/ Right Side (The 40)\n  both40Swatches.forEach(btn =\u003e btn.addEventListener('click', () =\u003e {\n    const f = btn.getAttribute('data-af-finish-both-40');\n    selectedBoth40Finish = f;\n    both40Swatches.forEach(b =\u003e b.setAttribute('aria-selected', b.getAttribute('data-af-finish-both-40') === f ? 'true' : 'false'));\n    if(both40Img \u0026\u0026 finishToImage40[f]) both40Img.src = finishToImage40[f];\n  }));\n\n  \/\/ Both ATC\n  if(atcBothBtn){\n    atcBothBtn.addEventListener('click', async () =\u003e {\n        if(statusBoth) statusBoth.textContent = \"Adding...\";\n        const id40 = finishToVariantId40[selectedBoth40Finish];\n        const idStubby = finishToVariantIdStubby[selectedBothStubbyFinish];\n        \n        if(!id40 || !idStubby){\n            if(statusBoth) statusBoth.textContent = \"Error: Invalid selection.\";\n            return;\n        }\n        await addToCart([{ id: id40, quantity: 1 }, { id: idStubby, quantity: 1 }], statusBoth);\n    });\n  }\n\n  \/\/ 5. GLOBAL ATC HELPER\n  async function addToCart(items, statusEl, fallbackToNative){\n    try{\n        const res = await fetch('\/cart\/add.js', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify({ items })\n        });\n        if(!res.ok) throw new Error();\n        window.location.href = '\/cart';\n    } catch(e){\n        if(statusEl) statusEl.textContent = \"Add failed.\";\n    }\n  }\n\n  \/\/ 6. MAIN TOWEL ATC (Native Click)\n  towelOnlyBtns.forEach(b =\u003e b.addEventListener('click', () =\u003e {\n    if(nativeAtc) nativeAtc.click();\n    else setStatus('Native ATC not found.');\n  }));\n\n  \/\/ Init\n  updateMainHero('Black');\n  bundleSwatches[0].click(); \n  both40Swatches[0].click();\n  bothStubbySwatches[0].click();\n  getPadId().catch(()=\u003e{});\n\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Aiming Fluid Golf","offers":[{"title":"Black","offer_id":61579446813042,"sku":"AFMLT2-B","price":39.69,"currency_code":"USD","in_stock":false},{"title":"Blue","offer_id":61579446845810,"sku":"AFMLT2-BL","price":39.69,"currency_code":"USD","in_stock":false},{"title":"Grey","offer_id":61579446878578,"sku":"AFMLT2-G","price":39.69,"currency_code":"USD","in_stock":false},{"title":"Green","offer_id":61579446911346,"sku":"AFMLT2-GR","price":39.69,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0961\/7906\/1106\/files\/mAIN_IMAGE_UPDATE_26.jpg?v=1770679464","url":"https:\/\/golfgearheaven.com\/products\/magna-anchor%e2%84%a2-magnetic-golf-towel-the-40-16-40","provider":"Golf Gear Heaven","version":"1.0","type":"link"}