/* BetterPayroll brand polish — loaded after Astra + Elementor.
   Colours come from the Astra global palette; this file only adds refinement:
   typography rendering, header fixes, hover/focus states, form and image polish. */

:root {
  --bp-navy: #314269;
  --bp-ocean: #2279AB;
  --bp-blue: #0B8CC6;
  --bp-sky: #2DACD6;
  --bp-azure: #05A2DC;
  --bp-green: #32B255;
  --bp-ice: #A1CDDB;
  --bp-ice-soft: #EAF4F8;
  --bp-slate: #486B77;
  --bp-shadow-sm: 0 1px 2px rgba(49, 66, 105, .06), 0 2px 6px rgba(49, 66, 105, .06);
  --bp-shadow-md: 0 12px 30px -12px rgba(49, 66, 105, .28);
  --bp-shadow-lg: 0 28px 56px -24px rgba(49, 66, 105, .32);
  --bp-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Typography rendering ---------- */
html { -webkit-text-size-adjust: 100%; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}
h1, h2, h3, h4, .elementor-heading-title {
  letter-spacing: -0.015em;
  text-wrap: balance;
}
h5, h6 { letter-spacing: -0.005em; }
p, li { text-wrap: pretty; }
::selection { background: var(--bp-ice); color: var(--bp-navy); }

/* ---------- Header ---------- */
/* Login / Get Started were wrapping into vertical letters at tablet-to-laptop widths. */
.ast-builder-button-wrap .ast-custom-button,
.ast-builder-button-wrap .ast-custom-button-link {
  white-space: nowrap !important;
  word-break: normal !important;
}
@media (min-width: 922px) and (max-width: 1200px) {
  .main-header-menu { flex-wrap: nowrap !important; }
  .main-header-menu > .menu-item > .menu-link {
    padding-left: .55em !important;
    padding-right: .55em !important;
    white-space: nowrap;
  }
  .ast-builder-button-wrap .ast-custom-button { padding: 10px 16px !important; }
}
.ast-primary-header-bar { box-shadow: 0 1px 0 rgba(49, 66, 105, .08); }
.ast-header-sticked .ast-primary-header-bar,
.ast-sticky-active .ast-primary-header-bar,
.ast-header-sticked.ast-primary-header-bar {
  box-shadow: var(--bp-shadow-sm);
  backdrop-filter: saturate(1.2) blur(6px);
  -webkit-backdrop-filter: saturate(1.2) blur(6px);
}
.main-header-menu .menu-link { transition: color .18s var(--bp-ease); }
.site-logo-img img { image-rendering: auto; height: auto; }

/* ---------- Buttons ---------- */
.elementor-button,
.ast-custom-button,
.wp-block-button__link,
.ast-button,
button.button,
.wpforms-submit,
.nf-form-content .nf-element[type="button"],
input[type="submit"] {
  transition: transform .18s var(--bp-ease), box-shadow .18s var(--bp-ease),
              background-color .18s var(--bp-ease), color .18s var(--bp-ease), border-color .18s var(--bp-ease);
}
.elementor-button:hover,
.ast-custom-button:hover,
.wp-block-button__link:hover,
.wpforms-submit:hover,
input[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: var(--bp-shadow-md);
}
.elementor-button:active,
.ast-custom-button:active { transform: translateY(0); box-shadow: var(--bp-shadow-sm); }

/* ---------- Focus (keyboard) ---------- */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
.elementor-button:focus-visible,
.ast-custom-button:focus-visible {
  outline: 2px solid var(--bp-azure);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ---------- Forms ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"],
input[type="password"], input[type="search"], textarea, select,
.elementor-field-group .elementor-field, .wpforms-field input, .wpforms-field textarea, .wpforms-field select,
.nf-form-content input:not([type="button"]), .nf-form-content textarea, .nf-form-content select {
  border-color: var(--bp-ice);
  transition: border-color .18s var(--bp-ease), box-shadow .18s var(--bp-ease);
}
input:focus, textarea:focus, select:focus,
.elementor-field-group .elementor-field:focus, .wpforms-field input:focus, .wpforms-field textarea:focus,
.nf-form-content input:focus, .nf-form-content textarea:focus {
  border-color: var(--bp-ocean) !important;
  box-shadow: 0 0 0 3px rgba(34, 121, 171, .18) !important;
  outline: none;
}

/* ---------- Content polish ---------- */
.elementor-widget-image img { height: auto; image-rendering: auto; }
.elementor-widget-icon-box .elementor-icon,
.elementor-widget-icon-list .elementor-icon-list-icon i,
.elementor-widget-icon-list .elementor-icon-list-icon svg { transition: transform .22s var(--bp-ease); }
.elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-2px) scale(1.04); }
.entry-content a:not(.elementor-button):not(.ast-custom-button):not(.wp-block-button__link) {
  text-decoration-thickness: from-font;
  text-underline-offset: .14em;
}
figure, img { max-width: 100%; }
table { border-color: var(--bp-ice); }

/* Elementor entrance animations: quicker, smoother easing */
.animated { animation-duration: .7s; animation-timing-function: var(--bp-ease); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .elementor-button:hover, .ast-custom-button:hover { transform: none; }
}
