/* ============================================================
   KADARA SOLUTIONS family (Slice 3) + shared footer.
   Consumes theme.css + rp-system.css tokens. `sol-`/`hp-footer`.
   ============================================================ */

/* ---------- shared footer (injected by kadara-nav.js) ---------- */
.hp-footer { border-top: 1px solid var(--line); padding: 64px 0 40px; background: var(--paper); }
.hp-footer-grid { max-width: 1160px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: 40px; }
.hp-footer-brand .fb { line-height: 0; }
.hp-footer-brand .fb img { display: block; height: 30px; width: auto; }
.hp-footer-brand .fb .ks-fb-dm { display: none; }
:root[data-theme="dark"] .hp-footer-brand .fb .ks-fb-lm { display: none; }
:root[data-theme="dark"] .hp-footer-brand .fb .ks-fb-dm { display: block; }
.hp-footer-brand p { font-size: 15px; line-height: 1.55; color: var(--sub); margin: 12px 0 0; max-width: 30ch; }
.hp-fcol h4 { font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); margin: 0 0 16px; font-weight: 500; }
.hp-fcol a { display: block; font-size: 15px; color: var(--sub); text-decoration: none; margin-bottom: 11px; }
.hp-fcol a:hover { color: var(--brand-verdigris-text); }
.hp-footer-strip { max-width: 1160px; margin: 40px auto 0; padding: 24px 32px 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; font-size: 13px; color: var(--faint); }
.hp-footer-legal { display: inline-flex; gap: 18px; }
.hp-footer-legal a { color: var(--faint); text-decoration: none; }
.hp-footer-legal a:hover { color: var(--ink); }
@media (max-width: 760px) { .hp-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; } .hp-footer-brand { grid-column: 1 / -1; } }

/* ---------- solution hero (editorial + one dominant proof) ---------- */
.sol-hero { padding: 44px 0 8px; }
.sol-breadcrumb { font-family: var(--ff-mono); font-size: 12px; color: var(--faint); margin: 0 0 18px; }
.sol-breadcrumb a { color: var(--faint); text-decoration: none; }
.sol-breadcrumb a:hover { color: var(--brand-verdigris-text); }
.sol-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 52px; align-items: center; }
.sol-eyebrow { font-family: var(--ff-heading); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-verdigris-text); margin: 0 0 16px; }
.sol-hero h1 { font-family: var(--ff-heading); font-size: clamp(32px, 3.4vw, 45px); font-weight: 700; line-height: 1.12; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 18px; max-width: 20ch; text-wrap: balance; }
.sol-lead { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.55; color: var(--sub); max-width: 46ch; margin: 0 0 28px; }
.sol-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 900px) { .sol-hero-grid { grid-template-columns: 1fr; gap: 28px; } .sol-hero-cta .btn { flex: 1 1 auto; justify-content: center; } }

.sol-h2 { font-family: var(--ff-heading); font-size: clamp(30px, 3vw, 42px); font-weight: 700; line-height: 1.14; letter-spacing: -0.015em; color: var(--ink); margin: 0 0 18px; max-width: 22ch; }
.sol-section-eyebrow { font-family: var(--ff-heading); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-brass-text); margin: 0 0 14px; }

/* ---------- before / with Kadara ---------- */
.sol-ba { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
.sol-ba-col { border: 1px solid var(--line); border-radius: 18px; padding: 28px 28px 24px; background: var(--paper); }
.sol-ba-col.before { background: var(--bg-section); }
.sol-ba-col .bak { font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 14px; }
.sol-ba-col.before .bak { color: var(--faint); }
.sol-ba-col.after .bak { color: var(--brand-verdigris-text); }
.sol-ba-col h3 { font-family: var(--ff-heading); font-size: clamp(19px, 2vw, 23px); font-weight: 700; letter-spacing: -0.015em; color: var(--ink); margin: 0 0 14px; max-width: 22ch; }
.sol-ba-col ul { margin: 0; padding: 0; list-style: none; }
.sol-ba-col li { position: relative; padding: 8px 0 8px 20px; font-size: 15px; line-height: 1.5; color: var(--sub); border-top: 1px solid var(--line); }
.sol-ba-col li:first-child { border-top: none; }
.sol-ba-col li::before { content: ""; position: absolute; left: 0; top: 15px; width: 7px; height: 7px; border-radius: 50%; }
.sol-ba-col.before li::before { background: var(--faint); }
.sol-ba-col.after li::before { background: var(--brand-verdigris-line); }
@media (max-width: 760px) { .sol-ba { grid-template-columns: 1fr; } }

/* ---------- outcomes (editorial, structural rules) ---------- */
.sol-outcomes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; border-top: 1px solid var(--line); }
.sol-outcome { padding: 32px 28px 0 0; border-right: 1px solid var(--line); }
.sol-outcome:last-child { border-right: none; padding-right: 0; }
.sol-outcome h3 { font-family: var(--ff-heading); font-size: clamp(21px, 2.2vw, 26px); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 12px; }
.sol-outcome p { font-size: 15px; line-height: 1.55; color: var(--sub); margin: 0; }
@media (max-width: 760px) { .sol-outcomes { grid-template-columns: 1fr; gap: 0; } .sol-outcome { border-right: none; border-top: 1px solid var(--line); padding: 26px 0 0; } .sol-outcome:first-child { border-top: none; } }

/* ---------- related use cases + audiences ---------- */
.sol-related { display: grid; grid-template-columns: 2fr 1fr; gap: 48px; }
.sol-related .sr-aud { display: flex; flex-direction: column; gap: 8px; }
.sol-related .sr-aud a { display: block; font-size: 14.5px; font-weight: 600; color: var(--ink); text-decoration: none; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.sol-related .sr-aud a:hover, .sol-related .sr-aud a:focus-visible { background: var(--brand-brass-soft); border-color: var(--brand-brass-line); color: var(--brand-brass-text); text-decoration: none; }
.sol-related .sr-aud a:focus-visible { outline: 2px solid var(--brand-brass-text); outline-offset: 2px; }
@media (max-width: 760px) { .sol-related { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- trust teaser (compact, light) ---------- */
.sol-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 32px 0; }
.sol-trust p { font-family: var(--ff-heading); font-size: clamp(18px, 1.9vw, 23px); font-weight: 600; letter-spacing: -0.01em; color: var(--ink); margin: 0; max-width: 34ch; }
.sol-trust a { margin-left: auto; font-family: var(--ff-mono); font-size: 13px; font-weight: 600; color: var(--brand-verdigris-text); text-decoration: none; white-space: nowrap; }
.sol-trust a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) { .sol-trust a { margin-left: 0; } }

/* ---------- HUB one-system map ---------- */
.sol-map { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); gap: 24px; margin-top: 44px; align-items: stretch; }
.sol-spine { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; background: var(--paper); }
.sol-spine a { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 16px; padding: 24px 26px; text-decoration: none; border-top: 1px solid var(--line); transition: background 0.15s ease; }
.sol-spine a:first-child { border-top: none; }
.sol-spine a:hover, .sol-spine a:focus-visible { background: var(--brand-brass-soft); }
.sol-spine a:focus-visible { outline: 2px solid var(--brand-brass-text); outline-offset: -2px; }
.sol-spine a:hover .sp-t, .sol-spine a:focus-visible .sp-t { color: var(--brand-brass-text); }
.sol-spine a:hover .sp-go, .sol-spine a:focus-visible .sp-go { transform: translateX(4px); }
.sol-spine .sp-n { font-family: var(--ff-mono); font-size: 12px; color: var(--brand-verdigris-text); }
.sol-spine .sp-b .sp-t { font-family: var(--ff-heading); font-size: clamp(20px, 2.1vw, 25px); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); transition: color .15s ease; }
.sol-spine .sp-b .sp-d { display: block; font-size: 14px; color: var(--sub); margin-top: 4px; }
.sol-spine .sp-go { color: var(--brand-brass-text); font-size: 20px; display: inline-block; transition: transform .15s ease; }
.sol-cross { border: 1px solid var(--brand-brass-line); border-radius: 20px; background: linear-gradient(160deg, var(--brand-brass-soft), var(--bg-section) 75%); padding: 28px; display: flex; flex-direction: column; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.sol-cross:hover, .sol-cross:focus-visible { border-color: var(--brand-brass); box-shadow: 0 18px 40px -30px rgba(11,22,19,.4); }
.sol-cross:focus-visible { outline: 2px solid var(--brand-brass-text); outline-offset: 2px; }
.sol-cross .sc-go { transition: transform .15s ease; display: inline-block; }
.sol-cross:hover .sc-go, .sol-cross:focus-visible .sc-go { transform: translateX(4px); }
.sol-cross .sc-k { font-family: var(--ff-heading); font-weight: 600; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-brass-text); }
.sol-cross .sc-t { font-family: var(--ff-heading); font-size: clamp(21px, 2.2vw, 26px); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); margin: 10px 0 8px; }
.sol-cross p { font-size: 14.5px; line-height: 1.55; color: var(--sub); margin: 0 0 auto; }
.sol-cross .sc-go { margin-top: 18px; font-family: var(--ff-mono); font-size: 13px; font-weight: 600; color: var(--brand-brass-text); }
@media (max-width: 820px) { .sol-map { grid-template-columns: 1fr; } }

/* ---------- CONTINUITY temporal thread ---------- */
.sol-thread { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 40px; position: relative; }
.sol-thread--3 { grid-template-columns: repeat(3, 1fr); }
.sol-thread::before { content: ""; position: absolute; left: 8%; right: 8%; top: 34px; height: 2px; background: linear-gradient(90deg, var(--brand-verdigris-line), var(--line)); }
.sol-tcol { position: relative; padding: 0 14px; }
.sol-tcol .tw { font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--faint); }
.sol-tcol .td { width: 14px; height: 14px; border-radius: 50%; background: var(--paper); border: 2px solid var(--brand-verdigris-line); margin: 12px 0 22px; }
.sol-tcol.now .td { background: var(--brand-verdigris); border-color: var(--brand-verdigris); box-shadow: 0 0 0 6px var(--brand-verdigris-soft); }
.sol-tcard { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); padding: 16px 16px 14px; min-height: 118px; }
.sol-tcol.now .sol-tcard { border-color: var(--brand-verdigris-line); box-shadow: 0 18px 40px -30px rgba(11,22,19,0.4); }
.sol-tcard .tt { font-family: var(--ff-heading); font-size: 15px; font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.sol-tcard .tl { font-size: 13.5px; line-height: 1.45; color: var(--sub); margin: 0; }
@media (max-width: 760px) { .sol-thread, .sol-thread--3 { grid-template-columns: 1fr; } .sol-thread::before { left: 24px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; } .sol-tcol { padding: 0 0 22px 52px; } .sol-tcol .td { position: absolute; left: 16px; top: 18px; margin: 0; } .sol-tcol .tw { display: block; margin-bottom: 8px; } }

/* ---------- PAYMENTS record-to-payment relationship ---------- */
.pay-rel { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; margin-top: 40px; }
.pay-rel .pr-link { font-family: var(--ff-mono); font-size: 12px; color: var(--faint); text-align: center; }
.pay-panel { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--paper); }
.pay-panel .pp-bar { font-family: var(--ff-mono); font-size: 12px; color: var(--sub); padding: 12px 18px; border-bottom: 1px solid var(--line); background: var(--bg-section); }
.pay-panel .pp-body { padding: 20px 20px; }
.pay-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); font-size: 14.5px; }
.pay-row:first-child { border-top: none; }
.pay-row .pr-k { color: var(--sub); }
.pay-row .pr-v { color: var(--ink); font-weight: 600; }
.pay-row .pr-v.mono { font-family: var(--ff-mono); }
@media (max-width: 760px) { .pay-rel { grid-template-columns: 1fr; } .pay-rel .pr-link { transform: rotate(90deg); } }
