/* QB Solutions Advisor – base utilities. Visual styling lives in site.css. */

html { scroll-behavior: smooth; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; }
[id] { scroll-margin-top: 96px; }

.ax-skip {
  position: absolute; left: 12px; top: -60px; z-index: 2000;
  padding: 10px 16px; border-radius: 8px;
  background: #111; color: #fff; text-decoration: none; font-weight: 600;
}
.ax-skip:focus { top: 12px; color: #fff; }

/* Honeypot field for spam bots */
.ax-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Quote form feedback */
.ax-field-error { display: block; min-height: 0; font-size: .82rem; color: #c0262d; margin-top: 4px; }
.ax-field-error:empty { display: none; }
.ax-form-status { margin: 12px 0 0; font-size: .95rem; font-weight: 500; }
.ax-form-status:empty { display: none; }
.ax-form-status.is-ok { color: #12784a; }
.ax-form-status.is-error { color: #c0262d; }
[aria-invalid="true"] { border-color: #c0262d !important; }
form[aria-busy="true"] button[type="submit"] { opacity: .65; pointer-events: none; }

/* Scroll reveal: content stays visible when JavaScript is off */
.ax-js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.ax-js [data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .ax-js [data-reveal] { opacity: 1; transform: none; }
}
