/* ---------- About ---------- */
.ab-hero { padding-block:56px 96px; }
.ab-hero h1 { margin:24px 0 0; max-width:15ch; font-size:clamp(46px, 6.4vw, 96px); line-height:.96; font-weight:500; letter-spacing:-.045em; text-wrap:balance; }
.ab-intro { margin-top:56px; display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:24px; align-items:start; }
.ab-lead { grid-column:1 / span 6; margin:0; font-size:24px; line-height:34px; letter-spacing:-.012em; text-wrap:pretty; }
.ab-intro p:not(.ab-lead) { grid-column:8 / span 5; margin:4px 0 0; font-size:17px; line-height:27px; color:var(--ink-muted); }
.ab-split { display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:24px; row-gap:24px; align-items:start; }
.ab-split > :first-child { grid-column:1 / span 4; }
.ab-split > :last-child { grid-column:6 / span 7; }
.ab-split h2, .ab-hold h2 { margin:0; font-size:clamp(30px, 3.2vw, 44px); line-height:1.08; font-weight:500; letter-spacing:-.028em; text-wrap:balance; }
.ab-why { padding-block:104px; border-top:1px solid var(--line); }
.ab-prose p { margin:0 0 20px; font-size:19px; line-height:31px; color:var(--ink-muted); text-wrap:pretty; }
.ab-prose p:first-child { color:var(--ink); }
.ab-more, .ab-steps a { font-size:15px; font-weight:600; color:var(--ink); text-decoration:underline; text-decoration-color:var(--line-control); text-underline-offset:5px; }
.ab-more:hover, .ab-steps a:hover { text-decoration-color:var(--ink); }
.ab-letter { padding-block:0 24px; }
.ab-letter .band { padding:112px 48px; }
.ab-letter-in { max-width:860px; }
.ab-letter blockquote { margin:0; }
.ab-letter blockquote p { margin:0; font-size:clamp(30px, 3.6vw, 48px); line-height:1.14; font-weight:400; letter-spacing:-.025em; color:var(--on-deep); text-wrap:balance; }
.ab-letter blockquote p:first-child::before { content:""; display:block; width:48px; height:3px; margin-bottom:36px; border-radius:2px; background:var(--glow); }
.ab-letter blockquote .ab-letter-body { margin-top:28px; max-width:56ch; font-size:19px; line-height:31px; letter-spacing:0; color:var(--on-deep-muted); text-wrap:pretty; }
.ab-sign { margin-top:40px; display:flex; align-items:center; gap:14px; font-size:15px; line-height:21px; color:var(--on-deep-muted); }
.ab-sign img { width:40px; height:40px; }
.ab-sign b { display:block; color:var(--on-deep); font-weight:600; }
.ab-how { padding-block:120px 112px; }
.ab-steps { list-style:none; margin:56px 0 0; padding:0; counter-reset:st; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.ab-steps li { counter-increment:st; position:relative; display:flex; flex-direction:column; gap:12px; padding:28px 26px 26px; border-radius:var(--r-md); background:var(--tint-iris); }
.ab-steps li:nth-child(2) { background:var(--tint-sky); } .ab-steps li:nth-child(3) { background:var(--tint-aqua); }
.ab-k { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--iris-ink); }
.ab-steps li:nth-child(2) .ab-k { color:var(--sky-ink); } .ab-steps li:nth-child(3) .ab-k { color:var(--aqua-ink); }
.ab-k::before { content:counter(st); width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:var(--paper); font-size:13px; }
.ab-steps h3 { margin:6px 0 0; font-size:23px; line-height:29px; font-weight:500; letter-spacing:-.016em; }
.ab-steps p { margin:0; font-size:16px; line-height:25px; color:var(--ink-muted); }
.ab-steps a { margin-top:auto; padding-top:10px; }
.ab-hold { padding-block:112px; }
.ab-hold .wrap { display:block; }
.ab-hold-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:12px 32px; }
.ab-hold-head p { margin:0; font-size:17px; color:var(--ink-muted); }
.ab-promises { margin-top:48px; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border-top:1px solid var(--ink); }
.ab-promises div { display:flex; flex-direction:column; gap:10px; padding:24px 24px 0 0; }
.ab-promises div + div { padding-left:24px; border-left:1px solid var(--line); }
.ab-promises b { font-size:19px; line-height:26px; font-weight:600; letter-spacing:-.01em; }
.ab-promises span { font-size:15.5px; line-height:24px; color:var(--ink-muted); }
.ab-where { padding-block:112px 96px; }
.ab-sub { margin:16px 0 0; font-size:17px; line-height:27px; color:var(--ink-muted); }
.ab-ind { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.ab-ind a { display:grid; grid-template-columns:200px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); text-decoration:none; transition:padding .25s var(--ease); }
.ab-ind a:hover { padding-left:8px; }
.ab-ind b { font-size:19px; font-weight:600; letter-spacing:-.01em; }
.ab-ind span { font-size:16px; line-height:25px; color:var(--ink-muted); }
.ab-contact { padding-block:48px 120px; }
.ab-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ab-card { display:flex; flex-direction:column; gap:6px; padding:24px; border-radius:var(--r-md); border:1px solid var(--line); text-decoration:none; transition:border-color .2s, transform .25s var(--ease), box-shadow .25s; }
.ab-card:hover { border-color:var(--ink); transform:translateY(-2px); box-shadow:var(--shadow-card); }
.ab-card b { font-size:20px; font-weight:600; letter-spacing:-.01em; }
.ab-card span { font-size:15px; line-height:23px; color:var(--ink-muted); }
@media (max-width: 1080px) {
  .ab-lead, .ab-intro p:not(.ab-lead), .ab-split > :first-child, .ab-split > :last-child { grid-column:1 / -1; }
  .ab-intro p:not(.ab-lead) { margin-top:20px; }
  .ab-steps { grid-template-columns:1fr; }
  .ab-promises { grid-template-columns:1fr 1fr; border-top:0; }
  .ab-promises div, .ab-promises div + div { padding:22px 20px 24px 0; border-left:0; border-top:1px solid var(--ink); }
  .ab-letter .band { padding:88px 32px; margin-inline:24px; }
}
@media (max-width: 640px) {
  .ab-hero { padding-block:40px 72px; } .ab-lead { font-size:21px; line-height:31px; }
  .ab-why, .ab-how, .ab-hold, .ab-where { padding-block:80px; }
  .ab-letter .band { padding:64px 22px; margin-inline:12px; }
  .ab-promises { grid-template-columns:1fr; }
  .ab-ind a { grid-template-columns:1fr; gap:4px; }
  .ab-cards { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) { .ab-ind a, .ab-card { transition:none; } }
