/*
 * overrides.css — our additions on top of the original theme.
 * Everything else in /site/css is vendored from the live site unchanged;
 * anything WE change or add belongs in this file.
 */

/* Native smooth scrolling for the in-page anchor nav (replaces the theme's
   jQuery scroll animation). */
html {
  scroll-behavior: smooth;
}

/* No-JS fallback for the scroll-reveal animations. The theme hides headings
   (.anim-heading, slide-up) and blocks ([data-sal], fade-in via sal.js) until
   JS reveals them. A tiny inline script in Layout.astro adds .js to <html>
   as soon as scripts run; when it's absent (JS disabled or broken), these
   rules force everything visible so no content can be stuck hidden. */
html:not(.js) .anim-heading {
  transform: none !important;
}
html:not(.js) [data-sal] {
  opacity: 1 !important;
  transform: none !important;
}

/* Contact form (replaces the WordPress WPForms plugin markup + its 119KB
   stylesheet). Field look matches the live form: white, thin gray border,
   gray placeholder text. Submission is handled in interactions.js. */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
  display: block;
  width: 100%;
  max-width: 480px;
  box-sizing: border-box;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 2px;
  background: #fff;
  color: #333;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.3;
}
.contact-form ::placeholder {
  color: #999;
}
.contact-form textarea {
  min-height: 120px;
  resize: vertical;
}
.contact-form button[type="submit"] {
  border: none;
  cursor: pointer;
  margin-top: 6px;
  font-size: 16px;
}
/* Honeypot field: invisible to people, filled only by naive bots. */
.contact-form .cf-botcheck {
  display: none;
}
.contact-form .cf-status {
  font-size: 14px;
  margin: 12px 0 0;
}
.contact-form .cf-status--ok {
  color: #4caf50;
}
.contact-form .cf-status--error {
  color: #d9534f;
}
.contact-form .cf-required {
  font-size: 14px;
  color: #1c1c2e;
  margin-top: 16px;
}

/* hCaptcha "I'm not a robot" checkbox — sits above the Submit button. */
.contact-form .cf-captcha {
  margin: 8px 0 20px;
}

/* Career heading "settle": the heading eases in ~5% larger and shrinks to its
   final size, reproducing the size the live site briefly shows before its font
   loads (live transiently renders it at 42.07px, then 40px → ratio 1.052). We
   do it as a clean CSS scale — our font is preloaded, so there's no flicker —
   and via transform, so the layout below never reflows. Runs on load alongside
   the existing slide-up. Honors reduced-motion. */
@keyframes ef-title-settle {
  from { transform: scale(1.052); }
  to   { transform: scale(1); }
}
.single-careers .title {
  transform-origin: left center;
  animation: ef-title-settle 0.8s ease both;
}
@media (prefers-reduced-motion: reduce) {
  .single-careers .title { animation: none; }
}
