  :root {
    --xf-navy:#0f1f3a; --xf-slate:#334155; --xf-muted:#64748b; --xf-accent:#2563eb; --xf-accent-soft:#e8efff; --xf-bg:#f6f8fb;
    --bs-body-font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --bs-body-color:#1e293b;
  }
  body { -webkit-font-smoothing:antialiased; }
  .navbar { backdrop-filter:saturate(180%) blur(10px); background:rgba(255,255,255,.92)!important; border-bottom:1px solid #e2e8f0; }
  .navbar-brand img { height:72px; width:auto; max-height:72px; }
  .nav-link { font-weight:500; color:var(--xf-slate)!important; }
  .nav-link:hover, .nav-link:focus { color:var(--xf-accent)!important; }
  .btn-xf { background:var(--xf-accent); border-color:var(--xf-accent); color:#fff; font-weight:600; border-radius:.75rem; padding:.7rem 1.3rem; }
  .btn-xf:hover, .btn-xf:focus { background:#1d4ed8; border-color:#1d4ed8; color:#fff; }

  /* Old-site Revolution-style banner text effects */
  .svc-banner { position:relative; overflow:hidden; }
  .svc-banner .carousel-item { min-height:min(72vh, 640px); background:#0b1730; }
  .svc-banner .slide-bg {
    position:absolute; inset:0; background-size:cover; background-position:center;
    filter:brightness(.5); transform:scale(1.05);
    transition:transform 9s ease-out, filter .8s ease;
  }
  .svc-banner .carousel-item.active .slide-bg { transform:scale(1); }
  .svc-banner .slide-shade {
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(11,23,48,.4) 0%, rgba(11,23,48,.78) 100%);
  }
  .svc-banner .carousel-caption {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    text-align:center; padding:2rem 1.25rem; left:0; right:0; bottom:0; top:0;
  }
  .svc-banner .slide-copy { max-width:44rem; margin:0 auto; width:100%; }
  .svc-banner .kicker-row {
    display:flex; align-items:center; justify-content:center; gap:.9rem;
    margin-bottom:1rem;
  }
  .svc-banner .kicker-row img {
    width:clamp(64px, 14vw, 110px); height:4px; opacity:0;
  }
  .svc-banner .kicker {
    color:#e8e8e8; font-size:clamp(.95rem, 2vw, 1.05rem); letter-spacing:.08em;
    text-transform:none; font-weight:400; margin:0; white-space:nowrap; opacity:0;
  }
  .svc-banner h1 {
    color:#fff; font-weight:800; letter-spacing:-.03em; line-height:1.05;
    font-size:clamp(2.1rem, 5.2vw, 3.35rem); margin:0 0 1.1rem;
    text-shadow:0 2px 24px rgba(0,0,0,.35); opacity:0;
  }
  .svc-banner .sub {
    color:#b5b5b5; font-size:clamp(1rem, 2.2vw, 1.15rem); max-width:40rem; margin:0 auto;
    font-weight:300; line-height:1.55; opacity:0;
    overflow-wrap:normal; word-break:normal; hyphens:none;
  }
  .svc-banner .sub strong { color:#fff; font-weight:600; }
  .svc-banner .sub .word { display:inline-block; white-space:nowrap; }
  .svc-banner .sub .char { display:inline-block; opacity:0; transform:translateY(0.35em); }
  .svc-banner .carousel-control-prev, .svc-banner .carousel-control-next { width:3.5rem; opacity:.85; }
  .svc-banner .carousel-indicators { bottom:1.75rem; }
  .svc-banner .carousel-indicators [data-bs-target] { width:10px; height:10px; border-radius:50%; }

  /* Entrance animations (mirrors old Revolution captions) */
  .svc-banner .carousel-item.active.fx-on .border-l {
    animation: borderInL .55s ease-out .55s forwards;
  }
  .svc-banner .carousel-item.active.fx-on .border-r {
    animation: borderInR .55s ease-out .55s forwards;
  }
  .svc-banner .carousel-item.active.fx-on .kicker {
    animation: kickerIn .55s ease-out .35s forwards;
  }
  .svc-banner .carousel-item.active.fx-on h1 {
    animation: titleIn 1.1s cubic-bezier(.2,.7,.2,1) .55s forwards;
  }
  .svc-banner .carousel-item.active.fx-on .sub.fx-ready {
    opacity:1;
  }
  .svc-banner .carousel-item.active.fx-on .sub .char {
    animation: charIn .28s ease-out forwards;
  }
  @keyframes borderInL {
    from { opacity:0; transform:translateX(-180%); }
    to { opacity:.55; transform:translateX(0); }
  }
  @keyframes borderInR {
    from { opacity:0; transform:translateX(180%); }
    to { opacity:.55; transform:translateX(0); }
  }
  @keyframes kickerIn {
    from { opacity:0; transform:translateY(-55%); }
    to { opacity:1; transform:translateY(0); }
  }
  @keyframes titleIn {
    from { opacity:0; transform:scale(1.45); filter:blur(12px); }
    to { opacity:1; transform:scale(1); filter:blur(0); }
  }
  @keyframes charIn {
    from { opacity:0; transform:translateY(.35em); }
    to { opacity:1; transform:translateY(0); }
  }

  .section { padding:4.5rem 0; }
  .eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:700; color:var(--xf-accent); }
  .section h2 { font-weight:800; letter-spacing:-.02em; color:var(--xf-navy); }
  .svc-card {
    border:1px solid #e2e8f0; border-radius:1.35rem; background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.04), 0 10px 28px rgba(15,23,42,.06);
    height:100%; padding:1.6rem 1.45rem 1.35rem;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    display:flex; flex-direction:column;
  }
  .svc-card:hover { transform:translateY(-4px); border-color:#93c5fd; box-shadow:0 2px 4px rgba(15,23,42,.05), 0 16px 40px rgba(37,99,235,.12); }
  .svc-icon {
    width:3.5rem; height:3.5rem; border-radius:1rem; display:grid; place-items:center;
    background:linear-gradient(145deg, #e8efff, #dbe7ff); color:var(--xf-accent); font-size:1.55rem;
    margin-bottom:1rem; box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  }
  .svc-card h3 { font-size:1.2rem; font-weight:750; color:var(--xf-navy); margin-bottom:.45rem; }
  .svc-card .blurb { color:var(--xf-slate); font-weight:600; font-size:.98rem; margin-bottom:.85rem; line-height:1.4; }
  .svc-card ul { margin:0 0 1rem; padding-left:1.1rem; color:var(--xf-muted); font-size:.95rem; }
  .svc-card li { margin-bottom:.28rem; }
  .svc-card .more {
    margin-top:auto; padding-top:.75rem; font-weight:650; color:var(--xf-accent); text-decoration:none;
    display:inline-flex; align-items:center; gap:.35rem;
  }
  .svc-card .more:hover { color:#1d4ed8; }
  .svc-trust {
    margin-top:2.75rem; padding:1rem 1.25rem; border-radius:1rem;
    background:#fff; border:1px solid #e2e8f0;
    display:flex; flex-wrap:wrap; gap:1rem 1.75rem; align-items:center; justify-content:space-between;
  }
  .svc-trust .nj { display:flex; align-items:center; gap:.65rem; color:var(--xf-slate); font-weight:650; font-size:1.08rem; }
  .svc-trust .nj i { color:var(--xf-accent); font-size:1.45rem; }
  .svc-trust .badges { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; }
  .svc-trust .badge-item {
    display:inline-flex; align-items:center; gap:.4rem; color:var(--xf-navy); font-weight:650; font-size:.95rem;
  }
  .svc-trust .badge-item i { color:var(--xf-accent); }
  .about { background:var(--xf-bg); }
  .cta-strip { background:linear-gradient(135deg, #0b1730, #13294b); color:#fff; }
  .cta-strip .lead { color:#cbd5e1; }

  .industries { background:linear-gradient(180deg,#eef4fb 0%,#f8fafc 55%,#fff 100%); }
  .industries .ind-card {
    position:relative; height:100%; text-align:left;
    background:#fff; border:1px solid #e2e8f0; border-radius:1.1rem;
    box-shadow:0 10px 28px rgba(15,23,42,.06);
    padding:1.35rem 1.35rem 1.5rem; overflow:hidden;
  }
  .industries .ind-band {
    height:8.25rem; margin:-1.35rem -1.35rem 0; border-radius:1.1rem 1.1rem 0 0;
    background-color:#dbe7f5;
    background-size:cover; background-position:center;
  }
  .industries .ind-icon {
    width:3.35rem; height:3.35rem; margin:-1.65rem 0 1rem .15rem;
    border-radius:999px; border:3px solid #fff;
    display:grid; place-items:center;
    background:#fff; color:var(--xf-accent); font-size:1.35rem;
    box-shadow:0 6px 16px rgba(15,23,42,.12);
    position:relative; z-index:1;
  }
  .industries h3 { font-size:1.2rem; font-weight:700; color:var(--xf-navy); margin:0 0 .55rem; }
  .industries p { color:var(--xf-muted); font-size:.95rem; line-height:1.55; margin:0; }

  .nationwide {
    background:#eef2f7; border:0; text-align:center; padding:3rem 1.25rem;
  }
  .nationwide .line {
    font-weight:800; color:var(--xf-navy); letter-spacing:-.02em;
    font-size:clamp(1.35rem, 3.2vw, 2rem); line-height:1.35; margin:0 0 .65rem;
  }
  .nationwide .word-rotator {
    display:inline-block; position:relative; vertical-align:bottom;
    background:var(--xf-accent); color:#fff; border-radius:.35rem;
    padding:.12rem .55rem; margin:0 .2rem; min-width:5.6rem; text-align:center;
    overflow:hidden; height:1.35em; line-height:1.35em;
  }
  .nationwide .word-rotator b {
    display:block; position:absolute; left:0; right:0; top:0;
    font-weight:800; opacity:0; transform:translateY(110%);
  }
  .nationwide .word-rotator b.is-visible {
    position:relative; opacity:1; transform:none;
    animation: wordIn .45s ease;
  }
  .nationwide .word-rotator b.is-hiding {
    opacity:0; transform:translateY(-110%);
    transition:transform .35s ease, opacity .35s ease;
  }
  @keyframes wordIn {
    from { opacity:0; transform:translateY(110%); }
    to { opacity:1; transform:translateY(0); }
  }
  .nationwide .subline {
    color:var(--xf-accent); font-weight:600; font-size:clamp(1.05rem, 2.2vw, 1.35rem); margin:0;
  }

  .partners { background:#fff; padding:3.5rem 0 4rem; border-top:1px solid #eef2f7; }
  .partners h2 { font-weight:800; letter-spacing:-.02em; color:var(--xf-navy); text-align:center; margin-bottom:2rem; }
  .partners-viewport { overflow:hidden; mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
  .partners-track {
    display:flex; align-items:center; gap:3rem; width:max-content;
    animation: partnersScroll 32s linear infinite;
  }
  .partners-track:hover { animation-play-state:paused; }
  .partners-track img {
    height:52px; width:auto; max-width:160px; object-fit:contain;
    filter:grayscale(1) opacity(.55); transition:filter .25s ease, opacity .25s ease, transform .25s ease;
  }
  .partners-track img:hover { filter:none; opacity:1; transform:scale(1.05); }
  @keyframes partnersScroll {
    from { transform:translateX(0); }
    to { transform:translateX(-50%); }
  }
  @media (prefers-reduced-motion: reduce) {
    .partners-track { animation:none; flex-wrap:wrap; justify-content:center; width:auto; max-width:100%; margin:0 auto; }
    .partners-viewport { mask-image:none; -webkit-mask-image:none; overflow:visible; }
  }

  footer { background:#0b1730; color:#94a3b8; }
  footer h5 {
    color:#fff; font-weight:600; font-size:1.05rem; margin-bottom:1rem;
  }
  footer .foot-line { color:#cbd5e1; margin-bottom:.15rem; font-size:1rem; }
  footer .foot-line .hi { color:#fff; }
  footer a { color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.25); }
  footer a:hover, footer a:focus { border-bottom-color:#7dd3fc; }
  .legal { border-top:1px solid rgba(255,255,255,.1); color:#94a3b8; font-size:.86rem; line-height:1.55; }
  @media (prefers-reduced-motion: reduce) {
    .svc-card { transition:none; } .svc-card:hover { transform:none; }
    .carousel-item { transition:none !important; }
    .svc-banner .kicker-row img,
    .svc-banner .kicker,
    .svc-banner h1,
    .svc-banner .sub,
    .svc-banner .sub .char { opacity:1 !important; transform:none !important; filter:none !important; animation:none !important; }
    .svc-banner .slide-bg { transform:none !important; transition:none !important; }
    .nationwide .word-rotator b { position:relative; opacity:1; transform:none; animation:none; }
  }