{"title":"DryFireMag® Spring Kits","description":"\u003cstyle\u003e\n  .dfm-sk { color: #171717; max-width: 1180px; margin: 20px auto 28px; font-size: 16px; line-height: 1.6; }\n  .dfm-sk, .dfm-sk * { box-sizing: border-box; }\n  .dfm-sk p { margin: 0 0 14px; }\n  .dfm-sk h2 { margin: 0 0 12px; font-family: Gunplay, sans-serif; font-weight: 400; font-size: clamp(24px, 3vw, 32px); line-height: 1.2; text-transform: uppercase; }\n  .dfm-sk__intro { border-top: 4px solid #ff6200; padding: 22px 24px; background: #f6f6f6; border-radius: 8px; }\n  .dfm-sk__intro \u003e p { max-width: 950px; }\n  .dfm-sk__benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 18px 0 0; }\n  .dfm-sk__benefit { padding: 0 0 0 12px; border-left: 3px solid #ff6200; }\n  .dfm-sk__benefit strong { display: block; margin-bottom: 3px; }\n  .dfm-sk__benefit span { display: block; color: #505050; font-size: 15px; line-height: 1.5; }\n  .dfm-sk__note { margin-top: 18px; padding: 16px 18px; border: 1px solid #ffd0b3; border-left: 4px solid #ff6200; background: #fff5ee; border-radius: 6px; }\n  .dfm-sk__note strong { display: block; margin-bottom: 4px; }\n  .dfm-sk__note p { margin: 0; }\n  .dfm-sk__resources { margin-top: 22px; }\n  .dfm-sk__resources p { color: #505050; }\n  .dfm-sk__buttons { display: flex; flex-wrap: wrap; gap: 10px; }\n  .dfm-sk a.dfm-orange-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; max-width: 100%; padding: 12px 18px; border: 1px solid #ff6200; border-radius: 5px; background: #ff6200; color: #fff !important; font-family: Gunplay, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.3; text-align: center; text-transform: uppercase; text-decoration: none !important; white-space: normal; }\n  .dfm-sk a.dfm-orange-button:hover { background: #d95000; border-color: #d95000; }\n  .dfm-sk a.dfm-orange-button:focus-visible { outline: 3px solid #171717; outline-offset: 3px; }\n  @media (max-width: 749px) {\n    .dfm-sk__intro { padding: 18px; }\n    .dfm-sk__benefits { grid-template-columns: 1fr; gap: 14px; }\n    .dfm-sk__buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }\n    .dfm-sk a.dfm-orange-button { width: 100%; padding: 12px; }\n  }\n  @media (max-width: 399px) { .dfm-sk__buttons { grid-template-columns: 1fr; } }\n\u003c\/style\u003e\n\u003c!-- The theme supplies the collection title: DryFireMag® Spring Kits. --\u003e\n\u003cdiv class=\"dfm-sk\"\u003e\n\u003csection class=\"dfm-sk__intro\"\u003e\n\u003ch2 id=\"dfm-sk-intro-title\"\u003eAdjust Your Training Trigger Feel\u003c\/h2\u003e\n\u003cp\u003eAdjust your DryFireMag®’s simulated trigger pull to better suit your training preferences. Model-specific spring kits let you change the resistance you feel during dry fire practice without modifying your firearm’s trigger.\u003c\/p\u003e\n\u003cdiv class=\"dfm-sk__benefits\"\u003e\n\u003cdiv class=\"dfm-sk__benefit\"\u003e\n\u003cstrong\u003eAdjust simulated pull weight\u003c\/strong\u003e\u003cspan\u003eChoose a spring to change your DryFireMag’s trigger resistance.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"dfm-sk__benefit\"\u003e\n\u003cstrong\u003eColor-coded springs\u003c\/strong\u003e\u003cspan\u003eIdentify springs easily when selecting or changing your setup.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"dfm-sk__benefit\"\u003e\n\u003cstrong\u003eReference card included\u003c\/strong\u003e\u003cspan\u003eKeep the wallet-size spring guide handy for future adjustments.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003caside class=\"dfm-sk__note\"\u003e\u003cstrong\u003eChoose the Kit for Your DryFireMag Model\u003c\/strong\u003e\n\u003cp\u003eSpring kits are model-specific. Check the individual product’s compatibility before ordering. These springs adjust the DryFireMag’s simulated trigger pull; they do not replace or alter springs in your firearm.\u003c\/p\u003e\n\u003c\/aside\u003e\n\u003c!-- OPTIONAL LOWER PLACEMENT: This section can be moved below the product grid\n       through the collection template. Keep the CSS above available on the page. --\u003e\n\u003csection class=\"dfm-sk__resources\"\u003e\n\u003ch2 id=\"dfm-sk-resources-title\"\u003eSpring Kit Video Guides\u003c\/h2\u003e\n\u003cp\u003eWatch the overview or demonstration, then use the installation guide for your DryFireMag model.\u003c\/p\u003e\n\u003cdiv class=\"dfm-sk__buttons\"\u003e\n\u003ca class=\"dfm-orange-button\" href=\"https:\/\/rumble.com\/v74npc6-spring-kit-flash-video.html\" rel=\"noopener\" target=\"_blank\"\u003eWatch Overview\u003c\/a\u003e \u003ca class=\"dfm-orange-button\" href=\"https:\/\/rumble.com\/v74ob64-spring-kits-explanation-and-demonstration.html\" rel=\"noopener\" target=\"_blank\"\u003eWatch Demonstration\u003c\/a\u003e \u003ca class=\"dfm-orange-button\" href=\"https:\/\/rumble.com\/v7btges-spring-kit-for-double-stack-glocks-compatible-dryfiremag.html\" rel=\"noopener\" target=\"_blank\"\u003eGlock Spring Kit Guide\u003c\/a\u003e \u003ca class=\"dfm-orange-button\" href=\"https:\/\/rumble.com\/v7bu6qo-spring-kit-for-sig-p320-compatible-dryfiremag.html\" rel=\"noopener\" target=\"_blank\"\u003eSIG P320 Spring Kit Guide\u003c\/a\u003e \u003ca class=\"dfm-orange-button\" href=\"https:\/\/rumble.com\/v7bttus-spring-kit-for-s-and-w-m-and-p-compatible-dryfiremag.html\" rel=\"noopener\" target=\"_blank\"\u003eS\u0026amp;W M\u0026amp;P Spring Kit Guide\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","products":[{"product_id":"dryfiremag-spring-kit-for-sig-sauer","title":"Spring Kit for Sig Sauer P320","description":"\u003cstyle\u003e\n  .dfm-p320-spring-kit {\n    --dfm-p320sk-ink: #171717;\n    --dfm-p320sk-muted: #5f6368;\n    --dfm-p320sk-surface: #f6f6f4;\n    --dfm-p320sk-border: #deded9;\n    --dfm-p320sk-accent: #c89b2c;\n    max-width: 1080px;\n    margin: 28px auto;\n    color: var(--dfm-p320sk-ink);\n  }\n\n  .dfm-p320-spring-kit,\n  .dfm-p320-spring-kit * {\n    box-sizing: border-box;\n  }\n\n  .dfm-p320-spring-kit h2,\n  .dfm-p320-spring-kit h3,\n  .dfm-p320-spring-kit p,\n  .dfm-p320-spring-kit ul {\n    margin-top: 0;\n  }\n\n  .dfm-p320-spring-kit__intro {\n    padding: clamp(22px, 4vw, 42px);\n    background: var(--dfm-p320sk-surface);\n    border: 1px solid var(--dfm-p320sk-border);\n    border-radius: 16px;\n  }\n\n  .dfm-p320-spring-kit__eyebrow {\n    margin-bottom: 8px;\n    color: var(--dfm-p320sk-muted);\n    font-size: 0.76rem;\n    font-weight: 700;\n    letter-spacing: 0.11em;\n    text-transform: uppercase;\n  }\n\n  .dfm-p320-spring-kit h2 {\n    margin-bottom: 14px;\n    font-size: clamp(1.65rem, 3.5vw, 2.35rem);\n    line-height: 1.12;\n  }\n\n  .dfm-p320-spring-kit__lead {\n    max-width: 800px;\n    margin-bottom: 0;\n    font-size: 1.05rem;\n    line-height: 1.65;\n  }\n\n  .dfm-p320-spring-kit__details {\n    display: grid;\n    grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);\n    gap: 22px;\n    margin-top: 22px;\n  }\n\n  .dfm-p320-spring-kit__panel {\n    padding: 22px;\n    background: #fff;\n    border: 1px solid var(--dfm-p320sk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-p320-spring-kit__panel h3 {\n    margin-bottom: 12px;\n    font-size: 1.15rem;\n  }\n\n  .dfm-p320-spring-kit__panel p {\n    margin-bottom: 0;\n    color: var(--dfm-p320sk-muted);\n    line-height: 1.6;\n  }\n\n  .dfm-p320-spring-kit__list {\n    margin-bottom: 0;\n    padding-left: 1.15rem;\n  }\n\n  .dfm-p320-spring-kit__list li {\n    margin-bottom: 8px;\n    line-height: 1.5;\n  }\n\n  .dfm-p320-spring-kit__list li:last-child {\n    margin-bottom: 0;\n  }\n\n  .dfm-p320-spring-kit__sku {\n    display: inline-flex;\n    margin-top: 16px;\n    padding: 7px 11px;\n    font-size: 0.82rem;\n    font-weight: 700;\n    background: var(--dfm-p320sk-surface);\n    border-radius: 999px;\n  }\n\n  .dfm-p320-spring-kit__gallery {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 14px;\n    margin-top: 28px;\n  }\n\n  .dfm-p320-spring-kit__figure {\n    margin: 0;\n    overflow: hidden;\n    background: var(--dfm-p320sk-surface);\n    border: 1px solid var(--dfm-p320sk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-p320-spring-kit__figure img {\n    display: block;\n    width: 100%;\n    height: 240px;\n    object-fit: contain;\n    background: #fff;\n  }\n\n  .dfm-p320-spring-kit__figure figcaption {\n    padding: 11px 14px;\n    color: var(--dfm-p320sk-muted);\n    font-size: 0.82rem;\n    line-height: 1.4;\n  }\n\n  .dfm-p320-spring-kit__resources {\n    margin-top: 30px;\n    padding-top: 28px;\n    border-top: 1px solid var(--dfm-p320sk-border);\n  }\n\n  .dfm-p320-spring-kit__resources h3 {\n    margin-bottom: 8px;\n    font-size: 1.35rem;\n  }\n\n  .dfm-p320-spring-kit__resources \u003e p {\n    margin-bottom: 16px;\n    color: var(--dfm-p320sk-muted);\n    line-height: 1.55;\n  }\n\n  .dfm-p320-spring-kit__video-links {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .dfm-p320-spring-kit__video {\n    display: flex;\n    min-height: 128px;\n    padding: 18px;\n    color: inherit;\n    text-decoration: none;\n    background: #fff;\n    border: 1px solid var(--dfm-p320sk-border);\n    border-radius: 10px;\n    flex-direction: column;\n    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;\n  }\n\n  .dfm-p320-spring-kit__video:hover,\n  .dfm-p320-spring-kit__video:focus-visible {\n    color: inherit;\n    border-color: var(--dfm-p320sk-accent);\n    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);\n    transform: translateY(-2px);\n  }\n\n  .dfm-p320-spring-kit__video:focus-visible {\n    outline: 3px solid rgba(200, 155, 44, 0.35);\n    outline-offset: 2px;\n  }\n\n  .dfm-p320-spring-kit__video-label {\n    margin-bottom: 8px;\n    color: var(--dfm-p320sk-muted);\n    font-size: 0.72rem;\n    font-weight: 700;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n  }\n\n  .dfm-p320-spring-kit__video strong {\n    font-size: 0.98rem;\n    line-height: 1.4;\n  }\n\n  .dfm-p320-spring-kit__watch {\n    margin-top: auto;\n    padding-top: 12px;\n    font-size: 0.84rem;\n    font-weight: 700;\n  }\n\n  .dfm-p320-spring-kit__watch::after {\n    content: \" \\2197\";\n  }\n\n  @media screen and (max-width: 749px) {\n    .dfm-p320-spring-kit__details,\n    .dfm-p320-spring-kit__video-links {\n      grid-template-columns: 1fr;\n    }\n\n    .dfm-p320-spring-kit__gallery {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 499px) {\n    .dfm-p320-spring-kit__gallery {\n      grid-template-columns: 1fr;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"dfm-p320-spring-kit\" aria-labelledby=\"dfm-p320-spring-kit-title\"\u003e\n  \u003cdiv class=\"dfm-p320-spring-kit__intro\"\u003e\n    \u003cp class=\"dfm-p320-spring-kit__eyebrow\"\u003eTune your trigger-reset feel\u003c\/p\u003e\n    \u003ch2 id=\"dfm-p320-spring-kit-title\"\u003eSpring Kit for SIG Sauer P320-Compatible DryFireMags\u003c\/h2\u003e\n    \u003cp class=\"dfm-p320-spring-kit__lead\"\u003eFine-tune your SIG Sauer P320-compatible DryFireMag to better match the trigger weight you train with. The included color-coded springs support settings from approximately 6¾ pounds to 9 pounds, giving you options for academy requirements, duty-gun specifications, and personal preference.\u003c\/p\u003e\n\n    \u003cdiv class=\"dfm-p320-spring-kit__details\"\u003e\n      \u003cdiv class=\"dfm-p320-spring-kit__panel\"\u003e\n        \u003ch3\u003eWhy use a Spring Kit?\u003c\/h3\u003e\n        \u003cp\u003eYour DryFireMag arrives set to simulate a factory-style trigger weight. If your firearm has a different trigger setup, changing the spring helps your dry fire repetitions feel more consistent with the gun you carry or compete with.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"dfm-p320-spring-kit__panel\"\u003e\n        \u003ch3\u003eIncluded in the kit\u003c\/h3\u003e\n        \u003cul class=\"dfm-p320-spring-kit__list\"\u003e\n          \u003cli\u003eMultiple color-coded tuning springs\u003c\/li\u003e\n          \u003cli\u003eWallet-size plastic reference card\u003c\/li\u003e\n          \u003cli\u003eQuick visual guide for spring selection\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cspan class=\"dfm-p320-spring-kit__sku\"\u003eSKU: SK-P9\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Replace only the src and alt values below when the new product photos are ready. --\u003e\n  \u003cdiv class=\"dfm-p320-spring-kit__gallery\" aria-label=\"SIG Sauer P320 DryFireMag Spring Kit product photos\"\u003e\n    \u003cfigure class=\"dfm-p320-spring-kit__figure\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SIG-SAUER-P9-Spring-Kit-1280x917.webp?v=1788463813\" alt=\"SIG Sauer P320-compatible DryFireMag Spring Kit and color-coded springs\" width=\"300\" height=\"207\" loading=\"lazy\"\u003e\n      \u003cfigcaption\u003eSIG Sauer P320-compatible DryFireMag Spring Kit\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n\n    \u003cfigure class=\"dfm-p320-spring-kit__figure\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SIG_SAUER_P9_Spring_KIT_BACK_09.03.26.webp?v=1788463533\" alt=\"Back of the SIG Sauer P320 Spring Kit color-code reference card\" width=\"300\" height=\"212\" loading=\"lazy\"\u003e\n      \u003cfigcaption\u003eWallet-size color-code reference card\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"dfm-p320-spring-kit__resources\"\u003e\n    \u003ch3\u003eSpring Kit Video Guides\u003c\/h3\u003e\n    \u003cp\u003eSee how the Spring Kits work, then follow the SIG P320-specific instructions for your DryFireMag.\u003c\/p\u003e\n\n    \u003cdiv class=\"dfm-p320-spring-kit__video-links\"\u003e\n      \u003ca class=\"dfm-p320-spring-kit__video\" href=\"https:\/\/rumble.com\/v74ob64-spring-kits-explanation-and-demonstration.html\" target=\"_blank\" rel=\"noopener\"\u003e\n        \u003cspan class=\"dfm-p320-spring-kit__video-label\"\u003eOverview and demonstration\u003c\/span\u003e\n        \u003cstrong\u003eSpring Kits: Explanation and Demonstration\u003c\/strong\u003e\n        \u003cspan class=\"dfm-p320-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e\n      \u003c\/a\u003e\n\n      \u003ca class=\"dfm-p320-spring-kit__video\" href=\"https:\/\/rumble.com\/v7bu6qo-spring-kit-for-sig-p320-compatible-dryfiremag.html\" target=\"_blank\" rel=\"noopener\"\u003e\n        \u003cspan class=\"dfm-p320-spring-kit__video-label\"\u003eSIG P320-specific instructions\u003c\/span\u003e\n        \u003cstrong\u003eSpring Kit for SIG Sauer P320-Compatible DryFireMags\u003c\/strong\u003e\n        \u003cspan class=\"dfm-p320-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e\n      \u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e","brand":"DryFireMag","offers":[{"title":"Default Title","offer_id":46736764797187,"sku":"SK-P9","price":10.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SIG-SAUER-P9-Spring-Kit-1280x917.webp?v=1788463813"},{"product_id":"spring-kit-for-glock","title":"Spring Kit for Glock","description":"\u003cstyle\u003e\n  .dfm-glk-spring-kit {\n    --dfm-gsk-ink: #171717;\n    --dfm-gsk-muted: #5f6368;\n    --dfm-gsk-surface: #f6f6f4;\n    --dfm-gsk-border: #deded9;\n    --dfm-gsk-accent: #c89b2c;\n    max-width: 1080px;\n    margin: 28px auto;\n    color: var(--dfm-gsk-ink);\n  }\n\n  .dfm-glk-spring-kit,\n  .dfm-glk-spring-kit * {\n    box-sizing: border-box;\n  }\n\n  .dfm-glk-spring-kit h2,\n  .dfm-glk-spring-kit h3,\n  .dfm-glk-spring-kit p,\n  .dfm-glk-spring-kit ul {\n    margin-top: 0;\n  }\n\n  .dfm-glk-spring-kit__intro {\n    padding: clamp(22px, 4vw, 42px);\n    background: var(--dfm-gsk-surface);\n    border: 1px solid var(--dfm-gsk-border);\n    border-radius: 16px;\n  }\n\n  .dfm-glk-spring-kit__eyebrow {\n    margin-bottom: 8px;\n    color: var(--dfm-gsk-muted);\n    font-size: 0.76rem;\n    font-weight: 700;\n    letter-spacing: 0.11em;\n    text-transform: uppercase;\n  }\n\n  .dfm-glk-spring-kit h2 {\n    margin-bottom: 14px;\n    font-size: clamp(1.65rem, 3.5vw, 2.35rem);\n    line-height: 1.12;\n  }\n\n  .dfm-glk-spring-kit__lead {\n    max-width: 800px;\n    margin-bottom: 0;\n    font-size: 1.05rem;\n    line-height: 1.65;\n  }\n\n  .dfm-glk-spring-kit__details {\n    display: grid;\n    grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);\n    gap: 22px;\n    margin-top: 22px;\n  }\n\n  .dfm-glk-spring-kit__panel {\n    padding: 22px;\n    background: #fff;\n    border: 1px solid var(--dfm-gsk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-glk-spring-kit__panel h3 {\n    margin-bottom: 12px;\n    font-size: 1.15rem;\n  }\n\n  .dfm-glk-spring-kit__panel p {\n    margin-bottom: 0;\n    color: var(--dfm-gsk-muted);\n    line-height: 1.6;\n  }\n\n  .dfm-glk-spring-kit__list {\n    margin-bottom: 0;\n    padding-left: 1.15rem;\n  }\n\n  .dfm-glk-spring-kit__list li {\n    margin-bottom: 8px;\n    line-height: 1.5;\n  }\n\n  .dfm-glk-spring-kit__list li:last-child {\n    margin-bottom: 0;\n  }\n\n  .dfm-glk-spring-kit__sku {\n    display: inline-flex;\n    margin-top: 16px;\n    padding: 7px 11px;\n    font-size: 0.82rem;\n    font-weight: 700;\n    background: var(--dfm-gsk-surface);\n    border-radius: 999px;\n  }\n\n  .dfm-glk-spring-kit__gallery {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 14px;\n    margin-top: 28px;\n  }\n\n  .dfm-glk-spring-kit__figure {\n    margin: 0;\n    overflow: hidden;\n    background: var(--dfm-gsk-surface);\n    border: 1px solid var(--dfm-gsk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-glk-spring-kit__figure img {\n    display: block;\n    width: 100%;\n    height: 240px;\n    object-fit: contain;\n    background: #fff;\n  }\n\n  .dfm-glk-spring-kit__figure figcaption {\n    padding: 11px 14px;\n    color: var(--dfm-gsk-muted);\n    font-size: 0.82rem;\n    line-height: 1.4;\n  }\n\n  .dfm-glk-spring-kit__resources {\n    margin-top: 30px;\n    padding-top: 28px;\n    border-top: 1px solid var(--dfm-gsk-border);\n  }\n\n  .dfm-glk-spring-kit__resources h3 {\n    margin-bottom: 8px;\n    font-size: 1.35rem;\n  }\n\n  .dfm-glk-spring-kit__resources \u003e p {\n    margin-bottom: 16px;\n    color: var(--dfm-gsk-muted);\n    line-height: 1.55;\n  }\n\n  .dfm-glk-spring-kit__video-links {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .dfm-glk-spring-kit__video {\n    display: flex;\n    min-height: 128px;\n    padding: 18px;\n    color: inherit;\n    text-decoration: none;\n    background: #fff;\n    border: 1px solid var(--dfm-gsk-border);\n    border-radius: 10px;\n    flex-direction: column;\n    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;\n  }\n\n  .dfm-glk-spring-kit__video:hover,\n  .dfm-glk-spring-kit__video:focus-visible {\n    color: inherit;\n    border-color: var(--dfm-gsk-accent);\n    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);\n    transform: translateY(-2px);\n  }\n\n  .dfm-glk-spring-kit__video:focus-visible {\n    outline: 3px solid rgba(200, 155, 44, 0.35);\n    outline-offset: 2px;\n  }\n\n  .dfm-glk-spring-kit__video-label {\n    margin-bottom: 8px;\n    color: var(--dfm-gsk-muted);\n    font-size: 0.72rem;\n    font-weight: 700;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n  }\n\n  .dfm-glk-spring-kit__video strong {\n    font-size: 0.98rem;\n    line-height: 1.4;\n  }\n\n  .dfm-glk-spring-kit__watch {\n    margin-top: auto;\n    padding-top: 12px;\n    font-size: 0.84rem;\n    font-weight: 700;\n  }\n\n  .dfm-glk-spring-kit__watch::after {\n    content: \" \\2197\";\n  }\n\n  @media screen and (max-width: 749px) {\n    .dfm-glk-spring-kit__details,\n    .dfm-glk-spring-kit__video-links {\n      grid-template-columns: 1fr;\n    }\n\n    .dfm-glk-spring-kit__gallery {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 499px) {\n    .dfm-glk-spring-kit__gallery {\n      grid-template-columns: 1fr;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"dfm-glk-spring-kit\" aria-labelledby=\"dfm-glk-spring-kit-title\"\u003e\n  \u003cdiv class=\"dfm-glk-spring-kit__intro\"\u003e\n    \u003cp class=\"dfm-glk-spring-kit__eyebrow\"\u003eTune your trigger-reset feel\u003c\/p\u003e\n    \u003ch2 id=\"dfm-glk-spring-kit-title\"\u003eSpring Kit for Glock-Compatible DryFireMags\u003c\/h2\u003e\n    \u003cp class=\"dfm-glk-spring-kit__lead\"\u003eFine-tune your DryFireMag to better match the trigger weight you train with. The included color-coded springs support settings from approximately 3 pounds to more than 10 pounds, giving you options for aftermarket triggers, academy requirements, duty-gun specifications, and personal preference.\u003c\/p\u003e\n\n    \u003cdiv class=\"dfm-glk-spring-kit__details\"\u003e\n      \u003cdiv class=\"dfm-glk-spring-kit__panel\"\u003e\n        \u003ch3\u003eWhy use a Spring Kit?\u003c\/h3\u003e\n        \u003cp\u003eYour DryFireMag arrives set to simulate a factory-style trigger weight. If your firearm has a different trigger setup, changing the spring helps your dry fire repetitions feel more consistent with the gun you carry or compete with.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"dfm-glk-spring-kit__panel\"\u003e\n        \u003ch3\u003eIncluded in the kit\u003c\/h3\u003e\n        \u003cul class=\"dfm-glk-spring-kit__list\"\u003e\n          \u003cli\u003eMultiple color-coded tuning springs\u003c\/li\u003e\n          \u003cli\u003eWallet-size plastic reference card\u003c\/li\u003e\n          \u003cli\u003eQuick visual guide for spring selection\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cspan class=\"dfm-glk-spring-kit__sku\"\u003eSKU: SK-GLK\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Replace only the src and alt values below when the new product photos are ready. --\u003e\n  \u003cdiv class=\"dfm-glk-spring-kit__gallery\" aria-label=\"Glock DryFireMag Spring Kit product photos\"\u003e\n    \u003cfigure class=\"dfm-glk-spring-kit__figure\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SpringKit_Glock_Front_08.17.26.webp?v=1788463388\" alt=\"Glock-compatible DryFireMag Spring Kit and color-coded springs\" width=\"300\" height=\"225\" loading=\"lazy\"\u003e\n      \u003cfigcaption\u003eGlock-compatible DryFireMag Spring Kit\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n\n    \u003cfigure class=\"dfm-glk-spring-kit__figure\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SpringKit_Glock_Backside_08.17.26.webp?v=1788463388\" alt=\"Back of the Glock Spring Kit color-code reference card\" width=\"300\" height=\"212\" loading=\"lazy\"\u003e\n      \u003cfigcaption\u003eWallet-size color-code reference card\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n\n    \u003cfigure class=\"dfm-glk-spring-kit__figure\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/5-Springs-included_17623756-e6fb-45b7-8472-42c6cb64b9ba.jpg?v=1744238691\" alt=\"Color-coded tuning springs included with the Glock DryFireMag Spring Kit\" width=\"300\" height=\"164\" loading=\"lazy\"\u003e\n      \u003cfigcaption\u003eColor-coded springs for tuning trigger-reset feel\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"dfm-glk-spring-kit__resources\"\u003e\n    \u003ch3\u003eSpring Kit Video Guides\u003c\/h3\u003e\n    \u003cp\u003eSee how the Spring Kits work, then follow the Glock-specific instructions for your DryFireMag.\u003c\/p\u003e\n\n    \u003cdiv class=\"dfm-glk-spring-kit__video-links\"\u003e\n      \u003ca class=\"dfm-glk-spring-kit__video\" href=\"https:\/\/rumble.com\/v74ob64-spring-kits-explanation-and-demonstration.html\" target=\"_blank\" rel=\"noopener\"\u003e\n        \u003cspan class=\"dfm-glk-spring-kit__video-label\"\u003eOverview and demonstration\u003c\/span\u003e\n        \u003cstrong\u003eSpring Kits: Explanation and Demonstration\u003c\/strong\u003e\n        \u003cspan class=\"dfm-glk-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e\n      \u003c\/a\u003e\n\n      \u003ca class=\"dfm-glk-spring-kit__video\" href=\"https:\/\/rumble.com\/v7btges-spring-kit-for-double-stack-glocks-compatible-dryfiremag.html\" target=\"_blank\" rel=\"noopener\"\u003e\n        \u003cspan class=\"dfm-glk-spring-kit__video-label\"\u003eGlock-specific instructions\u003c\/span\u003e\n        \u003cstrong\u003eSpring Kit for Glock-Compatible DryFireMags\u003c\/strong\u003e\n        \u003cspan class=\"dfm-glk-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e\n      \u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e","brand":"DryFireMag","offers":[{"title":"Default Title","offer_id":46736767287555,"sku":"SK-GLK","price":10.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SpringKit_Glock_Front_08.17.26.webp?v=1788463388"},{"product_id":"spring-kit-for-smith-wesson-mp","title":"Spring Kit for Smith \u0026 Wesson M\u0026P","description":"\u003cstyle\u003e\n  .dfm-mp-spring-kit {\n    --dfm-mpsk-ink: #171717;\n    --dfm-mpsk-muted: #5f6368;\n    --dfm-mpsk-surface: #f6f6f4;\n    --dfm-mpsk-border: #deded9;\n    --dfm-mpsk-accent: #c89b2c;\n    max-width: 1080px;\n    margin: 28px auto;\n    color: var(--dfm-mpsk-ink);\n  }\n\n  .dfm-mp-spring-kit,\n  .dfm-mp-spring-kit * {\n    box-sizing: border-box;\n  }\n\n  .dfm-mp-spring-kit h2,\n  .dfm-mp-spring-kit h3,\n  .dfm-mp-spring-kit p,\n  .dfm-mp-spring-kit ul {\n    margin-top: 0;\n  }\n\n  .dfm-mp-spring-kit__intro {\n    padding: clamp(22px, 4vw, 42px);\n    background: var(--dfm-mpsk-surface);\n    border: 1px solid var(--dfm-mpsk-border);\n    border-radius: 16px;\n  }\n\n  .dfm-mp-spring-kit__eyebrow {\n    margin-bottom: 8px;\n    color: var(--dfm-mpsk-muted);\n    font-size: 0.76rem;\n    font-weight: 700;\n    letter-spacing: 0.11em;\n    text-transform: uppercase;\n  }\n\n  .dfm-mp-spring-kit h2 {\n    margin-bottom: 14px;\n    font-size: clamp(1.65rem, 3.5vw, 2.35rem);\n    line-height: 1.12;\n  }\n\n  .dfm-mp-spring-kit__lead {\n    max-width: 800px;\n    margin-bottom: 0;\n    font-size: 1.05rem;\n    line-height: 1.65;\n  }\n\n  .dfm-mp-spring-kit__details {\n    display: grid;\n    grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);\n    gap: 22px;\n    margin-top: 22px;\n  }\n\n  .dfm-mp-spring-kit__panel {\n    padding: 22px;\n    background: #fff;\n    border: 1px solid var(--dfm-mpsk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-mp-spring-kit__panel h3 {\n    margin-bottom: 12px;\n    font-size: 1.15rem;\n  }\n\n  .dfm-mp-spring-kit__panel p {\n    margin-bottom: 0;\n    color: var(--dfm-mpsk-muted);\n    line-height: 1.6;\n  }\n\n  .dfm-mp-spring-kit__list {\n    margin-bottom: 0;\n    padding-left: 1.15rem;\n  }\n\n  .dfm-mp-spring-kit__list li {\n    margin-bottom: 8px;\n    line-height: 1.5;\n  }\n\n  .dfm-mp-spring-kit__list li:last-child {\n    margin-bottom: 0;\n  }\n\n  .dfm-mp-spring-kit__sku {\n    display: inline-flex;\n    margin-top: 16px;\n    padding: 7px 11px;\n    font-size: 0.82rem;\n    font-weight: 700;\n    background: var(--dfm-mpsk-surface);\n    border-radius: 999px;\n  }\n\n  .dfm-mp-spring-kit__gallery {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 14px;\n    margin-top: 28px;\n  }\n\n  .dfm-mp-spring-kit__figure {\n    margin: 0;\n    overflow: hidden;\n    background: var(--dfm-mpsk-surface);\n    border: 1px solid var(--dfm-mpsk-border);\n    border-radius: 12px;\n  }\n\n  .dfm-mp-spring-kit__figure img {\n    display: block;\n    width: 100%;\n    height: 240px;\n    object-fit: contain;\n    background: #fff;\n  }\n\n  .dfm-mp-spring-kit__figure figcaption {\n    padding: 11px 14px;\n    color: var(--dfm-mpsk-muted);\n    font-size: 0.82rem;\n    line-height: 1.4;\n  }\n\n\n  .dfm-mp-spring-kit__note {\n    margin: 12px 0 0;\n    padding: 13px 15px;\n    color: var(--dfm-mpsk-muted);\n    font-size: 0.86rem;\n    line-height: 1.5;\n    background: var(--dfm-mpsk-surface);\n    border-radius: 8px;\n  }\n\n  .dfm-mp-spring-kit__resources {\n    margin-top: 30px;\n    padding-top: 28px;\n    border-top: 1px solid var(--dfm-mpsk-border);\n  }\n\n  .dfm-mp-spring-kit__resources h3 {\n    margin-bottom: 8px;\n    font-size: 1.35rem;\n  }\n\n  .dfm-mp-spring-kit__resources \u003e p {\n    margin-bottom: 16px;\n    color: var(--dfm-mpsk-muted);\n    line-height: 1.55;\n  }\n\n  .dfm-mp-spring-kit__video-links {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .dfm-mp-spring-kit__video {\n    display: flex;\n    min-height: 128px;\n    padding: 18px;\n    color: inherit;\n    text-decoration: none;\n    background: #fff;\n    border: 1px solid var(--dfm-mpsk-border);\n    border-radius: 10px;\n    flex-direction: column;\n    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;\n  }\n\n  .dfm-mp-spring-kit__video:hover,\n  .dfm-mp-spring-kit__video:focus-visible {\n    color: inherit;\n    border-color: var(--dfm-mpsk-accent);\n    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);\n    transform: translateY(-2px);\n  }\n\n  .dfm-mp-spring-kit__video:focus-visible {\n    outline: 3px solid rgba(200, 155, 44, 0.35);\n    outline-offset: 2px;\n  }\n\n  .dfm-mp-spring-kit__video-label {\n    margin-bottom: 8px;\n    color: var(--dfm-mpsk-muted);\n    font-size: 0.72rem;\n    font-weight: 700;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n  }\n\n  .dfm-mp-spring-kit__video strong {\n    font-size: 0.98rem;\n    line-height: 1.4;\n  }\n\n  .dfm-mp-spring-kit__watch {\n    margin-top: auto;\n    padding-top: 12px;\n    font-size: 0.84rem;\n    font-weight: 700;\n  }\n\n  .dfm-mp-spring-kit__watch::after {\n    content: \" \\2197\";\n  }\n\n  @media screen and (max-width: 749px) {\n    .dfm-mp-spring-kit__details,\n    .dfm-mp-spring-kit__video-links {\n      grid-template-columns: 1fr;\n    }\n\n    .dfm-mp-spring-kit__gallery {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 499px) {\n    .dfm-mp-spring-kit__gallery {\n      grid-template-columns: 1fr;\n    }\n  }\n\u003c\/style\u003e\n\u003csection class=\"dfm-mp-spring-kit\"\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__intro\"\u003e\n\u003cp class=\"dfm-mp-spring-kit__eyebrow\"\u003eTune your trigger-reset feel\u003c\/p\u003e\n\u003ch2 id=\"dfm-mp-spring-kit-title\"\u003eSpring Kit for S\u0026amp;W M\u0026amp;P-Compatible DryFireMags\u003c\/h2\u003e\n\u003cp class=\"dfm-mp-spring-kit__lead\"\u003eFine-tune your S\u0026amp;W M\u0026amp;P-compatible DryFireMag to better match the trigger weight you train with. The included springs support settings from approximately 5 1\/2 pounds to 8 pounds, giving you options for academy requirements, duty-gun specifications, and personal preference.\u003c\/p\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__details\"\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__panel\"\u003e\n\u003ch3\u003eWhy use a Spring Kit?\u003c\/h3\u003e\n\u003cp\u003eYour DryFireMag arrives set to simulate a factory-style trigger weight. If your firearm has a different trigger setup, changing the spring helps your dry fire repetitions feel more consistent with the gun you carry or compete with.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__panel\"\u003e\n\u003ch3\u003eIncluded in the kit\u003c\/h3\u003e\n\u003cul class=\"dfm-mp-spring-kit__list\"\u003e\n\u003cli\u003eMultiple color-coded tuning springs\u003c\/li\u003e\n\u003cli\u003eWallet-size plastic reference card\u003c\/li\u003e\n\u003cli\u003eQuick visual guide for spring selection\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cspan class=\"dfm-mp-spring-kit__sku\"\u003eSKU: SK-M\u0026amp;P\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Replace only the src and alt values below when the new product photos are ready. --\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__gallery\"\u003e\n\u003cfigure class=\"dfm-mp-spring-kit__figure\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/Spring_Kit_S_W_Front_09.03.26.webp?v=1788458648\" width=\"300\" height=\"206\" loading=\"lazy\"\u003e\n\u003cfigcaption\u003eS\u0026amp;W M\u0026amp;P-compatible DryFireMag Spring Kit\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"dfm-mp-spring-kit__figure\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/Spring_Kit_S_W_BACK_09.03.26.webp?v=1788458648\" alt=\"Back of the S\u0026amp;W M\u0026amp;P Spring Kit color-code reference card\" width=\"300\" height=\"212\" loading=\"lazy\"\u003e\n\u003cfigcaption\u003eWallet-size color-code reference card\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure class=\"dfm-mp-spring-kit__figure\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/SW-5-Springs-included-300x225.jpg?v=1744238741\" alt=\"Tuning springs included with the S\u0026amp;W M\u0026amp;P DryFireMag Spring Kit\" width=\"300\" height=\"225\" loading=\"lazy\"\u003e\n\u003cfigcaption\u003eIncluded springs for tuning trigger-reset feel\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003cp class=\"dfm-mp-spring-kit__note\"\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e The spring photo is for illustrative purposes. Actual springs are color-coded on the ends to make selection easier.\u003c\/p\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__resources\"\u003e\n\u003ch3\u003eSpring Kit Video Guides\u003c\/h3\u003e\n\u003cp\u003eSee how the Spring Kits work, then follow the S\u0026amp;W M\u0026amp;P-specific instructions for your DryFireMag.\u003c\/p\u003e\n\u003cdiv class=\"dfm-mp-spring-kit__video-links\"\u003e\n\u003ca class=\"dfm-mp-spring-kit__video\" href=\"https:\/\/rumble.com\/v74ob64-spring-kits-explanation-and-demonstration.html\" rel=\"noopener\" target=\"_blank\"\u003e \u003cspan class=\"dfm-mp-spring-kit__video-label\"\u003eOverview and demonstration\u003c\/span\u003e \u003cstrong\u003eSpring Kits: Explanation and Demonstration\u003c\/strong\u003e \u003cspan class=\"dfm-mp-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e \u003c\/a\u003e \u003ca class=\"dfm-mp-spring-kit__video\" href=\"https:\/\/rumble.com\/v7bttus-spring-kit-for-s-and-w-m-and-p-compatible-dryfiremag.html\" rel=\"noopener\" target=\"_blank\"\u003e \u003cspan class=\"dfm-mp-spring-kit__video-label\"\u003eS\u0026amp;W M\u0026amp;P-specific instructions\u003c\/span\u003e \u003cstrong\u003eSpring Kit for S\u0026amp;W M\u0026amp;P-Compatible DryFireMags\u003c\/strong\u003e \u003cspan class=\"dfm-mp-spring-kit__watch\"\u003eWatch video\u003c\/span\u003e \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e","brand":"DryFireMag","offers":[{"title":"Default Title","offer_id":46736770629891,"sku":"SK-M\u0026P","price":10.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/files\/Spring_Kit_S_W_Front_09.03.26.webp?v=1788458648"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/0951\/6035\/collections\/SpringKit_Glock_Front_08.17.26.webp?v=1790264089","url":"https:\/\/dryfiremag.com\/collections\/spring-kits.oembed","provider":"DryFireMag","version":"1.0","type":"link"}