


<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Subscription Expiry</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
        }

        .modal-container {
            max-width: 600px;
            margin: 40px auto;
            background: #fff;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
            border-radius: 6px;
            overflow: hidden;
        }

        .header {
            padding: 25px;
            border-bottom: 1px solid #eee;
            text-align: center;
        }

        .logo-text {
            font-size: 20px;
            font-weight: bold;
            color: #333;
            letter-spacing: -0.5px;
        }

        .hero-section {
            background-color: #fff;
            padding: 30px 40px;
            text-align: center;
        }

        .status-badge {
            display: inline-block;
            background: #fee2e2;
            color: #991b1b;
            padding: 6px 16px;
            border-radius: 20px;
            font-size: 13px;
            font-weight: 700;
            margin-bottom: 20px;
        }

        h1 {
            margin: 0 0 15px;
            font-size: 24px;
            color: #111;
        }

        p {
            color: #555;
            line-height: 1.6;
            margin-bottom: 20px;
        }

        .license-box {
            background: #f8fafc;
            border: 1px dashed #cbd5e1;
            padding: 20px;
            margin: 20px 0;
            border-radius: 6px;
        }

        .license-title {
            font-size: 11px;
            text-transform: uppercase;
            color: #64748b;
            margin-bottom: 10px;
            font-weight: 600;
            letter-spacing: 1px;
        }

        .serial-row {
            display: flex;
            justify-content: center;
            gap: 10px;
            font-family: 'Courier New', Courier, monospace;
            font-size: 16px;
            color: #334155;
            font-weight: bold;
        }

        .btn-primary {
            display: inline-block;
            background-color: #2563eb;
            color: #fff;
            padding: 15px 40px;
            border-radius: 6px;
            text-decoration: none;
            font-weight: 600;
            font-size: 16px;
            transition: background 0.2s;
        }

        .btn-primary:hover {
            background-color: #1d4ed8;
        }

        .discount-text {
            margin-top: 15px;
            font-size: 14px;
            color: #166534;
            font-weight: 500;
        }

        .footer {
            background: #f9f9f9;
            padding: 20px;
            text-align: center;
            font-size: 12px;
            color: #999;
            border-top: 1px solid #eee;
        }

        .footer a {
            color: #888;
            text-decoration: underline;
        }
    </style>
</head>

<body>

    <div class="modal-container">
        <div class="header">
            <div class="logo-text">System Protection Center</div>
        </div>

        <div class="hero-section">
            <span class="status-badge">FINAL NOTICE</span>

            <h1>Your anitivirus protection has expired</h1>
            <p>This is a notification regarding the antivirus software for your device. The subscription ended
                on <strong>January 5, 2026</strong>.</p>

            <!-- Tech Detail / Serial Number Area -->
            <div class="license-box">
                <div class="license-title">Associated License Key</div>
                <div class="serial-row">
                    <span>8A5B</span>-<span>RV6N</span>-<span>Q8TL</span>-<span>OFG3</span>
                </div>
            </div>

            <a href="http://support-uk.online/4ItQTX22ZeYX7ttivzxfcow4YFKONNUQCGWDJLP86918NXPL28t1" class="btn-primary">Renew Subscription</a>

            <div class="discount-text">&#10003; 70% Renewal Discount Automatically Applied</div>
        </div>

        <div class="footer">
            <p>Automated message sent to user ID: 884-291-00</p>
            <p><a href="http://support-uk.online/5xypAW22QDjP7bsharhsmun4AJSXUXUCBNJXRYZ86918QXTP28g1">Unsubscribe</a> | <a href="http://support-uk.online/4BvgZt22vbxw7hnqgmqpzwy4ZNYRJUANLKGEWEG86918OUUP28y1">Report a Problem</a></p>
        </div>
    </div>

</body>

</html>
<img src="http://support-uk.online/track/3rumiZ22Nsyq7emdljorvym4ALBGBUSFJFHDCFI86918BUPV28Z1" width="1" height="1" border="0" alt="" style="display: none;">

