* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #111; background: #fff; line-height: 1.6; }
a { color: #111; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #555; outline-offset: 3px; }
img { max-width: 100%; display: block; }
.container { width: min(1160px, calc(100% - 2rem)); margin: 0 auto; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 100; background: #111; color: #fff; padding: .75rem 1rem; }
.skip-link:focus { left: 1rem; top: 1rem; }

.site-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,0.96); border-bottom: 1px solid #e7e7e7; backdrop-filter: blur(10px); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 96px; gap: 1rem; }
.brand { display: flex; align-items: center; gap: 0.9rem; }
.brand-mark { width: 88px; height: 88px; object-fit: contain; display: block; flex: 0 0 auto; }
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-top { font-size: 1rem; font-weight: 750; letter-spacing: 0.03em; }
.brand-bottom { font-size: 0.85rem; color: #5a5a5a; }
.site-nav { display: flex; gap: 1.15rem; align-items: center; }
.site-nav a { font-size: 0.94rem; color: #222; }
.site-nav .nav-cta { background: #111; color: #fff; padding: .7rem 1rem; border-radius: 999px; font-weight: 750; }
.nav-toggle { display: none; background: #fff; border: 1px solid #d9d9d9; border-radius: 10px; padding: 0.45rem 0.7rem; font-size: 1.1rem; }

.hero { padding: 5.4rem 0 4.5rem; }
.hero-grid { display: grid; grid-template-columns: 1.12fr 0.88fr; gap: 2.5rem; align-items: center; }
.eyebrow { margin: 0 0 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; color: #666; font-size: 0.76rem; font-weight: 800; }
h1, h2, h3 { margin: 0 0 1rem; line-height: 1.08; }
h1 { font-size: clamp(2.7rem, 6vw, 5rem); letter-spacing: -0.045em; max-width: 11ch; }
h2 { font-size: clamp(1.9rem, 4vw, 3rem); letter-spacing: -0.035em; }
h3 { font-size: 1.18rem; }
.lead { font-size: 1.14rem; color: #333; max-width: 62ch; }
.microcopy { margin-top: 1rem; color: #666; font-size: .88rem; }
.hero-actions, .action-buttons { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 1.6rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.88rem 1.2rem; border-radius: 999px; border: 1px solid #111; font-weight: 750; transition: transform .15s ease, opacity .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-solid { background: #111; color: #fff; }
.btn-outline { background: #fff; color: #111; }
.btn-light { background: #fff; color: #111; border-color: #fff; white-space: nowrap; }
.hero-panel { display: flex; justify-content: end; }
.logo-card { width: min(100%, 470px); border: 1px solid #151515; border-radius: 28px; padding: 1.2rem; background: #f8f8f8; box-shadow: 16px 16px 0 #111; }
.hero-logo { width: 100%; height: auto; object-fit: contain; }

.proof-strip { border-top: 1px solid #e7e7e7; border-bottom: 1px solid #e7e7e7; background: #fafafa; }
.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.proof-grid > div { padding: 1.4rem 1.1rem; border-right: 1px solid #e2e2e2; }
.proof-grid > div:last-child { border-right: 0; }
.proof-grid strong { display: block; font-size: 1.75rem; line-height: 1; margin-bottom: .45rem; }
.proof-grid span { display: block; color: #555; font-size: .9rem; line-height: 1.35; }

.section { padding: 4.8rem 0; border-top: 1px solid #ededed; }
.alt { background: #f7f7f7; }
.section-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 2.5rem; }
.section-grid p { color: #333; }
.services-intro, .performance-intro { max-width: 820px; color: #444; font-size: 1.05rem; margin: 0 0 1.5rem; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; }
.card { border: 1px solid #ddd; border-radius: 22px; padding: 1.45rem; background: #fff; }
.card p { color: #444; margin: 0; }

.capability-section { background: #111; color: #fff; }
.capability-section .eyebrow { color: #aaa; }
.capability-section h2, .capability-section h3 { color: #fff; }
.capability-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.capability-intro { max-width: 830px; color: #d7d7d7; font-size: 1.08rem; margin: 0 0 1.8rem; }
.capability-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.capability-card { border: 1px solid #444; border-radius: 22px; padding: 1.5rem; background: #181818; }
.capability-card ul { margin: 0.75rem 0 0; padding-left: 1.2rem; color: #e4e4e4; }
.capability-card li { margin-bottom: 0.55rem; }

.performance-section { background: #fff; }
.performance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.performance-card { border: 1px solid #ddd; border-radius: 22px; padding: 1.45rem; background: #fff; }
.performance-card.featured { background: #111; color: #fff; border-color: #111; }
.performance-card.featured p, .performance-card.featured .performance-label { color: #d4d4d4; }
.performance-label { display: block; text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; font-weight: 800; color: #777; margin-bottom: .8rem; }
.performance-card strong { display: block; font-size: 2rem; margin-bottom: .45rem; line-height: 1; }
.performance-card p { color: #444; margin-bottom: 0; font-size: .95rem; }

.leadership-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 2.7rem; align-items: start; }
.leadership-role { margin-top: -0.35rem; color: #555; font-size: 1.02rem; font-weight: 650; }
.leadership-copy p { color: #333; }
.leadership-metrics { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
.metric { border: 1px solid #d8d8d8; border-radius: 16px; padding: 1rem; background: #fafafa; }
.metric strong { display: block; font-size: 1.5rem; line-height: 1; margin-bottom: 0.35rem; }
.metric span { display: block; color: #555; font-size: 0.9rem; line-height: 1.35; }
.education-block { margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid #ddd; }
.education-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.education-list li { padding: .95rem 1.05rem; border: 1px solid #ddd; border-radius: 16px; background: #fafafa; }

.action-section { background: #f7f7f7; }
.action-box { display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 2rem; background: #fff; border: 1px solid #ddd; border-radius: 28px; padding: 2rem; }
.action-box p { color: #444; max-width: 68ch; }
.action-buttons { justify-content: flex-end; margin-top: 0; }

.site-footer { border-top: 1px solid #ececec; padding: 1.5rem 0 2rem; background: #fff; }
.footer-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.footer-brand { display: flex; align-items: center; gap: 0.85rem; }
.footer-logo { width: 54px; height: 54px; object-fit: contain; }
.footer-brand span { color: #555; font-size: .9rem; }
.footer-links { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: flex-end; }
.footer-links a { font-size: .9rem; }

.simple-page { max-width: 860px; margin: 0 auto; padding: 4.5rem 1rem; }
.simple-page h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); max-width: none; }
.simple-page h2 { font-size: 1.4rem; margin-top: 2rem; }
.simple-page p, .simple-page li { color: #333; }
.simple-page a { text-decoration: underline; }
.policy-nav { margin-bottom: 2rem; display: flex; gap: 1rem; flex-wrap: wrap; }
.policy-nav a { text-decoration: none; font-weight: 700; }
.notice-box { padding: 1rem 1.1rem; border: 1px solid #ddd; border-radius: 14px; background: #fafafa; }

.request-page { background: #f7f7f7; min-height: 100vh; }
.request-shell { width: min(980px, calc(100% - 2rem)); margin: 0 auto; padding: 3.5rem 0 5rem; }
.request-header { margin-bottom: 1.5rem; }
.request-header h1 { max-width: none; font-size: clamp(2.3rem, 5vw, 3.8rem); }
.request-header p { max-width: 72ch; color: #444; }
.request-card { background: #fff; border: 1px solid #ddd; border-radius: 24px; padding: 1.5rem; }
.form-section { border: 0; border-top: 1px solid #e5e5e5; padding: 1.5rem 0 0; margin: 1.5rem 0 0; }
.form-section:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.form-section legend { font-weight: 800; font-size: 1.1rem; padding: 0 .5rem 0 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-grid .full { grid-column: 1 / -1; }
label { display: block; font-weight: 700; font-size: .9rem; margin-bottom: .35rem; }
input, select, textarea { width: 100%; font: inherit; border: 1px solid #bbb; border-radius: 12px; padding: .78rem .85rem; background: #fff; color: #111; }
textarea { min-height: 150px; resize: vertical; }
input[type="checkbox"], input[type="radio"] { width: auto; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem 1rem; }
.checkbox-row { display: flex; align-items: flex-start; gap: .55rem; font-weight: 500; }
.checkbox-row input { margin-top: .3rem; }
.form-help { color: #666; font-size: .85rem; margin: .4rem 0 0; }
.form-actions { margin-top: 1.5rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.form-message { padding: 1rem 1.1rem; border-radius: 14px; margin-bottom: 1rem; }
.form-message.success { background: #eef8ef; border: 1px solid #9cc8a0; }
.form-message.error { background: #fff0f0; border: 1px solid #d2a0a0; }
.form-message ul { margin: .5rem 0 0 1.2rem; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.security-note { margin-top: 1rem; padding: 1rem; border: 1px solid #ddd; border-radius: 14px; background: #fafafa; color: #555; font-size: .9rem; }
.back-link { display: inline-block; margin-bottom: 1.25rem; font-weight: 700; }

@media (max-width: 980px) {
  .cards, .performance-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-grid > div:nth-child(2) { border-right: 0; }
  .proof-grid > div:nth-child(-n+2) { border-bottom: 1px solid #e2e2e2; }
  .hero-grid, .section-grid, .leadership-grid, .action-box { grid-template-columns: 1fr; }
  .hero-panel { justify-content: start; }
  .action-buttons { justify-content: flex-start; }
}
@media (max-width: 780px) {
  .site-nav { display: none; position: absolute; top: 96px; right: 1rem; left: 1rem; padding: 1rem; background: #fff; border: 1px solid #ddd; border-radius: 16px; flex-direction: column; align-items: stretch; box-shadow: 0 12px 30px rgba(0,0,0,.08); }
  .site-nav.open { display: flex; }
  .site-nav .nav-cta { text-align: center; }
  .nav-toggle { display: inline-block; }
  .capability-grid, .form-grid, .checkbox-grid { grid-template-columns: 1fr; }
  .capability-heading-row { display: block; }
  .capability-heading-row .btn { margin-bottom: 1.5rem; }
  .form-grid .full { grid-column: auto; }
  .footer-wrap { flex-direction: column; align-items: flex-start; }
  .footer-links { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .cards, .performance-grid, .proof-grid { grid-template-columns: 1fr; }
  .proof-grid > div { border-right: 0; border-bottom: 1px solid #e2e2e2; }
  .proof-grid > div:last-child { border-bottom: 0; }
  .hero { padding-top: 3.8rem; }
  .logo-card { box-shadow: 10px 10px 0 #111; }
  .brand-mark { width: 74px; height: 74px; }
}

/* Client Payments */
.payment-page { background: #f7f7f7; }
.payment-shell { width: min(1100px, calc(100% - 2rem)); margin: 0 auto; padding: 4rem 0 5rem; }
.payment-hero { max-width: 820px; margin-bottom: 2.5rem; }
.payment-hero h1 { max-width: none; font-size: clamp(2.4rem, 5.5vw, 4.4rem); }
.payment-reference, .payment-security { display: grid; grid-template-columns: .8fr 1.2fr; gap: 2rem; padding: 1.6rem; border: 1px solid #ddd; border-radius: 24px; background: #fff; margin-bottom: 3.5rem; }
.payment-reference h2, .payment-security h2 { font-size: clamp(1.65rem, 3vw, 2.25rem); }
.payment-reference p, .payment-security p { color: #444; }
.payment-reference a, .payment-help a { text-decoration: underline; }
.payment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; margin-bottom: 3.5rem; }
.payment-card { display: flex; flex-direction: column; border: 1px solid #d8d8d8; border-radius: 24px; padding: 1.5rem; background: #fff; min-height: 300px; }
.payment-card.featured-payment { border: 2px solid #111; }
.payment-card p { color: #444; flex: 1; }
.payment-card .btn { width: 100%; margin-top: 1rem; }
.payment-card-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.payment-badge { display: inline-flex; align-items: center; min-height: 30px; padding: .35rem .65rem; border-radius: 999px; background: #111; color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.payment-status { font-size: .78rem; color: #666; font-weight: 700; }
.payment-disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }
.security-points { display: grid; gap: .5rem; }
.payment-help { border-radius: 24px; background: #111; color: #fff; padding: 1.7rem; }
.payment-help h2, .payment-help a { color: #fff; }
.payment-help p { color: #ddd; }
.payment-legal { font-size: .88rem; margin-bottom: 0; }
@media (max-width: 900px) {
  .payment-grid { grid-template-columns: 1fr; }
  .payment-reference, .payment-security { grid-template-columns: 1fr; }
}

.btn:disabled { opacity: 0.65; cursor: wait; }
#form-status:focus { outline: none; }


/* Fee structure page */
.fee-shell{max-width:1180px;margin:0 auto;padding:48px 24px 72px}
.fee-hero{padding:34px 0 46px;max-width:920px}
.fee-hero h1{max-width:850px}
.fee-section{padding-left:0;padding-right:0}
.fee-table-wrap{overflow-x:auto;border:1px solid var(--line,#d9dee7);border-radius:18px;background:#fff;margin-top:24px}
.fee-table{width:100%;border-collapse:collapse;min-width:760px}
.fee-table th,.fee-table td{padding:18px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line,#e3e7ee)}
.fee-table th{background:#f4f7fb;font-size:.92rem;letter-spacing:.02em}
.fee-table tr:last-child td{border-bottom:0}
.fee-table td:nth-child(2){white-space:nowrap}
.fee-note,.fee-intro{max-width:920px;margin-top:18px}
.fee-rule-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px}
.fee-compliance-note{margin-top:24px;padding:20px 22px;border-radius:16px;background:#f5f7fa;border-left:4px solid #0b4c97;line-height:1.65}
.fee-payment-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}
.fee-terms-list p{margin-top:0;margin-bottom:18px}
.inline-cta{font-weight:700;text-decoration:none}
@media (max-width:900px){.fee-rule-grid{grid-template-columns:1fr 1fr}.fee-payment-grid{grid-template-columns:1fr}.fee-shell{padding-top:28px}}
@media (max-width:620px){.fee-rule-grid{grid-template-columns:1fr}.fee-table th,.fee-table td{padding:14px 16px}}
