/* Landing */
.landing-page { background: var(--surface); }
.landing-page .container { width: 100%; max-width: none; padding: 0; }
.landing { overflow: hidden; }
.landing > section { width: min(calc(100% - 48px), var(--content)); margin-right: auto; margin-left: auto; }
.landing-hero {
  display: grid;
  position: relative;
  min-height: 690px;
  padding: 92px 0 88px;
  align-items: center;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.78fr);
  gap: clamp(3rem, 7vw, 7rem);
}
.landing-hero::before {
  position: absolute;
  z-index: 0;
  top: 4%;
  right: -22%;
  width: 720px;
  height: 720px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(15, 118, 110, 0.11) 0%, rgba(15, 118, 110, 0.035) 48%, transparent 70%);
  content: "";
  pointer-events: none;
}
.landing-hero > * { position: relative; z-index: 1; }
.hero-kicker {
  display: inline-flex;
  margin-bottom: 1.15rem;
  padding: 0.42rem 0.72rem;
  border: 1px solid var(--teal-100);
  border-radius: 999px;
  background: var(--teal-50);
  letter-spacing: 0.075em;
}
.landing-hero__copy h1 {
  max-width: 800px;
  margin-bottom: 1.35rem;
  font-size: clamp(3rem, 5.8vw, 4.8rem);
  font-weight: 740;
  letter-spacing: -0.058em;
  line-height: 0.99;
}
.landing-lead { max-width: 670px; color: var(--ink-700); font-size: clamp(1.05rem, 1.7vw, 1.2rem); line-height: 1.68; }
.landing-actions { display: flex; margin-top: 1.8rem; flex-wrap: wrap; gap: 0.75rem; }
.landing-actions .button { min-height: 50px; padding: 0.78rem 1.28rem; }
.landing-note { max-width: 610px; margin: 0.85rem 0 0; color: var(--muted); font-size: 0.77rem; }
.hero-summary {
  position: relative;
  overflow: hidden;
  padding: 1.55rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  background:
    radial-gradient(circle at 90% 8%, rgba(98, 202, 188, 0.17), transparent 32%),
    var(--ink-950);
  color: #d9e7ec;
  box-shadow: 0 32px 80px rgba(8, 27, 45, 0.2);
}
.hero-summary::before { display: block; height: 4px; margin: -1.55rem -1.55rem 1.4rem; background: #62cabc; content: ""; }
.hero-summary__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.hero-summary__header h2 { max-width: 300px; margin-bottom: 0; color: white; font-size: 1.35rem; line-height: 1.25; }
.hero-summary__header .eyebrow { margin-bottom: 0.3rem; color: #75d2c7; font-size: 0.64rem; }
.hero-control-badge {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 0.3rem 0.58rem;
  border: 1px solid rgba(117, 210, 199, 0.34);
  border-radius: 999px;
  background: rgba(117, 210, 199, 0.1);
  color: #9ee0d7;
  font-size: 0.67rem;
  font-weight: 720;
  white-space: nowrap;
}
.hero-journey { display: grid; margin: 1.45rem 0; padding: 0; list-style: none; }
.hero-journey li { display: grid; position: relative; padding: 0 0 1.2rem; grid-template-columns: 30px 1fr; gap: 0.85rem; }
.hero-journey li:last-child { padding-bottom: 0; }
.hero-journey li:not(:last-child)::after { position: absolute; top: 30px; bottom: 0; left: 14px; width: 1px; background: rgba(255, 255, 255, 0.14); content: ""; }
.hero-journey li > span { display: grid; z-index: 1; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(117, 210, 199, 0.4); border-radius: 50%; background: #0c253a; color: #75d2c7; font-size: 0.64rem; font-weight: 800; }
.hero-journey h3 { margin: 0.22rem 0 0.18rem; color: white; font-size: 0.94rem; }
.hero-journey p { margin: 0; color: #a9c1cc; font-size: 0.78rem; line-height: 1.5; }
.hero-price { display: grid; margin-top: 1.4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 12px; background: rgba(255, 255, 255, 0.055); }
.hero-price p { display: flex; min-height: 88px; margin: 0; padding: 0.9rem 1rem; justify-content: center; flex-direction: column; }
.hero-price p + p { border-left: 1px solid rgba(255, 255, 255, 0.12); }
.hero-price span { color: #9db5c0; font-size: 0.65rem; line-height: 1.35; }
.hero-price strong { margin-top: 0.18rem; color: white; font-size: 1.22rem; line-height: 1.15; }
.metric-grid { display: grid; margin: 1.1rem 0 0; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--border); border-radius: 8px; }
.metric-grid div { padding: 1rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.metric-grid div:nth-child(2n) { border-right: 0; }
.metric-grid div:nth-last-child(-n+2) { border-bottom: 0; }
.metric-grid dt { color: var(--muted); font-size: 0.7rem; }
.metric-grid dd { margin: 0.15rem 0 0; color: var(--ink-950); font-size: 1.75rem; font-weight: 740; line-height: 1; }
.mock-caption { margin: 0.8rem 0 0; color: var(--subtle); font-size: 0.65rem; text-align: right; }
.trust-strip { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.trust-strip ul { display: grid; margin: 0; padding: 1.15rem 0; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; }
.trust-strip li { position: relative; padding: 0 1.2rem 0 1.4rem; color: var(--ink-700); font-size: 0.78rem; font-weight: 650; }
.trust-strip li::before { position: absolute; left: 0; content: "✓"; color: var(--teal-600); font-weight: 800; }
.landing-section { padding-top: 104px; padding-bottom: 104px; }
.section-heading { max-width: 780px; margin-bottom: 3rem; }
.section-heading h2, .security-section h2, .final-cta h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
.section-heading > p:not(.eyebrow) { max-width: 690px; color: var(--muted); font-size: 1.02rem; }
.problem-section { border-bottom: 1px solid var(--border); }
.feature-grid { display: grid; gap: 1rem; }
.feature-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-card { min-height: 220px; padding: 1.6rem; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.feature-card__number { margin-bottom: 2.5rem; color: var(--teal-600); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; }
.feature-card h3 { font-size: 1.12rem; }
.feature-card p:last-child { margin-bottom: 0; color: var(--muted); }
.workflow-section { display: grid; grid-template-columns: minmax(280px, 0.62fr) minmax(0, 1fr); gap: 5rem; border-bottom: 1px solid var(--border); }
.workflow-section .section-heading { margin-bottom: 0; }
.workflow-section .section-heading > p:last-child { margin-top: 1rem; }
.workflow-list { display: grid; margin: 0; padding: 0; gap: 0; list-style: none; counter-reset: workflow; }
.workflow-step { display: grid; padding: 0 0 1.5rem; grid-template-columns: auto 1fr; gap: 1rem; }
.workflow-step:not(:last-child) .workflow-step__number::after { position: absolute; top: 36px; bottom: -2rem; left: 50%; width: 1px; background: var(--border); content: ""; }
.workflow-step__number { position: relative; display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--teal-600); border-radius: 50%; background: var(--surface); color: var(--teal-700); font-size: 0.76rem; font-weight: 800; }
.workflow-step h3 { margin-top: 0.35rem; }
.workflow-step p { margin-bottom: 0; color: var(--muted); }
.workflow-section .section-note { grid-column: 2; margin: -2rem 0 0 3.25rem; padding: 0.7rem 0.9rem; border-left: 3px solid var(--teal-600); background: var(--teal-50); color: var(--teal-700); font-size: 0.8rem; }
.integrations-section { border-top: 1px solid var(--border); }
.integration-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.integration-flow__card { display: flex; min-height: 280px; padding: 1.5rem; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.integration-flow__card .source-badge { align-self: flex-start; margin-bottom: 1.3rem; }
.integration-flow__card h3 { font-size: 1.12rem; }
.integration-flow__card p { color: var(--ink-700); }
.integration-flow__card small { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); line-height: 1.55; }
.automation-goal { display: grid; margin-top: 1rem; padding: 1.5rem; align-items: center; grid-template-columns: 220px minmax(0, 1fr); gap: 2rem; border-radius: var(--radius); background: var(--ink-900); color: white; }
.automation-goal .eyebrow { margin-bottom: 0.2rem; color: #75d2c7; }
.automation-goal strong { color: white; font-size: clamp(2.1rem, 4vw, 3.4rem); line-height: 1; }
.automation-goal > p { max-width: 720px; margin: 0; color: #c4d5dd; font-size: 1rem; }
.bank-listing { margin-top: 4rem; padding-top: 4rem; border-top: 1px solid var(--border); }
.bank-listing h3 { margin-bottom: 0.55rem; font-size: clamp(1.55rem, 2.5vw, 2.2rem); }
.bank-listing__intro { max-width: 720px; margin-bottom: 1.5rem; color: var(--muted); }
.bank-list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; list-style: none; }
.bank-list li { display: flex; position: relative; min-height: 76px; padding: 0.85rem 0.85rem 0.85rem 2.35rem; justify-content: center; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.bank-list li::before { position: absolute; top: 50%; left: 1rem; width: 9px; height: 9px; transform: translateY(-50%); border-radius: 50%; background: var(--warning-border); content: ""; }
.bank-list li[data-bank-status="available"] { border-color: var(--success-border); background: var(--success-bg); }
.bank-list li[data-bank-status="available"]::before { background: var(--success); box-shadow: 0 0 0 4px rgba(18, 98, 63, 0.1); }
.bank-list li[data-bank-status="available-beta"] { border-color: var(--teal-100); background: var(--teal-50); }
.bank-list li[data-bank-status="available-beta"]::before { background: var(--teal-600); box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.1); }
.bank-list li[data-bank-status="personal-only"] { background: var(--warning-bg); }
.bank-list span { color: var(--ink-900); font-weight: 700; }
.bank-list small { margin-top: 0.15rem; color: var(--muted); font-size: 0.67rem; font-weight: 560; line-height: 1.35; }
.cockpit-section { border-top: 1px solid var(--border); }
.cockpit { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-lg); }
.cockpit__header { display: flex; padding: 1.25rem 1.4rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); background: var(--ink-900); }
.cockpit__header h3 { margin-bottom: 0; color: white; }
.cockpit__context { margin-bottom: 0.2rem; color: #a9c1cc; font-size: 0.7rem; }
.cockpit__actions { display: flex; gap: 0.45rem; }
.cockpit__actions button { min-height: 34px; border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.08); color: #dbe8ed; font-size: 0.72rem; opacity: 1; }
.cockpit__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--border); }
.cockpit__metrics article { display: flex; min-height: 120px; padding: 1.1rem 1.4rem; justify-content: center; flex-direction: column; border-right: 1px solid var(--border); }
.cockpit__metrics article:last-child { border-right: 0; }
.cockpit__metrics p { margin-bottom: 0.15rem; color: var(--muted); font-size: 0.72rem; }
.cockpit__metrics strong { color: var(--ink-950); font-size: 1.35rem; }
.cockpit__metrics small { color: var(--muted); }
.cockpit__table-wrap { overflow-x: auto; }
.cockpit__table { min-width: 760px; }
.cockpit__table caption { padding: 0.75rem 1.3rem; color: var(--muted); font-size: 0.7rem; text-align: left; }
.cockpit__table th { padding: 0.7rem 1.3rem; border-bottom: 1px solid var(--border); background: var(--surface-soft); color: var(--muted); font-size: 0.66rem; letter-spacing: 0.05em; text-align: left; text-transform: uppercase; }
.cockpit__table td { padding: 0.9rem 1.3rem; border-bottom: 1px solid #e7ecea; }
.cockpit__table tr:last-child td { border-bottom: 0; }
.cockpit__table td:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cockpit__table td strong, .cockpit__table td small { display: block; }
.cockpit__table td small { color: var(--muted); }
.table-action { color: var(--muted); font-size: 0.74rem; }
.capabilities-section { border-top: 1px solid var(--border); }
.capabilities-section .feature-card { min-height: 170px; background: var(--surface-soft); }
.security-section { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr); gap: 6rem; border-top: 1px solid var(--border); }
.security-section__intro > p:last-child { color: var(--muted); }
.security-list { display: grid; margin: 0; padding: 0; list-style: none; }
.security-list li { display: flex; padding: 1.2rem 0; flex-direction: column; border-bottom: 1px solid var(--border); }
.security-list li:first-child { border-top: 1px solid var(--border); }
.security-list strong { color: var(--ink-900); }
.security-list span { margin-top: 0.2rem; color: var(--muted); }
.pricing-section { border-bottom: 1px solid var(--border); }
.pricing-calculator { display: grid; margin: 0 0 2.5rem; overflow: hidden; grid-template-columns: minmax(0, 1fr) 300px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.pricing-calculator__input { padding: 1.35rem 1.5rem; }
.pricing-calculator__input > label { display: block; margin-bottom: 1rem; color: var(--ink-900); font-weight: 700; }
.pricing-calculator__input > p { margin: 0.7rem 0 0; color: var(--muted); font-size: 0.74rem; }
.range-row { display: grid; align-items: center; grid-template-columns: 1fr 180px; gap: 1.2rem; }
.range-row input[type="range"] { width: 100%; accent-color: var(--teal-600); }
.number-field { position: relative; }
.number-field input { padding-right: 5.7rem !important; text-align: right; font-variant-numeric: tabular-nums; }
.number-field > span { position: absolute; right: 0.7rem; bottom: 0.68rem; color: var(--muted); font-size: 0.73rem; pointer-events: none; }
.pricing-calculator__result { display: flex; padding: 1.35rem 1.5rem; justify-content: center; flex-direction: column; border-left: 1px solid var(--border); background: var(--ink-900); color: #d6e5eb; }
.pricing-calculator__result > span:first-child { color: #a9c1cc; font-size: 0.7rem; }
.pricing-calculator__result > strong { margin: 0.15rem 0; color: white; font-size: 1.55rem; }
.pricing-calculator__result b { color: #75d2c7; font-size: 1.05rem; }
.pricing-calculator__result small { margin-top: 0.25rem; color: #a9c1cc; }
.pricing-grid { display: grid; align-items: stretch; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.pricing-card { display: flex; position: relative; min-height: 330px; padding: 1.6rem; flex-direction: column; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.pricing-card--featured { border: 2px solid var(--teal-600); box-shadow: var(--shadow-md); }
.pricing-card__badge { position: absolute; top: 0; left: 50%; margin: 0; padding: 0.28rem 0.65rem; transform: translate(-50%, -50%); border-radius: 999px; background: var(--teal-600); color: white; font-size: 0.67rem; font-weight: 760; white-space: nowrap; }
.pricing-card__threshold { margin-bottom: 0.2rem; color: var(--muted); font-size: 0.67rem; font-weight: 720; letter-spacing: 0.07em; text-transform: uppercase; }
.pricing-card__name { margin-bottom: 1.4rem; color: var(--ink-900); font-size: 1.14rem; font-weight: 740; }
.pricing-card__service { margin-bottom: 0.2rem; color: var(--muted); font-size: 0.78rem; }
.pricing-card__price { display: flex; margin-bottom: 0.8rem; align-items: baseline; gap: 0.35rem; }
.pricing-card__price strong { color: var(--ink-950); font-size: 2.2rem; }
.pricing-card__price span { color: var(--muted); font-size: 0.72rem; }
.pricing-card header > p:last-child { min-height: 48px; color: var(--muted); }
.pricing-card ul { display: grid; margin: 1rem 0 1.5rem; padding: 1rem 0 0; gap: 0.7rem; border-top: 1px solid var(--border); list-style: none; }
.pricing-card li { position: relative; padding-left: 1.3rem; color: var(--ink-700); font-size: 0.84rem; }
.pricing-card li::before { position: absolute; left: 0; content: "✓"; color: var(--teal-600); font-weight: 800; }
.pricing-card .button { width: 100%; margin-top: auto; }
.pricing-details { max-width: 820px; margin: 2rem auto 0; text-align: center; }
.pricing-card .pricing-details { max-width: none; margin: 1rem 0 0; text-align: left; }
.pricing-details p { margin-bottom: 0.35rem; }
.landing .comparison { margin: 2rem 0 1rem; padding: 1.6rem; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }
.comparison__heading { max-width: 700px; }
.comparison__heading .eyebrow { margin-bottom: 0.3rem; }
.comparison__heading h3 { margin-bottom: 1.2rem; font-size: clamp(1.35rem, 2.3vw, 1.8rem); }
.comparison-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.landing .comparison table { min-width: 700px; margin: 0; }
.landing .comparison th, .landing .comparison td { padding: 0.72rem 0.8rem; }
.landing .comparison tbody tr:last-child td { border-bottom: 0; }
.landing .comparison .hint { max-width: 850px; margin: 0.9rem 0 0; color: var(--muted); font-size: 0.75rem; }
.fine-print { max-width: 900px; margin: 1rem 0 0 !important; color: var(--muted); font-size: 0.72rem; }
.section-action { margin-top: 1.5rem; }
.faq-section { border-top: 0; }
.faq-list { display: grid; max-width: 1000px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
.faq-list details { align-self: start; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.faq-list summary { position: relative; padding: 1.1rem 2.7rem 1.1rem 1.15rem; color: var(--ink-900); font-weight: 680; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; top: 1rem; right: 1rem; content: "+"; color: var(--teal-700); font-size: 1.1rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0; padding: 0 1.15rem 1.15rem; color: var(--muted); }
.final-cta { margin-bottom: 104px; padding: 78px !important; border-radius: 22px; background: radial-gradient(circle at 82% 0%, rgba(98, 202, 188, 0.18), transparent 34%), var(--ink-900); color: #d8e7ec; text-align: center; }
.final-cta h2 { max-width: 850px; margin-right: auto; margin-left: auto; color: white; }
.final-cta > p:not(.eyebrow):not(.landing-note) { max-width: 700px; margin-right: auto; margin-left: auto; color: #c4d5dd; }
.final-cta .eyebrow { color: #75d2c7; }
.final-cta .landing-actions { justify-content: center; }
.final-cta .button.primary { border-color: #62cabc; background: #62cabc; color: var(--ink-950); }
.final-cta .button.secondary { border-color: rgba(255,255,255,0.35); background: transparent; color: white; }
.final-cta .landing-note { color: #a9c1cc; }

/* Footer */
.site-footer { border-top: 1px solid var(--border); background: var(--surface-soft); }
.footer-inner { display: grid; max-width: var(--content); margin: 0 auto; padding: 52px 24px; grid-template-columns: 1fr auto; gap: 2rem 5rem; }
.footer-brand { margin-bottom: 0.8rem; }
.footer-inner > div > p { margin-bottom: 0; color: var(--muted); font-size: 0.8rem; }
.footer-contact { display: inline-block; margin-top: 0.55rem; font-size: 0.8rem; font-weight: 680; text-decoration: none; }
.footer-inner nav { display: grid; grid-template-columns: repeat(2, auto); align-content: start; gap: 0.65rem 2rem; }
.footer-inner nav a { color: var(--ink-700); font-size: 0.78rem; text-decoration: none; }
.footer-meta { grid-column: 1 / -1; margin: 0; padding-top: 1.4rem; border-top: 1px solid var(--border); color: var(--muted); font-size: 0.72rem; }

/* Public legal documents */
.legal-public-page { background: var(--surface-soft); }
.legal-shell { width: 100%; }
.legal-page { width: min(calc(100% - 48px), 1120px); margin: 0 auto; padding: 70px 0 100px; }
.legal-hero { max-width: 820px; padding-bottom: 3rem; }
.legal-hero h1 { max-width: 760px; font-size: clamp(2.4rem, 5vw, 4rem); letter-spacing: -0.045em; }
.legal-lead { max-width: 760px; margin: 1rem 0; color: var(--ink-700); font-size: clamp(1rem, 1.6vw, 1.16rem); line-height: 1.7; }
.legal-revision { margin: 1.25rem 0 0; color: var(--muted); font-size: 0.78rem; }
.legal-layout { display: grid; align-items: start; grid-template-columns: 240px minmax(0, 760px); gap: clamp(3rem, 7vw, 7rem); }
.legal-toc { position: sticky; top: 100px; padding: 1.1rem 0; border-top: 2px solid var(--teal-600); border-bottom: 1px solid var(--border); }
.legal-toc > p { margin-bottom: 0.7rem; color: var(--ink-900); font-size: 0.7rem; font-weight: 760; letter-spacing: 0.08em; text-transform: uppercase; }
.legal-toc nav { display: grid; gap: 0.15rem; }
.legal-toc a { padding: 0.42rem 0; color: var(--muted); font-size: 0.78rem; text-decoration: none; }
.legal-toc a:hover { color: var(--teal-700); }
.legal-document { min-width: 0; padding: 2.1rem clamp(1.4rem, 4vw, 3rem); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-sm); }
.legal-document section { scroll-margin-top: 100px; }
.legal-document section + section { margin-top: 2.4rem; padding-top: 2.4rem; border-top: 1px solid var(--border); }
.legal-document h2 { margin-bottom: 1rem; font-size: clamp(1.3rem, 2vw, 1.65rem); }
.legal-document h3 { margin-top: 1.4rem; }
.legal-document p, .legal-document li { color: var(--ink-700); }
.legal-document ul { display: grid; margin: 0 0 1.2rem; padding-left: 1.25rem; gap: 0.65rem; }
.legal-document li::marker { color: var(--teal-600); }
.legal-contact { margin-top: 2.7rem; padding: 1.4rem; border-left: 3px solid var(--teal-600); background: var(--teal-50); }
.legal-contact p:last-child { margin-bottom: 0; color: var(--ink-700); }
