/* /industries and /payment-methods landing pages.
   Hand-written on purpose: the marketing Tailwind file is precompiled from a
   fixed page list, so new utility classes would not exist here. */
.so {
    --so-ink:#0f172a; --so-ink2:#334155; --so-muted:#5b6677; --so-line:#e7e9ee; --so-soft:#f6f8fa; --so-card:#ffffff;
    --so-brand:#08a05a; --so-brand2:#0bbf6c; --so-tint:#e9f7ef; --so-warn:#b45309; --so-warn-bg:#fff7ed; --so-bad:#dc2626; --so-bad-bg:#fef2f2;
    --so-shadow:0 1px 2px rgba(10,14,26,.04), 0 24px 60px -36px rgba(10,14,26,.35);
    color:var(--so-ink);
}
html.dark .so, [data-theme="dark"] .so {
    --so-ink:#eef2f8; --so-ink2:#c9d2df; --so-muted:#9aa6b8; --so-line:rgba(255,255,255,.10); --so-soft:rgba(255,255,255,.03); --so-card:#0f1420;
    --so-brand:#16c47c; --so-brand2:#34d399; --so-tint:rgba(22,196,124,.12); --so-warn:#fbbf24; --so-warn-bg:rgba(251,191,36,.08); --so-bad:#f87171; --so-bad-bg:rgba(248,113,113,.08);
    --so-shadow:0 1px 2px rgba(0,0,0,.4), 0 24px 60px -36px rgba(0,0,0,.8);
}
.so a { text-decoration:none; }
.so-wrap { max-width:1200px; margin:0 auto; padding:0 20px; }
.so-sec { padding:80px 0; }
.so-sec.tight { padding:56px 0; }
.so-sec.alt { background:var(--so-soft); border-top:1px solid var(--so-line); border-bottom:1px solid var(--so-line); }
.so h1, .so h2, .so h3 { letter-spacing:-.02em; color:var(--so-ink); }
.so-ico { width:20px; height:20px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Buttons */
.so-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 22px; border-radius:12px; font-weight:700; font-size:15px;
    color:#fff; background:var(--so-brand); border:1px solid var(--so-brand); transition:transform .15s, box-shadow .15s; }
.so-btn:hover { transform:translateY(-1px); box-shadow:0 12px 26px -14px rgba(8,160,90,.7); color:#fff; }
.so-btn.ghost { background:transparent; color:var(--so-ink); border-color:var(--so-line); }
.so-btn.ghost:hover { border-color:var(--so-brand); color:var(--so-brand); box-shadow:none; }
.so-ctas { display:flex; flex-wrap:wrap; gap:12px; }

/* Hero */
.so-hero { position:relative; overflow:hidden; padding:56px 0 64px; }
.so-hero::before { content:""; position:absolute; inset:-260px -10% auto; height:640px; pointer-events:none;
    background:radial-gradient(60% 55% at 70% 40%, rgba(8,160,90,.16), transparent 70%), radial-gradient(40% 40% at 15% 20%, rgba(52,211,153,.12), transparent 70%); }
.so-hero-in { position:relative; max-width:860px; }
.so-hero.center .so-hero-in { margin:0 auto; text-align:center; }
.so-hero.center .so-ctas, .so-hero.center .so-chips { justify-content:center; }
.so-crumbs { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:13px; color:var(--so-muted); margin-bottom:26px; }
.so-crumbs a { color:var(--so-muted); } .so-crumbs a:hover { color:var(--so-brand); }
.so-crumbs span { opacity:.5; }
.so-hero-top { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.so-hero h1 { margin:20px 0 0; font-size:clamp(34px, 4.8vw, 56px); line-height:1.06; font-weight:800; }
.so-lead { margin:20px 0 28px; font-size:18px; line-height:1.65; color:var(--so-muted); max-width:720px; }
.so-hero.center .so-lead { margin-left:auto; margin-right:auto; }
.so-icontile { display:inline-grid; place-items:center; width:56px; height:56px; border-radius:16px; color:var(--so-brand); background:var(--so-tint); border:1px solid rgba(8,160,90,.25); }
.so-icontile svg { width:26px; height:26px; }
.so-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; font-size:12px; font-weight:700; letter-spacing:.02em;
    color:var(--so-brand); background:var(--so-tint); border:1px solid rgba(8,160,90,.3); }
.so-badge.region { color:var(--so-ink2); background:var(--so-card); border-color:var(--so-line); }
.so-chips { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:26px; font-size:14px; color:var(--so-muted); }
.so-chips span { display:inline-flex; align-items:center; gap:7px; }
.so-chips svg { width:17px; height:17px; fill:none; stroke:var(--so-brand); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }

/* Logo tile: brand marks keep their own colours on white in both themes. */
.so-logo { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#fff; border:1px solid #e6e8ec; border-radius:12px; padding:0 14px; height:52px; min-width:84px; }
.so-logo img { height:24px; width:auto; max-width:120px; display:block; }
.so-logo.lg { height:84px; min-width:150px; padding:0 24px; border-radius:18px; box-shadow:var(--so-shadow); }
.so-logo.lg img { height:38px; max-width:200px; }
.so-logo.sm { height:38px; min-width:64px; padding:0 10px; border-radius:9px; }
.so-logo.sm img { height:18px; max-width:84px; }
.so-logo.coins img { height:28px; width:28px; }
.so-logo.lg.coins img { height:40px; width:40px; }
.so-logo.sm.coins img { height:20px; width:20px; }

/* Section heads */
.so-head { max-width:720px; margin:0 0 40px; }
.so-head.center { margin:0 auto 44px; text-align:center; }
.so-head h2 { margin:0; font-size:clamp(26px, 3.2vw, 38px); font-weight:800; line-height:1.15; }
.so-head p { margin:14px 0 0; font-size:17px; line-height:1.65; color:var(--so-muted); }
.so-kicker { display:block; margin-bottom:10px; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--so-brand); }

/* Prose + aside */
.so-split { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:48px; align-items:start; }
.so-prose p { margin:0 0 18px; font-size:17px; line-height:1.75; color:var(--so-ink2); }
.so-prose p:last-child { margin-bottom:0; }
.so-prose h2 { margin:0 0 18px; font-size:clamp(24px, 2.8vw, 32px); font-weight:800; line-height:1.2; }
.so-aside { position:sticky; top:88px; padding:26px; border-radius:20px; background:var(--so-card); border:1px solid var(--so-line); box-shadow:var(--so-shadow); }
.so-aside h3 { margin:0 0 16px; font-size:16px; font-weight:800; }
.so-facts { margin:0; display:grid; gap:0; }
.so-facts div { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); gap:12px; padding:12px 0; border-top:1px solid var(--so-line); font-size:14px; line-height:1.5; }
.so-facts div:first-child { border-top:0; padding-top:0; }
.so-facts dt { color:var(--so-muted); font-weight:600; }
.so-facts dd { margin:0; color:var(--so-ink); font-weight:600; }
.so-aside-sub { margin:22px 0 10px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--so-muted); }
.so-logos { display:flex; flex-wrap:wrap; gap:8px; }
.so-tools { display:flex; flex-wrap:wrap; gap:8px; }
.so-tool { display:inline-flex; align-items:center; padding:7px 12px; border-radius:9px; font-size:13px; font-weight:700; color:var(--so-ink2); background:var(--so-soft); border:1px solid var(--so-line); }
.so-tool:hover { color:var(--so-brand); border-color:var(--so-brand); }

/* Cards */
.so-grid { display:grid; gap:20px; }
.so-grid.c2 { grid-template-columns:repeat(2,1fr); }
.so-grid.c3 { grid-template-columns:repeat(3,1fr); }
.so-grid.c4 { grid-template-columns:repeat(4,1fr); }
.so-card { padding:26px; border-radius:18px; background:var(--so-card); border:1px solid var(--so-line); }
.so-card h3 { margin:16px 0 8px; font-size:18px; font-weight:800; line-height:1.3; }
.so-card p { margin:0; font-size:15px; line-height:1.65; color:var(--so-muted); }
.so-card .so-mark { display:inline-grid; place-items:center; width:40px; height:40px; border-radius:12px; color:var(--so-brand); background:var(--so-tint); }
.so-card .so-mark.bad { color:var(--so-bad); background:var(--so-bad-bg); }
.so-card .so-mark svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
a.so-card { display:block; color:inherit; transition:border-color .15s, transform .15s, box-shadow .15s; }
a.so-card:hover { border-color:var(--so-brand); transform:translateY(-2px); box-shadow:var(--so-shadow); }
.so-card .so-more { display:inline-flex; margin-top:14px; font-size:14px; font-weight:700; color:var(--so-brand); }

/* Use-case list */
.so-uses { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 28px; margin:0; padding:0; list-style:none; }
.so-uses li { display:flex; gap:10px; align-items:flex-start; font-size:16px; line-height:1.5; color:var(--so-ink2); }
.so-uses svg { width:20px; height:20px; flex:0 0 auto; margin-top:2px; fill:none; stroke:var(--so-brand); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

/* Steps */
.so-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:so-step; }
.so-step { position:relative; padding:24px; border-radius:18px; background:var(--so-card); border:1px solid var(--so-line); }
.so-step::before { counter-increment:so-step; content:counter(so-step); display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%;
    font-weight:800; font-size:15px; color:#fff; background:var(--so-brand); }
.so-step h3 { margin:14px 0 6px; font-size:17px; font-weight:800; }
.so-step p { margin:0; font-size:14.5px; line-height:1.6; color:var(--so-muted); }
.so-steps.c2 { grid-template-columns:repeat(2,1fr); }

/* Notes */
.so-note { display:flex; gap:12px; align-items:flex-start; padding:18px 20px; border-radius:14px; font-size:15px; line-height:1.6; color:var(--so-ink2);
    background:var(--so-warn-bg); border:1px solid rgba(180,83,9,.25); }
.so-note svg { width:20px; height:20px; flex:0 0 auto; margin-top:2px; fill:none; stroke:var(--so-warn); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.so-note a { color:var(--so-brand); font-weight:700; }

/* Method cards (hub + related) */
.so-mcard { display:flex; flex-direction:column; gap:14px; padding:20px; border-radius:16px; background:var(--so-card); border:1px solid var(--so-line); color:inherit;
    transition:border-color .15s, transform .15s, box-shadow .15s; }
.so-mcard:hover { border-color:var(--so-brand); transform:translateY(-2px); box-shadow:var(--so-shadow); }
.so-mcard .so-logo { align-self:flex-start; }
.so-mcard strong { font-size:16px; font-weight:800; color:var(--so-ink); }
.so-mcard small { display:block; margin-top:3px; font-size:13px; color:var(--so-muted); line-height:1.45; }
.so-mtags { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.so-mtag { font-size:11px; font-weight:800; letter-spacing:.04em; padding:3px 8px; border-radius:6px; color:var(--so-muted); border:1px solid var(--so-line); }
.so-mtag.live { color:var(--so-brand); border-color:rgba(8,160,90,.35); background:var(--so-tint); }
.so-group { margin-top:52px; }
.so-group:first-child { margin-top:0; }
.so-group > h3 { margin:0 0 6px; font-size:22px; font-weight:800; }
.so-group > p { margin:0 0 20px; font-size:15px; color:var(--so-muted); line-height:1.6; max-width:760px; }

/* Industry cards */
.so-icard { display:flex; flex-direction:column; gap:12px; padding:24px; border-radius:18px; background:var(--so-card); border:1px solid var(--so-line); color:inherit;
    transition:border-color .15s, transform .15s, box-shadow .15s; }
.so-icard:hover { border-color:var(--so-brand); transform:translateY(-2px); box-shadow:var(--so-shadow); }
.so-icard .so-icontile { width:46px; height:46px; border-radius:13px; }
.so-icard .so-icontile svg { width:22px; height:22px; }
.so-icard strong { font-size:17px; font-weight:800; color:var(--so-ink); }
.so-icard small { font-size:14px; line-height:1.5; color:var(--so-muted); }
.so-pills { display:flex; flex-wrap:wrap; gap:10px; }
.so-pill { display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:999px; font-size:14px; font-weight:700; color:var(--so-ink2); background:var(--so-card); border:1px solid var(--so-line); }
.so-pill:hover { color:var(--so-brand); border-color:var(--so-brand); }
.so-pill svg { width:16px; height:16px; color:var(--so-brand); }

/* FAQ */
.so-faq { max-width:860px; margin:0 auto; display:grid; gap:12px; }
.so-faq details { border-radius:14px; background:var(--so-card); border:1px solid var(--so-line); }
.so-faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px; padding:18px 22px; font-size:16.5px; font-weight:700; color:var(--so-ink); }
.so-faq summary::-webkit-details-marker { display:none; }
.so-faq summary::after { content:"+"; flex:0 0 auto; font-size:22px; line-height:1; color:var(--so-brand); transition:transform .15s; }
.so-faq details[open] summary::after { transform:rotate(45deg); }
.so-faq details p { margin:0; padding:0 22px 20px; font-size:15.5px; line-height:1.7; color:var(--so-muted); }

/* CTA band */
.so-cta { position:relative; overflow:hidden; padding:56px 40px; border-radius:26px; text-align:center; color:#fff;
    background:radial-gradient(80% 120% at 85% 0%, rgba(52,211,153,.35), transparent 60%), linear-gradient(135deg, #0b1220, #0d2a1e); }
.so-cta h2 { margin:0; color:#fff; font-size:clamp(26px, 3.4vw, 40px); font-weight:800; line-height:1.15; }
.so-cta p { margin:16px auto 28px; max-width:620px; font-size:17px; line-height:1.65; color:rgba(255,255,255,.78); }
.so-cta .so-ctas { justify-content:center; }
.so-cta .so-btn.ghost { color:#fff; border-color:rgba(255,255,255,.25); }
.so-cta .so-btn.ghost:hover { color:#fff; border-color:var(--so-brand2); }

@media (max-width: 1000px) {
    .so-split { grid-template-columns:1fr; gap:32px; }
    .so-aside { position:static; }
    .so-grid.c3, .so-grid.c4, .so-steps { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px) {
    .so-sec { padding:56px 0; }
    .so-hero { padding:36px 0 44px; }
    .so-lead { font-size:16.5px; }
    .so-grid.c2, .so-grid.c3, .so-grid.c4, .so-steps, .so-steps.c2, .so-uses { grid-template-columns:1fr; }
    .so-grid.tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .so-grid.tiles .so-icard, .so-grid.tiles .so-mcard { padding:16px; gap:10px; }
    .so-grid.tiles .so-icard small, .so-grid.tiles .so-mcard small { font-size:13px; }
    .so-grid.tiles .so-mcard .so-logo { height:44px; min-width:0; padding:0 10px; }
    .so-grid.tiles .so-mcard .so-logo img { height:20px; max-width:100px; }
    .so-facts div { grid-template-columns:1fr; gap:2px; }
    .so-cta { padding:40px 20px; border-radius:20px; }
    .so-logo.lg { height:70px; min-width:120px; }
}
