/* ============================================================ SalesSections — Курсы · Отзывы · FAQ · Бонусная полоса Два курса: «Системная торговля» (101 000 ₽) и «Системная торговля PRO» (198 000 ₽). Без личного общения; общие бонусы — доступ 2 месяца, ежедневный разбор рынка, закрытый Telegram-канал на 1 месяц. Монохром, hairline-сетки, mono-цифры — язык системы сохранён. Цены правятся в одном месте: SALES_TARIFFS ниже. ============================================================ */ /* Два курса. Цены правятся только здесь. */ const SALES_TARIFFS = [ { id: "flagship", price: 101000, featured: true }, { id: "pro", price: 198000, featured: false }, ]; const TG_CALL_URL = "https://t.me/trading_architecture"; const fmtRub = (n) => n.toLocaleString("ru-RU") + " ₽"; /* локальная копия секционного заголовка (Sections.jsx не грузится на подстраницах) */ function SHead({ index, eyebrow, words, sub, color = "var(--ink)", dark }) { return (

{words.map((w, i) => {w})}

{sub &&

{sub}

}
); } const salesWrap = { maxWidth: 1200, margin: "0 auto", padding: "clamp(64px,9vw,120px) 28px" }; /* ============================================================ ТАРИФЫ — три уровня погружения, флагман выделен тёмной картой ============================================================ */ function TierCard({ tier, copy, badge }) { const [h, setH] = React.useState(false); const dark = tier.featured; const ink = dark ? "var(--paper-on-ink)" : "var(--ink)"; const sub = dark ? "var(--ink-on-ink-2)" : "var(--ink-2)"; const line = dark ? "rgba(255,255,255,0.14)" : "var(--hairline)"; const go = () => { window.location.href = "enroll.html?tariff=" + tier.id; }; return (
setH(true)} onMouseLeave={() => setH(false)} style={{ position: "relative", display: "flex", flexDirection: "column", background: dark ? "var(--ink)" : "var(--paper)", border: `1px solid ${dark ? "var(--ink)" : h ? "var(--hairline-2)" : "var(--hairline)"}`, borderRadius: 10, padding: "clamp(26px,2.6vw,36px)", boxShadow: dark ? "0 24px 70px rgba(14,14,12,0.18)" : h ? "var(--shadow-md)" : "none", transform: h && !dark ? "translateY(-3px)" : "none", transition: "transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease)" }}> {/* бейдж */} {badge && ( {badge} )}

{copy.name}

{copy.desc}

{/* цена */}
{tier.from && {copy.from}} {fmtRub(tier.price)}
); } function PricingSection({ index = "05" }) { const { t } = useT(); const tiers = t("sales.pricing.tiers"); return (
{SALES_TARIFFS.map((tier, i) => ( ))}

{t("sales.pricing.note")}{" "} {t("sales.pricing.noteLink")}

); } /* ============================================================ ОТЗЫВЫ ПЕРВОГО ПОТОКА NB: цитаты — черновые заготовки. Перед публикацией заменить на настоящие отзывы учеников (см. план продюсера, раздел 1). ============================================================ */ function ReviewCard({ n, quote, name, meta }) { return (
« {n}
{quote}
{name}
{meta}
); } function TestimonialsSection({ index = "04" }) { const { t } = useT(); const items = t("sales.reviews.items"); return (
{items.map((r, i) => ( ))}

{t("sales.reviews.disclaimer")}

); } /* ============================================================ FAQ — аккордеон на hairline-линиях ============================================================ */ function FaqRow({ q, a, openDefault }) { const [open, setOpen] = React.useState(!!openDefault); return (

{a}

); } function FaqSection({ index = "06" }) { const { t } = useT(); const items = t("sales.faq.items"); return (

{t("sales.faq.title1")}
{t("sales.faq.title2")}

{t("sales.faq.sub")}

{items.map((f, i) => )}
); } /* ============================================================ ДИАГНОСТИЧЕСКИЙ СОЗВОН — тёмная финальная полоса (воронка высокого чека: эфир → заявка → созвон → продажа) ============================================================ */ function CallBand() { const { t } = useT(); return (

{t("sales.call.title1")}
{t("sales.call.title2")}

{t("sales.call.sub")}

{ window.location.href = "course.html"; }} style={{ color: "var(--paper-on-ink)", borderColor: "rgba(250,250,248,0.32)" }}> {t("sales.call.cta2")} { window.open(TG_CALL_URL, "_blank", "noopener"); }} style={{ background: "var(--paper-on-ink)", color: "var(--ink)", boxShadow: "none" }}> {t("sales.call.cta")}
); } Object.assign(window, { SALES_TARIFFS, TG_CALL_URL, PricingSection, TestimonialsSection, FaqSection, CallBand });