<?php
declare(strict_types=1);
require __DIR__ . '/bootstrap.php';

// Flash data from send.php (Post/Redirect/Get)
$status = $_SESSION['form_status'] ?? null;
$errors = $_SESSION['form_errors'] ?? [];
$old    = $_SESSION['form_old'] ?? [];
unset($_SESSION['form_status'], $_SESSION['form_errors'], $_SESSION['form_old']);

$_SESSION['form_started'] = time();
$captcha = captcha_mode($config);

function err(array $errors, string $key): string
{
    return isset($errors[$key]) ? '<p class="field-error" id="' . $key . '-error">' . h($errors[$key]) . '</p>' : '';
}
function invalid(array $errors, string $key): string
{
    return isset($errors[$key]) ? ' aria-invalid="true" aria-describedby="' . $key . '-error"' : '';
}
?><!DOCTYPE html>
<html lang="nl">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Little Voices Studio – Privéles Chinees voor kinderen en volwassenen</title>
  <meta name="description" content="Persoonlijke privélessen Chinees (Mandarijn) voor kinderen en volwassenen. Leer spreken, lezen en schrijven op je eigen tempo. Neem vrijblijvend contact op.">
  <meta property="og:title" content="Little Voices Studio – Privéles Chinees">
  <meta property="og:description" content="Persoonlijke privélessen Chinees voor kinderen en volwassenen.">
  <meta property="og:image" content="assets/logo.png">
  <link rel="icon" type="image/png" href="assets/favicon.png">
  <link rel="apple-touch-icon" href="assets/apple-touch-icon.png">
  <link rel="stylesheet" href="assets/style.css?v=3">
  <?php if ($captcha === 'turnstile'): ?>
  <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
  <?php endif; ?>
</head>
<body>

<header class="site-header">
  <div class="wrap nav">
    <a href="#top" class="brand" aria-label="Little Voices Studio – naar boven">
      <img src="assets/logo-header.png" alt="Little Voices Studio" width="189" height="169">
    </a>
    <nav aria-label="Hoofdmenu">
      <a href="#over-mij">Over mij</a>
      <a href="#lessen">Lessen</a>
      <a href="#werkwijze">Werkwijze</a>
      <a href="#contact" class="btn btn-small">Contact</a>
    </nav>
  </div>
</header>

<main id="top">

  <!-- HERO -->
  <section class="hero">
    <div class="wrap hero-grid">
      <div>
        <p class="eyebrow">Privéles Chinees · Mandarijn</p>
        <h1>Chinees leren,<br><span>stap voor stap.</span></h1>
        <p class="lead">Persoonlijke lessen voor kinderen en volwassenen. Of je nu vanaf nul begint of je Chinees verder wilt ontwikkelen: we werken op jouw tempo, met aandacht voor spreken, luisteren, lezen en schrijven.</p>
        <div class="hero-actions">
          <a href="#contact" class="btn">Stuur een bericht</a>
          <a href="#lessen" class="btn btn-ghost">Bekijk de lessen</a>
        </div>
      </div>
      <div class="hero-art">
        <div class="hanzi" aria-hidden="true">学</div>
        <figure class="portrait">
          <picture>
            <source srcset="assets/yanyan.webp" type="image/webp">
            <img src="assets/yanyan.jpg" alt="Yanyan, docent Chinees bij Little Voices Studio" width="640" height="800">
          </picture>
        </figure>
        <div class="bubble b1" aria-hidden="true">你好!</div>
        <div class="bubble b2" aria-hidden="true">谢谢</div>
        <div class="bubble b3" aria-hidden="true">我爱学习</div>
      </div>
    </div>
  </section>

  <!-- ABOUT -->
  <section id="over-mij" class="section about">
    <div class="wrap about-inner">
      <div class="seal" aria-hidden="true">老师</div>
      <div>
        <h2 class="section-title left">Hoi, ik ben Yanyan!</h2>
        <p>Ik ben de docent achter Little Voices Studio. Ik spreek zelf vijf talen, dus ik weet uit ervaring hoe het voelt om een nieuwe taal te leren: soms lastig, vaak grappig en vooral heel leuk als het begint te lukken.</p>
        <p>In mijn lessen staat jouw stem centraal, of je nu vier bent of vijfenveertig. We oefenen veel met spreken, zodat je de taal echt durft te gebruiken. Ik pas elke les aan op wat jij nodig hebt.</p>
        <p class="signature">— Yanyan <span lang="zh">老师</span></p>
      </div>
    </div>
  </section>

  <!-- LESSONS -->
  <section id="lessen" class="section">
    <div class="wrap">
      <h2 class="section-title">Lessen op maat</h2>
      <p class="section-intro">Elke les is één-op-één, dus volledig afgestemd op jouw niveau, doelen en interesses.</p>
      <div class="cards">
        <article class="card">
          <div class="card-icon red" aria-hidden="true">童</div>
          <h3>Voor kinderen</h3>
          <p>Speels en afwisselend leren met liedjes, spelletjes, verhalen en karakters. Kinderen bouwen spelenderwijs woordenschat en een goede uitspraak op.</p>
          <ul>
            <li>Ook voor kinderen die thuis al Chinees horen</li>
            <li>Uitspraak en tonen vanaf het begin goed</li>
            <li>Lezen en schrijven van karakters</li>
          </ul>
        </article>
        <article class="card">
          <div class="card-icon ink" aria-hidden="true">人</div>
          <h3>Voor volwassenen</h3>
          <p>Voor werk, reizen, familie of gewoon uit interesse. We richten ons op wat jij nodig hebt, van eerste gesprekjes tot zakelijk Chinees.</p>
          <ul>
            <li>Beginners en gevorderden</li>
            <li>Praktische gesprekken en pinyin</li>
            <li>Inzicht in de Chinese cultuur</li>
          </ul>
        </article>
      </div>
    </div>
  </section>

  <!-- WHY -->
  <section class="section section-tint">
    <div class="wrap features">
      <div class="feature">
        <span class="feature-num">1:1</span>
        <h3>Persoonlijke aandacht</h3>
        <p>Geen klas, maar alle aandacht voor jou of je kind.</p>
      </div>
      <div class="feature">
        <span class="feature-num">听说</span>
        <h3>Echt leren spreken</h3>
        <p>Veel oefenen met luisteren en praten, zodat je de taal ook durft te gebruiken.</p>
      </div>
      <div class="feature">
        <span class="feature-num">文化</span>
        <h3>Taal én cultuur</h3>
        <p>Feestdagen, gewoontes en verhalen maken de taal levend.</p>
      </div>
    </div>
  </section>

  <!-- HOW IT WORKS -->
  <section id="werkwijze" class="section">
    <div class="wrap">
      <h2 class="section-title">Zo werkt het</h2>
      <ol class="steps">
        <li><strong>Stuur een bericht</strong><span>Vertel kort wie de lessen volgt en wat je wilt leren.</span></li>
        <li><strong>Kennismaken</strong><span>We bespreken je niveau, doelen en de mogelijkheden.</span></li>
        <li><strong>Aan de slag</strong><span>We plannen de lessen op een moment dat jou uitkomt.</span></li>
      </ol>
    </div>
  </section>

  <!-- CONTACT -->
  <section id="contact" class="section contact">
    <div class="wrap contact-grid">
      <div class="contact-text">
        <h2 class="section-title left">Interesse?</h2>
        <p>Laat je naam en e-mailadres achter, dan neem ik zo snel mogelijk persoonlijk contact met je op. Een bericht sturen is helemaal vrijblijvend.</p>
        <p class="hello" aria-hidden="true">期待认识你!</p>
        <p class="small">Tot snel!</p>
      </div>

      <div class="form-card">
        <?php if ($status === 'sent'): ?>
          <div class="alert success" role="status">
            <strong>Bedankt voor je bericht!</strong><br>
            Ik neem zo snel mogelijk contact met je op.
          </div>
        <?php elseif (isset($errors['form'])): ?>
          <div class="alert error" role="alert"><?= h($errors['form']) ?></div>
        <?php elseif ($errors): ?>
          <div class="alert error" role="alert">Controleer de gemarkeerde velden.</div>
        <?php endif; ?>

        <form action="send.php" method="post" novalidate>
          <input type="hidden" name="csrf" value="<?= h($_SESSION['csrf']) ?>">

          <div class="hp" aria-hidden="true">
            <label for="website">Laat dit veld leeg</label>
            <input type="text" id="website" name="website" tabindex="-1" autocomplete="off">
          </div>

          <label for="name">Naam <span class="req" aria-hidden="true">*</span></label>
          <input type="text" id="name" name="name" required maxlength="100" autocomplete="name"
                 value="<?= h($old['name'] ?? '') ?>"<?= invalid($errors, 'name') ?>>
          <?= err($errors, 'name') ?>

          <label for="email">E-mailadres <span class="req" aria-hidden="true">*</span></label>
          <input type="email" id="email" name="email" required maxlength="254" autocomplete="email"
                 value="<?= h($old['email'] ?? '') ?>"<?= invalid($errors, 'email') ?>>
          <?= err($errors, 'email') ?>

          <label for="message">Bericht <span class="opt">(optioneel)</span></label>
          <textarea id="message" name="message" rows="5" maxlength="5000"
                    placeholder="Bijvoorbeeld: voor wie zijn de lessen, wat is het niveau en wat wil je leren?"<?= invalid($errors, 'message') ?>><?= h($old['message'] ?? '') ?></textarea>
          <?= err($errors, 'message') ?>

          <?php if ($captcha === 'turnstile'): ?>
            <div class="cf-turnstile" data-sitekey="<?= h($config['turnstile']['site_key']) ?>" data-language="nl"></div>
          <?php else: ?>
            <label for="captcha">Beveiligingscode <span class="req" aria-hidden="true">*</span></label>
            <div class="captcha-row">
              <img src="captcha.php?<?= time() ?>" alt="Beveiligingscode: typ de tekens uit deze afbeelding" id="captcha-img" width="180" height="60">
              <button type="button" class="refresh" id="captcha-refresh" aria-label="Nieuwe code">↻</button>
              <input type="text" id="captcha" name="captcha" required maxlength="8" autocomplete="off"
                     autocapitalize="characters" spellcheck="false" inputmode="text"
                     placeholder="Typ de code"<?= invalid($errors, 'captcha') ?>>
            </div>
          <?php endif; ?>
          <?= err($errors, 'captcha') ?>

          <button type="submit" class="btn btn-block">Versturen</button>
          <p class="privacy">Je gegevens worden alleen gebruikt om op je bericht te reageren en worden niet gedeeld met anderen.</p>
        </form>
      </div>
    </div>
  </section>
</main>

<footer class="site-footer">
  <div class="wrap footer-inner">
    <p><strong>Little Voices Studio</strong> · Privéles Chinees<?= !empty($config['city']) ? ' · ' . h($config['city']) : '' ?></p>
    <p>
      <?php if (!empty($config['email_public'])): ?>
        <a href="mailto:<?= h($config['email_public']) ?>"><?= h($config['email_public']) ?></a> ·
      <?php endif; ?>
      <?php if (!empty($config['kvk'])): ?>KvK <?= h($config['kvk']) ?> · <?php endif; ?>
      © <?= date('Y') ?>
    </p>
  </div>
</footer>

<script>
  // Refresh the CAPTCHA image without reloading the page
  (function () {
    var btn = document.getElementById('captcha-refresh');
    var img = document.getElementById('captcha-img');
    if (!btn || !img) return;
    btn.addEventListener('click', function () {
      img.src = 'captcha.php?' + Date.now();
      var input = document.getElementById('captcha');
      input.value = '';
      input.focus();
    });
  })();
</script>
</body>
</html>
