/* Ray-Nor-Shine — lead capture banner.
   Appears once the visitor has shown interest (scroll depth or dwell), never
   on the contact or thank-you pages, and never again once dismissed. */

.rns-lead {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 2147481500;
  width: min(92vw, 360px);
  background: #fff;
  border-radius: 18px;
  border: 1px solid #D5E6F4;
  box-shadow: 0 20px 48px rgba(10, 32, 80, .26);
  padding: 20px 20px 18px;
  display: none;
  font-family: var(--body, system-ui, sans-serif);
}
.rns-lead.is-open { display: block; }

.rns-lead-eyebrow {
  font-family: var(--disp, sans-serif);
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #0B6BC4;
  margin: 0 0 4px;
}
.rns-lead h2 {
  font-family: var(--disp, sans-serif);
  font-size: 1.15rem;
  text-transform: uppercase;
  color: #0A2050;
  margin: 0 0 6px;
  line-height: 1.15;
}
.rns-lead p { margin: 0 0 12px; font-size: .88rem; color: #4A5568; line-height: 1.5; }

.rns-lead input {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  margin-bottom: 8px;
  border: 1.5px solid #D5E6F4;
  border-radius: 10px;
  font: inherit;
  font-size: .95rem;
  color: var(--ink, #14181F);
  background: #fff;
}
.rns-lead input:focus-visible { outline: 3px solid #0B6BC4; outline-offset: 1px; border-color: #0B6BC4; }

/* Same 3mm sweeping border as the .btn CTAs. This banner ships its own
   stylesheet and never inherits the button system, so the treatment is
   restated rather than shared. */
.rns-lead-submit {
  width: 100%;
  min-height: 46px;
  border-radius: 999px;
  color: #fff;
  font-family: var(--disp, sans-serif);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  --btn-fill: #0B6BC4;
  position: relative;
  isolation: isolate;
  border: 0;
  padding: calc(var(--cta-border, 2mm) + .5rem) 1rem;
  background: var(--btn-fill);
}
.rns-lead-submit::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  border-radius: inherit; padding: var(--cta-border, 2mm); pointer-events: none;
  background: conic-gradient(from var(--cta-angle, 0deg), #3FA9F5, #F2B735, #fff, #3FA9F5, #0B6BC4, #3FA9F5);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: cta-sweep var(--cta-sweep, 5s) linear infinite;
}
.rns-lead-submit:hover { --btn-fill: #095AA6; --cta-sweep: 1.6s; }
.rns-lead-submit[disabled] { opacity: .65; cursor: default; }

.rns-lead-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 36px;
  height: 36px;
  border: 0;
  background: transparent;
  color: #4A5568;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  border-radius: 50%;
}
.rns-lead-close:hover { background: #E8F2FA; color: #0A2050; }

.rns-lead-alt { margin: 10px 0 0; font-size: .82rem; text-align: center; color: #4A5568; }
.rns-lead-alt a { color: #0B6BC4; font-weight: 600; }
.rns-lead-status { margin: 8px 0 0; font-size: .84rem; min-height: 1.1em; }
.rns-lead-status.err { color: #B3261E; }

/* phones: sit above the sticky call bar, full width, and stay out of the way
   of the accessibility launcher in the left corner */
@media (max-width: 720px) {
  .rns-lead {
    right: 8px;
    left: 8px;
    width: auto;
    bottom: 64px;
    padding: 16px 16px 14px;
  }
  .rns-lead h2 { font-size: 1.05rem; }
}

/* never fight the consent banner: that has to be answered first */
html.rns-consent-visible .rns-lead { display: none !important; }

@media (prefers-reduced-motion: no-preference) {
  .rns-lead.is-open { animation: rns-lead-in .28s ease-out; }
  @keyframes rns-lead-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}
