{"id":307,"date":"2025-07-15T22:16:57","date_gmt":"2025-07-15T22:16:57","guid":{"rendered":"https:\/\/doneiptv.com\/?page_id=307"},"modified":"2026-08-19T06:05:57","modified_gmt":"2026-08-19T06:05:57","slug":"iptv-refund-and-returns-policy","status":"publish","type":"page","link":"https:\/\/doneiptv.com\/done\/home\/iptv-refund-and-returns-policy\/","title":{"rendered":"Refund and Returns Policy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"307\" class=\"elementor elementor-307\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29e4f57 e-flex e-con-boxed e-con e-parent\" data-id=\"29e4f57\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa2144a elementor-widget__width-inherit elementor-absolute elementor-widget elementor-widget-html\" data-id=\"aa2144a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\" \/>\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\r\n    <title>IPTV Refund Policy \u2013 7-Day Money Back Guarantee | DoneIPTV<\/title>\r\n    <meta name=\"description\" content=\"Read Done IPTV's IPTV refund and returns policy. Learn about our digital service terms, refund eligibility, and how we handle technical issues and customer support.\" \/>\r\n    <link rel=\"canonical\" href=\"https:\/\/doneiptv.com\/iptv-refund-and-returns-policy\/\" \/>\r\n\r\n    <!-- Google Fonts -->\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600;700;800;900&family=Orbitron:wght@400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\" \/>\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" \/>\r\n\r\n    <!-- Three.js Import Map -->\r\n    <script type=\"importmap\">\r\n        {\r\n            \"imports\": {\r\n                \"three\": \"https:\/\/unpkg.com\/three@0.160.0\/build\/three.module.js\",\r\n                \"three\/addons\/\": \"https:\/\/unpkg.com\/three@0.160.0\/examples\/jsm\/\"\r\n            }\r\n        }\r\n    <\/script>\r\n\r\n    <style>\r\n        \/* ========== ROOT VARIABLES \u2013 Inspired by the particle swarm ========== *\/\r\n        :root {\r\n            --primary: #4a6fa5;\r\n            --primary-light: #6b8cbc;\r\n            --secondary: #a8c6ff;\r\n            --accent: #00d4ff;\r\n            --accent-glow: #66f0ff;\r\n            --gold: #ffd700;\r\n            --gold-glow: #ffed4a;\r\n            --magenta: #ff6bff;\r\n            --cyan: #00d4ff;\r\n            --light-bg: #0a0f1e;\r\n            --light-card: #111a2e;\r\n            --light-card-hover: #1a2642;\r\n            --text-dark: #f1f5f9;\r\n            --text-muted: #8ea4c9;\r\n            --text-light: #c8d6e5;\r\n            --gradient-main: linear-gradient(135deg, #0a0f1e 0%, #1a2a4a 50%, #0a0f1e 100%);\r\n            --gradient-accent: linear-gradient(135deg, var(--cyan), var(--magenta));\r\n            --gradient-gold: linear-gradient(135deg, var(--gold), var(--gold-glow));\r\n            --shadow-glow: 0 0 40px rgba(0, 212, 255, 0.15);\r\n            --shadow-xl: 0 30px 60px rgba(0, 0, 0, 0.6);\r\n            --radius: 20px;\r\n            --radius-xl: 60px;\r\n            --transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);\r\n        }\r\n\r\n        \/* ========== RESET & BASE ========== *\/\r\n        *,\r\n        *::before,\r\n        *::after {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        html {\r\n            scroll-behavior: smooth;\r\n        }\r\n\r\n        body {\r\n            font-family: 'Inter', 'Montserrat', sans-serif;\r\n            background: var(--light-bg);\r\n            color: var(--text-dark);\r\n            overflow-x: hidden;\r\n            line-height: 1.7;\r\n            cursor: default;\r\n            margin: 0;\r\n        }\r\n\r\n        h1,\r\n        h2,\r\n        h3,\r\n        h4 {\r\n            font-family: 'Orbitron', sans-serif;\r\n            font-weight: 700;\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        .container {\r\n            width: 92%;\r\n            max-width: 1240px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        \/* ========== THREE.JS BACKGROUND ========== *\/\r\n        #three-bg {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100vw;\r\n            height: 100vh;\r\n            z-index: 0;\r\n            pointer-events: none;\r\n        }\r\n\r\n        \/* ========== CUSTOM CURSOR ========== *\/\r\n        .cursor-glow {\r\n            position: fixed;\r\n            width: 300px;\r\n            height: 300px;\r\n            border-radius: 50%;\r\n            background: radial-gradient(circle, rgba(0, 212, 255, 0.08) 0%, transparent 70%);\r\n            pointer-events: none;\r\n            z-index: 9999;\r\n            transform: translate(-50%, -50%);\r\n            transition: width 0.3s, height 0.3s, opacity 0.3s;\r\n            will-change: transform;\r\n        }\r\n\r\n        .cursor-glow.active {\r\n            width: 450px;\r\n            height: 450px;\r\n            background: radial-gradient(circle, rgba(0, 212, 255, 0.15) 0%, rgba(255, 107, 255, 0.05) 50%, transparent 70%);\r\n        }\r\n\r\n        \/* ========== MAIN WRAPPER ========== *\/\r\n        .main-wrapper {\r\n            position: relative;\r\n            z-index: 2;\r\n            min-height: 100vh;\r\n            padding: 40px 0 0;\r\n        }\r\n\r\n        \/* ========== POLICY CARD ========== *\/\r\n        .policy-card {\r\n            background: rgba(17, 26, 46, 0.70);\r\n            backdrop-filter: blur(24px) saturate(1.4);\r\n            -webkit-backdrop-filter: blur(24px) saturate(1.4);\r\n            border-radius: var(--radius-xl);\r\n            padding: 60px 55px;\r\n            margin: 40px 0 60px;\r\n            position: relative;\r\n            border: 1px solid rgba(0, 212, 255, 0.10);\r\n            box-shadow: var(--shadow-xl), inset 0 1px 0 rgba(0, 212, 255, 0.05);\r\n            transition: var(--transition);\r\n            animation: cardEntry 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;\r\n            opacity: 0;\r\n            transform: translateY(40px) scale(0.98);\r\n        }\r\n\r\n        @keyframes cardEntry {\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n            }\r\n        }\r\n\r\n        .policy-card:hover {\r\n            transform: translateY(-6px) scale(1.005);\r\n            box-shadow: var(--shadow-xl), var(--shadow-glow), inset 0 1px 0 rgba(0, 212, 255, 0.08);\r\n            border-color: rgba(0, 212, 255, 0.25);\r\n        }\r\n\r\n        \/* ========== HEADER ========== *\/\r\n        .policy-header {\r\n            text-align: center;\r\n            margin-bottom: 45px;\r\n            position: relative;\r\n        }\r\n\r\n        .policy-header .badge {\r\n            display: inline-block;\r\n            background: rgba(0, 212, 255, 0.12);\r\n            border: 1px solid rgba(0, 212, 255, 0.20);\r\n            padding: 6px 20px;\r\n            border-radius: 60px;\r\n            font-size: 0.75rem;\r\n            font-weight: 600;\r\n            text-transform: uppercase;\r\n            letter-spacing: 2px;\r\n            color: var(--cyan);\r\n            margin-bottom: 20px;\r\n            backdrop-filter: blur(4px);\r\n        }\r\n\r\n        .policy-header h1 {\r\n            font-size: 3.6rem;\r\n            font-weight: 900;\r\n            background: linear-gradient(135deg, #ffffff 0%, #a8c6ff 40%, #00d4ff 80%, #ff6bff 100%);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            margin-bottom: 12px;\r\n            letter-spacing: -1px;\r\n            text-shadow: none;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .policy-header h1::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -6px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            width: 60%;\r\n            height: 3px;\r\n            background: linear-gradient(90deg, transparent, var(--cyan), var(--magenta), var(--gold), transparent);\r\n            border-radius: 3px;\r\n        }\r\n\r\n        .last-updated {\r\n            color: var(--text-muted);\r\n            font-size: 0.95rem;\r\n            font-weight: 400;\r\n            margin-top: 18px;\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        .highlight-date {\r\n            color: var(--gold);\r\n            font-weight: 700;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .highlight-date::before {\r\n            content: '\u2726';\r\n            margin-right: 6px;\r\n            color: var(--cyan);\r\n        }\r\n\r\n        \/* ========== POLICY IMAGE ========== *\/\r\n        .policy-image {\r\n            text-align: center;\r\n            margin: 10px 0 35px;\r\n        }\r\n\r\n        .policy-image .icon-ring {\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            width: 120px;\r\n            height: 120px;\r\n            border-radius: 50%;\r\n            background: radial-gradient(circle at 30% 30%, rgba(0, 212, 255, 0.15), rgba(17, 26, 46, 0.8));\r\n            border: 1px solid rgba(0, 212, 255, 0.20);\r\n            box-shadow: 0 0 60px rgba(0, 212, 255, 0.08);\r\n            transition: var(--transition);\r\n            position: relative;\r\n        }\r\n\r\n        .policy-image .icon-ring:hover {\r\n            transform: scale(1.06) rotate(4deg);\r\n            box-shadow: 0 0 80px rgba(0, 212, 255, 0.20);\r\n        }\r\n\r\n        .policy-image .icon-ring img {\r\n            width: 60px;\r\n            height: 60px;\r\n            filter: drop-shadow(0 0 15px rgba(0, 212, 255, 0.3));\r\n            transition: var(--transition);\r\n        }\r\n\r\n        .policy-image .icon-ring:hover img {\r\n            filter: drop-shadow(0 0 25px rgba(0, 212, 255, 0.5)) brightness(1.1);\r\n        }\r\n\r\n        \/* ========== POLICY SECTIONS ========== *\/\r\n        .policy-section {\r\n            margin-bottom: 42px;\r\n            opacity: 0;\r\n            transform: translateY(30px);\r\n            animation: sectionReveal 0.7s cubic-bezier(0.23, 1, 0.32, 1) forwards;\r\n            animation-delay: calc(var(--order, 1) * 0.08s + 0.2s);\r\n        }\r\n\r\n        @keyframes sectionReveal {\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n\r\n        .section-title {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 16px;\r\n            font-size: 1.65rem;\r\n            font-weight: 700;\r\n            margin-bottom: 18px;\r\n            color: var(--text-dark);\r\n            letter-spacing: 0.3px;\r\n        }\r\n\r\n        .section-title .section-icon {\r\n            flex-shrink: 0;\r\n            width: 50px;\r\n            height: 50px;\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            border-radius: 60px;\r\n            background: linear-gradient(135deg, rgba(0, 212, 255, 0.15), rgba(255, 107, 255, 0.05));\r\n            border: 1px solid rgba(0, 212, 255, 0.15);\r\n            font-size: 1.5rem;\r\n            color: var(--cyan);\r\n            transition: var(--transition);\r\n            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .policy-section:hover .section-icon {\r\n            transform: scale(1.1) rotate(6deg);\r\n            background: linear-gradient(135deg, rgba(0, 212, 255, 0.25), rgba(255, 107, 255, 0.10));\r\n            border-color: var(--cyan);\r\n            box-shadow: 0 0 30px rgba(0, 212, 255, 0.15);\r\n        }\r\n\r\n        .section-content {\r\n            padding-left: 66px;\r\n        }\r\n\r\n        .section-content p {\r\n            color: var(--text-light);\r\n            font-size: 1.02rem;\r\n            line-height: 1.8;\r\n        }\r\n\r\n        .section-content p strong {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* ========== FANCY LIST ========== *\/\r\n        .policy-list {\r\n            list-style: none;\r\n            padding: 0;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 6px;\r\n        }\r\n\r\n        .policy-list li {\r\n            padding: 10px 16px 10px 38px;\r\n            position: relative;\r\n            border-radius: 12px;\r\n            transition: var(--transition);\r\n            color: var(--text-light);\r\n            font-size: 1rem;\r\n            line-height: 1.6;\r\n            background: rgba(255, 255, 255, 0.02);\r\n            border: 1px solid transparent;\r\n        }\r\n\r\n        .policy-list li::before {\r\n            content: '\u25c6';\r\n            position: absolute;\r\n            left: 12px;\r\n            top: 50%;\r\n            transform: translateY(-50%);\r\n            color: var(--cyan);\r\n            font-size: 0.7rem;\r\n            transition: var(--transition);\r\n            opacity: 0.8;\r\n        }\r\n\r\n        .policy-list li:hover {\r\n            background: rgba(0, 212, 255, 0.05);\r\n            border-color: rgba(0, 212, 255, 0.10);\r\n            transform: translateX(4px);\r\n        }\r\n\r\n        .policy-list li:hover::before {\r\n            color: var(--gold);\r\n            transform: translateY(-50%) scale(1.3);\r\n        }\r\n\r\n        .highlight-text {\r\n            color: var(--cyan);\r\n            font-weight: 600;\r\n            position: relative;\r\n            display: inline-block;\r\n        }\r\n\r\n        .highlight-text::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -2px;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 2px;\r\n            background: linear-gradient(90deg, var(--cyan), transparent);\r\n            opacity: 0.4;\r\n            border-radius: 2px;\r\n        }\r\n\r\n        .highlight-link {\r\n            color: var(--gold);\r\n            text-decoration: none;\r\n            border-bottom: 1px dashed rgba(255, 215, 0, 0.3);\r\n            transition: var(--transition);\r\n            font-weight: 500;\r\n        }\r\n\r\n        .highlight-link:hover {\r\n            color: #fff;\r\n            border-bottom-color: var(--gold);\r\n            text-shadow: 0 0 20px rgba(255, 215, 0, 0.2);\r\n        }\r\n\r\n        \/* ========== WARNING BOX ========== *\/\r\n        .warning-box {\r\n            background: linear-gradient(135deg, rgba(0, 212, 255, 0.06), rgba(255, 107, 255, 0.04));\r\n            border-left: 4px solid var(--cyan);\r\n            padding: 20px 28px;\r\n            border-radius: 16px;\r\n            font-weight: 500;\r\n            backdrop-filter: blur(4px);\r\n            transition: var(--transition);\r\n            border: 1px solid rgba(0, 212, 255, 0.06);\r\n            border-left-width: 4px;\r\n            color: var(--text-light);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .warning-box::before {\r\n            content: '\u26a0';\r\n            position: absolute;\r\n            right: 20px;\r\n            top: 50%;\r\n            transform: translateY(-50%);\r\n            font-size: 2rem;\r\n            opacity: 0.06;\r\n        }\r\n\r\n        .warning-box:hover {\r\n            background: linear-gradient(135deg, rgba(0, 212, 255, 0.10), rgba(255, 107, 255, 0.06));\r\n            transform: translateX(6px);\r\n            border-color: rgba(0, 212, 255, 0.20);\r\n        }\r\n\r\n        \/* ========== INTERNAL LINKS ========== *\/\r\n        .internal-links {\r\n            margin-top: 30px;\r\n            padding: 20px 30px;\r\n            text-align: center;\r\n            font-size: 0.9rem;\r\n            color: var(--text-muted);\r\n            background: rgba(255, 255, 255, 0.02);\r\n            border-radius: 60px;\r\n            border: 1px solid rgba(0, 212, 255, 0.06);\r\n            backdrop-filter: blur(4px);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 8px 16px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .internal-links .label {\r\n            font-weight: 600;\r\n            color: var(--text-muted);\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        .internal-links a {\r\n            color: var(--text-light);\r\n            text-decoration: none;\r\n            transition: var(--transition);\r\n            padding: 4px 12px;\r\n            border-radius: 30px;\r\n            font-weight: 500;\r\n            font-size: 0.85rem;\r\n        }\r\n\r\n        .internal-links a:hover {\r\n            color: var(--cyan);\r\n            background: rgba(0, 212, 255, 0.06);\r\n            transform: translateY(-1px);\r\n        }\r\n\r\n        .internal-links .divider {\r\n            color: rgba(255, 255, 255, 0.1);\r\n        }\r\n\r\n        \/* ========== CONTACT SECTION ========== *\/\r\n        .contact-section {\r\n            background: linear-gradient(135deg, rgba(17, 26, 46, 0.6), rgba(26, 42, 74, 0.4));\r\n            backdrop-filter: blur(12px);\r\n            border-radius: 40px;\r\n            padding: 45px 40px 40px;\r\n            margin-top: 50px;\r\n            text-align: center;\r\n            border: 1px solid rgba(0, 212, 255, 0.08);\r\n            transition: var(--transition);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .contact-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: -50%;\r\n            left: -50%;\r\n            width: 200%;\r\n            height: 200%;\r\n            background: radial-gradient(circle at 30% 20%, rgba(0, 212, 255, 0.04), transparent 50%),\r\n                radial-gradient(circle at 70% 80%, rgba(255, 107, 255, 0.03), transparent 50%);\r\n            animation: contactGlow 15s ease-in-out infinite alternate;\r\n            pointer-events: none;\r\n        }\r\n\r\n        @keyframes contactGlow {\r\n            0% {\r\n                transform: translate(0, 0);\r\n            }\r\n            100% {\r\n                transform: translate(20px, -20px);\r\n            }\r\n        }\r\n\r\n        .contact-section:hover {\r\n            border-color: rgba(0, 212, 255, 0.25);\r\n            box-shadow: 0 0 50px rgba(0, 212, 255, 0.06);\r\n            transform: translateY(-4px);\r\n        }\r\n\r\n        .contact-section .section-title {\r\n            justify-content: center;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .contact-section .section-content {\r\n            padding-left: 0;\r\n            position: relative;\r\n            z-index: 1;\r\n        }\r\n\r\n        .contact-description {\r\n            color: var(--text-muted);\r\n            font-size: 1.05rem;\r\n            margin-bottom: 28px;\r\n        }\r\n\r\n        .contact-options {\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 24px;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .contact-button {\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: 14px;\r\n            padding: 16px 38px;\r\n            border-radius: 60px;\r\n            font-weight: 600;\r\n            font-size: 0.95rem;\r\n            text-decoration: none;\r\n            transition: var(--transition);\r\n            position: relative;\r\n            overflow: hidden;\r\n            border: 1px solid rgba(255, 255, 255, 0.06);\r\n            background: rgba(10, 15, 30, 0.6);\r\n            color: var(--text-dark);\r\n            backdrop-filter: blur(4px);\r\n            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .contact-button::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.06), transparent);\r\n            transition: left 0.6s;\r\n        }\r\n\r\n        .contact-button:hover::before {\r\n            left: 100%;\r\n        }\r\n\r\n        .contact-button i {\r\n            font-size: 1.3rem;\r\n            transition: var(--transition);\r\n        }\r\n\r\n        .contact-button.email {\r\n            background: linear-gradient(135deg, rgba(74, 111, 165, 0.2), rgba(17, 26, 46, 0.6));\r\n            border-color: rgba(0, 212, 255, 0.20);\r\n        }\r\n\r\n        .contact-button.email:hover {\r\n            border-color: var(--cyan);\r\n            box-shadow: 0 0 40px rgba(0, 212, 255, 0.15);\r\n            transform: translateY(-4px) scale(1.02);\r\n        }\r\n\r\n        .contact-button.whatsapp {\r\n            background: linear-gradient(135deg, #25D366, #128C7E);\r\n            border: none;\r\n            color: #fff;\r\n            box-shadow: 0 4px 25px rgba(37, 211, 102, 0.25);\r\n        }\r\n\r\n        .contact-button.whatsapp:hover {\r\n            box-shadow: 0 8px 40px rgba(37, 211, 102, 0.35);\r\n            transform: translateY(-4px) scale(1.02);\r\n        }\r\n\r\n        .contact-button.whatsapp i {\r\n            color: #fff;\r\n        }\r\n\r\n        \/* ========== FOOTER ========== *\/\r\n        .footer {\r\n            background: rgba(10, 15, 30, 0.8);\r\n            backdrop-filter: blur(12px);\r\n            padding: 50px 0 35px;\r\n            text-align: center;\r\n            border-top: 1px solid rgba(0, 212, 255, 0.04);\r\n            margin-top: 20px;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        .footer .footer-logo {\r\n            font-family: 'Orbitron', sans-serif;\r\n            font-size: 1.2rem;\r\n            font-weight: 700;\r\n            background: linear-gradient(135deg, #fff, var(--cyan));\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            display: inline-block;\r\n            margin-bottom: 12px;\r\n        }\r\n\r\n        .footer p {\r\n            color: var(--text-muted);\r\n            font-size: 0.9rem;\r\n            opacity: 0.8;\r\n            line-height: 1.8;\r\n        }\r\n\r\n        .footer .footer-contact {\r\n            display: flex;\r\n            justify-content: center;\r\n            gap: 24px;\r\n            flex-wrap: wrap;\r\n            margin-top: 12px;\r\n            font-size: 0.85rem;\r\n        }\r\n\r\n        .footer .footer-contact a {\r\n            color: var(--text-muted);\r\n            text-decoration: none;\r\n            transition: var(--transition);\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: 8px;\r\n        }\r\n\r\n        .footer .footer-contact a:hover {\r\n            color: var(--cyan);\r\n        }\r\n\r\n        \/* ========== RESPONSIVE ========== *\/\r\n        @media (max-width: 992px) {\r\n            .policy-card {\r\n                padding: 45px 35px;\r\n                border-radius: 40px;\r\n            }\r\n            .policy-header h1 {\r\n                font-size: 2.8rem;\r\n            }\r\n            .section-title {\r\n                font-size: 1.4rem;\r\n            }\r\n            .section-content {\r\n                padding-left: 50px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .policy-card {\r\n                padding: 35px 25px;\r\n                border-radius: 32px;\r\n                margin: 20px 0 40px;\r\n            }\r\n            .policy-header h1 {\r\n                font-size: 2.2rem;\r\n            }\r\n            .policy-header .badge {\r\n                font-size: 0.65rem;\r\n                padding: 4px 16px;\r\n            }\r\n            .section-title {\r\n                font-size: 1.25rem;\r\n                gap: 12px;\r\n            }\r\n            .section-title .section-icon {\r\n                width: 42px;\r\n                height: 42px;\r\n                font-size: 1.2rem;\r\n            }\r\n            .section-content {\r\n                padding-left: 0;\r\n            }\r\n            .policy-list li {\r\n                padding: 8px 12px 8px 32px;\r\n                font-size: 0.95rem;\r\n            }\r\n            .contact-section {\r\n                padding: 30px 20px 28px;\r\n                border-radius: 30px;\r\n            }\r\n            .contact-options {\r\n                flex-direction: column;\r\n                align-items: center;\r\n                gap: 14px;\r\n            }\r\n            .contact-button {\r\n                width: 100%;\r\n                justify-content: center;\r\n                padding: 14px 24px;\r\n            }\r\n            .internal-links {\r\n                padding: 14px 18px;\r\n                border-radius: 30px;\r\n                font-size: 0.8rem;\r\n                flex-direction: column;\r\n                gap: 6px;\r\n            }\r\n            .internal-links .divider {\r\n                display: none;\r\n            }\r\n            .policy-image .icon-ring {\r\n                width: 90px;\r\n                height: 90px;\r\n            }\r\n            .policy-image .icon-ring img {\r\n                width: 42px;\r\n                height: 42px;\r\n            }\r\n            .footer {\r\n                padding: 35px 0 25px;\r\n            }\r\n            .footer .footer-contact {\r\n                flex-direction: column;\r\n                gap: 8px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .policy-card {\r\n                padding: 25px 18px;\r\n                border-radius: 24px;\r\n            }\r\n            .policy-header h1 {\r\n                font-size: 1.8rem;\r\n            }\r\n            .policy-header h1::after {\r\n                width: 40%;\r\n            }\r\n            .section-title {\r\n                font-size: 1.1rem;\r\n                gap: 10px;\r\n                flex-wrap: wrap;\r\n            }\r\n            .section-title .section-icon {\r\n                width: 36px;\r\n                height: 36px;\r\n                font-size: 1rem;\r\n            }\r\n            .warning-box {\r\n                padding: 14px 18px;\r\n                font-size: 0.9rem;\r\n            }\r\n            .last-updated {\r\n                font-size: 0.8rem;\r\n            }\r\n            .contact-section .section-title {\r\n                font-size: 1.1rem;\r\n            }\r\n        }\r\n\r\n        \/* ========== UTILITY ========== *\/\r\n        .text-glow {\r\n            text-shadow: 0 0 40px rgba(0, 212, 255, 0.1);\r\n        }\r\n\r\n        .relative {\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        \/* ========== SCROLLBAR ========== *\/\r\n        ::-webkit-scrollbar {\r\n            width: 8px;\r\n        }\r\n        ::-webkit-scrollbar-track {\r\n            background: var(--light-bg);\r\n        }\r\n        ::-webkit-scrollbar-thumb {\r\n            background: linear-gradient(180deg, var(--cyan), var(--magenta));\r\n            border-radius: 10px;\r\n        }\r\n        ::-webkit-scrollbar-thumb:hover {\r\n            background: linear-gradient(180deg, var(--accent-glow), var(--gold-glow));\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n    <!-- ===== CURSOR GLOW ===== -->\r\n    <div class=\"cursor-glow\" id=\"cursorGlow\"><\/div>\r\n\r\n    <!-- ===== THREE.JS BACKGROUND ===== -->\r\n    <div id=\"three-bg\"><\/div>\r\n\r\n    <!-- ===== MAIN ===== -->\r\n    <div class=\"main-wrapper\">\r\n\r\n        <div class=\"container\">\r\n\r\n            <!-- ===== POLICY CARD ===== -->\r\n            <div class=\"policy-card\" id=\"policyCard\">\r\n\r\n                <!-- Header -->\r\n                <div class=\"policy-header\">\r\n                    <div class=\"badge\"><i class=\"fas fa-shield-alt\" style=\"margin-right:8px;\"><\/i> Trust & Transparency<\/div>\r\n                    <h1>IPTV Refund Policy<\/h1>\r\n                    <div class=\"last-updated\">\r\n                        <i class=\"fas fa-sync-alt\" style=\"margin-right:6px;opacity:0.5;\"><\/i>\r\n                        Last Updated: <span class=\"highlight-date\">July 14, 2025<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Image -->\r\n                <div class=\"policy-image\">\r\n                    <div class=\"icon-ring\">\r\n                        <img decoding=\"async\" src=\"https:\/\/cdn-icons-png.flaticon.com\/512\/190\/190411.png\" alt=\"IPTV refund policy \u2013 money back guarantee\" \/>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Intro -->\r\n                <div class=\"policy-section\" style=\"--order:1;\">\r\n                    <div class=\"section-content\" style=\"padding-left:0;\">\r\n                        <p style=\"font-size:1.1rem;font-weight:400;color:var(--text-light);\">\r\n                            <strong style=\"color:#fff;\">DoneIPTV's IPTV refund policy<\/strong> is built on trust and customer satisfaction.\r\n                            We offer a <span class=\"highlight-text\">24\u2011hour test account<\/span> so you can evaluate our service risk\u2011free.\r\n                            If you're not completely satisfied, our <span class=\"highlight-text\">7\u2011day money back guarantee<\/span> ensures you can request a refund with ease.\r\n                            Read the full details below.\r\n                        <\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Quick Overview -->\r\n                <div class=\"policy-section\" style=\"--order:2;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-list-check\"><\/i><\/span>\r\n                        IPTV Refund Policy \u2013 Quick Overview\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p>Our IPTV refund policy is designed to be clear, fair, and customer\u2011friendly. Whether you're trying our service for the first time or you're a returning customer, we want you to feel confident in your purchase. Below you'll find everything you need to know about test accounts, refund eligibility, the request process, and what to expect after you submit a claim.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- 24-Hour Test -->\r\n                <div class=\"policy-section\" style=\"--order:3;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-clock\"><\/i><\/span>\r\n                        24-Hour Test Account\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p>We strongly believe in letting our service speak for itself. That's why we provide a <span class=\"highlight-text\">24\u2011hour test account<\/span> to every potential subscriber. This account is <span class=\"highlight-text\">completely free of charge<\/span> and gives you full access to our IPTV channels, streams, and features. Use this time to:<\/p>\r\n                        <ul class=\"policy-list\">\r\n                            <li>Check compatibility with your device and internet connection.<\/li>\r\n                            <li>Evaluate stream quality, buffering, and channel availability.<\/li>\r\n                            <li>Explore our channel list and on\u2011demand content.<\/li>\r\n                            <li>Confirm that the service meets your viewing expectations.<\/li>\r\n                        <\/ul>\r\n                        <p style=\"margin-top:12px;\">Once your test account expires, you can purchase a subscription with confidence. If you choose to subscribe, our refund policy applies from the date of purchase.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Refund Eligibility -->\r\n                <div class=\"policy-section\" style=\"--order:4;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-circle-check\"><\/i><\/span>\r\n                        Refund Eligibility &amp; Terms\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p>Our IPTV refund policy ensures that you are protected in the unlikely event that something goes wrong. To be eligible for a refund, you must meet the following criteria:<\/p>\r\n                        <ul class=\"policy-list\">\r\n                            <li>Your refund request must be submitted within <span class=\"highlight-text\">7 days<\/span> of the original purchase date.<\/li>\r\n                            <li>You must have used the <span class=\"highlight-text\">24\u2011hour test account<\/span> before purchasing a subscription.<\/li>\r\n                            <li>Refunds are granted if the service is non\u2011functional due to a technical issue on our end that we cannot resolve.<\/li>\r\n                            <li>If you haven't received a refund, first check your bank account again. Then contact your credit card company or bank, as refunds may take time to post.<\/li>\r\n                            <li>If you still do not see your refund after 10 business days, please contact us at <a href=\"mailto:Doneiptv00@Gmail.Com\" class=\"highlight-link\">Doneiptv00@Gmail.Com<\/a> for assistance.<\/li>\r\n                        <\/ul>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- How to Request -->\r\n                <div class=\"policy-section\" style=\"--order:5;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-paper-plane\"><\/i><\/span>\r\n                        How to Request a Refund\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p>Requesting a refund under our IPTV refund policy is straightforward. Follow these steps to ensure your request is processed quickly:<\/p>\r\n                        <ul class=\"policy-list\">\r\n                            <li><strong>Step 1:<\/strong> Contact us within <span class=\"highlight-text\">7 days<\/span> of your purchase via email at <a href=\"mailto:Doneiptv00@Gmail.Com\" class=\"highlight-link\">Doneiptv00@Gmail.Com<\/a>.<\/li>\r\n                            <li><strong>Step 2:<\/strong> Include your full name, email address, order number, and a detailed description of your issue.<\/li>\r\n                            <li><strong>Step 3:<\/strong> Our support team will review your case and respond within <span class=\"highlight-text\">24\u201148 hours<\/span>.<\/li>\r\n                            <li><strong>Step 4:<\/strong> Once approved, your refund will be processed within <span class=\"highlight-text\">5\u201310 business days<\/span>, depending on your payment provider and bank processing times.<\/li>\r\n                        <\/ul>\r\n                        <p style=\"margin-top:12px;\">We aim to make the refund process as smooth as possible. If you have any questions along the way, our support team is here to help.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Chargeback -->\r\n                <div class=\"policy-section\" style=\"--order:6;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-ban\"><\/i><\/span>\r\n                        Chargeback Policy\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <div class=\"warning-box\">\r\n                            Filing a chargeback without contacting our support team first may lead to <strong>permanent account suspension<\/strong> and could delay any potential refund. We strongly encourage you to reach out to us directly before initiating a chargeback through your bank or credit card provider. This allows us to resolve your issue promptly and ensures you receive the best possible service.\r\n                        <\/div>\r\n                        <p style=\"margin-top:14px;\">If you have an unresolved issue, please give us the opportunity to make it right. We value every customer and are committed to finding a fair solution.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Policy Updates -->\r\n                <div class=\"policy-section\" style=\"--order:7;\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-rotate\"><\/i><\/span>\r\n                        Policy Updates &amp; Changes\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p>We may update this IPTV refund policy from time to time to reflect changes in our practices, legal requirements, or customer feedback. Any updates will be posted on this page with a revised effective date. We encourage you to review this policy periodically to stay informed about how we protect your rights.<\/p>\r\n                        <p style=\"margin-top:10px;\">If we make material changes to this policy, we will notify you via email or through a notice on our website. Your continued use of our service after any changes constitutes your acceptance of the updated policy.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Internal Links -->\r\n                <div class=\"internal-links\">\r\n                    <span class=\"label\"><i class=\"fas fa-link\"><\/i> Useful pages:<\/span>\r\n                    <a href=\"https:\/\/doneiptv.com\/iptv-pricing-subscription-plans\/\">View Pricing<\/a>\r\n                    <span class=\"divider\">|<\/span>\r\n                    <a href=\"https:\/\/doneiptv.com\/iptv-installation-guide\/\">Installation Guide<\/a>\r\n                    <span class=\"divider\">|<\/span>\r\n                    <a href=\"https:\/\/doneiptv.com\/iptv-channels-list\/\">Channel List<\/a>\r\n                <\/div>\r\n\r\n                <!-- Contact -->\r\n                <div class=\"contact-section\">\r\n                    <h2 class=\"section-title\">\r\n                        <span class=\"section-icon\"><i class=\"fas fa-headset\"><\/i><\/span>\r\n                        Contact Us\r\n                    <\/h2>\r\n                    <div class=\"section-content\">\r\n                        <p class=\"contact-description\">Have questions about our IPTV refund policy? Need help with a refund request? Reach out to our support team anytime \u2014 we're here to help.<\/p>\r\n                        <div class=\"contact-options\">\r\n                            <a href=\"mailto:Doneiptv00@Gmail.Com\" class=\"contact-button email\">\r\n                                <i class=\"fas fa-envelope\"><\/i> Doneiptv00@Gmail.Com\r\n                            <\/a>\r\n                            <a href=\"https:\/\/wa.me\/447367062287\" class=\"contact-button whatsapp\" target=\"_blank\" rel=\"noopener\">\r\n                                <i class=\"fab fa-whatsapp\"><\/i> +44 7367 062287\r\n                            <\/a>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n            <\/div>\r\n            <!-- \/policy-card -->\r\n\r\n        <\/div>\r\n        <!-- \/container -->\r\n\r\n        <!-- ===== FOOTER ===== -->\r\n        <footer class=\"footer\">\r\n            <div class=\"container\">\r\n                <div class=\"footer-logo\">DoneIPTV<\/div>\r\n                <p>\u00a9 2025 DoneIPTV \u2014 Premium IPTV Streaming Service. All Rights Reserved.<\/p>\r\n                <div class=\"footer-contact\">\r\n                    <a href=\"mailto:Doneiptv00@Gmail.Com\"><i class=\"fas fa-envelope\"><\/i> Doneiptv00@Gmail.Com<\/a>\r\n                    <a href=\"https:\/\/wa.me\/447367062287\" target=\"_blank\" rel=\"noopener\"><i class=\"fab fa-whatsapp\"><\/i> +44 7367 062287<\/a>\r\n                <\/div>\r\n            <\/div>\r\n        <\/footer>\r\n\r\n    <\/div>\r\n    <!-- \/main-wrapper -->\r\n\r\n    <!-- ============================================================\r\n    THREE.JS PARTICLE SWARM \u2013 BREATHING TESSERACT\r\n    ============================================================ -->\r\n    <script type=\"module\">\r\n        import * as THREE from 'three';\r\n        import { EffectComposer } from 'three\/addons\/postprocessing\/EffectComposer.js';\r\n        import { RenderPass } from 'three\/addons\/postprocessing\/RenderPass.js';\r\n        import { UnrealBloomPass } from 'three\/addons\/postprocessing\/UnrealBloomPass.js';\r\n\r\n        \/\/ \u2500\u2500\u2500 CONFIG \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\r\n        const COUNT = 18000;\r\n        const SPEED_MULT = 0.9;\r\n\r\n        \/\/ \u2500\u2500\u2500 SCENE \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\u2500\u2500\r\n        const scene = new THREE.Scene();\r\n        scene.background = new THREE.Color(0x0a0f1e);\r\n\r\n        const camera = new THREE.PerspectiveCamera(55, window.innerWidth \/ window.innerHeight, 0.1, 2000);\r\n        camera.position.set(0, 0, 110);\r\n\r\n        const renderer = new THREE.WebGLRenderer({\r\n            antialias: true,\r\n            alpha: false,\r\n            powerPreference: \"high-performance\"\r\n        });\r\n        renderer.setSize(window.innerWidth, window.innerHeight);\r\n        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\r\n        renderer.toneMapping = THREE.ACESFilmicToneMapping;\r\n        renderer.toneMappingExposure = 1.2;\r\n\r\n        \/\/ attach to the bg container\r\n        const bgContainer = document.getElementById('three-bg');\r\n        bgContainer.appendChild(renderer.domElement);\r\n\r\n        \/\/ \u2500\u2500\u2500 POST PROCESSING \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\r\n        const composer = new EffectComposer(renderer);\r\n        composer.addPass(new RenderPass(scene, camera));\r\n\r\n        const bloomPass = new UnrealBloomPass(\r\n            new THREE.Vector2(window.innerWidth, window.innerHeight),\r\n            1.6, \/\/ strength\r\n            0.35, \/\/ radius\r\n            0.0 \/\/ threshold\r\n        );\r\n        composer.addPass(bloomPass);\r\n\r\n        \/\/ \u2500\u2500\u2500 INSTANCED MESH \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\r\n        const geometry = new THREE.TetrahedronGeometry(0.28);\r\n        const material = new THREE.MeshBasicMaterial({ color: 0xffffff });\r\n\r\n        const instancedMesh = new THREE.InstancedMesh(geometry, material, COUNT);\r\n        instancedMesh.instanceMatrix.setUsage(THREE.DynamicDrawUsage);\r\n        scene.add(instancedMesh);\r\n\r\n        \/\/ \u2500\u2500\u2500 DATA \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\u2500\u2500\r\n        const positions = [];\r\n        const color = new THREE.Color();\r\n\r\n        for (let i = 0; i < COUNT; i++) {\r\n            positions.push(new THREE.Vector3(\r\n                (Math.random() - 0.5) * 100,\r\n                (Math.random() - 0.5) * 100,\r\n                (Math.random() - 0.5) * 100\r\n            ));\r\n            instancedMesh.setColorAt(i, color.setHex(0x00ff88));\r\n        }\r\n\r\n        \/\/ \u2500\u2500\u2500 CONTROLS STUBS (matching the 4D tesseract logic) \u2500\u2500\r\n        const PARAMS = { rotSpeed: 0.8, breathSpeed: 1.2, scale: 50, fuzz: 0.15 };\r\n        const addControl = (id) => PARAMS[id] !== undefined ? PARAMS[id] : 0;\r\n        const setInfo = () => {};\r\n        const annotate = () => {};\r\n\r\n        \/\/ \u2500\u2500\u2500 ANIMATION LOOP \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\r\n        const clock = new THREE.Clock();\r\n\r\n        function animate() {\r\n            requestAnimationFrame(animate);\r\n\r\n            const delta = clock.getDelta();\r\n            const time = clock.getElapsedTime() * SPEED_MULT;\r\n\r\n            \/\/ \u2500\u2500 SWARM LOGIC (4D Hypercube \/ Breathing Tesseract) \u2500\u2500\r\n            const count = COUNT;\r\n            for (let i = 0; i < COUNT; i++) {\r\n                const rotSpeed = addControl(\"rotSpeed\");\r\n                const breathSpeed = addControl(\"breathSpeed\");\r\n                const scale = addControl(\"scale\");\r\n                const fuzz = addControl(\"fuzz\");\r\n\r\n                const edges = 32;\r\n                const particlesPerEdge = Math.max(1, Math.floor(count \/ edges));\r\n                const edgeIndex = Math.floor(i \/ particlesPerEdge) % edges;\r\n                const edgeT = (i % particlesPerEdge) \/ particlesPerEdge;\r\n\r\n                const v = (edgeT * 2.0) - 1.0;\r\n\r\n                const axis = edgeIndex % 4;\r\n                const fixedBits = Math.floor(edgeIndex \/ 4);\r\n                const bit1 = (fixedBits & 1) ? 1.0 : -1.0;\r\n                const bit2 = (fixedBits & 2) ? 1.0 : -1.0;\r\n                const bit3 = (fixedBits & 4) ? 1.0 : -1.0;\r\n\r\n                let x4 = 0.0,\r\n                    y4 = 0.0,\r\n                    z4 = 0.0,\r\n                    w4 = 0.0;\r\n\r\n                if (axis === 0) { x4 = v;\r\n                    y4 = bit1;\r\n                    z4 = bit2;\r\n                    w4 = bit3; } else if (axis === 1) { x4 = bit1;\r\n                    y4 = v;\r\n                    z4 = bit2;\r\n                    w4 = bit3; } else if (axis === 2) { x4 = bit1;\r\n                    y4 = bit2;\r\n                    z4 = v;\r\n                    w4 = bit3; } else { x4 = bit1;\r\n                    y4 = bit2;\r\n                    z4 = bit3;\r\n                    w4 = v; }\r\n\r\n                const breath = 1.0 + 0.3 * Math.sin(time * breathSpeed + i * 0.0001);\r\n                x4 *= breath;\r\n                y4 *= breath;\r\n                z4 *= breath;\r\n                w4 *= breath;\r\n\r\n                const a1 = time * rotSpeed;\r\n                const c1 = Math.cos(a1),\r\n                    s1 = Math.sin(a1);\r\n                const x_1 = x4 * c1 - w4 * s1;\r\n                const w_1 = x4 * s1 + w4 * c1;\r\n\r\n                const a2 = time * rotSpeed * 0.618;\r\n                const c2 = Math.cos(a2),\r\n                    s2 = Math.sin(a2);\r\n                const y_1 = y4 * c2 - z4 * s2;\r\n                const z_1 = y4 * s2 + z4 * c2;\r\n\r\n                const a3 = time * rotSpeed * 0.382;\r\n                const c3 = Math.cos(a3),\r\n                    s3 = Math.sin(a3);\r\n                const X_f = x_1 * c3 - y_1 * s3;\r\n                const Y_f = x_1 * s3 + y_1 * c3;\r\n                const Z_f = z_1;\r\n                const W_f = w_1;\r\n\r\n                const pX = X_f + Math.sin(i * 1.3 + time) * fuzz;\r\n                const pY = Y_f + Math.cos(i * 1.7 - time) * fuzz;\r\n                const pZ = Z_f + Math.sin(i * 2.1 + time * 1.2) * fuzz;\r\n\r\n                const projDist = 4.0;\r\n                const wFactor = 1.0 \/ (projDist - W_f + 0.0001);\r\n\r\n                const finalX = pX * wFactor * scale;\r\n                const finalY = pY * wFactor * scale;\r\n                const finalZ = pZ * wFactor * scale;\r\n\r\n                const target = new THREE.Vector3(finalX, finalY, finalZ);\r\n\r\n                \/\/ Iridescent color mapping \u2013 cyan\/magenta\/gold\r\n                const hue = 0.55 + W_f * 0.18 + (i \/ count) * 0.12;\r\n                const lum = 0.25 + wFactor * 0.55;\r\n                color.setHSL(Math.abs(hue % 1.0), 0.85, Math.min(Math.max(lum, 0.1), 1.0));\r\n\r\n                \/\/ LERP & UPDATE\r\n                positions[i].lerp(target, 0.1);\r\n\r\n                const dummy = new THREE.Object3D();\r\n                dummy.position.copy(positions[i]);\r\n                dummy.updateMatrix();\r\n                instancedMesh.setMatrixAt(i, dummy.matrix);\r\n                instancedMesh.setColorAt(i, color);\r\n            }\r\n\r\n            instancedMesh.instanceMatrix.needsUpdate = true;\r\n            instancedMesh.instanceColor.needsUpdate = true;\r\n\r\n            \/\/ \u2500\u2500 subtle camera drift \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\r\n            const orbitRadius = 8;\r\n            const orbitSpeed = 0.04;\r\n            const cx = Math.sin(time * orbitSpeed) * orbitRadius;\r\n            const cz = Math.cos(time * orbitSpeed) * orbitRadius;\r\n            camera.position.x = cx;\r\n            camera.position.z = 110 + cz;\r\n            camera.lookAt(0, 0, 0);\r\n\r\n            composer.render();\r\n        }\r\n\r\n        animate();\r\n\r\n        \/\/ \u2500\u2500\u2500 RESIZE \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\r\n        window.addEventListener('resize', () => {\r\n            const w = window.innerWidth;\r\n            const h = window.innerHeight;\r\n            camera.aspect = w \/ h;\r\n            camera.updateProjectionMatrix();\r\n            renderer.setSize(w, h);\r\n            composer.setSize(w, h);\r\n        });\r\n    <\/script>\r\n\r\n    <!-- ============================================================\r\n    INTERACTIONS & SCROLL REVEAL\r\n    ============================================================ -->\r\n    <script>\r\n        \/\/ ===== CURSOR GLOW =====\r\n        (function cursorGlow() {\r\n            const glow = document.getElementById('cursorGlow');\r\n            let x = 0,\r\n                y = 0,\r\n                targetX = 0,\r\n                targetY = 0;\r\n\r\n            document.addEventListener('mousemove', (e) => {\r\n                targetX = e.clientX;\r\n                targetY = e.clientY;\r\n            });\r\n\r\n            function animateCursor() {\r\n                x += (targetX - x) * 0.08;\r\n                y += (targetY - y) * 0.08;\r\n                glow.style.transform = `translate(${x - 150}px, ${y - 150}px)`;\r\n                requestAnimationFrame(animateCursor);\r\n            }\r\n            animateCursor();\r\n\r\n            \/\/ Hover effect on interactive elements\r\n            const interactives = document.querySelectorAll('a, .contact-button, .policy-list li, .warning-box, .policy-card');\r\n            interactives.forEach(el => {\r\n                el.addEventListener('mouseenter', () => glow.classList.add('active'));\r\n                el.addEventListener('mouseleave', () => glow.classList.remove('active'));\r\n            });\r\n        })();\r\n\r\n        \/\/ ===== SCROLL REVEAL (Intersection Observer) =====\r\n        (function scrollReveal() {\r\n            const sections = document.querySelectorAll('.policy-section');\r\n            const observer = new IntersectionObserver((entries) => {\r\n                entries.forEach(entry => {\r\n                    if (entry.isIntersecting) {\r\n                        entry.target.style.animationPlayState = 'running';\r\n                    }\r\n                });\r\n            }, { threshold: 0.15, rootMargin: '0px 0px -40px 0px' });\r\n\r\n            sections.forEach((s, i) => {\r\n                s.style.animationPlayState = 'paused';\r\n                s.style.opacity = '0';\r\n                \/\/ Re-apply animation with delay\r\n                s.style.animation = `sectionReveal 0.7s cubic-bezier(0.23,1,0.32,1) forwards`;\r\n                s.style.animationDelay = `${(i + 1) * 0.08 + 0.15}s`;\r\n                s.style.animationPlayState = 'paused';\r\n                observer.observe(s);\r\n            });\r\n\r\n            \/\/ Force first sections to play immediately if visible\r\n            setTimeout(() => {\r\n                sections.forEach(s => {\r\n                    const rect = s.getBoundingClientRect();\r\n                    if (rect.top < window.innerHeight) {\r\n                        s.style.animationPlayState = 'running';\r\n                    }\r\n                });\r\n            }, 300);\r\n\r\n            \/\/ Re-check on scroll\r\n            document.addEventListener('scroll', () => {\r\n                sections.forEach(s => {\r\n                    const rect = s.getBoundingClientRect();\r\n                    if (rect.top < window.innerHeight - 80 && rect.bottom > 0) {\r\n                        s.style.animationPlayState = 'running';\r\n                    }\r\n                });\r\n            });\r\n        })();\r\n\r\n        \/\/ ===== CARD TILT EFFECT =====\r\n        (function cardTilt() {\r\n            const card = document.getElementById('policyCard');\r\n            if (!card) return;\r\n\r\n            card.addEventListener('mousemove', (e) => {\r\n                const rect = card.getBoundingClientRect();\r\n                const x = (e.clientX - rect.left) \/ rect.width - 0.5;\r\n                const y = (e.clientY - rect.top) \/ rect.height - 0.5;\r\n                const rotateX = y * -3;\r\n                const rotateY = x * 3;\r\n                card.style.transform =\r\n                    `perspective(1200px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) translateY(-4px) scale(1.005)`;\r\n            });\r\n\r\n            card.addEventListener('mouseleave', () => {\r\n                card.style.transform = 'perspective(1200px) rotateX(0deg) rotateY(0deg) translateY(0) scale(1)';\r\n            });\r\n        })();\r\n    <\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>IPTV Refund Policy \u2013 7-Day Money Back Guarantee | DoneIPTV Trust &#038; Transparency IPTV Refund Policy Last Updated: July 14, 2025 DoneIPTV&#8217;s IPTV refund policy is built on trust and customer satisfaction. We offer a 24\u2011hour test account so you can evaluate our service risk\u2011free. If you&#8217;re not completely satisfied, our 7\u2011day money back guarantee [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2981,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-307","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/pages\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":63,"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/pages\/307\/revisions"}],"predecessor-version":[{"id":5930,"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/pages\/307\/revisions\/5930"}],"up":[{"embeddable":true,"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/pages\/2981"}],"wp:attachment":[{"href":"https:\/\/doneiptv.com\/done\/wp-json\/wp\/v2\/media?parent=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}