/* ============================================================
   Aerosoft polish layer — additive, loaded last, reversible.
   Full-site world-class refinement: rhythm, motion, hierarchy,
   consistency. Propagates to every page via the shared design system.
   ============================================================ */
:root { --pl-ease: cubic-bezier(.22,.61,.36,1); --pl-red:#ED1C24; --pl-red-dk:#d1161e; }

*, *::before, *::after { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html { scroll-behavior: smooth; }
::selection { background: var(--pl-red); color:#fff; }

/* --- Typography: balanced headings, refined tracking --- */
h1, .hero h1 { text-wrap: balance; letter-spacing: -0.015em; }
h2, .sec-title, .lead-h2 { text-wrap: balance; letter-spacing: -0.01em; }
p { text-wrap: pretty; }
.crumb, [class*="eyebrow"], .sec .eyebrow { letter-spacing: .14em; }

/* --- Buttons: tactile, smooth, consistent motion --- */
.btn, .lets-talk, .nm-cta, .qt-chip, .btn-w-red, .hp-prev-cta {
  transition: transform .28s var(--pl-ease), box-shadow .28s var(--pl-ease),
              background-color .28s var(--pl-ease), color .28s var(--pl-ease),
              border-color .28s var(--pl-ease);
  will-change: transform;
}
.btn:hover, .btn-w-red:hover { transform: translateY(-2px); }
.btn:active, .lets-talk:active { transform: translateY(0); transition-duration: .06s; }
.btn-primary { box-shadow: 0 6px 22px rgba(237,28,36,.22); }
.btn-primary:hover { box-shadow: 0 14px 34px rgba(237,28,36,.32); }
.btn-outline:hover { background: rgba(237,28,36,.07); }


/* --- Hero CTA hierarchy: bold red primary + glass secondary --- */
html body .hero a.btn.btn-w {
  background: var(--pl-red) !important; color:#fff !important; border-color: var(--pl-red) !important;
  font-weight:700; box-shadow: 0 8px 26px rgba(237,28,36,.36);
}
html body .hero a.btn.btn-w:hover { background: var(--pl-red-dk) !important; border-color: var(--pl-red-dk) !important; box-shadow: 0 14px 38px rgba(237,28,36,.46); }
html body .hero a.btn.btn-w svg { stroke:#fff !important; }
html body .hero a.btn.btn-out-w {
  background: rgba(10,20,35,.34) !important; color:#fff !important;
  border-color: rgba(255,255,255,.92) !important;
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  text-shadow: 0 1px 8px rgba(0,0,0,.4);
}
html body .hero a.btn.btn-out-w:hover { background: rgba(10,20,35,.5) !important; border-color:#fff !important; }

/* --- Hero text legibility over video/imagery --- */
.hero h1, .hero p, .hero .crumb, .hero [class*="badge"], .hero .pill {
  text-shadow: 0 2px 26px rgba(4,8,16,.42), 0 1px 4px rgba(4,8,16,.32);
}

/* --- Forms: premium focus + tactile chips (conversion pages) --- */
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
textarea, select { transition: border-color .2s var(--pl-ease), box-shadow .2s var(--pl-ease), background-color .2s; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):focus,
textarea:focus, select:focus {
  outline: none !important;
  border-color: var(--pl-red) !important;
  box-shadow: 0 0 0 3px rgba(237,28,36,.14) !important;
}
.qt-chip { cursor: pointer; }
.qt-chip:hover { border-color: var(--pl-red) !important; color: var(--pl-red) !important; transform: translateY(-1px); }

/* --- Cards: premium hover lift --- */
.ncard, .geo-card, .why-card, .tcard, .recog-card, .tt-card, .svc-card, .qt-side {
  transition: transform .32s var(--pl-ease), box-shadow .32s var(--pl-ease);
}
.ncard:hover, .geo-card:hover, .why-card:hover, .tcard:hover,
.recog-card:hover, .tt-card:hover, .svc-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 46px rgba(8,12,24,.16);
}

/* --- Nav: underline reveal on links --- */
nav a:not(.btn):not(.nm-cta), .util a:not(.btn) { position: relative; }
nav a:not(.btn):not(.nm-cta)::after {
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background: var(--pl-red); transform: scaleX(0); transform-origin: left;
  transition: transform .25s var(--pl-ease);
}
nav a:not(.btn):not(.nm-cta):hover::after { transform: scaleX(1); }

/* --- Footer: link hover polish --- */
footer a { transition: color .2s var(--pl-ease), opacity .2s; }
footer a:hover { color:#fff !important; opacity:1 !important; }
footer [class*="social"] a:hover, footer .soc a:hover { color: var(--pl-red) !important; transform: translateY(-2px); }

/* --- Accessibility: visible, on-brand focus --- */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--pl-red); outline-offset: 3px; border-radius: 6px;
}
.hero a:focus-visible, .black a:focus-visible { outline-color:#fff; }

/* --- Reduced-motion --- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .lets-talk, .nm-cta, .qt-chip, .ncard, .geo-card, .why-card, .tcard,
  .recog-card, .tt-card, .svc-card, .btn-w-red { transition: none !important; }
  .btn:hover, .lets-talk:hover, .qt-chip:hover, .ncard:hover, .geo-card:hover,
  .why-card:hover, .tcard:hover, .recog-card:hover, .tt-card:hover, .svc-card:hover { transform: none !important; }
  nav a::after { transition: none; }
}
