// RiftFaq.jsx — консолідовані поширені питання (всі категорії в одному місці).

const T_FAQ = {
  uk: {
    eyebrow: 'Поширені питання',
    h1a: 'Питання',
    h1b: 'та відповіді',
    sub: 'Усе про адміністрування рівненських доменів, реєстрацію, безпеку та керування — в одному місці. Не знайшли відповіді? Напишіть нам — контакти внизу сторінки.',
    groups: [
      {
        cat: 'Загальне',
        items: [
          { q: 'Хто такий адміністратор зони і чим він відрізняється від реєстратора?', a: 'Адміністратор (РІФТ) відповідає за технічну та організаційну роботу доменної зони: веде реєстр, делегування, DNSSEC, акредитує реєстраторів і публікує регламенти. Реєстратор — це партнер, який безпосередньо оформлює, продовжує й супроводжує домени для кінцевих клієнтів. РІФТ не продає домени напряму.' },
          { q: 'Якими зонами опікується РІФТ?', a: 'ТОВ «РІФТ» адмініструє три регіональні публічні домени Рівненщини: rivne.ua (офіційна українська зона), rv.ua (коротке скорочення) та rovno.ua (історична, закрита для нових реєстрацій з 2022 року).' },
          { q: 'Чи можна зареєструвати rivne.ua напряму через РІФТ?', a: 'Ні. РІФТ — адміністратор зони. Реєстрації відбуваються лише через акредитованих реєстраторів. Це світова практика, подібна до моделі gTLD через ICANN.' },
        ],
      },
      {
        cat: 'Реєстрація доменів',
        items: [
          { q: 'Як зареєструвати рівненський домен?', a: 'Перевірте вільне імʼя, оберіть акредитованого реєстратора зі списку та подайте заявку. Технічно реєстрація триває від 5 хвилин до 2 годин; регіональна верифікація rivne.ua — до одного робочого дня.' },
          { q: 'Скільки коштує домен?', a: 'РІФТ — адміністратор і не встановлює роздрібних цін. Вартість визначає реєстратор: орієнтовно 200–800 грн на рік залежно від зони, тарифу й терміну.' },
          { q: 'Які є обмеження на доменне імʼя?', a: 'Довжина — від 1 до 63 символів. Дозволено латинські літери, цифри та дефіс (-). Імʼя не може починатися або закінчуватися дефісом. Для кириличних назв використовується технологія IDN.' },
          { q: 'Що таке регіональна верифікація для rivne.ua?', a: 'Для зони rivne.ua заявник підтверджує звʼязок з Рівненщиною (реєстрація, діяльність, представництво). Це зберігає зону як справді локальну. Зона rv.ua — з відкритою реєстрацією, без верифікації.' },
        ],
      },
      {
        cat: 'Зони та домени',
        items: [
          { q: 'Чим відрізняється rivne.ua від rv.ua?', a: 'rivne.ua — повна українська назва міста, для офіційних ресурсів, установ, освіти й медіа. rv.ua — коротке скорочення, зручне бізнесу та IT. Обидві зони DNSSEC-захищені й адмініструються РІФТ.' },
          { q: 'Чому зону rovno.ua закрито?', a: 'Зону створено 1992 року з російською транслітерацією назви міста. Після повномасштабного вторгнення РФ 2022 року її виведено з обігу. Активні домени мігрують у rivne.ua або rv.ua.' },
          { q: 'Що таке кириличні домени (IDN)?', a: 'IDN (Internationalized Domain Names) дозволяють використовувати в імені домену українську абетку за стандартом IDNA. Українська може бути не лише у змісті сайту, а й у самій адресі.' },
        ],
      },
      {
        cat: 'Безпека та DNSSEC',
        items: [
          { q: 'Що таке DNSSEC і навіщо він домену?', a: 'DNSSEC додає до DNS-відповідей криптографічний підпис. Він гарантує, що відвідувач потрапляє саме на ваш сайт, а не на підроблений через підміну DNS (cache poisoning). РІФТ першим в Україні впровадив DNSSEC для регіональних доменів — ще 2012 року.' },
          { q: 'Як увімкнути DNSSEC для рівненського домену?', a: 'Через вашого реєстратора: він генерує ключі та публікує DS-запис у реєстрі РІФТ. Зони rivne.ua та rv.ua вже підписані на рівні .ua, тож ваш домен входить у безперервний ланцюг довіри аж до кореня DNS.' },
          { q: 'Чим DNSSEC відрізняється від SSL-сертифіката?', a: 'Це різні рівні захисту, що доповнюють одне одного. SSL/TLS шифрує зʼєднання вже із сайтом (https). DNSSEC захищає попередній крок — пошук адреси домену в DNS, щоб вас не перенаправили на чужий сервер.' },
          { q: 'Як домен захищено від крадіжки?', a: 'Передача домену можлива лише за одноразовим EPP-кодом, який видає поточний власник. У акредитованих реєстраторів обовʼязкова двофакторна автентифікація. Зони підписані DNSSEC.' },
        ],
      },
      {
        cat: 'Керування та передача',
        items: [
          { q: 'Як перенести домен до іншого реєстратора?', a: 'Запитайте одноразовий EPP-код у поточного реєстратора й передайте новому. Перенесення між акредитованими реєстраторами — безкоштовне.' },
          { q: 'Як продовжити домен?', a: 'Продовження виконує ваш реєстратор. Рекомендуємо ввімкнути автоматичне поновлення, щоб уникнути випадкового припинення делегування. Термін реєстрації — від 1 до 10 років.' },
          { q: 'Чи можна повернути захоплений бренд-домен?', a: 'Так. Діє процедура UADRP для спорів за торговельними марками: домен можна повернути законному правовласнику протягом 60 днів.' },
        ],
      },
    ],
    cta: 'Не знайшли відповіді?',
    ctaSub: 'Напишіть нам — відповімо й допоможемо обрати реєстратора.',
    ctaBtn: 'Написати в РІФТ',
  },
  en: {
    eyebrow: 'Frequently asked questions',
    h1a: 'Questions',
    h1b: '& answers',
    sub: 'Everything about administering Rivne domains, registration, security and management — in one place. Didn\'t find an answer? Write to us — contacts at the bottom of the page.',
    groups: [
      {
        cat: 'General',
        items: [
          { q: 'What is a zone administrator and how does it differ from a registrar?', a: 'The administrator (RIFT) is responsible for the technical and organisational operation of a domain zone: registry, delegation, DNSSEC, accrediting registrars and publishing regulations. A registrar is a partner that directly registers, renews and supports domains for end clients. RIFT does not sell domains directly.' },
          { q: 'Which zones does RIFT administer?', a: 'RIFT Ltd. administers three regional public domains of the Rivne region: rivne.ua (the official Ukrainian zone), rv.ua (a short alias) and rovno.ua (historical, closed to new registrations since 2022).' },
          { q: 'Can I register rivne.ua directly through RIFT?', a: 'No. RIFT is the zone administrator. Registrations happen only through accredited registrars — the same model as gTLDs via ICANN.' },
        ],
      },
      {
        cat: 'Registering domains',
        items: [
          { q: 'How do I register a Rivne domain?', a: 'Check an available name, choose an accredited registrar from the list and apply. Registration technically takes 5 minutes to 2 hours; rivne.ua regional verification — up to one business day.' },
          { q: 'How much does a domain cost?', a: 'RIFT is the administrator and does not set retail prices. The registrar sets the cost: roughly UAH 200–800 per year depending on zone, plan and term.' },
          { q: 'Are there restrictions on a domain name?', a: 'Length is 1 to 63 characters. Latin letters, digits and a hyphen (-) are allowed. A name cannot start or end with a hyphen. Cyrillic names use IDN technology.' },
          { q: 'What is regional verification for rivne.ua?', a: 'For the rivne.ua zone the applicant confirms ties to the Rivne region (registration, activity, representation). This keeps the zone genuinely local. The rv.ua zone has open registration with no verification.' },
        ],
      },
      {
        cat: 'Zones & domains',
        items: [
          { q: 'How does rivne.ua differ from rv.ua?', a: 'rivne.ua is the full Ukrainian city name, for official resources, institutions, education and media. rv.ua is a short alias, convenient for business and IT. Both are DNSSEC-protected and administered by RIFT.' },
          { q: 'Why was the rovno.ua zone closed?', a: 'The zone was created in 1992 with a Russian transliteration of the city name. After Russia\'s full-scale invasion in 2022 it was retired. Active domains migrate to rivne.ua or rv.ua.' },
          { q: 'What are Cyrillic domains (IDN)?', a: 'IDN (Internationalized Domain Names) allow the Ukrainian alphabet in the domain name itself, per the IDNA standard. Ukrainian can be not only in the site content but in the address too.' },
        ],
      },
      {
        cat: 'Security & DNSSEC',
        items: [
          { q: 'What is DNSSEC and why does a domain need it?', a: 'DNSSEC adds a cryptographic signature to DNS responses. It guarantees a visitor reaches your real site, not a forgery served via DNS cache poisoning. RIFT was the first in Ukraine to deploy DNSSEC for regional domains, back in 2012.' },
          { q: 'How do I enable DNSSEC for a Rivne domain?', a: 'Through your registrar: it generates the keys and publishes the DS record in the RIFT registry. The rivne.ua and rv.ua zones are already signed at the .ua level, so your domain joins an unbroken chain of trust up to the DNS root.' },
          { q: 'How is DNSSEC different from an SSL certificate?', a: 'They are complementary layers. SSL/TLS encrypts the connection to the site itself (https). DNSSEC protects the earlier step — looking up the domain address in DNS — so you are not redirected to someone else\'s server.' },
          { q: 'How is a domain protected from theft?', a: 'A transfer is only possible via a one-time EPP code issued by the current owner. Accredited registrars enforce two-factor authentication. Zones are DNSSEC-signed.' },
        ],
      },
      {
        cat: 'Management & transfer',
        items: [
          { q: 'How do I transfer a domain to another registrar?', a: 'Request a one-time EPP code from your current registrar and pass it to the new one. Transfers between accredited registrars are free.' },
          { q: 'How do I renew a domain?', a: 'Renewal is handled by your registrar. We recommend enabling auto-renewal to avoid accidental loss of delegation. The registration term is 1 to 10 years.' },
          { q: 'Can a hijacked brand domain be recovered?', a: 'Yes. A UADRP procedure applies for trademark disputes: a domain can be returned to the rightful owner within 60 days.' },
        ],
      },
    ],
    cta: 'Didn\'t find an answer?',
    ctaSub: 'Write to us — we\'ll reply and help you choose a registrar.',
    ctaBtn: 'Email RIFT',
  },
};

const FaqPage = ({ lang, setPage }) => {
  const t = T_FAQ[lang];
  const [open, setOpen] = React.useState('0-0');
  return (
    <main className="rb-page">
      <section className="rb-pagehead rb-pagehead--whois">
        <div className="rb-eyebrow"><span className="rb-eyebrow__dot" />{t.eyebrow}</div>
        <h1 className="rb-h1 rb-h1--page">
          <span className="rb-h1__a">{t.h1a}</span>
          <span className="rb-h1__b">{t.h1b}</span>
        </h1>
        <p className="rb-lead">{t.sub}</p>
      </section>

      {t.groups.map((g, ci) => (
        <section className={`rb-section ${ci % 2 === 1 ? 'rb-section--alt' : ''}`} key={ci} style={ci === 0 ? { paddingTop: 0 } : undefined}>
          <div className="rb-faqcat">
            <span className="rb-faqcat__num">{String(ci + 1).padStart(2, '0')}</span>
            <h2 className="rb-faqcat__t">{g.cat}</h2>
          </div>
          <div className="rb-faq">
            {g.items.map((f, ii) => {
              const id = ci + '-' + ii;
              return (
                <div key={id} className={`rb-faq__item ${open === id ? 'is-open' : ''}`}>
                  <button className="rb-faq__q" onClick={() => setOpen(open === id ? '' : id)}>
                    <span className="rb-faq__qNum">{String(ii + 1).padStart(2, '0')}</span>
                    <span className="rb-faq__qTxt">{f.q}</span>
                    <span className="rb-faq__qArr">{open === id ? '−' : '+'}</span>
                  </button>
                  {open === id && <div className="rb-faq__a">{f.a}</div>}
                </div>
              );
            })}
          </div>
        </section>
      ))}

      <section className="rb-section" style={{ paddingTop: 0 }}>
        <div className="rb-regcta">
          <div>
            <h3 className="rb-regcta__t">{t.cta}</h3>
            <p className="rb-regcta__s">{t.ctaSub}</p>
          </div>
          <MailButton className="rb-btn rb-btn--primary" user="info">{t.ctaBtn} <span aria-hidden>→</span></MailButton>
        </div>
      </section>
    </main>
  );
};
window.FaqPage = FaqPage;
