/* SMSNiti site design (white + blue, deep-blue hero). One small stylesheet, system fonts, no frameworks.
   Header, footer, action bar and popup are used on every page; the rest is scoped to body.sn-home or .sn-* blocks. */
@font-face { font-family: "SN Manrope"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../fonts/manrope-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --sn-brand: #1f5bff;
  --sn-brand-dark: #1544c9;
  --sn-ink: #0d1a44;
  --sn-muted: #55627f;
  --sn-line: #e2e8f5;
  --sn-soft: #f4f7fe;
  --sn-soft2: #eaf0ff;
  --sn-deep: #0a2373;
  --sn-deep2: #12348f;
  --sn-accent: #ff8a1f;
  --sn-wa: #1fa855;
  --sn-font: "SN Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- shared bits ---------- */
.sn-wrap { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: 16px; }
.sn-wrap, .sn-wrap *, .sn-crumbs, .sn-crumbs *, .sn-toc, .sn-toc *, .sn-topbar, .sn-topbar *, .sn-hdr, .sn-hdr *, .sn-ftr, .sn-ftr *, .sn-actions, .sn-actions *, .sn-modal, .sn-modal *, .sn-home main, .sn-home main * { box-sizing: border-box; }
.sn-topbar, .sn-hdr, .sn-ftr, .sn-actions, .sn-modal, body.sn-home { font-family: var(--sn-font); }
.sn-ico { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; vertical-align: -.2em; }
.sn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; font: 700 16px/1 var(--sn-font); border-radius: 999px; padding: 15px 24px; border: 1.5px solid transparent; cursor: pointer; text-decoration: none; transition: background .2s, border-color .2s, color .2s; }
.sn-btn-primary { background: var(--sn-brand); color: #fff; box-shadow: 0 8px 20px rgba(31, 91, 255, .28); }
.sn-btn-primary:hover { background: var(--sn-brand-dark); color: #fff; }
.sn-btn-ghost { background: #fff; color: var(--sn-ink); border-color: #c9d5f2; }
.sn-btn-ghost:hover { border-color: var(--sn-brand); color: var(--sn-brand); }
.sn-hdr :focus-visible, .sn-ftr :focus-visible, .sn-actions :focus-visible, .sn-modal :focus-visible, .sn-home main :focus-visible { outline: 3px solid var(--sn-accent); outline-offset: 2px; }

/* ---------- top bar + header (all pages) ---------- */
.sn-topbar { display: none; background: var(--sn-deep); color: #cfdbfb; font: 500 13px/1 var(--sn-font); }
.sn-topbar .sn-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 38px; }
.sn-topbar a { color: #fff; text-decoration: none; }
.sn-topbar a:hover { color: #ffb15c; }
.sn-tb-msg, .sn-tb-links, .sn-tb-links a, .sn-tb-loc { display: inline-flex; align-items: center; gap: 8px; }
.sn-tb-links { gap: 24px; }
.sn-topbar .sn-ico { width: 15px; height: 15px; color: #ffb15c; }

.sn-hdr { position: sticky; top: 0; z-index: 1000; background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--sn-line); margin: 0; padding: 0; color: var(--sn-ink); line-height: 1.5; }
.sn-hdr a { color: inherit; text-decoration: none; }
.sn-hdr ul { list-style: none; margin: 0; padding: 0; }
.sn-hdr .sn-bar { display: flex; align-items: center; gap: 12px; height: 66px; position: relative; }
.sn-logo { display: flex; align-items: center; flex: none; }
.sn-logo img { display: block; width: 134px; height: auto; }
.sn-nav { display: none; }
.sn-hdr-cta { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.sn-call { display: inline-flex; align-items: center; gap: 8px; background: var(--sn-soft2); color: var(--sn-brand-dark) !important; font-weight: 700; font-size: 14px; padding: 11px 14px; border-radius: 999px; white-space: nowrap; line-height: 1; }
.sn-call:hover { background: #dbe6ff; }
.sn-quote { display: none; padding: 13px 22px; font-size: 15.5px; }
.sn-btn-sm { padding: 11px 18px; font-size: 14.5px; }
.sn-burger { background: var(--sn-soft); border: 0; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; color: var(--sn-ink); cursor: pointer; padding: 0; }
.sn-drawer { border-top: 1px solid var(--sn-line); background: #fff; padding: 6px 16px 22px; max-height: calc(100vh - 66px); overflow-y: auto; }
.sn-drawer[hidden] { display: none; }
.sn-drawer a, .sn-drawer summary { display: block; padding: 15px 4px; font-weight: 700; font-size: 17px; border-bottom: 1px solid var(--sn-line); cursor: pointer; list-style: none; }
.sn-drawer summary::-webkit-details-marker { display: none; }
.sn-drawer summary { display: flex; justify-content: space-between; align-items: center; }
.sn-drawer summary::after { content: "+"; font-size: 24px; color: var(--sn-brand); line-height: 1; }
.sn-drawer details[open] > summary::after { content: "\2212"; }
.sn-drawer details a { font-weight: 500; padding: 12px 4px 12px 16px; font-size: 16px; color: var(--sn-muted); }
.sn-drawer .sn-btn { width: 100%; margin-top: 16px; border-bottom: 1.5px solid transparent; color: #fff; }
.sn-drawer .sn-h { display: block; padding: 14px 4px 4px 16px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sn-muted); font-weight: 800; }

@media (min-width: 960px) {
  .sn-topbar { display: block; }
  .sn-hdr .sn-bar { gap: 20px; height: 78px; }
  .sn-logo img { width: 160px; }
  .sn-nav { display: flex; align-items: stretch; justify-content: center; flex: 1; align-self: stretch; gap: 2px; }
  .sn-dd { display: flex; align-items: stretch; }
  .sn-nav .sn-link { font: 600 16px/1 var(--sn-font); color: var(--sn-ink); background: none; border: 0; padding: 0 15px; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; position: relative; letter-spacing: -.005em; }
  .sn-nav .sn-link::after { content: ""; position: absolute; left: 15px; right: 15px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--sn-brand); transform: scaleX(0); transition: transform .18s ease; }
  .sn-nav .sn-link:hover, .sn-nav .sn-dd.open > .sn-link, .sn-nav .sn-dd.is-here > .sn-link, .sn-nav .sn-link[aria-current] { color: var(--sn-brand-dark); }
  .sn-nav .sn-link:hover::after, .sn-nav .sn-dd.open > .sn-link::after, .sn-nav .sn-dd.is-here > .sn-link::after, .sn-nav .sn-link[aria-current]::after { transform: scaleX(1); }
  .sn-chev { width: 15px; height: 15px; transition: transform .18s; }
  .sn-dd.open > .sn-link .sn-chev { transform: rotate(180deg); }
  .sn-hdr-cta { margin-left: 0; gap: 14px; }
  .sn-quote { display: inline-flex; }
  .sn-call { background: none; padding: 8px 4px; font-size: 15.5px; color: var(--sn-ink) !important; }
  .sn-call:hover { background: none; color: var(--sn-brand-dark) !important; }
  .sn-call .sn-ico { color: var(--sn-brand); }
  .sn-burger, .sn-drawer { display: none !important; }

  /* mega menu: opened by site.js (hover with a short grace period, click, keyboard); the :focus-within rule keeps it usable without scripts */
  .sn-mega { position: absolute; left: 16px; right: 16px; top: calc(100% - 1px); background: #fff; border: 1px solid var(--sn-line); border-top: 0; border-radius: 0 0 22px 22px; box-shadow: 0 36px 70px rgba(13, 26, 68, .18); padding: 26px 26px 0; display: none; }
  .sn-mega::before { content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 22px; }
  .sn-dd.open > .sn-mega, .sn-dd:focus-within > .sn-mega { display: block; animation: snDrop .16s ease-out; }
  @keyframes snDrop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  .sn-mega-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px; padding-bottom: 22px; }
  .sn-col h4 { margin: 0 0 8px; padding: 0 10px; font-size: 12px; letter-spacing: .09em; text-transform: uppercase; color: var(--sn-muted); font-weight: 800; }
  .sn-mega a { display: flex; gap: 12px; align-items: flex-start; padding: 9px 10px; border-radius: 12px; color: var(--sn-ink); font-weight: 700; font-size: 15px; line-height: 1.3; }
  .sn-mega a > .sn-ico { width: 36px; height: 36px; padding: 8px; border-radius: 10px; background: var(--sn-soft2); color: var(--sn-brand); stroke-width: 1.9; transition: background .15s, color .15s; }
  .sn-mega a small { display: block; margin-top: 3px; font-weight: 500; font-size: 12.5px; color: var(--sn-muted); line-height: 1.35; }
  .sn-mega a:hover { background: var(--sn-soft); color: var(--sn-brand-dark); }
  .sn-mega a:hover > .sn-ico { background: var(--sn-brand); color: #fff; }
  .sn-mega-foot { display: flex; align-items: center; gap: 18px; margin: 0 -26px; padding: 16px 26px; background: var(--sn-soft); border-top: 1px solid var(--sn-line); border-radius: 0 0 22px 22px; font-size: 14.5px; color: var(--sn-muted); font-weight: 600; }
  .sn-mega-foot span { flex: 1; }
  .sn-mega-foot .sn-btn { color: #fff; }
  .sn-mega .sn-all { display: inline-flex; align-items: center; gap: 6px; padding: 0; font-weight: 700; color: var(--sn-brand-dark); font-size: 14.5px; }
  .sn-mega .sn-all:hover { background: none; text-decoration: underline; }
  .sn-mega .sn-all .sn-ico { width: 16px; height: 16px; background: none; padding: 0; color: inherit; }
  .sn-dd-sm { position: relative; }
  .sn-mega.sn-menu { left: 0; right: auto; width: 360px; top: calc(100% - 1px); padding: 10px; border: 1px solid var(--sn-line); border-radius: 0 0 18px 18px; }
  .sn-menu a { padding: 11px 12px; }
}
@media (min-width: 1120px) { .sn-mega-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 960px) and (max-width: 1179px) { .sn-call span { display: none; } .sn-nav .sn-link { padding: 0 11px; font-size: 15px; } .sn-nav .sn-link::after { left: 11px; right: 11px; } }
@media (max-width: 400px) { .sn-call { padding: 10px 11px; font-size: 13px; } .sn-logo img { width: 112px; } }
@media (prefers-reduced-motion: reduce) { .sn-dd.open > .sn-mega { animation: none; } }

/* ---------- mobile quick-contact bar (all pages) ---------- */
.sn-actions { display: none; }
@media (max-width: 760px) {
  body { padding-bottom: 72px; }
  .sn-actions { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .98); box-shadow: 0 -8px 24px rgba(13, 26, 68, .12); }
  .sn-actions a { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 46px; border-radius: 12px; color: #fff; font-weight: 700; font-size: 14.5px; text-decoration: none; line-height: 1; }
  .sn-actions .a1 { background: var(--sn-brand); } .sn-actions .a2 { background: var(--sn-wa); } .sn-actions .a3 { background: var(--sn-ink); }
  .gb-waw, iframe#gb-waw-iframe { display: none !important; }
}

/* ---------- footer (all pages) ---------- */
.sn-ftr { background: #0a1538; color: #b9c6ec; padding: 60px 0 26px; font-size: 15px; line-height: 1.6; margin: 0; }
.sn-ftr a { color: inherit; text-decoration: none; display: block; padding: 5px 0; }
.sn-ftr a:hover { color: #fff; }
.sn-ftr .sn-cols { display: grid; gap: 34px 28px; grid-template-columns: 1fr 1fr; }
.sn-ftr .sn-brand { grid-column: 1 / -1; }
.sn-ftr h5 { margin: 0 0 14px; color: #fff; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; }
.sn-ftr p { margin: 0 0 16px; max-width: 30em; color: #b9c6ec; font-size: 15px; line-height: 1.65; }
.sn-ftr .sn-flogo img { display: block; width: 156px; height: auto; background: #fff; border-radius: 10px; padding: 8px 10px; margin-bottom: 16px; }
.sn-ftr address { font-style: normal; display: grid; gap: 2px; }
.sn-ftr address a { display: flex; gap: 10px; align-items: flex-start; padding: 5px 0; }
.sn-ftr address .sn-ico { width: 18px; height: 18px; margin-top: 3px; color: #ffb15c; }
.sn-ftr .sn-legal { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 40px; padding-top: 22px; display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 13.5px; }
.sn-ftr .sn-legal a { display: inline; padding: 0; }
.sn-ftr .sn-copy { width: 100%; margin-bottom: 4px; }
@media (min-width: 720px) { .sn-ftr .sn-cols { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1040px) { .sn-ftr .sn-cols { grid-template-columns: 1.7fr 1fr 1fr .9fr .9fr; } .sn-ftr .sn-brand { grid-column: auto; } .sn-ftr .sn-copy { width: auto; margin: 0 auto 0 0; } }

/* ---------- exit-intent popup (all pages) ---------- */
.sn-modal { position: fixed; inset: 0; z-index: 2000; background: rgba(13, 26, 68, .6); display: grid; place-items: center; padding: 16px; }
.sn-modal[hidden] { display: none; }
.sn-dlg { background: #fff; color: var(--sn-ink); border-radius: 22px; width: min(460px, 100%); padding: 30px 26px 26px; position: relative; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); line-height: 1.5; }
.sn-dlg h3 { margin: 0 0 6px; padding-right: 44px; font-size: 1.5rem; letter-spacing: -.02em; line-height: 1.2; color: var(--sn-ink); font-weight: 800; }
.sn-dlg p { margin: 0 0 18px; color: var(--sn-muted); }
.sn-dlg label { display: block; font-weight: 700; font-size: 14px; margin: 0 0 6px; }
.sn-dlg input { font: inherit; font-size: 16px; width: 100%; border: 1.5px solid #cdd8f2; border-radius: 12px; padding: 13px 14px; margin: 0 0 14px; color: var(--sn-ink); background: #fff; height: auto; }
.sn-dlg input:focus { outline: 3px solid #bcd0ff; border-color: var(--sn-brand); }
.sn-dlg .sn-btn { width: 100%; }
.sn-dlg .sn-x { position: absolute; right: 12px; top: 12px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--sn-soft); color: var(--sn-ink); cursor: pointer; display: grid; place-items: center; padding: 0; }
.sn-dlg .sn-note { margin: 12px 0 0; font-size: 13px; text-align: center; color: var(--sn-muted); min-height: 1.4em; }
.sn-dlg .sn-note.bad { color: #b42318; }

/* ================= home page (body.sn-home loads only this stylesheet) ================= */
body.sn-home { margin: 0; background: #fff; color: var(--sn-ink); font-size: 16px; line-height: 1.6; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; }
.sn-home img { max-width: 100%; height: auto; }
.sn-home main a { color: inherit; text-decoration: none; }
.sn-home main h1, .sn-home main h2, .sn-home main h3, .sn-home main h4, .sn-home main h5, .sn-home main p, .sn-home main ul, .sn-home main ol { margin: 0; }
.sn-home .fa { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; }
@font-face { font-family: "FontAwesome"; src: url("fonts/fontawesome-webfont.woff2") format("woff2"), url("fonts/fontawesome-webfont.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; }

/* hero (deep blue) */
.sn-hero { background: var(--sn-deep); color: #fff; position: relative; overflow: hidden; }
.sn-hero::after { content: ""; position: absolute; right: -10%; top: -35%; width: 62%; aspect-ratio: 1; border-radius: 50%; background: var(--sn-deep2); }
.sn-hero .sn-wrap { display: grid; gap: 34px; padding-block: 40px 52px; align-items: center; position: relative; z-index: 1; }
.sn-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; padding: 6px 13px; }
.sn-eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: var(--sn-accent); display: inline-block; }
.sn-hero h1 { margin: 16px 0 14px !important; font-size: clamp(2rem, 1.1rem + 4.2vw, 3.7rem); line-height: 1.08; letter-spacing: -.03em; font-weight: 800; text-wrap: balance; color: #fff; }
.sn-lead p { font-size: 1.1rem; color: #c9d6fb; max-width: 34em; margin-bottom: 26px !important; }
.sn-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.sn-hero .sn-btn-primary { background: #fff; color: var(--sn-deep); box-shadow: 0 8px 22px rgba(0, 0, 0, .25); }
.sn-hero .sn-btn-primary:hover { background: var(--sn-soft2); color: var(--sn-deep); }
.sn-hero .sn-btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
.sn-hero .sn-btn-ghost:hover { border-color: #fff; color: #fff; }
.sn-points { list-style: none; padding: 0; margin: 26px 0 0 !important; display: flex; flex-wrap: wrap; gap: 10px 22px; font-weight: 600; font-size: 15px; }
.sn-points li { display: flex; align-items: center; gap: 8px; }
.sn-points svg { color: #ffb15c; }
.sn-vis { position: relative; min-height: 420px; display: grid; place-items: center; }
.sn-vis::before { content: ""; position: absolute; width: min(400px, 86%); aspect-ratio: 1; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.sn-phone { position: relative; width: 262px; background: #fff; color: var(--sn-ink); border: 9px solid #061447; border-radius: 38px; padding: 14px 12px 18px; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); z-index: 1; }
.sn-phone .sn-pbar { display: flex; align-items: center; gap: 8px; padding: 2px 4px 12px; border-bottom: 1px solid var(--sn-line); font-weight: 700; font-size: 13px; }
.sn-phone .sn-pbar img { width: 70px; height: auto; display: block; }
.sn-msgs { display: grid; gap: 10px; padding-top: 12px; font-size: 12.5px; line-height: 1.45; }
.sn-m { max-width: 88%; padding: 9px 12px; border-radius: 14px; }
.sn-m small { display: block; font-size: 10.5px; opacity: .65; margin-top: 3px; }
.sn-m.sms { background: #eef1f7; border-bottom-left-radius: 4px; }
.sn-m.wa { background: #dcf7e3; border-bottom-left-radius: 4px; }
.sn-m.rcs { background: #fff; border: 1px solid var(--sn-line); padding: 0; overflow: hidden; width: 100%; max-width: 100%; }
.sn-m.rcs .img { height: 64px; background: var(--sn-brand); display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 15px; }
.sn-m.rcs .b { padding: 9px 11px; }
.sn-m.rcs .go { display: block; margin-top: 8px; text-align: center; background: var(--sn-soft2); color: var(--sn-brand-dark); font-weight: 700; border-radius: 8px; padding: 7px; }
.sn-float { position: absolute; z-index: 2; background: #fff; color: var(--sn-ink); border-radius: 14px; padding: 10px 13px; font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 9px; box-shadow: 0 14px 30px rgba(0, 0, 0, .22); }
.sn-float .d { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; color: #fff; flex: none; }
.sn-float.f1 { left: 2%; top: 16%; } .sn-float.f2 { right: 0; top: 46%; } .sn-float.f3 { left: 6%; bottom: 8%; }
.f1 .d { background: var(--sn-brand); } .f2 .d { background: var(--sn-wa); } .f3 .d { background: var(--sn-accent); }
@media (min-width: 900px) { .sn-hero .sn-wrap { grid-template-columns: 1.08fr .92fr; padding-block: 64px 76px; } }
@media (max-width: 600px) { .sn-float { display: none; } .sn-vis { min-height: 380px; } .sn-hero .sn-btn { width: 100%; } }

/* sections */
.sn-sec { padding-block: 64px; }
.sn-alt { background: var(--sn-soft); }
.sn-kicker { font-size: 13px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--sn-brand); margin: 0 0 10px !important; }
.sn-intro { margin-bottom: 34px; max-width: 46em; }
.sn-intro h2, .sn-h2 { font-size: clamp(1.65rem, 1rem + 2.2vw, 2.6rem); line-height: 1.15; letter-spacing: -.025em; font-weight: 800; text-wrap: balance; color: var(--sn-ink); margin: 0 0 12px !important; }
.sn-intro p { color: var(--sn-muted); font-size: 1.05rem; }
.sn-strip { border-block: 1px solid var(--sn-line); background: #fff; }
.sn-strip .sn-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 28px; padding-block: 20px; color: var(--sn-muted); font-weight: 700; font-size: 14.5px; }
.sn-strip span { display: inline-flex; align-items: center; gap: 8px; color: var(--sn-ink); }
.sn-strip svg { color: var(--sn-brand); }

/* cards: markup comes from the content editor (media / oval / media-body), styled here */
.sn-cards { display: grid; gap: 18px; grid-template-columns: 1fr; }
.sn-cards > div { min-width: 0; }
.sn-cards .media { position: relative; height: 100%; background: #fff; border: 1px solid var(--sn-line); border-radius: 18px; padding: 24px; display: flex; flex-direction: column; gap: 14px; transition: border-color .2s, box-shadow .2s; color: var(--sn-muted); font-size: 15px; }
.sn-cards .media:hover { border-color: #b9caf5; box-shadow: 0 16px 36px rgba(31, 91, 255, .1); }
.sn-cards .oval { width: 46px; height: 46px; border-radius: 13px; background: var(--sn-soft2); color: var(--sn-brand); display: grid; place-items: center; font-size: 22px; margin: 0 !important; }
.sn-cards .media-body { display: flex; flex-direction: column; gap: 8px; }
.sn-cards h5 { font-size: 1.15rem; line-height: 1.3; letter-spacing: -.01em; color: var(--sn-ink); font-weight: 700; margin: 0 !important; }
.sn-cards h5 a::after { content: ""; position: absolute; inset: 0; border-radius: 18px; }
.sn-cards h5 a:hover { color: var(--sn-brand); }
.sn-alt .sn-cards .media { background: #fff; }
@media (min-width: 620px) { .sn-cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .sn-cards.c3 { grid-template-columns: repeat(3, 1fr); } .sn-cards.c4 { grid-template-columns: repeat(4, 1fr); } }
/* steps: same card markup, numbered instead of iconed */
.sn-steps { counter-reset: st; }
.sn-steps .oval { display: none; }
.sn-steps .media::before { counter-increment: st; content: counter(st); display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--sn-brand); color: #fff; font-weight: 800; }
.sn-steps h5 a::after { display: none; }

/* facts */
.sn-facts { background: var(--sn-ink); color: #fff; }
.sn-facts .sn-wrap { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding-block: 44px; text-align: center; }
.sn-facts b { display: block; font-size: clamp(1.8rem, 1rem + 3vw, 3rem); line-height: 1.1; letter-spacing: -.03em; font-weight: 800; }
.sn-facts span { color: #a9b8e6; font-size: 14.5px; font-weight: 600; }

/* sector chips (checklist markup) */
.sn-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; }
.sn-chips li { background: #fff; border: 1px solid var(--sn-line); border-radius: 999px; padding: 10px 17px; font-weight: 700; font-size: 15px; }
.sn-chips li i { display: none; }
.sn-chips li p { margin: 0 !important; }

/* split layout (intro left, content right) */
.sn-split { display: grid; gap: 30px; align-items: start; }
@media (min-width: 900px) { .sn-split { grid-template-columns: .85fr 1.15fr; gap: 56px; } .sn-split .sn-intro { position: sticky; top: 96px; margin-bottom: 0; } }

/* FAQ (accordion markup from the content editor) */
.sn-faq .accordion { display: grid; gap: 10px; }
.sn-faq .card { background: #fff; border: 1px solid var(--sn-line); border-radius: 14px; padding: 0 20px; }
.sn-faq .card-header { margin: 0; padding: 0; background: none; border: 0; }
.sn-faq .card-header h2 { margin: 0 !important; font-size: 1rem; }
.sn-faq button { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; font: 700 16px/1.4 var(--sn-font); color: var(--sn-ink); padding: 17px 0; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.sn-faq button p { margin: 0 !important; }
.sn-faq button .fa { color: var(--sn-brand); font-size: 18px; flex: none; }
.sn-faq .collapse { display: none; }
.sn-faq .collapse.show { display: block; }
.sn-faq .card-body { padding: 0 0 18px; color: var(--sn-muted); font-size: 15.5px; }
.sn-faq .card-body p { margin: 0 0 8px !important; }

/* CTA band */
.sn-band { background: var(--sn-brand); color: #fff; border-radius: 24px; padding: 38px 26px; display: grid; gap: 20px; align-items: center; }
.sn-band h2 { font-size: clamp(1.55rem, 1rem + 2vw, 2.4rem); line-height: 1.15; letter-spacing: -.02em; font-weight: 800; color: #fff; margin: 0 0 8px !important; }
.sn-band p { color: #d6e1ff; margin: 0; }
.sn-band .sn-btn-primary { background: #fff; color: var(--sn-brand-dark); box-shadow: none; }
.sn-band .sn-btn-primary:hover { background: var(--sn-soft2); color: var(--sn-brand-dark); }
.sn-band .sn-btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.sn-band .sn-btn-ghost:hover { border-color: #fff; color: #fff; }
@media (min-width: 860px) { .sn-band { grid-template-columns: 1.3fr 1fr; padding: 52px; } }
@media (max-width: 600px) { .sn-sec { padding-block: 46px; } .sn-band .sn-btn { width: 100%; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* icon codes (FontAwesome 4 font already on the server) for the icons the content editor offers */
.sn-home .fa-building:before{content:"\f1ad"}
.sn-home .fa-bank:before{content:"\f19c"}
.sn-home .fa-book:before{content:"\f02d"}
.sn-home .fa-hotel:before{content:"\f236"}
.sn-home .fa-cogs:before{content:"\f085"}
.sn-home .fa-lightbulb-o:before{content:"\f0eb"}
.sn-home .fa-globe:before{content:"\f0ac"}
.sn-home .fa-check-square-o:before{content:"\f046"}
.sn-home .fa-user:before{content:"\f007"}
.sn-home .fa-users:before{content:"\f0c0"}
.sn-home .fa-comment:before{content:"\f075"}
.sn-home .fa-envelope:before{content:"\f0e0"}
.sn-home .fa-phone:before{content:"\f095"}
.sn-home .fa-whatsapp:before{content:"\f232"}
.sn-home .fa-bullhorn:before{content:"\f0a1"}
.sn-home .fa-line-chart:before{content:"\f201"}
.sn-home .fa-bar-chart:before{content:"\f080"}
.sn-home .fa-shopping-cart:before{content:"\f07a"}
.sn-home .fa-heartbeat:before{content:"\f21e"}
.sn-home .fa-graduation-cap:before{content:"\f19d"}
.sn-home .fa-car:before{content:"\f1b9"}
.sn-home .fa-plane:before{content:"\f072"}
.sn-home .fa-home:before{content:"\f015"}
.sn-home .fa-bus:before{content:"\f207"}
.sn-home .fa-television:before{content:"\f26c"}
.sn-home .fa-newspaper-o:before{content:"\f1ea"}
.sn-home .fa-cloud:before{content:"\f0c2"}
.sn-home .fa-wrench:before{content:"\f0ad"}
.sn-home .fa-google:before{content:"\f1a0"}
.sn-home .fa-facebook:before{content:"\f09a"}
.sn-home .fa-star:before{content:"\f005"}
.sn-home .fa-rocket:before{content:"\f135"}
.sn-home .fa-shield:before{content:"\f132"}
.sn-home .fa-lock:before{content:"\f023"}
.sn-home .fa-clock-o:before{content:"\f017"}
.sn-home .fa-bell:before{content:"\f0f3"}
.sn-home .fa-money:before{content:"\f0d6"}
.sn-home .fa-check-circle:before{content:"\f058"}
.sn-home .fa-trophy:before{content:"\f091"}
.sn-home .fa-mobile:before{content:"\f10b"}
.sn-home .fa-sitemap:before{content:"\f0e8"}
.sn-home .fa-database:before{content:"\f1c0"}
.sn-home .fa-support:before{content:"\f1cd"}
.sn-home .fa-check:before{content:"\f00c"}
.sn-home .fa-chevron-down:before{content:"\f078"}
.sn-home .fa-caret-up:before{content:"\f0d8"}
.sn-home .fa-caret-down:before{content:"\f0d7"}
.sn-home .fa-angle-right:before{content:"\f105"}
.sn-home .fa-arrow-right:before{content:"\f061"}
.sn-home .fa-comments:before{content:"\f086"}
.sn-home .fa-map-marker:before{content:"\f041"}

/* ---------- home: client logos, testimonials ---------- */
.sn-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px 36px; }
.sn-logos img { height: 52px; width: auto; max-width: 170px; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.sn-logos img:hover { filter: none; opacity: 1; }
.sn-testi h2 { font-size: clamp(1.65rem, 1rem + 2.2vw, 2.6rem); line-height: 1.15; letter-spacing: -.025em; font-weight: 800; color: var(--sn-ink); margin: 0 0 28px; text-align: left; }
.sn-testi .container { padding: 0; max-width: none; }
.sn-testi .owl-carousel { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; -webkit-overflow-scrolling: touch; }
.sn-testi .owl-carousel > div { flex: 0 0 min(86%, 380px); scroll-snap-align: start; display: flex; }
.sn-testi .card { background: #fff; border: 1px solid var(--sn-line); border-radius: 18px; padding: 22px; width: 100%; text-align: left !important; display: flex; flex-direction: column; gap: 12px; }
.sn-testi .title-designation { display: flex; align-items: center; gap: 12px; }
.sn-testi .card-img-top { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: none; }
.sn-testi .title-designation h5 { margin: 0; font-size: 1rem; line-height: 1.3; font-weight: 700; color: var(--sn-ink); }
.sn-testi .title-designation span { display: block; font-weight: 500; font-size: 13px; color: var(--sn-muted); }
.sn-testi .card-body h5 { margin: 0 0 6px; font-size: .95rem; color: var(--sn-brand-dark); font-weight: 700; }
.sn-testi .card-text { margin: 0; color: var(--sn-muted); font-size: 15px; }
.sn-mega h4.sn-sep { margin-top: 10px; }

/* ================= inner pages: new look over the existing page markup (body.sn-page) =================
   The page content and its editor regions are unchanged; these rules restyle the older class names. */
body.sn-page { margin: 0; background: #fff; color: var(--sn-ink); font-family: var(--sn-font); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
.sn-page :where(h1, h2, h3, h4, h5, h6, p, li, a, span, div, button, input, select, textarea, label, small, strong, em, td, th, b):not(.fa) { font-family: var(--sn-font) !important; }
.sn-page main { display: block; }
.sn-page main a { text-decoration: none; }
.sn-page main img { max-width: 100%; height: auto; }

/* page banner */
.sn-page .about-banner { background: var(--sn-deep) !important; background-image: none !important; position: relative; overflow: hidden; padding: 52px 0 56px !important; margin: 0 !important; min-height: 0 !important; height: auto !important; text-align: center; }
.sn-page .about-banner::before { display: none !important; }
.sn-page .about-banner::after { content: ""; position: absolute; right: -8%; top: -80%; width: 46%; aspect-ratio: 1; border-radius: 50%; background: var(--sn-deep2); pointer-events: none; }
.sn-page .about-banner .container { position: relative; z-index: 1; }
.sn-page .about-banner h1, .sn-page .about-banner h2 { color: #fff !important; font-size: clamp(1.9rem, 1rem + 3.6vw, 3.1rem) !important; line-height: 1.1 !important; letter-spacing: -.03em; font-weight: 800 !important; text-transform: none !important; margin: 0 !important; text-wrap: balance; }
.sn-page .about-banner .circle-animation { display: none !important; }

/* section rhythm */
.sn-page main > .container-fluid:not(.about-banner), .sn-page main > .choose-best { padding: 44px 0 !important; margin: 0 !important; background: #fff; }
.sn-page main > .bg-gray, .sn-page main > .container-fluid.bg-gray { background: var(--sn-soft) !important; }
.sn-page .container { width: 100%; max-width: 1160px; padding-left: 16px; padding-right: 16px; }
.sn-page main h2 { font-size: clamp(1.5rem, 1rem + 1.9vw, 2.3rem) !important; line-height: 1.2 !important; letter-spacing: -.02em; font-weight: 800 !important; color: var(--sn-ink) !important; text-transform: none !important; margin: 0 0 14px !important; text-align: left; text-wrap: balance; }
.sn-page main h3 { font-size: 1.3rem; line-height: 1.3; font-weight: 700; color: var(--sn-ink); text-transform: none; }
.sn-page main h4, .sn-page main h5 { color: var(--sn-ink); font-weight: 700; line-height: 1.35; text-transform: none; }
.sn-page main p { color: #3a4766; font-size: 1.03rem; line-height: 1.7; }
.sn-page main .section-tittle { margin-bottom: 22px; }
.sn-page main .text-center h2, .sn-page main h2.text-center, .sn-page main .section-tittle h2 { text-align: left !important; }
.sn-page main strong { color: var(--sn-ink); }

/* the intro box under the banner */
.sn-page .descriptin-sms { background: var(--sn-soft) !important; background-image: none !important; border: 1px solid var(--sn-line); border-radius: 20px; padding: 28px !important; margin-bottom: 36px !important; box-shadow: none !important; text-align: left !important; }
.sn-page .descriptin-sms *, .sn-page .descriptin-sms h2, .sn-page .descriptin-sms p { color: var(--sn-ink) !important; font-style: normal !important; text-align: left !important; text-transform: none !important; text-shadow: none !important; }
.sn-page .descriptin-sms p { color: #3a4766 !important; font-size: 1.05rem; }
.sn-page .bg-gray .descriptin-sms { background: #fff !important; }

/* checklists: rows with a blue tick */
.sn-page main li:has(> i.fa) { display: flex; align-items: flex-start; gap: 12px; list-style: none; padding: 14px 16px; margin: 0 0 10px; background: #fff; border: 1px solid var(--sn-line); border-radius: 14px; }
.sn-page main li:has(> i.fa) > i.fa { color: var(--sn-brand); font-size: 20px; line-height: 1.5; margin: 0; flex: none; }
.sn-page main li:has(> i.fa) > p { margin: 0; font-size: 1rem; }
.sn-page main ul:has(> li > i.fa) { padding: 0; margin: 0; }
.sn-page .bg-gray li:has(> i.fa) { background: #fff; }

/* icon tiles and cards */
.sn-page main .card { border: 1px solid var(--sn-line); border-radius: 18px; background: #fff; box-shadow: none; }
.sn-page main .card-body { color: #3a4766; }
.sn-page main .media { background: #fff; border: 1px solid var(--sn-line); border-radius: 18px; padding: 22px; align-items: flex-start; height: 100%; box-shadow: none; }
.sn-page main .oval:has(> .fa) { width: 46px; height: 46px; min-width: 46px; border-radius: 13px !important; background: var(--sn-soft2) !important; background-image: none !important; color: var(--sn-brand); display: grid; place-items: center; font-size: 22px; box-shadow: none !important; border: 0 !important; }
.sn-page main .oval .fa { color: var(--sn-brand) !important; font-size: 22px; }
.sn-page main .media-body h5 { margin: 0 0 6px; font-size: 1.1rem; }
.sn-page main .media-body a { color: var(--sn-ink); }
.sn-page main .media-body a:hover { color: var(--sn-brand); }

/* buttons that used to be gradient pills inside content sections */
.sn-page main .gtco-feature a:not(.sn-btn):not([class*="nav"]):not(.media-body a):not(.sn-table a):not(.sn-glance a), .sn-page main .gtco-features a:not(.sn-btn):not(.media-body a):not(.sn-table a), .sn-page main a.btn-primary, .sn-page main .button, .sn-page main button[type="submit"] { background: var(--sn-brand) !important; background-image: none !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 13px 24px !important; font-size: 16px !important; font-weight: 700 !important; text-transform: none !important; display: inline-flex; align-items: center; gap: 8px; line-height: 1.1; cursor: pointer; text-decoration: none !important; }
.sn-page main .gtco-feature a:not(.sn-btn):not(.media-body a):not(.sn-table a):hover, .sn-page main .gtco-features a:not(.sn-btn):not(.media-body a):not(.sn-table a):hover, .sn-page main .button:hover, .sn-page main button[type="submit"]:hover { background: var(--sn-brand-dark) !important; }
.sn-page main .gtco-feature a .fa, .sn-page main .gtco-features a .fa { background: none !important; color: #fff !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; font-size: 1.1em !important; }
.sn-page main li a:not([class]), .sn-page main p a:not([class]), .sn-page main .card-body a:not([class]) { background: none !important; background-image: none !important; color: var(--sn-brand) !important; padding: 0 !important; border-radius: 0 !important; display: inline !important; font-size: inherit !important; font-weight: 600 !important; text-transform: none !important; text-decoration: underline !important; text-underline-offset: 2px; }

/* forms */
.sn-page main input:not([type="checkbox"]):not([type="radio"]), .sn-page main select:not(#country), .sn-page main textarea { font-size: 16px !important; border: 1.5px solid #cdd8f2 !important; border-radius: 12px !important; padding: 12px 14px !important; background: #fff; color: var(--sn-ink); box-shadow: none; height: auto; width: 100%; }
.sn-page main input:focus, .sn-page main select:focus, .sn-page main textarea:focus { outline: 3px solid #bcd0ff; border-color: var(--sn-brand) !important; }
.sn-page main label { font-weight: 600; color: var(--sn-ink); }

/* FAQ accordion: same look as the home page */
.sn-page main .accordion { display: grid; gap: 10px; }
.sn-page main .accordion > .card { padding: 0 20px; border-radius: 14px; }
.sn-page main .accordion .card-header { margin: 0; padding: 0; background: none; border: 0; }
.sn-page main .accordion .card-header h2 { margin: 0 !important; font-size: 1rem !important; }
.sn-page main .accordion button { width: 100%; text-align: left; background: none !important; border: 0 !important; box-shadow: none !important; cursor: pointer; font-size: 16px !important; font-weight: 700 !important; line-height: 1.4; color: var(--sn-ink) !important; padding: 17px 0 !important; display: flex; justify-content: space-between; align-items: center; gap: 14px; text-decoration: none !important; border-radius: 0 !important; }
.sn-page main .accordion button p { margin: 0 !important; color: var(--sn-ink) !important; font-size: 1rem; font-weight: 700; }
.sn-page main .accordion button .fa { color: var(--sn-brand); font-size: 18px; flex: none; }
.sn-page main .accordion .collapse:not(.show) { display: none; }
.sn-page main .accordion .card-body { padding: 0 0 18px; }
.sn-page main .accordion .card-body p { margin: 0 0 8px; }

/* testimonials: the same scroll-snap row on every page */
.sn-page .gtco-testimonials { background: var(--sn-soft) !important; padding: 44px 0 !important; margin: 0 !important; }
.sn-page .gtco-testimonials h2 { text-align: left !important; max-width: 1160px; margin: 0 auto 26px !important; padding: 0 16px; }
.sn-page .gtco-testimonials .container { padding: 0 16px; }
.sn-page .gtco-testimonials .owl-carousel { display: flex !important; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; -webkit-overflow-scrolling: touch; }
.sn-page .gtco-testimonials .owl-carousel > div { flex: 0 0 min(86%, 380px); scroll-snap-align: start; display: flex; }
.sn-page .gtco-testimonials .card { width: 100%; text-align: left !important; padding: 22px; display: flex; flex-direction: column; align-items: stretch !important; gap: 12px; }
.sn-page .gtco-testimonials .card::before, .sn-page .gtco-testimonials .card::after { display: none !important; }
.sn-page .gtco-testimonials .title-designation { display: flex; align-items: center; gap: 12px; width: 100%; }
.sn-page .gtco-testimonials .title-designation h5 { flex: 1; min-width: 0; text-align: left !important; }
.sn-page .gtco-testimonials .card-img-top { width: 52px !important; height: 52px !important; border-radius: 50%; object-fit: cover; flex: none; }
.sn-page .gtco-testimonials .title-designation h5 { margin: 0; font-size: 1rem; }
.sn-page .gtco-testimonials .title-designation span { display: block; font-weight: 500; font-size: 13px; color: var(--sn-muted); }
.sn-page .gtco-testimonials .card-body { padding: 0; }
.sn-page .gtco-testimonials .card-body h5 { margin: 0 0 6px; font-size: .95rem; color: var(--sn-brand-dark); }
.sn-page .gtco-testimonials .card-text { margin: 0; font-size: 15px; color: #3a4766; }

/* call-to-action band at the foot of every page */
.sn-page .sn-sec.sn-endcta { padding: 56px 0; }
@media (max-width: 600px) { .sn-page main > .container-fluid:not(.about-banner), .sn-page main > .choose-best { padding: 30px 0 !important; } .sn-page .about-banner { padding: 40px 0 44px !important; } }
.sn-page .gtco-testimonials *::before, .sn-page .gtco-testimonials *::after, .sn-page .gtco-testimonials::before, .sn-page .gtco-testimonials::after { display: none !important; content: none !important; }
.sn-page .gtco-testimonials .owl-carousel { overflow-y: hidden; scrollbar-width: thin; scrollbar-color: #c4d2f4 transparent; }
.sn-page .sn-band h2 { color: #fff !important; margin: 0 0 8px !important; }
.sn-page .sn-band p { color: #d6e1ff !important; }
.sn-page .sn-band a { text-decoration: none !important; }
.sn-page .sn-band .sn-btn-primary { color: var(--sn-brand-dark) !important; background: #fff !important; padding: 15px 24px !important; }
.sn-page .sn-band .sn-btn-ghost { color: #fff !important; background: transparent !important; padding: 15px 24px !important; border: 1.5px solid rgba(255, 255, 255, .55) !important; }
/* pages without a banner (About, policies) start with a plain page title */
.sn-page main h1 { font-size: clamp(2rem, 1rem + 3.6vw, 3.1rem) !important; line-height: 1.1 !important; letter-spacing: -.03em; font-weight: 800 !important; color: var(--sn-ink) !important; background: none !important; background-image: none !important; -webkit-text-fill-color: currentColor !important; text-transform: none !important; margin: 0 0 16px !important; text-align: left !important; text-wrap: balance; }
.sn-page main h1::before, .sn-page main h1::after { display: none !important; }
.sn-page .about-banner h1 { color: #fff !important; -webkit-text-fill-color: #fff !important; text-align: center !important; margin: 0 !important; }
.sn-page main .legal-content { padding-top: 44px !important; }
.sn-page main .legal-content h2 { margin-top: 28px !important; }
.sn-page main .legal-content ul, .sn-page main .legal-content ol { padding-left: 22px; }
.sn-page main .legal-content li { margin-bottom: 6px; color: #3a4766; }

/* About page: the journey / mission blocks use a title with a picture instead of an icon tile */
.sn-page main .oval:not(:has(> .fa)) { width: auto !important; min-width: 0; height: auto; border-radius: 0 !important; background: none !important; display: flex; flex-wrap: nowrap; align-items: center; gap: 14px; padding: 0 !important; margin: 0 0 10px !important; }
.sn-page main .oval:not(:has(> .fa)) h2 { margin: 0 !important; font-size: 1.25rem !important; color: var(--sn-brand-dark) !important; }
.sn-page main .oval:not(:has(> .fa)) img { width: 56px; height: 56px; object-fit: contain; flex: none; }
.sn-page .ourjurney .media, .sn-page .ourmission .media { flex-direction: column; align-items: flex-start; gap: 6px; padding: 24px !important; box-shadow: none !important; }
.sn-page .ourjurney .media-body, .sn-page .ourmission .media-body { padding: 0 !important; }
@media (min-width: 900px) {
  .sn-page .ourjurney .media, .sn-page .ourmission .media { flex-direction: row; align-items: center; gap: 36px; }
  .sn-page .ourjurney .oval:not(:has(> .fa)), .sn-page .ourmission .oval:not(:has(> .fa)) { flex: 0 0 300px; margin: 0 !important; }
}

/* contact page: the phone field keeps room for the flag and dial-code picker; the blue details panel keeps light text */
.sn-page main input#phone { padding-left: 116px !important; }
.sn-page main select#country { width: 65px !important; padding: 0 !important; border: 0 !important; background: transparent !important; height: 33px !important; }
.sn-page .contact-details > h2, .sn-page .contact-details > p, .sn-page .contact-details > h6, .sn-page .contact-details > h6 span { color: #fff !important; }
.sn-page .contact-details > p a { color: #fff !important; }
.sn-page main .title-pge { font-size: 1.1rem !important; color: var(--sn-brand) !important; margin: 0 0 8px !important; }

/* sector chips: tick and text on one line */
.sn-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; }
.sn-home .sn-chips li .fa { display: inline-block; color: var(--sn-brand); font-size: 15px; }
.sn-chips li p { margin: 0 !important; }

/* client logos: even white tiles */
.sn-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; align-items: stretch; justify-content: center; }
.sn-logos img { width: 100%; height: 84px; max-width: none; object-fit: contain; padding: 14px 20px; background: #fff; border: 1px solid var(--sn-line); border-radius: 16px; filter: none; opacity: 1; transition: border-color .2s, box-shadow .2s; }
.sn-logos img:hover { border-color: #b9caf5; box-shadow: 0 12px 28px rgba(31, 91, 255, .08); }
@media (max-width: 520px) { .sn-logos { grid-template-columns: repeat(2, 1fr); } .sn-logos img { height: 72px; } }

/* 404 page */
.sn-nf { text-align: center; padding-block: 72px 80px; }
.sn-nf-code { font-size: clamp(5rem, 3rem + 14vw, 11rem); line-height: 1; font-weight: 800; letter-spacing: -.05em; color: var(--sn-brand); margin: 0 0 8px !important; }
.sn-home .sn-nf h1 { font-size: clamp(1.7rem, 1rem + 2.6vw, 2.6rem); line-height: 1.15; letter-spacing: -.02em; font-weight: 800; color: var(--sn-ink); margin: 0 0 12px; }
.sn-nf-lead { color: var(--sn-muted); max-width: 34em; margin: 0 auto 26px !important; font-size: 1.08rem; }
.sn-nf-cta { justify-content: center; margin-bottom: 44px; }
.sn-nf-cta .sn-btn-ghost { background: #fff; }
.sn-home .sn-nf-sub { font-size: .95rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sn-muted); font-weight: 700; margin: 0 0 14px; }
.sn-nf-links { list-style: none; padding: 0; margin: 0 auto; max-width: 760px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.sn-nf-links a { display: inline-block; padding: 10px 17px; border: 1px solid var(--sn-line); border-radius: 999px; font-weight: 600; color: var(--sn-ink); background: #fff; }
.sn-nf-links a:hover { border-color: var(--sn-brand); color: var(--sn-brand); }

/* breadcrumb trail under the header */
.sn-crumbs { background: #fff; border-bottom: 1px solid var(--sn-line); font-family: var(--sn-font); font-size: 14px; line-height: 1.4; }
.sn-crumbs ol { list-style: none; margin: 0; padding: 10px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; color: var(--sn-muted); }
.sn-crumbs li { display: inline-flex; align-items: center; min-width: 0; }
.sn-crumbs li + li::before { content: "\203A"; margin: 0 8px; color: #9aa6c3; }
.sn-crumbs a { color: var(--sn-brand-dark); text-decoration: none; font-weight: 600; }
.sn-crumbs a:hover { text-decoration: underline; }
.sn-crumbs span[aria-current] { color: var(--sn-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: min(60vw, 520px); display: inline-block; }
/* logo tiles: fixed-width tiles that wrap and centre (no lonely last tile) */
.sn-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.sn-logos img { flex: 0 0 144px; width: 144px; height: 76px; }
@media (max-width: 520px) { .sn-logos img { flex-basis: calc(50% - 7px); width: calc(50% - 7px); } }
/* hidden trap field for spam bots */
.sn-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }

/* "at a glance" summary on the service type pages */
.sn-page .sn-glance { background: #fff; border: 1px solid var(--sn-line); border-radius: 18px; padding: 22px 24px; }
.sn-page .sn-glance h2 { font-size: 1.25rem !important; margin: 0 0 12px !important; }
.sn-page .sn-glance ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sn-page .sn-glance li { padding: 0; margin: 0; border: 0; background: none; display: block; color: #3a4766; }
.sn-page .sn-glance strong { color: var(--sn-ink); }

/* comparison table */
.sn-table-wrap { overflow-x: auto; margin-top: 26px; border: 1px solid var(--sn-line); border-radius: 16px; background: #fff; }
.sn-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 560px; }
.sn-table caption { text-align: left; padding: 14px 18px 4px; font-weight: 700; color: var(--sn-ink); caption-side: top; }
.sn-table th, .sn-table td { padding: 12px 18px; text-align: left; border-top: 1px solid var(--sn-line); vertical-align: top; color: #3a4766; }
.sn-table thead th { background: var(--sn-soft); color: var(--sn-ink); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; border-top: 0; }
.sn-table tbody th { color: var(--sn-ink); font-weight: 700; }
.sn-page .sn-table a { color: var(--sn-brand) !important; font-weight: 700 !important; text-decoration: none !important; }

/* links inside cards and tables are ordinary links */
.sn-page main .media-body h5 a { color: var(--sn-ink) !important; text-decoration: none !important; font-weight: 700 !important; }
.sn-page main .media-body h5 a:hover { color: var(--sn-brand) !important; }
.sn-page main .media-body a, .sn-page main .sn-table a, .sn-page main .sn-glance a { background: none !important; background-image: none !important; padding: 0 !important; border-radius: 0 !important; text-transform: none !important; font-size: inherit !important; display: inline !important; box-shadow: none !important; line-height: inherit !important; }
.sn-page main .media-body h5 a { font-size: 1.1rem !important; }

/* the old per-page "contact" boxes: the shared call-to-action band at the foot of every page replaces them */
.sn-page main .cta { display: none !important; }
.sn-page main > .container-fluid:has(> .container > .cta:only-child) { display: none !important; }
/* FAQ block: no extra box padding on top of the section padding */
.sn-page main .faq-class { padding: 0 !important; margin: 0 !important; background: transparent !important; }
.sn-page main .faq-class .usecase, .sn-page main .faq-class > .mb-3 { margin-bottom: 14px !important; }
/* FAQ accordion: same clean look as the home page (overrides the older blue boxes) */
.sn-page main .accordion .card { margin-bottom: 0 !important; border-radius: 14px !important; overflow: hidden; }
.sn-page main .accordion .card-header { background: none !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important; }
.sn-page main .accordion .card-header h2 button.btn-link { color: var(--sn-ink) !important; font-size: 16px !important; font-weight: 700 !important; padding: 17px 0 !important; }
.sn-page main .accordion .card-header h2 button.btn-link i.fa { background: none !important; width: auto !important; height: auto !important; line-height: 1 !important; border-radius: 0 !important; color: var(--sn-brand) !important; font-size: 18px !important; }
.sn-page main .accordion .card .card-body { background: none !important; border: 0 !important; padding: 0 0 18px !important; }
.sn-page main .accordion .card-body p { color: #3a4766 !important; font-size: 1rem; }
.sn-page main .faq-class { box-shadow: none !important; }
/* cards do not shrink or jump on hover */
.sn-page main .media:hover, .sn-page .gtco-features-list .media:hover { transform: none !important; border-left: 1px solid #b9caf5 !important; box-shadow: 0 12px 28px rgba(31, 91, 255, .08); }

/* ================= inner pages v2 (body.sn-inner): page hero, jump links, reading blocks ================= */
.sn-sec { padding-block: 56px; }
.sn-intro { margin-bottom: 28px; }
@media (max-width: 600px) { .sn-sec { padding-block: 40px; } .sn-intro { margin-bottom: 22px; } }
.sn-inner section[id] { scroll-margin-top: 150px; }

.sn-inner .sn-phero .sn-wrap { padding-block: 40px 46px; gap: 30px; }
.sn-inner .sn-phero h1 { margin: 14px 0 12px !important; font-size: clamp(1.95rem, 1.15rem + 3.1vw, 3.2rem); line-height: 1.1; }
.sn-inner .sn-phero .sn-lead p { font-size: 1.1rem; margin-bottom: 14px !important; }
.sn-inner .sn-phero .sn-lead p:last-child { margin-bottom: 24px !important; }
.sn-inner .sn-phero .sn-points { margin-top: 22px !important; }
@media (min-width: 900px) { .sn-inner .sn-phero .sn-wrap { grid-template-columns: 1.2fr .8fr; padding-block: 54px 60px; gap: 48px; } }
.sn-gcard { position: relative; z-index: 1; background: #fff; color: var(--sn-ink); border-radius: 22px; padding: 22px 24px 8px; box-shadow: 0 30px 60px rgba(0, 0, 0, .28); }
.sn-gcard h2 { margin: 0 0 6px !important; font-size: 12.5px !important; letter-spacing: .09em; text-transform: uppercase; color: var(--sn-brand) !important; font-weight: 800; line-height: 1.3; }
.sn-gcard ul { list-style: none; padding: 0; margin: 0; }
.sn-gcard li { display: grid; gap: 2px; padding: 13px 0; border-top: 1px solid var(--sn-line); font-size: 15.5px; line-height: 1.45; color: var(--sn-ink); font-weight: 600; }
.sn-gcard li:first-child { border-top: 0; }
.sn-gcard li strong { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--sn-muted); font-weight: 700; }

.sn-toc { background: #fff; border-bottom: 1px solid var(--sn-line); }
.sn-toc .sn-wrap { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding-block: 11px; white-space: nowrap; scrollbar-width: none; }
.sn-toc .sn-wrap::-webkit-scrollbar { display: none; }
.sn-toc b { font-size: 12px; letter-spacing: .09em; text-transform: uppercase; color: var(--sn-muted); font-weight: 800; margin-right: 6px; flex: none; }
.sn-toc a { flex: none; padding: 8px 14px; border-radius: 999px; background: var(--sn-soft); color: var(--sn-ink); font-weight: 600; font-size: 14.5px; line-height: 1.2; text-decoration: none; }
.sn-toc a:hover { background: var(--sn-soft2); color: var(--sn-brand-dark); }
@media (min-width: 960px) { .sn-toc { position: sticky; top: 79px; z-index: 900; } }

.sn-home .sn-prose { font-size: 1.04rem; color: #33405f; line-height: 1.75; }
.sn-home .sn-prose p { margin: 0 0 14px; }
.sn-home .sn-prose p:last-child { margin-bottom: 0; }
.sn-home .sn-prose h3 { margin: 24px 0 8px; font-size: 1.22rem; line-height: 1.3; color: var(--sn-ink); font-weight: 800; letter-spacing: -.01em; }
.sn-home .sn-prose h3:first-child { margin-top: 0; }
.sn-home .sn-prose ul, .sn-home .sn-prose ol { margin: 0 0 14px; padding-left: 1.3em; }
.sn-home .sn-prose li { margin: 6px 0; padding-left: 4px; }
.sn-home .sn-prose a { color: var(--sn-brand-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #b9caf5; }
.sn-home .sn-prose a:hover { text-decoration-color: currentColor; }
.sn-home .sn-prose blockquote { margin: 0 0 18px; padding: 16px 20px; background: var(--sn-soft2); border-left: 4px solid var(--sn-brand); border-radius: 0 14px 14px 0; color: var(--sn-ink); font-weight: 600; }
.sn-home .sn-prose blockquote p { margin: 0; }
.sn-home .sn-prose strong { color: var(--sn-ink); }

.sn-home .sn-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px 18px; grid-template-columns: 1fr; }
@media (min-width: 800px) { .sn-home .sn-checks { grid-template-columns: 1fr 1fr; } .sn-home .sn-checks.c3 { grid-template-columns: repeat(3, 1fr); } }
.sn-home .sn-checks li { display: flex; align-items: flex-start; gap: 12px; background: #fff; border: 1px solid var(--sn-line); border-radius: 16px; padding: 16px 18px; }
.sn-home .sn-alt .sn-checks li { background: #fff; }
.sn-home .sn-checks li .fa { color: var(--sn-brand); font-size: 18px; margin-top: 3px; flex: none; }
.sn-home .sn-checks li p { margin: 0; color: var(--sn-muted); font-size: 15.5px; line-height: 1.6; }
.sn-home .sn-checks li strong { color: var(--sn-ink); display: block; font-size: 16px; margin-bottom: 2px; }

.sn-tbl { overflow-x: auto; border: 1px solid var(--sn-line); border-radius: 16px; background: #fff; -webkit-overflow-scrolling: touch; }
.sn-tbl table { width: 100%; border-collapse: collapse; min-width: 600px; font-size: 15px; line-height: 1.5; }
.sn-tbl th { background: var(--sn-soft); text-align: left; padding: 13px 16px; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--sn-muted); font-weight: 800; white-space: nowrap; }
.sn-tbl td { padding: 14px 16px; border-top: 1px solid var(--sn-line); vertical-align: top; color: var(--sn-muted); }
.sn-tbl td:first-child { font-weight: 700; color: var(--sn-ink); white-space: nowrap; }
.sn-tbl-note { margin: 10px 2px 0 !important; font-size: 13.5px; color: var(--sn-muted); }

.sn-home .sn-meta { margin: 18px 0 0; font-size: 13.5px; color: var(--sn-muted); display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.sn-home .sn-meta .sn-ico { width: 15px; height: 15px; color: var(--sn-brand); }
.sn-home .sn-meta span { display: inline-flex; align-items: center; gap: 6px; }

.sn-home .sn-cards h5 { font-size: 1.1rem; }
.sn-home .sn-cards .media-body { font-size: 15px; line-height: 1.6; }
.sn-cards.c2 { grid-template-columns: 1fr; }
@media (min-width: 720px) { .sn-cards.c2 { grid-template-columns: 1fr 1fr; } }

.sn-inner .sn-faq .card-body a { color: var(--sn-brand-dark); font-weight: 600; text-decoration: underline; }
.sn-inner .sn-faq .card-body strong { color: var(--sn-ink); }
.sn-endcta { padding-block: 0 56px; }
.sn-endcta + * { margin-top: 0; }

/* ---------- contact page ---------- */
.sn-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none; }
.sn-contact { display: grid; gap: 34px; align-items: start; }
@media (min-width: 960px) { .sn-contact { grid-template-columns: .95fr 1.05fr; gap: 56px; } }
.sn-home .sn-clist { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 14px; }
.sn-home .sn-clist li { display: flex; gap: 14px; align-items: flex-start; font-size: 15.5px; line-height: 1.5; color: var(--sn-muted); }
.sn-home .sn-clist .sn-ico { width: 40px; height: 40px; padding: 10px; border-radius: 12px; background: var(--sn-soft2); color: var(--sn-brand); flex: none; }
.sn-home .sn-clist strong { display: block; color: var(--sn-ink); font-size: 14px; letter-spacing: .02em; }
.sn-home .sn-clist a { color: var(--sn-brand-dark); font-weight: 600; }
.sn-home .sn-social { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sn-home .sn-social a { padding: 8px 14px; border-radius: 999px; background: var(--sn-soft); color: var(--sn-ink); font-weight: 600; font-size: 14px; }
.sn-home .sn-social a:hover { background: var(--sn-soft2); color: var(--sn-brand-dark); }
.sn-form { background: #fff; border: 1px solid var(--sn-line); border-radius: 22px; padding: 28px; box-shadow: 0 24px 50px rgba(13, 26, 68, .08); }
.sn-home .sn-form h2 { font-size: 1.5rem; margin: 0 0 18px; letter-spacing: -.02em; font-weight: 800; }
.sn-row { display: grid; gap: 0 14px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .sn-row { grid-template-columns: 1fr 1fr; } }
.sn-field { margin-bottom: 16px; }
.sn-field label { display: block; font-weight: 700; font-size: 14px; margin: 0 0 6px; color: var(--sn-ink); }
.sn-field input, .sn-field textarea, .sn-field select { width: 100%; font: 500 16px/1.4 var(--sn-font); color: var(--sn-ink); background: #fff; border: 1.5px solid #cdd8f2; border-radius: 12px; padding: 13px 14px; }
.sn-field textarea { resize: vertical; min-height: 120px; }
.sn-field input:focus, .sn-field textarea:focus, .sn-field select:focus { outline: 3px solid #bcd0ff; border-color: var(--sn-brand); }
.sn-phone-row { display: flex; align-items: center; gap: 8px; }
.sn-phone-row .flag-icon { flex: none; width: 30px; height: 20px; background: none; }
.sn-phone-row .flag-icon img { display: block; width: 30px; height: 20px; border-radius: 3px; object-fit: cover; }
.sn-phone-row select { flex: 0 0 120px; width: 120px; padding-inline: 10px; text-overflow: ellipsis; }
.sn-phone-row input { flex: 1; min-width: 0; }
.sn-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.55; color: var(--sn-muted); margin: 4px 0 18px; }
.sn-consent input { margin-top: 4px; flex: none; width: 18px; height: 18px; }
.sn-consent a { color: var(--sn-brand-dark); text-decoration: underline; }
.sn-form .sn-btn { width: 100%; }
.sn-form-note { margin: 12px 0 0; min-height: 1.4em; font-size: 14.5px; text-align: center; color: var(--sn-muted); }
.sn-form-note.good { color: #0f7a3d; font-weight: 600; }
.sn-form-note.bad { color: #b42318; font-weight: 600; }

/* ---------- policy pages ---------- */
.sn-inner .sn-slim .sn-wrap { display: block; padding-block: 34px 38px; }
.sn-inner .sn-slim h1 { margin: 12px 0 8px !important; font-size: clamp(1.8rem, 1.1rem + 2.6vw, 2.6rem); }
.sn-home .sn-slim .sn-updated { margin: 0; color: #c9d6fb; font-size: 14.5px; }
.sn-legaldoc { max-width: 860px; }
.sn-home .sn-legaldoc h2 { margin: 36px 0 10px; font-size: 1.45rem; line-height: 1.3; letter-spacing: -.015em; font-weight: 800; color: var(--sn-ink); }
.sn-home .sn-legaldoc h2:first-child { margin-top: 0; }
.sn-home .sn-legaldoc h3 { margin: 22px 0 8px; font-size: 1.12rem; }
.sn-home .sn-legaldoc table { border-collapse: collapse; width: 100%; margin: 0 0 18px; font-size: 15px; }
.sn-home .sn-legaldoc th, .sn-home .sn-legaldoc td { border: 1px solid var(--sn-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.sn-home .sn-legaldoc th { background: var(--sn-soft); }
.sn-home .sn-legaldoc a { word-break: break-word; }

/* tables become stacked cards on phones */
@media (max-width: 640px) {
  .sn-tbl { border: 0; background: none; overflow: visible; }
  .sn-tbl table { min-width: 0; display: block; }
  .sn-tbl thead { position: absolute; left: -9999px; }
  .sn-tbl tbody, .sn-tbl tr, .sn-tbl td { display: block; }
  .sn-tbl tr { background: #fff; border: 1px solid var(--sn-line); border-radius: 16px; padding: 6px 16px; margin-bottom: 12px; }
  .sn-tbl td { border: 0; padding: 7px 0; white-space: normal !important; font-size: 15px; }
  .sn-tbl td::before { content: attr(data-label); display: block; font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--sn-muted); font-weight: 800; margin-bottom: 1px; }
  .sn-tbl td:first-child { font-size: 1.05rem; padding-top: 12px; }
  .sn-tbl td:first-child::before, .sn-tbl td[data-label=""]::before { display: none; }
  .sn-tbl td:last-child { padding-bottom: 12px; }
}

/* compact cards on phones (icon beside the text) and readable links in tables */
@media (max-width: 619px) {
  .sn-cards { gap: 12px; }
  .sn-cards .media { flex-direction: row; align-items: flex-start; gap: 14px; padding: 18px; border-radius: 16px; }
  .sn-cards .oval { width: 42px; height: 42px; flex: none; font-size: 20px; }
  .sn-steps .media::before { flex: none; }
}
.sn-tbl a { color: var(--sn-brand-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #b9caf5; }
.sn-tbl a:hover { text-decoration-color: currentColor; }

/* ---------- highlighted feature band (industries: political campaigns) ---------- */
.sn-feature { background: linear-gradient(135deg, var(--sn-deep) 0%, var(--sn-deep2) 100%); color: #fff; position: relative; overflow: hidden; }
.sn-feature::after { content: ""; position: absolute; right: -8%; top: -40%; width: 46%; aspect-ratio: 1; border-radius: 50%; background: rgba(255, 255, 255, .05); pointer-events: none; }
.sn-feature-grid { display: grid; gap: 34px; align-items: center; position: relative; z-index: 1; }
@media (min-width: 960px) { .sn-feature-grid { grid-template-columns: 1.1fr .9fr; gap: 56px; } }
.sn-feature .sn-kicker { color: #ffb15c; }
.sn-home .sn-feature h2 { color: #fff; font-size: clamp(1.65rem, 1rem + 2.2vw, 2.5rem); line-height: 1.15; letter-spacing: -.025em; font-weight: 800; margin: 0 0 14px; text-wrap: balance; }
.sn-home .sn-feature-text p { color: #cfdbfb; font-size: 1.06rem; line-height: 1.7; margin: 0 0 14px; }
.sn-home .sn-feature-text a { color: #fff; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.sn-feature .sn-cta { margin-top: 22px; }
.sn-feature .sn-btn-primary { background: #fff; color: var(--sn-deep); box-shadow: 0 8px 22px rgba(0, 0, 0, .25); }
.sn-feature .sn-btn-primary:hover { background: var(--sn-soft2); color: var(--sn-deep); }
.sn-feature .sn-btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
.sn-feature .sn-btn-ghost:hover { border-color: #fff; color: #fff; }
.sn-feature-card { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); border-radius: 22px; padding: 24px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sn-home .sn-feature-card h3 { margin: 0 0 14px; font-size: 13px; letter-spacing: .09em; text-transform: uppercase; color: #ffb15c; font-weight: 800; }
.sn-feature .sn-chips li { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2); color: #fff; font-weight: 600; font-size: 14.5px; padding: 9px 15px; }
.sn-feature .sn-chips li p { color: #fff !important; }

/* ---------- HTML site map ---------- */
.sn-sitemap-grid { display: grid; gap: 28px; align-items: start; }
@media (min-width: 760px) { .sn-sitemap-grid { grid-template-columns: repeat(3, 1fr); gap: 36px; } }
.sn-home .sn-sm-box h2, .sn-home .sn-sm-blog h2 { margin: 0 0 12px; font-size: 13px; letter-spacing: .09em; text-transform: uppercase; color: var(--sn-brand-dark); font-weight: 800; line-height: 1.3; }
.sn-home .sn-sm-box h2:not(:first-child) { margin-top: 30px; }
.sn-sitemap ul { list-style: none; margin: 0; padding: 0; }
.sn-sitemap li { margin: 0; padding: 0; }
.sn-sm-box > ul > li, .sn-sm-tree > li { padding: 5px 0; }
.sn-sitemap a { color: var(--sn-ink); font-weight: 600; text-decoration: none; }
.sn-sitemap a:hover { color: var(--sn-brand-dark); text-decoration: underline; text-underline-offset: 3px; }
.sn-sm-tree > li > a { font-weight: 800; }
.sn-sm-tree ul { margin: 4px 0 8px; padding-left: 14px; border-left: 2px solid var(--sn-line); }
.sn-sm-tree ul li { padding: 3px 0 3px 8px; }
.sn-sm-tree ul a { font-weight: 500; color: var(--sn-muted); }
.sn-sm-blog { margin-top: 44px; padding-top: 30px; border-top: 1px solid var(--sn-line); }
.sn-sm-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.sn-sm-cats a { background: var(--sn-soft); border: 1px solid var(--sn-line); border-radius: 999px; padding: 6px 14px; font-size: 14px; }
.sn-sm-cats span { color: var(--sn-muted); font-weight: 500; }
.sn-sm-blog > ul { columns: 2 320px; column-gap: 36px; }
.sn-sm-blog > ul li { break-inside: avoid; padding: 5px 0; }

/* ---------- hero lead form (service and industry pages) ----------
   Desktop only: from 1024px up the text and the form sit side by side and the "At a glance" facts run as a full-width strip
   underneath, so neither column is taller than the other. Below 1024px the wrapper dissolves (display: contents) and the form is
   hidden, so phones and tablets get exactly the layout they had before. */
.sn-hero-side { display: contents; }
.sn-hform { display: none; }
.sn-cap-host { position: fixed; right: 16px; bottom: 16px; z-index: 3000; }
.sn-thanks-grid { max-width: 760px; }
.sn-thanks .sn-prose ul { padding-left: 1.2em; }
.sn-thanks .sn-prose li { margin-bottom: 8px; }
@media (min-width: 1024px) {
  .sn-hform { display: block; grid-column: 2; grid-row: 1; align-self: start; background: #fff; color: var(--sn-ink); border-radius: 22px; padding: 22px 24px 20px; box-shadow: 0 30px 60px rgba(0, 0, 0, .28); position: relative; z-index: 1; }
  .sn-hform .sn-hform-title { margin: 0 0 2px; font-size: 1.3rem; line-height: 1.25; font-weight: 800; letter-spacing: -.015em; color: var(--sn-ink); }
  .sn-hform .sn-hform-sub { margin: 0 0 8px; font-size: 14.5px; line-height: 1.5; color: var(--sn-muted); }
  .sn-hform label { display: block; margin: 11px 0 4px; font-size: 12.5px; font-weight: 700; color: var(--sn-ink); }
  .sn-hform input:not(.sn-hp):not([type="hidden"]) { display: block; width: 100%; box-sizing: border-box; padding: 11px 14px; font: inherit; font-size: 15.5px; color: var(--sn-ink); background: #fff; border: 1.5px solid var(--sn-line); border-radius: 12px; }
  .sn-hform input:not(.sn-hp):focus { outline: 0; border-color: var(--sn-brand); box-shadow: 0 0 0 3px rgba(31, 91, 255, .16); }
  .sn-hero .sn-hform .sn-btn-primary { width: 100%; justify-content: center; margin-top: 16px; background: var(--sn-brand); color: #fff; box-shadow: 0 8px 20px rgba(31, 91, 255, .3); }
  .sn-hero .sn-hform .sn-btn-primary:hover { background: var(--sn-brand-dark); color: #fff; }
  .sn-hero .sn-hform .sn-btn-primary:disabled { opacity: .65; cursor: progress; }
  .sn-hform .sn-note { margin: 10px 0 0; min-height: 20px; font-size: 14px; line-height: 1.4; color: var(--sn-muted); }
  .sn-hform .sn-note.bad { color: #c0262d; font-weight: 600; }
  .sn-hero-side .sn-gcard { grid-column: 1 / -1; grid-row: 2; padding: 20px 24px 22px; box-shadow: 0 20px 44px rgba(0, 0, 0, .22); }
  .sn-hero-side .sn-gcard h2 { margin-bottom: 12px !important; }
  .sn-hero-side .sn-gcard ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .sn-hero-side .sn-gcard li { padding: 12px 16px; border: 0; border-radius: 12px; background: var(--sn-soft); font-size: 15px; }
}

/* ---------- exit popup, refreshed to match the page design (hero form card, brand accent strip, benefit list) ---------- */
.sn-dlg { width: min(480px, 100%); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 32px 28px 24px; border-radius: 24px; }
.sn-dlg::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--sn-brand), var(--sn-accent)); }
.sn-dlg .sn-dlg-tag { display: inline-flex; margin: 0 0 12px; background: var(--sn-soft2); color: var(--sn-brand-dark); border-color: #cfdcfb; }
.sn-dlg h3 { margin: 0 0 8px; font-size: 1.55rem; }
.sn-dlg p.sn-dlg-lead { margin: 0 0 14px; font-size: 15.5px; }
.sn-dlg-points { list-style: none; margin: 0 0 18px; padding: 14px 16px; background: var(--sn-soft); border-radius: 14px; display: grid; gap: 8px; }
.sn-dlg-points li { display: flex; gap: 10px; align-items: center; font-size: 14.5px; font-weight: 600; color: var(--sn-ink); }
.sn-dlg-points .sn-ico { width: 18px; height: 18px; flex: none; color: var(--sn-wa); }
.sn-dlg label { font-size: 12.5px; margin: 0 0 5px; }
.sn-dlg label span { font-weight: 500; color: var(--sn-muted); }
.sn-dlg input { margin: 0 0 12px; padding: 12px 14px; border-color: var(--sn-line); }
.sn-dlg input:focus { outline: 0; border-color: var(--sn-brand); box-shadow: 0 0 0 3px rgba(31, 91, 255, .16); }
.sn-dlg .sn-btn { margin-top: 4px; justify-content: center; }
.sn-dlg .sn-btn:disabled { opacity: .65; cursor: progress; }
.sn-dlg p.sn-dlg-fine { margin: 12px 0 0; font-size: 12.5px; line-height: 1.5; text-align: center; color: var(--sn-muted); }
.sn-dlg p.sn-dlg-fine a { color: var(--sn-brand-dark); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 480px) { .sn-dlg { padding: 28px 20px 20px; } .sn-dlg-points { padding: 12px 14px; } }

/* ---------- our own WhatsApp chat (desktop only; phones have the bottom bar) ---------- */
.sn-chat { display: none; }
@media (min-width: 761px) {
  .sn-chat { display: block; position: fixed; left: 20px; bottom: 20px; z-index: 1020; font-family: var(--sn-font); }
  .sn-chat-fab { display: inline-flex; align-items: center; gap: 9px; padding: 12px 18px 12px 14px; border: 0; border-radius: 999px; background: var(--sn-wa); color: #fff; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 10px 26px rgba(15, 100, 55, .35); }
  .sn-chat-fab:hover { background: #178a47; }
  .sn-chat-fab .sn-ico { width: 22px; height: 22px; }
  .sn-chat-panel { position: absolute; left: 0; bottom: 62px; width: 320px; background: #fff; color: var(--sn-ink); border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px rgba(13, 26, 68, .3); border: 1px solid var(--sn-line); }
  .sn-chat-panel[hidden] { display: none; }
  .sn-chat-head { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: var(--sn-wa); color: #fff; }
  .sn-chat-ava { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; overflow: hidden; flex: none; }
  .sn-chat-ava img { width: 40px; height: 40px; object-fit: cover; }
  .sn-chat-who { display: grid; line-height: 1.25; flex: 1; }
  .sn-chat-who strong { font-size: 16px; }
  .sn-chat-who small { font-size: 12.5px; opacity: .92; }
  .sn-chat-x { width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .2); color: #fff; cursor: pointer; display: grid; place-items: center; padding: 0; }
  .sn-chat-x:hover { background: rgba(255, 255, 255, .32); }
  .sn-chat-body { padding: 16px; background: #eef5f0; display: grid; gap: 10px; }
  .sn-chat-msg { margin: 0; padding: 11px 14px; background: #fff; border-radius: 4px 14px 14px 14px; font-size: 14.5px; line-height: 1.5; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
  .sn-chat-opt { display: block; padding: 10px 14px; background: #fff; border: 1.5px solid var(--sn-wa); border-radius: 999px; color: #14753d; font-size: 14.5px; font-weight: 700; text-align: center; text-decoration: none; }
  .sn-chat-opt:hover { background: var(--sn-wa); color: #fff; }
}

/* ---------- captcha box inside the forms (empty, and hidden, until the check starts) ---------- */
.sn-cap { margin: 14px 0 0; min-height: 0; }
.sn-cap:empty { display: none; }
.sn-cap iframe { max-width: 100%; }
