<?php
// Public legal page — no auth required, same shell as the other 3 legal
// pages. New 2026-08-11 (follow-up to the roadmap loose-ends pass) —
// Kevin's Terms of Service (§7) references a standalone Refund Policy
// page rather than a section folded into Terms, and his own source doc
// (TraderAlign_Refund_Policy.md) is written as a full standalone
// document, so this is built as its own page rather than kept as a
// Terms subsection. Body text is his own, as written, only reformatted
// from Markdown into this shell. No wording was rewritten.
$isLoggedIn = $auth->isLoggedIn();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Refund Policy - TraderAlign</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/traderalign/assets/tokens.css">
<link rel="icon" type="image/png" sizes="32x32" href="/traderalign/assets/favicon/favicon-32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/traderalign/assets/favicon/favicon-16.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/traderalign/assets/favicon/apple-touch-icon.png">
    <link rel="shortcut icon" href="/traderalign/assets/favicon/favicon.ico">
<link rel="stylesheet" href="/traderalign/assets/css/brand.css">
<?php require __DIR__ . '/legal-page.css.php'; ?>
</head>
<body>
<div class="legal-page">
    <div class="legal-nav">
        <a href="/traderalign/" class="ta-brand"><img src="/traderalign/images/logo.png" alt="" class="ta-logo ta-logo--md"><span class="ta-word">TraderAlign</span></a>
        <div class="legal-nav-links">
            <?php if ($isLoggedIn): ?>
                <a href="/traderalign/dashboard">Dashboard</a>
            <?php else: ?>
                <a href="/traderalign/sign-in">Sign In</a>
                <a href="/traderalign/sign-up" class="btn btn-primary">Get Started</a>
            <?php endif; ?>
        </div>
    </div>

    <h1>Refund Policy</h1>
    <p class="legal-updated">Last updated: August 2026</p>

    <p>This Refund Policy explains how billing and refunds work for TraderAlign subscriptions. It should be read alongside our <a href="/traderalign/terms">Terms of Service</a>.</p>

    <h2>1. Subscription Charges</h2>
    <p>TraderAlign offers a free tier and several paid subscription tiers, described on our <a href="/traderalign/pricing">Pricing</a> page. Paid subscriptions renew automatically at the start of each billing period until cancelled. By subscribing, you authorize us to charge your chosen payment method on a recurring basis.</p>

    <h2>2. General Policy</h2>
    <p>Subscription charges are generally non-refundable once a billing period has started. This applies whether you use the platform actively during that period or not, since the subscription grants you access for the full period regardless of how much you use it.</p>

    <h2>3. Errors and Duplicate Charges</h2>
    <p>If you believe you were charged in error, such as a duplicate charge or a charge after you cancelled, please contact us within 14 days of the charge. We will review each case in good faith and issue a refund where a billing error is confirmed.</p>

    <h2>4. Cancellations</h2>
    <p>You can cancel your subscription at any time from your account settings. Cancellation stops future renewals, but it does not refund the current billing period. You will retain access to paid features until the end of the period you already paid for.</p>

    <h2>5. Upgrades and Downgrades</h2>
    <p>If you change your subscription tier partway through a billing period, any difference in price will be applied at your next renewal rather than refunded or charged immediately, unless stated otherwise at the time of the change.</p>

    <h2>6. Exceptions</h2>
    <p>We may, at our discretion, make exceptions to this policy in cases of genuine hardship, technical failure on our part, or other circumstances we consider fair to accommodate. These exceptions are handled on a case by case basis and do not create an obligation to offer the same outcome in future cases.</p>

    <h2>7. How to Request a Refund</h2>
    <p>To request a refund or report a billing issue, contact us at <a href="mailto:kelvinmwaruka@gmail.com">kelvinmwaruka@gmail.com</a> with your account email and the date of the charge in question. We aim to respond to all billing inquiries within a few business days.</p>

    <div class="legal-footer">
        <a href="/traderalign/privacy-policy">Privacy Policy</a> · <a href="/traderalign/terms">Terms of Service</a> · <a href="/traderalign/risk-disclosure">Risk Disclosure</a> · <a href="/traderalign/pricing">Pricing</a>
        <?php if ($isLoggedIn): ?> · <a href="/traderalign/dashboard">← Back to Dashboard</a><?php endif; ?>
    </div>
</div>
</body>
</html>
