html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: #F6F4EF; color: #1B1E24; font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; }
[hidden] { display: none !important; }
body.modal-open { overflow: hidden; }

.btn-primary { transition: background .15s ease, transform .15s ease; }
.btn-primary:hover { background: #FF6A2E !important; }
.btn-primary:active { transform: translateY(1px); }
.btn-primary[disabled] { opacity: .7; cursor: wait; }
button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid #F4581C; outline-offset: 3px; }
input:focus { border-color: #F4581C !important; }

/* three-card rows: at tablet widths only two fit, so the third spans the row instead of dangling */
@media (min-width: 640px) and (max-width: 979px) {
  .cards-3 { grid-template-columns: 1fr 1fr !important; }
  .cards-3 > :nth-child(3) { grid-column: 1 / -1; }
}

/* phones: keep the primary button on one line, and make footer links tappable */
@media (max-width: 430px) {
  .btn-primary { font-size: 16px !important; padding-left: 16px !important; padding-right: 16px !important; }
}
#final-cta a { display: inline-block; padding: 10px 6px; margin: -10px -6px; }

/* legal pages */
.legal { max-width: 760px; margin: 0 auto; padding: clamp(40px, 6vw, 72px) clamp(20px, 5vw, 48px); font-size: 17px; line-height: 1.65; color: #1B1E24; }
.legal h1 { font-family: 'Archivo', sans-serif; font-weight: 900; font-size: clamp(30px, 4vw, 40px); margin: 0 0 8px; }
.legal h2 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 22px; margin: 32px 0 8px; }
.legal p, .legal li { color: #43474F; }
.legal a { color: #F4581C; }
.legal .meta { color: #5B6068; font-size: 15px; margin-bottom: 24px; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn-primary { transition: none; } }
