/* ==========================================================================
   SiliconSmiths Design System
   "Forging Digital Solutions"
   Self-contained CSS driving every public frontend page.
   ========================================================================== */

:root {
  --ss-orange: #EA580C;
  --ss-orange-dark: #C2410C;
  --ss-navy: #172033;
  --ss-navy-deep: #0F1624;
  --ss-steel: #0E7490;
  --ss-steel-soft: #E0F2F8;
  --ss-gray: #C8CDD5;
  --ss-neutral: #F4F6F9;
  --ss-white: #FFFFFF;
  --ss-surface: rgba(255, 255, 255, 0.72);
  --ss-border: rgba(23, 32, 51, 0.1);
  --ss-border-strong: rgba(23, 32, 51, 0.16);

  --ss-font-heading: 'Syne', sans-serif;
  --ss-font-body: 'Manrope', sans-serif;

  --ss-radius: 12px;
  --ss-radius-sm: 8px;
  --ss-shadow: 0 4px 20px rgba(23, 32, 51, 0.06);
  --ss-shadow-lg: 0 16px 40px rgba(23, 32, 51, 0.1);
  --ss-container-max: 1180px;

  --ss-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ss-duration: 0.55s;
  --ss-duration-fast: 0.22s;
}

/* --------------------------------------------------------------------
   Reset & base
   -------------------------------------------------------------------- */
.ss-body,
body {
  font-family: var(--ss-font-body);
  color: var(--ss-navy);
  background: var(--ss-neutral);
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.ss-body h1,
.ss-body h2,
.ss-body h3,
.ss-body h4,
.ss-body h5,
.ss-body h6,
h1.ss-heading,
h2.ss-heading,
h3.ss-heading,
h4.ss-heading {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  color: var(--ss-navy);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.ss-fw-semibold {
  font-weight: 600;
}

.visually-hidden-focusable-h1 {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

a.ss-link {
  color: var(--ss-orange);
  text-decoration: none;
  transition: color .15s ease;
}

a.ss-link:hover {
  color: var(--ss-orange-dark);
}

/* Inline text links inside prose content (blog/page bodies) — NOT UI
   elements like buttons/nav, which set their own colors explicitly. */
.ss-prose a {
  color: var(--ss-orange);
  text-decoration: underline;
}

.ss-prose a:hover {
  color: var(--ss-orange-dark);
}

/* --------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------- */
.ss-container {
  width: 100%;
  max-width: var(--ss-container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.ss-section {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.ss-section-sm {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

@media (max-width: 767.98px) {
  .ss-section {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
  }

  .ss-section-sm {
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
  }
}

.section-dark {
  background:
    linear-gradient(135deg, rgba(14, 116, 144, 0.12) 0%, transparent 42%),
    linear-gradient(180deg, var(--ss-navy) 0%, var(--ss-navy-deep) 100%);
  color: var(--ss-white);
  position: relative;
  overflow: hidden;
}

.section-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
  opacity: 0.7;
}

.section-dark>* {
  position: relative;
  z-index: 1;
}

.section-dark .ss-heading,
.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark h4 {
  color: var(--ss-white);
}

.section-dark p {
  color: rgba(255, 255, 255, 0.78);
}

/* --------------------------------------------------------------------
   Buttons — text color is !important because several reused Bootstrap
   utility rules elsewhere set `a { color }`; without !important a
   generic link-color rule can win the cascade and make button text
   match its own background (invisible until :hover raises specificity).
   -------------------------------------------------------------------- */
.btn-ss-primary,
.btn-ss-outline,
.btn-ss-outline-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: .95rem;
  padding: .7rem 1.6rem;
  border-radius: var(--ss-radius);
  border: 2px solid transparent;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
  cursor: pointer;
  text-decoration: none !important;
  line-height: 1.2;
}

.btn-ss-primary {
  background: linear-gradient(135deg, var(--ss-orange) 0%, var(--ss-orange-dark) 100%);
  color: #FFFFFF !important;
  box-shadow: 0 8px 24px rgba(234, 88, 12, 0.28);
  border-color: transparent;
}

.btn-ss-primary:hover,
.btn-ss-primary:focus {
  background: linear-gradient(135deg, var(--ss-orange-dark) 0%, #9A3412 100%);
  border-color: transparent;
  color: #FFFFFF !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(234, 88, 12, 0.35);
}

.btn-ss-outline {
  background: transparent;
  color: var(--ss-navy) !important;
  border-color: var(--ss-navy);
}

.btn-ss-outline:hover,
.btn-ss-outline:focus {
  background: var(--ss-navy);
  color: #FFFFFF !important;
}

.section-dark .btn-ss-outline {
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.6);
}

.section-dark .btn-ss-outline:hover {
  background: #FFFFFF;
  color: var(--ss-navy) !important;
}

/* Orange border always visible (not just on hover) — reads as a real
   button over the dark hero image instead of plain underlined text. */
.btn-ss-outline-light {
  background: transparent;
  color: #FFFFFF !important;
  border-color: var(--ss-orange);
}

.btn-ss-outline-light:hover,
.btn-ss-outline-light:focus {
  background: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.btn-ss-sm {
  padding: .45rem 1.1rem;
  font-size: .85rem;
}

.btn-ss-lg {
  padding: .9rem 2.1rem;
  font-size: 1.05rem;
}

/* --------------------------------------------------------------------
   Cards / Badges
   -------------------------------------------------------------------- */
.ss-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  border: 1px solid var(--ss-border);
  padding: 1.75rem;
  transition: box-shadow var(--ss-duration-fast) var(--ss-ease),
    transform var(--ss-duration-fast) var(--ss-ease),
    border-color var(--ss-duration-fast) ease;
}

.ss-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-5px);
  border-color: rgba(234, 88, 12, 0.28);
}

.ss-badge {
  display: inline-block;
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .35rem .9rem;
  border-radius: 6px;
  background: rgba(234, 88, 12, 0.1);
  color: var(--ss-orange-dark);
}

.section-dark .ss-badge {
  background: rgba(255, 255, 255, 0.1);
  color: var(--ss-white);
}

.ss-icon-circle {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(234, 88, 12, 0.16), rgba(14, 116, 144, 0.1));
  color: var(--ss-orange);
  font-size: 1.25rem;
  border: 1px solid rgba(234, 88, 12, 0.15);
}

/* --------------------------------------------------------------------
   Hero (static / fallback, non-slider pages)
   -------------------------------------------------------------------- */
.ss-hero {
  background:
    radial-gradient(ellipse 60% 50% at 85% 20%, rgba(14, 116, 144, 0.25), transparent 55%),
    linear-gradient(135deg, var(--ss-navy) 0%, var(--ss-navy-deep) 100%);
  color: var(--ss-white);
  padding: 5.5rem 0 5rem;
  position: relative;
  overflow: hidden;
}

.ss-body .ss-hero h1 {
  color: var(--ss-white);
  font-size: clamp(1.75rem, 3.8vw, 2.75rem);
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

.ss-hero p.lead {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.15rem;
  max-width: 640px;
}

@media (max-width: 767.98px) {
  .ss-hero {
    padding: 3.5rem 0 3rem;
  }
}

/* --------------------------------------------------------------------
   Hero Slider (Swiper) — only the active slide is ever visible; Swiper
   itself handles show/hide via transforms, so we only style layout.
   -------------------------------------------------------------------- */
.ss-hero-swiper {
  position: relative;
  height: 85vh;
  min-height: 560px;
  max-height: 820px;
}

@media (max-width: 767.98px) {
  .ss-hero-swiper {
    height: auto;
    min-height: 560px;
  }
}

.ss-hero-swiper .swiper-slide {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  background-color: var(--ss-navy);
  background-size: cover;
  background-position: center;
}

.ss-hero-slide-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(15, 22, 36, 0.94) 0%, rgba(23, 32, 51, 0.78) 48%, rgba(14, 116, 144, 0.35) 100%),
    linear-gradient(0deg, rgba(15, 22, 36, 0.45), transparent 40%);
}

.ss-hero-slide-content {
  position: relative;
  z-index: 2;
  max-width: 640px;
  color: var(--ss-white);
}

/* Qualified with `.ss-body` so this has HIGHER specificity (0,2,1) than
   the generic `.ss-body h1{...}` fluid-type rule added later in this file
   (0,1,1) — otherwise the generic rule silently wins on equal specificity
   + later source order, blowing the hero heading up to its 3.25rem cap. */
.ss-body .ss-hero-slide-content h1,
.ss-body .ss-hero-slide-content h2 {
  color: var(--ss-white);
  font-size: clamp(1.65rem, 3.2vw, 2.5rem);
  line-height: 1.15;
  margin-bottom: 1rem;
}

.ss-hero-slide-content p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.1rem;
  margin-bottom: 1.75rem;
}

.ss-hero-swiper .swiper-button-next,
.ss-hero-swiper .swiper-button-prev {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.15);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  transition: background-color .15s ease;
}

.ss-hero-swiper .swiper-button-next:hover,
.ss-hero-swiper .swiper-button-prev:hover {
  background: var(--ss-orange);
}

.ss-hero-swiper .swiper-button-next::after,
.ss-hero-swiper .swiper-button-prev::after {
  font-size: 1.1rem;
}

.ss-hero-swiper .swiper-pagination-bullet {
  background: #FFFFFF;
  opacity: .5;
  width: 9px;
  height: 9px;
}

.ss-hero-swiper .swiper-pagination-bullet-active {
  background: var(--ss-orange);
  opacity: 1;
}

/* --------------------------------------------------------------------
   Testimonials (Swiper)
   -------------------------------------------------------------------- */
.ss-testimonial-swiper {
  padding-bottom: 3rem;
}

.ss-testimonial-swiper .swiper-pagination-bullet {
  background: var(--ss-navy);
  opacity: .3;
}

.ss-testimonial-swiper .swiper-pagination-bullet-active {
  background: var(--ss-orange);
  opacity: 1;
}

/* --------------------------------------------------------------------
   Header / Navigation
   -------------------------------------------------------------------- */
.ss-header {
  background: rgba(244, 246, 249, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--ss-border);
  position: sticky;
  top: 0;
  z-index: 1030;
  transition: box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}

.ss-header.is-scrolled {
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 24px rgba(23, 32, 51, 0.08);
  border-bottom-color: transparent;
}

.ss-header-inner {
  height: 80px;
  transition: height .2s ease;
}

.ss-header.is-scrolled .ss-header-inner {
  height: 64px;
}

.ss-header .ss-logo img {
  height: 40px;
  width: auto;
  display: block;
  transition: height .2s ease;
}

.ss-header.is-scrolled .ss-logo img {
  height: 34px;
}

.ss-header .ss-logo-text {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--ss-navy);
}

.ss-nav-link {
  position: relative;
  font-family: var(--ss-font-body);
  font-weight: 500;
  color: var(--ss-navy) !important;
  padding: .5rem .9rem;
  text-decoration: none !important;
  transition: color .15s ease;
}

.ss-nav-link::after {
  content: '';
  position: absolute;
  left: .9rem;
  right: .9rem;
  bottom: -1px;
  height: 2px;
  background: var(--ss-orange);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}

.ss-nav-link:hover,
.ss-nav-link.active {
  color: var(--ss-orange) !important;
}

.ss-nav-link:hover::after,
.ss-nav-link.active::after {
  transform: scaleX(1);
}

/* Mobile drawer */
.ss-drawer-toggle {
  border: none;
  background: transparent;
  color: var(--ss-navy);
  font-size: 1.3rem;
  padding: 0;
  line-height: 1;
}

.ss-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(23, 32, 51, 0.55);
  z-index: 1040;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}

.ss-drawer-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

.ss-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 84%;
  max-width: 340px;
  background: var(--ss-navy);
  z-index: 1050;
  padding: 1.5rem;
  transform: translateX(100%);
  transition: transform .3s ease;
  overflow-y: auto;
}

.ss-drawer.is-open {
  transform: translateX(0);
}

.ss-drawer .ss-drawer-close {
  border: none;
  background: transparent;
  color: #FFFFFF;
  font-size: 1.4rem;
}

.ss-drawer .ss-nav-link {
  color: #FFFFFF !important;
  display: block;
  padding: .85rem .25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ss-drawer .ss-nav-link::after {
  display: none;
}

.ss-drawer .ss-nav-link:hover,
.ss-drawer .ss-nav-link.active {
  color: var(--ss-orange) !important;
}

/* --------------------------------------------------------------------
   Process (numbered steps with connecting line)
   -------------------------------------------------------------------- */
.ss-process-step {
  position: relative;
}

.ss-process-line {
  display: none;
}

@media (min-width: 992px) {
  .ss-process-line {
    display: block;
    position: absolute;
    top: 22px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: rgba(255, 255, 255, 0.15);
    z-index: 0;
  }

  .ss-process-step {
    z-index: 1;
  }
}

/* --------------------------------------------------------------------
   Trust bar client logo placeholders
   -------------------------------------------------------------------- */
.ss-client-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 56px;
  border-radius: var(--ss-radius);
  background: var(--ss-white);
  border: 1px solid var(--ss-gray);
  color: var(--ss-navy);
  opacity: .55;
  font-family: var(--ss-font-heading);
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .03em;
  transition: opacity .15s ease;
}

.ss-client-logo:hover {
  opacity: .9;
}

/* --------------------------------------------------------------------
   Portfolio / Featured work
   -------------------------------------------------------------------- */
.ss-portfolio-card {
  overflow: hidden;
  padding: 0;
}

.ss-portfolio-card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}

.ss-portfolio-card:hover img {
  transform: scale(1.06);
}

.ss-portfolio-card .ss-portfolio-body {
  padding: 1.25rem;
}

/* --------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------- */
.ss-footer {
  background: var(--ss-navy);
  color: rgba(255, 255, 255, 0.75);
  padding: 3.5rem 0 1.5rem;
}

.ss-footer h6 {
  color: var(--ss-white);
  font-family: var(--ss-font-heading);
  font-weight: 600;
  margin-bottom: 1rem;
}

.ss-footer a {
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
}

.ss-footer a:hover {
  color: var(--ss-orange);
}

.ss-footer .ss-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  margin-right: .5rem;
  color: var(--ss-white);
}

.ss-footer .ss-social a:hover {
  background: var(--ss-orange);
}

.ss-footer .ss-copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  font-size: .875rem;
}

.ss-footer .ss-copyright a:hover {
  color: var(--ss-orange);
}

/* --------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------- */
.ss-form-control {
  font-family: var(--ss-font-body);
  border: 1px solid var(--ss-gray);
  border-radius: var(--ss-radius);
  padding: .65rem .9rem;
  width: 100%;
  background: var(--ss-white);
  color: var(--ss-navy);
}

.ss-form-control:focus {
  outline: none;
  border-color: var(--ss-orange);
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.15);
}

/* --------------------------------------------------------------------
   Bootstrap compatibility layer — reused shared partials (newsletter
   form, menu partial, pagination) ship plain Bootstrap classes; these
   overrides keep them on-brand without editing the shared partials.
   -------------------------------------------------------------------- */
.ss-body .btn-primary {
  background-color: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-body .btn-primary:hover,
.ss-body .btn-primary:focus {
  background-color: var(--ss-orange-dark);
  border-color: var(--ss-orange-dark);
  color: #FFFFFF !important;
}

.ss-body .btn-outline-primary {
  color: var(--ss-orange) !important;
  border-color: var(--ss-orange);
}

.ss-body .btn-outline-primary:hover {
  background-color: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-body .form-control:focus {
  border-color: var(--ss-orange);
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.15);
}

.ss-body .page-link {
  color: var(--ss-navy);
}

.ss-body .page-item.active .page-link {
  background-color: var(--ss-orange);
  border-color: var(--ss-orange);
}

.ss-footer .btn-primary,
.ss-footer .btn-primary:hover {
  background-color: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-footer .form-control {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: var(--ss-white);
}

.ss-footer .form-control::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

/* --------------------------------------------------------------------
   Global page hero (inner pages — compact vs. the home slider)
   -------------------------------------------------------------------- */
.ss-page-hero {
  position: relative;
  min-height: 42vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--ss-navy);
  background-size: cover;
  background-position: center;
  padding: 3.5rem 0;
}

@media (min-width: 768px) {
  .ss-page-hero {
    min-height: 46vh;
  }
}

.ss-page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(23, 32, 51, .88), rgba(23, 32, 51, .6));
}

.ss-page-hero-breadcrumb {
  color: rgba(255, 255, 255, 0.7);
  font-size: .9rem;
  margin-bottom: 1rem;
}

.ss-page-hero-breadcrumb a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
}

.ss-page-hero-breadcrumb a:hover {
  color: var(--ss-orange);
}

.ss-page-hero-breadcrumb .is-current {
  color: var(--ss-orange);
  font-weight: 600;
}

/* !important on color: the global `.ss-body h1..h6 { color: navy }` rule
   (near the top of this file) has higher specificity (class+element) than
   a single class selector, so it silently wins over this without
   !important — turning every page-hero title navy-on-navy against the
   dark overlay. font-size is instead fixed by qualifying the selector with
   `.ss-body` (2 classes beats 1 class+1 element on specificity), so the
   later, more generic fluid-type rule can't silently override this one. */
.ss-body .ss-page-hero-title {
  color: var(--ss-white) !important;
  font-size: clamp(1.75rem, 3.8vw, 2.75rem);
  line-height: 1.2;
  margin-bottom: .75rem;
}

.ss-page-hero-subtitle {
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.1rem;
  max-width: 640px;
  margin: 0 auto;
}

/* --------------------------------------------------------------------
   Home hero slide eyebrow label
   -------------------------------------------------------------------- */
.ss-hero-eyebrow {
  display: inline-block;
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ss-orange);
  background: rgba(234, 88, 12, 0.15);
  padding: .35rem 1rem;
  border-radius: 999px;
  margin-bottom: 1.1rem;
}

/* --------------------------------------------------------------------
   Footer logo — larger mark, tighter surrounding space
   -------------------------------------------------------------------- */
.ss-footer-logo-block {
  margin-bottom: .85rem;
}

.ss-footer-logo-block img {
  height: 52px;
  width: auto;
  display: block;
}

/* --------------------------------------------------------------------
   Services list page — feature bullets + mid-page CTA band
   -------------------------------------------------------------------- */
.ss-service-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.1rem;
}

.ss-service-features li {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  color: var(--ss-navy);
  opacity: .8;
  font-size: .9rem;
  margin-bottom: .4rem;
}

.ss-service-features li i {
  color: var(--ss-orange);
  margin-top: .2rem;
  font-size: .8rem;
}

.ss-cta-band {
  background: rgba(234, 88, 12, 0.06);
  border: 1px solid rgba(234, 88, 12, 0.2);
  border-radius: var(--ss-radius);
  padding: 2.5rem;
  text-align: center;
}

/* --------------------------------------------------------------------
   Pricing cards
   -------------------------------------------------------------------- */
.ss-pricing-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  border: 1px solid var(--ss-gray);
  box-shadow: var(--ss-shadow);
  padding: 2.25rem 2rem;
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
}

.ss-pricing-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-4px);
}

.ss-pricing-card.is-featured {
  border: 2px solid var(--ss-orange);
  box-shadow: var(--ss-shadow-lg);
  transform: scale(1.03);
  z-index: 1;
}

@media (max-width: 991.98px) {
  .ss-pricing-card.is-featured {
    transform: none;
  }
}

.ss-pricing-ribbon {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--ss-orange);
  color: #FFFFFF;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: .35rem 1.1rem;
  border-radius: 999px;
  white-space: nowrap;
}

.ss-pricing-name {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  font-size: 1.3rem;
}

.ss-pricing-tagline {
  color: var(--ss-navy);
  opacity: .65;
  font-size: .9rem;
  margin-bottom: 1.25rem;
}

.ss-pricing-price {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  font-size: 2.5rem;
  color: var(--ss-navy);
}

.ss-pricing-price small {
  font-family: var(--ss-font-body);
  font-weight: 500;
  font-size: 1rem;
  opacity: .6;
}

.ss-pricing-period {
  color: var(--ss-navy);
  opacity: .55;
  font-size: .85rem;
  margin-bottom: 1.5rem;
}

.ss-pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.75rem;
}

.ss-pricing-features li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  margin-bottom: .65rem;
  font-size: .92rem;
}

.ss-pricing-features li i {
  margin-top: .25rem;
  font-size: .8rem;
}

.ss-pricing-features li.is-included i {
  color: var(--ss-orange);
}

.ss-pricing-features li.is-excluded {
  opacity: .4;
}

.ss-pricing-features li.is-excluded i {
  color: var(--ss-navy);
}

/* --------------------------------------------------------------------
   Portfolio page — filter tabs + hover overlay
   -------------------------------------------------------------------- */
.ss-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem;
}

.ss-portfolio-filter-btn {
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: .85rem;
  color: var(--ss-navy);
  background: var(--ss-white);
  border: 1px solid var(--ss-gray);
  border-radius: 999px;
  padding: .5rem 1.3rem;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  cursor: pointer;
}

.ss-portfolio-filter-btn:hover {
  border-color: var(--ss-orange);
  color: var(--ss-orange);
}

.ss-portfolio-filter-btn.is-active {
  background: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-portfolio-item {
  display: none;
}

.ss-portfolio-item.is-visible {
  display: block;
}

/* Card is a normal white content card — title/category/client/result are
   ALWAYS visible (no opacity-hidden overlay hiding text); only the small
   "View Project" call-to-action fades in over the image on hover. */
.ss-portfolio-grid-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  display: block;
}

.ss-portfolio-grid-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-4px);
}

.ss-portfolio-grid-thumb {
  position: relative;
  overflow: hidden;
}

.ss-portfolio-grid-thumb img,
.ss-portfolio-grid-thumb .ss-portfolio-grid-placeholder {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}

.ss-portfolio-grid-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ss-neutral);
  color: var(--ss-navy);
  opacity: .4;
  font-size: 2rem;
}

.ss-portfolio-grid-card:hover .ss-portfolio-grid-thumb img {
  transform: scale(1.08);
}

.ss-portfolio-grid-hover-cta {
  position: absolute;
  inset: 0;
  background: rgba(23, 32, 51, .55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s ease;
}

.ss-portfolio-grid-card:hover .ss-portfolio-grid-hover-cta {
  opacity: 1;
}

.ss-portfolio-grid-hover-cta .ss-view-project {
  color: #FFFFFF !important;
  font-weight: 600;
  font-size: .9rem;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border: 2px solid #FFFFFF;
  border-radius: 999px;
  padding: .5rem 1.2rem;
}

.ss-portfolio-grid-body {
  padding: 1.25rem;
}

.ss-portfolio-grid-body h6 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 600;
  margin-bottom: .35rem;
}

.ss-portfolio-grid-client {
  color: var(--ss-navy);
  opacity: .6;
  font-size: .85rem;
  margin-bottom: .35rem;
}

.ss-portfolio-grid-result {
  color: var(--ss-orange);
  font-weight: 600;
  font-size: .85rem;
  margin: 0;
}

/* --------------------------------------------------------------------
   Service / Project detail pages
   -------------------------------------------------------------------- */
.ss-quote-card {
  background: var(--ss-white);
  border: 1px solid var(--ss-gray);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow-lg);
  padding: 2rem;
}

@media (min-width: 992px) {
  .ss-quote-card {
    position: sticky;
    top: 100px;
  }
}

.ss-offer-item {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--ss-gray);
}

.ss-offer-item:last-child {
  border-bottom: none;
}

.ss-offer-item i {
  color: var(--ss-orange);
  font-size: 1.1rem;
  margin-top: .15rem;
}

.ss-tech-chip {
  display: inline-block;
  background: rgba(23, 32, 51, 0.06);
  color: var(--ss-navy);
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: .85rem;
  padding: .4rem 1rem;
  border-radius: 999px;
  margin: 0 .5rem .5rem 0;
}

.ss-detail-meta-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ss-detail-meta-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem 0;
  border-bottom: 1px solid var(--ss-gray);
  font-size: .9rem;
}

.ss-detail-meta-list li:last-child {
  border-bottom: none;
}

.ss-detail-meta-list .ss-meta-label {
  color: var(--ss-navy);
  opacity: .6;
}

.ss-detail-meta-list .ss-meta-value {
  font-weight: 600;
  color: var(--ss-navy);
  text-align: right;
}

.ss-result-band {
  text-align: center;
  padding: 2.5rem 1.5rem;
  background: rgba(234, 88, 12, 0.06);
  border: 1px solid rgba(234, 88, 12, 0.2);
  border-radius: var(--ss-radius);
}

.ss-result-number {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--ss-orange);
}

.ss-gallery-thumb {
  border-radius: var(--ss-radius);
  overflow: hidden;
  cursor: pointer;
}

.ss-gallery-thumb img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  transition: transform .3s ease;
  display: block;
}

/* --------------------------------------------------------------------
   Blog — article typography (extends .ss-prose link rules already
   defined near the top of this file)
   -------------------------------------------------------------------- */
.ss-prose {
  color: var(--ss-navy);
  font-size: 1.05rem;
  line-height: 1.75;
}

.ss-prose h2,
.ss-prose h3,
.ss-prose h4 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 700;
  margin-top: 2.25rem;
  margin-bottom: 1rem;
}

.ss-prose h2 {
  font-size: 1.5rem;
}

.ss-prose h3 {
  font-size: 1.2rem;
}

.ss-prose p {
  color: var(--ss-navy);
  opacity: .85;
  margin-bottom: 1.25rem;
}

.ss-prose ul,
.ss-prose ol {
  color: var(--ss-navy);
  opacity: .85;
  margin-bottom: 1.25rem;
  padding-left: 1.4rem;
}

.ss-prose li {
  margin-bottom: .5rem;
}

.ss-prose strong {
  color: var(--ss-navy);
  opacity: 1;
}

.ss-prose blockquote {
  border-left: 4px solid var(--ss-orange);
  background: rgba(234, 88, 12, 0.05);
  padding: 1rem 1.5rem;
  margin: 1.75rem 0;
  color: var(--ss-navy);
  font-style: italic;
  border-radius: 0 var(--ss-radius) var(--ss-radius) 0;
}

.ss-prose img {
  max-width: 100%;
  height: auto;
  border-radius: var(--ss-radius);
  margin: 1.5rem 0;
}

.ss-prose code {
  background: rgba(23, 32, 51, 0.06);
  color: var(--ss-orange-dark);
  padding: .15rem .4rem;
  border-radius: 4px;
  font-size: .9em;
}

.ss-prose pre {
  background: var(--ss-navy);
  color: #FFFFFF;
  padding: 1.25rem;
  border-radius: var(--ss-radius);
  overflow-x: auto;
  margin: 1.5rem 0;
}

.ss-prose pre code {
  background: none;
  color: inherit;
  padding: 0;
}

/* --------------------------------------------------------------------
   Blog — cards, featured band, meta, sidebar, share, author card, tags
   -------------------------------------------------------------------- */
.ss-blog-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  display: flex;
  flex-direction: column;
}

.ss-blog-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-4px);
}

.ss-blog-card-thumb img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.ss-blog-card-body {
  padding: 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.ss-blog-card-body h3,
.ss-blog-card-body h5 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 600;
}

.ss-blog-thumb-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 180px;
  height: 100%;
  background:
    radial-gradient(ellipse 60% 50% at 30% 30%, rgba(14, 116, 144, 0.12), transparent 55%),
    var(--ss-neutral);
  color: rgba(23, 32, 51, 0.35);
}

.ss-blog-excerpt {
  color: var(--ss-navy);
  opacity: .7;
  font-size: .92rem;
  margin-bottom: 1rem;
}

.ss-blog-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem;
  color: var(--ss-navy);
  opacity: .6;
  font-size: .85rem;
  margin-bottom: .75rem;
}

.ss-blog-meta .ss-avatar-circle {
  width: 24px;
  height: 24px;
  font-size: .65rem;
}

.ss-avatar-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--ss-navy);
  color: #FFFFFF;
  font-family: var(--ss-font-heading);
  font-weight: 600;
  font-size: .9rem;
  flex-shrink: 0;
  overflow: hidden;
}

.ss-avatar-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ss-blog-featured {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ss-blog-featured {
    grid-template-columns: 1.1fr 1fr;
  }
}

.ss-blog-featured-img {
  min-height: 260px;
  background-size: cover;
  background-position: center;
}

.ss-blog-featured-body {
  padding: 2.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ss-blog-featured-body h2 {
  color: var(--ss-navy);
  margin-bottom: .85rem;
}

.ss-blog-sidebar-widget {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.ss-blog-sidebar-widget h6 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 600;
  margin-bottom: 1.1rem;
}

.ss-blog-category-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--ss-navy);
  opacity: .75;
  text-decoration: none !important;
  padding: .55rem 0;
  border-bottom: 1px solid var(--ss-gray);
  font-size: .92rem;
}

.ss-blog-category-link:last-child {
  border-bottom: none;
}

.ss-blog-category-link:hover,
.ss-blog-category-link.is-active {
  color: var(--ss-orange);
  opacity: 1;
}

.ss-blog-category-link .badge {
  background: var(--ss-neutral);
  color: var(--ss-navy);
  font-weight: 600;
}

.ss-blog-recent-item {
  display: flex;
  gap: .85rem;
  padding: .75rem 0;
  border-bottom: 1px solid var(--ss-gray);
}

.ss-blog-recent-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.ss-blog-recent-item img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}

.ss-blog-recent-item a {
  color: var(--ss-navy);
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none !important;
  line-height: 1.35;
}

.ss-blog-recent-item a:hover {
  color: var(--ss-orange);
}

.ss-blog-recent-item .ss-blog-recent-date {
  color: var(--ss-navy);
  opacity: .55;
  font-size: .78rem;
  margin-top: .2rem;
}

.ss-share-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

.ss-share-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  background: var(--ss-neutral);
  color: var(--ss-navy) !important;
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none !important;
  border: 1px solid var(--ss-gray);
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  cursor: pointer;
}

.ss-share-btn:hover {
  background: var(--ss-orange);
  border-color: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-blog-tag {
  display: inline-block;
  background: var(--ss-neutral);
  color: var(--ss-navy);
  font-size: .8rem;
  font-weight: 600;
  padding: .35rem 1rem;
  border-radius: 999px;
  margin: 0 .5rem .5rem 0;
  text-decoration: none !important;
}

.ss-blog-tag:hover {
  background: var(--ss-orange);
  color: #FFFFFF !important;
}

.ss-blog-author-card {
  display: flex;
  gap: 1.25rem;
  background: var(--ss-neutral);
  border-radius: var(--ss-radius);
  padding: 1.75rem;
  align-items: flex-start;
}

.ss-blog-author-card .ss-avatar-circle {
  width: 64px;
  height: 64px;
  font-size: 1.3rem;
}

.ss-blog-author-card h6 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 700;
  margin-bottom: .35rem;
}

.ss-blog-author-card p {
  color: var(--ss-navy);
  opacity: .7;
  margin: 0;
  font-size: .92rem;
}

.ss-gallery-thumb:hover img {
  transform: scale(1.06);
}

/* --------------------------------------------------------------------
   Contact page — info card, form, map, FAQ
   -------------------------------------------------------------------- */
.ss-contact-info-card {
  background: var(--ss-navy);
  color: #FFFFFF;
  border-radius: var(--ss-radius);
  padding: 2.5rem;
  height: 100%;
}

.ss-contact-info-card h3 {
  color: #FFFFFF;
  margin-bottom: .75rem;
}

.ss-contact-info-card>p {
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 2rem;
}

.ss-contact-info-row {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.ss-contact-info-row .ss-icon-circle {
  width: 44px;
  height: 44px;
  font-size: 1rem;
  background: rgba(234, 88, 12, 0.18);
  flex-shrink: 0;
}

.ss-contact-info-row a,
.ss-contact-info-row span {
  color: #FFFFFF !important;
  text-decoration: none !important;
  font-weight: 500;
}

.ss-contact-info-row a:hover {
  color: var(--ss-orange) !important;
}

.ss-contact-info-row .ss-contact-info-label {
  color: rgba(255, 255, 255, 0.55);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .2rem;
  display: block;
}

.ss-contact-info-card .ss-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #FFFFFF !important;
  margin-right: .5rem;
}

.ss-contact-info-card .ss-social a:hover {
  background: var(--ss-orange);
}

.ss-contact-trust-line {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.75);
  font-size: .9rem;
}

.ss-contact-trust-line strong {
  color: var(--ss-orange);
}

.ss-contact-form-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow-lg);
  padding: 2.5rem;
}

.ss-contact-form-card label {
  color: var(--ss-navy);
  font-weight: 600;
  font-size: .9rem;
  margin-bottom: .4rem;
  display: inline-block;
}

.ss-contact-form-card .invalid-feedback {
  display: block;
  color: #dc3545;
  font-size: .82rem;
  margin-top: .3rem;
}

.ss-contact-form-card .is-invalid {
  border-color: #dc3545 !important;
}

.ss-hp-field {
  position: absolute;
  left: -9999px;
  top: -9999px;
  opacity: 0;
  height: 0;
  width: 0;
}

.ss-map-frame {
  border-radius: var(--ss-radius);
  overflow: hidden;
  box-shadow: var(--ss-shadow);
}

.ss-map-frame iframe {
  width: 100%;
  height: 380px;
  border: 0;
  display: block;
}

/* --------------------------------------------------------------------
   CMS page template (legal/document pages) — extends .ss-prose with
   table styling and orange list markers for long structured content.
   -------------------------------------------------------------------- */
.ss-prose li::marker {
  color: var(--ss-orange);
  font-weight: 600;
}

.ss-prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: .95rem;
}

.ss-prose th,
.ss-prose td {
  border: 1px solid var(--ss-gray);
  padding: .65rem .9rem;
  text-align: left;
  color: var(--ss-navy);
}

.ss-prose th {
  background: var(--ss-neutral);
  font-family: var(--ss-font-heading);
  font-weight: 600;
}

.ss-cms-page-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  padding: 2.5rem;
}

.ss-cms-updated {
  color: var(--ss-navy);
  opacity: .6;
  font-size: .85rem;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--ss-gray);
}

.ss-toc {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  padding: 1.5rem;
  position: sticky;
  top: 100px;
}

.ss-toc h6 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 600;
  margin-bottom: 1rem;
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.ss-toc ol {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: toc;
}

.ss-toc li {
  counter-increment: toc;
  margin-bottom: .65rem;
}

.ss-toc a {
  color: var(--ss-navy);
  opacity: .7;
  text-decoration: none !important;
  font-size: .85rem;
  line-height: 1.4;
  display: flex;
  gap: .5rem;
}

.ss-toc a::before {
  content: counter(toc) '.';
  color: var(--ss-orange);
  font-weight: 600;
  flex-shrink: 0;
}

.ss-toc a:hover,
.ss-toc a.is-active {
  color: var(--ss-orange);
  opacity: 1;
}

@media (max-width: 991.98px) {
  .ss-toc {
    display: none;
  }
}

/* --------------------------------------------------------------------
   About page — story image, values cards, stats band, team, tech chips
   -------------------------------------------------------------------- */
.ss-story-img {
  border-radius: var(--ss-radius);
  overflow: hidden;
  box-shadow: var(--ss-shadow-lg);
}

.ss-story-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ss-mv-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  padding: 2.25rem;
  height: 100%;
}

.ss-mv-card h3 {
  color: var(--ss-navy);
  margin: 1rem 0 .75rem;
}

.ss-mv-card p {
  color: var(--ss-navy);
  opacity: .75;
  margin: 0;
}

.ss-value-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  padding: 1.75rem;
  height: 100%;
  transition: box-shadow .2s ease, transform .2s ease;
}

.ss-value-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-4px);
}

.ss-value-card h5 {
  color: var(--ss-navy);
  margin: 1rem 0 .5rem;
  font-size: 1.05rem;
}

.ss-value-card p {
  color: var(--ss-navy);
  opacity: .7;
  margin: 0;
  font-size: .9rem;
}

.ss-stats-band-item {
  text-align: center;
}

.ss-stats-band-number {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--ss-orange);
}

.ss-stats-band-label {
  color: rgba(255, 255, 255, 0.75);
  font-size: .9rem;
  margin-top: .35rem;
}

.ss-team-card {
  background: var(--ss-white);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  text-align: center;
}

.ss-team-card:hover {
  box-shadow: var(--ss-shadow-lg);
  transform: translateY(-4px);
}

.ss-team-card-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center top;
  display: block;
  background: var(--ss-neutral);
}

.ss-team-card-body {
  padding: 1.5rem;
}

.ss-team-card-body h5 {
  color: var(--ss-navy);
  font-family: var(--ss-font-heading);
  font-weight: 600;
  margin-bottom: .25rem;
}

.ss-team-card-designation {
  color: var(--ss-orange);
  font-weight: 600;
  font-size: .88rem;
  margin-bottom: .75rem;
}

.ss-team-card-bio {
  color: var(--ss-navy);
  opacity: .7;
  font-size: .88rem;
  margin-bottom: 1rem;
}

.ss-team-skills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .4rem;
  margin-bottom: 1rem;
}

.ss-team-skill-chip {
  background: var(--ss-neutral);
  color: var(--ss-navy);
  font-size: .72rem;
  font-weight: 600;
  padding: .25rem .7rem;
  border-radius: 999px;
}

.ss-team-social {
  display: flex;
  justify-content: center;
  gap: .5rem;
}

.ss-team-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(234, 88, 12, 0.1);
  color: var(--ss-orange) !important;
}

.ss-team-social a:hover {
  background: var(--ss-orange);
  color: #FFFFFF !important;
}

/* ==========================================================================
   RESPONSIVE / ACCESSIBILITY AUDIT PASS
   Mobile-first fixes layered on top of the rules above. Kept as one block
   (rather than scattered inline) so this file stays the single source of
   truth — later rules here intentionally override earlier same-topic ones.
   ========================================================================== */

/* --------------------------------------------------------------------
   Part 1 — Global foundation
   -------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

body.ss-body {
  overflow-x: hidden;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Long words/URLs/emails must never force horizontal scroll. */
.ss-body p,
.ss-body li,
.ss-body td,
.ss-body th,
.ss-prose,
.ss-footer,
.ss-contact-info-row,
.ss-detail-meta-list {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Fluid headings — replaces the fixed 700-weight base size with a scale
   that never gets too large on small phones or too small on desktop. */
.ss-body h1,
h1.ss-heading {
  font-size: clamp(1.75rem, 5vw, 3.25rem);
  line-height: 1.2;
}

.ss-body h2,
h2.ss-heading {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  line-height: 1.25;
}

.ss-body h3,
h3.ss-heading {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  line-height: 1.3;
}

.ss-body h4 {
  font-size: clamp(1.1rem, 2vw, 1.25rem);
  line-height: 1.3;
}

.ss-body {
  font-size: clamp(0.95rem, 1.5vw, 1.05rem);
  line-height: 1.65;
}

@media (max-width: 767.98px) {
  .ss-body {
    line-height: 1.65;
  }
}

/* Fluid section rhythm — scales the vertical padding instead of jumping
   between two fixed values at one breakpoint. */
.ss-section {
  padding-top: clamp(2.5rem, 6vw, 6rem);
  padding-bottom: clamp(2.5rem, 6vw, 6rem);
}

.ss-section-sm {
  padding-top: clamp(1.75rem, 4vw, 3rem);
  padding-bottom: clamp(1.75rem, 4vw, 3rem);
}

.ss-container {
  padding-left: clamp(1rem, 4vw, 2rem);
  padding-right: clamp(1rem, 4vw, 2rem);
}

/* iOS Safari zooms in on focus if a form field's font-size is under 16px —
   force 16px on every text-like input regardless of breakpoint. */
.ss-form-control,
.ss-body input[type="text"],
.ss-body input[type="email"],
.ss-body input[type="tel"],
.ss-body input[type="search"],
.ss-body input[type="password"],
.ss-body input[type="number"],
.ss-body select,
.ss-body textarea {
  font-size: 16px;
  min-height: 48px;
}

.ss-body textarea,
.ss-body textarea.ss-form-control {
  min-height: 120px;
  height: auto;
}

/* Tap targets — every interactive control gets a real 44x44 hit area. */
.btn-ss-primary,
.btn-ss-outline,
.btn-ss-outline-light,
.ss-drawer-toggle,
.ss-drawer-close,
.ss-portfolio-filter-btn,
.ss-share-btn,
.ss-hero-swiper .swiper-button-next,
.ss-hero-swiper .swiper-button-prev,
.ss-footer .ss-social a,
.ss-contact-info-card .ss-social a,
.ss-team-social a,
.page-link {
  min-height: 44px;
  min-width: 44px;
}

.ss-drawer-toggle,
.ss-drawer-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ss-nav-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.ss-drawer .ss-nav-link {
  min-height: 48px;
}

/* Disable hover-only lift/scale effects on touch devices — a tap should
   never leave a card "stuck" mid-animation the way :hover can on touch. */
@media (hover: none) {

  .ss-card:hover,
  .ss-blog-card:hover,
  .ss-portfolio-grid-card:hover,
  .ss-value-card:hover,
  .ss-team-card:hover,
  .ss-pricing-card:hover,
  .btn-ss-primary:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------
   Part 2 — Header / mobile drawer
   -------------------------------------------------------------------- */
@media (max-width: 991.98px) {
  .ss-header-inner {
    height: 64px;
  }

  .ss-header .ss-logo img {
    height: 32px;
  }
}

.ss-drawer-toggle {
  font-size: 1.2rem;
}

/* --------------------------------------------------------------------
   Static single-image hero (replaces the Swiper carousel on the homepage)
   -------------------------------------------------------------------- */
.ss-static-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(480px, 75vh, 760px);
  max-height: 760px;
  background-color: var(--ss-navy);
  background-size: cover;
  background-position: center;
}

@media (max-width: 767.98px) {
  .ss-static-hero {
    min-height: clamp(480px, 82vh, 620px);
    max-height: none;
  }

  .ss-static-hero .ss-hero-slide-content p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .ss-static-hero .ss-hero-slide-content .d-flex.flex-wrap {
    flex-direction: column;
    align-items: stretch;
  }

  .ss-static-hero .ss-hero-slide-content .d-flex.flex-wrap>.btn-ss-primary,
  .ss-static-hero .ss-hero-slide-content .d-flex.flex-wrap>.btn-ss-outline-light {
    width: 100%;
    text-align: center;
  }
}

/* --------------------------------------------------------------------
   Part 3 — Hero sections
   -------------------------------------------------------------------- */
.ss-hero-swiper {
  height: auto;
  min-height: clamp(480px, 75vh, 760px);
  max-height: 760px;
}

@media (max-width: 767.98px) {
  .ss-hero-swiper {
    min-height: clamp(480px, 82vh, 620px);
    max-height: none;
  }

  .ss-hero-swiper .swiper-button-next,
  .ss-hero-swiper .swiper-button-prev {
    display: none;
  }

  .ss-hero-swiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 5px !important;
  }

  .ss-hero-slide-content p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .ss-hero-slide-content .d-flex.flex-wrap {
    flex-direction: column;
    align-items: stretch;
  }

  .ss-hero-slide-content .d-flex.flex-wrap>.btn-ss-primary,
  .ss-hero-slide-content .d-flex.flex-wrap>.btn-ss-outline-light {
    width: 100%;
    text-align: center;
  }
}

.ss-page-hero {
  min-height: clamp(220px, 32vh, 380px);
  padding: clamp(2rem, 6vw, 3.5rem) 0;
}

.ss-page-hero .ss-container {
  padding-left: clamp(1rem, 4vw, 2rem);
  padding-right: clamp(1rem, 4vw, 2rem);
}

.ss-page-hero-subtitle {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 480px) {
  .ss-page-hero-breadcrumb {
    font-size: .8rem;
    word-break: break-word;
  }
}

/* --------------------------------------------------------------------
   Part 4 — Grids & cards
   -------------------------------------------------------------------- */
.ss-blog-excerpt,
.ss-team-card-bio,
.ss-value-card p,
.ss-mv-card p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Card thumbnails use aspect-ratio instead of a fixed px height so they
   scale cleanly at any column width instead of cropping oddly. */
.ss-blog-card-thumb,
.ss-blog-card-thumb img {
  aspect-ratio: 16 / 10;
  height: auto;
}

.ss-portfolio-grid-thumb img,
.ss-portfolio-grid-thumb .ss-portfolio-grid-placeholder {
  aspect-ratio: 4 / 3;
  height: auto;
}

.ss-portfolio-card img {
  aspect-ratio: 4 / 3;
  height: auto;
}

/* Push CTAs to the bottom of equal-height cards in a row. */
.ss-service-features {
  margin-top: auto;
}

/* --------------------------------------------------------------------
   Part 5 — Pricing
   -------------------------------------------------------------------- */
.ss-pricing-price {
  font-size: clamp(1.75rem, 6vw, 2.5rem);
  white-space: nowrap;
}

@media (max-width: 991.98px) {

  /* Featured plan moves visually first — both in the tablet 2-column grid
     (where it would otherwise wrap alone as the 3rd item) and the mobile
     single-column stack. The column div gets `.ss-order-first-mobile` in
     the Blade template. */
  .ss-order-first-mobile {
    order: -1;
  }
}

@media (max-width: 767.98px) {
  .ss-pricing-card.is-featured {
    margin-top: 1.5rem;
  }
}

/* --------------------------------------------------------------------
   Part 6 — Blog / legal reading column
   -------------------------------------------------------------------- */
.ss-cms-page-card,
.ss-contact-form-card,
.ss-mv-card,
.ss-value-card {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.ss-blog-featured-body {
  padding: clamp(1.5rem, 4vw, 2.25rem);
}

@media (max-width: 767.98px) {
  .ss-prose {
    font-size: 1rem;
  }

  .ss-prose h2 {
    font-size: clamp(1.25rem, 4vw, 1.5rem);
  }

  .ss-prose h3 {
    font-size: clamp(1.1rem, 3vw, 1.2rem);
  }
}

.ss-prose table {
  display: block;
  overflow-x: auto;
  white-space: nowrap;
}

/* --------------------------------------------------------------------
   Part 7 — Forms
   -------------------------------------------------------------------- */
@media (max-width: 575.98px) {

  /* Only the newsletter partial (footer + homepage band) uses .input-group
     anywhere in this frontend, so a blanket rule is safe and also covers
     the homepage instance, whose outer form has different utility classes. */
  .ss-body .input-group {
    flex-direction: column;
  }

  .ss-body .input-group>* {
    width: 100%;
    border-radius: var(--ss-radius) !important;
  }

  .ss-body .input-group>*+* {
    margin-top: .6rem;
  }
}

/* --------------------------------------------------------------------
   Part 8 — Footer
   -------------------------------------------------------------------- */
.ss-footer .ss-social a,
.ss-contact-info-card .ss-social a,
.ss-team-social a {
  width: 44px;
  height: 44px;
}

@media (max-width: 767.98px) {
  .ss-footer {
    text-align: left;
  }

  .ss-footer-logo-block img {
    height: 44px;
  }

  .ss-copyright {
    flex-direction: column;
    text-align: center;
    gap: .5rem;
  }
}

/* --------------------------------------------------------------------
   Part 9 — Accessibility
   -------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.btn-ss-primary:focus-visible,
.btn-ss-outline:focus-visible,
.ss-nav-link:focus-visible,
.ss-portfolio-filter-btn:focus-visible,
.ss-service-filter-btn:focus-visible,
.ss-share-btn:focus-visible {
  outline: 3px solid var(--ss-orange);
  outline-offset: 2px;
}

.ss-drawer-toggle:focus-visible,
.ss-drawer-close:focus-visible {
  outline: 3px solid var(--ss-orange);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ==========================================================================
   FUTURISTIC REDESIGN LAYER — mesh, glass, reveals, service explorer,
   process motion, brand hero. Appended so existing selectors stay intact
   while the marketing site gains the new visual language.
   ========================================================================== */

/* Mesh / atmospheric backgrounds */
.ss-mesh-bg {
  position: relative;
  isolation: isolate;
}

.ss-mesh-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 60% at 12% 18%, rgba(14, 116, 144, 0.14), transparent 55%),
    radial-gradient(ellipse 70% 50% at 88% 12%, rgba(234, 88, 12, 0.1), transparent 50%),
    radial-gradient(ellipse 60% 40% at 70% 88%, rgba(14, 116, 144, 0.08), transparent 55%),
    linear-gradient(180deg, var(--ss-neutral) 0%, #EEF1F6 100%);
}

.ss-mesh-bg>* {
  position: relative;
  z-index: 1;
}

.ss-mesh-grid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.ss-mesh-grid::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.45;
  background-image:
    linear-gradient(rgba(23, 32, 51, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23, 32, 51, 0.045) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
}

.ss-section-ai {
  background:
    radial-gradient(ellipse 60% 50% at 100% 0%, rgba(14, 116, 144, 0.08), transparent 55%),
    var(--ss-neutral);
}

/* Glass panels */
.ss-glass {
  background: var(--ss-surface);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: var(--ss-shadow);
}

.section-dark .ss-glass,
.ss-card.ss-glass-dark {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.section-dark .ss-glass:hover,
.ss-card.ss-glass-dark:hover {
  border-color: rgba(234, 88, 12, 0.35);
  background: rgba(255, 255, 255, 0.09);
}

/* Scroll reveals */
.ss-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity var(--ss-duration) var(--ss-ease),
    transform var(--ss-duration) var(--ss-ease);
  will-change: opacity, transform;
}

.ss-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ss-reveal-delay-1 {
  transition-delay: 0.08s;
}

.ss-reveal-delay-2 {
  transition-delay: 0.16s;
}

.ss-reveal-delay-3 {
  transition-delay: 0.24s;
}

.ss-reveal-delay-4 {
  transition-delay: 0.32s;
}

.ss-reveal-delay-5 {
  transition-delay: 0.4s;
}

@media (prefers-reduced-motion: reduce) {

  .ss-reveal,
  .ss-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .ss-hero-brand-line,
  .ss-process-line.is-animated,
  .ss-static-hero .ss-hero-orbit {
    animation: none !important;
  }

  .ss-card,
  .ss-blog-card,
  .ss-portfolio-grid-card,
  .ss-value-card,
  .ss-team-card,
  .ss-pricing-card,
  .btn-ss-primary {
    transition: none !important;
  }

  .ss-card:hover,
  .ss-blog-card:hover,
  .ss-portfolio-grid-card:hover,
  .btn-ss-primary:hover {
    transform: none !important;
  }
}

/* Brand-forward home hero */
.ss-static-hero {
  position: relative;
  overflow: hidden;
  background-color: var(--ss-navy-deep);
}

.ss-static-hero.ss-hero-futuristic {
  min-height: min(100vh, 820px);
  max-height: none;
  align-items: center;
}

.ss-static-hero .ss-hero-atmosphere {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 45% at 78% 42%, rgba(14, 116, 144, 0.28), transparent 60%),
    radial-gradient(ellipse 40% 35% at 18% 70%, rgba(234, 88, 12, 0.18), transparent 55%),
    linear-gradient(105deg, rgba(15, 22, 36, 0.92) 0%, rgba(23, 32, 51, 0.72) 55%, rgba(15, 22, 36, 0.55) 100%);
}

.ss-static-hero .ss-hero-orbit {
  position: absolute;
  width: min(52vw, 520px);
  height: min(52vw, 520px);
  right: -6%;
  top: 50%;
  transform: translateY(-50%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;
  animation: ss-orbit-pulse 8s ease-in-out infinite;
}

.ss-static-hero .ss-hero-orbit::before,
.ss-static-hero .ss-hero-orbit::after {
  content: '';
  position: absolute;
  inset: 12%;
  border-radius: 50%;
  border: 1px solid rgba(14, 116, 144, 0.35);
}

.ss-static-hero .ss-hero-orbit::after {
  inset: 28%;
  border-color: rgba(234, 88, 12, 0.28);
}

@keyframes ss-orbit-pulse {

  0%,
  100% {
    opacity: 0.55;
    transform: translateY(-50%) scale(1);
  }

  50% {
    opacity: 0.9;
    transform: translateY(-50%) scale(1.04);
  }
}

.ss-hero-brand {
  display: block;
  font-family: var(--ss-font-heading);
  font-weight: 800;
  font-size: clamp(1.85rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  color: #FFFFFF;
  line-height: 1.05;
  margin-bottom: 0.85rem;
}

.ss-hero-brand-line {
  display: block;
  width: 72px;
  height: 3px;
  background: linear-gradient(90deg, var(--ss-orange), var(--ss-steel));
  margin-bottom: 1.35rem;
  transform-origin: left center;
  animation: ss-line-draw 1s var(--ss-ease) both;
}

@keyframes ss-line-draw {
  from {
    transform: scaleX(0);
    opacity: 0;
  }

  to {
    transform: scaleX(1);
    opacity: 1;
  }
}

.ss-body .ss-hero-futuristic .ss-hero-slide-content h1 {
  font-size: clamp(1.55rem, 3.4vw, 2.35rem);
  font-weight: 700;
  max-width: 18ch;
  margin-bottom: 1rem;
}

.ss-hero-futuristic .ss-hero-slide-content p {
  max-width: 38ch;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.82);
}

.ss-hero-eyebrow {
  border-radius: 6px;
  letter-spacing: 0.1em;
  background: rgba(14, 116, 144, 0.2);
  border: 1px solid rgba(14, 116, 144, 0.35);
  color: #7DD3E8;
}

/* Trust / stats */
.ss-trust-band {
  background: linear-gradient(180deg, #EEF1F6 0%, var(--ss-neutral) 100%);
  border-bottom: 1px solid var(--ss-border);
}

.ss-stat-value {
  font-family: var(--ss-font-heading);
  font-weight: 800;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: var(--ss-orange);
  letter-spacing: -0.03em;
  line-height: 1;
}

.ss-stat-label {
  color: rgba(23, 32, 51, 0.65);
  font-size: 0.9rem;
  margin-top: 0.4rem;
}

.ss-client-logo {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  border-radius: 10px;
  border-color: var(--ss-border);
  opacity: 0.7;
}

/* Service explorer */
.ss-service-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
  margin-bottom: 2rem;
}

.ss-service-filter-btn {
  font-family: var(--ss-font-body);
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--ss-navy);
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid var(--ss-border);
  border-radius: 8px;
  padding: 0.55rem 1.05rem;
  cursor: pointer;
  transition: background-color var(--ss-duration-fast) ease,
    color var(--ss-duration-fast) ease,
    border-color var(--ss-duration-fast) ease,
    transform var(--ss-duration-fast) ease;
  min-height: 44px;
}

.ss-service-filter-btn:hover {
  border-color: var(--ss-steel);
  color: var(--ss-steel);
}

.ss-service-filter-btn.is-active {
  background: var(--ss-navy);
  border-color: var(--ss-navy);
  color: #FFFFFF !important;
}

.ss-service-filter-btn:focus-visible {
  outline: 3px solid var(--ss-orange);
  outline-offset: 2px;
}

.ss-service-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.ss-service-card .ss-service-card-link {
  margin-top: auto;
}

.ss-service-item {
  transition: opacity var(--ss-duration-fast) ease, transform var(--ss-duration-fast) ease;
}

.ss-service-item.is-dimmed {
  opacity: 0.28;
  transform: scale(0.98);
  pointer-events: none;
}

.ss-service-item.is-highlighted .ss-card {
  border-color: rgba(14, 116, 144, 0.45);
  box-shadow: 0 16px 40px rgba(14, 116, 144, 0.12);
}

/* Process timeline animation */
.ss-process-track {
  position: relative;
}

.ss-process-line {
  background: linear-gradient(90deg, transparent, rgba(234, 88, 12, 0.55), var(--ss-steel), transparent);
  height: 2px;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.1s var(--ss-ease);
}

.ss-process-line.is-animated {
  transform: scaleX(1);
}

.ss-process-step-num {
  font-family: var(--ss-font-heading);
  font-weight: 800;
  font-size: 1.75rem;
  color: var(--ss-orange);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 0.65rem;
}

.ss-process-step.is-visible .ss-process-step-num {
  text-shadow: 0 0 24px rgba(234, 88, 12, 0.25);
}

/* Page hero upgrade */
.ss-page-hero {
  overflow: hidden;
}

.ss-page-hero-overlay {
  background:
    linear-gradient(120deg, rgba(15, 22, 36, 0.92) 0%, rgba(23, 32, 51, 0.78) 55%, rgba(14, 116, 144, 0.4) 100%);
}

.ss-page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  opacity: 0.5;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000, transparent 80%);
}

.ss-page-hero .ss-container {
  z-index: 2;
}

.ss-page-hero-breadcrumb {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 0.45rem 1rem;
  margin-bottom: 1.25rem;
}

/* CTA / newsletter bands */
.ss-cta-final {
  background:
    radial-gradient(ellipse 50% 60% at 50% 0%, rgba(234, 88, 12, 0.08), transparent 60%),
    var(--ss-neutral);
}

.ss-cta-band {
  background: linear-gradient(135deg, rgba(234, 88, 12, 0.08), rgba(14, 116, 144, 0.08));
  border: 1px solid rgba(234, 88, 12, 0.18);
  backdrop-filter: blur(8px);
}

/* Search affordance */
.ss-search-shell {
  background: var(--ss-white);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  box-shadow: var(--ss-shadow-lg);
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.ss-search-shell .ss-form-control {
  border: none;
  box-shadow: none;
  padding-left: 0;
  min-height: 44px;
}

.ss-search-shell .ss-form-control:focus {
  box-shadow: none;
}

.ss-search-kbd {
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(23, 32, 51, 0.45);
  border: 1px solid var(--ss-border);
  border-radius: 6px;
  padding: 0.2rem 0.45rem;
  white-space: nowrap;
}

/* Header scroll progress */
.ss-scroll-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: transparent;
  pointer-events: none;
}

.ss-scroll-progress>span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--ss-orange), var(--ss-steel));
  transition: width 0.05s linear;
}

/* Portfolio / pricing polish */
.ss-portfolio-filter-btn,
.ss-pricing-ribbon {
  border-radius: 8px;
}

.ss-pricing-card.is-featured {
  border-color: var(--ss-orange);
  /* background:
    linear-gradient(180deg, rgba(234, 88, 12, 0.04), transparent 40%),
    var(--ss-white); */

}

/* Footer signal line */
.ss-footer {
  background:
    linear-gradient(180deg, rgba(14, 116, 144, 0.08) 0%, transparent 28%),
    var(--ss-navy-deep);
  position: relative;
}

.ss-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ss-orange), var(--ss-steel), transparent);
}

@media (max-width: 767.98px) {
  .ss-static-hero.ss-hero-futuristic {
    min-height: clamp(520px, 88vh, 720px);
  }

  .ss-static-hero .ss-hero-orbit {
    width: 280px;
    height: 280px;
    right: -20%;
    opacity: 0.5;
  }

  .ss-hero-brand {
    font-size: clamp(1.65rem, 8vw, 2.1rem);
  }

  .ss-service-filters {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.35rem;
    margin-left: -0.25rem;
    margin-right: -0.25rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .ss-service-filter-btn {
    flex: 0 0 auto;
  }

  .ss-service-item.is-dimmed {
    display: none;
  }
}

/* ==========================================================================
   NEXT-GEN AI POLISH — chips, neural constellation, scan, capabilities
   ========================================================================== */

:root {
  --ss-font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

.ss-ai-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--ss-font-mono);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7DD3E8;
  background: rgba(14, 116, 144, 0.18);
  border: 1px solid rgba(125, 211, 232, 0.35);
  border-radius: 999px;
  padding: 0.4rem 0.95rem;
  margin-bottom: 1rem;
}

.ss-ai-chip--hero {
  margin-bottom: 1.15rem;
}

.ss-ai-chip--light {
  color: var(--ss-steel);
  background: rgba(14, 116, 144, 0.08);
  border-color: rgba(14, 116, 144, 0.22);
}

.ss-ai-chip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2DD4BF;
  box-shadow: 0 0 0 0 rgba(45, 212, 191, 0.55);
  animation: ss-ai-pulse 1.8s ease-out infinite;
  flex-shrink: 0;
}

@keyframes ss-ai-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(45, 212, 191, 0.55);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(45, 212, 191, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(45, 212, 191, 0);
  }
}

.ss-scan-line {
  position: absolute;
  left: 0;
  right: 0;
  top: -20%;
  height: 28%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg,
      transparent 0%,
      rgba(125, 211, 232, 0.07) 45%,
      rgba(234, 88, 12, 0.05) 55%,
      transparent 100%);
  animation: ss-scan-sweep 7s ease-in-out infinite;
}

@keyframes ss-scan-sweep {
  0% {
    transform: translateY(0);
    opacity: 0;
  }

  12% {
    opacity: 1;
  }

  88% {
    opacity: 1;
  }

  100% {
    transform: translateY(320%);
    opacity: 0;
  }
}

.ss-neural {
  position: absolute;
  width: min(56vw, 560px);
  height: min(56vw, 560px);
  right: -4%;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
  opacity: 0.9;
}

.ss-neural-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.ss-neural-node {
  fill: rgba(125, 211, 232, 0.85);
  stroke: rgba(255, 255, 255, 0.35);
  stroke-width: 1.5;
}

.ss-neural-node--core {
  fill: var(--ss-orange);
  stroke: rgba(255, 255, 255, 0.5);
}

.ss-neural-node--pulse {
  animation: ss-node-pulse 2.4s ease-in-out infinite;
  transform-origin: center;
  transform-box: fill-box;
}

.ss-neural-node--pulse:nth-of-type(2) {
  animation-delay: 0.4s;
}

.ss-neural-node--pulse:nth-of-type(4) {
  animation-delay: 0.9s;
}

.ss-neural-node--pulse:nth-of-type(8) {
  animation-delay: 1.3s;
}

@keyframes ss-node-pulse {

  0%,
  100% {
    opacity: 0.55;
    transform: scale(0.92);
  }

  50% {
    opacity: 1;
    transform: scale(1.18);
  }
}

.ss-neural.is-alive .ss-neural-links {
  animation: ss-link-glow 3.5s ease-in-out infinite;
}

@keyframes ss-link-glow {

  0%,
  100% {
    opacity: 0.55;
  }

  50% {
    opacity: 1;
  }
}

.ss-intelligence-layer {
  background:
    radial-gradient(ellipse 50% 60% at 10% 20%, rgba(14, 116, 144, 0.1), transparent 55%),
    radial-gradient(ellipse 40% 50% at 90% 80%, rgba(234, 88, 12, 0.06), transparent 50%),
    linear-gradient(180deg, #EEF1F6 0%, var(--ss-neutral) 100%);
  border-top: 1px solid var(--ss-border);
  border-bottom: 1px solid var(--ss-border);
}

.ss-ai-capability {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  padding: 1.5rem 1.25rem;
  transition: border-color var(--ss-duration-fast) ease, transform var(--ss-duration-fast) ease, box-shadow var(--ss-duration-fast) ease;
  height: 100%;
}

.ss-ai-capability:hover {
  border-color: rgba(14, 116, 144, 0.4);
  transform: translateY(-4px);
  box-shadow: var(--ss-shadow-lg);
}

.ss-ai-capability h5 {
  font-family: var(--ss-font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.ss-service-card {
  position: relative;
}

.ss-ai-ready-tag {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  font-family: var(--ss-font-mono);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ss-steel);
  background: var(--ss-steel-soft);
  border: 1px solid rgba(14, 116, 144, 0.25);
  border-radius: 6px;
  padding: 0.25rem 0.55rem;
}

.ss-service-card--ai {
  border-color: rgba(14, 116, 144, 0.35);
  background:
    linear-gradient(160deg, rgba(14, 116, 144, 0.06), transparent 45%),
    var(--ss-white);
}

.ss-service-item.is-highlighted[data-ss-service="ai"] .ss-card,
.ss-service-item.is-highlighted .ss-service-card--ai {
  border-color: rgba(14, 116, 144, 0.55);
  box-shadow: 0 16px 40px rgba(14, 116, 144, 0.16);
}

.ss-page-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ss-font-mono);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7DD3E8;
  background: rgba(14, 116, 144, 0.18);
  border: 1px solid rgba(125, 211, 232, 0.3);
  border-radius: 999px;
  padding: 0.4rem 0.9rem;
  margin-bottom: 1rem;
}

.ss-page-hero-eyebrow .ss-ai-chip-dot {
  width: 7px;
  height: 7px;
}

@media (max-width: 767.98px) {
  .ss-neural {
    width: 300px;
    height: 300px;
    right: -28%;
    opacity: 0.45;
  }

  .ss-scan-line {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {

  .ss-ai-chip-dot,
  .ss-scan-line,
  .ss-neural-node--pulse,
  .ss-neural.is-alive .ss-neural-links {
    animation: none !important;
  }

  .ss-ai-capability:hover {
    transform: none;
  }
}

/* ==========================================================================
   SILICONSMITHS DARK AI REDESIGN — 2026
   Premium dark interface based on the approved page mockups.
   ========================================================================== */
:root {
  --ss-orange: #ff6b18;
  --ss-orange-dark: #d94801;
  --ss-orange-light: #ff9a58;
  --ss-cyan: #2edcff;
  --ss-blue: #1689ff;
  --ss-blue-deep: #0758ca;
  --ss-bg: #040914;
  --ss-bg-2: #06101f;
  --ss-bg-3: #09172a;
  --ss-card: rgba(9, 24, 45, .84);
  --ss-card-solid: #09172a;
  --ss-line: rgba(87, 183, 255, .16);
  --ss-line-strong: rgba(87, 183, 255, .3);
  --ss-text: #f5f8ff;
  --ss-muted: #91a2bb;
  --ss-muted-2: #6f829e;
  --ss-navy: #071225;
  --ss-navy-deep: #040914;
  --ss-white: #ffffff;
  --ss-neutral: #06101f;
  --ss-gray: rgba(136, 162, 194, .2);
  --ss-border: rgba(87, 183, 255, .16);
  --ss-border-strong: rgba(87, 183, 255, .3);
  --ss-shadow: 0 18px 45px rgba(0, 0, 0, .28);
  --ss-shadow-lg: 0 30px 80px rgba(0, 0, 0, .42);
  --ss-radius: 14px;
  --ss-radius-sm: 9px;
  --ss-container-max: 1240px;
}

html {
  scroll-behavior: smooth;
  background: var(--ss-bg);
}

body.ss-body {
  color: var(--ss-text);
  background:
    radial-gradient(circle at 12% 12%, rgba(22, 137, 255, .09), transparent 27rem),
    radial-gradient(circle at 92% 30%, rgba(46, 220, 255, .055), transparent 30rem),
    var(--ss-bg);
  font-family: var(--ss-font-body);
  font-size: 16px;
  line-height: 1.7;
  min-height: 100vh;
  isolation: isolate;
}

.ss-body h1,
.ss-body h2,
.ss-body h3,
.ss-body h4,
.ss-body h5,
.ss-body h6,
h1.ss-heading,
h2.ss-heading,
h3.ss-heading,
h4.ss-heading {
  color: var(--ss-text);
}

.ss-body p,
.ss-body li {
  color: var(--ss-muted);
}

.ss-main {
  position: relative;
  z-index: 2;
  overflow: hidden;
}

.ss-container {
  max-width: var(--ss-container-max);
}

.ss-section {
  padding-block: clamp(4.5rem, 8vw, 8rem);
  position: relative;
}

.ss-section-sm {
  padding-block: clamp(3rem, 5vw, 5rem);
  position: relative;
}

.ss-narrow {
  max-width: 860px;
}

.text-muted {
  color: var(--ss-muted) !important;
}

.ss-ai-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -3;
  opacity: .28;
  pointer-events: none;
}

.ss-site-noise {
  position: fixed;
  inset: 0;
  z-index: -2;
  opacity: .035;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
}

/* Header */
.ss-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1030;
  background: rgba(4, 9, 20, .72);
  border-bottom: 1px solid rgba(87, 183, 255, .1);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}

.ss-header.is-scrolled {
  background: rgba(4, 9, 20, .94);
  box-shadow: 0 16px 45px rgba(0, 0, 0, .32);
}

.ss-header-inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.ss-header.is-scrolled .ss-header-inner {
  min-height: 64px;
}

.ss-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex: 0 0 auto;
}

.ss-logo img {
  width: auto;
  height: 37px;
  max-width: 210px;
}

.ss-desktop-nav {
  margin-left: auto;
}

.ss-nav-link {
  color: #d6e0ed !important;
  font-size: .82rem;
  font-weight: 600;
  padding: .65rem .75rem;
  letter-spacing: .005em;
}

.ss-nav-link::after {
  left: .75rem;
  right: .75rem;
  bottom: .25rem;
  height: 1px;
  background: linear-gradient(90deg, var(--ss-orange), var(--ss-cyan));
}

.ss-nav-link:hover,
.ss-nav-link.active {
  color: #fff !important;
}

.ss-header-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.ss-scroll-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: transparent;
}

.ss-scroll-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--ss-orange), var(--ss-cyan));
  box-shadow: 0 0 15px rgba(46, 220, 255, .7);
}

.ss-drawer-toggle {
  width: 42px;
  height: 42px;
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.ss-drawer-toggle span {
  width: 20px;
  height: 2px;
  border-radius: 10px;
  background: #fff;
}

.ss-drawer {
  width: min(88vw, 380px);
  padding: 1.4rem;
  background: linear-gradient(160deg, #08182e, #040914 72%);
  border-left: 1px solid var(--ss-line);
}

.ss-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--ss-line);
  margin-bottom: 1.25rem;
}

.ss-drawer-head img {
  height: 34px;
  width: auto;
}

.ss-drawer-close {
  width: 40px;
  height: 40px;
  border: 1px solid var(--ss-line);
  border-radius: 10px;
}

.ss-drawer .ss-nav-link {
  padding: .85rem 0;
  color: #e7eef7 !important;
}

.ss-drawer-card {
  margin-top: 2rem;
  padding: 1.25rem;
  border: 1px solid var(--ss-line);
  border-radius: var(--ss-radius);
  background: rgba(9, 24, 45, .82);
  display: grid;
  gap: .8rem;
}

.ss-drawer-card strong {
  font-family: var(--ss-font-heading);
}

/* Buttons and common headings */
.btn-ss-primary,
.btn-ss-outline,
.btn-ss-outline-light {
  border-radius: 7px;
  min-height: 46px;
  padding: .78rem 1.35rem;
  font-size: .84rem;
  font-weight: 700;
  letter-spacing: .01em;
  gap: .65rem;
}

.btn-ss-primary {
  color: #fff !important;
  background: linear-gradient(135deg, #ff7a22, #f05205);
  border: 1px solid rgba(255, 151, 83, .75);
  box-shadow: 0 10px 32px rgba(240, 82, 5, .28), inset 0 1px rgba(255, 255, 255, .2);
}

.btn-ss-primary:hover,
.btn-ss-primary:focus {
  color: #fff !important;
  transform: translateY(-2px);
  background: linear-gradient(135deg, #ff8e43, #ff5c0a);
  box-shadow: 0 15px 40px rgba(240, 82, 5, .38), 0 0 24px rgba(255, 107, 24, .18);
}

.btn-ss-outline-light,
.btn-ss-outline {
  color: #e7f2ff !important;
  background: rgba(7, 18, 37, .6);
  border: 1px solid rgba(126, 193, 255, .3);
  box-shadow: inset 0 1px rgba(255, 255, 255, .035);
}

.btn-ss-outline-light:hover,
.btn-ss-outline:hover {
  color: #fff !important;
  background: rgba(22, 137, 255, .14);
  border-color: rgba(46, 220, 255, .6);
  transform: translateY(-2px);
}

.btn-ss-sm {
  min-height: 40px;
  padding: .6rem 1.05rem;
  font-size: .78rem;
}

.btn-ss-lg {
  min-height: 52px;
  padding: .9rem 1.55rem;
}

.ss-link,
.ss-card-link {
  color: var(--ss-orange) !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: .82rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.ss-link:hover,
.ss-card-link:hover {
  color: var(--ss-orange-light) !important;
}

.ss-link i,
.ss-card-link i {
  transition: transform .2s ease;
}

.ss-link:hover i,
.ss-card-link:hover i {
  transform: translateX(4px);
}

.ss-kicker {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--ss-orange);
  font-family: var(--ss-font-mono);
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .9rem;
}

.ss-kicker>span {
  width: 20px;
  height: 1px;
  background: linear-gradient(90deg, var(--ss-orange), var(--ss-cyan));
  box-shadow: 0 0 8px rgba(46, 220, 255, .45);
}

.ss-section-heading {
  max-width: 760px;
  margin: 0 auto clamp(2.6rem, 5vw, 4.4rem);
}

.ss-section-heading h2 {
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  margin: 0 0 .75rem;
  letter-spacing: -.035em;
}

.ss-section-heading p {
  max-width: 650px;
  margin: 0 auto;
}

.ss-heading-row {
  max-width: none;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.ss-heading-row>div {
  max-width: 680px;
}

.ss-heading-row p {
  margin-left: 0;
}

.ss-heading-row .ss-link {
  margin-bottom: .55rem;
}

.ss-section-dark-soft {
  background: linear-gradient(180deg, rgba(7, 18, 37, .78), rgba(4, 9, 20, .94));
  border-block: 1px solid rgba(87, 183, 255, .11);
}

/* Cards */
.ss-dark-card {
  position: relative;
  display: block;
  padding: 1.45rem;
  color: inherit;
  text-decoration: none;
  background: linear-gradient(145deg, rgba(13, 34, 61, .88), rgba(5, 16, 31, .88));
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  box-shadow: inset 0 1px rgba(255, 255, 255, .025), 0 18px 45px rgba(0, 0, 0, .16);
  overflow: hidden;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.ss-dark-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 20%, rgba(46, 220, 255, .045), transparent 65%);
  transform: translateX(-110%);
  transition: transform .7s ease;
  pointer-events: none;
}

.ss-dark-card:hover {
  color: inherit;
  transform: translateY(-6px);
  border-color: rgba(46, 220, 255, .42);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .34), 0 0 35px rgba(22, 137, 255, .09);
}

.ss-dark-card:hover::before {
  transform: translateX(110%);
}

.ss-dark-card h2,
.ss-dark-card h3 {
  font-size: 1rem;
  margin: .85rem 0 .55rem;
}

.ss-dark-card p {
  font-size: .84rem;
  line-height: 1.65;
  margin-bottom: 1rem;
}

.ss-icon-box {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(46, 220, 255, .22);
  border-radius: 10px;
  color: var(--ss-cyan);
  background: linear-gradient(145deg, rgba(46, 220, 255, .1), rgba(22, 137, 255, .055));
  box-shadow: inset 0 1px rgba(255, 255, 255, .07), 0 0 20px rgba(46, 220, 255, .06);
  flex: 0 0 auto;
}

.ss-icon-box i {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

/* Home hero */
.ss-home-hero {
  min-height: 760px;
  display: flex;
  align-items: center;
  padding: 9.5rem 0 5rem;
  position: relative;
  background: linear-gradient(105deg, rgba(4, 9, 20, .98) 4%, rgba(4, 9, 20, .93) 48%, rgba(4, 9, 20, .5)), var(--ss-hero-image, none);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.ss-home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 72% 46%, rgba(22, 137, 255, .18), transparent 28rem), linear-gradient(180deg, transparent 65%, var(--ss-bg));
}

.ss-home-hero-grid,
.ss-page-hero-grid {
  position: absolute;
  inset: 0;
  opacity: .42;
  background-image: linear-gradient(rgba(59, 150, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(59, 150, 255, .055) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, #000, transparent 90%);
}

.ss-home-hero-beam {
  position: absolute;
  width: 60%;
  height: 2px;
  left: 45%;
  top: 47%;
  background: linear-gradient(90deg, transparent, rgba(46, 220, 255, .8), transparent);
  box-shadow: 0 0 35px rgba(46, 220, 255, .5);
  transform: rotate(-12deg);
  animation: ss-beam 5s ease-in-out infinite;
}

.ss-home-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
  gap: 3rem;
  align-items: center;
  position: relative;
  z-index: 2;
}

.ss-home-hero-copy {
  max-width: 650px;
}

.ss-home-hero h1 {
  font-size: clamp(2.5rem, 5vw, 4.65rem);
  line-height: 1.04;
  letter-spacing: -.055em;
  margin: 0 0 1.35rem;
}

.ss-home-hero h1 em,
.ss-inner-copy h1 em {
  color: var(--ss-orange);
  font-style: normal;
}

.ss-home-hero-copy>p {
  font-size: 1.03rem;
  max-width: 600px;
  margin-bottom: 1.8rem;
}

.ss-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
}

.ss-tech-trust {
  margin-top: 2.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem;
  color: #8295ad;
  font-size: .78rem;
}

.ss-tech-trust span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.ss-tech-trust i {
  font-size: 1rem;
  color: #aebdd0;
}

.ss-ai-hero-visual {
  min-height: 520px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 900px;
}

.ss-ai-platform {
  width: 350px;
  height: 350px;
  border-radius: 50%;
  position: relative;
  display: grid;
  place-items: center;
  transform: rotateX(62deg);
}

.ss-platform-ring {
  position: absolute;
  inset: var(--ring-inset, 0);
  border: 1px solid rgba(46, 220, 255, .36);
  border-radius: 50%;
  box-shadow: 0 0 28px rgba(46, 220, 255, .14), inset 0 0 25px rgba(22, 137, 255, .07);
  animation: ss-spin 15s linear infinite;
}

.ring-a {
  --ring-inset: 0;
  border-style: dashed;
}

.ring-b {
  --ring-inset: 48px;
  animation-direction: reverse;
  animation-duration: 11s;
}

.ring-c {
  --ring-inset: 100px;
  animation-duration: 7s;
}

.ss-ai-brain {
  width: 136px;
  height: 136px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 4.1rem;
  background: radial-gradient(circle, rgba(46, 220, 255, .26), rgba(22, 137, 255, .09) 45%, rgba(4, 9, 20, .8) 72%);
  border: 1px solid rgba(46, 220, 255, .48);
  box-shadow: 0 0 45px rgba(46, 220, 255, .35), inset 0 0 35px rgba(46, 220, 255, .14);
  transform: rotateX(-62deg);
  animation: ss-float 4.4s ease-in-out infinite;
}

.ss-platform-node {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ss-cyan);
  box-shadow: 0 0 12px var(--ss-cyan);
}

.node-1 {
  top: 5%;
  left: 48%
}

.node-2 {
  top: 20%;
  right: 12%
}

.node-3 {
  top: 50%;
  right: 0
}

.node-4 {
  bottom: 17%;
  right: 17%
}

.node-5 {
  bottom: 2%;
  left: 45%
}

.node-6 {
  bottom: 22%;
  left: 8%
}

.node-7 {
  top: 48%;
  left: 0
}

.node-8 {
  top: 18%;
  left: 17%
}

.ss-ai-base {
  position: absolute;
  bottom: 56px;
  width: 420px;
  height: 90px;
  border-radius: 50%;
  border: 1px solid rgba(46, 220, 255, .22);
  background: radial-gradient(ellipse, rgba(22, 137, 255, .2), rgba(4, 9, 20, .4) 55%, transparent 70%);
  box-shadow: 0 20px 75px rgba(22, 137, 255, .22);
  transform: rotateX(66deg);
}

.ss-ai-base span {
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(46, 220, 255, .13);
  border-radius: 50%;
}

.ss-ai-base span:nth-child(2) {
  inset: 28px
}

.ss-ai-base span:nth-child(3) {
  inset: 40px
}

.ss-ai-hud {
  position: absolute;
  width: 145px;
  padding: .8rem;
  background: rgba(5, 18, 35, .78);
  border: 1px solid rgba(46, 220, 255, .25);
  border-radius: 8px;
  backdrop-filter: blur(12px);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .28);
  animation: ss-float 5s ease-in-out infinite;
}

.ss-ai-hud small {
  display: block;
  color: var(--ss-muted-2);
  font-family: var(--ss-font-mono);
  font-size: .55rem;
  letter-spacing: .09em;
}

.ss-ai-hud strong {
  display: block;
  color: var(--ss-cyan);
  font-size: 1.5rem;
  margin: .15rem 0;
}

.ss-ai-hud span {
  color: #9bacc2;
  font-size: .68rem;
}

.ss-ai-hud-left {
  left: 0;
  top: 22%;
}

.ss-ai-hud-right {
  right: 0;
  top: 33%;
  animation-delay: -1.6s;
}

/* Stats */
.ss-stat-strip {
  position: relative;
  z-index: 5;
  margin-top: -34px;
}

.ss-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: linear-gradient(135deg, rgba(9, 28, 51, .94), rgba(5, 15, 30, .95));
  border: 1px solid var(--ss-line-strong);
  border-radius: 10px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, .36), inset 0 1px rgba(255, 255, 255, .035);
}

.ss-stat-item {
  position: relative;
  min-height: 110px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: .9rem;
  padding: 1.2rem 1.5rem;
}

.ss-stat-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 24%;
  bottom: 24%;
  width: 1px;
  background: var(--ss-line);
}

.ss-stat-item>i {
  grid-row: 1/3;
  align-self: center;
  color: var(--ss-cyan);
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: rgba(46, 220, 255, .07);
  border: 1px solid rgba(46, 220, 255, .15);
}

.ss-stat-item strong {
  color: var(--ss-orange);
  font-family: var(--ss-font-heading);
  font-size: 1.55rem;
  line-height: 1.1;
}

.ss-stat-item span {
  color: #a6b5c8;
  font-size: .7rem;
}

.ss-stat-strip--about {
  margin-top: 0;
  padding-bottom: 1.5rem;
}

/* Capabilities / services / why */
.ss-capability-card h3,
.ss-service-tile h3,
.ss-why-card h3 {
  font-size: 1rem;
}

.ss-service-filter-bar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .5rem;
  margin: -1.5rem 0 2.5rem;
}

.ss-service-filter-bar button,
.ss-portfolio-filters button {
  color: #9eb0c7;
  background: rgba(6, 18, 35, .7);
  border: 1px solid var(--ss-line);
  border-radius: 6px;
  padding: .55rem .9rem;
  font-size: .7rem;
  font-weight: 600;
  cursor: pointer;
  transition: .2s ease;
}

.ss-service-filter-bar button:hover,
.ss-service-filter-bar button.is-active,
.ss-portfolio-filters button:hover,
.ss-portfolio-filters button.is-active {
  color: #fff;
  border-color: rgba(46, 220, 255, .55);
  background: linear-gradient(135deg, rgba(22, 137, 255, .2), rgba(46, 220, 255, .08));
  box-shadow: 0 0 20px rgba(46, 220, 255, .08);
}

[data-ss-service].is-dimmed {
  opacity: .17;
  transform: scale(.98);
  filter: grayscale(.8);
}

.ss-service-tile {
  display: flex;
  flex-direction: column;
  min-height: 235px;
}

.ss-service-tile .ss-card-link {
  margin-top: auto;
}

.ss-why-section {
  background: linear-gradient(180deg, #050d1a, #061225);
  border-block: 1px solid var(--ss-line);
  overflow: hidden;
}

.ss-why-globe {
  position: absolute;
  right: -180px;
  bottom: -250px;
  width: 620px;
  height: 620px;
  border: 1px solid rgba(46, 220, 255, .14);
  border-radius: 50%;
  background-image: linear-gradient(rgba(46, 220, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(46, 220, 255, .07) 1px, transparent 1px);
  background-size: 35px 35px;
  mask-image: radial-gradient(circle, #000 40%, transparent 72%);
  animation: ss-spin 40s linear infinite;
}

.ss-why-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.3rem;
}

.ss-why-card h3 {
  margin-top: .2rem;
}

.ss-why-card p {
  margin-bottom: 0;
}

/* Portfolio */
.ss-portfolio-home,
.ss-portfolio-page {
  background: radial-gradient(circle at 85% 10%, rgba(255, 107, 24, .055), transparent 23rem);
}

.ss-work-card,
.ss-project-card {
  color: inherit;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  background: linear-gradient(150deg, rgba(10, 27, 50, .96), rgba(5, 15, 29, .95));
  border: 1px solid var(--ss-line);
  border-radius: 9px;
  overflow: hidden;
  transition: .25s ease;
}

.ss-work-card:hover,
.ss-project-card:hover {
  color: inherit;
  transform: translateY(-6px);
  border-color: rgba(46, 220, 255, .42);
  box-shadow: 0 25px 55px rgba(0, 0, 0, .35);
}

.ss-work-thumb,
.ss-project-thumb {
  min-height: 180px;
  background-position: center;
  background-size: cover;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 2.6rem;
  position: relative;
  overflow: hidden;
}

.ss-work-thumb::after,
.ss-project-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(4, 9, 20, .72));
}

.ss-work-placeholder {
  background: radial-gradient(circle, rgba(22, 137, 255, .3), transparent 44%), linear-gradient(135deg, #0a2342, #07101e);
}

.ss-work-thumb i,
.ss-project-thumb i {
  position: relative;
  z-index: 1;
}

.ss-work-body,
.ss-project-body {
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.ss-work-body>span,
.ss-project-body>span,
.ss-blog-category {
  color: var(--ss-orange);
  font-family: var(--ss-font-mono);
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.ss-work-body h3,
.ss-project-body h2 {
  font-size: .96rem;
  margin: .45rem 0 .65rem;
}

.ss-work-body strong {
  /* color: var(--ss-cyan); */
  color: #9f9c9c;
  font-size: .78rem;
  margin-top: auto;
}

.ss-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 2.5rem;
}

.ss-portfolio-item {
  display: none;
}

.ss-portfolio-item.is-visible {
  display: block;
  animation: ss-card-in .35s ease both;
}

.ss-project-thumb {
  min-height: 230px;
}

.ss-project-open {
  position: absolute;
  z-index: 2;
  right: 1rem;
  top: 1rem;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(4, 9, 20, .65);
  border: 1px solid var(--ss-line);
  border-radius: 8px;
  opacity: 0;
  transform: translateY(-5px);
  transition: .2s ease;
}

.ss-project-card:hover .ss-project-open {
  opacity: 1;
  transform: none;
}

.ss-project-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
}

.ss-project-meta small {
  color: var(--ss-muted-2)
}

.ss-project-meta strong {
  color: var(--ss-cyan);
  font-size: .75rem
}

/* Process */
.ss-process-section {
  background: linear-gradient(180deg, #06101f, #040914);
  border-block: 1px solid var(--ss-line);
}

.ss-process-track {
  position: relative;
}

.ss-process-line {
  display: block;
  position: absolute;
  top: 37px;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ss-cyan), var(--ss-blue), var(--ss-cyan), transparent);
  opacity: .35;
  transform: scaleX(0);
  transform-origin: left;
}

.ss-process-line.is-animated {
  animation: ss-line-grow 1.5s ease forwards;
}

.ss-process-step {
  position: relative;
  z-index: 2;
  text-align: center;
  padding-inline: .45rem;
  opacity: 0;
  transform: translateY(15px);
}

.ss-process-step.is-visible {
  opacity: 1;
  transform: none;
  transition: .55s ease;
}

.ss-process-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1rem;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 1.1rem;
  background: #06162b;
  border: 1px solid rgba(46, 220, 255, .45);
  border-radius: 50%;
  box-shadow: 0 0 22px rgba(46, 220, 255, .09);
}

.ss-process-step>strong {
  color: var(--ss-cyan);
  font-family: var(--ss-font-mono);
  font-size: .75rem;
}

.ss-process-step h3 {
  font-size: .9rem;
  margin: .35rem 0;
}

.ss-process-step p {
  font-size: .72rem;
  line-height: 1.55
}

/* Testimonials and blog */
.ss-testimonial-section {
  background: radial-gradient(circle at 20% 0, rgba(22, 137, 255, .08), transparent 28rem);
}

.ss-testimonial-card {
  max-width: 780px;
  margin: auto;
  position: relative;
  padding: 2rem 2.2rem;
  background: linear-gradient(145deg, rgba(10, 29, 53, .92), rgba(5, 16, 31, .95));
  border: 1px solid rgba(87, 183, 255, .23);
  border-radius: 10px;
  box-shadow: var(--ss-shadow);
}

.ss-testimonial-card>i {
  color: var(--ss-cyan);
  font-size: 1.8rem;
  opacity: .7;
}

.ss-testimonial-card>p {
  font-size: 1rem;
  color: #c7d4e4;
  margin: 0 0 1.5rem
}

.ss-testimonial-person {
  display: flex;
  align-items: center;
  gap: .8rem;
}

.ss-testimonial-person img,
.ss-testimonial-person>span {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--ss-orange), var(--ss-blue));
  color: #fff;
  font-weight: 700
}

.ss-testimonial-person strong,
.ss-testimonial-person small {
  display: block
}

.ss-testimonial-person small {
  color: var(--ss-muted-2);
  font-size: .7rem
}

.ss-testimonial-swiper {
  padding-bottom: 3.5rem;
}

.ss-testimonial-swiper .swiper-pagination-bullet {
  background: #5b7190
}

.ss-testimonial-swiper .swiper-pagination-bullet-active {
  background: var(--ss-orange)
}

.ss-blog-home,
.ss-blog-page {
  background: linear-gradient(180deg, #06101f, #040914);
}

.ss-blog-card {
  background: linear-gradient(150deg, rgba(10, 28, 52, .96), rgba(5, 15, 30, .95));
  border: 1px solid var(--ss-line);
  border-radius: 9px;
  box-shadow: none;
  overflow: hidden;
}

.ss-blog-card:hover {
  transform: translateY(-6px);
  border-color: rgba(46, 220, 255, .4);
  box-shadow: 0 25px 55px rgba(0, 0, 0, .35);
}

.ss-blog-card-thumb {
  min-height: 205px;
  background-size: cover;
  background-position: center;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 2.4rem;
  position: relative;
}

.ss-blog-card-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(4, 9, 20, .6));
}

.ss-blog-card-body {
  padding: 1.25rem;
}

.ss-blog-card-body h3 {
  font-size: 1rem;
  margin: .5rem 0
}

.ss-blog-card-body h3 a {
  color: #eef5ff;
  text-decoration: none
}

.ss-blog-card-body h3 a:hover {
  color: var(--ss-orange)
}

.ss-blog-card-body p {
  font-size: .82rem;
  line-height: 1.65
}

.ss-blog-meta {
  color: var(--ss-muted-2);
  font-size: .67rem;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: auto
}

.ss-featured-article {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  min-height: 390px;
  margin-bottom: 4rem;
  background: linear-gradient(145deg, rgba(11, 30, 55, .95), rgba(5, 15, 29, .96));
  border: 1px solid var(--ss-line);
  border-radius: 12px;
  overflow: hidden;
}

.ss-featured-article-image {
  background-size: cover;
  background-position: center;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 4rem;
  min-height: 320px;
}

.ss-featured-article-copy {
  padding: clamp(2rem, 4vw, 3.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center
}

.ss-featured-article-copy h2 {
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  margin: .6rem 0
}

.ss-featured-article-copy h2 a {
  color: #fff;
  text-decoration: none
}

.ss-featured-article-copy p {
  font-size: .9rem
}

.ss-blog-sidebar {
  position: sticky;
  top: 100px;
}

.ss-blog-sidebar-widget,
.ss-sidebar-cta {
  padding: 1.35rem;
  background: linear-gradient(145deg, rgba(10, 28, 51, .95), rgba(5, 15, 29, .96));
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  margin-bottom: 1.25rem
}

.ss-blog-sidebar-widget h3,
.ss-sidebar-cta h3 {
  font-size: 1rem;
  margin-bottom: 1rem
}

.ss-blog-category-link {
  color: #a8b7ca !important;
  border-bottom: 1px solid var(--ss-line);
  padding: .7rem 0
}

.ss-blog-category-link strong {
  font-size: .67rem;
  color: var(--ss-cyan)
}

.ss-recent-article {
  display: flex;
  gap: .75rem;
  padding: .65rem 0;
  text-decoration: none;
  border-bottom: 1px solid var(--ss-line)
}

.ss-recent-article>span {
  width: 58px;
  height: 48px;
  flex: 0 0 auto;
  background-size: cover;
  background-position: center;
  border-radius: 6px;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  background-color: #0a1c34
}

.ss-recent-article strong,
.ss-recent-article small {
  display: block
}

.ss-recent-article strong {
  color: #dce7f4;
  font-size: .75rem;
  line-height: 1.35
}

.ss-recent-article small {
  color: var(--ss-muted-2);
  font-size: .62rem;
  margin-top: .2rem
}

.ss-sidebar-cta>i {
  color: var(--ss-orange);
  font-size: 1.6rem;
  margin-bottom: .8rem
}

.ss-newsletter-form .input-group {
  border-radius: 7px;
  overflow: hidden
}

.ss-newsletter-form .form-control {
  min-width: 0
}

/* Inner page heroes */
.ss-page-hero {
  min-height: 500px;
  padding: 9rem 0 5rem;
  background: linear-gradient(110deg, rgba(4, 9, 20, .98), rgba(4, 9, 20, .88) 55%, rgba(4, 9, 20, .48)), var(--ss-page-image, none);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.ss-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 65%, var(--ss-bg));
}

.ss-page-hero-glow {
  position: absolute;
  width: 550px;
  height: 550px;
  right: -120px;
  top: -100px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(22, 137, 255, .18), transparent 65%);
}

.ss-page-hero-inner {
  min-height: 340px;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  position: relative;
  z-index: 2;
}

.ss-page-hero-copy {
  max-width: 670px;
}

.ss-page-hero-title {
  font-size: clamp(2.35rem, 5vw, 4.25rem) !important;
  letter-spacing: -.05em;
  margin: 0 0 1rem
}

.ss-page-hero-subtitle {
  margin: 0;
  max-width: 580px;
  color: #a7b6c9;
  font-size: 1rem
}

.ss-page-hero-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem;
  color: var(--ss-muted-2);
  font-size: .65rem;
  margin-bottom: 1.4rem
}

.ss-page-hero-breadcrumb a {
  color: #91a5bd;
  text-decoration: none
}

.ss-page-hero-breadcrumb a:hover,
.ss-page-hero-breadcrumb .is-current {
  color: var(--ss-orange)
}

.ss-page-hero-breadcrumb i {
  font-size: .5rem;
  opacity: .5
}

.ss-page-hero-art {
  display: grid;
  place-items: center;
}

.ss-orbit-shell {
  width: 280px;
  height: 280px;
  position: relative;
  display: grid;
  place-items: center
}

.ss-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(46, 220, 255, .34);
  animation: ss-spin 13s linear infinite
}

.ss-orbit-1 {
  inset: 0;
  border-style: dashed
}

.ss-orbit-2 {
  inset: 38px;
  animation-direction: reverse;
  animation-duration: 9s
}

.ss-orbit-3 {
  inset: 78px;
  animation-duration: 6s
}

.ss-orbit-core {
  width: 105px;
  height: 105px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 2.8rem;
  background: linear-gradient(145deg, rgba(22, 137, 255, .2), rgba(5, 16, 31, .95));
  border: 1px solid rgba(46, 220, 255, .45);
  box-shadow: 0 0 45px rgba(46, 220, 255, .25);
  animation: ss-float 4s ease-in-out infinite
}

.ss-orbit-node {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ss-orange);
  box-shadow: 0 0 14px var(--ss-orange)
}

.ss-orbit-node-1 {
  top: 8%;
  left: 48%
}

.ss-orbit-node-2 {
  right: 8%;
  top: 48%;
  background: var(--ss-cyan);
  box-shadow: 0 0 14px var(--ss-cyan)
}

.ss-orbit-node-3 {
  bottom: 12%;
  left: 20%
}

/* About */
.ss-inner-split-hero {
  min-height: 650px;
  padding: 9rem 0 4rem;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 78% 44%, rgba(22, 137, 255, .17), transparent 25rem), linear-gradient(180deg, #050b17, #040914)
}

.ss-inner-split-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(46, 220, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(46, 220, 255, .04) 1px, transparent 1px);
  background-size: 55px 55px;
  mask-image: linear-gradient(to bottom, #000, transparent)
}

.ss-inner-split-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 4rem;
  position: relative;
  z-index: 2
}

.ss-inner-copy h1 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  letter-spacing: -.055em;
  line-height: 1.05
}

.ss-inner-copy p {
  max-width: 570px;
  margin: 1.25rem 0 1.75rem
}

.ss-city-orbit {
  width: 390px;
  height: 390px;
  position: relative;
  display: grid;
  place-items: center;
  margin: auto
}

.ss-city-core {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 4rem;
  background: radial-gradient(circle, rgba(22, 137, 255, .32), rgba(5, 16, 31, .85) 65%);
  border: 1px solid rgba(46, 220, 255, .4);
  box-shadow: 0 0 70px rgba(22, 137, 255, .28);
  animation: ss-float 4.5s ease-in-out infinite
}

.ss-city-ring {
  position: absolute;
  border: 1px solid rgba(46, 220, 255, .3);
  border-radius: 50%;
  animation: ss-spin 16s linear infinite
}

.ss-city-ring.ring-1 {
  inset: 0;
  border-style: dashed
}

.ss-city-ring.ring-2 {
  inset: 42px;
  animation-direction: reverse
}

.ss-city-ring.ring-3 {
  inset: 85px
}

.ss-city-beam {
  position: absolute;
  width: 1px;
  height: 320px;
  background: linear-gradient(transparent, var(--ss-cyan), transparent);
  box-shadow: 0 0 20px rgba(46, 220, 255, .5);
  animation: ss-beam-vertical 3.5s ease-in-out infinite
}

.ss-about-story {
  background: radial-gradient(circle at 80% 30%, rgba(22, 137, 255, .06), transparent 25rem)
}

.ss-about-story h2 {
  font-size: clamp(1.8rem, 3vw, 2.8rem)
}

.ss-check-list {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
  display: grid;
  gap: .7rem
}

.ss-check-list li {
  display: flex;
  align-items: center;
  gap: .75rem;
  color: #b9c7d8;
  font-size: .85rem
}

.ss-check-list i {
  color: var(--ss-orange)
}

.ss-team-console {
  border: 1px solid var(--ss-line-strong);
  border-radius: 12px;
  background: rgba(7, 20, 38, .95);
  box-shadow: 0 30px 75px rgba(0, 0, 0, .4);
  overflow: hidden;
  transform: perspective(900px) rotateY(-6deg)
}

.ss-console-top {
  height: 44px;
  border-bottom: 1px solid var(--ss-line);
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 1rem
}

.ss-console-top>span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ss-orange)
}

.ss-console-top>span:nth-child(2) {
  background: #fbbf24
}

.ss-console-top>span:nth-child(3) {
  background: #2dd4bf
}

.ss-console-top small {
  margin-left: auto;
  color: var(--ss-muted-2);
  font-family: var(--ss-font-mono);
  font-size: .6rem
}

.ss-console-screen {
  min-height: 330px;
  position: relative;
  padding: 3rem
}

.ss-code-lines {
  display: grid;
  gap: 15px;
  width: 70%
}

.ss-code-lines i {
  height: 7px;
  border-radius: 20px;
  background: linear-gradient(90deg, rgba(46, 220, 255, .7), rgba(22, 137, 255, .12));
  animation: ss-code 2.7s ease-in-out infinite
}

.ss-code-lines i:nth-child(2) {
  width: 80%;
  animation-delay: -.5s
}

.ss-code-lines i:nth-child(3) {
  width: 95%;
  animation-delay: -1s
}

.ss-code-lines i:nth-child(4) {
  width: 65%;
  animation-delay: -1.4s
}

.ss-code-lines i:nth-child(5) {
  width: 85%;
  animation-delay: -.8s
}

.ss-code-lines i:nth-child(6) {
  width: 55%;
  animation-delay: -1.8s
}

.ss-console-orb {
  position: absolute;
  right: 12%;
  bottom: 16%;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 2.5rem;
  background: radial-gradient(circle, rgba(46, 220, 255, .2), rgba(4, 9, 20, .9));
  border: 1px solid rgba(46, 220, 255, .4);
  box-shadow: 0 0 40px rgba(46, 220, 255, .22);
  animation: ss-float 4s ease-in-out infinite
}

.ss-value-card h3,
.ss-number-card h3 {
  font-size: .95rem
}

.ss-number-card>strong {
  color: var(--ss-orange);
  font-family: var(--ss-font-mono);
  font-size: 1.35rem
}

.ss-skill {
  padding: 1rem 1.1rem;
  border: 1px solid var(--ss-line);
  border-radius: 9px;
  background: rgba(8, 23, 42, .75)
}

.ss-skill>div:first-child {
  display: flex;
  justify-content: space-between;
  color: #d7e2ef;
  font-size: .78rem;
  margin-bottom: .65rem
}

.ss-skill strong {
  color: var(--ss-cyan)
}

.ss-skill-track {
  height: 4px;
  border-radius: 10px;
  background: rgba(136, 162, 194, .12);
  overflow: hidden
}

.ss-skill-track i {
  display: block;
  width: var(--ss-skill);
  height: 100%;
  background: linear-gradient(90deg, var(--ss-blue), var(--ss-cyan));
  box-shadow: 0 0 12px rgba(46, 220, 255, .5);
  transform: scaleX(0);
  transform-origin: left
}

.is-visible .ss-skill-track i,
.ss-skill-track i {
  animation: ss-skill 1.4s .25s ease forwards
}

/* Services */
.ss-services-page {
  background: radial-gradient(circle at 50% 0, rgba(22, 137, 255, .07), transparent 30rem)
}

.ss-service-page-card {
  min-height: 320px;
  display: flex;
  flex-direction: column
}

.ss-service-page-thumb {
  height: 125px;
  margin: -1.45rem -1.45rem 1.2rem;
  background-size: cover;
  background-position: center;
  position: relative
}

.ss-service-page-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(4, 9, 20, .05), rgba(5, 16, 31, .95))
}

.ss-service-page-card h2 {
  font-size: 1rem
}

.ss-service-page-card ul {
  list-style: none;
  padding: 0;
  margin: .25rem 0 1rem;
  display: grid;
  gap: .45rem
}

.ss-service-page-card li {
  font-size: .74rem;
  display: flex;
  gap: .55rem
}

.ss-service-page-card li i {
  color: var(--ss-orange);
  margin-top: .25rem
}

.ss-service-page-card .ss-card-link {
  margin-top: auto
}

.ss-wide-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 2rem 2.2rem;
  border: 1px solid var(--ss-line-strong);
  border-radius: 10px;
  background: linear-gradient(120deg, rgba(10, 31, 57, .95), rgba(5, 15, 29, .95));
  overflow: hidden
}

.ss-wide-cta::before {
  content: "";
  position: absolute;
  right: -60px;
  top: -100px;
  width: 280px;
  height: 280px;
  border: 1px solid rgba(46, 220, 255, .12);
  border-radius: 50%;
  box-shadow: 0 0 70px rgba(22, 137, 255, .12)
}

.ss-wide-cta h2 {
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  margin: 0
}

.ss-wide-cta>* {
  position: relative;
  z-index: 1
}

.ss-benefit-mini-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 2.2rem
}

.ss-benefit-mini-grid>div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  color: #a9b8cb;
  font-size: .72rem
}

.ss-benefit-mini-grid i {
  color: var(--ss-cyan)
}

.ss-service-detail-hero {
  min-height: 620px;
  padding: 9rem 0 4rem;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(105deg, rgba(4, 9, 20, .99), rgba(4, 9, 20, .88) 58%, rgba(4, 9, 20, .68)), var(--ss-detail-image, none);
  background-size: cover;
  background-position: center
}

.ss-service-detail-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 78% 48%, rgba(22, 137, 255, .18), transparent 25rem), linear-gradient(180deg, transparent 65%, var(--ss-bg))
}

.ss-service-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 4rem;
  position: relative;
  z-index: 2
}

.ss-service-detail-copy h1 {
  font-size: clamp(2.5rem, 5vw, 4.4rem);
  letter-spacing: -.055em
}

.ss-service-detail-copy>p {
  max-width: 580px;
  margin: 1rem 0 1.7rem
}

.ss-service-device {
  display: grid;
  place-items: center;
  perspective: 900px
}

.ss-device-frame {
  width: min(100%, 470px);
  height: 310px;
  border: 1px solid rgba(46, 220, 255, .42);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(12, 36, 64, .92), rgba(4, 12, 24, .98));
  box-shadow: 0 35px 80px rgba(0, 0, 0, .45), 0 0 50px rgba(22, 137, 255, .16);
  transform: rotateY(-10deg) rotateX(5deg);
  position: relative;
  padding: 3.2rem 2.3rem;
  animation: ss-device-float 5s ease-in-out infinite
}

.ss-device-frame::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 36px;
  border-bottom: 1px solid var(--ss-line);
  background: rgba(5, 15, 29, .85)
}

.ss-device-code {
  display: grid;
  gap: 13px
}

.ss-device-code i {
  height: 7px;
  border-radius: 20px;
  background: linear-gradient(90deg, var(--ss-blue), rgba(46, 220, 255, .1));
  animation: ss-code 2.5s ease-in-out infinite
}

.ss-device-code i:nth-child(2) {
  width: 72%;
  animation-delay: -.4s
}

.ss-device-code i:nth-child(3) {
  width: 90%;
  animation-delay: -.8s
}

.ss-device-code i:nth-child(4) {
  width: 58%;
  animation-delay: -1.2s
}

.ss-device-code i:nth-child(5) {
  width: 78%;
  animation-delay: -1.6s
}

.ss-device-icon {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  width: 78px;
  height: 78px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: var(--ss-orange);
  font-size: 2rem;
  border: 1px solid rgba(255, 107, 24, .45);
  background: rgba(255, 107, 24, .08);
  box-shadow: 0 0 30px rgba(255, 107, 24, .14)
}

.ss-service-intro h2 {
  font-size: clamp(1.8rem, 3vw, 2.7rem)
}

.ss-offer-panel,
.ss-tech-panel,
.ss-case-meta-panel {
  padding: 1.6rem;
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(10, 28, 51, .94), rgba(5, 15, 29, .95))
}

.ss-offer-panel h3,
.ss-tech-panel h3,
.ss-case-meta-panel h3 {
  font-size: 1rem
}

.ss-offer-grid,
.ss-case-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem
}

.ss-offer-grid>div,
.ss-case-feature-grid>div {
  display: flex;
  gap: .65rem;
  color: #aebdd0;
  font-size: .78rem;
  padding: .7rem;
  border: 1px solid rgba(87, 183, 255, .1);
  border-radius: 7px;
  background: rgba(5, 16, 31, .65)
}

.ss-offer-grid i,
.ss-case-feature-grid i {
  color: var(--ss-orange);
  margin-top: .2rem
}

.ss-tech-panel {
  position: sticky;
  top: 100px
}

.ss-tech-panel>.ss-icon-box {
  margin-bottom: 1rem
}

.ss-tech-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem
}

.ss-tech-cloud span,
.ss-tech-chip {
  display: inline-flex;
  padding: .42rem .7rem;
  border-radius: 6px;
  color: #b9d7f0;
  background: rgba(22, 137, 255, .08);
  border: 1px solid rgba(46, 220, 255, .17);
  font-family: var(--ss-font-mono);
  font-size: .64rem
}

.ss-tech-cta {
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--ss-line)
}

.ss-benefit-card p {
  margin: .8rem 0 0;
  color: #c5d1df
}

.ss-related-card {
  min-height: 180px
}

/* Pricing */
.ss-pricing-section {
  background: radial-gradient(circle at 50% 0, rgba(22, 137, 255, .09), transparent 32rem)
}

.ss-pricing-card {
  color: var(--ss-text);
  background: linear-gradient(155deg, rgba(10, 29, 53, .98), rgba(5, 15, 29, .98));
  border: 1px solid var(--ss-line);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .23);
  padding: 2rem 1.7rem;
  border-radius: 10px
}

.ss-pricing-card:hover {
  transform: translateY(-6px);
  border-color: rgba(46, 220, 255, .4);
  box-shadow: 0 28px 65px rgba(0, 0, 0, .38)
}

.ss-pricing-card.is-featured {
  border-color: rgba(255, 107, 24, .75);
  box-shadow: 0 30px 70px rgba(0, 0, 0, .4), 0 0 35px rgba(255, 107, 24, .1);
  transform: translateY(-12px)
}

.ss-pricing-name {
  color: #dce8f5;
  font-size: .95rem
}

.ss-pricing-tagline {
  color: var(--ss-muted-2);
  font-size: .75rem
}

.ss-pricing-price {
  color: #fff;
  font-size: 2.4rem
}

.ss-pricing-price small {
  color: #fff;
  font-size: .9rem
}

.ss-pricing-period {
  color: var(--ss-muted-2)
}

.ss-pricing-features li {
  color: #a9b8cb;
  font-size: .78rem;
  border-bottom: 1px solid rgba(87, 183, 255, .08);
  padding-bottom: .55rem
}

.ss-pricing-features li.is-included i {
  color: var(--ss-orange)
}

.ss-pricing-features li.is-excluded {
  opacity: .35
}

.ss-pricing-ribbon {
  top: -13px;
  background: linear-gradient(135deg, var(--ss-orange), var(--ss-orange-dark));
  box-shadow: 0 8px 22px rgba(255, 107, 24, .25)
}

.ss-pricing-promises {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 4rem
}

.ss-pricing-promises>div {
  display: flex;
  gap: .8rem;
  padding: 1rem;
  border: 1px solid var(--ss-line);
  border-radius: 9px;
  background: rgba(8, 23, 42, .75)
}

.ss-pricing-promises i {
  color: var(--ss-cyan);
  font-size: 1.2rem
}

.ss-pricing-promises strong,
.ss-pricing-promises span {
  display: block
}

.ss-pricing-promises strong {
  color: #dbe6f3;
  font-size: .78rem
}

.ss-pricing-promises span {
  color: var(--ss-muted-2);
  font-size: .68rem
}

/* FAQ / forms */
.ss-faq-section {
  background: linear-gradient(180deg, #040914, #06101f)
}

.ss-accordion .accordion-item {
  background: linear-gradient(145deg, rgba(10, 28, 51, .9), rgba(5, 15, 29, .95));
  border: 1px solid var(--ss-line);
  border-radius: 8px !important;
  margin-bottom: .75rem;
  overflow: hidden
}

.ss-accordion .accordion-button {
  color: #dce7f4;
  background: transparent;
  font-size: .82rem;
  font-weight: 600;
  box-shadow: none
}

.ss-accordion .accordion-button:not(.collapsed) {
  color: var(--ss-orange);
  background: rgba(255, 107, 24, .035)
}

.ss-accordion .accordion-button::after {
  filter: invert(1);
  opacity: .7
}

.ss-accordion .accordion-body {
  color: var(--ss-muted);
  font-size: .8rem;
  border-top: 1px solid var(--ss-line)
}

.ss-form-control,
.ss-body .form-control,
.ss-body select,
.ss-body textarea {
  color: #eaf2fb;
  background: rgba(4, 14, 28, .78);
  border: 1px solid rgba(87, 183, 255, .2);
  border-radius: 7px;
  min-height: 49px;
  padding: .72rem .85rem
}

.ss-form-control::placeholder,
.ss-body .form-control::placeholder {
  color: #61748e
}

.ss-form-control:focus,
.ss-body .form-control:focus {
  color: #fff;
  background: rgba(5, 17, 33, .95);
  border-color: rgba(46, 220, 255, .6);
  box-shadow: 0 0 0 3px rgba(46, 220, 255, .08), 0 0 20px rgba(46, 220, 255, .06)
}

.ss-contact-form-card label {
  color: #aebed1;
  font-size: .72rem
}

.ss-body select option {
  background: #071427;
  color: #fff
}

.invalid-feedback {
  color: #ff9170
}

/* Case study */
.ss-case-hero {
  padding: 9rem 0 4.5rem;
  min-height: 650px;
  display: flex;
  align-items: center;
  position: relative;
  background: radial-gradient(circle at 75% 40%, rgba(22, 137, 255, .16), transparent 26rem), linear-gradient(180deg, #050b17, #040914)
}

.ss-case-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 4rem
}

.ss-case-copy h1 {
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  letter-spacing: -.055em
}

.ss-case-copy p {
  max-width: 570px;
  margin: 1rem 0 1.7rem
}

.ss-case-device {
  perspective: 900px
}

.ss-case-screen {
  height: 330px;
  border: 1px solid rgba(46, 220, 255, .35);
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  background-color: #0a1e38;
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 4rem;
  box-shadow: 0 35px 90px rgba(0, 0, 0, .48), 0 0 40px rgba(22, 137, 255, .13);
  transform: rotateY(-9deg) rotateX(4deg);
  animation: ss-device-float 5s ease-in-out infinite
}

.ss-case-results {
  position: relative;
  z-index: 3;
  margin-top: -26px
}

.ss-case-result-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: linear-gradient(145deg, rgba(10, 29, 53, .98), rgba(5, 15, 29, .98));
  border: 1px solid var(--ss-line-strong);
  border-radius: 10px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, .35)
}

.ss-case-result-grid>div {
  padding: 1.25rem;
  text-align: center;
  position: relative
}

.ss-case-result-grid>div:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 25%;
  bottom: 25%;
  width: 1px;
  background: var(--ss-line)
}

.ss-case-result-grid strong,
.ss-case-result-grid span {
  display: block
}

.ss-case-result-grid strong {
  color: var(--ss-cyan);
  font-family: var(--ss-font-heading);
  font-size: 1.35rem
}

.ss-case-result-grid span {
  color: var(--ss-muted-2);
  font-size: .66rem
}

.ss-detail-meta-list li {
  border-color: var(--ss-line);
  font-size: .75rem
}

.ss-detail-meta-list .ss-meta-label {
  color: var(--ss-muted-2)
}

.ss-detail-meta-list .ss-meta-value {
  color: #dce8f5
}

.ss-gallery-thumb {
  border-radius: 10px !important;
  overflow: hidden;
  background: #071427
}

.ss-gallery-thumb img {
  height: 270px;
  object-fit: cover
}

.ss-modal-content {
  background: #040914;
  border: 1px solid var(--ss-line);
  padding: 2.5rem 1rem 1rem
}

.ss-modal-content .btn-close {
  position: absolute;
  right: .8rem;
  top: .8rem;
  z-index: 3
}

/* Article */
.ss-article-hero {
  padding: 9rem 0 3rem;
  background: radial-gradient(circle at 80% 20%, rgba(22, 137, 255, .12), transparent 26rem), linear-gradient(180deg, #050b17, #040914)
}

.ss-article-hero-inner {
  max-width: 900px
}

.ss-article-hero h1 {
  font-size: clamp(2.2rem, 5vw, 4.1rem);
  letter-spacing: -.05em;
  margin: .7rem 0 1rem
}

.ss-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  color: var(--ss-muted-2);
  font-size: .72rem
}

.ss-article-cover {
  height: min(52vw, 570px);
  min-height: 300px;
  border: 1px solid var(--ss-line);
  border-radius: 12px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .35)
}

.ss-article-cover--fallback {
  display: grid;
  place-items: center;
  color: var(--ss-cyan);
  font-size: 6rem;
  background: radial-gradient(circle, rgba(22, 137, 255, .25), transparent 35%), #071427
}

.ss-article-section {
  padding-top: 4rem
}

.ss-prose {
  color: #afbdcf;
  font-size: .95rem;
  line-height: 1.85
}

.ss-prose p,
.ss-prose li {
  color: #afbdcf
}

.ss-prose h2,
.ss-prose h3,
.ss-prose h4,
.ss-prose strong {
  color: #eff6ff
}

.ss-prose h2 {
  font-size: 1.65rem
}

.ss-prose h3 {
  font-size: 1.25rem
}

.ss-prose blockquote {
  color: #cbd7e6;
  background: rgba(22, 137, 255, .06);
  border-color: var(--ss-cyan)
}

.ss-prose code {
  color: #ff9c62;
  background: rgba(255, 107, 24, .08)
}

.ss-prose pre {
  background: #020712;
  border: 1px solid var(--ss-line)
}

.ss-prose table {
  color: #bac7d6
}

.ss-prose th,
.ss-prose td {
  color: #bac7d6;
  border-color: var(--ss-line)
}

.ss-prose th {
  background: #081a31;
  color: #e7f0fa
}

.ss-article-tags,
.ss-share-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  padding-top: 1.5rem;
  margin-top: 1.5rem;
  border-top: 1px solid var(--ss-line)
}

.ss-article-tags>strong,
.ss-share-row>strong {
  font-size: .75rem;
  color: #dce7f3
}

.ss-blog-tag,
.ss-share-btn {
  background: rgba(22, 137, 255, .07);
  border: 1px solid var(--ss-line);
  color: #a9bad0 !important
}

.ss-share-btn {
  width: 38px;
  height: 38px;
  padding: 0;
  justify-content: center
}

.ss-share-btn.is-copied {
  color: #fff !important;
  border-color: var(--ss-orange);
  background: rgba(255, 107, 24, .15)
}

.ss-blog-author-card {
  margin-top: 2rem;
  background: linear-gradient(145deg, rgba(10, 28, 51, .9), rgba(5, 15, 29, .95));
  border: 1px solid var(--ss-line)
}

.ss-blog-author-card small {
  color: var(--ss-orange);
  font-family: var(--ss-font-mono);
  font-size: .6rem
}

.ss-blog-author-card h3 {
  font-size: 1rem;
  margin: .15rem 0
}

.ss-blog-author-card p {
  color: var(--ss-muted);
  font-size: .78rem
}

.ss-article-toc a {
  display: block;
  color: #9eafc4;
  text-decoration: none;
  font-size: .72rem;
  padding: .5rem 0;
  border-bottom: 1px solid var(--ss-line)
}

.ss-article-toc a:hover {
  color: var(--ss-orange)
}

/* Contact */
.ss-contact-section {
  background: radial-gradient(circle at 10% 20%, rgba(22, 137, 255, .07), transparent 25rem)
}

.ss-contact-info-card,
.ss-contact-form-card {
  border: 1px solid var(--ss-line);
  border-radius: 11px;
  background: linear-gradient(150deg, rgba(10, 29, 53, .95), rgba(5, 15, 29, .98));
  box-shadow: 0 25px 65px rgba(0, 0, 0, .28);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  position: relative;
  overflow: hidden
}

.ss-contact-info-card h2,
.ss-contact-form-card h2 {
  font-size: clamp(1.6rem, 2.8vw, 2.3rem)
}

.ss-contact-info-card>p {
  font-size: .84rem
}

.ss-contact-list {
  display: grid;
  gap: 1.15rem;
  margin-top: 2rem
}

.ss-contact-list>div {
  display: flex;
  gap: .9rem;
  align-items: center
}

.ss-contact-list small,
.ss-contact-list a,
.ss-contact-list span {
  display: block
}

.ss-contact-list small {
  color: var(--ss-muted-2);
  font-size: .6rem;
  text-transform: uppercase;
  letter-spacing: .08em
}

.ss-contact-list a,
.ss-contact-list div>span {
  color: #dbe6f3 !important;
  text-decoration: none;
  font-size: .78rem
}

.ss-contact-list a:hover {
  color: var(--ss-orange) !important
}

.ss-contact-orbit {
  position: absolute;
  width: 230px;
  height: 230px;
  right: -100px;
  bottom: -90px;
  border: 1px solid rgba(46, 220, 255, .17);
  border-radius: 50%;
  display: grid;
  place-items: center
}

.ss-contact-orbit span {
  position: absolute;
  inset: 35px;
  border: 1px solid rgba(46, 220, 255, .14);
  border-radius: 50%;
  animation: ss-spin 13s linear infinite
}

.ss-contact-orbit span:nth-child(2) {
  inset: 70px;
  animation-direction: reverse
}

.ss-contact-orbit i {
  color: var(--ss-cyan);
  font-size: 1.6rem;
  animation: ss-float 3s ease-in-out infinite
}

.ss-map-frame {
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  box-shadow: 0 25px 65px rgba(0, 0, 0, .28)
}

.ss-map-frame iframe {
  filter: saturate(.65) invert(.9) hue-rotate(175deg) brightness(.68) contrast(1.15)
}

.ss-benefit-mini-grid--cards>div {
  justify-content: flex-start;
  padding: 1.1rem;
  border: 1px solid var(--ss-line);
  border-radius: 9px;
  background: rgba(8, 23, 42, .75)
}

.ss-benefit-mini-grid--cards span,
.ss-benefit-mini-grid--cards strong,
.ss-benefit-mini-grid--cards small {
  display: block
}

.ss-benefit-mini-grid--cards strong {
  color: #dce7f4;
  font-size: .78rem
}

.ss-benefit-mini-grid--cards small {
  color: var(--ss-muted-2);
  font-size: .65rem;
  margin-top: .2rem
}

/* CMS */
.ss-cms-section {
  background: linear-gradient(180deg, #040914, #06101f)
}

.ss-cms-page-card,
.ss-toc {
  background: linear-gradient(145deg, rgba(10, 28, 51, .92), rgba(5, 15, 29, .96));
  border: 1px solid var(--ss-line);
  box-shadow: var(--ss-shadow);
  border-radius: 10px
}

.ss-cms-page-card {
  padding: clamp(1.4rem, 4vw, 2.7rem)
}

.ss-cms-updated {
  color: var(--ss-muted-2);
  border-color: var(--ss-line)
}

.ss-toc {
  top: 100px
}

.ss-toc h3 {
  font-size: .85rem
}

.ss-toc a {
  color: #9eafc4
}

.ss-toc a:hover {
  color: var(--ss-orange)
}

/* 404 */
.ss-error-page {
  min-height: 100vh;
  padding: 9rem 0 4rem;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 80% 60%, rgba(22, 137, 255, .12), transparent 28rem), linear-gradient(180deg, #040914, #06101f)
}

.ss-error-stars {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255, 255, 255, .7) 0 1px, transparent 1.5px);
  background-size: 75px 75px;
  opacity: .18;
  animation: ss-stars 20s linear infinite
}

.ss-error-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 4rem;
  position: relative;
  z-index: 2
}

.ss-error-code {
  display: block;
  color: var(--ss-orange);
  font-family: var(--ss-font-heading);
  font-weight: 800;
  font-size: clamp(5rem, 11vw, 9rem);
  line-height: .9;
  text-shadow: 0 0 35px rgba(255, 107, 24, .18)
}

.ss-error-copy h1 {
  font-size: clamp(2rem, 4vw, 3.5rem);
  margin: .75rem 0
}

.ss-error-copy>p {
  max-width: 500px;
  margin-bottom: 1.7rem
}

.ss-popular-pages {
  margin-top: 3rem
}

.ss-popular-pages>span {
  display: block;
  color: var(--ss-muted-2);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: .8rem
}

.ss-popular-pages>div {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .6rem
}

.ss-popular-pages a {
  display: grid;
  place-items: center;
  gap: .4rem;
  color: #a8b8ca;
  text-decoration: none;
  font-size: .65rem;
  padding: .8rem;
  border: 1px solid var(--ss-line);
  border-radius: 8px;
  background: rgba(8, 23, 42, .7)
}

.ss-popular-pages a:hover {
  color: #fff;
  border-color: rgba(46, 220, 255, .45)
}

.ss-popular-pages i {
  color: var(--ss-cyan)
}

.ss-error-astronaut {
  min-height: 480px;
  position: relative;
  display: grid;
  place-items: center
}

.ss-planet {
  position: absolute;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #23365a, #071225 45%, #020611 72%);
  box-shadow: inset -45px -30px 70px rgba(0, 0, 0, .7), 0 0 70px rgba(22, 137, 255, .15)
}

.ss-astronaut {
  position: relative;
  z-index: 2;
  color: #dcecff;
  font-size: 9rem;
  filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .4));
  animation: ss-astronaut 5s ease-in-out infinite
}

.ss-orbit-line {
  position: absolute;
  width: 450px;
  height: 170px;
  border: 1px solid rgba(46, 220, 255, .18);
  border-radius: 50%;
  transform: rotate(-18deg);
  animation: ss-spin 16s linear infinite
}

/* Footer */
.ss-footer {
  position: relative;
  background: linear-gradient(180deg, #050d1b, #020711);
  border-top: 1px solid rgba(87, 183, 255, .14);
  padding: 0 0 1.4rem;
  color: var(--ss-muted)
}

.ss-footer::before {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ss-cyan), var(--ss-orange), transparent)
}

.ss-footer-cta {
  transform: translateY(-50%);
  margin-bottom: -2rem;
  padding: 1.8rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border: 1px solid var(--ss-line-strong);
  border-radius: 11px;
  background: linear-gradient(120deg, rgba(10, 31, 57, .98), rgba(5, 15, 29, .98));
  box-shadow: 0 28px 70px rgba(0, 0, 0, .38)
}

.ss-footer-cta h2 {
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  margin: 0
}

.ss-footer-grid {
  padding-top: 2rem
}

.ss-footer-logo-block img {
  height: 45px
}

.ss-footer p {
  font-size: .78rem;
  max-width: 360px
}

.ss-footer h6 {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #e8f1fb
}

.ss-footer-links li {
  margin-bottom: .55rem
}

.ss-footer a {
  font-size: .72rem;
  color: #8fa1b8
}

.ss-footer a:hover {
  color: var(--ss-orange)
}

.ss-footer-contact {
  display: grid;
  gap: .65rem
}

.ss-footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .72rem
}

.ss-footer-contact i {
  color: var(--ss-cyan);
  margin-top: .25rem
}

.ss-footer .form-control {
  background: rgba(3, 12, 24, .8);
  border-color: var(--ss-line)
}

.ss-footer .btn-primary {
  background: var(--ss-orange);
  border-color: var(--ss-orange)
}

.ss-copyright {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-color: var(--ss-line);
  font-size: .65rem
}

.ss-legal-links {
  display: flex;
  gap: 1rem
}

.ss-footer .ss-social a,
.ss-contact-info-card .ss-social a {
  width: 35px;
  height: 35px;
  border: 1px solid var(--ss-line);
  background: rgba(22, 137, 255, .06)
}

.ss-footer .ss-social a:hover,
.ss-contact-info-card .ss-social a:hover {
  background: rgba(255, 107, 24, .15);
  border-color: rgba(255, 107, 24, .45)
}

/* Empty state */
.ss-empty-state {
  text-align: center;
  padding: 4rem 1.5rem;
  border: 1px solid var(--ss-line);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(10, 28, 51, .8), rgba(5, 15, 29, .9))
}

.ss-empty-state>i {
  color: var(--ss-cyan);
  font-size: 2.6rem;
  margin-bottom: 1rem
}

.ss-empty-state h2 {
  font-size: 1.5rem
}

.ss-empty-state p {
  max-width: 520px;
  margin: .5rem auto 1.5rem
}

/* Motion */
.ss-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .72s cubic-bezier(.22, 1, .36, 1), transform .72s cubic-bezier(.22, 1, .36, 1)
}

.ss-reveal.is-visible {
  opacity: 1;
  transform: none
}

.ss-reveal-delay-1 {
  transition-delay: .08s
}

.ss-reveal-delay-2 {
  transition-delay: .16s
}

.ss-reveal-delay-3 {
  transition-delay: .24s
}

@keyframes ss-spin {
  to {
    transform: rotate(360deg)
  }
}

@keyframes ss-float {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-12px)
  }
}

@keyframes ss-device-float {

  0%,
  100% {
    transform: rotateY(-10deg) rotateX(5deg) translateY(0)
  }

  50% {
    transform: rotateY(-8deg) rotateX(4deg) translateY(-12px)
  }
}

@keyframes ss-beam {

  0%,
  100% {
    opacity: .2;
    transform: rotate(-12deg) translateX(-8%)
  }

  50% {
    opacity: .8;
    transform: rotate(-12deg) translateX(8%)
  }
}

@keyframes ss-beam-vertical {

  0%,
  100% {
    opacity: .2;
    transform: translateY(-15%)
  }

  50% {
    opacity: .8;
    transform: translateY(15%)
  }
}

@keyframes ss-code {

  0%,
  100% {
    opacity: .35;
    transform: scaleX(.75);
    transform-origin: left
  }

  50% {
    opacity: 1;
    transform: scaleX(1)
  }
}

@keyframes ss-line-grow {
  to {
    transform: scaleX(1)
  }
}

@keyframes ss-skill {
  to {
    transform: scaleX(1)
  }
}

@keyframes ss-card-in {
  from {
    opacity: 0;
    transform: translateY(12px)
  }

  to {
    opacity: 1;
    transform: none
  }
}

@keyframes ss-stars {
  to {
    transform: translateY(75px)
  }
}

@keyframes ss-astronaut {

  0%,
  100% {
    transform: translateY(0) rotate(-7deg)
  }

  50% {
    transform: translateY(-18px) rotate(5deg)
  }
}

/* Responsive */
@media (max-width:1199.98px) {
  .ss-home-hero-inner {
    grid-template-columns: 1fr .85fr
  }

  .ss-ai-platform {
    width: 300px;
    height: 300px
  }

  .ss-ai-hud {
    display: none
  }

  .ss-ai-base {
    width: 350px
  }

  .ss-home-hero h1 {
    font-size: clamp(2.5rem, 5vw, 4rem)
  }
}

@media (max-width:991.98px) {
  .ss-header-inner {
    min-height: 66px
  }

  .ss-main {
    padding-top: 0
  }

  .ss-home-hero {
    padding-top: 8rem;
    min-height: auto
  }

  .ss-home-hero-inner,
  .ss-inner-split-grid,
  .ss-service-detail-grid,
  .ss-case-hero-grid,
  .ss-error-grid {
    grid-template-columns: 1fr
  }

  .ss-home-hero-copy,
  .ss-inner-copy,
  .ss-service-detail-copy,
  .ss-case-copy {
    max-width: 760px
  }

  .ss-ai-hero-visual {
    min-height: 420px
  }

  .ss-inner-split-hero,
  .ss-service-detail-hero,
  .ss-case-hero {
    padding-top: 8.5rem
  }

  .ss-city-orbit {
    width: 330px;
    height: 330px
  }

  .ss-page-hero-inner {
    grid-template-columns: 1fr .65fr
  }

  .ss-page-hero-art {
    opacity: .65
  }

  .ss-featured-article {
    grid-template-columns: 1fr
  }

  .ss-blog-sidebar,
  .ss-tech-panel {
    position: static
  }

  .ss-process-line {
    display: none
  }

  .ss-case-device {
    max-width: 650px
  }

  .ss-footer-cta {
    transform: none;
    margin: 0 0 3rem
  }

  .ss-footer {
    padding-top: 3rem
  }

  .ss-pricing-card.is-featured {
    transform: none
  }

  .ss-benefit-mini-grid,
  .ss-pricing-promises {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media (max-width:767.98px) {
  .ss-container {
    padding-inline: 1rem
  }

  .ss-section {
    padding-block: 4rem
  }

  .ss-section-sm {
    padding-block: 3rem
  }

  .ss-header-inner {
    min-height: 62px
  }

  .ss-logo img {
    height: 32px;
    max-width: 185px
  }

  .ss-home-hero {
    padding-top: 7rem
  }

  .ss-home-hero h1 {
    font-size: clamp(2.2rem, 11vw, 3.2rem)
  }

  .ss-home-hero-copy>p {
    font-size: .92rem
  }

  .ss-hero-actions {
    display: grid
  }

  .ss-hero-actions a {
    width: 100%
  }

  .ss-ai-hero-visual {
    min-height: 330px
  }

  .ss-ai-platform {
    width: 245px;
    height: 245px
  }

  .ss-ai-brain {
    width: 95px;
    height: 95px;
    font-size: 3rem
  }

  .ss-ai-base {
    width: 285px;
    bottom: 30px
  }

  .ss-stat-strip {
    margin-top: -15px
  }

  .ss-stat-grid,
  .ss-case-result-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .ss-stat-item {
    min-height: 94px;
    padding: 1rem
  }

  .ss-stat-item:nth-child(2)::after {
    display: none
  }

  .ss-stat-item strong {
    font-size: 1.25rem
  }

  .ss-heading-row {
    display: block
  }

  .ss-heading-row .ss-link {
    margin-top: 1rem
  }

  .ss-service-filter-bar {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .4rem
  }

  .ss-why-card {
    display: block
  }

  .ss-why-card .ss-icon-box {
    margin-bottom: .8rem
  }

  .ss-process-step {
    opacity: 1;
    transform: none
  }

  .ss-page-hero {
    padding-top: 7.5rem;
    min-height: 460px
  }

  .ss-page-hero-inner {
    grid-template-columns: 1fr
  }

  .ss-page-hero-art {
    display: none
  }

  .ss-page-hero-title {
    font-size: clamp(2.15rem, 10vw, 3.2rem) !important
  }

  .ss-inner-split-hero,
  .ss-service-detail-hero,
  .ss-case-hero {
    padding: 7.5rem 0 4rem
  }

  .ss-inner-copy h1,
  .ss-service-detail-copy h1,
  .ss-case-copy h1 {
    font-size: clamp(2.25rem, 10vw, 3.2rem)
  }

  .ss-city-orbit {
    width: 260px;
    height: 260px
  }

  .ss-city-core {
    width: 130px;
    height: 130px;
    font-size: 3rem
  }

  .ss-team-console {
    transform: none
  }

  .ss-console-screen {
    min-height: 260px;
    padding: 2rem
  }

  .ss-service-device {
    display: none
  }

  .ss-offer-grid,
  .ss-case-feature-grid {
    grid-template-columns: 1fr
  }

  .ss-wide-cta,
  .ss-footer-cta {
    display: block;
    padding: 1.5rem
  }

  .ss-wide-cta .btn-ss-primary,
  .ss-footer-cta .btn-ss-primary {
    margin-top: 1.2rem;
    width: 100%
  }

  .ss-benefit-mini-grid,
  .ss-pricing-promises {
    grid-template-columns: 1fr
  }

  .ss-featured-article-image {
    min-height: 240px
  }

  .ss-featured-article-copy {
    padding: 1.5rem
  }

  .ss-blog-sidebar {
    margin-top: 1rem
  }

  .ss-case-screen {
    height: 260px;
    transform: none;
    animation: ss-float 5s ease-in-out infinite
  }

  .ss-case-result-grid>div:nth-child(2)::after {
    display: none
  }

  .ss-article-cover {
    height: 320px
  }

  .ss-article-hero h1 {
    font-size: clamp(2rem, 10vw, 3rem)
  }

  .ss-contact-info-card,
  .ss-contact-form-card {
    padding: 1.35rem
  }

  .ss-popular-pages>div {
    grid-template-columns: repeat(2, 1fr)
  }

  .ss-error-astronaut {
    min-height: 330px
  }

  .ss-planet {
    width: 250px;
    height: 250px
  }

  .ss-astronaut {
    font-size: 6.5rem
  }

  .ss-orbit-line {
    width: 320px
  }

  .ss-footer-cta h2 {
    font-size: 1.45rem
  }

  .ss-copyright {
    display: grid;
    text-align: center;
    justify-content: center
  }

  .ss-legal-links {
    justify-content: center
  }
}

@media (max-width:479.98px) {

  .ss-stat-grid,
  .ss-case-result-grid {
    grid-template-columns: 1fr
  }

  .ss-stat-item:not(:last-child)::after,
  .ss-case-result-grid>div:not(:last-child)::after {
    top: auto;
    left: 12%;
    right: 12%;
    bottom: 0;
    width: auto;
    height: 1px;
    display: block
  }

  .ss-stat-item {
    grid-template-columns: auto 1fr
  }

  .ss-tech-trust {
    gap: .85rem
  }

  .ss-city-orbit {
    width: 230px;
    height: 230px
  }

  .ss-pricing-card {
    padding: 1.6rem 1.25rem
  }

  .ss-blog-author-card {
    display: block
  }

  .ss-blog-author-card .ss-avatar-circle {
    margin-bottom: 1rem
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto
  }

  .ss-ai-canvas {
    display: none
  }

  .ss-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important
  }

  .ss-home-hero-beam,
  .ss-platform-ring,
  .ss-ai-brain,
  .ss-ai-hud,
  .ss-city-ring,
  .ss-city-beam,
  .ss-console-orb,
  .ss-code-lines i,
  .ss-device-frame,
  .ss-device-code i,
  .ss-case-screen,
  .ss-error-stars,
  .ss-astronaut,
  .ss-orbit-line,
  .ss-orbit,
  .ss-orbit-core,
  .ss-contact-orbit span,
  .ss-contact-orbit i {
    animation: none !important
  }

  .ss-dark-card:hover,
  .ss-work-card:hover,
  .ss-project-card:hover,
  .ss-blog-card:hover,
  .ss-pricing-card:hover {
    transform: none
  }
}

/* Integration safety: keep the global navigation in document flow so the
   non-marketing frontend modules included in the supplied views archive are
   never hidden underneath it. */
.ss-ai-canvas {
  z-index: 0;
}

.ss-site-noise {
  z-index: 1;
}

.ss-main,
.ss-footer {
  z-index: 2;
}

.ss-header {
  position: sticky;
  top: 0;
}

.ss-home-hero {
  padding-top: 6.5rem;
}

.ss-page-hero {
  padding-top: 5.75rem;
}

.ss-inner-split-hero,
.ss-service-detail-hero,
.ss-case-hero,
.ss-article-hero,
.ss-error-page {
  padding-top: 6rem;
}

@media (max-width: 767.98px) {
  .ss-home-hero {
    padding-top: 5rem;
  }

  .ss-page-hero,
  .ss-inner-split-hero,
  .ss-service-detail-hero,
  .ss-case-hero,
  .ss-article-hero,
  .ss-error-page {
    padding-top: 4.75rem;
  }

  /* Pricing cards: consistent mobile spacing */
  @media (max-width: 767.98px) {
    .ss-pricing-section .row.g-4 {
      --bs-gutter-y: 0;
      row-gap: 1.5rem;
    }

    .ss-pricing-section .ss-pricing-card.is-featured {
      transform: none !important;
      top: auto !important;
      margin: 0 !important;
    }
  }
}