html,body{margin:0;padding:0;}
a[href].ssh-btn-primary,a[href].ssh-btn-ghost{color:#fff;}
a[href].ssh-btn-outline,a[href].ssh-btn-outline-navy{color:#172a48;}
/* Brand guard: headings are sentence case — stop theme/Elementor global typography
   (text-transform:uppercase on raw h1-h6) leaking into the .ssh widgets sitewide. */
.ssh h1,.ssh h2,.ssh h3,.ssh h4,.ssh h5,.ssh h6,
.ssh-nav-root h1,.ssh-nav-root h2,.ssh-nav-root h3,.ssh-nav-root h4,
.ssh-footer-root h1,.ssh-footer-root h2,.ssh-footer-root h3,.ssh-footer-root h4{text-transform:none;}
/* Same guard for global <button> styles (Elementor Site Settings > Buttons) hitting the nav */
.ssh-nav-root button:hover,.ssh-nav-root button:focus,.ssh-nav-root button:active{background:none;color:#172a48;box-shadow:none;}
.ssh-nav-root .ssh-nav__trigger:hover,.ssh-nav-root .ssh-nav__trigger[aria-expanded="true"]{background:#F4F6FA;}
.ssh-nav-root .ssh-nav__trigger[aria-expanded="true"]{color:#E42A78;}
[data-reveal]{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
[data-reveal="left"]{transform:translateX(-22px);}
[data-reveal="right"]{transform:translateX(22px);}
[data-reveal="scale"]{transform:scale(.96);}
[data-reveal].ssh-in{opacity:1;transform:none;filter:none;}
[data-reveal-children] > *{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
[data-reveal-children] > *.ssh-in{opacity:1;transform:none;filter:none;}
/* after the reveal finishes, hand transform back to fast hover transitions */
[data-reveal-children].ssh-rc-live > *{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s,border-color .18s;will-change:auto;}
/* Card micro-interactions (cards that don't already define a hover) */
.ssh-feat,.ssh-proof{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s,border-color .18s;}
.ssh-feat:hover,.ssh-proof:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(18,28,48,.10);border-color:#d5deea;}
/* Card spotlight: cursor-tracking glow (class + coords set by JS; fine pointers only).
   pointer-events:none so it never blocks clicks; sits above card art as a soft wash. */
.ssh-spot{position:relative;}
.ssh-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;opacity:0;transition:opacity .35s;background:radial-gradient(240px circle at var(--ssh-mx,50%) var(--ssh-my,50%), rgba(228,42,120,.09), transparent 65%);}
.ssh-spot:hover::after{opacity:1;}
/* dark cards get a brighter beam */
.ssh-pillar--dark.ssh-spot::after,.ssh-step.ssh-spot::after{background:radial-gradient(260px circle at var(--ssh-mx,50%) var(--ssh-my,50%), rgba(228,42,120,.2), transparent 65%);}
.ssh-step.ssh-spot:hover{border-color:rgba(228,42,120,.45);}
/* Shooting star: injected into each starfield band; brief streak on a long loop, transform/opacity only */
.ssh-meteor{display:none;}
@media (min-width:761px){
  .ssh-meteor{display:block;position:absolute;width:120px;height:2px;border-radius:999px;pointer-events:none;opacity:0;background:linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,0));transform:rotate(-36deg) translateX(0);animation:sshMeteor 11s linear infinite;}
}
@keyframes sshMeteor{
  0%{opacity:0;transform:rotate(-36deg) translateX(0);}
  1.5%{opacity:.9;}
  7%{opacity:0;transform:rotate(-36deg) translateX(-360px);}
  100%{opacity:0;transform:rotate(-36deg) translateX(-360px);}
}
/* Glowing horizon line where every dark closing band begins */
.ssh-closing::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(760px,82%);height:1px;z-index:1;pointer-events:none;background:linear-gradient(90deg, transparent, rgba(228,42,120,.7) 30%, rgba(255,214,232,.95) 50%, rgba(228,42,120,.7) 70%, transparent);}
.ssh-closing::after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:min(560px,70%);height:130px;z-index:1;pointer-events:none;background:radial-gradient(50% 100% at 50% 100%, rgba(228,42,120,.22), transparent 75%);}
/* Primary CTA: glow-lift + a sheen that sweeps across on hover */
.ssh .ssh-btn-primary{position:relative;overflow:hidden;transition:background .15s,box-shadow .3s,transform .15s;}
.ssh .ssh-btn-primary::after{content:"";position:absolute;top:0;left:0;width:36%;height:100%;pointer-events:none;background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);transform:translateX(-160%) skewX(-18deg);transition:transform .6s ease;}
.ssh .ssh-btn-primary:hover{box-shadow:0 8px 28px rgba(228,42,120,.45);transform:translateY(-1px);}
.ssh .ssh-btn-primary:hover::after{transform:translateX(360%) skewX(-18deg);}
/* Hero entrance: content rises in with a blur-to-sharp stagger on page load */
.ssh-hero__inner > *,.ssh-page-hero__inner > *{animation:sshRise .8s cubic-bezier(.22,1,.36,1) both;}
.ssh-hero__inner > *:nth-child(2),.ssh-page-hero__inner > *:nth-child(2){animation-delay:.09s;}
.ssh-hero__inner > *:nth-child(3),.ssh-page-hero__inner > *:nth-child(3){animation-delay:.18s;}
.ssh-hero__inner > *:nth-child(4),.ssh-page-hero__inner > *:nth-child(4){animation-delay:.27s;}
.ssh-hero__inner > *:nth-child(5),.ssh-page-hero__inner > *:nth-child(5){animation-delay:.36s;}
@keyframes sshRise{from{opacity:0;transform:translateY(22px);filter:blur(6px);}to{opacity:1;transform:none;filter:none;}}
/* Animated gradient text: wrap a key word in <span class="ssh-grad-text"> */
.ssh-grad-text{background:linear-gradient(92deg,#ff6aa8 0%,#E42A78 30%,#9d5cff 65%,#ff6aa8 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:sshGradShift 8s ease-in-out infinite alternate;}
@keyframes sshGradShift{from{background-position:0% 50%;}to{background-position:100% 50%;}}
/* Accessible focus ring, brand colour */
.ssh a:focus-visible,.ssh button:focus-visible,.ssh summary:focus-visible,.ssh-totop:focus-visible{outline:3px solid #ec5197;outline-offset:2px;border-radius:6px;}
/* Back-to-top button (injected) */
/* Sits ABOVE the chatbot launcher (bottom-right) so the two never overlap */
.ssh-totop{position:fixed;right:22px;bottom:96px;z-index:900;width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;background:#172a48;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s,background .15s;box-shadow:0 10px 26px rgba(18,28,48,.28);}
.ssh-totop.show{opacity:1;visibility:visible;transform:none;}
.ssh-totop:hover{background:#E42A78;}
@media (max-width:600px){.ssh-totop{right:16px;bottom:86px;}}
/* Trust line injected beneath every closing-CTA (proof within view of the CTA) */
.ssh-cta-proof{margin:26px 0 0;font-size:13.5px;color:#8FA2BF;letter-spacing:.01em;}
.ssh-form-status{font-size:14px;margin-top:6px;min-height:1em;}
.ssh-form-status.is-ok{color:#16a36a;font-weight:600;}
.ssh-form-status.is-err{color:#e0453f;font-weight:600;}
.ssh-form-done{display:none;padding:20px 22px;border:1px solid #BEE8D2;background:#EAF7F0;border-radius:12px;color:#0e7549;font-weight:600;font-size:15.5px;line-height:1.5;}
/* Global FAQ styling so any .ssh widget can drop in an FAQ with no extra CSS (page-level styles override this) */
.ssh-faq{max-width:880px;margin:0 auto;border-top:1px solid #E7ECF2;}
.ssh-faq details{border-bottom:1px solid #E7ECF2;}
.ssh-faq summary{list-style:none;cursor:pointer;padding:22px 0;font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:600;color:var(--navy,#172a48);display:flex;justify-content:space-between;gap:20px;align-items:center;}
.ssh-faq summary::-webkit-details-marker{display:none;}
.ssh-faq summary::after{content:"+";font-size:24px;color:var(--magenta,#E42A78);font-weight:400;line-height:1;flex:none;}
.ssh-faq details[open] summary::after{content:"\2013";}
.ssh-faq details p{margin:0 0 22px;font-size:16px;line-height:1.65;color:#46505f;}
@keyframes sshFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes sshPulseDot{0%,100%{transform:rotate(45deg) scale(1);opacity:1}50%{transform:rotate(45deg) scale(1.5);opacity:.55}}
@keyframes sshDrift{from{background-position:0 0}to{background-position:600px 300px}}
/* Auto-injected inner-page hero accent (subtle floating magenta glow) */
.ssh-hero-glow{position:absolute;right:6%;top:26%;width:min(360px,42vw);height:min(360px,42vw);border-radius:50%;background:radial-gradient(circle,rgba(228,42,120,.20),transparent 65%);pointer-events:none;z-index:1;animation:sshGlow 9s ease-in-out infinite;}
@keyframes sshGlow{0%,100%{transform:translateY(0) scale(1);opacity:.75}50%{transform:translateY(-16px) scale(1.08);opacity:1}}
@media (max-width:760px){.ssh-hero-glow{display:none;}}
/* Living starfield: a second layer of stars breathes over the static ones in every hero
   and closing band (homepage, inner pages, CTA sections). Opacity/transform only, so it
   stays on the compositor and costs nothing measurable. One faint magenta star per band. */
.ssh-hero__stars::after,.ssh-page-hero__stars::after,.ssh-closing__stars::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 28% 38%, rgba(255,255,255,.95), transparent),
    radial-gradient(1.4px 1.4px at 55% 20%, rgba(255,255,255,.7), transparent),
    radial-gradient(1.8px 1.8px at 76% 58%, rgba(255,255,255,.85), transparent),
    radial-gradient(1.3px 1.3px at 12% 66%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.6px 1.6px at 90% 30%, rgba(228,42,120,.7), transparent),
    radial-gradient(1.4px 1.4px at 40% 12%, rgba(255,255,255,.65), transparent),
    radial-gradient(1.8px 1.8px at 66% 78%, rgba(255,255,255,.75), transparent);
  animation:sshTwinkle 5.5s ease-in-out infinite alternate;
}
/* stagger the phases so multiple bands on one page don't pulse in sync */
.ssh-page-hero__stars::after{animation-duration:6.5s;animation-delay:-2.2s;}
.ssh-closing__stars::after{animation-duration:7.5s;animation-delay:-4.1s;}
/* Desktop: a second, counter-phase star layer — as one set dims the other brightens,
   so the band shimmers continuously instead of breathing in one block. */
@media (min-width:761px){
  .ssh-hero__stars::before,.ssh-page-hero__stars::before,.ssh-closing__stars::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
      radial-gradient(1.8px 1.8px at 18% 24%, rgba(255,255,255,.9), transparent),
      radial-gradient(1.3px 1.3px at 48% 64%, rgba(255,255,255,.6), transparent),
      radial-gradient(2px 2px at 84% 46%, rgba(255,255,255,.85), transparent),
      radial-gradient(1.2px 1.2px at 63% 34%, rgba(255,255,255,.55), transparent),
      radial-gradient(1.5px 1.5px at 8% 44%, rgba(228,42,120,.6), transparent),
      radial-gradient(1.6px 1.6px at 34% 82%, rgba(255,255,255,.7), transparent);
    animation:sshTwinkle 6s ease-in-out infinite alternate-reverse;animation-delay:-3s;
  }
}
@keyframes sshTwinkle{from{opacity:.15;transform:translate3d(0,0,0);}to{opacity:1;transform:translate3d(-6px,-4px,0);}}
/* Blog: on-brand post cards (for an Elementor Loop Grid or custom loop on /insights/) */
.ssh-postcard{background:#fff;border:1px solid #EBEFF4;border-radius:16px;overflow:hidden;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s,border-color .18s;}
.ssh-postcard:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(18,28,48,.1);border-color:#d5deea;}
.ssh-postcard__body{padding:24px 26px 28px;}
.ssh-postcard__meta{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9aa5b3;margin:0 0 10px;}
.ssh-postcard h3{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:600;color:#172a48;margin:0 0 8px;letter-spacing:-.01em;}
.ssh-postcard p{font-family:'Hanken Grotesk',sans-serif;font-size:15px;line-height:1.6;color:#5E6B7D;margin:0;}
/* Blog: single-post article typography (apply .ssh-article to the post content wrapper) */
.ssh-article{max-width:760px;margin:0 auto;font-family:'Hanken Grotesk',sans-serif;font-size:18px;line-height:1.75;color:#2B3648;}
.ssh-article h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(24px,3vw,32px);font-weight:600;color:#172a48;letter-spacing:-.02em;margin:1.8em 0 .6em;}
.ssh-article h3{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:600;color:#172a48;margin:1.5em 0 .5em;}
.ssh-article p{margin:0 0 1.2em;}
.ssh-article a{color:#C71A64;font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.ssh-article blockquote{border-left:3px solid #E42A78;margin:1.6em 0;padding:.2em 0 .2em 24px;font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:500;color:#172a48;}
.ssh-article ul,.ssh-article ol{margin:0 0 1.2em;padding-left:22px;}
.ssh-article li{margin:.4em 0;}
.ssh-article img{max-width:100%;height:auto;border-radius:12px;margin:1.4em 0;}
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal-children] > *{opacity:1!important;transform:none!important;transition:none!important;filter:none!important;}
  .ssh-hero-glow{animation:none;}
  .ssh-totop{transform:none!important;}
  .ssh-hero__inner > *,.ssh-page-hero__inner > *{animation:none!important;}
  .ssh-grad-text{animation:none!important;}
  .ssh-meteor{display:none!important;}
  .ssh .ssh-btn-primary::after{display:none;}
  .ssh .ssh-btn-primary:hover{transform:none;}
  .ssh-hero__aurora::before,.ssh-hero__aurora::after{animation:none!important;}
  /* stop decorative looping animations sitewide (homepage hero orbit, dots, etc.) */
  .ssh-hero__orbit,.ssh-orbit__ring,.ssh-orbit__ring2,.ssh-orbit__core,.ssh-eyebrow__dot{animation:none!important;}
  .ssh-hero__stars::after,.ssh-page-hero__stars::after,.ssh-closing__stars::after,
  .ssh-hero__stars::before,.ssh-page-hero__stars::before,.ssh-closing__stars::before{animation:none!important;opacity:.55;}
}
