
.ffc-btn{
  font-family:var(--font-display);font-weight:600;letter-spacing:.01em;
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;
  text-decoration:none;white-space:nowrap;line-height:1;
  transition:background var(--dur-base) var(--ease-out),
             color var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out),
             transform var(--dur-fast) var(--ease-out);
}
.ffc-btn:active{transform:scale(.975);}
.ffc-btn:focus-visible{outline:none;box-shadow:var(--ring-accent);}
.ffc-btn--sm{font-size:.8125rem;padding:.5rem .9rem;}
.ffc-btn--md{font-size:.9375rem;padding:.7rem 1.25rem;}
.ffc-btn--lg{font-size:1.0625rem;padding:.95rem 1.75rem;}
.ffc-btn--primary{background:var(--accent);color:var(--accent-on);}
.ffc-btn--primary:hover{background:#0420c9;}
.ffc-btn--secondary{background:transparent;color:var(--accent);border-color:var(--accent);}
.ffc-btn--secondary:hover{background:rgba(5,41,246,.08);}
.ffc-btn--dark{background:var(--ffc-black);color:#fff;}
.ffc-btn--dark:hover{background:#1a1a1a;}
.ffc-btn--ghost{background:transparent;color:var(--text-primary);}
.ffc-btn--ghost:hover{background:rgba(0,0,0,.06);}
.ffc-btn--block{display:flex;width:100%;}
.ffc-btn[disabled]{opacity:.4;pointer-events:none;}


/* --- */


.ffc-highlight{
  background:var(--accent);color:#fff;font-weight:700;
  padding:.04em .2em;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;
}
.ffc-highlight--invert{background:#fff;color:var(--accent);}
.ffc-highlight--black{background:var(--ffc-black);color:#fff;}


/* --- */


.ffc-num{
  display:inline-grid;place-items:center;flex:none;
  background:var(--accent);color:#fff;
  font-family:var(--font-display);font-weight:700;line-height:1;
}
.ffc-num--square{border-radius:8px;}
.ffc-num--round{border-radius:50%;}
.ffc-num--sm{width:30px;height:30px;font-size:.85rem;}
.ffc-num--md{width:42px;height:42px;font-size:1.1rem;}
.ffc-num--lg{width:58px;height:58px;font-size:1.5rem;}
.ffc-num--outline{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);}
