# HOW THIS PAGE IS RENDERED — read before designing
You are reading a brief that is currently published as this page's content. Your output REPLACES the whole brief. Save it through the admin API (see HOW TO SAVE below), then reload the public page and check it on desktop and mobile widths.
- Storefront: the saved content is injected as raw HTML inside a container that already has the Tailwind Typography classes "prose prose-neutral max-w-none". Markdown is NOT converted — never output Markdown syntax (#, **, |---|).
- JavaScript never runs. Any interaction (accordions, tabs, toggles) must be pure CSS: the checkbox/radio hack or details/summary.
- Output ONE HTML fragment: one root div carrying a unique class (e.g. "pg-<page-slug>-<4 random chars>") plus the class "not-prose", and one style block. Prefix EVERY CSS selector with that root class. Never style html, body, :root or bare tag selectors, and never load external stylesheets, fonts or scripts.
- Heading levels: before writing, inspect the live page's markup. If the theme already renders the page title as an H1 above the content, start at H2 and do not repeat the title; if the page has no H1, include exactly one H1 in your content.
- Responsive: must look right from a 360px phone to a wide desktop — no horizontal page scroll, flex/grid layouts that wrap, and every table wrapped in a container with overflow-x: auto. The theme sets table { display: block } globally, so give your tables display: table; width: 100%.
- Links: internal links use relative paths (/pages/shipping-policy, /track-order, /collections). Emails use mailto: links showing the address as the link text.
- Shortcode: the exact text [contact_form], placed alone in its own paragraph, is replaced by the store's live contact form when the page renders. Use it only where this brief asks for it. The page is split at the shortcode and each part is rendered separately, so close your root div before the shortcode and open a second root div with the same class after it (one style block in the first part covers both).
- Accessibility: good color contrast, semantic sections and headings, tables with th header cells.
- Missing data: a contact value that is empty or an obvious dummy (e.g. a phone number of all zeros such as +1 (000) 000 0000) counts as not provided — omit that line entirely. Never write "not provided", "N/A" or leave a placeholder or bracketed text in the output (except the [contact_form] shortcode where requested).
- Return ONLY the HTML fragment — no code fences, no commentary.
# STYLE — one store-wide look
- Every page follows the store's overall style so it clearly belongs to the same site as the homepage: use the store's own colors (read them from the live site: header background, button/accent color, body background and text color), the site's font (inherit it; never load other fonts) and the store's tone of voice. Do not invent a new palette for this page.
- Legal and policy pages (shipping-policy, refund-policy, payment, terms-of-service, privacy-policy, do-not-sell) must stay SIMPLE and SOBER: a single readable column (about 760-860px max width), clear heading hierarchy, comfortable line height, plain lists and simple tables. Use color only for headings, links, thin dividers and at most one subtle "at a glance" summary box. No hero images, animations, gradients, decorative icons, cards or multi-column layouts. Completeness and precision of the text come first — design must never hide or shorten it.
- Brand and help pages (about, size-guide, faqs) may be more designed (image sections, well-styled tables, a CSS accordion) but still use the same palette and font, with no flashy effects.
- Stores should not look identical: vary layout details and wording, never the facts.
# IMAGES
- Only use images hosted on this store — never hotlink another domain. Every img needs a meaningful alt, and max-width: 100%; height: auto.
- Prefer images the store already has (homepage hero banner, product images). If a page really needs new imagery (normally only the About page, 1-3 images), generate it (no text, no logos, no brand marks), convert it to JPEG, and upload it to the store with the upload endpoint below; use the returned URL.
# HOW TO SAVE — admin API (do this from a browser tab on the admin site, already signed in)
The admin site is the store's admin panel (usually https://admin.<store domain>); if you do not know its URL, ask the operator. All calls go to the store API with the admin's session token.
1. API base URL: on any admin page, read the network requests to "/api/admin/..." and take their origin (for this platform usually https://api.<store domain>). Call it API.
2. Token: run in the admin tab: const token = (await (await fetch('/api/auth/session')).json()).accessToken — never print or share it. Send it as the header Authorization: Bearer <token>.
3. Find this page: GET API/api/admin/pages returns JSON { success, pages: [ { id, slug, title, content, meta_title, meta_description, is_active, ... } ], total }. Pick the entry whose slug equals this page's slug and note its id. (Its content is the raw brief, still showing the store placeholders.)
4. Save: PUT API/api/admin/pages/<id> with header Content-Type: application/json and body { "content": "<your HTML fragment>" }. Send ONLY content — do not change title, slug, meta fields or is_active. Success returns { success: true, page: { ... } } with status 200; anything else means it was not saved (read the error and fix it).
5. Upload an image (only if needed): POST API/api/admin/collections/upload-image as multipart/form-data with the file in the field "file" (JPEG/PNG/WebP, under 10 MB). Success returns status 201 with { success, data: { url, ... } }; use data.url in your HTML.
6. You may write the real store values or keep the store placeholders for name, email and website — both render correctly because placeholders are replaced when the page is served.
7. Verify: reload the public page (wait until it has fully loaded), confirm the brief text is gone, no bracketed placeholders remain (except a working contact form where requested), there is exactly one H1, nothing overflows horizontally at ~390px width, and images load. Fix and PUT again if anything is off.
# STORE DETAILS (live values)
Store Name: kpnira
Legal Business Name: kpnira
Website: https://kpnira.com
Support Email: support@kpnira.com
Phone:
Business Address: change
Support Hours: 9:00 AM - 5:00 PM (EST) (Mon - Fri)
Last Updated: June 27, 2026
# STORE FACTS — shared by every page on this site; never contradict, round, soften or reinterpret them
Sales area
- Sells physical products online and ships only to addresses within the United States, from US warehouses. No international shipping, customs or duties.
Orders
- Changes or cancellations: email the support address within 1 hour of placing the order; after that the order may already be packed and changes may not be possible.
- Checkout is guest-only; customers do not need an account to order.
- Tracking: a shipping confirmation email with a tracking number is sent when the order ships; customers can also check status any time on the Track Order page (/track-order) with their order number.
Shipping
- One method: Standard Shipping. Carriers: USPS, UPS or FedEx.
- Handling/processing: 1–3 business days. Transit: 4–8 business days. Total: 5–11 business days from the order date.
- Cost: flat $5.99; free on orders over $75.
- Business days exclude weekends and US public holidays. Delivery estimates are not guaranteed.
Payments
- Checkout uses PayPal only: PayPal balance, linked bank account, or credit/debit card (Visa, Mastercard, American Express, Discover) via PayPal guest checkout — no PayPal account required.
- Prices are in USD. Shipping and any applicable sales tax are shown at checkout. The store never sees or stores full card details.
- One discount code per order, entered at checkout.
Returns & refunds
- Return window: 30 days from delivery. Items must be unworn, unwashed, in original condition with tags attached.
- Returns must be requested by email first; support replies within 1–2 business days with a FREE prepaid return label. Return shipping is always free for the customer.
- Not returnable: items marked final sale at purchase; underwear, swimwear and pierced earrings (hygiene).
- No direct exchanges: return for a refund and place a new order.
- Refunds are processed within 2–5 business days after the return is received and inspected, to the original payment method; banks may take a further 5–10 business days. Original shipping charges are refunded only when the store made an error or where required by law.
- Lost, damaged, defective or incorrect items: report within 30 days of the delivery date (or the expected delivery date if never delivered) with the order number and photos; resolution is a replacement or full refund, at no cost to the customer.
Privacy
- Personal information is never sold for money. Cookies, Google Analytics and Google Ads may count as "sharing" under the CCPA/CPRA.
- Privacy requests (know, access, delete, correct): by email; identity verification may be required; answered within 45 days (extendable by 45 days with notice).
- Opt-out of sale/sharing requests: by email to the support address with the subject "Do Not Sell or Share"; processed within 15 business days.
- Marketing emails contain an unsubscribe link; transactional emails continue.
Site pages (relative links)
- /pages/shipping-policy, /pages/refund-policy, /pages/privacy-policy, /pages/terms-of-service, /pages/payment, /pages/do-not-sell, /pages/size-guide, /pages/faqs, /pages/about, /pages/contact, /track-order
# ROLE
You are a US eCommerce legal copywriter writing the Privacy Policy for this store, which sells physical products only within the United States.
# THIRD-PARTY PROCESSORS ACTUALLY IN USE
Name these exactly wherever relevant; do not replace them with vague terms like "trusted partners":
- Payment processing: PayPal
- Website analytics & advertising: Google Analytics, Google Ads
- File / image storage: DigitalOcean Spaces
- Search: OpenAI (query processing for product search)
- Order alerts to store staff: Telegram
- Outbound email: the store's own SMTP provider — call it "our email service provider"
# RULES
- Reflect common US practice and the CCPA/CPRA. Professional, customer-friendly, legally neutral tone.
- Do not mention specific products.
# CONTENT (sections, in this order)
- Title "Privacy Policy", then "Last Updated".
1. Information we collect — Personal information (name, email, phone, billing and shipping address, order details and history, support messages); Payment information (processed by PayPal, full card details never stored); Automatically collected information (IP address, device, browser, operating system, cookies, pages viewed and interactions — used to improve the site and experience).
2. How we use your information — fulfill orders, ship and send updates, answer inquiries, prevent fraud, improve the site, analyze usage, marketing where permitted, business records, legal obligations; legitimate business purposes only.
3. Service providers — list each processor above with its purpose; each receives only what it needs and follows its own privacy policy.
4. Cookies, analytics and advertising — cookies plus Google Analytics and Google Ads to remember preferences, improve functionality, analyze traffic, measure performance and deliver relevant ads where permitted; cookies can be disabled in the browser, which may affect functionality.
5. CCPA data inventory — a table with columns Category of Personal Information | Purpose of Collection | Disclosed To, rows:
Identifiers (name, email, phone, billing/shipping address) | Order fulfillment and customer support | PayPal, our email service provider
Payment information | Payment processing | PayPal
Commercial information (order history) | Order processing and customer support | PayPal (for the transaction only)
Internet/network activity (cookies, IP address, browsing behavior) | Analytics and advertising | Google Analytics, Google Ads
Search queries | On-site product search | OpenAI
State that personal information is not sold for monetary compensation.
6. Data retention and security — kept only as long as needed (orders, transaction history, marketing preferences, disputes, fraud prevention, legal obligations); reasonable safeguards, but no method is completely secure.
7. California privacy rights — subsections: Right to Know; Right to Access; Right to Delete; Right to Correct; Right to Opt-Out of Sale or Sharing (no sale for money, but cookies/analytics/advertising may count as "sharing" — link to /pages/do-not-sell to opt out); Right to Limit Use of Sensitive Personal Information; Right to Non-Discrimination.
8. How to submit a privacy request — two channels: the support email (mailto link) and the web form, shown with the [contact_form] shortcode in its own paragraph. Per Cal. Civ. Code § 1798.130: identity verification may be required; verified requests answered within 45 days (extendable by 45 days with notice); opt-out requests processed within 15 business days.
9. Children's privacy — the site is not directed to children under 13 and does not knowingly collect their data.
10. United States only — sells and ships only within the US; the policy applies to US customers; orders outside the US are not accepted.
11. Contact information — legal business name, website, support email, phone (only if provided), business address, support hours; end with a friendly invitation to ask questions.
# STYLE
Clear, professional, legally neutral; no emojis. Style the data-inventory table with visible 1px borders and cell padding.