@layer components{.btn{--btn-bg:var(--color-primary);--btn-fg:#fff;--btn-bd:var(--color-primary);background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bd);font-family:inherit;font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background-color .3s var(--ease-brand), color .3s var(--ease-brand), border-color .3s var(--ease-brand), transform .3s var(--ease-brand), box-shadow .3s var(--ease-brand);border-radius:0;justify-content:center;align-items:center;gap:.6em;padding:1.05em 1.9em;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{color:var(--btn-fg);transform:translateY(-2px);box-shadow:0 10px 24px #28464b38}.btn:active{transform:translateY(0)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}.btn--primary:hover{--btn-bg:var(--color-primary-deep);--btn-bd:var(--color-primary-deep)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--color-primary);--btn-bd:#28464b47}.btn--ghost:hover{--btn-bg:var(--color-primary);--btn-fg:#fff;--btn-bd:var(--color-primary)}.btn--on-dark{--btn-bg:#fff;--btn-fg:var(--color-primary);--btn-bd:#fff}.btn--on-dark:hover{--btn-bg:#ffffffe0;--btn-bd:#ffffffe0}.btn--ghost-on-dark{--btn-bg:transparent;--btn-fg:#fff;--btn-bd:#ffffff73}.btn--ghost-on-dark:hover{--btn-bg:#ffffff1f;--btn-bd:#fff}.btn--sm{padding:.85em 1.5em}.btn-text{font-size:var(--text-small);letter-spacing:.04em;color:var(--color-primary);transition:gap .3s var(--ease-brand);align-items:center;gap:.5em;font-weight:600;text-decoration:none;display:inline-flex}.btn-text:after{content:"";width:.5em;height:.78em;-webkit-mask:var(--chevron) center / contain no-repeat;-webkit-mask:var(--chevron) center / contain no-repeat;mask:var(--chevron) center / contain no-repeat;transition:transform .3s var(--ease-brand);background-color:currentColor}.btn-text:hover{gap:.8em}.btn-text:hover:after{transform:translate(2px)}.section--dark .btn-text{color:#fff}.section--dark .lead{color:var(--color-text-on-dark)}.btn-row{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:2rem;display:flex}.btn-row--section-end{margin-top:clamp(3.5rem,7vw,6rem)}.btn-row--end{justify-content:flex-end}@media (max-width:767px){.btn-row .btn{width:100%}.btn-row--end{justify-content:flex-start}}}
