// RiftCompany.jsx — Про нас (AboutPage) + Документи (DocsPage) + Контакти (ContactsPage)

const T_ABOUT = {
  uk: {
    eyebrow: 'Про адміністратора',
    h1a: 'Українська адреса',
    h1b: 'Рівного',
    sub: 'ТОВ «РІФТ» — адміністратор рівненських публічних географічних доменів. Ми не просто тримаємо записи в реєстрі — ми відповідаємо за українську цифрову ідентичність регіону.',
    leadP: 'Товариство з обмеженою відповідальністю «РІФТ» засновано у 2011 році групою технічних фахівців-ентузіастів — як відповідь на вимоги ринку та користувачів.',
    p2: 'Відбулася трансформація системи доменних імен Рівненської області у платформу з надання послуг з реєстрації і підтримки доменних імен з високим рівнем надійності, якості та доступності в інтересах українських споживачів.',
    p3: 'Ми продовжили справу рівненських публічних доменів, започатковану ще у 1992 році, і вивели її на новий рівень у просторах інтернет-спільноти.',
    missionBox: 'Зробити українське — найкращим.',
    missionBoxSub: 'Наша місія в одному реченні.',
    valuesTitle: 'Наша позиція',
    values: [
      { t: 'Україномовний контент', d: 'Сайти у рівненських зонах мають за замовчуванням українську версію. Інші мови — як додаткові.' },
      { t: 'Кирилична деколонізація', d: 'Ми відмовляємося від російської транслітерації топонімів. Лише українські назви: Рівне, не «Ровно».' },
      { t: 'Безпека за замовчуванням', d: 'Усі зони підписані DNSSEC на рівні .ua — захист від підміни DNS вбудований, а не як опція. РІФТ першим в Україні впровадив це для регіональних доменів.' },
      { t: 'Регіональна верифікація', d: 'Реєстрація rivne.ua вимагає підтвердження звʼязку з областю. Нема привʼязки — нема домену.' },
    ],
    tlTitle: 'Шлях адміністратора',
    timeline: [
      { y: '1992', t: 'Перші рівненські домени', d: 'Започатковано публічні домени регіону на ентузіазмі перших адміністраторів.' },
      { y: '2011', t: 'Засновано ТОВ «РІФТ»', d: 'Група технічних фахівців перетворює аматорську справу на професійне адміністрування зон.' },
      { y: '2015', t: 'Делеговано rivne.ua', d: 'Офіційна українська зона міста Рівне з підтримкою DNSSEC.' },
      { y: '2022', t: 'Закриття rovno.ua', d: 'Виведення русифікованої зони з обігу після повномасштабного вторгнення РФ.' },
      { y: '2026', t: 'Сучасний реєстр', d: '48 акредитованих реєстраторів, 1 200+ доменів, anycast-інфраструктура.' },
    ],
    ctaT: 'Хочете стати акредитованим реєстратором?',
    ctaD: 'Компанії, які прагнуть видавати рівненські домени, можуть подати заявку на акредитацію. Напишіть нам — розповімо про вимоги та технічну інтеграцію.',
    ctaBtn: 'Написати про акредитацію',
  },
  en: {
    eyebrow: 'About the administrator',
    h1a: 'A Ukrainian address',
    h1b: 'for Rivne',
    sub: 'RIFT Ltd. is the administrator of the public geographic domains of the Rivne region. We don\'t merely keep registry records — we are responsible for the region\'s Ukrainian digital identity.',
    leadP: 'RIFT Ltd. was founded in 2011 by a group of technical enthusiasts — a response to the demands of the market and users.',
    p2: 'The domain name system of the Rivne region was transformed into a platform for registering and supporting domain names with a high level of reliability, quality and availability in the interest of Ukrainian users.',
    p3: 'We continued the work of Rivne public domains, begun back in 1992, and took it to a new level within the internet community.',
    missionBox: 'Make Ukrainian — the best.',
    missionBoxSub: 'Our mission in one sentence.',
    valuesTitle: 'Our position',
    values: [
      { t: 'Ukrainian-first content', d: 'Sites in Rivne zones have a Ukrainian version by default. Other languages — additional.' },
      { t: 'Cyrillic decolonisation', d: 'We reject Russian transliteration of place names. Only Ukrainian: Rivne, never "Rovno".' },
      { t: 'Security by default', d: 'All zones are DNSSEC-signed at the .ua level — protection against DNS spoofing is built in, not an add-on. RIFT was the first in Ukraine to deploy it for regional domains.' },
      { t: 'Regional verification', d: 'Registration of rivne.ua requires proof of regional ties. No ties, no domain.' },
    ],
    tlTitle: 'The administrator\'s path',
    timeline: [
      { y: '1992', t: 'First Rivne domains', d: 'The region\'s public domains begin on the enthusiasm of the first administrators.' },
      { y: '2011', t: 'RIFT Ltd. founded', d: 'A group of technical specialists turns an amateur effort into professional zone administration.' },
      { y: '2015', t: 'rivne.ua delegated', d: 'The official Ukrainian zone of Rivne city with DNSSEC support.' },
      { y: '2022', t: 'rovno.ua closed', d: 'The Russified zone is retired after Russia\'s full-scale invasion.' },
      { y: '2026', t: 'Modern registry', d: '48 accredited registrars, 1,200+ domains, anycast infrastructure.' },
    ],
    ctaT: 'Want to become an accredited registrar?',
    ctaD: 'Companies wishing to issue Rivne domains can apply for accreditation. Write to us — we\'ll explain the requirements and technical integration.',
    ctaBtn: 'Write about accreditation',
  },
};

const AboutPage = ({ lang }) => {
  const t = T_ABOUT[lang];
  return (
    <main className="rb-page">
      <section className="rb-pagehead rb-pagehead--manifesto">
        <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>
        <div className="rb-flag" aria-hidden><div className="rb-flag__blue" /><div className="rb-flag__yellow" /></div>
      </section>

      <section className="rb-section">
        <div className="rift-mission">
          <div className="rift-prose">
            <p className="rift-prose__lead">{t.leadP}</p>
            <p>{t.p2}</p>
            <p>{t.p3}</p>
          </div>
          <aside className="rift-mission__aside rift-missionbox">
            <div className="rift-mission__asideH">{t.missionBoxSub}</div>
            <div className="rift-missionbox__q">{t.missionBox}</div>
            <div className="rift-missionbox__sign">
              <RiftMark size={34} />
              <span>EST. 2011 · РІВНЕ</span>
            </div>
          </aside>
        </div>
      </section>

      <section className="rb-section rb-section--alt">
        <div className="rb-section__head">
          <h2 className="rb-h2">{t.valuesTitle}</h2>
        </div>
        <div className="rb-pills">
          {t.values.map((p, i) => (
            <article className="rb-pill" key={i}>
              <div className="rb-pill__num">{String(i + 1).padStart(2, '0')}</div>
              <div className="rb-pill__t">{p.t}</div>
              <div className="rb-pill__d">{p.d}</div>
            </article>
          ))}
        </div>
      </section>

      <section className="rb-section">
        <div className="rb-section__head">
          <h2 className="rb-h2">{t.tlTitle}</h2>
        </div>
        <ul className="rb-timeline">
          {t.timeline.map((e, i) => (
            <li className="rb-tline" key={i}>
              <div className="rb-tline__year">{e.y}</div>
              <div className="rb-tline__dot" />
              <div>
                <div className="rb-tline__t">{e.t}</div>
                <div className="rb-tline__d">{e.d}</div>
              </div>
            </li>
          ))}
        </ul>
      </section>

      <section className="rb-section" style={{ paddingTop: 0 }}>
        <div className="rb-partner">
          <div className="rb-partner__copy">
            <h3 className="rb-partner__t">{t.ctaT}</h3>
            <p className="rb-partner__d">{t.ctaD}</p>
          </div>
          <MailButton className="rb-btn rb-btn--primary" user="info">{t.ctaBtn} <span aria-hidden>→</span></MailButton>
        </div>
      </section>
    </main>
  );
};
window.AboutPage = AboutPage;

// ============ DOCUMENTS ============
const T_DOCS = {
  uk: {
    eyebrow: 'Документи',
    h1a: 'Регламенти',
    h1b: 'та правила',
    sub: 'Публічні документи адміністратора: регламенти зон, декларація та політика безпеки.',
    docsTitle: 'Центр документів',
    docs: [
      { t: 'Регламент зони rivne.ua', d: 'Чинні правила реєстрації, продовження, передачі та анулювання доменів у зоні rivne.ua.', ext: 'PDF', rev: 'ред. 01.01.2025', url: 'https://riftltd-public.s3.eu-central-1.amazonaws.com/docs/Reglament_rivne.ua_01.01.25.pdf' },
      { t: 'Меморандум про взаєморозуміння', d: 'Меморандум між ТОВ «РІФТ» та ТОВ «Хостмайстер» (адміністратором .UA) щодо адміністрування публічного домену rv.ua.', ext: 'PDF', rev: 'АПД rv.ua', url: 'https://riftltd-public.s3.eu-central-1.amazonaws.com/docs/%D0%9C%D0%B5%D0%BC%D0%BE%D1%80%D0%B0%D0%BD%D0%B4%D1%83%D0%BC%20%D0%A5%D0%BE%D1%81%D1%82%D0%BC%D0%B0%D0%B8%CC%86%D1%81%D1%82%D0%B5%D1%80%20%D0%90%D0%9F%D0%94%20rv.ua.pdf' },
      { t: 'Регламент публічного домену', d: 'Загальний регламент публічних доменів 2-го рівня (.UA) — базові правила для всіх адміністраторів і реєстраторів.', ext: 'WEB', rev: 'hostmaster.ua', url: 'https://www.hostmaster.ua/policy/2ld.ua/' },
      { t: 'Декларація адміністраторів публічних доменів', d: 'Базові принципи та зобовʼязання адміністраторів публічних доменів України.', ext: 'WEB', rev: '01.12.2009', url: 'https://www.hostmaster.ua/news/?pr20091201' },
      { t: 'Процедура вирішення спорів (UADRP)', d: 'Порядок розгляду спорів про домени за брендами й торговельними марками в доменах .UA.', ext: 'WEB', rev: 'hostmaster.ua', url: 'https://www.hostmaster.ua/policy/ua-drp/' },
    ],
    note: 'Документи відкриваються у новій вкладці. Регламент rivne.ua та Меморандум — прямі PDF; регламент і декларація .UA — на офіційному порталі hostmaster.ua.',
  },
  en: {
    eyebrow: 'Documents',
    h1a: 'Regulations',
    h1b: '& rules',
    sub: 'The administrator\'s public documents: zone regulations, declaration and security policy.',
    docsTitle: 'Document centre',
    docs: [
      { t: 'rivne.ua Zone Regulation', d: 'Current rules for registration, renewal, transfer and cancellation of domains in the rivne.ua zone.', ext: 'PDF', rev: 'rev. 01.01.2025', url: 'https://riftltd-public.s3.eu-central-1.amazonaws.com/docs/Reglament_rivne.ua_01.01.25.pdf' },
      { t: 'Memorandum of Understanding', d: 'Memorandum between RIFT Ltd. and Hostmaster Ltd. (the .UA administrator) on administering the rv.ua public domain.', ext: 'PDF', rev: 'rv.ua APD', url: 'https://riftltd-public.s3.eu-central-1.amazonaws.com/docs/%D0%9C%D0%B5%D0%BC%D0%BE%D1%80%D0%B0%D0%BD%D0%B4%D1%83%D0%BC%20%D0%A5%D0%BE%D1%81%D1%82%D0%BC%D0%B0%D0%B8%CC%86%D1%81%D1%82%D0%B5%D1%80%20%D0%90%D0%9F%D0%94%20rv.ua.pdf' },
      { t: 'Public Domain Regulation', d: 'General regulation of public 2nd-level (.UA) domains — the baseline rules for all administrators and registrars.', ext: 'WEB', rev: 'hostmaster.ua', url: 'https://www.hostmaster.ua/policy/2ld.ua/' },
      { t: 'Public Domain Administrators\' Declaration', d: 'Core principles and commitments of Ukraine\'s public domain administrators.', ext: 'WEB', rev: '01.12.2009', url: 'https://www.hostmaster.ua/news/?pr20091201' },
      { t: 'Dispute Resolution Procedure (UADRP)', d: 'The procedure for handling brand and trademark domain disputes in .UA domains.', ext: 'WEB', rev: 'hostmaster.ua', url: 'https://www.hostmaster.ua/policy/ua-drp/' },
    ],
    note: 'Documents open in a new tab. The rivne.ua Regulation and the Memorandum are direct PDFs; the .UA regulation and declaration are on the official hostmaster.ua portal.',
  },
};

const DocsPage = ({ lang }) => {
  const t = T_DOCS[lang];
  const DOC_BASE = 'https://www.rift.org.ua/documents';
  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>

      <section className="rb-section">
        <div className="rb-section__head">
          <h2 className="rb-h2">{t.docsTitle}</h2>
        </div>
        <div className="rift-docs">
          {t.docs.map((d, i) => (
            <a className="rift-doc" key={i} href={d.url || DOC_BASE} target="_blank" rel="noopener noreferrer">
              <div className="rift-doc__ic"><span className="rift-doc__ext">{d.ext}</span></div>
              <div className="rift-doc__body">
                <div className="rift-doc__t">{d.t}</div>
                <div className="rift-doc__d">{d.d}</div>
              </div>
              <div className="rift-doc__meta">
                <span className="rift-doc__rev">{d.rev}</span>
                <span className="rift-doc__go">{lang === 'uk' ? 'Відкрити' : 'Open'} →</span>
              </div>
            </a>
          ))}
        </div>
        <p style={{ fontSize: 13, color: 'var(--rb-muted)', marginTop: 18, maxWidth: '70ch', fontFamily: 'var(--rb-font-mono)', lineHeight: 1.6 }}>{t.note}</p>
      </section>
    </main>
  );
};
window.DocsPage = DocsPage;

// ============ CONTACTS ============
const T_CONTACT = {
  uk: {
    eyebrow: 'Контакти',
    h1a: 'Звʼязатися',
    h1b: 'з РІФТ',
    sub: 'Адміністратор рівненських публічних географічних доменів. Працюємо з 2011 року. Реєстрацію доменів виконують акредитовані реєстратори — для клієнтських питань звертайтеся до них.',
    cards: [
      { h: 'Загальні питання', user: 'info', s: 'Реєстр, зони, акредитація, партнерство' },
      { h: 'Технічна підтримка', user: 'support', s: 'DNS, делегування, DNSSEC, інциденти' },
      { h: 'Facebook', v: 'facebook.com/RIFT.ltd', s: 'Новини та оголошення адміністратора', href: 'https://www.facebook.com/RIFT.ltd' },
    ],
    legalTitle: 'Юридичні дані',
    legal: [
      ['Повна назва', 'Товариство з обмеженою відповідальністю «РІФТ»'],
      ['Скорочено', 'ТОВ «РІФТ» · RIFT Ltd.'],
      ['ЄДРПОУ', '37614135'],
      ['Поштова адреса', '33028, м. Рівне, а/с 28'],
      ['Заснування', '2011'],
      ['Зони', 'rivne.ua · rv.ua · rovno.ua'],
      ['Вебсайт', 'rift.org.ua'],
    ],
    ctaT: 'Питання про конкретний домен?',
    ctaD: 'Реєстрацію, продовження та підтримку доменів виконують акредитовані реєстратори. Оберіть партнера зі списку.',
    ctaBtn: 'До реєстраторів',
  },
  en: {
    eyebrow: 'Contacts',
    h1a: 'Get in touch',
    h1b: 'with RIFT',
    sub: 'Administrator of the public geographic domains of the Rivne region. Operating since 2011. Domain registration is handled by accredited registrars — for client matters, please contact them.',
    cards: [
      { h: 'General enquiries', user: 'info', s: 'Registry, zones, accreditation, partnership' },
      { h: 'Technical support', user: 'support', s: 'DNS, delegation, DNSSEC, incidents' },
      { h: 'Facebook', v: 'facebook.com/RIFT.ltd', s: 'Administrator news and announcements', href: 'https://www.facebook.com/RIFT.ltd' },
    ],
    legalTitle: 'Legal details',
    legal: [
      ['Full name', 'RIFT Limited Liability Company'],
      ['Short', 'RIFT Ltd. · ТОВ «РІФТ»'],
      ['EDRPOU', '37614135'],
      ['Postal address', '33028, Rivne, P.O. Box 28'],
      ['Founded', '2011'],
      ['Zones', 'rivne.ua · rv.ua · rovno.ua'],
      ['Website', 'rift.org.ua'],
    ],
    ctaT: 'A question about a specific domain?',
    ctaD: 'Registration, renewal and support are handled by accredited registrars. Choose a partner from the list.',
    ctaBtn: 'To registrars',
  },
};

const ContactsPage = ({ lang, setPage }) => {
  const t = T_CONTACT[lang];
  return (
    <main className="rb-page">
      <section className="rb-pagehead rb-pagehead--reg">
        <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>

      <section className="rb-section">
        <div className="rb-contacts">
          {t.cards.map((c, i) => (
            <div className={`rb-contact ${c.href && c.href.includes('facebook') ? 'rb-contact--fb' : ''}`} key={i}>
              <div className="rb-contact__h">{c.h}</div>
              {c.user
                ? <Email className="rb-contact__v" user={c.user} />
                : c.href && c.href.includes('facebook')
                  ? <a className="rb-contact__v rb-contact__v--fb" href={c.href} target="_blank" rel="noopener noreferrer">
                      <span className="rb-contact__fbic" aria-hidden="true"><svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor"><path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.9 3.78-3.9 1.1 0 2.24.2 2.24.2v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.78l-.44 2.89h-2.34v6.99A10 10 0 0 0 22 12z"/></svg></span>
                      {c.v}
                    </a>
                  : <a className="rb-contact__v" href={c.href} target={c.href && c.href.startsWith('http') ? '_blank' : undefined} rel="noopener noreferrer">{c.v}</a>}
              <div className="rb-contact__sub">{c.s}</div>
            </div>
          ))}
        </div>

        <div style={{ marginTop: 40 }}>
          <div className="rb-section__head" style={{ marginBottom: 0 }}>
            <h2 className="rb-h2 rb-h2--s" style={{ fontSize: 24 }}>{t.legalTitle}</h2>
          </div>
          <div className="rift-legal">
            {t.legal.map(([k, v], i) => (
              <div className="rift-legal__row" key={i}><span>{k}</span><b>{v}</b></div>
            ))}
          </div>
        </div>
      </section>

      <section className="rb-section" style={{ paddingTop: 0 }}>
        <div className="rb-regcta">
          <div>
            <h3 className="rb-regcta__t">{t.ctaT}</h3>
            <p className="rb-regcta__s">{t.ctaD}</p>
          </div>
          <button className="rb-btn rb-btn--primary" onClick={() => setPage('registrars')}>{t.ctaBtn} <span aria-hidden>→</span></button>
        </div>
      </section>
    </main>
  );
};
window.ContactsPage = ContactsPage;
