<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link
        href="https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700&family=DM+Sans:wght@300;400;500&display=swap"
        rel="stylesheet" />

    <title>iPhoneApps ReviewOnline.com | App Review Domain for Sale </title>

    <meta name="description"
        content="Buy iphoneappsreviewonline.com for sale, a premium iPhone app review domain ideal for tech blogs, app rankings, mobile news, reviews, and app discovery sites." />

    <meta name="keywords"
        content="iphoneappsreviewonline.com for sale, iPhone app review domain, mobile app review site" />

    <link rel="canonical" href="https://iphoneappsreviewonline.com" />

    <meta name="robots" content="index, follow" />

    <meta name="google-site-verification" content="ALpcyrZXf_uPIwOR8LwuZzuzlH6yDTULZepeOk8sbhc" />

    <!-- intl-tel-input: flag + country code dropdown -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@17.0.19/build/css/intlTelInput.css" />

    <!-- Google reCAPTCHA v3 -->
    <script src="https://www.google.com/recaptcha/api.js?render=6LfExbwrAAAAAGkxZXqn7jzjF8dKL5mQ2-qKIccO"></script>

    <script type="application/ld+json">
        {"@context":"https://schema.org","@type":"Product","name":"iphoneappsreviewonline.com","description":"Premium tech review domain for iPhone apps and mobile app reviews.","offers":{"@type":"Offer","availability":"https://schema.org/InStock","priceCurrency":"USD","seller":{"@type":"Organization","name":"Dot Com Infoway"}}}
    </script>
    <script type="application/ld+json">
    {"@context":"https://schema.org","@type":"WebSite","name":"iPhone Apps Review Online","description":"Technology and app review platform focused on iPhone apps, app rankings, and mobile technology news."}
    </script>
    <style>
    *,
    *::before,
    *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }

    :root {
        --bg: #050810;
        --surface: #0d1220;
        --border: rgba(255, 255, 255, 0.07);
        --accent: #00e5a0;
        --accent2: #0088ff;
        --text: #e8eaf0;
        --muted: #6b7280;
        --font-display: "Orbitron", sans-serif;
        --font-body: "DM Sans", sans-serif;
    }

    html {
        scroll-behavior: smooth;
    }

    body {
        background: var(--bg);
        color: var(--text);
        font-family: var(--font-body);
        min-height: 100vh;
        overflow-x: hidden;
    }

    body::before {
        content: "";
        position: fixed;
        inset: 0;
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
        pointer-events: none;
        z-index: 0;
        opacity: 0.4;
    }

    .blob {
        position: fixed;
        border-radius: 50%;
        filter: blur(100px);
        pointer-events: none;
        z-index: 0;
    }

    .blob-1 {
        width: 600px;
        height: 600px;
        background: radial-gradient(circle,
                rgba(0, 229, 160, 0.12),
                transparent 70%);
        top: -150px;
        left: -150px;
        animation: drift1 12s ease-in-out infinite alternate;
    }

    .blob-2 {
        width: 500px;
        height: 500px;
        background: radial-gradient(circle,
                rgba(0, 136, 255, 0.1),
                transparent 70%);
        bottom: -100px;
        right: -100px;
        animation: drift2 15s ease-in-out infinite alternate;
    }

    @keyframes drift1 {
        to {
            transform: translate(60px, 40px);
        }
    }

    @keyframes drift2 {
        to {
            transform: translate(-40px, -60px);
        }
    }

    /* Fix reCAPTCHA badge position and z-index */
    .grecaptcha-badge {
        bottom: 80px !important;
        z-index: 10000 !important;
    }

    /* ── Nav ── */
    nav {
        position: relative;
        z-index: 10;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 20px 48px;
        border-bottom: 1px solid var(--border);
        gap: 12px;
        /* FIX: gap prevents overlap when items get close */
    }

    .nav-logo {
        font-family: var(--font-display);
        /* FIX: was 1.25rem — reduced + allow shrink so pill doesn't get pushed off */
        font-size: clamp(0.7rem, 3vw, 1.1rem);
        font-weight: 700;
        background: linear-gradient(135deg, var(--accent), var(--accent2));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        white-space: nowrap;
        /* FIX: keep on one line */
        min-width: 0;
        /* FIX: allow flex shrink */
    }

    .nav-pill {
        font-size: 0.7rem;
        font-weight: 500;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--accent);
        border: 1px solid rgba(0, 229, 160, 0.3);
        padding: 5px 12px;
        border-radius: 999px;
        background: rgba(0, 229, 160, 0.05);
        white-space: nowrap;
        flex-shrink: 0;
        /* FIX: pill never wraps or shrinks */
    }

    /* ── Hero ── */
    .hero {
        position: relative;
        z-index: 1;
        min-height: 85vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 80px 24px 60px;
    }

    .hero-badge {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 0.78rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--muted);
        margin-bottom: 32px;
        animation: fadeUp 0.6s ease both;
    }

    .hero-badge::before,
    .hero-badge::after {
        content: "";
        flex: 1;
        width: 40px;
        height: 1px;
        background: var(--border);
    }

    .hero-domain {
        font-family: var(--font-display);
        /*
        FIX: "iphoneappsreviewonline.com" is 16 chars in Orbitron (wide font).
        Old clamp(3.5rem, 10vw, 8rem) = 3.5rem minimum = ~56px → overflows on 375px.
        New: clamp(1.5rem, 5.5vw, 6rem) scales safely down to small screens.
        word-break ensures it never escapes its container.
      */
        font-size: clamp(1.5rem, 5.5vw, 6rem);
        font-weight: 800;
        line-height: 1.1;
        letter-spacing: -0.02em;
        word-break: break-word;
        /* FIX: wraps gracefully if still too wide */
        overflow-wrap: break-word;
        background: linear-gradient(135deg,
                #fff 30%,
                var(--accent) 70%,
                var(--accent2));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        animation: fadeUp 0.6s 0.1s ease both;
        max-width: 100%;
        /* FIX: contained within hero padding */
    }

    .hero-tag {
        font-size: clamp(0.95rem, 2.5vw, 1.3rem);
        color: var(--muted);
        margin-top: 20px;
        font-weight: 300;
        max-width: 540px;
        line-height: 1.6;
        animation: fadeUp 0.6s 0.2s ease both;
    }

    .hero-price-block {
        margin-top: 40px;
        display: flex;
        align-items: center;
        gap: 16px;
        flex-wrap: wrap;
        justify-content: center;
        animation: fadeUp 0.6s 0.3s ease both;
    }

    .price-label {
        font-size: 0.8rem;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: var(--muted);
    }

    .price-divider {
        width: 1px;
        height: 32px;
        background: var(--border);
    }

    .price-tag {
        font-family: var(--font-display);
        font-size: 1.6rem;
        font-weight: 800;
        color: var(--accent);
    }

    .hero-cta {
        margin-top: 44px;
        display: flex;
        gap: 14px;
        flex-wrap: wrap;
        justify-content: center;
        animation: fadeUp 0.6s 0.4s ease both;
    }

    /* ── Buttons ── */
    .btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        background: linear-gradient(135deg, var(--accent), #00c88a);
        color: #050810;
        font-family: var(--font-body);
        font-weight: 600;
        font-size: 0.95rem;
        padding: 14px 32px;
        border-radius: 10px;
        text-decoration: none;
        border: none;
        cursor: pointer;
        transition:
            transform 0.2s,
            box-shadow 0.2s;
        box-shadow: 0 0 30px rgba(0, 229, 160, 0.25);
    }

    .btn-primary:hover {
        transform: translateY(-2px);
        box-shadow: 0 0 50px rgba(0, 229, 160, 0.4);
    }

    .btn-primary:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        transform: none;
    }

    .btn-ghost {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        background: transparent;
        color: var(--text);
        font-family: var(--font-body);
        font-weight: 500;
        font-size: 0.95rem;
        padding: 13px 28px;
        border-radius: 10px;
        border: 1px solid var(--border);
        cursor: pointer;
        text-decoration: none;
        transition:
            border-color 0.2s,
            background 0.2s;
    }

    .btn-ghost:hover {
        border-color: rgba(255, 255, 255, 0.2);
        background: rgba(255, 255, 255, 0.03);
    }

    /* ── Stats ──
       FIX: was min-width:160px with 4 columns → on 375px each needs 94px minimum
       which causes horizontal scroll. Changed to min-width:120px + 2-col grid on mobile.
    */
    .stats {
        position: relative;
        z-index: 1;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        border-top: 1px solid var(--border);
    }

    .stat {
        flex: 1;
        min-width: 120px;
        /* FIX: was 160px */
        padding: 28px 16px;
        text-align: center;
        border-right: 1px solid var(--border);
    }

    .stat:last-child {
        border-right: none;
    }

    .stat-num {
        font-family: var(--font-display);
        /* FIX: was 1.6rem — "Virudhunagar" in Orbitron at 1.6rem overflows on mobile */
        font-size: clamp(0.75rem, 2.5vw, 1.4rem);
        font-weight: 800;
        background: linear-gradient(135deg, var(--accent), var(--accent2));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        word-break: break-word;
        /* FIX: long words like "Virudhunagar" wrap safely */
    }

    .stat-label {
        font-size: 0.75rem;
        color: var(--muted);
        margin-top: 4px;
        line-height: 1.4;
    }

    /* ── Features ── */
    .features {
        position: relative;
        z-index: 1;
        /* FIX: was padding 80px 48px — on mobile 48px side = only 279px content on 375px */
        padding: 80px 48px;
        max-width: 1100px;
        margin: 0 auto;
    }

    .section-label {
        font-size: 0.75rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--accent);
        margin-bottom: 16px;
    }

    .section-title {
        font-family: var(--font-display);
        font-size: clamp(1.2rem,
                3.5vw,
                2.2rem);
        /* FIX: was fixed clamp with 2.8rem max */
        font-weight: 800;
        line-height: 1.25;
        margin-bottom: 56px;
    }

    .cards {
        display: grid;
        grid-template-columns: repeat(auto-fit,
                minmax(260px, 1fr));
        /* FIX: was 260px min */
        gap: 16px;
    }

    .card {
        background: var(--surface);
        border: 1px solid var(--border);
        border-radius: 16px;
        padding: 28px;
        transition:
            border-color 0.2s,
            transform 0.2s;
    }

    .card:hover {
        border-color: rgba(0, 229, 160, 0.25);
        transform: translateY(-3px);
    }

    .card-icon {
        width: 44px;
        height: 44px;
        border-radius: 10px;
        background: linear-gradient(135deg,
                rgba(0, 229, 160, 0.15),
                rgba(0, 136, 255, 0.1));
        border: 1px solid rgba(0, 229, 160, 0.15);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.4rem;
        margin-bottom: 18px;
    }

    .card-title {
        font-family: var(--font-display);
        font-size: 0.95rem;
        font-weight: 700;
        margin-bottom: 8px;
    }

    .card-text {
        font-size: 0.88rem;
        color: var(--muted);
        line-height: 1.65;
    }

    /* ── Offer form ── */
    .offer-section {
        position: relative;
        z-index: 1;
        padding: 80px 24px;
        display: flex;
        justify-content: center;
    }

    .offer-card {
        background: var(--surface);
        border: 1px solid var(--border);
        border-radius: 24px;
        padding: 52px 48px;
        width: 100%;
        max-width: 560px;
    }

    .offer-card h2 {
        font-family: var(--font-display);
        font-size: 1.6rem;
        font-weight: 800;
        margin-bottom: 6px;
    }

    .offer-card>p {
        font-size: 0.9rem;
        color: var(--muted);
        margin-bottom: 36px;
    }

    .form-group {
        margin-bottom: 18px;
    }

    .form-group label {
        display: block;
        font-size: 0.8rem;
        font-weight: 500;
        letter-spacing: 0.05em;
        color: var(--muted);
        margin-bottom: 8px;
        text-transform: uppercase;
    }

    .form-group input,
    .form-group textarea {
        width: 100%;
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid var(--border);
        border-radius: 10px;
        color: var(--text);
        font-family: var(--font-body);
        font-size: 0.95rem;
        padding: 13px 16px;
        outline: none;
        transition:
            border-color 0.2s,
            box-shadow 0.2s;
    }

    .form-group input:focus,
    .form-group textarea:focus {
        border-color: rgba(0, 229, 160, 0.4);
        box-shadow: 0 0 0 3px rgba(0, 229, 160, 0.07);
    }

    .form-group textarea {
        resize: vertical;
        min-height: 100px;
    }

    .form-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px;
    }

    .form-submit {
        width: 100%;
        margin-top: 10px;
        padding: 15px;
        font-size: 1rem;
        justify-content: center;
    }

    .hp-field {
        position: absolute;
        left: -9999px;
        top: -9999px;
        opacity: 0;
        height: 0;
        overflow: hidden;
    }

    /* ── intl-tel-input dark theme overrides ── */
    .iti {
        width: 100%;
    }

    .iti__tel-input {
        width: 100%;
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid var(--border);
        border-radius: 10px;
        color: var(--text);
        font-family: var(--font-body);
        font-size: 0.95rem;
        padding: 13px 16px 13px 90px;
        outline: none;
        transition: border-color 0.2s, box-shadow 0.2s;
    }

    .iti__tel-input:focus {
        border-color: rgba(0, 229, 160, 0.4);
        box-shadow: 0 0 0 3px rgba(0, 229, 160, 0.07);
    }

    /* Flag button */
    .iti__flag-container {
        padding: 0 4px;
    }

    .iti__selected-flag {
        background: transparent !important;
        border-radius: 8px 0 0 8px;
        padding: 0 10px;
        gap: 6px;
    }

    .iti__selected-flag:hover,
    .iti__selected-flag:focus {
        background: rgba(255, 255, 255, 0.06) !important;
    }

    .iti__selected-dial-code {
        color: var(--text);
        font-family: var(--font-body);
        font-size: 0.88rem;
    }

    .iti__arrow {
        border-top-color: var(--muted);
    }

    .iti__arrow--up {
        border-bottom-color: var(--accent);
    }

    /* ── Dropdown container ── */
    .iti__country-list {
        background: #0d1220 !important;
        border: 1px solid rgba(0, 229, 160, 0.18) !important;
        border-radius: 12px !important;
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(0, 229, 160, 0.06) !important;
        color: var(--text);
        max-height: 260px;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 0 !important;
        margin-top: 6px !important;
        scrollbar-width: thin;
        scrollbar-color: rgba(0, 229, 160, 0.2) transparent;
    }

    .iti__country-list::-webkit-scrollbar {
        width: 4px;
    }

    .iti__country-list::-webkit-scrollbar-track {
        background: transparent;
    }

    .iti__country-list::-webkit-scrollbar-thumb {
        background: rgba(0, 229, 160, 0.25);
        border-radius: 4px;
    }

    /* ── Search input — !important needed to beat library defaults ── */
    .iti__search-input {
        display: block !important;
        width: calc(100% - 20px) !important;
        margin: 10px !important;
        padding: 10px 14px !important;
        background: rgba(255, 255, 255, 0.06) !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        border-radius: 8px !important;
        color: #060a14 !important;
        /* explicit hex — var() can fail in some browsers */
        font-family: 'DM Sans', sans-serif !important;
        font-size: 0.88rem !important;
        outline: none !important;
        box-sizing: border-box !important;
        transition: border-color 0.2s !important;
        caret-color: #00e5a0 !important;
    }

    .iti__search-input::placeholder {
        color: #6b7280 !important;
        opacity: 1 !important;
    }

    .iti__search-input:focus {
        border-color: rgba(0, 229, 160, 0.5) !important;
        background: rgba(0, 229, 160, 0.05) !important;
        box-shadow: 0 0 0 3px rgba(0, 229, 160, 0.07) !important;
    }

    /* ── Country rows ── */
    .iti__country {
        padding: 9px 14px !important;
        display: flex;
        align-items: center;
        gap: 10px;
        transition: background 0.12s;
    }

    .iti__country:hover {
        background: rgba(0, 229, 160, 0.07) !important;
    }

    .iti__country.iti__highlight {
        background: rgba(0, 229, 160, 0.12) !important;
    }

    .iti__country-name {
        color: #e8eaf0 !important;
        font-size: 0.88rem;
        font-family: 'DM Sans', sans-serif;
    }

    .iti__dial-code {
        color: #6b7280 !important;
        font-size: 0.82rem;
        margin-left: auto;
    }

    /* Divider between preferred + rest */
    .iti__divider {
        border: none !important;
        border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
        margin: 4px 0 !important;
    }

    /* ── Offer field: amount + currency toggle ── */
    .offer-row {
        display: flex;
        gap: 0;
        border: 1px solid var(--border);
        border-radius: 10px;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.04);
        transition: border-color 0.2s, box-shadow 0.2s;
    }

    .offer-row:focus-within {
        border-color: rgba(0, 229, 160, 0.4);
        box-shadow: 0 0 0 3px rgba(0, 229, 160, 0.07);
    }

    #f_offer {
        flex: 1;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        outline: none;
        color: var(--text);
        font-family: var(--font-body);
        font-size: 0.95rem;
        padding: 13px 12px;
        min-width: 0;
    }

    .offer-row input:focus {
        box-shadow: none !important;
        border-color: transparent !important;
    }

    .currency-toggle {
        display: flex;
        align-items: center;
        border-left: 1px solid var(--border);
        padding: 4px 6px;
        gap: 2px;
        flex-shrink: 0;
    }

    .cur-btn {
        background: transparent;
        border: 1px solid transparent;
        border-radius: 6px;
        color: var(--muted);
        font-family: var(--font-body);
        font-size: 0.7rem;
        font-weight: 600;
        padding: 4px 6px;
        cursor: pointer;
        transition: background 0.15s, color 0.15s, border-color 0.15s;
        white-space: nowrap;
    }

    .cur-btn.active {
        background: rgba(0, 229, 160, 0.12);
        border-color: rgba(0, 229, 160, 0.35);
        color: var(--accent);
    }

    .cur-btn:hover:not(.active) {
        background: rgba(255, 255, 255, 0.05);
        color: var(--text);
    }

    /* ── Toast ── */
    .toast {
        position: fixed;
        bottom: 100px;
        left: 50%;
        transform: translateX(-50%) translateY(20px);
        padding: 14px 24px;
        border-radius: 12px;
        font-size: 0.9rem;
        font-weight: 500;
        opacity: 0;
        pointer-events: none;
        z-index: 9999;
        transition:
            opacity 0.3s,
            transform 0.3s;
        white-space: nowrap;
    }

    .toast.success {
        background: #0d2e1f;
        border: 1px solid rgba(0, 229, 160, 0.4);
        color: var(--accent);
    }

    .toast.error {
        background: #2e0d0d;
        border: 1px solid rgba(255, 80, 80, 0.4);
        color: #ff8080;
    }

    .toast.show {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    /* ── Footer ── */
    footer {
        position: relative;
        z-index: 1;
        border-top: 1px solid var(--border);
        padding: 28px 48px;
        /* FIX: was space-between with no wrap fallback — on mobile long domain + text collide */
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 8px;
    }

    .footer-domain {
        font-family: var(--font-display);
        font-size: clamp(0.65rem,
                2.5vw,
                1rem);
        /* FIX: was fixed 1rem, overflowed */
        font-weight: 800;
        background: linear-gradient(135deg, var(--accent), var(--accent2));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    footer p {
        font-size: 0.8rem;
        color: var(--muted);
    }

    @keyframes fadeUp {
        from {
            opacity: 0;
            transform: translateY(20px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    /* ══════════════════════════════════════════
       RESPONSIVE BREAKPOINTS
    ══════════════════════════════════════════ */
    @media(max-width:992px) {
        .grecaptcha-badge {
            bottom: 50px !important;
            z-index: 10000 !important;
        }
    }

    /* ── Tablet (≤768px) ── */
    @media (max-width: 768px) {
        nav {
            padding: 16px 24px;
        }

        .features {
            padding: 60px 24px;
        }

        .offer-card {
            padding: 40px 32px;
        }

        footer {
            padding: 24px;
        }

    }

    /* ── Mobile (≤640px) ── */
    @media (max-width: 640px) {
        nav {
            padding: 14px 16px;
        }

        .grecaptcha-badge {
            bottom: 0px !important;
            z-index: 10000 !important;
        }

        .hero {
            padding: 60px 16px 40px;
            min-height: 75vh;
        }

        .hero-badge {
            margin-bottom: 20px;
        }

        /* Stats: 2×2 grid on mobile instead of 1 long row */
        .stats {
            display: grid;
            grid-template-columns: 1fr 1fr;
        }

        .stat {
            border-right: 1px solid var(--border);
            border-bottom: 1px solid var(--border);
            padding: 20px 12px;
        }

        /* Remove double borders on right column and bottom row */
        .stat:nth-child(2n) {
            border-right: none;
        }

        .stat:nth-child(3),
        .stat:nth-child(4) {
            border-bottom: none;
        }

        .features {
            padding: 48px 16px;
        }

        .section-title {
            margin-bottom: 32px;
        }

        /* Cards: single column */
        .cards {
            grid-template-columns: 1fr;
        }

        .offer-section {
            padding: 48px 16px;
        }

        .offer-card {
            padding: 28px 20px;
            border-radius: 16px;
        }

        .form-row {
            grid-template-columns: 1fr;
        }

        /* FIX: name fields stack */

        footer {
            padding: 20px 16px;
            flex-direction: column;
            align-items: flex-start;
            gap: 4px;
        }

        .toast {
            white-space: normal;
            text-align: center;
            width: 90%;
            max-width: 360px;
        }

        .hero-cta {
            flex-direction: column;
            align-items: center;
        }

        .btn-primary,
        .btn-ghost {
            width: 100%;
            justify-content: center;
        }
    }

    /* ── Small mobile (≤400px) ── */
    @media (max-width: 400px) {
        .nav-pill {
            display: none;
        }

        /* FIX: pill hidden on very small screens to protect logo */
        .hero-price-block {
            flex-direction: column;
            gap: 8px;
        }

        .price-divider {
            display: none;
        }
    }

    @media (max-width: 640px) {
        #f_offer {
            font-size: 0.85rem;
            padding: 12px 10px;
        }

        .cur-btn {
            font-size: 0.65rem;
            padding: 3px 6px;
        }
    }
    </style>
</head>

<body>
    <div class="blob blob-1"></div>
    <div class="blob blob-2"></div>

    <!-- Nav -->
    <nav>
        <span class="nav-logo">iphoneappsreviewonline.com</span>
        <span class="nav-pill">🔥 Domain for Sale</span>
    </nav>

    <!-- Hero -->
    <section class="hero">
        <div class="hero-badge">Premium Geo Domain</div>
        <h1 class="hero-domain">iphoneappsreviewonline.com</h1>
        <p class="hero-tag">
            A tech-focused domain built for app reviews, recommendations, and digital content.
        </p>
        <!-- <div class="hero-price-block">
        <span class="price-label">Starting at</span>
        <div class="price-divider"></div>
        <span class="price-tag">Make an Offer</span>
      </div> -->
        <div class="hero-cta">
            <a href="javascript:void(0);" class="btn-primary"
                onclick="document.getElementById('offer').scrollIntoView();">
                <svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                    <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
                </svg>
                Submit Your Offer
            </a>
        </div>
    </section>

    <!-- Stats -->
    <div class="stats">
        <div class="stat">
            <div class="stat-num">Reviews  </div>
            <div class="stat-label"> </div>
        </div>
        <div class="stat">
            <div class="stat-num">Technology  </div>
            <div class="stat-label">  </div>
        </div>
        <div class="stat">
            <div class="stat-num">  Affiliate </div>
            <div class="stat-label"> </div>
        </div>
        <div class="stat">
            <div class="stat-num">  Discovery</div>
            <div class="stat-label"> </div>
        </div>
    </div>

    <!-- Features -->
    <section class="features">
        <p class="section-label">PERFECT FOR</p>
        <h2 class="section-title">
            Designed to help users discover the best iPhone applications online.
        </h2>
        <div class="cards">
            <div class="card">
                <div class="card-icon">📱 </div>
                <h3 class="card-title">Reviews</h3>
                <p class="card-text">
                      Publish detailed iPhone app reviews.
                </p>
            </div>
            <div class="card">
                <div class="card-icon">⭐ </div>
                <h3 class="card-title">Ratings </h3>
                <p class="card-text">
                     Compare top apps and rankings.
                </p>
            </div>
            <div class="card">
                <div class="card-icon"> 📰 </div>
                <h3 class="card-title">Tech News </h3>
                <p class="card-text">
                    Share updates and launches.
                </p>
            </div>
            <div class="card">
                <div class="card-icon">🎥  </div>
                <h3 class="card-title"> Media </h3>
                <p class="card-text">
                   Create app tutorials and videos.
                </p>
            </div>
            <div class="card">
                <div class="card-icon">💰 </div>
                <h3 class="card-title">Affiliate </h3>
                <p class="card-text">
                    Earn through app recommendations.
                </p>
            </div>
            <div class="card">
                <div class="card-icon"> 🚀 </div>
                <h3 class="card-title"> Startup </h3>
                <p class="card-text">
                    Build app discovery platforms.
                </p>
            </div>
        </div>
    </section>

    <!-- Offer Form -->
    <section class="offer-section" id="offer">
        <div class="offer-card">
            <p class="section-label">Submit Offer</p>
            <h2>Let's Talk</h2>
            <p>Fill in your details and we'll get back to you within 24 hours.</p>

            <!-- Honeypot -->
            <div class="hp-field" aria-hidden="true">
                <label>Leave this blank</label>
                <input type="text" id="hp_website" name="website" tabindex="-1" autocomplete="off" />
            </div>

            <div class="form-row">
                <div class="form-group">
                    <label for="f_first">First Name *</label>
                    <input type="text" id="f_first" placeholder="Arjun" autocomplete="given-name" maxlength="60"
              oninput="this.value = this.value.replace(/[^a-zA-Z\s]/g, '')" />
                </div>
                <div class="form-group">
                    <label for="f_last">Last Name *</label>
                    <input type="text" id="f_last" placeholder="Kumar" autocomplete="family-name" maxlength="60"
              oninput="this.value = this.value.replace(/[^a-zA-Z\s]/g, '')" />
                </div>
            </div>
            <div class="form-group">
                <label for="f_email">Email *</label>
                <input type="email" id="f_email" placeholder="you@company.com" autocomplete="email" maxlength="120" />
            </div>
            <div class="form-group">
                <label for="f_phone">Phone / WhatsApp *</label>
                <input type="text" id="f_phone" placeholder="XXXXXXXXXX" autocomplete="tel" maxlength="20"
                    oninput="this.value = this.value.replace(/[^0-9+\-\s]/g, '')" />
            </div>
            <div class="form-group">
                <label for="f_offer">Your Offer *</label>
                <div class="offer-row">
                    <input type="text" id="f_offer" placeholder="Enter your offer amount" maxlength="12" oninput="this.value = this.value.replace(/[^0-9]/g, '')"
                         />
                    <div class="currency-toggle" role="group" aria-label="Currency">
                        <button type="button" class="cur-btn active" id="cur-inr" data-symbol="₹" data-code="INR">₹
                            INR</button>
                        <button type="button" class="cur-btn" id="cur-usd" data-symbol="$" data-code="USD">$
                            USD</button>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="f_message">Message *</label>
                <textarea id="f_message" placeholder="Tell us about your intended use for this domain..."
                    maxlength="1000" oninput="this.value = this.value.replace(/[^a-zA-Z0-9\s₹$&!?]/g, '')"></textarea>
            </div>

            <button class="btn-primary form-submit" id="submitBtn" type="button">
                Send Offer →
            </button>
        </div>
    </section>

    <!-- Footer -->
    <footer>
        <span class="footer-domain">iphoneappsreviewonline.com</span>
        <p>© 2026 · All rights reserved · Dot Com Infoway</p>
    </footer>

    <!-- Toast -->
    <div id="toast" class="toast" role="alert" aria-live="polite"></div>

     <!-- intl-tel-input JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/intlTelInput.min.js"></script>

    <script>
      // ── intl-tel-input init ──────────────────────────────────────────
      const phoneInput = document.getElementById("f_phone");

      // Country code to mobile number digit length mapping
      // const countryDigitLength = {
      //   in: 10, // India
      //   af: 9,  // Afghanistan
      //   us: 10, // United States
      //   gb: 10, // United Kingdom
      //   ae: 9,  // UAE
      //   ca: 10, // Canada
      //   au: 9,  // Australia
      //   sg: 8,  // Singapore
      //   my: 9,  // Malaysia
      //   pk: 10, // Pakistan
      //   bd: 10, // Bangladesh
      //   lk: 9,  // Sri Lanka
      //   np: 10, // Nepal
      //   th: 9,  // Thailand
      //   id: 10, // Indonesia
      //   ph: 10, // Philippines
      //   eg: 10, // Egypt
      //   za: 9,  // South Africa
      //   ng: 10, // Nigeria
      //   ke: 9,  // Kenya
      //   gh: 9,  // Ghana
      //   de: 10, // Germany
      //   fr: 9,  // France
      //   it: 9,  // Italy
      //   es: 9,  // Spain
      //   br: 10, // Brazil
      //   mx: 10, // Mexico
      //   ar: 10, // Argentina
      //   cl: 9,  // Chile
      //   co: 10, // Colombia
      //   jp: 10, // Japan
      //   kr: 10, // South Korea
      //   cn: 11  // China
      // };
      const countryDigitLength = {
        in: [10], af: [9], us: [10], gb: [10], ae: [9], ca: [10], au: [9], sg: [8],
        my: [9, 10], pk: [10], bd: [10], lk: [9], np: [10], th: [9], id: [9, 10, 11, 12],
        ph: [10], eg: [10], za: [9], ng: [10], ke: [9], gh: [9], de: [10, 11], fr: [9],
        it: [9, 10], es: [9], br: [10, 11], mx: [10], ar: [10], cl: [9], co: [10],
        jp: [10], kr: [9, 10], cn: [11], ck: [5, 7, 8]
      };

      // Helper to get allowed lengths for any country
      function getAllowedLengths(iso) {
        if (countryDigitLength[iso]) return countryDigitLength[iso];
        if (window.intlTelInputUtils) {
          try {
            // Use nationalMode: true to get the local number example
            const example = intlTelInputUtils.getExampleNumber(iso, true, intlTelInputUtils.numberType.MOBILE);
            if (example) {
              let clean = example.replace(/\D/g, "");
              // Strip leading trunk prefix (0) if present in example
              if (clean.startsWith('0')) clean = clean.substring(1);
              return [clean.length];
            }
          } catch (e) {}
        }
        return [10]; // default fallback
      }

      const iti = window.intlTelInput(phoneInput, {
        initialCountry: "in",
        preferredCountries: ["in", "us", "gb", "ae"],
        separateDialCode: true,
        nationalMode: false,
        utilsScript: "https://cdn.jsdelivr.net/npm/intl-tel-input@17.0.19/build/js/utils.js"
      });

      // Update maxLength & placeholder based on selected country
      function updatePhoneConstraints() {
        if (!iti) return;
        const countryData = iti.getSelectedCountryData();
        const iso = countryData.iso2;
        const lengths = getAllowedLengths(iso);
        const maxLen = Math.max(...lengths);
        
        // Strictly enforce max length as requested
        phoneInput.maxLength = maxLen; 
        if (lengths.length === 1) {
          phoneInput.placeholder = `Enter ${lengths[0]} digit number`;
        } else {
          phoneInput.placeholder = `Enter ${lengths.join(" or ")} digits`;
        }
      }

      // Set initial constraints
      setTimeout(() => {
        updatePhoneConstraints();
      }, 500);

      // Allow only digits as user types
      phoneInput.addEventListener('input', function () {
        let val = this.value.replace(/\D/g, '');
        // Auto-strip leading 0 for all countries as we use separate dial codes,
        // this ensures the user doesn't hit the maxLength limit prematurely.
        if (val.startsWith('0')) {
          val = val.substring(1);
        }
        this.value = val;
      });

      // Format on blur for readability
      phoneInput.addEventListener('blur', function () {
        let raw = this.value.replace(/\D/g, '');
        if (!raw) return;
        
        // Ensure no leading 0 remains
        if (raw.startsWith('0')) raw = raw.substring(1);
        
        try {
          const countryData = iti.getSelectedCountryData();
          // Use INTERNATIONAL format and strip dial code to get clean local formatting without trunk prefixes (like leading 0)
          const formatted = intlTelInputUtils.formatNumber(
            raw, countryData.iso2, intlTelInputUtils.numberFormat.INTERNATIONAL
          );
          if (formatted) {
            const prefix = '+' + countryData.dialCode;
            this.value = formatted.replace(prefix, '').trim();
          }
        } catch (e) { /* ignore formatting errors */ }
      });

      // Show raw digits on focus for editing
      phoneInput.addEventListener('focus', function () {
        this.value = this.value.replace(/\D/g, '');
      });

      // Update maxLength & placeholder when country changes
      phoneInput.addEventListener('countrychange', updatePhoneConstraints);

     
      const MIN_FILL_SECONDS = 4;
      const MAX_PER_SESSION = 3;
      const PAGE_LOAD_MS = Date.now();
      let submitCount = 0;
      let isSubmitting = false;

      // ── Currency toggle ──────────────────────────────────────────────
      let selectedCurrency = { code: 'INR', symbol: '₹' };
      document.querySelectorAll('.cur-btn').forEach(btn => {
        btn.addEventListener('click', () => {
          document.querySelectorAll('.cur-btn').forEach(b => b.classList.remove('active'));
          btn.classList.add('active');
          selectedCurrency = { code: btn.dataset.code, symbol: btn.dataset.symbol };
          document.getElementById('f_offer').placeholder =
            'Enter your offer amount in ' + btn.dataset.code;
        });
      });

      function showToast(message, type) {
        const toast = document.getElementById("toast");
        toast.textContent = (type === "success" ? "✅ " : "❌ ") + message;
        toast.className = "toast " + type;
        void toast.offsetWidth;
        toast.classList.add("show");
        setTimeout(() => toast.classList.remove("show"), 5000); //5 Sec
      }

      function validate(first, last, email, phone, offer, msg) {
        if (!first || !first.trim()) {
          showToast("Please enter your first name.", "error");
          document.getElementById("f_first").focus();
          return false;
        }
        if (!last || !last.trim()) {
          showToast("Please enter your last name.", "error");
          document.getElementById("f_last").focus();
          return false;
        }
        if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email.trim())) {
          showToast("Please enter a valid email address.", "error");
          document.getElementById("f_email").focus();
          return false;
        }
        if (!phone) {
          showToast("Please enter your phone number.", "error");
          document.getElementById("f_phone").focus();
          return false;
        }
        // Check country-specific digit length
        const countryData = iti.getSelectedCountryData();
        const iso = countryData.iso2;
        const allowedLengths = getAllowedLengths(iso);
        let rawPhone = phone.replace(/\D/g, '');

        // Handle leading trunk prefix (0) - strip if it makes the number valid
        if (rawPhone.startsWith('0') && !allowedLengths.includes(rawPhone.length) && allowedLengths.includes(rawPhone.length - 1)) {
          rawPhone = rawPhone.substring(1);
        }

        const currentLength = rawPhone.length;
        
        if (!allowedLengths.includes(currentLength)) {
          const countryName = countryData.name || "Selected country";
          showToast(`${countryName} mobile number must be ${allowedLengths.join(' or ')} digits.`, "error");
          document.getElementById("f_phone").focus();
          return false;
        }

        // India-specific starting digit check (6, 7, 8, or 9)
        if (iso === 'in' && currentLength > 0 && !/^[6-9]/.test(rawPhone)) {
          showToast("Indian mobile numbers must start with 6, 7, 8, or 9.", "error");
          document.getElementById("f_phone").focus();
          return false;
        }

        // If country is NOT in our manual map, use iti.isValidNumber() as a secondary check
        if (!countryDigitLength[iso] && !iti.isValidNumber()) {
          showToast("Please enter a valid phone number.", "error");
          document.getElementById("f_phone").focus();
          return false;
        }
        if (!offer || !offer.trim()) {
          showToast("Please enter your offer amount.", "error");
          document.getElementById("f_offer").focus();
          return false;
        }
if (!/^\d+$/.test(offer.trim())) {
          showToast("Offer amount must be a valid number.", "error");
          document.getElementById("f_offer").focus();
          return false;
        }
        if (!msg || !msg.trim()) {
          showToast("Please enter your message.", "error");
          document.getElementById("f_message").focus();
          return false;
        }
        if (/[^a-zA-Z0-9\s₹$&!?]/.test(msg.trim())) {
          showToast("Message contains invalid characters.", "error");
          document.getElementById("f_message").focus();
          return false;
        }
        return true;
      }

      document
        .getElementById("submitBtn")
        .addEventListener("click", async () => {
          if (isSubmitting) return;

          if (iti.promise) {
            await iti.promise;
          }

          const first    = document.getElementById("f_first").value;
          const last     = document.getElementById("f_last").value;
          const email    = document.getElementById("f_email").value;
          const phone    = document.getElementById("f_phone").value;
          const offer    = document.getElementById("f_offer").value;
          const message  = document.getElementById("f_message").value;
          const hp       = document.getElementById("hp_website").value;

          // Full international number e.g. +919876543210
          const fullPhone = iti.getNumber();

          // SPAM GUARD 1 · Honeypot
          if (hp.trim() !== "") {
            showToast("Offer submitted! We'll be in touch soon.", "success");
            return;
          }

          // SPAM GUARD 2 · Time check
          if ((Date.now() - PAGE_LOAD_MS) / 1000 < MIN_FILL_SECONDS) {
            showToast("Please take a moment to complete the form.", "error");
            return;
          }

          // SPAM GUARD 3 · Rate limit
          if (submitCount >= MAX_PER_SESSION) {
            showToast("Too many attempts. Please call us directly.", "error");
            return;
          }

          if (!validate(first, last, email, phone, offer, message)) return;

          isSubmitting = true;
          const btn = document.getElementById("submitBtn");
          btn.disabled = true;
          btn.textContent = "Sending…";

          try {
            if (typeof grecaptcha === "undefined") {
              showToast(
                "Security check is loading. Please try again.",
                "error",
              );
              btn.disabled = false;
              btn.textContent = "Send Offer →";
              isSubmitting = false;
              return;
            }

            const recaptchaResponse = await grecaptcha.execute(
              "6LfExbwrAAAAAGkxZXqn7jzjF8dKL5mQ2-qKIccO",
              { action: "submit" },
            );

            const res = await fetch("submit.php", {
              method: "POST",
              headers: { "Content-Type": "application/json" },
              body: JSON.stringify({
                name:               first.trim() + " " + last.trim(),
                email:              email.trim(),
                phone:              fullPhone,
                offer:              selectedCurrency.symbol + offer.trim() + " " + selectedCurrency.code,
                message:            message.trim(),
                hp,
                recaptcha_response: recaptchaResponse,
              }),
            });

            const data = await res.json();

            if (data.success) {
              submitCount++;
              showToast(
                "Offer sent! We'll get back to you within 24 hours.",
                "success",
              );
              [
                "f_first",
                "f_last",
                "f_email",
                "f_phone",
                "f_offer",
                "f_message",
              ].forEach((id) => {
                document.getElementById(id).value = "";
              });
              iti.setCountry("in"); // reset flag to India
              btn.textContent = "✓ Offer Sent";
              setTimeout(() => {
                btn.textContent = "Send Offer →";
                btn.disabled = false;
                isSubmitting = false;
              }, 6000);
            } else {
              showToast(
                data.message || "Submission failed. Please try again.",
                "error",
              );
              btn.disabled = false;
              btn.textContent = "Send Offer →";
              isSubmitting = false;
            }
          } catch (err) {
            console.error(err);
            showToast("Network error. Please try again later.", "error");
            btn.disabled = false;
            btn.textContent = "Send Offer →";
            isSubmitting = false;
          }
        });
    </script>
</body>

</html>