:root {
    --bg:#fbf9f4; --soft:#efeaff; --card:#fff; --border:#e7e2d6; --text:#16181d; --muted:#5f6573;
    --accent:#7c5cff; --ink:#16181d; --red:#e5322d;
    --text-gradient:linear-gradient(135deg,#7c5cff 0%,#4f7bff 55%,#35d0ba 100%);
    --fill-gradient:linear-gradient(135deg,#7c5cff 0%,#4f7bff 70%,#3fb6c9 100%); --teal-ink:#0e7c6d; --violet-ink:#5b3fd9;
    /* Псевдонимы: старые правила ссылались на переменные, которых не было (--accent-2, --gradient, --bg-soft). */
    --accent-2:var(--teal-ink); --gradient:var(--fill-gradient); --bg-soft:#fff;
    --mono:'Cascadia Mono','Consolas',ui-monospace,monospace;
}
html, body, [class*="css"] { font-family:'Segoe UI',system-ui,sans-serif; }
.stApp { background:var(--bg); color:var(--text); }
#MainMenu, footer, header[data-testid="stHeader"] { visibility:hidden; height:0; }
[data-testid="stSidebarNav"], [data-testid="stSidebar"] { display:none; }
.block-container { padding-top:1.5rem; padding-bottom:3rem; max-width:1120px; }
[data-testid="stWidgetLabel"] p, label, .stMarkdown { color:var(--text); }

/* ---------- Навигация ---------- */
html { scroll-behavior: smooth; }
.anchor { position: relative; top: -84px; height: 0; }
.block-container { padding-top: 5.2rem; }
.navbar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 999;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 12px max(20px, calc((100vw - 1120px) / 2));
    background: rgba(11,15,25,.85); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
}
.logo { font-weight: 800; font-size: 1.15rem; color: var(--text) !important; text-decoration: none; }
.logo span { color: var(--accent-2); }
.navlinks { display: flex; gap: 22px; align-items: center; }
.audience-tabs { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:42px 0 0; }
.audience-tabs a {
    display:flex; align-items:center; justify-content:center; min-height:132px; padding:28px 20px;
    background:#fff; color:var(--ink) !important; border:2px solid var(--ink); border-radius:18px;
    font:inherit; font-size:2rem; font-weight:800; letter-spacing:-.02em; text-decoration:none !important;
    box-shadow:6px 6px 0 var(--border);
}
.audience-tabs a.on, .audience-tabs a.on:hover {
    background:var(--fill-gradient); color:#fff !important; box-shadow:6px 6px 0 var(--accent);
}
.audience-tabs a:hover { transform:translate(-1px,-1px); color:var(--ink) !important; }
@media (max-width:640px) {
    .audience-tabs { gap:8px; }
    .audience-tabs a { font-size:1.25rem; min-height:88px; padding:16px 10px; }
}
.navlinks a, .nav-login { color: var(--muted) !important; text-decoration: none !important; font-size: .92rem; font-weight: 500; border-bottom: none !important; }
.navlinks a:hover, .nav-login:hover { color: var(--text) !important; }
.navright { display: flex; align-items: center; gap: 18px; }

/* ---------- Кнопки ---------- */
.btn {
    display: inline-block; padding: .75rem 1.5rem; border-radius: 12px; text-align: center;
    background: var(--gradient); color: #fff !important; font-weight: 700; text-decoration: none !important;
    transition: transform .15s, filter .15s;
}
.btn:hover { transform: translateY(-1px); filter: brightness(1.1); }
.btn-sm { padding: .5rem 1rem; font-size: .9rem; }
.btn-ghost { background: transparent; border: 1px solid var(--border); color: var(--text) !important; }
.btn-ghost:hover { border-color: var(--accent); }
.sticky-cta { display: none; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* ---------- Хиро ---------- */
.hero { padding: 36px 0 20px; }
.badge {
    display: inline-block; padding: 6px 14px; border-radius: 999px; margin-bottom: 18px;
    background: rgba(124,92,255,.12); border: 1px solid rgba(124,92,255,.35);
    color: #b9a9ff; font-size: .82rem; font-weight: 600;
}
.hero-title { font-size: 3rem; font-weight: 800; line-height: 1.12; margin: 0 0 16px; letter-spacing: -.02em; max-width: 820px; padding: 0; }
.accent { background: var(--gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.hero-sub { font-size: 1.15rem; color: var(--muted); max-width: 640px; line-height: 1.6; margin: 0 0 26px; }
.cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 30px; }
.stats { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
.stats div { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 14px 20px; min-width: 150px; }
.stats b { display: block; font-size: 1.5rem; font-weight: 800; }
.stats span { color: var(--muted); font-size: .85rem; }
.tools-label { color: var(--muted); font-size: .85rem; margin-bottom: 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.chips li { padding: 5px 12px; border: 1px solid var(--border); border-radius: 999px; font-size: .85rem; color: var(--text); }

/* ---------- Секции и сетка ---------- */
.section-title { font-size: 1.9rem; font-weight: 800; margin: 56px 0 6px; letter-spacing: -.01em; }
.section-sub { color: var(--muted); margin-bottom: 24px; }
.grid { display: grid; gap: 16px; }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 22px; height: 100%; transition: border-color .2s, transform .2s; }
.grid .card:hover { border-color: var(--accent); transform: translateY(-2px); }
.card h4 { margin: 10px 0 8px; font-size: 1.05rem; font-weight: 700; padding: 0; }
.card p { color: var(--muted); font-size: .92rem; line-height: 1.55; margin: 0; }
.card .icon { font-size: 1.7rem; }
.check { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.check:last-child { border-bottom: 0; }
.check i { color: var(--accent-2); font-style: normal; font-weight: 800; }
.check b { display: block; margin-bottom: 3px; }
.check span { color: var(--muted); font-size: .92rem; }
.author { display: flex; gap: 20px; align-items: center; }
.author img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }

/* ---------- Аккордеоны (программа, FAQ) ---------- */
.acc { background: var(--card); border: 1px solid var(--border); border-radius: 14px; margin-bottom: 10px; }
.acc[open] { border-color: var(--accent); }
.acc summary { cursor: pointer; padding: 16px 18px; font-weight: 700; list-style: none; display: flex; gap: 14px; align-items: center; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: "+"; margin-left: auto; color: var(--accent-2); font-size: 1.4rem; }
.acc[open] summary::after { content: "–"; }
.acc summary em { font-style: normal; background: var(--gradient); border-radius: 8px; min-width: 30px; height: 30px; display: grid; place-items: center; font-size: .9rem; }
.acc-body { padding: 0 18px 16px 62px; color: var(--muted); line-height: 1.6; }
.acc-body p { margin: 0 0 8px; }
.acc-body .res { color: var(--accent-2); font-weight: 600; }
.acc:not(:has(em)) .acc-body { padding-left: 18px; }

/* ---------- Тарифы ---------- */
.price-card { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 26px; display: flex; flex-direction: column; }
.price-card.featured { border-color: var(--accent); box-shadow: 0 12px 30px -12px rgba(124,92,255,.45); }
.price-card h4 { margin: 4px 0 0; font-size: 1.2rem; padding: 0; }
.price-tag { font-size: .78rem; font-weight: 700; color: var(--accent-2); text-transform: uppercase; letter-spacing: .04em; }
.price-amount { font-size: 2rem; font-weight: 800; margin: 6px 0 14px; }
.price-list { list-style: none; padding: 0; margin: 0 0 20px; flex: 1; }
.price-list li { color: var(--muted); font-size: .92rem; padding: 6px 0; }

.footer { border-top: 1px solid var(--border); margin-top: 3rem; padding-top: 22px; color: var(--muted); font-size: .85rem; text-align: center; line-height: 2; }
.footer a { color: var(--accent-2); text-decoration: none; }

/* ---------- Формы Streamlit ---------- */
div.stButton > button, div.stFormSubmitButton > button {
    background: var(--gradient); color: #fff; border: none; border-radius: 12px; padding: .7rem 1.2rem; font-weight: 700;
}
div.stButton > button:hover, div.stFormSubmitButton > button:hover { filter: brightness(1.1); color: #fff; }
[data-testid="stForm"], .st-key-lead-sheet { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 24px; }
[data-testid="stTextInput"] input, [data-testid="stTextArea"] textarea, [data-baseweb="select"] > div {
    background: var(--bg-soft) !important; color: var(--text) !important; border-color: var(--border) !important;
}
a[data-testid="stPageLink-NavLink"] { color: var(--muted) !important; }

/* ---------- Адаптив ---------- */
@media (max-width: 900px) {
    .g4 { grid-template-columns: repeat(2, 1fr); }
    .navlinks { display: none; }
}
@media (max-width: 640px) {
    .g3, .g4 { grid-template-columns: 1fr; }
    .hero-title { font-size: 2.1rem; }
    .section-title { font-size: 1.5rem; margin-top: 40px; }
    .acc-body { padding-left: 18px; }
    .navbar, .navright { flex-wrap: wrap; }
    .nav-login { display: inline; }
    .block-container { padding-bottom: 6rem; }
    .sticky-cta {
        display: block; position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 999;
        padding: 14px; border-radius: 14px; text-align: center; font-weight: 700;
        background: var(--gradient); color: #fff !important; text-decoration: none; box-shadow: 0 10px 30px rgba(0,0,0,.5);
    }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ===== Редизайн: светлая тема, жёлтый акцент 1С ===== */
.navbar { background:rgba(251,249,244,.92); }
.navleft { position:relative; display:flex; align-items:center; gap:14px; }
.about-team { padding:28px 0 8px; max-width:820px; }
.about-team .hero-sub { margin-bottom:0; }
.team-points { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:28px 0 8px; }
.team-points div { background:#fff; border:1.5px solid var(--ink); border-radius:14px; padding:16px 16px 14px; box-shadow:3px 3px 0 var(--accent); }
.team-points b { display:block; margin-bottom:6px; }
.team-points span { color:var(--muted); font-size:.92rem; line-height:1.45; }
.home-services { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:stretch; }
.service-card {
    display:flex; flex-direction:column; gap:8px; min-width:0;
    background:#fff; border:2px solid var(--ink); border-radius:16px;
    padding:22px 20px 20px; box-shadow:6px 6px 0 var(--border);
}
.service-card-biz { background:#f8f6ff; box-shadow:6px 6px 0 var(--accent); }
.service-kicker { color:var(--violet-ink); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.service-card h3 { margin:0; font-size:1.45rem; letter-spacing:-.02em; }
.service-card p { margin:0; color:var(--muted); line-height:1.5; }
.service-card ul { margin:6px 0 8px; padding:0; list-style:none; }
.service-card li { margin:7px 0; line-height:1.4; }
.service-card li::before { content:"✓ "; color:var(--teal-ink); font-weight:800; }
.service-price { margin-top:auto; font-size:1.8rem; font-weight:800; letter-spacing:-.02em; }
.service-note { font-size:.85rem; }
.service-card .btn { align-self:flex-start; margin-top:8px; }
@media (max-width:800px) {
    .team-points, .home-services { grid-template-columns:1fr; }
}
.menu-btn {
    position:relative; z-index:2; flex:none; box-sizing:border-box;
    width:42px; height:42px; margin:0; padding:0;
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    background:transparent; color:var(--ink); border:0; border-radius:10px; cursor:pointer;
    box-shadow:none;
}
.menu-btn:hover { background:rgba(22,24,29,.06); }
.menu-btn span { display:block; width:20px; height:2px; background:#16181d; border-radius:2px; }
.menu-layer { position:fixed; inset:0; z-index:1100; }
.menu-layer[hidden] { display:none; }
.menu-backdrop { position:absolute; inset:0; margin:0; padding:0; border:0; background:rgba(22,24,29,.45); cursor:pointer; }
.site-menu {
    position:absolute; top:0; left:0; bottom:0; width:min(420px, calc(100vw - 48px));
    margin:0; padding:18px 16px 28px; overflow:auto;
    display:flex; flex-direction:column; align-items:stretch; gap:0;
    background:#fbf9f4; box-shadow:16px 0 40px rgba(22,24,29,.16);
}
.menu-head { display:flex; align-items:center; justify-content:space-between; margin:0 4px 8px; }
.menu-head span { font-weight:800; font-size:1.05rem; letter-spacing:-.02em; }
.menu-close {
    width:36px; height:36px; margin:0; padding:0; border:0; border-radius:8px;
    background:transparent; color:var(--ink); font:inherit; font-size:1.7rem; line-height:1; cursor:pointer;
}
.menu-close:hover { background:rgba(22,24,29,.06); }
.menu-lead { margin:0 4px 12px; color:var(--muted); font-size:.92rem; line-height:1.45; }
.menu-product {
    display:flex; flex-direction:column; gap:4px; margin:0 0 10px; padding:14px 14px 12px;
    background:#fff; color:var(--ink); text-decoration:none;
    border:1.5px solid var(--ink); border-radius:14px; box-shadow:4px 4px 0 var(--border);
}
.menu-product:hover { color:var(--ink); background:#fff; transform:translate(-1px,-1px); box-shadow:6px 6px 0 var(--accent); }
.menu-product-biz { background:#f8f6ff; box-shadow:4px 4px 0 var(--accent); }
.menu-kicker { color:var(--violet-ink); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.menu-product b { font-size:1.12rem; letter-spacing:-.02em; }
.menu-desc { color:var(--muted); font-size:.9rem; font-weight:500; line-height:1.4; }
.menu-meta { margin-top:6px; font-size:.82rem; font-weight:800; }
.menu-label { margin:8px 4px 4px; color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.menu-row {
    display:flex; flex-direction:column; gap:1px; padding:8px 10px; border-radius:10px;
    color:var(--ink); text-decoration:none;
}
.menu-row b { font-size:.95rem; }
.menu-row span { color:var(--muted); font-size:.82rem; font-weight:500; line-height:1.35; }
.menu-row:hover { background:#efeaff; }
.menu-row:hover b { color:var(--violet-ink); }
.menu-foot { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:10px; padding:12px 4px 0; border-top:1px solid var(--border); }
.menu-foot a { color:var(--ink); font-weight:700; font-size:.9rem; text-decoration:none; }
.menu-foot a:hover { color:var(--violet-ink); }
.logo { color:var(--ink) !important; }
.navbar .logo, .navbar .logo:hover { text-decoration:none !important; }
.logo span { background:var(--fill-gradient); color:#fff; padding:1px 7px; border-radius:7px; margin-left:3px; }
.btn { background:var(--fill-gradient); color:#fff !important; border:2px solid var(--ink); border-radius:12px; box-shadow:4px 4px 0 var(--ink); }
.btn:hover { transform:translate(-1px,-1px); box-shadow:6px 6px 0 var(--ink); filter:none; }
.btn-sm { box-shadow:3px 3px 0 var(--ink); }
.btn-ghost { background:#fff; color:var(--ink) !important; border:2px solid var(--ink); }
.btn-ghost:hover { border-color:var(--ink); }
.sticky-cta { background:var(--fill-gradient) !important; color:#fff !important; border:2px solid var(--ink); box-shadow:4px 4px 0 var(--ink) !important; }
.navlinks a, .nav-login { color:var(--muted) !important; }
.navlinks a:hover, .nav-login:hover { color:var(--ink) !important; }

.hero { padding:44px 0 10px; }
.hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; margin-bottom:34px; }
.hero-grid > :nth-child(3), .hero-grid > :nth-child(4) { align-self:start; }
.badge { background:#fff; border:1.5px solid var(--ink); color:var(--ink); font-family:var(--mono); font-size:.78rem; }
.badge::first-letter { color:var(--red); }
.hero-title { color:var(--ink); font-size:3.3rem; letter-spacing:-.02em; line-height:1.12; }
.accent { background:var(--text-gradient); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; padding:0; white-space:nowrap; }
.hero-sub { color:var(--muted); }
.stats div { background:#fff; border:1.5px solid var(--ink); border-radius:14px; box-shadow:3px 3px 0 var(--accent); }
.chips li { background:#fff; font-family:var(--mono); font-size:.8rem; border-color:var(--ink); border-radius:8px; }

.term { background:var(--ink); border-radius:16px; box-shadow:8px 8px 0 var(--accent); overflow:hidden; font-family:var(--mono); font-size:.82rem; }
.term-bar { display:flex; align-items:center; gap:6px; padding:11px 14px; background:#23262e; color:#8b93a3; }
.term-bar i { width:11px; height:11px; border-radius:50%; background:#7c5cff; }
.term-bar i:nth-child(2) { background:#4f7bff; } .term-bar i:nth-child(3) { background:#35d0ba; }
.term-bar span { margin-left:10px; }
.term-body { padding:18px; display:flex; flex-direction:column; gap:10px; line-height:1.5; }
.t-user { color:#fff; } .t-dim { color:#8b93a3; } .t-ok { color:#5fe08a; }
.t-code { background:#23262e; border-radius:8px; padding:10px 12px; color:#e6e9f2; }
.t-code .k { color:#b9a9ff; }

.section-title { color:var(--ink); letter-spacing:-.01em; }
.section-sub, .card p, .check span, .acc-body, .price-list li { color:var(--muted); }
.card, .acc, .price-card, [data-testid="stForm"], .st-key-lead-sheet { background:#fff; border:1.5px solid var(--border); border-radius:16px; }
.grid .card:hover { border-color:var(--ink); box-shadow:none; transform:none; }
.card .icon { width:48px; height:48px; border-radius:12px; background:var(--soft); display:grid; place-items:center; font-size:1.5rem; }
.checks { padding:8px 24px; }
.check i { background:var(--fill-gradient); color:#fff; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:.85rem; flex:none; }
.acc[open] { border-color:var(--ink); box-shadow:none; }
.acc summary::after { color:var(--ink); }
.acc summary em { background:var(--fill-gradient); color:#fff; font-family:var(--mono); font-weight:600; }
.acc-body .res { color:var(--teal-ink); background:#e6f7f4; display:inline-block; padding:4px 10px; border-radius:8px; }
.price-card.featured { border:2px solid var(--ink); box-shadow:8px 8px 0 var(--accent); background:#f8f6ff; }
.price-tag { color:#fff; background:var(--fill-gradient); display:inline-block; padding:3px 10px; border-radius:6px; align-self:flex-start; }
.price-amount { color:var(--ink); }
.footer a { color:var(--ink); font-weight:700; }
div.stButton > button, div.stFormSubmitButton > button { background:var(--fill-gradient); color:#fff; border:2px solid var(--ink); box-shadow:4px 4px 0 var(--ink); }
div.stButton > button p, div.stFormSubmitButton > button p { color:#fff; }
div.stButton > button:hover, div.stFormSubmitButton > button:hover,
div.stButton > button:focus:not(:active), div.stFormSubmitButton > button:focus:not(:active) { background:var(--fill-gradient); color:#fff; border-color:var(--ink); filter:none; }
div.stButton > button:hover p, div.stFormSubmitButton > button:hover p { color:#fff; }
[data-testid="stTextInput"] input, [data-testid="stTextArea"] textarea, [data-baseweb="select"] > div { background:#fff !important; color:var(--ink) !important; border:1.5px solid var(--border) !important; }
.hero-video { display:block; background:var(--ink); border-radius:16px; box-shadow:8px 8px 0 var(--accent); overflow:hidden; }
.hero-video video, .hero-video img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#000; }
.hero-video-empty { display:grid; place-items:center; aspect-ratio:16/9; color:#8b93a3; font-family:var(--mono); font-size:.85rem; }
/* --- правки по ревью --- */
.stats div { min-width:150px; }
.chips { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-width:520px; }
.chips li { display:flex; align-items:center; justify-content:center; min-height:40px; padding:8px 12px; text-align:center; font-family:'Segoe UI',system-ui,sans-serif; font-size:.85rem; font-weight:500; white-space:nowrap; }
.grid .card { padding:26px 28px; }
.grid .card::before { content:""; display:block; width:28px; height:4px; border-radius:2px; background:var(--text-gradient); margin-bottom:16px; }
.card p { text-wrap:pretty; }
.grid .card:has(.icon)::before { display:none; }
/* Streamlit добавляет к каждому h4 ссылку-якорь: она ломает перенос строки в заголовках карточек */
.card h4 [data-testid="stHeaderActionElements"], .price-card h4 [data-testid="stHeaderActionElements"] { display:none; }
.price-tag { padding:5px 14px; font-size:.72rem; letter-spacing:.06em; line-height:1.3; margin-bottom:8px; }
.price-card.featured .btn { background:var(--ink); color:#fff !important; box-shadow:4px 4px 0 var(--accent); }
.price-card.featured .btn:hover { box-shadow:6px 6px 0 var(--accent); }
@media (max-width:640px) { .chips { grid-template-columns:repeat(2,1fr); } }
.video-cap { display:flex; align-items:center; gap:10px; margin-top:16px; font-family:var(--mono); font-size:.82rem; color:var(--muted); }
.video-cap i { width:8px; height:8px; border-radius:50%; background:var(--accent); border:1.5px solid var(--ink); }
@media (max-width:900px) { .hero-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .hero-title { font-size:2.3rem; } }
[data-testid="stElementContainer"]:has(.session-sync) { display:none !important; height:0 !important; margin:0 !important; padding:0 !important; }
[data-testid="stForm"] [data-testid="stHorizontalBlock"]:has(a.btn-alt) { align-items:center; }
[data-testid="stForm"] [data-testid="stHorizontalBlock"]:has(a.btn-alt) > [data-testid="stColumn"] { width:fit-content !important; flex:0 0 auto !important; }
[data-testid="stForm"] [data-testid="stElementContainer"]:has(a.btn-alt) { margin:0 !important; }
a.btn-alt {
    display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
    min-height:2.7rem; padding:.7rem 1.2rem; background:#fff; color:var(--violet-ink) !important;
    border:2px solid var(--accent); border-radius:12px; box-shadow:4px 4px 0 var(--accent);
    font-weight:700; text-decoration:none !important; white-space:nowrap; line-height:1.2;
}
a.btn-alt:hover { transform:translate(-1px,-1px); box-shadow:6px 6px 0 var(--accent); color:var(--ink) !important; }
[data-testid="stHorizontalBlock"]:has(.st-key-tier-basic) { overflow:visible; padding-bottom:10px; }
[data-testid="stHorizontalBlock"]:has(.st-key-tier-basic) [data-testid="stColumn"] { overflow:visible; }
.st-key-tier-basic, .st-key-tier-standard, .st-key-tier-premium {
    background:#fff; border:1.5px solid var(--border); border-radius:16px; padding:26px 22px 22px; height:100%;
    box-shadow:none; gap:0 !important;
}
.st-key-tier-standard { border:2px solid var(--ink); box-shadow:8px 8px 0 var(--accent); background:#f8f6ff; }
.st-key-tier-basic:has(.price-card.picked), .st-key-tier-premium:has(.price-card.picked) {
    box-shadow:8px 8px 0 var(--accent);
}
.st-key-tier-basic .price-card, .st-key-tier-standard .price-card, .st-key-tier-premium .price-card,
.st-key-tier-standard .price-card.featured {
    background:transparent; border:none; box-shadow:none; padding:0; border-radius:0;
}
.st-key-tier-basic > div, .st-key-tier-standard > div, .st-key-tier-premium > div { margin:0 !important; }
.st-key-tier-basic > div:last-child, .st-key-tier-standard > div:last-child, .st-key-tier-premium > div:last-child { margin-top:auto !important; }
.st-key-tier-basic .price-list, .st-key-tier-standard .price-list, .st-key-tier-premium .price-list { margin-bottom:18px; }
.st-key-tier-basic div.stButton, .st-key-tier-standard div.stButton, .st-key-tier-premium div.stButton,
.st-key-tier-basic div.stButton > button, .st-key-tier-standard div.stButton > button, .st-key-tier-premium div.stButton > button { width:100%; }
.st-key-tier-basic div.stButton > button, .st-key-tier-standard div.stButton > button, .st-key-tier-premium div.stButton > button {
    min-height:48px; border-radius:12px; padding:.72rem 1rem; font-weight:700;
}
.st-key-tier-basic div.stButton > button p, .st-key-tier-standard div.stButton > button p, .st-key-tier-premium div.stButton > button p {
    font-weight:700; white-space:nowrap;
}
.st-key-tier-basic:not(:has(.picked)) div.stButton > button,
.st-key-tier-premium:not(:has(.picked)) div.stButton > button,
.st-key-tier-basic:not(:has(.picked)) div.stButton > button:hover,
.st-key-tier-premium:not(:has(.picked)) div.stButton > button:hover,
.st-key-tier-basic:not(:has(.picked)) div.stButton > button:focus,
.st-key-tier-premium:not(:has(.picked)) div.stButton > button:focus {
    background:#fff !important; color:var(--ink) !important; border:2px solid var(--ink) !important; box-shadow:none !important;
}
.st-key-tier-basic:not(:has(.picked)) div.stButton > button p,
.st-key-tier-premium:not(:has(.picked)) div.stButton > button p { color:var(--ink) !important; }
.st-key-tier-standard:not(:has(.picked)) div.stButton > button,
.st-key-tier-standard:not(:has(.picked)) div.stButton > button:hover,
.st-key-tier-standard:not(:has(.picked)) div.stButton > button:focus {
    background:var(--ink) !important; border:2px solid var(--ink) !important; box-shadow:none !important;
}
.st-key-tier-standard:not(:has(.picked)) div.stButton > button p { color:#fff !important; }
.st-key-tier-basic:has(.picked) div.stButton > button,
.st-key-tier-standard:has(.picked) div.stButton > button,
.st-key-tier-premium:has(.picked) div.stButton > button,
.st-key-tier-basic:has(.picked) div.stButton > button:hover,
.st-key-tier-standard:has(.picked) div.stButton > button:hover,
.st-key-tier-premium:has(.picked) div.stButton > button:hover,
.st-key-tier-basic:has(.picked) div.stButton > button:focus,
.st-key-tier-standard:has(.picked) div.stButton > button:focus,
.st-key-tier-premium:has(.picked) div.stButton > button:focus {
    background:var(--fill-gradient) !important; border:2px solid transparent !important; box-shadow:none !important;
}
.st-key-tier-basic:has(.picked) div.stButton > button p,
.st-key-tier-standard:has(.picked) div.stButton > button p,
.st-key-tier-premium:has(.picked) div.stButton > button p { color:#fff !important; }
@media (max-width:640px) {
    [data-testid="stHorizontalBlock"]:has(.st-key-tier-basic) { flex-wrap:wrap; }
    [data-testid="stHorizontalBlock"]:has(.st-key-tier-basic) > [data-testid="stColumn"] {
        width:100% !important; flex:1 1 100% !important; min-width:100% !important;
    }
}

/* Страницы Django: те же карточки, без виджетов Streamlit. */
body { margin:0; background:var(--bg); color:var(--text); }
.wrap { max-width:1120px; margin:0 auto; padding:5.2rem 20px 4rem; }
.sheet { background:#fff; border:1.5px solid var(--border); border-radius:16px; padding:24px; }
.narrow { max-width:760px; }
.fields { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.fields .full { grid-column:1 / -1; }
.field { min-width:0; }
.field label { display:block; font-weight:600; margin:0 0 6px; }
.field .help { display:block; color:var(--muted); font-size:.82rem; margin-top:4px; }
.field input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
.field textarea,
.field select {
    display:block; width:100%; box-sizing:border-box; background:#fff; color:var(--ink);
    border:1.5px solid var(--border); border-radius:8px; min-height:42px;
    padding:8px 12px; font:inherit; line-height:1.4;
}
.field textarea { min-height:96px; height:auto; resize:vertical; }
.field input:-webkit-autofill,
.field input:-webkit-autofill:hover,
.field input:-webkit-autofill:focus {
    -webkit-text-fill-color:var(--ink); caret-color:var(--ink);
    box-shadow:0 0 0 1000px #fff inset; transition:background-color 9999s ease-out;
}
button.btn, a.btn { font:inherit; cursor:pointer; border:2px solid var(--ink); }
.btn-row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:8px; }
.btn-row .btn, .btn-row .btn-alt { min-height:2.7rem; }
button.block { width:100%; }
.checkline { display:flex; gap:8px; align-items:flex-start; margin:12px 0; }
.checkline input { width:auto; margin-top:4px; }
.msg { border-radius:12px; padding:12px 16px; margin:12px 0; }
.msg.err { background:#fde8e8; color:#9b1c1c; }
.msg.ok { background:#e7f8ef; color:#146c43; }
.msg.info { background:#efeaff; color:#3b2f80; }
.msg.warn { background:#fff6e0; color:#8a5a00; }
.links { margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.links a { color:var(--ink); font-weight:700; text-decoration:none; }
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; padding-bottom:10px; }
.price-grid .price-card { height:100%; display:flex; flex-direction:column; box-sizing:border-box; padding:26px 22px 22px; }
.price-grid .price-list { margin:0 0 18px; padding:0; list-style:none; }
.price-grid .price-list li { margin:6px 0; }
.price-card.picked:not(.featured) { box-shadow:8px 8px 0 var(--accent); }
button.tier-pick {
    width:100%; margin-top:auto; min-height:48px; border-radius:12px; font:inherit; font-weight:700;
    cursor:pointer; white-space:nowrap;
}
.price-card:not(.featured):not(.picked) .tier-pick,
.price-card:not(.featured):not(.picked) .tier-pick:hover {
    background:#fff; color:var(--ink); border:2px solid var(--ink); box-shadow:none;
}
.price-card.featured:not(.picked) .tier-pick,
.price-card.featured:not(.picked) .tier-pick:hover {
    background:var(--ink); color:#fff; border:2px solid var(--ink); box-shadow:none;
}
.price-card.picked .tier-pick, .price-card.picked .tier-pick:hover {
    background:var(--fill-gradient); color:#fff; border:2px solid transparent; box-shadow:none;
}
.table-wrap { overflow:auto; margin:8px 0 18px; }
table.data { width:100%; border-collapse:collapse; font-size:.92rem; background:#fff; }
table.data th, table.data td { border-bottom:1px solid var(--border); text-align:left; padding:8px 10px; vertical-align:top; }
table.data th { color:var(--muted); font-size:.78rem; }
.tabs { display:flex; gap:8px; margin:8px 0 18px; flex-wrap:wrap; }
.tabs a { text-decoration:none; color:var(--ink); border:1.5px solid var(--border); border-radius:10px; padding:8px 14px; font-weight:700; background:#fff; }
.tabs a.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.pager { display:flex; gap:12px; align-items:center; margin:8px 0 14px; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:12px 0 18px; }
.metrics div { background:#fff; border:1.5px solid var(--ink); border-radius:14px; padding:14px 16px; box-shadow:3px 3px 0 var(--accent); }
.metrics b { display:block; font-size:1.6rem; }
.metrics span { color:var(--muted); font-size:.85rem; }
details.box { background:#fff; border:1.5px solid var(--border); border-radius:14px; padding:12px 16px; margin:12px 0; }
details.box summary { cursor:pointer; font-weight:700; }
.video-frame { width:100%; background:#000; border-radius:12px; }
h3 { margin:22px 0 8px; }
@media (max-width:900px) { .price-grid { grid-template-columns:1fr; } .metrics { grid-template-columns:1fr; } }
@media (max-width:640px) { .fields { grid-template-columns:1fr; } }
.help { color:var(--muted); font-size:.85rem; }
.footer { padding-left:20px; padding-right:20px; }
.bait {
    display:grid; grid-template-columns:1.35fr .65fr; margin:8px 0 28px;
    background:#fff; border:2px solid var(--ink); border-radius:16px; overflow:hidden;
    box-shadow:8px 8px 0 var(--accent); text-decoration:none; color:inherit;
}
.bait:hover { transform:translate(-2px,-2px); box-shadow:10px 10px 0 var(--accent); }
.bait-shot { position:relative; height:320px; background:#111; }
.bait-shot img { width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; }
.bait-badge {
    position:absolute; left:16px; bottom:16px; color:#fff; font-weight:800;
    background:var(--fill-gradient); border:2px solid var(--ink); border-radius:12px;
    padding:8px 14px; box-shadow:4px 4px 0 var(--ink);
}
.bait-copy { padding:28px 24px; display:flex; flex-direction:column; justify-content:center; gap:12px; }
.bait-copy b { font-size:1.55rem; line-height:1.2; letter-spacing:-.02em; }
.bait-copy span { color:var(--muted); }
.block-title { font-size:1.45rem; font-weight:800; margin:36px 0 10px; letter-spacing:-.01em; }
.ability-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 8px; align-items:stretch; }
.ability {
    min-width:0; height:auto; background:#fff; border:1.5px solid var(--border); border-radius:16px;
    padding:22px 22px 20px; box-sizing:border-box;
}
.ability h3 { margin:8px 0; font-size:1.05rem; }
.ability p { margin:0; color:var(--muted); line-height:1.5; }
.ability .icon { width:48px; height:48px; border-radius:12px; background:var(--soft); display:grid; place-items:center; font-size:1.5rem; }
.offer {
    background:#f8f6ff; border:2px solid var(--ink); border-radius:16px;
    box-shadow:8px 8px 0 var(--accent); padding:26px 24px 22px; margin:0 0 12px;
}
.offer .price-amount { font-size:2.6rem; font-weight:800; margin:8px 0; }
.offer p { margin:0 0 8px; }
.case { display:block; width:100%; clear:both; margin:0 0 48px; }
.case h3 { margin:0 0 4px; }
.who { margin:0 0 8px; color:var(--muted); }
.ask { background:#efeaff; border-radius:12px; padding:12px 14px; margin:10px 0; }
.ask b { display:block; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--violet-ink); margin-bottom:4px; }
.shot { margin:12px 0 0; background:#fff; border:1.5px solid var(--border); border-radius:16px; overflow:hidden; box-shadow:6px 6px 0 var(--accent); }
.shot img { display:block; width:100%; height:auto; }
@media (max-width:900px) {
    .bait { grid-template-columns:1fr; }
    .bait-shot { height:220px; }
    .ability-grid { grid-template-columns:1fr; }
}
