/* NoxTools Site Kit — Contact page (ID 1690) only. Loaded by noxtools-site-kit.php ($nx_parts 'contact').
   Markup: wplocal/site-redesign/gen_contact.py (four Elementor bands of raw HTML, classes .nx-ct-*).
   Design: contact demo 6 "Light Premium Stage" (demo/contact-pages/contact-6.html), on the site's tokens (site.css :root).
   Breakpoints follow the demo: 1199 (smaller type/stage), 1023 (hero stacks, cards one column), 767 (phones), 480.
   The card grid keeps 3-up down to 861px (the owner's routing copy is longer than the demo's), one column below.
   Every selector starts with ".nx-site .elementor-1690" (enough weight to outrank the theme, the Elementor kit and site.css). */
.nx-site .elementor-1690 {
  --ct-light: var(--nx-light); --ct-hair: #E2E8F0; --ct-green: #16A34A; --ct-line: #BEC7D4;
}

/* ---------- bands: 1200px box with a 24px gutter (16px on phones); Elementor adds nothing ---------- */
.nx-site .elementor-1690 .elementor-top-section.nx-ct-sec > .elementor-container { max-width: 1200px; padding-left: 0 !important; padding-right: 0 !important; position: relative; z-index: 1; }
.nx-site .elementor-1690 .nx-ct-sec .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.nx-site .elementor-1690 .nx-ct-sec .elementor-widget:not(:last-child) { margin-bottom: 0; }
.nx-site .elementor-1690 .nx-ct { padding: 0 24px; color: var(--nx-text); font: 400 16px/1.6 var(--nx-body); }
.nx-site .elementor-1690 .nx-ct h1, .nx-site .elementor-1690 .nx-ct h2, .nx-site .elementor-1690 .nx-ct h3 { font-family: var(--nx-head); color: var(--nx-ink); margin: 0; letter-spacing: -.02em; line-height: 1.15; text-transform: none; }
.nx-site .elementor-1690 .nx-ct p { margin: 0; }
.nx-site .elementor-1690 .nx-ct ul { margin: 0; padding: 0; list-style: none; }
.nx-site .elementor-1690 .nx-ct a { color: var(--nx-indigo-d); }
.nx-site .elementor-1690 .nx-ct img { max-width: 100%; height: auto; display: block; border-radius: 0; box-shadow: none; }
.nx-site .elementor-1690 .nx-ct strong { color: var(--nx-ink); font-weight: 600; }
.nx-site .elementor-1690 .nx-ct-ico { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nx-site .elementor-1690 .nx-ct a:focus-visible { outline: 3px solid var(--nx-indigo); outline-offset: 2px; border-radius: 8px; }
.nx-site .elementor-1690 .nx-ct-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ---------- buttons ---------- */
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 24px; border-radius: 12px; font: 600 16px/1 var(--nx-body); text-decoration: none; white-space: nowrap; border: 1.5px solid transparent; transition: background-color .15s, background-image .15s, border-color .15s, color .15s, box-shadow .15s; }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--grad { color: #fff; background-image: linear-gradient(90deg, #4F46E5, #7C3AED); box-shadow: 0 14px 28px -12px rgba(79,70,229,.6); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--grad:hover { color: #fff; background-image: linear-gradient(90deg, #4338CA, #6D28D9); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--line { color: var(--nx-ink); background: #fff; border-color: var(--ct-line); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--line:hover { color: var(--nx-indigo-d); border-color: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--solid { color: #fff; background: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--solid:hover { color: #fff; background: var(--nx-indigo-d); }
.nx-site .elementor-1690 .nx-ct a.nx-ct-btn--sm { min-height: 46px; padding: 0 18px; font-size: 15px; border-radius: 10px; gap: 8px; }
.nx-site .elementor-1690 .nx-ct-btn .nx-ct-ico { width: 17px; height: 17px; transition: transform .15s; }
.nx-site .elementor-1690 .nx-ct-btn:hover .nx-ct-ico { transform: translateX(2px); }
.nx-site .elementor-1690 .nx-ct-btn[aria-busy="true"] { cursor: progress; opacity: .85; }

/* ---------- 1. hero: light stage (glows + faint grid, as the home hero) ---------- */
.nx-site .elementor-1690 .elementor-top-section.nx-ct-hero { position: relative; overflow: hidden; background: var(--ct-light); padding: 56px 0 112px; }
.nx-site .elementor-1690 .nx-ct-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(660px 540px at 80% 16%, rgba(124,58,237,.17), transparent 62%),
              radial-gradient(580px 500px at 2% 84%, rgba(79,70,229,.15), transparent 60%),
              radial-gradient(440px 400px at 46% 92%, rgba(245,158,11,.10), transparent 62%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 70%, transparent 100%); }
.nx-site .elementor-1690 .nx-ct-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(rgba(190,199,212,.38) 1px, transparent 1px), linear-gradient(90deg, rgba(190,199,212,.38) 1px, transparent 1px); background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(920px 620px at 46% 34%, #000 24%, transparent 100%); mask-image: radial-gradient(920px 620px at 46% 34%, #000 24%, transparent 100%); }
.nx-site .elementor-1690 .nx-ct-hero-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; align-items: center; }
.nx-site .elementor-1690 .nx-ct-copy { min-width: 0; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-pill { display: inline-flex; align-items: center; gap: 10px; padding: 6px 15px 6px 6px; border-radius: 999px; background: #fff; border: 1px solid #D7DEE8; color: var(--nx-indigo-d); font: 600 13px/1.25 var(--nx-body); box-shadow: 0 1px 2px rgba(11,17,32,.06); }
.nx-site .elementor-1690 .nx-ct-pill b { flex: 0 0 auto; display: inline-flex; align-items: center; height: 24px; padding: 0 11px; border-radius: 999px; background: linear-gradient(90deg, #4F46E5, #7C3AED); color: #fff; font: 700 11px/1 var(--nx-body); letter-spacing: .06em; }
.nx-site .elementor-1690 .nx-ct h1.nx-ct-h1 { margin-top: 22px; font-size: 60px; font-weight: 800; line-height: 1.05; letter-spacing: -.025em; max-width: 11em; text-wrap: balance; }
.nx-site .elementor-1690 .nx-ct-grad { background-image: linear-gradient(90deg, #4F46E5 0%, #7C3AED 58%, #C2410C 132%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-lede { margin-top: 20px; max-width: 560px; font-size: 18px; line-height: 1.6; text-wrap: pretty; }
.nx-site .elementor-1690 .nx-ct-cta { position: relative; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-hours { margin-top: 22px; padding-top: 16px; border-top: 1px solid #CFD8E3; max-width: 620px; display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; line-height: 1.55; }
.nx-site .elementor-1690 .nx-ct-hchip { flex: 0 0 auto; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #fff; border: 1px solid #D7DEE8; color: var(--nx-indigo); box-shadow: 0 1px 2px rgba(11,17,32,.06); }

/* stage: the support panda in a soft circle, three floating mini channel cards, the badge (decorative, aria-hidden) */
.nx-site .elementor-1690 .nx-ct-stage { position: relative; min-height: 480px; min-width: 0; }
.nx-site .elementor-1690 .nx-ct-orb { position: absolute; right: -30px; bottom: 6px; width: 420px; height: 420px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle at 50% 45%, rgba(124,58,237,.16), rgba(79,70,229,.08) 56%, transparent 72%); border: 1px solid rgba(124,58,237,.12); }
.nx-site .elementor-1690 .nx-ct img.nx-ct-nox { position: absolute; right: 0; bottom: 0; width: 330px; max-width: 100%; }
.nx-site .elementor-1690 .nx-ct-plate { position: absolute; z-index: 1; display: flex; align-items: center; gap: 11px; width: 224px; padding: 12px 13px; background: #fff; border: 1px solid var(--ct-hair); border-radius: 14px; box-shadow: 0 18px 40px -18px rgba(11,17,32,.3), 0 1px 2px rgba(11,17,32,.05); }
.nx-site .elementor-1690 .nx-ct-pi { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--nx-soft); color: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct-plate b { display: block; font: 700 14px/1.2 var(--nx-head); color: var(--nx-ink); letter-spacing: -.01em; }
.nx-site .elementor-1690 .nx-ct-plate span span { display: block; margin-top: 3px; font: 500 12px/1.3 var(--nx-body); color: var(--nx-muted); white-space: nowrap; }
.nx-site .elementor-1690 .nx-ct-live { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 3px rgba(34,197,94,.22); margin-right: 6px; vertical-align: 1px; flex: 0 0 auto; }
.nx-site .elementor-1690 .nx-ct-plate--1 { top: 74px; left: 0; }
.nx-site .elementor-1690 .nx-ct-plate--2 { top: 194px; left: 16px; }
.nx-site .elementor-1690 .nx-ct-plate--3 { top: 314px; left: 0; }
.nx-site .elementor-1690 .nx-ct-badge { position: absolute; z-index: 1; top: 22px; right: 0; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: var(--nx-navy); color: #fff; font: 600 12.5px/1 var(--nx-body); white-space: nowrap; box-shadow: 0 12px 26px -12px rgba(11,17,32,.6); }
.nx-site .elementor-1690 .nx-ct-badge i { width: 8px; height: 8px; border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 4px rgba(34,197,94,.22); }

/* ---------- 2. ways to reach us: three cards rising over the hero's lower edge ---------- */
.nx-site .elementor-1690 .elementor-top-section.nx-ct-ch { position: relative; z-index: 2; margin-top: -72px; padding: 0 0 64px; background: transparent; }
.nx-site .elementor-1690 .nx-ct-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nx-site .elementor-1690 .nx-ct-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 26px 26px 24px; background: #fff; border: 1px solid var(--ct-hair); border-radius: 18px; overflow: hidden;
  box-shadow: 0 24px 50px -24px rgba(11,17,32,.28), 0 1px 2px rgba(11,17,32,.05); transition: border-color .15s; }
.nx-site .elementor-1690 .nx-ct-card:has(:focus-visible) { border-color: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct p.nx-ct-tag { margin: 0 0 12px; font: 600 11.5px/1 var(--nx-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nx-indigo-d); }
.nx-site .elementor-1690 .nx-ct-tile { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; background: var(--nx-soft); color: var(--nx-indigo); margin-bottom: 18px; }
.nx-site .elementor-1690 .nx-ct-tile .nx-ct-ico { width: 22px; height: 22px; }
.nx-site .elementor-1690 .nx-ct-card--chat .nx-ct-tile { background: linear-gradient(135deg, #4F46E5, #7C3AED); color: #fff; }
.nx-site .elementor-1690 .nx-ct h3.nx-ct-title { font-size: 22px; font-weight: 700; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-best { justify-self: start; align-self: start; margin-top: 10px; display: inline-block; font: 600 13px/1.4 var(--nx-body); color: var(--nx-indigo-d); background: var(--nx-soft); border-radius: 8px; padding: 5px 10px; text-wrap: balance; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-desc { margin-top: 12px; font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.nx-site .elementor-1690 .nx-ct-slot { margin-top: 16px; padding-top: 16px; border-top: 1px solid #EEF1F5; }
.nx-site .elementor-1690 .nx-ct-ticks li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--nx-text); text-wrap: pretty; }
.nx-site .elementor-1690 .nx-ct-ticks li + li { margin-top: 9px; }
.nx-site .elementor-1690 .nx-ct-tick { display: block; box-sizing: content-box; width: 12px; height: 12px; padding: 3px; margin-top: 1.5px; border-radius: 50%; background: #DCFCE7; color: var(--ct-green); stroke-width: 3; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-meta { margin-top: 18px; display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 24px; font: 600 13.5px/1.35 var(--nx-body); color: var(--nx-slate); }
.nx-site .elementor-1690 .nx-ct-meta .nx-ct-ico { width: 16px; height: 16px; color: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct-meta .nx-ct-live { margin: 0 3px 0 4px; }
.nx-site .elementor-1690 .nx-ct .nx-ct-meta a { color: var(--nx-indigo-d); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; min-width: 0; padding: 14px 0; margin: -14px 0; }
.nx-site .elementor-1690 .nx-ct .nx-ct-meta a:hover { color: var(--nx-indigo); }
.nx-site .elementor-1690 .nx-ct-act { margin-top: 18px; }
.nx-site .elementor-1690 .nx-ct img.nx-ct-cnx { position: absolute; right: 8px; bottom: -2px; width: 108px; pointer-events: none; }
/* on wide screens the rows line up across the three cards (subgrid): tag, tile, title, best-for, text, ticks, meta and
   the buttons each sit on one line whatever the length of the copy; the button row is the last, so all three align */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 861px) {
    .nx-site .elementor-1690 .nx-ct-cards { grid-template-rows: repeat(8, auto); row-gap: 0; }
    .nx-site .elementor-1690 .nx-ct-card { display: grid; grid-row: span 8; grid-template-rows: subgrid; grid-template-columns: minmax(0, 1fr); row-gap: 0; }
    .nx-site .elementor-1690 .nx-ct p.nx-ct-meta { align-self: end; }
  }
}
@media (min-width: 861px) { .nx-site .elementor-1690 .nx-ct-act { margin-top: auto; padding-top: 18px; } }

/* live chat blocked or slow (gen_contact.py CHAT_JS): a quiet note with the other ways to reach us. The page holds
   three empty role="status" regions for it (their box is hidden while empty), floating callouts that do not move
   other content except the last: the hero's under the two hero buttons (over the IST note, which says the same); with the cards
   3-up the one under the grid (.nx-ct-note-w, as wide as the three cards, in the band's 64px bottom padding); in one
   column the one under the chat card's button, which there opens in the flow and grows the card (see the 860px block). */
.nx-chat-fallback { flex: 0 0 100%; width: 100%; margin: 12px 0 0; padding: 10px 14px; border: 1px solid #FDE68A; border-radius: 10px; background: #FFFBEB; color: #78350F; font: 500 14px/1.5 var(--nx-body); text-wrap: pretty; }
.nx-chat-fallback a { color: #92400E; text-decoration: underline; overflow-wrap: anywhere; }
/* the hero's callout takes the IST note's place (the note is hidden, its space kept, so nothing moves) */
.nx-site .elementor-1690 .nx-ct-cta:has(.nx-chat-fallback:not(:empty)) + .nx-ct-hours { visibility: hidden; }
.nx-site .elementor-1690 .nx-ct-cta .nx-chat-fallback { position: absolute; z-index: 5; left: 0; top: calc(100% + 18px); width: 100%; max-width: 620px; margin: 0; box-shadow: 0 18px 36px -18px rgba(120,53,15,.45), 0 1px 2px rgba(11,17,32,.06); }
.nx-site .elementor-1690 .nx-ct-act { position: relative; }
.nx-site .elementor-1690 .nx-ct-act .nx-chat-fallback { position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 10px); width: auto; margin: 0; font-size: 13.5px; box-shadow: 0 18px 36px -18px rgba(120,53,15,.45), 0 1px 2px rgba(11,17,32,.06); }
.nx-site .elementor-1690 .nx-ct-ch-in { position: relative; }
.nx-site .elementor-1690 .nx-ct-note-w { position: absolute; left: 24px; right: 24px; top: 100%; }
.nx-site .elementor-1690 .nx-ct-note-w .nx-chat-fallback { margin: 12px 0 0; font-size: 14.5px; text-align: center; }
.nx-site .elementor-1690 .nx-ct .nx-chat-fallback:empty { margin: 0; padding: 0; border: 0; box-shadow: none; }
.nx-site .elementor-1690 .nx-ct .nx-chat-fallback a { color: #92400E; }

/* ---------- 3. before you write ---------- */
.nx-site .elementor-1690 .elementor-top-section.nx-ct-bw { padding: 24px 0 80px; background: #fff; }
.nx-site .elementor-1690 .nx-ct-box { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: center; padding: 40px 44px; border-radius: 22px; background: var(--ct-light); border: 1px solid #E6EBF2; }
.nx-site .elementor-1690 .nx-ct-box::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(420px 300px at 96% 100%, rgba(124,58,237,.16), transparent 62%); }
.nx-site .elementor-1690 .nx-ct-box > * { position: relative; min-width: 0; }
.nx-site .elementor-1690 .nx-ct h2.nx-ct-h2 { font-size: 32px; font-weight: 800; text-wrap: balance; }
.nx-site .elementor-1690 .nx-ct p.nx-ct-sub { margin-top: 10px; font-size: 16px; color: var(--nx-muted); }
.nx-site .elementor-1690 .nx-ct-checks { margin-top: 24px !important; display: grid; gap: 16px; }
.nx-site .elementor-1690 .nx-ct-checks > li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; line-height: 1.55; }
.nx-site .elementor-1690 .nx-ct-ck { flex: 0 0 auto; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #DCFCE7; color: var(--ct-green); margin-top: -1px; }
.nx-site .elementor-1690 .nx-ct-ck .nx-ct-ico { width: 15px; height: 15px; stroke-width: 2.6; }
.nx-site .elementor-1690 .nx-ct-checks > li.nx-ct-no .nx-ct-ck { background: #FEF3C7; color: #B45309; }
.nx-site .elementor-1690 .nx-ct-checks p a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.nx-site .elementor-1690 .nx-ct-fig { display: grid; place-items: center; }
.nx-site .elementor-1690 .nx-ct-fig::before { content: ""; position: absolute; left: 50%; top: 50%; width: 250px; height: 250px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle at 50% 45%, rgba(124,58,237,.18), rgba(79,70,229,.08) 56%, transparent 72%); border: 1px solid rgba(124,58,237,.14); }
.nx-site .elementor-1690 .nx-ct img.nx-ct-think { position: relative; width: 240px; }

/* ---------- 4. quick answers (the last band: room for the two pandas peeking over the footer) ---------- */
.nx-site .nx-main > .elementor-1690 > .elementor-top-section.nx-ct-qa:last-child, .nx-site .elementor-1690 .elementor-top-section.nx-ct-qa { position: relative; overflow: hidden; padding: 72px 0 200px; background: var(--ct-light); }
.nx-site .elementor-1690 .nx-ct-qa::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .45;
  background-image: linear-gradient(rgba(190,199,212,.38) 1px, transparent 1px), linear-gradient(90deg, rgba(190,199,212,.38) 1px, transparent 1px); background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(900px 420px at 50% 0%, #000 20%, transparent 100%); mask-image: radial-gradient(900px 420px at 50% 0%, #000 20%, transparent 100%); }
.nx-site .elementor-1690 .nx-ct-qa-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 24px; }
.nx-site .elementor-1690 .nx-ct-qa-head > p { font-size: 16px; color: var(--nx-muted); max-width: 520px; }
.nx-site .elementor-1690 .nx-ct-qgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.nx-site .elementor-1690 .nx-ct-q { display: flex; flex-direction: column; min-width: 0; padding: 20px 20px 18px; background: #fff; border: 1px solid var(--ct-hair); border-radius: 16px; box-shadow: 0 1px 2px rgba(11,17,32,.05); }
.nx-site .elementor-1690 .nx-ct-qi { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--nx-soft); color: var(--nx-indigo); margin-bottom: 14px; }
.nx-site .elementor-1690 .nx-ct-q h3 { font-size: 16px; font-weight: 700; }
.nx-site .elementor-1690 .nx-ct-q p { margin-top: 8px; font-size: 14px; line-height: 1.55; flex: 1; text-wrap: pretty; }
.nx-site .elementor-1690 .nx-ct a.nx-ct-more { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; margin-top: 14px; min-height: 44px; font: 600 14px/1.2 var(--nx-body); color: var(--nx-indigo-d); text-decoration: none; }
.nx-site .elementor-1690 .nx-ct a.nx-ct-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.nx-site .elementor-1690 .nx-ct-more .nx-ct-ico { width: 15px; height: 15px; }

/* ---------- responsive (the demo's breakpoints) ---------- */
@media (max-width: 1199px) {
  .nx-site .elementor-1690 .nx-ct h1.nx-ct-h1 { font-size: 50px; }
  .nx-site .elementor-1690 .nx-ct-plate { width: 200px; }
  .nx-site .elementor-1690 .nx-ct-plate--1, .nx-site .elementor-1690 .nx-ct-plate--3 { left: -8px; }
  .nx-site .elementor-1690 .nx-ct-plate--2 { left: 6px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-nox { width: 300px; }
  .nx-site .elementor-1690 .nx-ct-orb { width: 380px; height: 380px; }
  .nx-site .elementor-1690 .nx-ct-plate--3 { width: 214px; }
  .nx-site .elementor-1690 .nx-ct-plate--3 span span { font-size: 11.5px; }
  .nx-site .elementor-1690 .nx-ct-card { padding: 24px 22px 22px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-cnx { width: 92px; right: 4px; }
}
@media (max-width: 1023px) {
  .nx-site .elementor-1690 .elementor-top-section.nx-ct-hero { padding: 44px 0 104px; }
  .nx-site .elementor-1690 .nx-ct-hero-in { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .nx-site .elementor-1690 .nx-ct h1.nx-ct-h1 { font-size: 48px; }
  .nx-site .elementor-1690 .nx-ct-stage { min-height: 0; display: flex; flex-direction: column; align-items: center; padding-top: 12px; }
  .nx-site .elementor-1690 .nx-ct-orb { left: 50%; right: auto; top: auto; bottom: 24px; width: 380px; height: 380px; transform: translateX(-50%); }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-nox { position: relative; right: auto; bottom: auto; width: 300px; }
  .nx-site .elementor-1690 .nx-ct-badge { position: relative; top: auto; right: auto; order: -1; margin-bottom: -6px; }
  .nx-site .elementor-1690 .nx-ct-plates { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 20px; width: 100%; }
  .nx-site .elementor-1690 .nx-ct-plate, .nx-site .elementor-1690 .nx-ct-plate--3 { position: static; width: auto; flex: 1 1 200px; max-width: 260px; }
  .nx-site .elementor-1690 .nx-ct-box { grid-template-columns: minmax(0, 1fr); padding: 32px 28px; }
  .nx-site .elementor-1690 .nx-ct-fig { order: -1; }
  .nx-site .elementor-1690 .nx-ct-fig::before { width: 190px; height: 190px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-think { width: 180px; }
  .nx-site .elementor-1690 .nx-ct-qgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-site .elementor-1690 .nx-ct-cards { gap: 16px; }
  .nx-site .elementor-1690 .nx-ct-card { padding: 22px 18px 20px; }
  .nx-site .elementor-1690 .nx-ct h3.nx-ct-title { font-size: 20px; }
  .nx-site .elementor-1690 .nx-ct p.nx-ct-best { font-size: 12.5px; padding: 5px 8px; }
  .nx-site .elementor-1690 .nx-ct-ticks li { font-size: 14px; }
  .nx-site .elementor-1690 .nx-ct p.nx-ct-meta { font-size: 12.5px; }
  .nx-site .elementor-1690 .nx-ct a.nx-ct-btn--sm { padding: 0 14px; font-size: 14.5px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-cnx { width: 80px; right: 2px; }
}
/* 3-up cards on narrow desktops: the longest best-for label cannot stay a one-line pill, so all three become a plain
   indigo subtitle here (no tinted block for one card only) */
@media (min-width: 861px) and (max-width: 1110px) {
  .nx-site .elementor-1690 .nx-ct p.nx-ct-best { background: none; padding: 0; margin-top: 8px; text-wrap: pretty; }
}
@media (max-width: 860px) {
  .nx-site .elementor-1690 .nx-ct-note-w { display: none; }
  .nx-site .elementor-1690 .nx-ct-cards { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin: 0 auto; }
  .nx-site .elementor-1690 .nx-ct-card { padding: 26px 26px 24px; }
  .nx-site .elementor-1690 .nx-ct h3.nx-ct-title { font-size: 22px; }
  .nx-site .elementor-1690 .nx-ct p.nx-ct-best { font-size: 13px; padding: 5px 10px; }
  .nx-site .elementor-1690 .nx-ct-ticks li { font-size: 14.5px; }
  .nx-site .elementor-1690 .nx-ct p.nx-ct-meta { font-size: 13.5px; }
  .nx-site .elementor-1690 .nx-ct a.nx-ct-btn--sm { padding: 0 18px; font-size: 15px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-cnx { width: 108px; right: 8px; bottom: 0; }
  /* one column: the chat card's fallback note opens in the flow under its button (the card grows once, after the
     visitor's own click) so it never covers the card's ticks or the next card, whatever the width */
  .nx-site .elementor-1690 .nx-ct-act .nx-chat-fallback { position: static; box-shadow: none; }
  .nx-site .elementor-1690 .nx-ct-act .nx-chat-fallback:not(:empty) { margin: 12px 96px 0 0; }
}
@media (max-width: 767px) {
  .nx-site .elementor-1690 .elementor-top-section.nx-ct-hero { padding: 36px 0 96px; }
  .nx-site .elementor-1690 .nx-ct h1.nx-ct-h1 { font-size: 40px; }
  .nx-site .elementor-1690 .nx-ct p.nx-ct-lede { font-size: 16.5px; }
  .nx-site .elementor-1690 .nx-ct-cta .nx-ct-btn { flex: 1 1 100%; }
  .nx-site .elementor-1690 .nx-ct-plates, .nx-site .elementor-1690 .nx-ct img.nx-ct-cnx { display: none; }
  .nx-site .elementor-1690 .nx-ct-act .nx-chat-fallback:not(:empty) { margin-right: 0; }
  .nx-site .elementor-1690 .nx-ct-badge { margin-bottom: 2px; }
  .nx-site .elementor-1690 .nx-ct-stage { padding-top: 0; }
  .nx-site .elementor-1690 .nx-ct-orb { width: 330px; height: 330px; bottom: 16px; }
  .nx-site .elementor-1690 .nx-ct-box { padding: 28px 20px; }
  .nx-site .elementor-1690 .nx-ct h2.nx-ct-h2 { font-size: 27px; }
  .nx-site .elementor-1690 .nx-ct-fig::before { width: 170px; height: 170px; }
  .nx-site .elementor-1690 .nx-ct img.nx-ct-think { width: 150px; }
  .nx-site .elementor-1690 .nx-ct-qgrid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .nx-site .nx-main > .elementor-1690 > .elementor-top-section.nx-ct-qa:last-child, .nx-site .elementor-1690 .elementor-top-section.nx-ct-qa { padding: 56px 0 150px; }
}
@media (max-width: 600px) {
  .nx-site .elementor-1690 .nx-ct { padding: 0 16px; }
  .nx-site .elementor-1690 .nx-ct-card { padding: 22px 20px 20px; }
  .nx-site .elementor-1690 .nx-ct-slot .nx-chat-fallback, .nx-site .elementor-1690 .nx-ct-cta .nx-chat-fallback { font-size: 13.5px; }
}
@media (max-width: 480px) {
  .nx-site .elementor-1690 .nx-ct img.nx-ct-nox { width: 250px; }
  .nx-site .elementor-1690 .nx-ct-orb { width: 290px; height: 290px; bottom: 14px; }
  .nx-site .elementor-1690 .nx-ct h1.nx-ct-h1 { font-size: clamp(33px, 10.2vw, 40px); }
}
@media (max-width: 360px) {
  .nx-site .elementor-1690 .nx-ct p.nx-ct-pill { font-size: 12px; gap: 8px; padding-right: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .nx-site .elementor-1690 .nx-ct a.nx-ct-btn, .nx-site .elementor-1690 .nx-ct-btn .nx-ct-ico, .nx-site .elementor-1690 .nx-ct-card { transition: none; }
  .nx-site .elementor-1690 .nx-ct-btn:hover .nx-ct-ico { transform: none; }
}
