{"product_id":"ph-stripe-modern-stripe-payments-for-prestashop","title":"PH Stripe – Modern Stripe Payments for PrestaShop","description":"\u003cdiv id=\"ph-stripe-v12\"\u003e\n\n  \u003c!-- HERO --\u003e\n  \u003csection class=\"ph12-hero\"\u003e\n    \u003cdiv class=\"ph12-kicker\"\u003ePRESTASHOP STRIPE PAYMENT MODULE\u003c\/div\u003e\n\n    \u003ch2\u003eModern Stripe Payments Built to Reduce Checkout Abandonment\u003c\/h2\u003e\n\n    \u003cp class=\"ph12-lead\"\u003e\n      PH Stripe was created for one reason: too many customers were reaching payment and not completing the order.\n    \u003c\/p\u003e\n\n    \u003cp\u003e\n      The module was first proven on PrestaHeroes customer shops, where replacing the older payment experience\n      with a cleaner modern Stripe workflow significantly reduced checkout abandonment.\n    \u003c\/p\u003e\n\n    \u003cp\u003e\n      PH Stripe gives visitors faster ways to pay, more relevant payment choices and a cleaner payment step,\n      while giving merchants the tools needed to test, manage and support Stripe confidently in production.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"ph12-tags\"\u003e\n      \u003cspan\u003ePrestaShop 1.7.8+\u003c\/span\u003e\n      \u003cspan\u003ePrestaShop 8.x\u003c\/span\u003e\n      \u003cspan\u003ePrestaShop 9.x\u003c\/span\u003e\n      \u003cspan\u003eDirect Stripe API\u003c\/span\u003e\n      \u003cspan\u003eExpress Checkout\u003c\/span\u003e\n      \u003cspan\u003ePayment Element\u003c\/span\u003e\n      \u003cspan\u003eInternational Ready\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- CUSTOMER PAYMENT EXPERIENCE --\u003e\n  \u003csection class=\"ph12-payment\"\u003e\n    \u003cdiv class=\"ph12-section-head ph12-section-head-light\"\u003e\n      \u003cdiv class=\"ph12-kicker ph12-kicker-light\"\u003eTHE CUSTOMER PAYMENT EXPERIENCE\u003c\/div\u003e\n      \u003ch3\u003eExpress Payments First. More Ways to Pay When They Make Sense.\u003c\/h3\u003e\n      \u003cp\u003e\n        PH Stripe combines Stripe Express Checkout with Stripe Payment Element so customers can use\n        the fastest and most relevant payment path available for their order.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ph12-payment-grid\"\u003e\n\n      \u003carticle class=\"ph12-payment-card\"\u003e\n        \u003cdiv class=\"ph12-card-label\"\u003eEXPRESS CHECKOUT\u003c\/div\u003e\n        \u003ch4\u003eFast payment with fewer steps\u003c\/h4\u003e\n\n        \u003cp\u003e\n          Eligible customers can see express payment methods before the standard payment form,\n          helping wallet-enabled and returning shoppers complete payment with less typing.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"ph12-methods ph12-methods-dark\"\u003e\n          \u003cspan\u003eApple Pay\u003c\/span\u003e\n          \u003cspan\u003eGoogle Pay\u003c\/span\u003e\n          \u003cspan\u003eLink\u003c\/span\u003e\n          \u003cspan\u003eAmazon Pay\u003c\/span\u003e\n          \u003cspan\u003eKlarna\u003c\/span\u003e\n          \u003cspan\u003eOther eligible express methods\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-payment-card\"\u003e\n        \u003cdiv class=\"ph12-card-label\"\u003ePAYMENT ELEMENT\u003c\/div\u003e\n        \u003ch4\u003eCard plus other eligible payment forms\u003c\/h4\u003e\n\n        \u003cp\u003e\n          Customers who do not use Express Checkout still get a modern Stripe payment experience\n          with card and other methods Stripe determines are appropriate for the transaction.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"ph12-methods ph12-methods-dark\"\u003e\n          \u003cspan\u003eCard\u003c\/span\u003e\n          \u003cspan\u003eRevolut Pay\u003c\/span\u003e\n          \u003cspan\u003eClearpay\u003c\/span\u003e\n          \u003cspan\u003eLocal methods\u003c\/span\u003e\n          \u003cspan\u003eAlternative methods\u003c\/span\u003e\n          \u003cspan\u003eOther Stripe-supported methods\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n    \u003cp class=\"ph12-note-light\"\u003e\n      Payment-method availability varies by connected Stripe account, merchant country, order country,\n      currency, transaction details, browser, device and Stripe eligibility.\n    \u003c\/p\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- FEATURES --\u003e\n  \u003csection class=\"ph12-section\"\u003e\n    \u003cheader class=\"ph12-section-head\"\u003e\n      \u003cdiv class=\"ph12-kicker\"\u003eFEATURES\u003c\/div\u003e\n      \u003ch3\u003eEverything Needed for a Modern Stripe Workflow\u003c\/h3\u003e\n      \u003cp\u003e\n        The visitor-facing experience stays simple while PH Stripe handles payment routing,\n        international logic, order outcomes and production tooling behind the scenes.\n      \u003c\/p\u003e\n    \u003c\/header\u003e\n\n    \u003cdiv class=\"ph12-grid ph12-grid-3\"\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003ePE\u003c\/span\u003e\n        \u003ch4\u003eStripe Payment Element\u003c\/h4\u003e\n        \u003cp\u003eModern Stripe-rendered card intake and eligible payment forms inside one coherent payment experience.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eEX\u003c\/span\u003e\n        \u003ch4\u003eExpress Checkout\u003c\/h4\u003e\n        \u003cp\u003eEligible wallets and express payment methods can appear before standard payment options.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature ph12-feature-blue\"\u003e\n        \u003cspan\u003eINTL\u003c\/span\u003e\n        \u003ch4\u003eInternational Payment Logic\u003c\/h4\u003e\n        \u003cp\u003ePayment context uses shop country, order country and order currency before Stripe applies runtime eligibility.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003ePM\u003c\/span\u003e\n        \u003ch4\u003eStripe-Managed Methods\u003c\/h4\u003e\n        \u003cp\u003eStripe decides which enabled methods are actually appropriate for the current transaction.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eWH\u003c\/span\u003e\n        \u003ch4\u003eAutomatic Webhooks\u003c\/h4\u003e\n        \u003cp\u003ePH Stripe can create or repair its webhook endpoint and maintain the Stripe signing secret.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eTEST\u003c\/span\u003e\n        \u003ch4\u003eStealth Mode\u003c\/h4\u003e\n        \u003cp\u003eLimit PH Stripe to approved IP addresses while testing on staging or a real production checkout.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eRF\u003c\/span\u003e\n        \u003ch4\u003eIntegrated Refunds\u003c\/h4\u003e\n        \u003cp\u003eIssue full or partial Stripe refunds directly from the PrestaShop order page.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eSTAT\u003c\/span\u003e\n        \u003ch4\u003ePayment Status Handling\u003c\/h4\u003e\n        \u003cp\u003eSuccessful, declined and asynchronous payment states remain distinct and traceable.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eLOG\u003c\/span\u003e\n        \u003ch4\u003eSanitized Diagnostics\u003c\/h4\u003e\n        \u003cp\u003eTrace checkout, Stripe, webhook, order and refund events without exposing sensitive card data.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eDUP\u003c\/span\u003e\n        \u003ch4\u003eDuplicate-Order Protection\u003c\/h4\u003e\n        \u003cp\u003eProduction safeguards prevent browser finalization and webhooks from creating the same order twice.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003ePREF\u003c\/span\u003e\n        \u003ch4\u003ePrestaShop Payment Preferences\u003c\/h4\u003e\n        \u003cp\u003eNative PrestaShop payment restrictions remain part of the module visibility layer.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-feature\"\u003e\n        \u003cspan\u003eAPI\u003c\/span\u003e\n        \u003ch4\u003eDirect Stripe API\u003c\/h4\u003e\n        \u003cp\u003eNo ps_accounts dependency, no ps_eventbus dependency and no PrestaShop cloud-sync layer.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- INTERNATIONAL --\u003e\n  \u003csection class=\"ph12-international\"\u003e\n    \u003cdiv class=\"ph12-section-head ph12-section-head-light\"\u003e\n      \u003cdiv class=\"ph12-kicker ph12-kicker-light\"\u003eFOR INTERNATIONAL SHOPS\u003c\/div\u003e\n      \u003ch3\u003ePayment Methods Follow the Order That Is Actually Being Placed\u003c\/h3\u003e\n      \u003cp\u003e\n        An international shop may sell from one country to customers in many others and accept more than one currency.\n        PH Stripe builds the payment context from the merchant and the order instead of showing every visitor\n        the same static payment-method list.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ph12-flow\"\u003e\n      \u003cdiv\u003e\n        \u003csmall\u003eSHOP COUNTRY\u003c\/small\u003e\n        \u003cstrong\u003eMerchant market\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cb\u003e+\u003c\/b\u003e\n\n      \u003cdiv\u003e\n        \u003csmall\u003eORDER COUNTRY\u003c\/small\u003e\n        \u003cstrong\u003eCustomer destination\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cb\u003e+\u003c\/b\u003e\n\n      \u003cdiv\u003e\n        \u003csmall\u003eORDER CURRENCY\u003c\/small\u003e\n        \u003cstrong\u003eCurrency being charged\u003c\/strong\u003e\n      \u003c\/div\u003e\n\n      \u003cb\u003e=\u003c\/b\u003e\n\n      \u003cdiv class=\"ph12-flow-result\"\u003e\n        \u003csmall\u003ePAYMENT CONTEXT\u003c\/small\u003e\n        \u003cstrong\u003eRelevant Stripe methods\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ph12-international-cards\"\u003e\n      \u003carticle\u003e\n        \u003ch4\u003eThe shop remains the merchant\u003c\/h4\u003e\n        \u003cp\u003eA visitor changing country does not rewrite the store default country or currency.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle\u003e\n        \u003ch4\u003eThe order provides real context\u003c\/h4\u003e\n        \u003cp\u003eCustomer country and transaction currency are part of the payment request sent to Stripe.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle\u003e\n        \u003ch4\u003eStripe makes the final eligibility decision\u003c\/h4\u003e\n        \u003cp\u003eAccount capability, amount, browser, device, wallet readiness and method-specific rules still apply.\u003c\/p\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- MERCHANT BENEFITS --\u003e\n  \u003csection class=\"ph12-section\"\u003e\n    \u003cheader class=\"ph12-section-head\"\u003e\n      \u003cdiv class=\"ph12-kicker\"\u003eBENEFITS FOR MERCHANTS\u003c\/div\u003e\n      \u003ch3\u003eMore Completed Orders With Less Payment Administration\u003c\/h3\u003e\n      \u003cp\u003e\n        PH Stripe was built to improve conversion at payment while giving merchants better control\n        when checkout needs testing, support or a refund.\n      \u003c\/p\u003e\n    \u003c\/header\u003e\n\n    \u003cdiv class=\"ph12-grid ph12-grid-3\"\u003e\n\n      \u003carticle class=\"ph12-benefit ph12-benefit-dark\"\u003e\n        \u003ch4\u003eReduce Checkout Abandonment\u003c\/h4\u003e\n        \u003cp\u003e\n          The core business goal. PH Stripe was first proven on PrestaHeroes customer shops,\n          where the modern payment experience significantly reduced abandonment.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit\"\u003e\n        \u003ch4\u003eOffer Faster Payment Paths\u003c\/h4\u003e\n        \u003cp\u003e\n          Express Checkout gives eligible customers a faster route to payment without forcing\n          every visitor through the same payment form.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit ph12-benefit-dark\"\u003e\n        \u003ch4\u003eSell Internationally With Better Payment Relevance\u003c\/h4\u003e\n        \u003cp\u003e\n          Shop country, order country and order currency create the real payment context for each checkout.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit\"\u003e\n        \u003ch4\u003eLet Stripe Handle Eligibility\u003c\/h4\u003e\n        \u003cp\u003e\n          Enable methods in Stripe and let Stripe apply its current rules instead of maintaining\n          a fragile hard-coded payment matrix inside PrestaShop.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit ph12-benefit-dark\"\u003e\n        \u003ch4\u003eTest Before Going Public\u003c\/h4\u003e\n        \u003cp\u003e\n          Stealth Mode allows payment testing from approved IP addresses before exposing a configuration to visitors.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit\"\u003e\n        \u003ch4\u003eRefund From the Order\u003c\/h4\u003e\n        \u003cp\u003e\n          Full and partial Stripe refunds can be initiated from the PrestaShop order page.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit ph12-benefit-dark\"\u003e\n        \u003ch4\u003eUnderstand Payment Outcomes\u003c\/h4\u003e\n        \u003cp\u003e\n          Successful, declined and processing payments remain distinct instead of becoming a generic checkout failure.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit\"\u003e\n        \u003ch4\u003eDiagnose Instead of Guess\u003c\/h4\u003e\n        \u003cp\u003e\n          Transaction records and sanitized logging provide useful context when an edge case needs investigation.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-benefit ph12-benefit-dark\"\u003e\n        \u003ch4\u003eReduce Integration Overhead\u003c\/h4\u003e\n        \u003cp\u003e\n          Direct Stripe API integration avoids the additional PrestaShop Accounts, EventBus and cloud-sync dependency chain.\n        \u003c\/p\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- VISITOR BENEFITS --\u003e\n  \u003csection class=\"ph12-visitor\"\u003e\n    \u003cheader class=\"ph12-section-head ph12-section-head-light\"\u003e\n      \u003cdiv class=\"ph12-kicker ph12-kicker-light\"\u003eBENEFITS FOR VISITORS\u003c\/div\u003e\n      \u003ch3\u003eMake the Last Step of the Sale Easier to Finish\u003c\/h3\u003e\n      \u003cp\u003e\n        Visitors do not care how complicated payment processing is behind the scenes.\n        They care whether checkout is clear, familiar and easy to complete.\n      \u003c\/p\u003e\n    \u003c\/header\u003e\n\n    \u003cdiv class=\"ph12-grid ph12-grid-3\"\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eFAST\u003c\/span\u003e\n        \u003ch4\u003eFaster Payment\u003c\/h4\u003e\n        \u003cp\u003eEligible express-payment customers can complete payment with less manual entry.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eCHOICE\u003c\/span\u003e\n        \u003ch4\u003eMore Ways to Pay\u003c\/h4\u003e\n        \u003cp\u003eExpress methods, cards and other eligible Stripe payment forms can live in one payment workflow.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eLOCAL\u003c\/span\u003e\n        \u003ch4\u003eMore Relevant Choices\u003c\/h4\u003e\n        \u003cp\u003eInternational visitors can see payment methods appropriate to the shop, order country and currency.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eCARD\u003c\/span\u003e\n        \u003ch4\u003eModern Card Intake\u003c\/h4\u003e\n        \u003cp\u003eStripe Payment Element provides a current, familiar card experience rendered securely by Stripe.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eCLEAR\u003c\/span\u003e\n        \u003ch4\u003eLess Checkout Clutter\u003c\/h4\u003e\n        \u003cp\u003eMultiple Stripe methods can live inside one coherent experience instead of competing payment boxes.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"ph12-visitor-card\"\u003e\n        \u003cspan\u003eMOBILE\u003c\/span\u003e\n        \u003ch4\u003eBetter Mobile Checkout\u003c\/h4\u003e\n        \u003cp\u003eResponsive Stripe components and express payment reduce unnecessary work on smaller screens.\u003c\/p\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- PROOF --\u003e\n  \u003csection class=\"ph12-proof\"\u003e\n    \u003carticle class=\"ph12-proof-dark\"\u003e\n      \u003cdiv class=\"ph12-kicker ph12-kicker-light\"\u003ePROVEN ON REAL CUSTOMER SHOPS\u003c\/div\u003e\n      \u003ch3\u003eBuilt From a Conversion Problem, Not a Feature Wishlist\u003c\/h3\u003e\n      \u003cp\u003e\n        PH Stripe began with a practical ecommerce problem: customers were reaching payment and abandoning checkout.\n        It was proven first on PrestaHeroes customer shops, then hardened against real cards, wallets, countries,\n        currencies, declines, asynchronous payments, webhooks, refunds and production ordering behavior.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ph12-proof-blue\"\u003e\n      \u003cdiv class=\"ph12-kicker ph12-kicker-white\"\u003ePRODUCTION FIRST\u003c\/div\u003e\n      \u003ch3\u003eA Payment Module Has to Work After the Demo Is Over\u003c\/h3\u003e\n      \u003cp\u003e\n        Duplicate-order protection, immutable payment mapping, webhook handling, refund reconciliation\n        and sanitized diagnostics are there because production checkout eventually finds every weak spot.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- CTA --\u003e\n  \u003csection class=\"ph12-cta\"\u003e\n    \u003cdiv class=\"ph12-logo\"\u003ePH\u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"ph12-kicker\"\u003eBUILT BY PRESTAHEROES\u003c\/div\u003e\n      \u003ch3\u003eWant the Same Focus on Conversion Across the Rest of Your PrestaShop?\u003c\/h3\u003e\n      \u003cp\u003e\n        I work directly with PrestaShop merchants on checkout, performance, upgrades,\n        international ecommerce, troubleshooting and custom development.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003ca href=\"mailto:fred@prestaheroes.com?subject=PrestaShop%20Project%20from%20PH%20Stripe\"\u003e\n      \u003csmall\u003eCONTACT FRED\u003c\/small\u003e\n      \u003cstrong\u003efred@prestaheroes.com\u003c\/strong\u003e\n    \u003c\/a\u003e\n  \u003c\/section\u003e\n\n\n  \u003cp class=\"ph12-fineprint\"\u003e\n    \u003cstrong\u003ePayment-method availability:\u003c\/strong\u003e\n    Stripe controls final payment-method and wallet eligibility. Availability can vary by connected Stripe account,\n    shop country, order country, transaction currency and amount, Stripe configuration, customer context,\n    browser or device, wallet readiness and method-specific requirements. Standard Stripe processing fees apply.\n  \u003c\/p\u003e\n\n\u003c\/div\u003e\n\n\n\u003cstyle\u003e\n#ph-stripe-v12 {\n  --black: #111318;\n  --black2: #191d24;\n  --text: #20242c;\n  --body: #555d69;\n  --muted: #7a828e;\n  --line: #dde1e7;\n  --soft: #f5f6f8;\n  --white: #ffffff;\n  --blue: #2563eb;\n  --blue-dark: #1d4ed8;\n  --blue-soft: #eff6ff;\n\n  width: min(1120px, 100%);\n  margin: 0 auto;\n  padding: 34px 20px 58px;\n  color: var(--text);\n  font-family: inherit;\n}\n\n#ph-stripe-v12 *,\n#ph-stripe-v12 *::before,\n#ph-stripe-v12 *::after {\n  box-sizing: border-box;\n}\n\n#ph-stripe-v12 h2,\n#ph-stripe-v12 h3,\n#ph-stripe-v12 h4,\n#ph-stripe-v12 p {\n  margin-top: 0;\n}\n\n#ph-stripe-v12 h2,\n#ph-stripe-v12 h3,\n#ph-stripe-v12 h4 {\n  color: var(--black) !important;\n  font-family: inherit !important;\n  text-transform: none !important;\n}\n\n#ph-stripe-v12 h2 {\n  max-width: 940px;\n  margin-bottom: 18px !important;\n  font-size: clamp(34px, 4.2vw, 46px) !important;\n  font-weight: 800 !important;\n  line-height: 1.08 !important;\n  letter-spacing: -.025em !important;\n}\n\n#ph-stripe-v12 h3 {\n  margin-bottom: 12px !important;\n  font-size: clamp(26px, 3vw, 32px) !important;\n  font-weight: 780 !important;\n  line-height: 1.14 !important;\n  letter-spacing: -.02em !important;\n}\n\n#ph-stripe-v12 h4 {\n  margin-bottom: 8px !important;\n  font-size: 17px !important;\n  font-weight: 760 !important;\n  line-height: 1.25 !important;\n}\n\n#ph-stripe-v12 p {\n  margin-bottom: 13px !important;\n  color: var(--body) !important;\n  font-size: 15px !important;\n  line-height: 1.66 !important;\n}\n\n#ph-stripe-v12 .ph12-kicker {\n  margin-bottom: 8px;\n  color: var(--blue);\n  font-size: 11px;\n  font-weight: 850;\n  letter-spacing: .11em;\n  text-transform: uppercase;\n}\n\n#ph-stripe-v12 .ph12-kicker-light {\n  color: #93c5fd;\n}\n\n#ph-stripe-v12 .ph12-kicker-white {\n  color: #fff;\n}\n\n\n\/* HERO *\/\n#ph-stripe-v12 .ph12-hero {\n  max-width: 980px;\n  padding: 24px 0 34px;\n}\n\n#ph-stripe-v12 .ph12-lead {\n  max-width: 900px;\n  color: #343a46 !important;\n  font-size: 19px !important;\n  font-weight: 600;\n  line-height: 1.58 !important;\n}\n\n#ph-stripe-v12 .ph12-tags {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 20px;\n}\n\n#ph-stripe-v12 .ph12-tags span {\n  padding: 8px 11px;\n  border: 1px solid var(--line);\n  border-radius: 7px;\n  background: #fff;\n  color: #4e5662;\n  font-size: 12px;\n  font-weight: 750;\n}\n\n\n\/* COMMON HEAD *\/\n#ph-stripe-v12 .ph12-section-head {\n  max-width: 950px;\n  margin-bottom: 24px;\n}\n\n#ph-stripe-v12 .ph12-section-head \u003e p {\n  max-width: 880px;\n  margin-bottom: 0 !important;\n}\n\n#ph-stripe-v12 .ph12-section-head-light h3 {\n  color: #fff !important;\n}\n\n#ph-stripe-v12 .ph12-section-head-light \u003e p {\n  color: #c9ced6 !important;\n}\n\n\n\/* PAYMENT *\/\n#ph-stripe-v12 .ph12-payment {\n  margin: 8px 0 34px;\n  padding: 32px;\n  border-radius: 15px;\n  background: var(--black);\n  box-shadow: inset 0 -5px 0 var(--blue);\n}\n\n#ph-stripe-v12 .ph12-payment-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 14px;\n}\n\n#ph-stripe-v12 .ph12-payment-card {\n  padding: 24px;\n  border: 1px solid #343a44;\n  border-radius: 12px;\n  background: var(--black2);\n}\n\n#ph-stripe-v12 .ph12-card-label {\n  margin-bottom: 10px;\n  color: #93c5fd;\n  font-size: 11px;\n  font-weight: 850;\n  letter-spacing: .1em;\n}\n\n#ph-stripe-v12 .ph12-payment-card h4 {\n  color: #fff !important;\n  font-size: 20px !important;\n}\n\n#ph-stripe-v12 .ph12-payment-card \u003e p {\n  color: #c5cad2 !important;\n  font-size: 14px !important;\n}\n\n#ph-stripe-v12 .ph12-methods {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 16px;\n}\n\n#ph-stripe-v12 .ph12-methods span {\n  padding: 8px 10px;\n  border-radius: 7px;\n  font-size: 11px;\n  font-weight: 700;\n}\n\n#ph-stripe-v12 .ph12-methods-dark span {\n  border: 1px solid #404753;\n  background: #262c35;\n  color: #f4f6f8;\n}\n\n#ph-stripe-v12 .ph12-note-light {\n  margin: 15px 0 0 !important;\n  color: #979eaa !important;\n  font-size: 11px !important;\n}\n\n\n\/* SECTIONS *\/\n#ph-stripe-v12 .ph12-section {\n  padding: 38px 0;\n  border-top: 1px solid var(--line);\n}\n\n#ph-stripe-v12 .ph12-grid {\n  display: grid;\n  gap: 12px;\n}\n\n#ph-stripe-v12 .ph12-grid-3 {\n  grid-template-columns: repeat(3, 1fr);\n}\n\n\n\/* FEATURES - MOSTLY BLACK *\/\n#ph-stripe-v12 .ph12-feature {\n  min-width: 0;\n  padding: 20px;\n  border: 1px solid #2d323b;\n  border-radius: 11px;\n  background: var(--black);\n}\n\n#ph-stripe-v12 .ph12-feature \u003e span {\n  display: inline-flex;\n  align-items: center;\n  min-width: 34px;\n  height: 29px;\n  margin-bottom: 11px;\n  padding: 0 8px;\n  border-radius: 6px;\n  background: #fff;\n  color: var(--black);\n  font-size: 9px;\n  font-weight: 900;\n}\n\n#ph-stripe-v12 .ph12-feature h4 {\n  color: #fff !important;\n}\n\n#ph-stripe-v12 .ph12-feature p {\n  margin-bottom: 0 !important;\n  color: #c4c9d1 !important;\n  font-size: 13px !important;\n  line-height: 1.58 !important;\n}\n\n#ph-stripe-v12 .ph12-feature-blue {\n  border-color: var(--blue);\n  background: var(--blue);\n}\n\n#ph-stripe-v12 .ph12-feature-blue \u003e span {\n  color: var(--blue);\n}\n\n#ph-stripe-v12 .ph12-feature-blue p {\n  color: #e5efff !important;\n}\n\n\n\/* INTERNATIONAL *\/\n#ph-stripe-v12 .ph12-international {\n  margin: 8px 0;\n  padding: 32px;\n  border-radius: 15px;\n  background: var(--black);\n  box-shadow: inset 0 -5px 0 var(--blue);\n}\n\n#ph-stripe-v12 .ph12-flow {\n  display: grid;\n  grid-template-columns: 1fr 22px 1fr 22px 1fr 22px 1.1fr;\n  gap: 7px;\n  align-items: center;\n  margin: 22px 0 15px;\n}\n\n#ph-stripe-v12 .ph12-flow \u003e div {\n  min-height: 82px;\n  padding: 15px;\n  border: 1px solid #343a44;\n  border-radius: 9px;\n  background: var(--black2);\n}\n\n#ph-stripe-v12 .ph12-flow \u003e b {\n  color: #7f8793;\n  font-size: 17px;\n  text-align: center;\n}\n\n#ph-stripe-v12 .ph12-flow small,\n#ph-stripe-v12 .ph12-flow strong {\n  display: block;\n}\n\n#ph-stripe-v12 .ph12-flow small {\n  margin-bottom: 7px;\n  color: #979eaa;\n  font-size: 9px;\n  font-weight: 850;\n  letter-spacing: .08em;\n}\n\n#ph-stripe-v12 .ph12-flow strong {\n  color: #fff;\n  font-size: 13px;\n  line-height: 1.4;\n}\n\n#ph-stripe-v12 .ph12-flow .ph12-flow-result {\n  border-color: var(--blue);\n  background: var(--blue);\n}\n\n#ph-stripe-v12 .ph12-flow-result small {\n  color: #dbeafe;\n}\n\n#ph-stripe-v12 .ph12-international-cards {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 10px;\n}\n\n#ph-stripe-v12 .ph12-international-cards article {\n  padding: 18px;\n  border: 1px solid #343a44;\n  border-radius: 10px;\n  background: var(--black2);\n}\n\n#ph-stripe-v12 .ph12-international-cards h4 {\n  color: #fff !important;\n  font-size: 15px !important;\n}\n\n#ph-stripe-v12 .ph12-international-cards p {\n  margin-bottom: 0 !important;\n  color: #aeb4be !important;\n  font-size: 13px !important;\n}\n\n\n\/* MERCHANT BENEFITS *\/\n#ph-stripe-v12 .ph12-benefit {\n  min-width: 0;\n  padding: 20px;\n  border: 1px solid var(--line);\n  border-radius: 11px;\n  background: #fff;\n}\n\n#ph-stripe-v12 .ph12-benefit p {\n  margin-bottom: 0 !important;\n  font-size: 13px !important;\n}\n\n#ph-stripe-v12 .ph12-benefit-dark {\n  border-color: #303640;\n  background: var(--black);\n}\n\n#ph-stripe-v12 .ph12-benefit-dark h4 {\n  color: #fff !important;\n}\n\n#ph-stripe-v12 .ph12-benefit-dark p {\n  color: #c3c8d0 !important;\n}\n\n\n\/* VISITOR - FULL DARK SECTION *\/\n#ph-stripe-v12 .ph12-visitor {\n  margin: 8px 0;\n  padding: 32px;\n  border-radius: 15px;\n  background: var(--black);\n}\n\n#ph-stripe-v12 .ph12-visitor-card {\n  min-width: 0;\n  padding: 20px;\n  border: 1px solid #343a44;\n  border-radius: 11px;\n  background: var(--black2);\n}\n\n#ph-stripe-v12 .ph12-visitor-card \u003e span {\n  display: inline-flex;\n  align-items: center;\n  min-height: 28px;\n  margin-bottom: 10px;\n  padding: 0 8px;\n  border-radius: 6px;\n  background: var(--blue);\n  color: #fff;\n  font-size: 9px;\n  font-weight: 900;\n}\n\n#ph-stripe-v12 .ph12-visitor-card h4 {\n  color: #fff !important;\n}\n\n#ph-stripe-v12 .ph12-visitor-card p {\n  margin-bottom: 0 !important;\n  color: #c3c8d0 !important;\n  font-size: 13px !important;\n}\n\n\n\/* PROOF *\/\n#ph-stripe-v12 .ph12-proof {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 12px;\n  padding: 38px 0;\n  border-top: 1px solid var(--line);\n}\n\n#ph-stripe-v12 .ph12-proof article {\n  padding: 25px;\n  border-radius: 12px;\n}\n\n#ph-stripe-v12 .ph12-proof h3 {\n  color: #fff !important;\n  font-size: 23px !important;\n}\n\n#ph-stripe-v12 .ph12-proof p {\n  margin-bottom: 0 !important;\n  color: #c5cad2 !important;\n  font-size: 14px !important;\n}\n\n#ph-stripe-v12 .ph12-proof-dark {\n  background: var(--black);\n}\n\n#ph-stripe-v12 .ph12-proof-blue {\n  background: var(--blue);\n}\n\n#ph-stripe-v12 .ph12-proof-blue p {\n  color: #e2ebff !important;\n}\n\n\n\/* CTA *\/\n#ph-stripe-v12 .ph12-cta {\n  display: grid;\n  grid-template-columns: 58px 1fr auto;\n  gap: 18px;\n  align-items: center;\n  padding: 22px;\n  border: 1px solid var(--line);\n  border-radius: 12px;\n  background: var(--soft);\n}\n\n#ph-stripe-v12 .ph12-logo {\n  display: grid;\n  place-items: center;\n  width: 52px;\n  height: 52px;\n  border-radius: 11px;\n  background: var(--black);\n  color: #fff;\n  box-shadow: inset 0 -4px 0 var(--blue);\n  font-size: 14px;\n  font-weight: 900;\n}\n\n#ph-stripe-v12 .ph12-cta h3 {\n  margin-bottom: 5px !important;\n  font-size: 20px !important;\n}\n\n#ph-stripe-v12 .ph12-cta p {\n  max-width: 720px;\n  margin-bottom: 0 !important;\n  font-size: 13px !important;\n}\n\n#ph-stripe-v12 .ph12-cta a {\n  display: block;\n  min-width: 205px;\n  padding: 12px 14px;\n  border-radius: 8px;\n  background: var(--blue);\n  text-decoration: none !important;\n}\n\n#ph-stripe-v12 .ph12-cta a small,\n#ph-stripe-v12 .ph12-cta a strong {\n  display: block;\n  color: #fff;\n}\n\n#ph-stripe-v12 .ph12-cta a small {\n  margin-bottom: 3px;\n  color: #dbeafe;\n  font-size: 9px;\n  font-weight: 850;\n  letter-spacing: .07em;\n}\n\n#ph-stripe-v12 .ph12-cta a strong {\n  font-size: 12px;\n}\n\n\n\/* FINE PRINT - STILL READABLE *\/\n#ph-stripe-v12 .ph12-fineprint {\n  max-width: 980px;\n  margin: 18px 0 0 !important;\n  padding-top: 15px;\n  border-top: 1px solid #e7e9ed;\n  color: #7b828c !important;\n  font-size: 11px !important;\n  line-height: 1.55 !important;\n}\n\n#ph-stripe-v12 .ph12-fineprint strong {\n  color: #555c66;\n}\n\n\n\/* RESPONSIVE *\/\n@media (max-width: 900px) {\n  #ph-stripe-v12 .ph12-grid-3 {\n    grid-template-columns: repeat(2, 1fr);\n  }\n\n  #ph-stripe-v12 .ph12-flow {\n    grid-template-columns: 1fr;\n  }\n\n  #ph-stripe-v12 .ph12-flow \u003e b {\n    line-height: 1;\n  }\n}\n\n@media (max-width: 720px) {\n  #ph-stripe-v12 .ph12-payment-grid,\n  #ph-stripe-v12 .ph12-proof,\n  #ph-stripe-v12 .ph12-international-cards {\n    grid-template-columns: 1fr;\n  }\n\n  #ph-stripe-v12 .ph12-cta {\n    grid-template-columns: 52px 1fr;\n  }\n\n  #ph-stripe-v12 .ph12-cta a {\n    grid-column: 1 \/ -1;\n    min-width: 0;\n  }\n}\n\n@media (max-width: 520px) {\n  #ph-stripe-v12 {\n    padding-left: 12px;\n    padding-right: 12px;\n  }\n\n  #ph-stripe-v12 h2 {\n    font-size: 32px !important;\n  }\n\n  #ph-stripe-v12 .ph12-grid-3 {\n    grid-template-columns: 1fr;\n  }\n\n  #ph-stripe-v12 .ph12-payment,\n  #ph-stripe-v12 .ph12-international,\n  #ph-stripe-v12 .ph12-visitor {\n    padding: 21px;\n  }\n}\n\u003c\/style\u003e","brand":"PrestaHeroes.com","offers":[{"title":"Default Title","offer_id":45710220001487,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0600\/5728\/8911\/files\/ph_stripe_sfwbox2.png?v=1786983927","url":"https:\/\/prestaheroes.com\/products\/ph-stripe-modern-stripe-payments-for-prestashop","provider":"PrestaHeroes.com","version":"1.0","type":"link"}