/* article-content.jsx — Safe Ozwin verification guide sections */

const ACCENT = '#c9a044';

const sectionWrapStyle = {
  maxWidth: 920,
  margin: '0 auto',
  padding: '0 32px',
};

const sectionTitleStyle = (accent) => ({
  fontFamily: 'Cinzel, serif',
  fontSize: 32,
  fontWeight: 700,
  color: '#fff',
  marginBottom: 12,
  lineHeight: 1.2,
  scrollMarginTop: 120,
});

const sectionSubStyle = {
  fontFamily: 'Raleway, sans-serif',
  fontSize: 15,
  lineHeight: 1.85,
  color: 'rgba(255,255,255,0.66)',
  marginBottom: 20,
};

const cardStyle = {
  background: 'rgba(255,255,255,0.035)',
  border: '1px solid rgba(255,255,255,0.08)',
  borderRadius: 14,
  padding: 28,
  marginBottom: 28,
  backdropFilter: 'blur(10px)',
};

const dividerStyle = (accent) => ({
  height: 1,
  background: `linear-gradient(90deg, transparent, ${accent}33, transparent)`,
  margin: '44px 0',
  border: 'none',
});

const checklistItems = [
  'Offer status inside the current promotions page or cashier.',
  'Whether the bonus applies to new players, existing players, or only selected accounts.',
  'Current Ozwin casino wagering requirements and game eligibility.',
  'Any Ozwin casino max cashout, withdrawal, expiry, or document-check conditions.',
  'Whether a bonus code must be entered before any deposit or gameplay.',
];

const faqItems = [
  {
    q: 'Is the Ozwin $50 no-deposit bonus active?',
    a: 'Treat the Ozwin $50 no-deposit bonus as a search-result claim until you verify it inside Ozwin\'s current promotions page or cashier. Do not assume a free chip, code, or free-spins offer is live just because it appears on a third-party page.',
  },
  {
    q: 'How do I log in to Ozwin Casino from Australia?',
    a: 'Use the current Ozwin login path you trust, then check the cashier or promotions area before entering any code. The goal is to confirm the live terms before depositing or relying on an offer.',
  },
  {
    q: 'Does Ozwin Casino have a bonus code?',
    a: 'Search results may mention Ozwin casino bonus code Australia pages, but a code should be treated as unverified until the official cashier accepts it and shows current terms.',
  },
  {
    q: 'Are Ozwin free spins/no-deposit claims real?',
    a: 'They may be real, expired, account-specific, or copied from old search results. Verify Ozwin free spins, free chip, and no-deposit claims in the live promotions area before acting on them.',
  },
  {
    q: 'What should I verify before depositing?',
    a: 'Check live offer status, wagering, max cashout, eligible games, expiry, country eligibility, deposit requirements, and whether the offer is for new or existing players.',
  },
  {
    q: 'Is Ozwin Casino legit in Australia?',
    a: 'This page does not make a licence or operator claim. To assess whether Ozwin Casino is legit in Australia, review the current site terms, payment rules, responsible gambling tools, support access, complaints history, and the exact domain you are using.',
  },
];

function CTABanner({ accent, text, sub }) {
  const [h, setH] = React.useState(false);
  return (
    <div style={{
      textAlign: 'center',
      padding: '42px 30px',
      margin: '36px 0',
      background: `linear-gradient(135deg, ${accent}12, rgba(255,255,255,0.025))`,
      border: `1px solid ${accent}25`,
      borderRadius: 16,
    }}>
      <div style={{
        fontFamily: 'Cinzel, serif', fontSize: 23, fontWeight: 700,
        color: '#fff', marginBottom: 8,
      }}>{text || 'Verify Ozwin Bonus Terms'}</div>
      <div style={{
        fontFamily: 'Raleway, sans-serif', fontSize: 14, color: 'rgba(255,255,255,0.56)',
        margin: '0 auto 22px', maxWidth: 560, lineHeight: 1.7,
      }}>{sub || 'Check the current promotions page or cashier before relying on a no-deposit, free chip, free spins, or bonus-code claim.'}</div>
      <a href="https://zotatraff.com/gfiv1viab"
        target="_blank" rel="nofollow sponsored noopener" data-affiliate="article_cta"
        onMouseEnter={() => setH(true)} onMouseLeave={() => setH(false)}
        style={{
          display: 'inline-block', textDecoration: 'none',
          background: h ? `linear-gradient(135deg, #dbb04e, ${accent})` : `linear-gradient(135deg, ${accent}, #8b6914)`,
          color: '#0a1208', padding: '15px 34px', borderRadius: 10,
          fontFamily: 'Cinzel, serif', fontSize: 14, fontWeight: 800,
          letterSpacing: '0.1em', cursor: 'pointer',
          transition: 'all 0.3s', transform: h ? 'translateY(-2px)' : 'none',
          boxShadow: h ? `0 8px 28px ${accent}40` : `0 4px 18px ${accent}22`,
          textTransform: 'uppercase',
        }}>Check Current Ozwin Offer</a>
    </div>
  );
}

function QuickAnswer({ accent }) {
  const items = [
    { label: 'Main check', value: 'A $50 no-deposit bonus may appear in search results, but it is not a confirmed active offer here.' },
    { label: 'Best next step', value: 'Use the current Ozwin casino login Australia path and verify live terms in the cashier or promotions area.' },
    { label: 'Code warning', value: 'Treat public Ozwin bonus code lists as outdated until the operator page confirms them.' },
    { label: 'Skip if', value: 'The offer hides wagering, max cashout, eligible games, expiry, or account eligibility.' },
  ];
  return (
    <div style={{
      background: `linear-gradient(135deg, ${accent}10, ${accent}04)`,
      border: `1px solid ${accent}30`,
      borderRadius: 16, padding: 28, marginBottom: 32,
    }}>
      <div style={{
        fontFamily: 'Cinzel, serif', fontSize: 18, fontWeight: 700,
        color: accent, marginBottom: 16,
      }}>60-second Ozwin answer</div>
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, minmax(0, 1fr))', gap: 14 }}>
        {items.map((item) => (
          <div key={item.label} style={{
            background: 'rgba(0,0,0,0.18)',
            border: '1px solid rgba(255,255,255,0.06)',
            borderRadius: 12,
            padding: 16,
          }}>
            <div style={{
              fontFamily: 'Raleway, sans-serif', fontSize: 11, fontWeight: 700,
              color: accent, textTransform: 'uppercase', letterSpacing: '0.09em',
              marginBottom: 8,
            }}>{item.label}</div>
            <div style={{
              fontFamily: 'Raleway, sans-serif', fontSize: 13, lineHeight: 1.7,
              color: 'rgba(255,255,255,0.68)',
            }}>{item.value}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

function CheckList({ items, accent }) {
  return (
    <div style={{ display: 'flex', flexDirection: 'column', gap: 12, marginBottom: 24 }}>
      {items.map((item, i) => (
        <div key={i} style={{ display: 'flex', gap: 12, alignItems: 'flex-start' }}>
          <span style={{
            minWidth: 22, height: 22, borderRadius: '50%',
            border: `1px solid ${accent}55`, color: accent,
            display: 'flex', alignItems: 'center', justifyContent: 'center',
            fontFamily: 'Raleway, sans-serif', fontSize: 11, fontWeight: 700,
            marginTop: 3,
          }}>{i + 1}</span>
          <p style={{
            fontFamily: 'Raleway, sans-serif', fontSize: 14, lineHeight: 1.75,
            color: 'rgba(255,255,255,0.66)', margin: 0,
          }}>{item}</p>
        </div>
      ))}
    </div>
  );
}

function StatusTable({ accent }) {
  const rows = [
    ['Ozwin $50 no-deposit bonus', 'Search-result claim to verify', 'Confirm current status in the cashier or official promotions area.'],
    ['Ozwin casino free chip', 'Possible bonus type', 'Check if it is live, account-specific, expired, or limited by game rules.'],
    ['Ozwin free spins', 'Possible separate offer', 'Confirm eligible games, bet rules, expiry, and withdrawal restrictions.'],
    ['Ozwin bonus code', 'Unverified until accepted', 'Do not trust a public code list unless the cashier shows live terms.'],
  ];
  return (
    <div style={{ overflowX: 'auto', marginBottom: 28 }}>
      <table style={{
        width: '100%', borderCollapse: 'collapse',
        fontFamily: 'Raleway, sans-serif', fontSize: 13,
      }}>
        <thead>
          <tr>
            {['Claim users search for', 'Safe status', 'What to verify'].map((h) => (
              <th key={h} style={{
                textAlign: 'left', padding: '12px 14px',
                borderBottom: `2px solid ${accent}33`,
                color: accent, fontWeight: 700, letterSpacing: '0.04em',
                whiteSpace: 'nowrap',
              }}>{h}</th>
            ))}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, ri) => (
            <tr key={row[0]} style={{ background: ri % 2 === 0 ? 'rgba(255,255,255,0.025)' : 'transparent' }}>
              {row.map((cell, ci) => (
                <td key={cell} style={{
                  padding: '13px 14px',
                  borderBottom: '1px solid rgba(255,255,255,0.06)',
                  color: ci === 0 ? 'rgba(255,255,255,0.82)' : 'rgba(255,255,255,0.62)',
                  fontWeight: ci === 0 ? 700 : 400,
                  minWidth: ci === 2 ? 280 : 180,
                  lineHeight: 1.6,
                }}>{cell}</td>
              ))}
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}

function FAQSection({ accent }) {
  const [openIdx, setOpenIdx] = React.useState(0);
  return (
    <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>
      {faqItems.map((faq, i) => (
        <div key={faq.q} style={{
          border: '1px solid',
          borderColor: openIdx === i ? `${accent}44` : 'rgba(255,255,255,0.07)',
          borderRadius: 12,
          overflow: 'hidden',
          transition: 'all 0.3s',
          background: openIdx === i ? `${accent}08` : 'rgba(255,255,255,0.02)',
        }}>
          <button onClick={() => setOpenIdx(openIdx === i ? -1 : i)} style={{
            display: 'flex', alignItems: 'center', justifyContent: 'space-between',
            width: '100%', padding: '16px 20px', border: 'none', cursor: 'pointer',
            background: 'transparent', textAlign: 'left',
            fontFamily: 'Raleway, sans-serif', fontSize: 14, fontWeight: 700,
            color: openIdx === i ? '#fff' : 'rgba(255,255,255,0.82)',
          }}>
            <span>{faq.q}</span>
            <span style={{
              color: accent, fontSize: 18, flexShrink: 0, marginLeft: 16,
              transform: openIdx === i ? 'rotate(45deg)' : 'none',
              transition: 'transform 0.3s',
            }}>+</span>
          </button>
          {openIdx === i && (
            <div style={{
              padding: '0 20px 16px',
              fontFamily: 'Raleway, sans-serif', fontSize: 13, lineHeight: 1.8,
              color: 'rgba(255,255,255,0.62)',
            }}>{faq.a}</div>
          )}
        </div>
      ))}
    </div>
  );
}

function ArticleContent({ accent }) {
  const a = accent || ACCENT;

  return (
    <div style={{
      background: 'linear-gradient(180deg, #040d08 0%, #06150e 20%, #040d08 100%)',
      position: 'relative',
    }}>
      <section id="article" style={{ paddingTop: 80, scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Ozwin in 60 seconds</h2>
          <p style={sectionSubStyle}>
            This Ozwin Casino Australia guide is built for players checking login, bonus-code, no-deposit, free-spins, and legitimacy claims quickly. Some search results mention a $50 Ozwin no-deposit bonus, free chips, free spins, or bonus codes. Treat these as claims to verify, not confirmed active offers.
          </p>
          <p style={sectionSubStyle}>
            Before clicking, depositing, or entering a code, check Ozwin's current promotions page or cashier for live terms, wagering, max cashout, eligible games, expiry date, and whether the offer applies to new or existing players.
          </p>
          <QuickAnswer accent={a} />
          <CTABanner accent={a} text="Review Login and Bonus Checks" sub="Use the live cashier or promotions area to verify any Ozwin casino no deposit bonus Australia claim before acting on it." />
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="no-deposit-status" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Are Ozwin $50 no-deposit claims active?</h2>
          <p style={sectionSubStyle}>
            The phrase ozwin casino $50 no deposit bonus Australia appears in search demand because players want a quick answer. A safer answer is simple: this page does not confirm that a $50 offer is active. It treats the $50 free-chip angle as a search-result claim until the current Ozwin cashier or promotions page confirms it.
          </p>
          <StatusTable accent={a} />
          <p style={sectionSubStyle}>
            If a third-party page lists a code, expiry date, wagering figure, or cashout number, verify it against the live offer screen before using it. Old bonus pages can remain indexed long after an offer changes.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="login-check" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Ozwin casino login Australia - check this before claiming</h2>
          <p style={sectionSubStyle}>
            For ozwin casino login Australia intent, the useful task is not to rush into an offer. Log in through the current domain you trust, then inspect the cashier, account messages, and promotions area for the offer shown on your own account.
          </p>
          <div style={cardStyle}>
            <CheckList accent={a} items={[
              'Confirm you are on the intended Ozwin login page before entering account details.',
              'Open the cashier or promotions area and look for the offer terms shown there.',
              'Check whether the offer is public, new-player only, existing-player only, or account-specific.',
              'Do not enter an Ozwin casino bonus code Australia claim from a search result until the cashier confirms it.',
            ]} />
          </div>
          <p style={sectionSubStyle}>
            This matters for ozwin casino login Australia no deposit bonus searches because a login screen can lead to account-specific terms that differ from public snippets and affiliate pages.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="bonus-code" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Ozwin bonus code - official code or outdated SERP claim?</h2>
          <p style={sectionSubStyle}>
            Bonus-code pages often age badly. A code can be real, expired, region-limited, deposit-linked, or available only to selected accounts. For ozwin casino bonus codes for existing players Australia, be especially careful: existing-player offers are often tied to account history or inbox promotions.
          </p>
          <p style={sectionSubStyle}>
            A safe page should never present a public code as currently live without current operator evidence. The safer wording is: "Search results mention Ozwin bonus codes; verify any code inside the live cashier before relying on it."
          </p>
          <CTABanner accent={a} text="Verify Ozwin Bonus Terms" sub="A code is useful only when the live cashier accepts it and displays the current terms for your account." />
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="rules-to-verify" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>No-deposit rules to verify: wagering, max cashout, eligible games, expiry</h2>
          <p style={sectionSubStyle}>
            No-deposit bonuses can look simple in search snippets, but the usable value depends on the rules. Before relying on an Ozwin casino free chip or free-spins claim, verify the limits that decide whether the offer fits you.
          </p>
          <div style={cardStyle}>
            <CheckList accent={a} items={checklistItems} />
          </div>
          <p style={sectionSubStyle}>
            Do not assume Ozwin casino wagering requirements or Ozwin casino max cashout numbers from an old article are current. Use the current terms shown with the offer.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="minimum-deposit" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Minimum deposit and cashier check</h2>
          <p style={sectionSubStyle}>
            Searchers also look for Ozwin casino minimum deposit details. This page does not state a live minimum deposit because payment rules can change by method, account, country, and promotion. Check the cashier before making a payment.
          </p>
          <p style={sectionSubStyle}>
            If a no-deposit claim turns into a deposit requirement, pause and read the offer again. Confirm whether the deposit unlocks a different promotion, changes wagering, changes max cashout, or affects eligible games.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="free-spins-free-chip" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Free spins / free chip claims</h2>
          <p style={sectionSubStyle}>
            Ozwin casino 100 free spins no deposit Australia searches and Ozwin casino free chip searches are related, but they are not the same offer type. Free spins may be tied to selected games, while a free chip may have different game, bet, and withdrawal restrictions.
          </p>
          <p style={sectionSubStyle}>
            Use neutral language: search results mention free spins and free chips; the player should verify live eligibility, game coverage, expiry, and withdrawal rules before using them.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="games-fit" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Games and pokies quick fit</h2>
          <p style={sectionSubStyle}>
            If an Ozwin bonus is limited to pokies or selected games, that should appear in the live terms. Do not assume table games, video poker, jackpots, or every pokie contributes to wagering unless the current offer says so.
          </p>
          <p style={sectionSubStyle}>
            A bonus is a poor fit if the eligible games are not the games you planned to play, or if the terms make the offer difficult to use responsibly.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="legit-check" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Is Ozwin casino legit in Australia?</h2>
          <p style={sectionSubStyle}>
            The query "is Ozwin casino legit in Australia" needs a verification checklist, not unsupported certainty. Check the current domain, terms and conditions, bonus rules, support options, payment information, complaint patterns, responsible gambling tools, and any operator or licence statements published by the site itself.
          </p>
          <div style={cardStyle}>
            <CheckList accent={a} items={[
              'Does the current site clearly publish terms, privacy, bonus rules, and responsible gambling information?',
              'Are payment, identity-check, and withdrawal rules easy to find before depositing?',
              'Do support links work, and do they answer account-specific bonus questions?',
              'Do independent complaints or user reports raise issues you should consider before depositing?',
            ]} />
          </div>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="skip" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>Who should skip this bonus</h2>
          <p style={sectionSubStyle}>
            Skip a no-deposit, free-chip, or free-spins offer if the terms are missing, the code source is unclear, the eligible games do not match your intent, or the wagering and withdrawal restrictions feel hard to track.
          </p>
          <p style={sectionSubStyle}>
            Also skip it if you are chasing losses, stretching your budget, or treating a bonus as income. Gambling is entertainment, not a way to make money.
          </p>
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="faq" style={{ scrollMarginTop: 106 }}>
        <div style={sectionWrapStyle}>
          <h2 style={sectionTitleStyle(a)}>FAQ</h2>
          <FAQSection accent={a} />
          <hr style={dividerStyle(a)} />
        </div>
      </section>

      <section id="responsible-gambling" style={{ scrollMarginTop: 106, paddingBottom: 60 }}>
        <div style={sectionWrapStyle}>
          <div style={{
            ...cardStyle, textAlign: 'center',
            borderColor: 'rgba(255,255,255,0.12)',
          }}>
            <div style={{
              fontFamily: 'Cinzel, serif', fontSize: 16, fontWeight: 700,
              color: 'rgba(255,255,255,0.76)', marginBottom: 10,
            }}>Responsible gambling note</div>
            <p style={{
              fontFamily: 'Raleway, sans-serif', fontSize: 12, lineHeight: 1.8,
              color: 'rgba(255,255,255,0.48)', maxWidth: 680, margin: '0 auto 16px',
            }}>
              18+ only. Gambling is entertainment, not income. No-deposit wagering and free-chip offers can encourage chasing terms instead of making calm decisions. Set limits before you play, and step away if gambling stops feeling controlled.
            </p>
            <div style={{ display: 'flex', gap: 16, justifyContent: 'center', flexWrap: 'wrap' }}>
              <a href="https://www.gamblinghelponline.org.au/" target="_blank" rel="noopener" style={{
                fontFamily: 'Raleway, sans-serif', fontSize: 11, color: 'rgba(255,255,255,0.56)',
                textDecoration: 'underline', textUnderlineOffset: 3,
              }}>Gambling Help Online</a>
            </div>
          </div>

          <div style={{
            marginTop: 24, padding: 20, borderRadius: 10,
            background: 'rgba(255,255,255,0.02)', border: '1px solid rgba(255,255,255,0.05)',
          }}>
            <p style={{
              fontFamily: 'Raleway, sans-serif', fontSize: 11, lineHeight: 1.7,
              color: 'rgba(255,255,255,0.38)', margin: 0, textAlign: 'center',
            }}>
              <strong style={{ color: 'rgba(255,255,255,0.48)' }}>Affiliate disclosure:</strong> This page may contain affiliate links. If you use them, the publisher may earn a commission at no extra cost to you. This does not make any bonus, code, payout, or operator claim active or verified.
            </p>
          </div>
        </div>
      </section>
    </div>
  );
}

Object.assign(window, { ArticleContent });
