/* global React */
const { useState: useS_i } = React;

function InfoLayout({ kicker, title, sub, children }) {
  return (
    <div className="page">
      <section className="page-banner concrete">
        <div className="mono caps" style={{fontSize:11,color:"var(--gold)",marginBottom:30}}>{kicker}</div>
        <h1>{title}</h1>
        {sub && <div className="sub"><span>{sub}</span><span>SANDLER ATELIER · 2026</span></div>}
      </section>
      <div className="info-body">
        {children}
      </div>
    </div>
  );
}

function InfoSection({ n, title, children }) {
  return (
    <section className="info-section">
      <div className="info-section-head">
        <span className="info-num">— {n}</span>
        <h2>{title}</h2>
      </div>
      <div className="info-prose">{children}</div>
    </section>
  );
}

// ───────── ДОСТАВКА ─────────
function Delivery() {
  const { navigate } = useStore();
  return (
    <InfoLayout kicker="Логистика · СДЭК · Boxberry · Самовывоз" title="Доставка" sub="По России и в страны ЕАЭС">
      <InfoSection n="01" title="Доставка СДЭК">
        <div className="info-grid-3">
          {[
            { name:"СДЭК · Курьер", price:"от 450 ₽", time:"2–5 дней", note:"Доставка до двери в любой адрес. Удобно для домашней примерки." },
            { name:"СДЭК · ПВЗ", price:"от 350 ₽", time:"2–5 дней", note:"Пункт выдачи на ваш выбор. Бесплатная примерка перед получением." },
            { name:"СДЭК · Постамат", price:"от 290 ₽", time:"3–6 дней", note:"Получение 24/7 в постаматах СДЭК по всей РФ." },
          ].map((d,i)=>(
            <div key={i} className="info-card">
              <div className="info-card-head">
                <span className="info-card-name">{d.name}</span>
                <span className="info-card-price">{d.price}</span>
              </div>
              <div className="info-card-time">{d.time}</div>
              <p>{d.note}</p>
            </div>
          ))}
        </div>
      </InfoSection>

      <InfoSection n="02" title="Сроки и обработка">
        <p>Заказ собирается и отправляется в течение <b>1–2 рабочих дней</b> после оплаты. Если позиция шьётся под заказ (помечено «Made-to-order») — срок 7–14 дней, мы дополнительно подтверждаем по почте.</p>
        <ul>
          <li>Москва — 1–2 дня</li>
          <li>Санкт-Петербург — 2–3 дня</li>
          <li>Центральный ФО — 2–4 дня</li>
          <li>Урал, Сибирь, ДВ — 4–8 дней</li>
          <li>Страны СНГ — 7–14 дней (СДЭК International)</li>
        </ul>
      </InfoSection>

      <InfoSection n="03" title="Бесплатная доставка">
        <p>При заказе от <b>12 000 ₽</b> СДЭК-доставка по России — за наш счёт. Скидка применяется автоматически на странице оформления.</p>
      </InfoSection>

      <InfoSection n="04" title="Получение и проверка">
        <p>Перед получением вы можете <b>распаковать и осмотреть</b> заказ в пункте выдачи СДЭК. Если позиция не подошла или вам не понравилась — оформляйте возврат на месте без объяснения причин в течение 14 дней (см. <a onClick={(e)=>{e.preventDefault();navigate("returns");}} href="#returns">условия возврата</a>).</p>
      </InfoSection>

      <div className="info-cta">
        <span>Остались вопросы по доставке?</span>
        <a href="mailto:hello@sandler.atelier" className="btn btn-gold">Написать в ателье <span className="arrow">→</span></a>
      </div>
    </InfoLayout>
  );
}

// ───────── РАЗМЕРНАЯ СЕТКА ─────────
function SizeGuide() {
  const [unit, setUnit] = useS_i("cm");
  const cm = (n) => unit === "cm" ? n : Math.round(n / 2.54 * 10) / 10;
  const u = unit === "cm" ? "см" : "in";

  const rows = [
    { size:"XS",   bust:80,  waist:60, hips:86 },
    { size:"S",    bust:84,  waist:64, hips:90 },
    { size:"M",    bust:88,  waist:68, hips:94 },
    { size:"XS-S", bust:82,  waist:62, hips:88 },
    { size:"S-M",  bust:86,  waist:66, hips:92 },
  ];

  return (
    <InfoLayout kicker="Размеры · Замеры · Посадка" title="Размерная сетка" sub="5 размеров · XS / S / M / XS-S / S-M">
      <InfoSection n="01" title="Таблица замеров">
        <div className="size-unit-switch">
          <button className={unit==="cm"?"active":""} onClick={()=>setUnit("cm")}>Сантиметры</button>
          <button className={unit==="in"?"active":""} onClick={()=>setUnit("in")}>Дюймы</button>
        </div>

        <div className="size-table-wrap">
          <table className="size-table">
            <thead>
              <tr>
                <th>Размер</th>
                <th>Грудь, {u}</th>
                <th>Талия, {u}</th>
                <th>Бёдра, {u}</th>
                <th>Российский</th>
                <th>EU</th>
              </tr>
            </thead>
            <tbody>
              {rows.map((r,i)=>(
                <tr key={i}>
                  <td className="size-table-name">{r.size}</td>
                  <td>{cm(r.bust)}</td>
                  <td>{cm(r.waist)}</td>
                  <td>{cm(r.hips)}</td>
                  <td>{r.size==="XS"?40:r.size==="S"?42:r.size==="M"?44:r.size==="XS-S"?"40–42":"42–44"}</td>
                  <td>{r.size==="XS"?34:r.size==="S"?36:r.size==="M"?38:r.size==="XS-S"?"34–36":"36–38"}</td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>
      </InfoSection>

      <InfoSection n="02" title="Как снимать мерки">
        <div className="info-grid-3">
          {[
            { name:"Грудь", txt:"Сантиметр горизонтально по самым выступающим точкам груди. Не затягивайте." },
            { name:"Талия", txt:"Самая узкая часть туловища, обычно на 2–3 см выше пупка. Дышите спокойно." },
            { name:"Бёдра", txt:"Самая широкая часть, на уровне выступа ягодиц. Ноги вместе." },
          ].map((m,i)=>(
            <div key={i} className="info-card">
              <div className="info-card-head"><span className="info-card-name">{String(i+1).padStart(2,"0")} · {m.name}</span></div>
              <p>{m.txt}</p>
            </div>
          ))}
        </div>
      </InfoSection>

      <InfoSection n="03" title="Посадка">
        <p>Все наши вещи имеют <b>прилегающий силуэт</b>. Ткань с эластаном тянется на 1–1.5 размера. Если вы между размерами:</p>
        <ul>
          <li><b>Топы и боди</b> — берите меньший (более плотная посадка).</li>
          <li><b>Штаны и джинсы</b> — берите больший (комфорт по бёдрам).</li>
          <li><b>Корсет</b> — берите свой обычный, регулировка через шнуровку ±3 см.</li>
        </ul>
      </InfoSection>

      <InfoSection n="04" title="Не уверены — напишите">
        <p>Опишите параметры в Telegram, мы порекомендуем размер. Бесплатный обмен, если не подойдёт.</p>
      </InfoSection>
    </InfoLayout>
  );
}

// ───────── ОФЕРТА ─────────
function Offer() {
  return (
    <InfoLayout kicker="Юридическое · Публичная оферта" title="Оферта" sub="Редакция от 21.05.2026">
      <InfoSection n="01" title="Общие положения">
        <p>Настоящий документ является публичной офертой ИП Сандлер Д.Б. (далее — «Продавец»), адресованной любому физическому лицу (далее — «Покупатель»), и определяет условия продажи товаров через интернет-магазин <b>sandler.atelier</b>.</p>
        <p>Оформление заказа считается полным и безоговорочным акцептом оферты. Договор считается заключённым с момента получения Покупателем подтверждения заказа на e-mail.</p>
      </InfoSection>

      <InfoSection n="02" title="Предмет договора">
        <p>Продавец обязуется передать в собственность Покупателя выбранные на сайте товары (одежду коллекции БАЗА и последующих коллекций), а Покупатель — принять их и оплатить в порядке, установленном настоящей офертой.</p>
      </InfoSection>

      <InfoSection n="03" title="Цена и оплата">
        <p>Все цены указаны в российских рублях с учётом НДС, действуют на момент оформления заказа. Оплата принимается через СБП, банковские карты Visa / Mastercard / МИР, а также при получении в пунктах СДЭК (комиссия 99 ₽).</p>
        <p>Способы оплаты обрабатывает платёжный сервис <b>ЮKassa</b> (ООО «НКО Юмани»). Реквизиты карты Продавцу не передаются.</p>
      </InfoSection>

      <InfoSection n="04" title="Передача товара">
        <p>Доставка осуществляется службами СДЭК и Boxberry, либо самовывозом из ателье в Москве. Подробности — на странице <a href="#delivery" onClick={(e)=>{e.preventDefault();location.hash="delivery";}}>«Доставка»</a>.</p>
      </InfoSection>

      <InfoSection n="05" title="Возврат и обмен">
        <p>Покупатель вправе вернуть товар надлежащего качества в течение <b>14 дней</b> с момента получения. Подробные условия — на странице <a href="#returns" onClick={(e)=>{e.preventDefault();location.hash="returns";}}>«Возврат»</a>.</p>
      </InfoSection>

      <InfoSection n="06" title="Реквизиты Продавца">
        <div className="info-reqs">
          <dl>
            <dt>Наименование</dt><dd>ИП Сандлер Диана Борисовна</dd>
            <dt>ИНН</dt><dd>770000000000</dd>
            <dt>ОГРНИП</dt><dd>320770000000000</dd>
            <dt>Юридический адрес</dt><dd>Россия, г. Москва, ул. Большая Никитская, д. 12</dd>
            <dt>E-mail</dt><dd>hello@sandler.atelier</dd>
            <dt>Расчётный счёт</dt><dd>4080 2810 0000 0000 0000</dd>
            <dt>Банк</dt><dd>АО «Тинькофф Банк»</dd>
          </dl>
        </div>
      </InfoSection>
    </InfoLayout>
  );
}

// ───────── ВОЗВРАТ ─────────
function Returns() {
  const { navigate } = useStore();
  return (
    <InfoLayout kicker="Возврат · Обмен · 14 дней" title="Возврат" sub="Безусловный возврат в течение 14 дней">
      <InfoSection n="01" title="В двух словах">
        <p style={{fontSize:18,lineHeight:1.55}}>
          <b>14 дней</b> с момента получения, чтобы передумать. Без объяснений. Деньги — в течение 7 рабочих дней на тот же способ оплаты.
        </p>
      </InfoSection>

      <InfoSection n="02" title="Что можно вернуть">
        <ul>
          <li>Товар не был в использовании (бирки на месте, ткань без следов носки)</li>
          <li>Сохранена оригинальная упаковка</li>
          <li>Не прошло 14 календарных дней с момента получения</li>
        </ul>
        <p className="info-note">Корсет и купальники (если появятся в дроп 02) возврату не подлежат — это требование Постановления Правительства РФ № 55.</p>
      </InfoSection>

      <InfoSection n="03" title="Как оформить">
        <ol>
          <li>Напишите на <a href="mailto:hello@sandler.atelier"><b>hello@sandler.atelier</b></a> с темой «Возврат» и номером заказа.</li>
          <li>Мы пришлём бланк возврата (или вы заполняете онлайн-форму).</li>
          <li>Отправьте посылку Почтой России / СДЭК на адрес ателье. Стоимость отправки — за счёт Покупателя, кроме случаев брака.</li>
          <li>После получения мы проверим вещь в течение 3 рабочих дней и вернём деньги в течение 7 рабочих дней.</li>
        </ol>
      </InfoSection>

      <InfoSection n="04" title="Обмен размера">
        <p>Если вещь не подошла по размеру — мы <b>бесплатно</b> обменяем на нужный (доставка обмена за наш счёт), если он есть в наличии. Просто укажите в заявке желаемый размер.</p>
      </InfoSection>

      <InfoSection n="05" title="Брак">
        <p>Обнаружили дефект кроя, шва или ткани? Сфотографируйте и пришлите нам в течение 7 дней с момента получения. Мы возместим стоимость покупки и отправки или предложим замену — на ваш выбор.</p>
      </InfoSection>

      <div className="info-cta">
        <span>Нужна помощь с возвратом?</span>
        <a href="mailto:hello@sandler.atelier" className="btn btn-gold">Написать <span className="arrow">→</span></a>
      </div>
    </InfoLayout>
  );
}

// ───────── ПОЛИТИКА ДАННЫХ ─────────
function Privacy() {
  return (
    <InfoLayout kicker="Конфиденциальность · 152-ФЗ" title="Политика данных" sub="Согласие на обработку персональных данных">
      <InfoSection n="01" title="Кто обрабатывает">
        <p>Оператором персональных данных является ИП Сандлер Д.Б., ИНН 770000000000, в соответствии с Федеральным законом № 152-ФЗ «О персональных данных».</p>
      </InfoSection>

      <InfoSection n="02" title="Какие данные мы собираем">
        <ul>
          <li>Имя, фамилия, телефон, e-mail — для оформления и подтверждения заказа</li>
          <li>Адрес доставки — для передачи курьерской службе</li>
          <li>Cookies, IP-адрес, данные браузера — для аналитики и улучшения сайта</li>
          <li>Платёжные реквизиты — <b>не сохраняются</b>, обрабатываются на стороне ЮKassa по стандарту PCI DSS</li>
        </ul>
      </InfoSection>

      <InfoSection n="03" title="Зачем мы их используем">
        <ul>
          <li>Исполнение договора (доставка, чек, бухгалтерия)</li>
          <li>Связь с вами по вашему заказу</li>
          <li>Рассылка новостей и спецпроектов (только с вашего отдельного согласия)</li>
          <li>Анализ поведения пользователей на сайте (Yandex Metrika, обезличено)</li>
        </ul>
      </InfoSection>

      <InfoSection n="04" title="Кому мы их передаём">
        <p>Только в строгом объёме, необходимом для исполнения договора:</p>
        <ul>
          <li>Платёжный сервис ЮKassa — для приёма оплаты</li>
          <li>Курьерские службы СДЭК / Boxberry — для доставки</li>
          <li>ФНС, банк — при выпуске чека и расчётов</li>
        </ul>
        <p>Третьим лицам в маркетинговых или иных коммерческих целях ваши данные <b>не передаются</b>.</p>
      </InfoSection>

      <InfoSection n="05" title="Как долго мы их храним">
        <p>Срок хранения — 5 лет с момента последнего взаимодействия (требование Налогового кодекса РФ). После этого данные удаляются автоматически. Cookies — до 12 месяцев.</p>
      </InfoSection>

      <InfoSection n="06" title="Ваши права">
        <ul>
          <li>Получить доступ к своим данным</li>
          <li>Потребовать их исправления или удаления</li>
          <li>Отозвать согласие на обработку</li>
          <li>Обжаловать действия оператора в Роскомнадзоре</li>
        </ul>
        <p>Все запросы — на <a href="mailto:hello@sandler.atelier"><b>hello@sandler.atelier</b></a> с темой «Персональные данные».</p>
      </InfoSection>
    </InfoLayout>
  );
}

Object.assign(window, { Delivery, SizeGuide, Offer, Returns, Privacy });
