{"id":6132,"date":"2021-10-01T21:09:50","date_gmt":"2021-10-01T20:09:50","guid":{"rendered":"https:\/\/www.allaboutfastpitch.com\/?p=6132"},"modified":"2026-03-11T17:03:03","modified_gmt":"2026-03-11T16:03:03","slug":"what-to-wear-to-softball-practice","status":"publish","type":"post","link":"https:\/\/www.allaboutfastpitch.com\/what-to-wear-to-softball-practice\/","title":{"rendered":"What To Wear To Softball Practice?"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1144px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>AllAboutFastpitch \u2013 What to Wear to Softball Practice<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:wght@300;400;500;600&display=swap\" rel=\"stylesheet\">\n\n<style>\n\/* \u2500\u2500\u2500 DESIGN TOKENS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n:root {\n  --navy:     #0d1b2a;\n  --navy-mid: #1c2f44;\n  --gold:     #c9922a;\n  --gold-lt:  #e8b255;\n  --cream:    #f7f4ef;\n  --offwhite: #fafaf8;\n  --slate:    #5a6a7a;\n  --border:   rgba(0,0,0,0.09);\n  --radius-sm: 12px;\n  --radius-md: 20px;\n  --radius-lg: 32px;\n  --shadow-sm: 0 2px 12px rgba(0,0,0,0.06);\n  --shadow-md: 0 8px 40px rgba(0,0,0,0.10);\n  --shadow-lg: 0 24px 80px rgba(0,0,0,0.14);\n  --font-display: 'DM Serif Display', Georgia, serif;\n  --font-body:    'DM Sans', system-ui, sans-serif;\n  --transition:   all 0.38s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nbody {\n  font-family: var(--font-body);\n  background: var(--offwhite);\n  color: var(--navy);\n  line-height: 1.6;\n  -webkit-font-smoothing: antialiased;\n}\n\n\/* \u2500\u2500\u2500 SECTION LABELS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.section-label {\n  display: inline-block;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  color: var(--gold);\n  margin-bottom: 12px;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 1 \u2014 HERO QUICK TAKEAWAYS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.hero-takeaways {\n  background: var(--navy);\n  color: #fff;\n  padding: 80px 40px;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n}\n\n.hero-takeaways::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background:\n    radial-gradient(ellipse 60% 50% at 20% 50%, rgba(201,146,42,0.18) 0%, transparent 70%),\n    radial-gradient(ellipse 50% 60% at 80% 30%, rgba(201,146,42,0.10) 0%, transparent 70%);\n  pointer-events: none;\n}\n\n.hero-takeaways .section-label { color: var(--gold-lt); }\n\n.hero-takeaways h1 {\n  font-family: var(--font-display);\n  font-size: clamp(2rem, 5vw, 3.4rem);\n  font-weight: 400;\n  line-height: 1.15;\n  max-width: 700px;\n  margin: 0 auto 16px;\n  letter-spacing: -0.02em;\n}\n\n.hero-takeaways h1 em {\n  font-style: italic;\n  color: var(--gold-lt);\n}\n\n.hero-takeaways p.subtitle {\n  color: rgba(255,255,255,0.6);\n  font-size: 1.05rem;\n  max-width: 520px;\n  margin: 0 auto 48px;\n  font-weight: 300;\n}\n\n\/* Pill chips *\/\n.takeaway-chips {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  justify-content: center;\n  max-width: 720px;\n  margin: 0 auto;\n}\n\n.chip {\n  background: rgba(255,255,255,0.07);\n  border: 1px solid rgba(255,255,255,0.13);\n  border-radius: 100px;\n  padding: 10px 20px;\n  font-size: 0.875rem;\n  font-weight: 400;\n  color: rgba(255,255,255,0.85);\n  backdrop-filter: blur(8px);\n  transition: var(--transition);\n  cursor: default;\n}\n\n.chip:hover {\n  background: rgba(201,146,42,0.25);\n  border-color: rgba(201,146,42,0.5);\n  color: #fff;\n  transform: translateY(-2px);\n}\n\n.chip .chip-icon { margin-right: 6px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 2 \u2014 INTERACTIVE GEAR SELECTOR\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.gear-selector-wrap {\n  padding: 80px 40px;\n  background: var(--cream);\n}\n\n.gear-selector-wrap .inner {\n  max-width: 1000px;\n  margin: 0 auto;\n}\n\n.gear-selector-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.6rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.gear-selector-wrap .desc {\n  color: var(--slate);\n  font-size: 0.975rem;\n  margin-bottom: 36px;\n}\n\n\/* Tab row *\/\n.gear-tabs {\n  display: flex;\n  gap: 8px;\n  flex-wrap: wrap;\n  margin-bottom: 32px;\n}\n\n.gear-tab {\n  padding: 10px 22px;\n  border-radius: 100px;\n  border: 1.5px solid var(--border);\n  background: #fff;\n  font-family: var(--font-body);\n  font-size: 0.875rem;\n  font-weight: 500;\n  color: var(--slate);\n  cursor: pointer;\n  transition: var(--transition);\n}\n\n.gear-tab:hover {\n  border-color: var(--gold);\n  color: var(--navy);\n}\n\n.gear-tab.active {\n  background: var(--navy);\n  border-color: var(--navy);\n  color: #fff;\n}\n\n\/* Panels *\/\n.gear-panels { position: relative; }\n\n.gear-panel {\n  display: none;\n  animation: fadeUp 0.4s ease forwards;\n}\n\n.gear-panel.active { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }\n\n@keyframes fadeUp {\n  from { opacity: 0; transform: translateY(12px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n\n\/* Info card *\/\n.gear-card {\n  background: #fff;\n  border-radius: var(--radius-md);\n  padding: 32px;\n  border: 1px solid var(--border);\n  box-shadow: var(--shadow-sm);\n}\n\n.gear-card .gear-icon {\n  width: 52px; height: 52px;\n  background: var(--navy);\n  border-radius: 14px;\n  display: flex; align-items: center; justify-content: center;\n  font-size: 24px;\n  margin-bottom: 20px;\n}\n\n.gear-card h3 {\n  font-family: var(--font-display);\n  font-size: 1.35rem;\n  font-weight: 400;\n  margin-bottom: 8px;\n}\n\n.gear-card p {\n  font-size: 0.9rem;\n  color: var(--slate);\n  line-height: 1.65;\n  margin-bottom: 20px;\n}\n\n.gear-card ul {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n}\n\n.gear-card ul li {\n  font-size: 0.875rem;\n  color: var(--navy);\n  display: flex;\n  align-items: flex-start;\n  gap: 8px;\n}\n\n.gear-card ul li::before {\n  content: '\u2713';\n  color: var(--gold);\n  font-weight: 700;\n  flex-shrink: 0;\n  margin-top: 1px;\n}\n\n\/* Fit guide card *\/\n.fit-card {\n  background: var(--navy);\n  border-radius: var(--radius-md);\n  padding: 32px;\n  color: #fff;\n}\n\n.fit-card h4 {\n  font-family: var(--font-display);\n  font-size: 1.1rem;\n  font-weight: 400;\n  margin-bottom: 16px;\n  color: var(--gold-lt);\n  font-style: italic;\n}\n\n.fit-meter {\n  margin-bottom: 16px;\n}\n\n.fit-meter .meter-label {\n  display: flex;\n  justify-content: space-between;\n  font-size: 0.8rem;\n  color: rgba(255,255,255,0.5);\n  margin-bottom: 6px;\n}\n\n.fit-meter .meter-bar {\n  height: 5px;\n  background: rgba(255,255,255,0.12);\n  border-radius: 100px;\n  overflow: hidden;\n}\n\n.fit-meter .meter-fill {\n  height: 100%;\n  background: linear-gradient(90deg, var(--gold), var(--gold-lt));\n  border-radius: 100px;\n  transition: width 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 3 \u2014 WEATHER OUTFIT SWITCHER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.weather-wrap {\n  padding: 80px 40px;\n  background: var(--offwhite);\n}\n\n.weather-wrap .inner {\n  max-width: 900px;\n  margin: 0 auto;\n}\n\n.weather-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.5rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.weather-wrap .desc {\n  color: var(--slate);\n  font-size: 0.975rem;\n  margin-bottom: 40px;\n}\n\n\/* Weather toggle *\/\n.weather-toggle {\n  display: flex;\n  background: #ede9e2;\n  border-radius: 100px;\n  padding: 4px;\n  width: fit-content;\n  margin-bottom: 36px;\n  gap: 2px;\n}\n\n.weather-btn {\n  padding: 10px 28px;\n  border-radius: 100px;\n  border: none;\n  background: transparent;\n  font-family: var(--font-body);\n  font-size: 0.875rem;\n  font-weight: 500;\n  color: var(--slate);\n  cursor: pointer;\n  transition: var(--transition);\n}\n\n.weather-btn.active {\n  background: #fff;\n  color: var(--navy);\n  box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n}\n\n\/* Outfit grid *\/\n.outfit-grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 16px;\n  animation: fadeUp 0.4s ease forwards;\n}\n\n.outfit-item {\n  background: #fff;\n  border-radius: var(--radius-sm);\n  padding: 24px 20px;\n  border: 1px solid var(--border);\n  text-align: center;\n  box-shadow: var(--shadow-sm);\n  transition: var(--transition);\n}\n\n.outfit-item:hover {\n  transform: translateY(-4px);\n  box-shadow: var(--shadow-md);\n}\n\n.outfit-item .item-emoji {\n  font-size: 2.4rem;\n  margin-bottom: 12px;\n  display: block;\n}\n\n.outfit-item .item-name {\n  font-weight: 600;\n  font-size: 0.9rem;\n  color: var(--navy);\n  margin-bottom: 4px;\n}\n\n.outfit-item .item-note {\n  font-size: 0.78rem;\n  color: var(--slate);\n  line-height: 1.5;\n}\n\n.outfit-item.highlight {\n  border-color: var(--gold);\n  background: linear-gradient(135deg, #fffdf7, #fff8ec);\n}\n\n.outfit-item.highlight .item-name { color: var(--gold); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 4 \u2014 PRACTICE vs GAME DAY COMPARISON TABLE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.compare-wrap {\n  padding: 80px 40px;\n  background: var(--cream);\n}\n\n.compare-wrap .inner { max-width: 860px; margin: 0 auto; }\n\n.compare-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.5rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.compare-wrap .desc {\n  color: var(--slate);\n  font-size: 0.975rem;\n  margin-bottom: 36px;\n}\n\n.compare-table {\n  width: 100%;\n  border-collapse: separate;\n  border-spacing: 0;\n  border-radius: var(--radius-md);\n  overflow: hidden;\n  box-shadow: var(--shadow-md);\n  font-size: 0.9rem;\n}\n\n.compare-table thead tr {\n  background: var(--navy);\n  color: #fff;\n}\n\n.compare-table th {\n  padding: 18px 24px;\n  text-align: left;\n  font-weight: 500;\n  font-size: 0.8rem;\n  letter-spacing: 0.06em;\n  text-transform: uppercase;\n}\n\n.compare-table th:first-child { color: rgba(255,255,255,0.5); }\n.compare-table th.col-practice { color: var(--gold-lt); }\n.compare-table th.col-game     { color: #7eb8f7; }\n\n.compare-table tbody tr {\n  background: #fff;\n  border-bottom: 1px solid var(--border);\n  transition: background 0.2s;\n}\n\n.compare-table tbody tr:hover { background: #fdfbf7; }\n.compare-table tbody tr:last-child { border-bottom: none; }\n\n.compare-table td {\n  padding: 16px 24px;\n  vertical-align: top;\n}\n\n.compare-table td:first-child {\n  font-weight: 600;\n  color: var(--navy);\n  font-size: 0.875rem;\n  border-right: 1px solid var(--border);\n}\n\n.compare-table td .badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n  font-size: 0.8rem;\n  font-weight: 500;\n}\n\n.badge-optional { color: #8a6f3a; }\n.badge-required { color: #1a5e3a; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 5 \u2014 INTERACTIVE PACK-YOUR-BAG CHECKLIST\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.checklist-wrap {\n  padding: 80px 40px;\n  background: var(--navy);\n  color: #fff;\n  position: relative;\n  overflow: hidden;\n}\n\n.checklist-wrap::before {\n  content: '';\n  position: absolute;\n  top: -100px; right: -150px;\n  width: 500px; height: 500px;\n  border-radius: 50%;\n  background: radial-gradient(circle, rgba(201,146,42,0.12) 0%, transparent 70%);\n  pointer-events: none;\n}\n\n.checklist-wrap .inner {\n  max-width: 720px;\n  margin: 0 auto;\n  position: relative;\n  z-index: 1;\n}\n\n.checklist-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.5rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.checklist-wrap .desc {\n  color: rgba(255,255,255,0.5);\n  font-size: 0.975rem;\n  margin-bottom: 36px;\n}\n\n.pack-progress-wrap { margin-bottom: 32px; }\n\n.pack-progress-label {\n  display: flex;\n  justify-content: space-between;\n  font-size: 0.8rem;\n  color: rgba(255,255,255,0.4);\n  margin-bottom: 8px;\n}\n\n.pack-progress-label #pack-count {\n  font-weight: 600;\n  color: var(--gold-lt);\n}\n\n.pack-bar-bg {\n  height: 4px;\n  background: rgba(255,255,255,0.1);\n  border-radius: 100px;\n  overflow: hidden;\n}\n\n.pack-bar-fill {\n  height: 100%;\n  width: 0%;\n  background: linear-gradient(90deg, var(--gold), var(--gold-lt));\n  border-radius: 100px;\n  transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.pack-list {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 2px;\n}\n\n.pack-item {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  padding: 14px 20px;\n  border-radius: var(--radius-sm);\n  cursor: pointer;\n  transition: var(--transition);\n  user-select: none;\n}\n\n.pack-item:hover { background: rgba(255,255,255,0.05); }\n.pack-item.checked { opacity: 0.5; }\n\n.pack-checkbox {\n  width: 22px; height: 22px;\n  border-radius: 6px;\n  border: 1.5px solid rgba(255,255,255,0.25);\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n  transition: var(--transition);\n  font-size: 12px;\n}\n\n.pack-item.checked .pack-checkbox {\n  background: var(--gold);\n  border-color: var(--gold);\n  color: #fff;\n}\n\n.pack-item-text { flex: 1; }\n\n.pack-item-text .pack-name {\n  font-weight: 500;\n  font-size: 0.925rem;\n  color: #fff;\n}\n\n.pack-item.checked .pack-name {\n  text-decoration: line-through;\n  color: rgba(255,255,255,0.4);\n}\n\n.pack-item-text .pack-sub {\n  font-size: 0.78rem;\n  color: rgba(255,255,255,0.35);\n  margin-top: 1px;\n}\n\n.pack-emoji {\n  font-size: 1.3rem;\n  width: 32px;\n  text-align: center;\n}\n\n.pack-success {\n  display: none;\n  text-align: center;\n  padding: 24px;\n  margin-top: 24px;\n  background: rgba(201,146,42,0.15);\n  border: 1px solid rgba(201,146,42,0.3);\n  border-radius: var(--radius-sm);\n  animation: fadeUp 0.5s ease forwards;\n}\n\n.pack-success.visible { display: block; }\n.pack-success .success-icon { font-size: 2rem; margin-bottom: 8px; }\n.pack-success p { font-size: 0.9rem; color: rgba(255,255,255,0.7); }\n.pack-success strong { color: var(--gold-lt); }\n\n.reset-btn {\n  margin-top: 20px;\n  background: transparent;\n  border: 1px solid rgba(255,255,255,0.15);\n  color: rgba(255,255,255,0.4);\n  padding: 8px 18px;\n  border-radius: 100px;\n  font-family: var(--font-body);\n  font-size: 0.78rem;\n  cursor: pointer;\n  transition: var(--transition);\n}\n\n.reset-btn:hover {\n  border-color: rgba(255,255,255,0.3);\n  color: rgba(255,255,255,0.7);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 6 \u2014 CLEAT TYPE EXPLORER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cleats-wrap {\n  padding: 80px 40px;\n  background: var(--offwhite);\n}\n\n.cleats-wrap .inner { max-width: 900px; margin: 0 auto; }\n\n.cleats-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.5rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.cleats-wrap .desc {\n  color: var(--slate);\n  font-size: 0.975rem;\n  margin-bottom: 36px;\n}\n\n.cleat-cards {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 20px;\n}\n\n.cleat-card {\n  border-radius: var(--radius-md);\n  overflow: hidden;\n  border: 1px solid var(--border);\n  background: #fff;\n  box-shadow: var(--shadow-sm);\n  transition: var(--transition);\n  cursor: pointer;\n}\n\n.cleat-card:hover {\n  transform: translateY(-6px);\n  box-shadow: var(--shadow-md);\n}\n\n.cleat-card .card-header {\n  padding: 28px 24px 20px;\n  background: var(--navy);\n  color: #fff;\n  text-align: center;\n  position: relative;\n}\n\n.cleat-card.best .card-header  { background: linear-gradient(135deg, #1c3a5e, #0d1b2a); }\n.cleat-card.metal .card-header { background: linear-gradient(135deg, #2d2d2d, #111); }\n.cleat-card.turf  .card-header { background: linear-gradient(135deg, #1a3a2a, #0d2218); }\n\n.cleat-card .card-icon { font-size: 2.8rem; margin-bottom: 12px; }\n\n.cleat-card .card-type {\n  font-size: 0.72rem;\n  letter-spacing: 0.1em;\n  text-transform: uppercase;\n  color: var(--gold-lt);\n  margin-bottom: 4px;\n}\n\n.cleat-card .card-name {\n  font-family: var(--font-display);\n  font-size: 1.35rem;\n  font-weight: 400;\n}\n\n.cleat-card .card-body { padding: 24px; }\n\n.cleat-card .card-body p {\n  font-size: 0.85rem;\n  color: var(--slate);\n  margin-bottom: 16px;\n  line-height: 1.65;\n}\n\n.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }\n\n.tag {\n  font-size: 0.75rem;\n  padding: 4px 10px;\n  border-radius: 100px;\n  font-weight: 500;\n}\n\n.tag-green { background: #e8f5ed; color: #1a5e3a; }\n.tag-red   { background: #fdecea; color: #8b1f18; }\n.tag-blue  { background: #e8f0fe; color: #1a3a7e; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   COMPONENT 7 \u2014 FAQ ACCORDION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.faq-wrap {\n  padding: 80px 40px;\n  background: var(--cream);\n}\n\n.faq-wrap .inner { max-width: 720px; margin: 0 auto; }\n\n.faq-wrap h2 {\n  font-family: var(--font-display);\n  font-size: clamp(1.8rem, 3.5vw, 2.5rem);\n  font-weight: 400;\n  margin-bottom: 8px;\n  letter-spacing: -0.02em;\n}\n\n.faq-wrap .desc {\n  color: var(--slate);\n  font-size: 0.975rem;\n  margin-bottom: 36px;\n}\n\n.faq-item {\n  border-bottom: 1px solid var(--border);\n  overflow: hidden;\n}\n\n.faq-item:first-of-type { border-top: 1px solid var(--border); }\n\n.faq-q {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 22px 0;\n  cursor: pointer;\n  gap: 16px;\n}\n\n.faq-q h3 {\n  font-family: var(--font-body);\n  font-size: 0.975rem;\n  font-weight: 600;\n  color: var(--navy);\n  line-height: 1.45;\n}\n\n.faq-icon {\n  width: 28px; height: 28px;\n  border-radius: 50%;\n  border: 1.5px solid var(--border);\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n  font-size: 16px;\n  color: var(--slate);\n  transition: var(--transition);\n}\n\n.faq-item.open .faq-icon {\n  background: var(--navy);\n  border-color: var(--navy);\n  color: #fff;\n  transform: rotate(45deg);\n}\n\n.faq-a {\n  max-height: 0;\n  overflow: hidden;\n  transition: max-height 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.faq-item.open .faq-a { max-height: 400px; }\n\n.faq-a-inner {\n  padding: 0 0 24px;\n  font-size: 0.9rem;\n  color: var(--slate);\n  line-height: 1.7;\n}\n\n\/* \u2500\u2500\u2500 LINK STYLES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\na.link-internal {\n  color: var(--navy);\n  font-weight: 500;\n  text-decoration: none;\n  border-bottom: 1.5px solid var(--gold);\n  padding-bottom: 1px;\n  transition: color 0.2s, border-color 0.2s;\n}\na.link-internal:hover { color: var(--gold); border-color: var(--gold-lt); }\n\na.link-external {\n  color: var(--slate);\n  font-weight: 400;\n  text-decoration: none;\n  border-bottom: 1px dashed var(--slate);\n  padding-bottom: 1px;\n  transition: color 0.2s, border-color 0.2s;\n}\na.link-external:hover { color: var(--navy); border-color: var(--navy); }\n\n.checklist-wrap a.link-internal {\n  color: var(--gold-lt);\n  border-bottom-color: rgba(232,178,85,0.5);\n}\n.checklist-wrap a.link-internal:hover { color: #fff; border-bottom-color: var(--gold-lt); }\n.checklist-wrap a.link-external {\n  color: rgba(255,255,255,0.5);\n  border-bottom-color: rgba(255,255,255,0.25);\n}\n.checklist-wrap a.link-external:hover { color: rgba(255,255,255,0.8); border-bottom-color: rgba(255,255,255,0.5); }\n\n\/* \u2500\u2500\u2500 RELATED LINKS BOX \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.related-box {\n  margin-top: 32px;\n  background: var(--cream);\n  border: 1px solid var(--border);\n  border-left: 3px solid var(--gold);\n  border-radius: var(--radius-sm);\n  padding: 20px 24px;\n}\n.related-box .related-label {\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  color: var(--gold);\n  margin-bottom: 10px;\n}\n.related-box ul { list-style: none; display: flex; flex-direction: column; gap: 7px; }\n.related-box ul li { font-size: 0.875rem; }\n.related-box ul li::before { content: '\u2192 '; color: var(--gold); font-weight: 700; }\n\n.related-box-dark {\n  margin-top: 32px;\n  background: rgba(255,255,255,0.05);\n  border: 1px solid rgba(255,255,255,0.1);\n  border-left: 3px solid var(--gold);\n  border-radius: var(--radius-sm);\n  padding: 20px 24px;\n}\n.related-box-dark .related-label {\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 0.14em;\n  text-transform: uppercase;\n  color: var(--gold-lt);\n  margin-bottom: 10px;\n}\n.related-box-dark ul { list-style: none; display: flex; flex-direction: column; gap: 7px; }\n.related-box-dark ul li { font-size: 0.875rem; }\n.related-box-dark ul li::before { content: '\u2192 '; color: var(--gold-lt); font-weight: 700; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE \u2014 TABLET (max 900px)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width: 900px) {\n  .cleat-cards { grid-template-columns: 1fr 1fr; }\n  .outfit-grid  { grid-template-columns: repeat(2, 1fr); }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE \u2014 MOBILE (max 680px)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width: 680px) {\n\n  \/* \u2500\u2500 Sections \u2500\u2500 *\/\n  .hero-takeaways,\n  .gear-selector-wrap,\n  .weather-wrap,\n  .compare-wrap,\n  .checklist-wrap,\n  .cleats-wrap,\n  .faq-wrap { padding: 52px 18px; }\n\n  \/* \u2500\u2500 Hero \u2500\u2500 *\/\n  .hero-takeaways p.subtitle { font-size: 0.95rem; margin-bottom: 32px; }\n  .takeaway-chips { gap: 8px; }\n  .chip { font-size: 0.8rem; padding: 8px 14px; }\n\n  \/* \u2500\u2500 Gear tabs \u2014 horizontal scroll \u2500\u2500 *\/\n  .gear-tabs {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-bottom: 4px;\n    scrollbar-width: none;\n    gap: 6px;\n  }\n  .gear-tabs::-webkit-scrollbar { display: none; }\n  .gear-tab {\n    white-space: nowrap;\n    flex-shrink: 0;\n    font-size: 0.82rem;\n    padding: 9px 16px;\n  }\n\n  \/* \u2500\u2500 Gear panels \u2014 stack vertically \u2500\u2500 *\/\n  .gear-panel.active { grid-template-columns: 1fr; gap: 16px; }\n  .gear-card, .fit-card { padding: 22px 18px; }\n\n  \/* \u2500\u2500 Weather toggle \u2014 scrollable \u2500\u2500 *\/\n  .weather-toggle {\n    width: 100%;\n    border-radius: var(--radius-sm);\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    scrollbar-width: none;\n    padding: 4px;\n    gap: 2px;\n  }\n  .weather-toggle::-webkit-scrollbar { display: none; }\n  .weather-btn { white-space: nowrap; flex-shrink: 0; padding: 9px 16px; font-size: 0.8rem; }\n\n  \/* \u2500\u2500 Outfit grid \u2014 2 columns on mobile \u2500\u2500 *\/\n  .outfit-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }\n  .outfit-item { padding: 18px 12px; }\n  .outfit-item .item-emoji { font-size: 1.8rem; margin-bottom: 8px; }\n\n  \/* \u2500\u2500 Compare table \u2014 horizontal scroll \u2500\u2500 *\/\n  .compare-wrap { padding-left: 0; padding-right: 0; }\n  .compare-wrap .inner { padding: 0 18px; }\n  .table-hint {\n    font-size: 0.78rem;\n    color: var(--slate);\n    margin-bottom: 10px;\n    display: flex;\n    align-items: center;\n    gap: 5px;\n  }\n  .table-scroll-wrap {\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    border-radius: var(--radius-md);\n    box-shadow: var(--shadow-md);\n    margin-bottom: 8px;\n  }\n  .compare-table {\n    min-width: 500px;\n    border-radius: 0;\n    box-shadow: none;\n  }\n  .compare-table th,\n  .compare-table td { padding: 12px 14px; font-size: 0.82rem; }\n  .compare-table td .badge { font-size: 0.75rem; }\n\n  \/* \u2500\u2500 Checklist items \u2500\u2500 *\/\n  .pack-item { padding: 12px 14px; gap: 12px; }\n  .pack-emoji { display: none; }\n  .pack-item-text .pack-name { font-size: 0.875rem; }\n\n  \/* \u2500\u2500 Cleat cards \u2014 single column \u2500\u2500 *\/\n  .cleat-cards { grid-template-columns: 1fr; gap: 16px; }\n\n  \/* \u2500\u2500 Footer hub grid \u2500\u2500 *\/\n  .hub-footer-grid { grid-template-columns: 1fr !important; }\n\n  \/* \u2500\u2500 Related boxes \u2500\u2500 *\/\n  .related-box, .related-box-dark { padding: 16px 16px; }\n\n  \/* \u2500\u2500 FAQ \u2500\u2500 *\/\n  .faq-q { padding: 18px 0; }\n  .faq-q h3 { font-size: 0.9rem; }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE \u2014 SMALL MOBILE (max 400px)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width: 400px) {\n  .outfit-grid { grid-template-columns: 1fr; }\n  .chip { font-size: 0.75rem; padding: 7px 12px; }\n}\n<\/style>\n<\/head>\n<body>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 1 \u2014 HERO QUICK TAKEAWAYS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"hero-takeaways\">\n  <span class=\"section-label\">Fastpitch Softball<\/span>\n  <h1>What to Wear to<br><em>Softball Practice<\/em><\/h1>\n  <p class=\"subtitle\">Every item you need, explained \u2014 so you arrive ready to work, not wondering if you packed right.<\/p>\n\n  <div class=\"takeaway-chips\">\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83d\udee1\ufe0f<\/span>Sliders protect on every slide<\/span>\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83e\udde6<\/span>Knee-high socks reduce scrapes<\/span>\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83d\udc56<\/span>Pants build game-day comfort<\/span>\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83d\udca7<\/span>Moisture-wicking fabrics matter<\/span>\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83d\udc5f<\/span>Match cleats to the surface<\/span>\n    <span class=\"chip\"><span class=\"chip-icon\">\ud83c\udf1e<\/span>Sunscreen is non-negotiable<\/span>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 2 \u2014 INTERACTIVE GEAR SELECTOR\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"gear-selector-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\">Gear Explorer<\/span>\n    <h2>What Does Each Item Actually Do?<\/h2>\n    <p class=\"desc\">Select any piece of softball practice gear to see why it matters and how to choose the right one.<\/p>\n\n    <div class=\"gear-tabs\">\n      <button class=\"gear-tab active\" onclick=\"showGear('sliders', this)\">Sliding Shorts<\/button>\n      <button class=\"gear-tab\" onclick=\"showGear('socks', this)\">Knee-High Socks<\/button>\n      <button class=\"gear-tab\" onclick=\"showGear('pants', this)\">Softball Pants<\/button>\n      <button class=\"gear-tab\" onclick=\"showGear('shirt', this)\">Practice Shirt<\/button>\n      <button class=\"gear-tab\" onclick=\"showGear('gloves', this)\">Batting Gloves<\/button>\n    <\/div>\n\n    <div class=\"gear-panels\">\n\n      <div class=\"gear-panel active\" id=\"gear-sliders\">\n        <div class=\"gear-card\">\n          <div class=\"gear-icon\">\ud83d\udee1\ufe0f<\/div>\n          <h3>Sliding Shorts (Sliders)<\/h3>\n          <p>Worn directly against the skin, under your pants. The padded zones sit at the hips and thighs \u2014 exactly where you absorb impact on a slide or dive. One good pair lasts a full competitive season.<\/p>\n          <ul>\n            <li>4-way stretch fabric that moves with your stride<\/li>\n            <li>Padding placed at hips, not just the seat<\/li>\n            <li>Flat, non-bulky profile under <a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/what-to-wear-to-softball-practice\/\" target=\"_blank\" rel=\"noopener\">softball pants<\/a><\/li>\n            <li>Moisture-wicking construction \u2014 no heavy cotton<\/li>\n            <li>Snug fit that doesn't shift during baserunning<\/li>\n          <\/ul>\n        <\/div>\n        <div class=\"fit-card\">\n          <h4>Fit Performance Guide<\/h4>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Hip Protection<\/span><span>Excellent<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:92%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Mobility<\/span><span>Very High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:88%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Comfort (under pants)<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:80%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Durability<\/span><span>Season-long<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:85%\"><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"gear-panel\" id=\"gear-socks\">\n        <div class=\"gear-card\">\n          <div class=\"gear-icon\">\ud83e\udde6<\/div>\n          <h3>Knee-High Softball Socks<\/h3>\n          <p>Not just tradition \u2014 knee-highs cover the gap between your pants hem and cleat, protecting your shin from sliding scrapes and cleat contact. They also reduce sun exposure on long outdoor sessions.<\/p>\n          <ul>\n            <li>Over-the-calf length that reaches the knee<\/li>\n            <li>Mesh panels at ankle for ventilation<\/li>\n            <li>Moisture-wicking \u2014 no heavy cotton<\/li>\n            <li>Snug but not restrictive around the calf<\/li>\n            <li>Works as a system with sliding shorts for full leg coverage<\/li>\n          <\/ul>\n        <\/div>\n        <div class=\"fit-card\">\n          <h4>Fit Performance Guide<\/h4>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Leg Protection<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:78%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Stay-Up Reliability<\/span><span>Varies<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:72%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Breathability<\/span><span>Medium-High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:75%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Durability<\/span><span>Good<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:70%\"><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"gear-panel\" id=\"gear-pants\">\n        <div class=\"gear-card\">\n          <div class=\"gear-icon\">\ud83d\udc56<\/div>\n          <h3>Softball Practice Pants<\/h3>\n          <p>Not required at most practices, but wearing them consistently builds game-day familiarity. Players who only wear pants during games spend the first few innings adjusting. Full-length beats 3\/4 for coverage.<\/p>\n          <ul>\n            <li>Full-length covers more leg than 3\/4 pants<\/li>\n            <li>4-way stretch for unrestricted hip and knee movement<\/li>\n            <li>Reinforced double-layer knees \u2014 where wear shows first<\/li>\n            <li>Lightweight and breathable for warm-weather sessions<\/li>\n            <li>Adjustable waistband that holds securely on slides<\/li>\n          <\/ul>\n        <\/div>\n        <div class=\"fit-card\">\n          <h4>Fit Performance Guide<\/h4>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Leg Coverage<\/span><span>Full<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:95%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Range of Motion<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:86%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Slide Protection<\/span><span>Excellent<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:90%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Season Durability<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:83%\"><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"gear-panel\" id=\"gear-shirt\">\n        <div class=\"gear-card\">\n          <div class=\"gear-icon\">\ud83d\udc55<\/div>\n          <h3>Practice Shirt<\/h3>\n          <p>The guiding principle: moves with you and keeps you dry. A moisture-wicking athletic shirt pulls sweat away from your skin \u2014 critical during long summer sessions on a hot field. Avoid anything baggy that bunches at the armpit.<\/p>\n          <ul>\n            <li>Moisture-wicking fabric for warm-weather practices<\/li>\n            <li>Form-fitting \u2014 not too tight, not too baggy<\/li>\n            <li>Long-sleeve athletic shirt for cold or rainy days<\/li>\n            <li>Light, breathable layer works better than heavy cotton<\/li>\n            <li>Catchers: compression base layer fits cleaner under gear<\/li>\n          <\/ul>\n        <\/div>\n        <div class=\"fit-card\">\n          <h4>Fit Performance Guide<\/h4>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Moisture Management<\/span><span>Excellent<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:90%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Range of Motion<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:88%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Thermal Comfort<\/span><span>Variable<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:68%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Durability<\/span><span>Good<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:74%\"><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"gear-panel\" id=\"gear-gloves\">\n        <div class=\"gear-card\">\n          <div class=\"gear-icon\">\ud83e\udde4<\/div>\n          <h3>Batting Gloves<\/h3>\n          <p>Not required, but worth developing a habit around early. They protect your palm from vibration on mishits \u2014 which adds up fast during repetition-heavy tee work or machine sessions. Consistent grip feedback also helps during skill-building stages.<\/p>\n          <ul>\n            <li>Protects against sting and vibration on contact<\/li>\n            <li>Consistent grip from swing to swing<\/li>\n            <li>Builds a game-day feel during practice<\/li>\n            <li>Choose a snug fit without restricting finger flex<\/li>\n            <li>Leather palm lasts longer than synthetic on heavy hitters<\/li>\n          <\/ul>\n          <div class=\"related-box\" style=\"margin-top:20px;\">\n            <div class=\"related-label\">More from AllAboutFastpitch<\/div>\n            <ul>\n              <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-softball-batting-gloves\/\" target=\"_blank\" rel=\"noopener\">Best Softball Batting Gloves \u2014 Full Reviews & Top Picks<\/a><\/li>\n              <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-fastpitch-softball-bats-overview\/\" target=\"_blank\" rel=\"noopener\">Best Fastpitch Softball Bats \u2014 2025 Buyer's Guide<\/a><\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n        <div class=\"fit-card\">\n          <h4>Fit Performance Guide<\/h4>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Sting Protection<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:84%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Grip Consistency<\/span><span>Very High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:89%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Durability (leather)<\/span><span>High<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:81%\"><\/div><\/div>\n          <\/div>\n          <div class=\"fit-meter\">\n            <div class=\"meter-label\"><span>Feel \/ Sensitivity<\/span><span>Medium<\/span><\/div>\n            <div class=\"meter-bar\"><div class=\"meter-fill\" style=\"width:62%\"><\/div><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div><!-- \/gear-panels -->\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 3 \u2014 WEATHER OUTFIT SWITCHER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"weather-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\">Weather Guide<\/span>\n    <h2>Dress for the Conditions<\/h2>\n    <p class=\"desc\">What you wear to softball practice changes with the weather. Select a condition to see the right setup.<\/p>\n\n    <div class=\"weather-toggle\">\n      <button class=\"weather-btn active\" onclick=\"switchWeather('hot', this)\">\u2600\ufe0f Hot<\/button>\n      <button class=\"weather-btn\" onclick=\"switchWeather('cold', this)\">\ud83e\udd76 Cold<\/button>\n      <button class=\"weather-btn\" onclick=\"switchWeather('rain', this)\">\ud83c\udf27\ufe0f Rainy<\/button>\n      <button class=\"weather-btn\" onclick=\"switchWeather('indoor', this)\">\ud83c\udfdf\ufe0f Indoor<\/button>\n    <\/div>\n\n    <div id=\"weather-grid\" class=\"outfit-grid\"><\/div>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 4 \u2014 PRACTICE vs GAME TABLE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"compare-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\">Quick Reference<\/span>\n    <h2>Practice vs. Game Day \u2014 What's Required?<\/h2>\n    <p class=\"desc\">Not everything you wear in a game is mandatory at practice. Here's a clear breakdown so you don't over- or under-pack.<\/p>\n\n    <p class=\"table-hint\">\ud83d\udc46 Scroll to see full table \u2192<\/p>\n    <div class=\"table-scroll-wrap\">\n      <table class=\"compare-table\" role=\"table\">\n        <thead>\n          <tr>\n            <th>Item<\/th>\n            <th class=\"col-practice\">Practice<\/th>\n            <th class=\"col-game\">Game Day<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody>\n          <tr>\n            <td>Sliding Shorts<\/td>\n            <td><span class=\"badge badge-required\">\u2713 Strongly Recommended<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Essential<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Knee-High Socks<\/td>\n            <td><span class=\"badge badge-required\">\u2713 Recommended<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Softball Pants<\/td>\n            <td><span class=\"badge badge-optional\">\u25b3 Optional (encouraged)<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Softball Cleats<\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required (outdoor)<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Batting Gloves<\/td>\n            <td><span class=\"badge badge-optional\">\u25b3 Optional<\/span><\/td>\n            <td><span class=\"badge badge-optional\">\u25b3 Personal preference<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Helmet<\/td>\n            <td><span class=\"badge badge-required\">\u2713 During live hitting<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required at bat<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Hat \/ Visor<\/td>\n            <td><span class=\"badge badge-optional\">\u25b3 Recommended (outdoor)<\/span><\/td>\n            <td><span class=\"badge badge-optional\">\u25b3 Team-specific<\/span><\/td>\n          <\/tr>\n          <tr>\n            <td>Catcher's Gear<\/td>\n            <td><span class=\"badge badge-required\">\u2713 If catching pitchers<\/span><\/td>\n            <td><span class=\"badge badge-required\">\u2713 Required<\/span><\/td>\n          <\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <div class=\"related-box\" style=\"margin-top:28px;\">\n      <div class=\"related-label\">Related Gear Guides on AllAboutFastpitch<\/div>\n      <ul>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/the-best-softball-cleats-overview\/\" target=\"_blank\" rel=\"noopener\">Best Softball Cleats \u2014 Molded, Metal & Turf Reviewed<\/a><\/li>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-fastpitch-softball-gloves-overview\/\" target=\"_blank\" rel=\"noopener\">Best Fastpitch Softball Gloves \u2014 Position-by-Position Guide<\/a><\/li>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-catchers-gear-for-fastpitch-softball\/\" target=\"_blank\" rel=\"noopener\">Best Catcher's Gear for Fastpitch Softball \u2014 Full Sets Reviewed<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 5 \u2014 INTERACTIVE BAG CHECKLIST\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"checklist-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\" style=\"color:var(--gold-lt)\">Pre-Practice Routine<\/span>\n    <h2>Pack Your Bag \u2014 Zero Forgettables<\/h2>\n    <p class=\"desc\">Check off each item as you pack it. Your bag is ready when the bar hits 100%.<\/p>\n\n    <div class=\"pack-progress-wrap\">\n      <div class=\"pack-progress-label\">\n        <span>Items packed<\/span>\n        <span><span id=\"pack-count\">0<\/span> \/ 10<\/span>\n      <\/div>\n      <div class=\"pack-bar-bg\">\n        <div class=\"pack-bar-fill\" id=\"pack-bar\"><\/div>\n      <\/div>\n    <\/div>\n\n    <ul class=\"pack-list\" id=\"pack-list\">\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83d\udee1\ufe0f<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Sliding Shorts<\/div>\n          <div class=\"pack-sub\">Worn under pants \u2014 don't skip these<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83e\udde6<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Knee-High Socks<\/div>\n          <div class=\"pack-sub\">Snug fit, over the calf<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83d\udc56<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Softball Pants<\/div>\n          <div class=\"pack-sub\">Full-length preferred<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83d\udc55<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Athletic Shirt<\/div>\n          <div class=\"pack-sub\">Moisture-wicking fabric<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83d\udc5f<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Softball Cleats<\/div>\n          <div class=\"pack-sub\">Matched to your practice surface<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83e\udde4<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Batting Gloves<\/div>\n          <div class=\"pack-sub\">For hitting sessions<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83e\udde2<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Hat or Visor<\/div>\n          <div class=\"pack-sub\">Outdoor practices \u2014 sun in your eyes kills fly balls<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83e\uddf4<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Sunscreen<\/div>\n          <div class=\"pack-sub\">Apply before you leave, pack for reapplication<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83d\udca7<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Water Bottle<\/div>\n          <div class=\"pack-sub\">Full before you arrive<\/div>\n        <\/div>\n      <\/li>\n      <li class=\"pack-item\" onclick=\"togglePack(this)\">\n        <span class=\"pack-checkbox\">\u2713<\/span>\n        <span class=\"pack-emoji\">\ud83e\udd4e<\/span>\n        <div class=\"pack-item-text\">\n          <div class=\"pack-name\">Glove<\/div>\n          <div class=\"pack-sub\">Always \u2014 no exceptions<\/div>\n        <\/div>\n      <\/li>\n    <\/ul>\n\n    <div class=\"pack-success\" id=\"pack-success\">\n      <div class=\"success-icon\">\ud83c\udfbd<\/div>\n      <p><strong>Bag is ready.<\/strong> You've checked everything. Now go work.<\/p>\n    <\/div>\n\n    <button class=\"reset-btn\" onclick=\"resetPack()\">\u21ba Reset checklist<\/button>\n\n    <div class=\"related-box-dark\" style=\"margin-top:28px;\">\n      <div class=\"related-label\">Build Your Practice Game Off the Field Too<\/div>\n      <ul>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/softball-workouts-at-home\/\" target=\"_blank\" rel=\"noopener\">5 Best At-Home Workouts for Softball Players<\/a><\/li>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/softball-offseason-conditioning-exercises\/\" target=\"_blank\" rel=\"noopener\">Best Offseason Conditioning Exercises for Softball Players<\/a><\/li>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/mental-game-fastpitch-softball\/\" target=\"_blank\" rel=\"noopener\">The Mental Game: What Separates Good Fastpitch Players from Great Ones<\/a><\/li>\n        <li><a class=\"link-external\" href=\"https:\/\/www.usasoftball.com\/certified-equipment\/\" target=\"_blank\" rel=\"noopener noreferrer\">USA Softball \u2014 Official Certified Equipment List<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 6 \u2014 CLEAT TYPE EXPLORER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"cleats-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\">Footwear Guide<\/span>\n    <h2>Which Cleats Should You Wear?<\/h2>\n    <p class=\"desc\">The wrong cleat on the wrong surface limits your traction and slows your first-step reaction time. Here's a clear breakdown.<\/p>\n\n    <div class=\"cleat-cards\">\n\n      <div class=\"cleat-card best\">\n        <div class=\"card-header\">\n          <div class=\"card-icon\">\u26a1<\/div>\n          <div class=\"card-type\">Best for Practice<\/div>\n          <div class=\"card-name\">Molded Rubber<\/div>\n        <\/div>\n        <div class=\"card-body\">\n          <p>The most versatile cleat for practice. Reliable traction on both grass and dirt, allowed at all youth levels, and comfortable enough for long repetition sessions. See our <a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/the-best-softball-cleats-overview\/\" target=\"_blank\" rel=\"noopener\">full softball cleats guide<\/a> for top-rated options.<\/p>\n          <div class=\"tag-row\">\n            <span class=\"tag tag-green\">Grass \u2713<\/span>\n            <span class=\"tag tag-green\">Dirt \u2713<\/span>\n            <span class=\"tag tag-green\">All ages \u2713<\/span>\n            <span class=\"tag tag-blue\">Best starting point<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cleat-card metal\">\n        <div class=\"card-header\">\n          <div class=\"card-icon\">\ud83d\udd29<\/div>\n          <div class=\"card-type\">Game Day<\/div>\n          <div class=\"card-name\">Metal Cleats<\/div>\n        <\/div>\n        <div class=\"card-body\">\n          <p>Superior traction \u2014 elite players use them for exactly that reason. Not allowed at most youth levels and too aggressive for repetitive practice footwork drills. Always <a class=\"link-external\" href=\"https:\/\/www.nfhs.org\/sports-resource-content\/softball-uniform-rules\/\" target=\"_blank\" rel=\"noopener noreferrer\">check NFHS uniform rules<\/a> for your league's cleat restrictions.<\/p>\n          <div class=\"tag-row\">\n            <span class=\"tag tag-green\">Max traction \u2713<\/span>\n            <span class=\"tag tag-red\">Not youth \u2717<\/span>\n            <span class=\"tag tag-red\">Skip for practice \u2717<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cleat-card turf\">\n        <div class=\"card-header\">\n          <div class=\"card-icon\">\ud83d\udfe9<\/div>\n          <div class=\"card-type\">Cage & Turf<\/div>\n          <div class=\"card-name\">Turf Shoes<\/div>\n        <\/div>\n        <div class=\"card-body\">\n          <p>Purpose-built for batting cages and artificial surfaces. Patterned rubber sole grips firm ground without spike depth that can catch and torque on artificial grass.<\/p>\n          <div class=\"tag-row\">\n            <span class=\"tag tag-green\">Cage \u2713<\/span>\n            <span class=\"tag tag-green\">Artificial turf \u2713<\/span>\n            <span class=\"tag tag-red\">Wet grass \u2717<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <div class=\"related-box\" style=\"margin-top:28px;\">\n      <div class=\"related-label\">Dig Deeper on Cleats<\/div>\n      <ul>\n        <li><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/the-best-softball-cleats-overview\/\" target=\"_blank\" rel=\"noopener\">Best Fastpitch Softball Cleats \u2014 2024 Reviews & Top Picks<\/a><\/li>\n        <li><a class=\"link-external\" href=\"https:\/\/www.usasoftball.com\/certified-equipment\/\" target=\"_blank\" rel=\"noopener noreferrer\">USA Softball Certified Equipment \u2014 Official Approved List<\/a><\/li>\n        <li><a class=\"link-external\" href=\"https:\/\/www.nfhs.org\/sports-resource-content\/softball-uniform-rules\/\" target=\"_blank\" rel=\"noopener noreferrer\">NFHS Softball Uniform Rules \u2014 High School Regulations<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     COMPONENT 7 \u2014 FAQ ACCORDION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"faq-wrap\">\n  <div class=\"inner\">\n    <span class=\"section-label\">Common Questions<\/span>\n    <h2>Frequently Asked Questions<\/h2>\n    <p class=\"desc\">Real questions from players \u2014 answered directly, without the fluff.<\/p>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>Can I wear regular athletic shorts to softball practice?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          Shorts are acceptable at low-intensity, indoor practices where no live fielding or sliding is happening. For any practice with fielding drills, baserunning, or sliding work, softball pants are the better choice \u2014 they protect your legs in ways that shorts simply can't. Coaches at tryouts specifically recommend pants over shorts because it signals preparation.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>Do I need softball pants at practice if they're not required?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          Not required, but strongly recommended. Players who practice in softball pants consistently are more comfortable and confident in them on game day \u2014 the fit and movement feel familiar. That means one less adjustment to make when the stakes go up in a real game.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>What cleats should I wear to my first softball practice?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          Molded rubber cleats are the right starting point. They work well on both grass and dirt, they're allowed at all youth levels, and they're more comfortable for extended practice sessions than metal cleats. Check with your coach on any league-specific restrictions before purchasing \u2014 or browse our <a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/the-best-softball-cleats-overview\/\" target=\"_blank\" rel=\"noopener\">softball cleats guide<\/a> to compare the top-rated options side by side.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>What should I wear under my softball pants?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          Sliding shorts (also called sliders) worn directly against the skin, under your <a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/what-to-wear-to-softball-practice\/\" target=\"_blank\" rel=\"noopener\">softball pants<\/a>. This is the standard setup for fastpitch players at every level \u2014 the sliders provide padding and hip protection that the outer pants don't offer on their own.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>What should I wear to a softball tryout specifically?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          Wear softball pants \u2014 not shorts. Have your cleats on. If possible, wear a shirt with your name or number so coaches can track you during evaluations. Bring your full kit: glove, helmet, and bat. The goal is to look like a player who has been practicing, not someone figuring out gear for the first time.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n      <div class=\"faq-q\">\n        <h3>Are batting gloves worth wearing at practice?<\/h3>\n        <div class=\"faq-icon\">+<\/div>\n      <\/div>\n      <div class=\"faq-a\">\n        <div class=\"faq-a-inner\">\n          They're worth building the habit early. Batting gloves protect your palm from vibration on mishits \u2014 which adds up significantly over a long hitting session on a tee or off a machine. They also give you consistent grip feedback swing to swing, which matters when you're working on mechanics rather than just swinging hard. Read our <a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-softball-batting-gloves\/\" target=\"_blank\" rel=\"noopener\">best softball batting gloves guide<\/a> to find a pair that fits your game.\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CONTINUE READING \u2014 INTERNAL + AUTHORITY HUB\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section style=\"padding: 60px 40px; background: var(--navy);\">\n  <div style=\"max-width: 860px; margin: 0 auto;\">\n    <span class=\"section-label\" style=\"color:var(--gold-lt)\">Continue Reading<\/span>\n    <h2 style=\"font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem); font-weight:400; color:#fff; margin-bottom:8px; letter-spacing:-0.02em;\">Everything You Need to Play Your Best<\/h2>\n    <p style=\"color:rgba(255,255,255,0.5); font-size:0.9rem; margin-bottom:32px;\">More guides from AllAboutFastpitch \u2014 and the official sources worth bookmarking.<\/p>\n\n    <div class=\"hub-footer-grid\" style=\"display:grid; grid-template-columns:1fr 1fr; gap:16px;\">\n\n      <div style=\"background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius-sm); padding:24px;\">\n        <div style=\"font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-lt); margin-bottom:14px;\">AllAboutFastpitch Guides<\/div>\n        <ul style=\"list-style:none; display:flex; flex-direction:column; gap:10px;\">\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/the-best-softball-cleats-overview\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">Best Softball Cleats \u2014 All Types Reviewed<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-softball-batting-gloves\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">Best Softball Batting Gloves \u2014 2024 Top Picks<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-fastpitch-softball-gloves-overview\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">Best Fastpitch Softball Gloves by Position<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-catchers-gear-for-fastpitch-softball\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">Best Catcher's Gear Sets for Fastpitch<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/best-fastpitch-softball-bats-overview\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">Best Fastpitch Softball Bats \u2014 Full Buyer's Guide<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/softball-workouts-at-home\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">At-Home Workouts for Softball Players<\/a><\/li>\n          <li style=\"font-size:0.875rem;\"><a class=\"link-internal\" href=\"https:\/\/www.allaboutfastpitch.com\/mental-game-fastpitch-softball\/\" target=\"_blank\" rel=\"noopener\" style=\"color:rgba(255,255,255,0.8); border-bottom-color:rgba(201,146,42,0.4);\">The Mental Game \u2014 What Separates Good from Great<\/a><\/li>\n        <\/ul>\n      <\/div>\n\n      <div style=\"background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:var(--radius-sm); padding:24px;\">\n        <div style=\"font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.35); margin-bottom:14px;\">Official Sources & Governing Bodies<\/div>\n        <ul style=\"list-style:none; display:flex; flex-direction:column; gap:10px;\">\n          <li style=\"font-size:0.875rem;\">\n            <a class=\"link-external\" href=\"https:\/\/www.usasoftball.com\/certified-equipment\/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:rgba(255,255,255,0.5); border-bottom-color:rgba(255,255,255,0.2);\">USA Softball \u2014 Certified Equipment List<\/a>\n            <div style=\"font-size:0.75rem; color:rgba(255,255,255,0.25); margin-top:2px;\">Official approved bats, balls & gear<\/div>\n          <\/li>\n          <li style=\"font-size:0.875rem;\">\n            <a class=\"link-external\" href=\"https:\/\/www.nfhs.org\/sports-resource-content\/softball-uniform-rules\/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:rgba(255,255,255,0.5); border-bottom-color:rgba(255,255,255,0.2);\">NFHS \u2014 Softball Uniform Rules<\/a>\n            <div style=\"font-size:0.75rem; color:rgba(255,255,255,0.25); margin-top:2px;\">High school-level equipment regulations<\/div>\n          <\/li>\n          <li style=\"font-size:0.875rem;\">\n            <a class=\"link-external\" href=\"https:\/\/www.usasoftball.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:rgba(255,255,255,0.5); border-bottom-color:rgba(255,255,255,0.2);\">USA Softball \u2014 National Governing Body<\/a>\n            <div style=\"font-size:0.75rem; color:rgba(255,255,255,0.25); margin-top:2px;\">Rules, leagues, and player resources<\/div>\n          <\/li>\n          <li style=\"font-size:0.875rem;\">\n            <a class=\"link-external\" href=\"https:\/\/www.nfhs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:rgba(255,255,255,0.5); border-bottom-color:rgba(255,255,255,0.2);\">NFHS \u2014 National Federation of State High School Associations<\/a>\n            <div style=\"font-size:0.75rem; color:rgba(255,255,255,0.25); margin-top:2px;\">High school sports rules & standards<\/div>\n          <\/li>\n        <\/ul>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 JAVASCRIPT \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n\/* \u2500\u2500 Gear Selector \u2500\u2500 *\/\nfunction showGear(id, btn) {\n  document.querySelectorAll('.gear-panel').forEach(p => p.classList.remove('active'));\n  document.querySelectorAll('.gear-tab').forEach(t => t.classList.remove('active'));\n  document.getElementById('gear-' + id).classList.add('active');\n  btn.classList.add('active');\n}\n\n\/* \u2500\u2500 Weather Switcher \u2500\u2500 *\/\nconst weatherData = {\n  hot: [\n    { emoji:'\ud83d\udc55', name:'Moisture-Wicking Tee', note:'Short-sleeve, form-fitting', highlight:true },\n    { emoji:'\ud83d\udee1\ufe0f', name:'Sliding Shorts', note:'4-way stretch, under pants' },\n    { emoji:'\ud83d\udc56', name:'Softball Pants', note:'Lightweight, breathable fabric' },\n    { emoji:'\ud83e\udde6', name:'Knee-High Socks', note:'Mesh panels for ventilation' },\n    { emoji:'\ud83d\udc5f', name:'Molded Cleats', note:'Standard outdoor surface' },\n    { emoji:'\ud83e\udde2', name:'Hat or Visor', note:'Sun management \u2014 essential', highlight:true },\n    { emoji:'\ud83e\uddf4', name:'Sunscreen', note:'Apply before, reapply after 90 min' },\n    { emoji:'\ud83d\udca7', name:'Water Bottle', note:'Hydration drops fast in heat' },\n  ],\n  cold: [\n    { emoji:'\ud83e\udde5', name:'Thermal Base Layer', note:'Fitted, under your jersey', highlight:true },\n    { emoji:'\ud83d\udc55', name:'Long-Sleeve Athletic Shirt', note:'Mid-layer before your jersey' },\n    { emoji:'\ud83d\udee1\ufe0f', name:'Sliding Shorts', note:'Cold weather \u2014 still essential' },\n    { emoji:'\ud83d\udc56', name:'Softball Pants', note:'Full-length traps more warmth' },\n    { emoji:'\ud83e\udde6', name:'Knee-High Socks', note:'Helps with cold legs in the field' },\n    { emoji:'\ud83d\udc5f', name:'Molded Cleats', note:'Cold ground \u2014 avoid metal' },\n    { emoji:'\ud83e\udde4', name:'Batting Gloves', note:'Warm hands = better grip', highlight:true },\n    { emoji:'\ud83e\udde3', name:'Light Neck Gaiter', note:'Optional \u2014 remove when warmed up' },\n  ],\n  rain: [\n    { emoji:'\ud83e\udde5', name:'Water-Resistant Shell', note:'Lightweight, breathable outer layer', highlight:true },\n    { emoji:'\ud83d\udc55', name:'Quick-Dry Athletic Shirt', note:'Avoid cotton \u2014 stays wet all practice' },\n    { emoji:'\ud83d\udee1\ufe0f', name:'Sliding Shorts', note:'Still necessary \u2014 wet dirt is harder to slide on' },\n    { emoji:'\ud83d\udc56', name:'Softball Pants', note:'Quick-dry fabric is worth it here', highlight:true },\n    { emoji:'\ud83e\udde6', name:'Knee-High Socks', note:'Wool blend retains warmth when wet' },\n    { emoji:'\ud83d\udc5f', name:'Molded Cleats', note:'Better than metal on wet grass' },\n    { emoji:'\ud83e\udde2', name:'Hat with Brim', note:'Keeps rain out of your eyes on fly balls' },\n    { emoji:'\ud83d\udca7', name:'Extra Dry Layer', note:'Pack a backup shirt in your bag' },\n  ],\n  indoor: [\n    { emoji:'\ud83d\udc55', name:'Athletic Shirt', note:'Any comfortable fit works indoors' },\n    { emoji:'\ud83d\udee1\ufe0f', name:'Sliding Shorts', note:'If drilling slides or diving' },\n    { emoji:'\ud83d\udc56', name:'Athletic Pants \/ Softball Pants', note:'Shorts acceptable for light sessions' },\n    { emoji:'\ud83d\udfe9', name:'Turf Shoes', note:'No cleats on gym surfaces \u2014 turf shoes only', highlight:true },\n    { emoji:'\ud83e\udde4', name:'Batting Gloves', note:'Cage work \u2014 highly recommended', highlight:true },\n    { emoji:'\ud83e\udd4e', name:'Batting Helmet', note:'For live cage sessions' },\n    { emoji:'\ud83d\udca7', name:'Water Bottle', note:'Indoor spaces get warm fast' },\n  ],\n};\n\nfunction switchWeather(type, btn) {\n  document.querySelectorAll('.weather-btn').forEach(b => b.classList.remove('active'));\n  btn.classList.add('active');\n  const grid = document.getElementById('weather-grid');\n  const items = weatherData[type];\n  grid.style.opacity = '0';\n  grid.style.transform = 'translateY(10px)';\n  setTimeout(() => {\n    grid.innerHTML = items.map(i => `\n      <div class=\"outfit-item${i.highlight ? ' highlight' : ''}\">\n        <span class=\"item-emoji\">${i.emoji}<\/span>\n        <div class=\"item-name\">${i.name}<\/div>\n        <div class=\"item-note\">${i.note}<\/div>\n      <\/div>\n    `).join('');\n    grid.style.transition = 'opacity 0.35s ease, transform 0.35s ease';\n    grid.style.opacity = '1';\n    grid.style.transform = 'translateY(0)';\n  }, 180);\n}\n\nswitchWeather('hot', document.querySelector('.weather-btn.active'));\n\n\/* \u2500\u2500 Pack Checklist \u2500\u2500 *\/\nfunction togglePack(item) {\n  item.classList.toggle('checked');\n  updatePackBar();\n}\n\nfunction updatePackBar() {\n  const total   = document.querySelectorAll('.pack-item').length;\n  const checked = document.querySelectorAll('.pack-item.checked').length;\n  document.getElementById('pack-count').textContent = checked;\n  document.getElementById('pack-bar').style.width = (checked \/ total * 100) + '%';\n  document.getElementById('pack-success').classList.toggle('visible', checked === total);\n}\n\nfunction resetPack() {\n  document.querySelectorAll('.pack-item').forEach(i => i.classList.remove('checked'));\n  updatePackBar();\n}\n\n\/* \u2500\u2500 FAQ Accordion \u2500\u2500 *\/\nfunction toggleFaq(item) {\n  const isOpen = item.classList.contains('open');\n  document.querySelectorAll('.faq-item').forEach(f => f.classList.remove('open'));\n  if (!isOpen) item.classList.add('open');\n}\n\n\/* \u2500\u2500 Footer hub mobile grid fix \u2500\u2500 *\/\nfunction applyHubGrid() {\n  const grid = document.querySelector('.hub-footer-grid');\n  if (!grid) return;\n  if (window.innerWidth <= 680) {\n    grid.style.gridTemplateColumns = '1fr';\n  } else {\n    grid.style.gridTemplateColumns = '1fr 1fr';\n  }\n}\napplyHubGrid();\nwindow.addEventListener('resize', applyHubGrid);\n<\/script>\n<\/body>\n<\/html><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":6142,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-6132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softball"],"_links":{"self":[{"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/posts\/6132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/comments?post=6132"}],"version-history":[{"count":3,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/posts\/6132\/revisions"}],"predecessor-version":[{"id":9188,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/posts\/6132\/revisions\/9188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/media\/6142"}],"wp:attachment":[{"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/media?parent=6132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/categories?post=6132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.allaboutfastpitch.com\/wp-json\/wp\/v2\/tags?post=6132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}