/* NOVA SERVICES — ISOLATED STYLES */

#services.nova-services {
  --ns-blue: #78cfff;
  --ns-text: #eeeef3;
  --ns-muted: #aab7c7;
  --ns-line: rgba(115, 185, 230, .25);
  position: relative;
  padding: 75px 5%;
  
background:
  radial-gradient(
    ellipse 65% 55% at 50% 54%,
    rgba(57, 108, 158, 0.13) 0%,
    rgba(22, 55, 95, 0.055) 48%,
    transparent 85%
  ),
  radial-gradient(
    ellipse 90% 90% at 50% 50%,
    transparent 40%,
    rgba(0, 0, 0, 0.32) 100%
  ),
  linear-gradient(
    rgba(145, 185, 220, 0.018) 1px,
    transparent 1px
  ),
  linear-gradient(
    90deg,
    rgba(145, 185, 220, 0.018) 1px,
    transparent 1px
  ),
  #030711;

background-size:
  auto,
  auto,
  90px 90px,
  90px 90px,
  auto;

  color: var(--ns-text);
  font-family: Manrope, Arial, sans-serif;
}

#services,
#services * {
  box-sizing: border-box;
}

#services [hidden] {
  display: none !important;
}

#services button {
  font-family: inherit;
  cursor: pointer;
}

#services button:focus-visible,
#services a:focus-visible {
  outline: 2px solid var(--ns-blue);
  outline-offset: 4px;
}

#services .ns-wrap {
  max-width: 1320px;
  margin: auto;
}

#services .ns-heading,
#services .ns-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  color: var(--ns-muted);
  font-size: 11px;
  letter-spacing: .1em;
  line-height: 1.7;
}

#services .ns-heading {
  margin-bottom: 25px;
}

#services .ns-bottom {
  margin-top: 20px;
}

#services .ns-stage {
  width: 82%;
  max-width: 1000px;
  margin: 35px auto;
  position: relative;
  perspective: 1100px;
  perspective-origin: 50% 40%;
}

#services .ns-cover {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 340px;
  min-height: 0;
  padding: 30px;
  overflow: hidden;
  border: 1px solid #45647e;
  background: #102438;
  color: #f3f7fc;
  text-align: center;
  appearance: none;
}

#services .ns-doorway {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      rgba(3, 12, 24, .12),
      rgba(3, 12, 24, .3)
    ),
    url("images/services-blue.jpg") center / cover no-repeat;
}

#services .ns-cover-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #f3f7fc;
  text-shadow: 0 2px 25px rgba(0, 8, 20, .75);
}

#services .ns-small {
  margin-bottom: 15px;
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

#services .ns-cover-title {
  font-family: Italiana, Georgia, serif;
  font-size: clamp(58px, 8vw, 105px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.045em;
}

#services .ns-cover-hint {
  margin-top: 20px;
  font-size: 12px;
  letter-spacing: .08em;
  visibility: hidden;
}

/* FOUR FLIPPING PANELS */

#services .ns-cards {
  position: relative;
  display: block;
  width: 100%;
  height: 340px;
  perspective: 1100px;
  perspective-origin: 50% 40%;
}

#services .ns-slice {
  position: absolute;
  top: 0;
  width: 25%;
  height: 100%;
  transform-style: preserve-3d;
  transform-origin: center;
}

#services .ns-flipper {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

#services .ns-front,
#services .ns-back {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

#services .ns-front {
  overflow: hidden;
  background: #102438;
}

#services .ns-front-picture {
  position: absolute;
  top: 0;
  height: 100%;
  overflow: hidden;
}

#services .ns-front-picture .ns-doorway {
  position: absolute;
  inset: 0;
}

#services .ns-front-picture .ns-cover-copy {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
}

#services .ns-back {
  transform: rotateY(180deg);
}

#services .ns-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  padding: 24px 20px;
  border-top: 1px solid rgba(255,255,255,.65);
  border-left: 1px solid rgba(255,255,255,.4);
  border-right: 3px solid rgba(10,30,50,.3);
  border-bottom: 4px solid rgba(10,30,50,.35);
  background: var(--card-color);
  color: var(--card-ink);
  text-align: left;
  box-shadow: 0 20px 35px rgba(0,0,0,.45);
  transition: box-shadow .3s, border-color .3s;
}

#services .ns-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,.18),
    transparent 40%,
    rgba(12,35,55,.08)
  );
}

#services .ns-card:hover {
  border-color: rgba(255,255,255,.8);
  box-shadow: 0 28px 48px rgba(0,0,0,.55);
}

#services .ns-card[data-dialog="ns-growth"] {
  --card-color: #f2f0eb;
  --card-ink: #243448;
}

#services .ns-card[data-dialog="ns-websites"] {
  --card-color: #dce9f3;
  --card-ink: #233b54;
}

#services .ns-card[data-dialog="ns-packaging"] {
  --card-color: #aac9e1;
  --card-ink: #19344e;
}

#services .ns-card[data-dialog="ns-social"] {
  --card-color: #557b9f;
  --card-ink: #ffffff;
}

#services .ns-number {
  font-size: 11px;
  letter-spacing: .15em;
}

#services .ns-card-symbol {
  margin: 28px 0;
  font-family: Georgia, serif;
  font-size: 52px;
  font-style: italic;
}

#services .ns-card-name {
  margin-top: auto;
  font-size: 11px;
  line-height: 1.8;
  letter-spacing: .06em;
}

#services .ns-card-note {
  margin-top: 12px;
  font-size: 10px;
  line-height: 1.7;
  opacity: .85;
}

#services .ns-card-arrow {
  position: absolute;
  top: 20px;
  right: 20px;
}

#services .ns-reset {
  min-height: 44px;
  padding: 8px 0;
  border: 0;
  background: none;
  color: var(--ns-blue);
  font-size: 11px;
}

/* SERVICE DETAILS */

#services .ns-dialog {
  width: min(1100px, 94vw);
  max-width: 94vw;
  max-height: 90dvh;
  margin: auto;
  padding: 0;
  overflow-y: auto;
  border: 1px solid #315777;
  background: #060b15;
  color: #eeeef3;
  font-family: Manrope, Arial, sans-serif;
}

#services .ns-dialog::backdrop {
  background: rgba(0, 0, 0, .86);
}

#services .ns-dialog-bar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 15px 5%;
  border-bottom: 1px solid #28445e;
  background: #060b15;
  color: #b8cde0;
  font-size: 11px;
}

#services .ns-close {
  min-height: 44px;
  padding: 8px 0 8px 15px;
  border: 0;
  background: none;
  color: #eeeef3;
}

#services .ns-detail {
  padding: 55px 6% 70px;
}

#services .ns-detail h2 {
  margin: 0 0 25px;
  font-family: Italiana, Georgia, serif;
  font-size: clamp(39px, 5.8vw, 76px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.04em;
}

#services .ns-detail em {
  color: #78cfff;
  font-weight: 400;
}

#services .ns-lead {
  max-width: 650px;
  margin: 0 0 40px;
  color: #aab7c7;
  font-size: 15px;
  line-height: 1.9;
}

#services .ns-roadmap {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  padding: 25px 0;
  border-block: 1px solid #28445e;
}

#services .ns-roadmap > span {
  color: #d6e5f2;
  font-size: 10px;
  line-height: 1.8;
}

#services .ns-roadmap > span:not(:last-child)::after {
  content: " →";
  color: #78cfff;
}

#services .ns-roadmap small {
  display: block;
  margin-top: 8px;
  color: #aab7c7;
  font-size: 10px;
}

#services .ns-social-roadmap {
  margin-top: 20px;
}

#services .ns-social-roadmap > span::after {
  display: none;
}

#services .ns-statement {
  margin: 55px 0;
  font-family: Italiana, Georgia, serif;
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.035em;
}

#services .ns-capabilities {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 30px;
  margin: 30px 0;
  color: #b6d3e8;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: .1em;
}

#services .ns-placeholder {
  display: grid;
  place-content: center;
  min-height: 200px;
  margin: 40px 0;
  padding: 30px;
  border: 1px dashed #426480;
  text-align: center;
}

#services .ns-placeholder > span,
#services .ns-label {
  color: #78cfff;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: .12em;
}

#services .ns-placeholder p,
#services .ns-pricing p,
#services .ns-price-grid p,
#services .ns-plans p,
#services .ns-plans li {
  color: #aab7c7;
  font-size: 13px;
  line-height: 1.9;
}

#services .ns-placeholder p {
  max-width: 480px;
  margin: 15px auto 0;
}

#services .ns-mockup {
  min-height: 300px;
}

#services .ns-pricing {
  padding-top: 35px;
  border-top: 1px solid #28445e;
}

#services .ns-detail h3 {
  margin: 20px 0;
  font-family: Italiana, Georgia, serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.3;
}

#services .ns-cta {
  display: inline-flex;
  align-items: center;
  gap: 25px;
  min-height: 46px;
  margin-top: 15px;
  padding: 12px 22px;
  border: 1px solid #286bb2;
  background: #0757aa;
  color: #fff;
  font-size: 11px;
  letter-spacing: .06em;
  text-decoration: none;
}

#services .ns-cta:hover {
  background: #0278ff;
}

#services .ns-price-grid,
#services .ns-plans {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
  margin: 40px 0;
}

#services .ns-plans {
  grid-template-columns: repeat(3, 1fr);
}

#services .ns-plans article {
  padding: 25px 20px;
  border: 1px solid #28445e;
}

#services .ns-plans ul {
  padding-left: 17px;
}

#services .ns-plans li {
  margin-bottom: 10px;
}

#services p.ns-price {
  margin: 15px 0 25px;
  color: #eeeef3;
  font-family: Italiana, Georgia, serif;
  font-size: 30px;
}

#services .ns-callout {
  margin: 40px 0 20px;
  padding-left: 20px;
  border-left: 1px solid #78cfff;
  color: #78cfff;
  font-size: 12px;
  line-height: 1.9;
}

#services .ns-capacity {
  margin-bottom: 45px;
  padding: 30px 0;
  border-block: 1px solid #28445e;
}

#services .ns-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

#services .ns-slots span {
  padding: 10px 18px;
  border: 1px solid #426480;
  font-size: 11px;
}

#services p.ns-fine {
  margin-top: 20px;
  color: #aab7c7;
  font-size: 11px;
  line-height: 1.8;
}

#services .ns-process-line {
  margin: 20px 0;
  color: #d6e5f2;
  font-size: 11px;
  line-height: 2;
}

/* RESPONSIVE */

@media (max-width: 950px) {
  #services .ns-plans {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  #services.nova-services {
    padding: 55px 5%;
  }

  #services .ns-heading > span:last-child {
    display: none;
  }

  #services .ns-stage {
    width: 94%;
    margin: 25px auto;
  }

  #services .ns-cover,
  #services .ns-cards {
    height: 534px;
  }

  #services .ns-cover {
    padding: 20px;
  }

  #services .ns-cover-title {
    font-size: clamp(48px, 12vw, 65px);
  }

  #services .ns-card {
    padding: 20px 16px;
  }

  #services .ns-card-name,
  #services .ns-card-note {
    font-size: 10px;
  }

  #services .ns-card-symbol {
    font-size: 44px;
  }

  #services .ns-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  #services .ns-roadmap {
    grid-template-columns: repeat(2, 1fr);
  }

  #services .ns-price-grid {
    grid-template-columns: 1fr;
  }

  #services .ns-detail {
    padding: 35px 7% 50px;
  }

  #services .ns-dialog-bar {
    font-size: 10px;
  }

  #services .ns-cards.ns-settled {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    height: auto;
  }

  #services .ns-cards.ns-settled .ns-slice {
    position: relative;
    top: auto;
    left: auto !important;
    width: 100%;
    height: 260px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #services *,
  #services *::before,
  #services *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* SERVICES — COPY AND TYPOGRAPHY UPDATES */

#services .ns-heading {
  position: relative;
  min-height: 38px;
}

#services .ns-instruction {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: 75%;
  color: #e9f6ff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .025em;
  text-align: center;
  text-transform: none;
}

#services .ns-card-name {
  font-size: clamp(14px, 1.4vw, 19px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.02em;
}

#services .ns-card-note {
  font-size: clamp(12px, 1vw, 14px);
  line-height: 1.5;
  opacity: .9;
}

#services .ns-card-symbol {
  font-family: Georgia, serif;
  font-size: clamp(60px, 7vw, 95px);
  font-style: normal;
  line-height: 1;
  margin: 18px 0;
  opacity: .8;
}

#services .ns-availability {
  position: absolute;
  top: 48px;
  right: 12px;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 30px;
  background: rgba(255,255,255,.92);
  color: #214c69;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  box-shadow: 0 4px 14px rgba(0,0,0,.1);
  animation: nsAvailabilityPulse 2.8s ease-in-out infinite;
}

@keyframes nsAvailabilityPulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255,255,255,.3);
  }
  50% {
    box-shadow: 0 0 0 7px rgba(255,255,255,0);
  }
}

@media (max-width: 700px) {
  #services .ns-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  #services .ns-instruction {
    position: static;
    transform: none;
    max-width: 100%;
    width: auto;
    font-size: 13px;
    text-align: left;
  }

  #services .ns-card-symbol {
    font-size: 58px;
  }

  #services .ns-card-name {
    font-size: 14px;
  }

  #services .ns-card-note {
    font-size: 12px;
  }

  #services .ns-availability {
    top: 42px;
    right: 8px;
    padding: 5px 7px;
    font-size: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #services .ns-availability {
    animation: none;
  }
}
/* NOVA SERVICES — PREMIUM CARD REDESIGN */

/* Larger, more prominent instruction */
#services .ns-instruction {
  font-size: clamp(20px, 2.3vw, 30px);
  font-weight: 600;
  letter-spacing: -.035em;
  color: #f5f8ff;
  text-shadow: 0 2px 22px rgba(120,207,255,.22);
}

/* More space around the card display */
#services .ns-stage {
  margin-top: 52px;
  margin-bottom: 85px;
}

#services .ns-cover,
#services .ns-cards {
  height: 410px;
}

/* More dimensional card surfaces */
#services .ns-card {
  isolation: isolate;
  overflow: hidden;
  padding: 27px 22px 24px;
  border: 1px solid rgba(255,255,255,.75);
  border-right: 5px solid rgba(15,37,58,.28);
  border-bottom: 7px solid rgba(9,27,46,.35);
  border-radius: 3px;
  box-shadow:
    5px 8px 0 rgba(8,22,40,.18),
    12px 24px 30px rgba(0,0,0,.3),
    0 35px 65px rgba(0,0,0,.22),
    inset 0 2px 1px rgba(255,255,255,.65);
  transition:
    transform .35s cubic-bezier(.2,.8,.2,1),
    box-shadow .35s ease;
}

#services .ns-card:hover {
  transform: translateY(-9px) scale(1.025);
  box-shadow:
    6px 13px 0 rgba(8,22,40,.16),
    15px 35px 45px rgba(0,0,0,.35),
    0 45px 75px rgba(0,0,0,.25),
    inset 0 2px 1px rgba(255,255,255,.8);
}

/* Hide the NOVA letters */
#services .ns-card-symbol {
  display: none;
}

/* Service title is now the visual focal point */
#services .ns-card-name {
  order: 1;
  margin-top: 44px;
  font-size: clamp(17px, 1.75vw, 23px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.055em;
}

/* Description directly below title */
#services .ns-card-note {
  order: 2;
  margin-top: 15px;
  font-size: clamp(12px, 1.05vw, 14px);
  font-weight: 500;
  line-height: 1.6;
  opacity: .8;
}

/* A graphic centerpiece to fill the empty space */
#services .ns-card::after {
  content: "";
  position: relative;
  order: 3;
  display: block;
  width: 100%;
  flex: 1;
  min-height: 55px;
  margin-top: 20px;
  background:
    radial-gradient(circle at 50% 50%,
      currentColor 0 2px,
      transparent 3px),
    repeating-radial-gradient(circle at 50% 50%,
      transparent 0 13px,
      currentColor 14px 14.5px,
      transparent 15px 28px);
  opacity: .13;
  mask-image: linear-gradient(to bottom, black, transparent);
  pointer-events: none;
}

/* Number at the top */
#services .ns-number {
  order: 0;
  font-size: 11px;
  letter-spacing: .15em;
  opacity: .65;
}

/* Explore prompt at the bottom */
#services .ns-card-arrow {
  position: relative;
  top: auto;
  right: auto;
  order: 4;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
}

/* Availability badge stays at the top right */
#services .ns-availability {
  order: 5;
  top: 20px;
  right: 12px;
  z-index: 2;
}

/* Give the bottom caption breathing room */
#services .ns-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(120,207,255,.12);
}

@media (max-width: 700px) {
  #services .ns-instruction {
    font-size: 21px;
    line-height: 1.3;
  }

  #services .ns-stage {
    margin-top: 30px;
    margin-bottom: 55px;
  }

  #services .ns-cover,
  #services .ns-cards {
    height: 534px;
  }

  #services .ns-card {
    padding: 18px 14px;
  }

  #services .ns-card-name {
    margin-top: 30px;
    font-size: 16px;
  }

  #services .ns-card-note {
    margin-top: 10px;
    font-size: 11px;
  }

  #services .ns-card::after {
    min-height: 30px;
    margin-top: 12px;
  }

  #services .ns-card-arrow {
    font-size: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #services .ns-card {
    transition: none;
  }
}
/* ===== NOVA SERVICES — CARD REFINEMENTS ===== */

/* Move titles and descriptions higher */
#services .ns-card-name {
  margin-top: 18px;
  font-size: clamp(19px, 1.8vw, 25px);
  font-weight: 600;
  line-height: 1.2;
}

#services .ns-card-note {
  margin-top: 12px;
  font-size: clamp(12px, 1vw, 14px);
}

/* Larger graphic area */
#services .ns-card::after {
  min-height: 100px;
  margin-top: 22px;
}

/* Remove the line above the bottom text */
#services .ns-bottom {
  border-top: none;
  padding-top: 0;
}

/* More separation from the bottom text */
#services .ns-stage {
  margin-bottom: 110px;
}

/* Improve card depth */
#services .ns-card {
  border-right-width: 7px;
  border-bottom-width: 9px;
  box-shadow:
    10px 14px 0 rgba(5, 16, 30, .2),
    18px 30px 45px rgba(0, 0, 0, .35),
    0 45px 80px rgba(0, 0, 0, .2),
    inset 0 2px 2px rgba(255, 255, 255, .7);
}

/* Mobile */
@media (max-width: 700px) {
  #services .ns-card-name {
    margin-top: 12px;
    font-size: 17px;
  }

  #services .ns-card::after {
    min-height: 55px;
  }

  #services .ns-stage {
    margin-bottom: 65px;
  }
}/* Keep the original cover strips aligned */
#services .ns-front-picture {
  height: 100%;
}

/* Smooth 3D rendering */
#services .ns-slice,
#services .ns-flipper {
  transform-style: preserve-3d;
  will-change: transform;
}

#services .ns-front,
#services .ns-back {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Avoid hover effects during the flip */
#services .ns-cards:not(.ns-settled) .ns-card {
  transition: none;
}

/* ==========================================
   NOVA SERVICES — PREMIUM 3D CARD FINISH
   ========================================== */

/* Keep perspective natural */
#services .ns-stage,
#services .ns-cards {
  perspective: 1400px;
  perspective-origin: 50% 45%;
}

/* Physical card appearance */
#services .ns-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  border: 1px solid rgba(255,255,255,.55);
  border-right: 5px solid rgba(20,40,60,.22);
  border-bottom: 7px solid rgba(15,35,55,.30);
  border-radius: 5px;

  box-shadow:
    0 2px 3px rgba(0,0,0,.12),
    5px 8px 10px rgba(0,0,0,.16),
    12px 22px 30px rgba(0,0,0,.20),
    18px 38px 55px rgba(0,0,0,.16),
    inset 1px 1px 0 rgba(255,255,255,.75),
    inset -1px -1px 0 rgba(0,0,0,.06);

  transition:
    transform .55s cubic-bezier(.22,1,.36,1),
    box-shadow .55s cubic-bezier(.22,1,.36,1),
    filter .55s ease;
}

/* Directional light across the surface */
#services .ns-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    linear-gradient(
      125deg,
      rgba(255,255,255,.28) 0%,
      rgba(255,255,255,.08) 25%,
      transparent 48%,
      rgba(0,20,50,.035) 100%
    );
}

/* Preserve readability above reflections */
#services .ns-card > * {
  position: relative;
  z-index: 1;
}

/* Subtle visual symbol area */
#services .ns-card::after {
  content: "";
  position: relative;
  z-index: 0;
  order: 3;
  display: block;
  flex: 1;
  width: 100%;
  min-height: 100px;
  margin-top: 20px;

  background:
    radial-gradient(
      circle at 50% 50%,
      currentColor 0 2px,
      transparent 3px
    ),
    repeating-radial-gradient(
      circle at 50% 50%,
      transparent 0 13px,
      currentColor 14px 14.5px,
      transparent 15px 28px
    );

  opacity: .11;
  mask-image: linear-gradient(
    to bottom,
    black 40%,
    transparent 100%
  );

  pointer-events: none;
}

/* Smooth floating hover */
#services .ns-cards.ns-settled .ns-card:hover {
  transform: translate3d(0,-8px,14px) scale(1.015);

  box-shadow:
    0 4px 8px rgba(0,0,0,.14),
    8px 18px 25px rgba(0,0,0,.20),
    18px 38px 55px rgba(0,0,0,.25),
    25px 55px 85px rgba(0,0,0,.18),
    inset 1px 1px 0 rgba(255,255,255,.85);

  filter: brightness(1.035);
}

/* Clear click affordance */
#services .ns-cards.ns-settled .ns-card {
  cursor: pointer;
}

/* Gentle CTA response */
#services .ns-card-arrow {
  transition:
    transform .4s cubic-bezier(.22,1,.36,1),
    opacity .4s ease;
}

#services .ns-cards.ns-settled
.ns-card:hover .ns-card-arrow {
  transform: translateX(5px);
  opacity: 1;
}

/* Avoid expensive hover effects during rotation */
#services .ns-cards:not(.ns-settled) .ns-card {
  transition: none;
}

/* GPU-friendly 3D rendering */
#services .ns-slice,
#services .ns-flipper {
  transform-style: preserve-3d;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Accessible motion preference */
@media (prefers-reduced-motion: reduce) {
  #services .ns-card,
  #services .ns-card-arrow {
    transition: none;
  }

  #services .ns-cards.ns-settled .ns-card:hover {
    transform: none;
  }
}
/* =========================================
   NOVA — FINAL PREMIUM CARD POLISH
   ========================================= */

/* Soft showroom lighting behind the cards */
#services .ns-stage {
  isolation: isolate;
}

#services .ns-stage::before {
  content: "";
  position: absolute;
  z-index: -1;

  width: 115%;
  height: 125%;

  top: -12%;
  left: -7.5%;

  background: radial-gradient(
    ellipse at center,
    rgba(130, 185, 230, 0.12) 0%,
    rgba(75, 130, 190, 0.055) 40%,
    transparent 75%
  );

  filter: blur(35px);
  pointer-events: none;
}

/* Refined physical card edges */
#services .ns-card {
  border-radius: 6px;

  border-top: 1px solid rgba(255,255,255,.85);
  border-left: 1px solid rgba(255,255,255,.6);
  border-right: 4px solid rgba(25,45,65,.22);
  border-bottom: 6px solid rgba(15,35,55,.28);

  box-shadow:
    0 2px 3px rgba(0,0,0,.1),
    5px 9px 12px rgba(0,0,0,.15),
    12px 24px 35px rgba(0,0,0,.22),
    18px 42px 65px rgba(0,0,0,.18),
    inset 1px 1px 0 rgba(255,255,255,.8),
    inset -1px -1px 0 rgba(0,0,0,.06);
}

/* Surface reflection */
#services .ns-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;

  background: linear-gradient(
    120deg,
    rgba(255,255,255,.3) 0%,
    rgba(255,255,255,.12) 20%,
    transparent 48%,
    rgba(0,20,45,.04) 100%
  );

  opacity: .65;
  transition: opacity .5s ease;
  pointer-events: none;
}

/* Refined service names */
#services .ns-card-name {
  letter-spacing: -.025em;
  line-height: 1.22;
}

/* Refined descriptions */
#services .ns-card-note {
  opacity: .75;
  line-height: 1.65;
}

/* Premium hover */
#services .ns-cards.ns-settled .ns-card:hover {
  transform: translate3d(0,-5px,0) scale(1.012);

  box-shadow:
    0 4px 7px rgba(0,0,0,.12),
    8px 18px 25px rgba(0,0,0,.2),
    18px 38px 55px rgba(0,0,0,.26),
    24px 55px 85px rgba(0,0,0,.2),
    inset 1px 1px 0 rgba(255,255,255,.9);

  filter: brightness(1.025);
}

#services .ns-cards.ns-settled .ns-card:hover::before {
  opacity: 1;
}

/* Explore link refinement */
#services .ns-card-arrow {
  font-weight: 600;
  letter-spacing: .02em;
  opacity: .8;
}

#services .ns-cards.ns-settled
.ns-card:hover .ns-card-arrow {
  transform: translateX(5px);
  opacity: 1;
}

/* Social media availability indicator */
#services .ns-availability {
  position: relative;
  top: auto;
  right: auto;

  display: inline-flex;
  align-items: center;
  gap: 7px;

  width: fit-content;
  margin-top: 12px;
  padding: 7px 12px;

  border: 1px solid rgba(255,255,255,.45);
  border-radius: 30px;

  background: rgba(255,255,255,.92);
  color: #244866;

  font-size: 10px;
  font-weight: 600;
  letter-spacing: .025em;

  box-shadow: 0 3px 10px rgba(0,0,0,.08);
}

#services .ns-availability::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2688c8;
  box-shadow: 0 0 8px rgba(38,136,200,.5);
  animation: nsStatusPulse 2.5s ease-in-out infinite;
}

@keyframes nsStatusPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: .4;
  }
}

/* Reduced motion accessibility */
@media (prefers-reduced-motion: reduce) {
  #services .ns-availability::before {
    animation: none;
  }
}
/* =========================================
   NOVA — HIGH QUALITY CARD RENDERING
   ========================================= */

/* Cleaner 3D perspective */
#services .ns-stage {
  perspective: 1600px;
  perspective-origin: 50% 50%;
}

#services .ns-cards {
  perspective: 1600px;
  perspective-origin: 50% 50%;
}

/* Improve rendering of rotating panels */
#services .ns-slice {
  transform-style: preserve-3d;
  will-change: transform;
}

#services .ns-flipper {
  transform-style: preserve-3d;
  will-change: transform;
}

#services .ns-front,
#services .ns-back {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Refined card surface */
#services .ns-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  border-radius: 7px;

  /* Replace thick, harsh borders */
  border-top: 1px solid rgba(255,255,255,.7);
  border-left: 1px solid rgba(255,255,255,.45);
  border-right: 2px solid rgba(20,40,60,.15);
  border-bottom: 3px solid rgba(20,40,60,.2);

  /* Softer, layered physical shadows */
  box-shadow:
    0 2px 4px rgba(0,0,0,.10),
    0 10px 20px rgba(0,0,0,.18),
    0 25px 45px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.75),
    inset 0 -1px 2px rgba(0,0,0,.06);

  /* Smoother visual transitions */
  transition:
    transform .65s cubic-bezier(.22,1,.36,1),
    box-shadow .65s cubic-bezier(.22,1,.36,1),
    filter .65s ease;
}

/* Fine inner edge, like a manufactured card */
#services .ns-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.28),
      transparent 35%,
      rgba(0,25,55,.045) 100%
    );

  pointer-events: none;
}

/* Gentle hover */
#services .ns-cards.ns-settled .ns-card:hover {
  transform: translateY(-6px) scale(1.01);

  box-shadow:
    0 5px 12px rgba(0,0,0,.12),
    0 18px 35px rgba(0,0,0,.23),
    0 35px 65px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.85);
}

/* Slightly soften surface lighting */
#services .ns-card::before {
  opacity: .65;
}

/* Make card text look cleaner */
#services .ns-card-name,
#services .ns-card-note,
#services .ns-card-arrow {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Don't animate unnecessary effects during flip */
#services .ns-cards:not(.ns-settled) .ns-card {
  transition: none;
}

/* Release GPU hints once settled */
#services .ns-cards.ns-settled .ns-slice,
#services .ns-cards.ns-settled .ns-flipper {
  will-change: auto;
}

/* =========================================
   NOVA — THICK PREMIUM 3D EDGES
   ========================================= */

#services .ns-card {
  border-radius: 8px;

  /* Thicker physical edges */
  border-top: 1px solid rgba(255,255,255,.85);
  border-left: 1px solid rgba(255,255,255,.65);
  border-right: 5px solid rgba(25,45,65,.24);
  border-bottom: 7px solid rgba(20,38,58,.30);

  /* Smooth layered depth */
  box-shadow:
    2px 3px 0 rgba(12,28,45,.15),
    5px 7px 0 rgba(12,28,45,.10),
    8px 14px 18px rgba(0,0,0,.18),
    15px 28px 40px rgba(0,0,0,.22),
    0 40px 65px rgba(0,0,0,.13),
    inset 1px 1px 0 rgba(255,255,255,.75),
    inset -1px -2px 2px rgba(0,0,0,.08);

  transition:
    transform .6s cubic-bezier(.22,1,.36,1),
    box-shadow .6s cubic-bezier(.22,1,.36,1),
    filter .6s ease;
}

/* Smooth bevel reflection */
#services .ns-card::before {
  border-radius: inherit;
  background: linear-gradient(
    135deg,
    rgba(255,255,255,.26) 0%,
    rgba(255,255,255,.08) 25%,
    transparent 55%,
    rgba(0,20,45,.045) 100%
  );
}

/* Keep the thicker edge during hover */
#services .ns-cards.ns-settled .ns-card:hover {
  transform: translateY(-6px) scale(1.012);

  box-shadow:
    3px 5px 0 rgba(12,28,45,.15),
    7px 10px 0 rgba(12,28,45,.10),
    12px 24px 30px rgba(0,0,0,.22),
    20px 42px 60px rgba(0,0,0,.24),
    0 55px 80px rgba(0,0,0,.13),
    inset 1px 1px 0 rgba(255,255,255,.85);
}

/* Maintain clean rendering during rotation */
#services .ns-front,
#services .ns-back {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

#services .ns-card {
  -webkit-font-smoothing: antialiased;
}
/* =========================================
   NOVA — SHARPER CARD TYPOGRAPHY
   ========================================= */

/* Improve text rendering */
#services .ns-card {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Remove unnecessary filters */
#services .ns-card,
#services .ns-cards.ns-settled .ns-card:hover {
  filter: none;
}

/* Clearer typography */
#services .ns-card-name {
  font-weight: 650;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

#services .ns-card-note {
  font-weight: 500;
  opacity: 0.9;
  line-height: 1.5;
}

#services .ns-card-arrow {
  font-weight: 600;
  opacity: 1;
}

/* Prevent text from inheriting transparency */
#services .ns-card-name,
#services .ns-card-note,
#services .ns-card-arrow {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* ==========================================
   NOVA — CRISP FINAL CARD LAYER
   ========================================== */

#services .ns-cards {
  position: relative;
}

#services .ns-final-layer {
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  perspective: none;
  transform: none;
}

#services .ns-final-item {
  position: absolute;
  top: 0;
  width: 25%;
  height: 100%;
  transform-origin: center center;
  pointer-events: auto;
}

#services .ns-final-item .ns-card {
  width: 100%;
  height: 100%;
  transform-style: flat;
  backface-visibility: visible;
}

/* Hide only the old animated panels after handoff */
#services .ns-cards.ns-handoff-complete > .ns-slice {
  visibility: hidden;
}

/* Keep the final cards interactive */
#services .ns-cards.ns-settled
.ns-final-item .ns-card:hover {
  transform: translateY(-6px) scale(1.012);
}

/* Mobile layout */
@media (max-width: 700px) {
  #services .ns-cards.ns-settled {
    display: block;
    height: 534px;
  }

  #services .ns-final-layer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    position: relative;
    height: auto;
  }

  #services .ns-final-item {
    position: relative;
    top: auto;
    left: auto !important;
    width: 100%;
    height: 260px;
    transform: none !important;
  }
}

/* ==========================================
   NOVA — FULL-SCREEN SERVICE LAYER
   ========================================== */

#services .ns-dialog {
  position: fixed;
  inset: 0;

  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;

  width: 100vw;
  height: 100dvh;

  margin: 0;
  padding: 0;

  border: none;
  border-radius: 0;

  background: #060b15;
  color: #eeeef3;

  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;

  box-sizing: border-box;
}

#services .ns-dialog::backdrop {
  background: #060b15;
}

/* Full-width navigation bar */

#services .ns-dialog-bar {
  position: sticky;
  top: 0;
  z-index: 50;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;

  min-height: 76px;
  padding: 14px 4%;

  border-bottom: 1px solid rgba(120,207,255,.18);
  background: rgba(6,11,21,.96);

  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Hide the original service label.
   The new navigation replaces it. */

#services .ns-dialog-bar > span {
  display: none;
}

/* Return to homepage */

#services .ns-dialog-bar .ns-close {
  flex-shrink: 0;
  padding: 10px 0;
  min-height: 44px;

  color: #f1f5fa;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  white-space: nowrap;
}

/* Four-service navigation */

#services .ns-service-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(12px, 2.2vw, 38px);

  min-width: 0;
}

#services .ns-service-nav button {
  position: relative;

  flex-shrink: 0;
  padding: 12px 0;

  border: none;
  background: transparent;

  color: #8297ac;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .07em;
  white-space: nowrap;

  transition: color .25s ease;
}

#services .ns-service-nav button:hover,
#services .ns-service-nav button.is-active {
  color: #78cfff;
}

#services .ns-service-nav button.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 3px;
  height: 1px;
  background: #78cfff;
}

/* Existing content — more breathing room,
   without changing its design or wording */

#services .ns-dialog .ns-detail {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(50px, 6vw, 100px) 6% 110px;
}

/* Preserve normal scrolling */
#services .ns-dialog .ns-detail,
#services .ns-dialog .ns-roadmap,
#services .ns-dialog .ns-plans {
  overflow: visible;
}

/* Tablet and mobile navigation */

@media (max-width: 900px) {
  #services .ns-dialog-bar {
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 5%;
  }

  #services .ns-service-nav {
    width: 100%;
    justify-content: flex-start;
    gap: 25px;

    overflow-x: auto;
    scrollbar-width: none;
  }

  #services .ns-service-nav::-webkit-scrollbar {
    display: none;
  }

  #services .ns-dialog .ns-detail {
    padding: 45px 6% 80px;
  }
}

@media (max-width: 600px) {
  #services .ns-service-nav button {
    font-size: 10px;
  }

  #services .ns-dialog .ns-detail h2 {
    font-size: clamp(38px, 10vw, 60px);
  }
}

/* ==========================================
   NOVA — SERVICE PAGE TEXT CLARITY
   ========================================== */

#services .ns-dialog {
  transform: none !important;
  filter: none !important;
  perspective: none !important;

  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#services .ns-dialog .ns-detail,
#services .ns-dialog .ns-dialog-bar {
  transform: none;
  filter: none;
}

/* Avoid forced GPU compositing on text */
#services .ns-dialog h2,
#services .ns-dialog h3,
#services .ns-dialog p,
#services .ns-dialog span {
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
  will-change: auto;
}

/* Improve thin heading rendering */
#services .ns-dialog h2,
#services .ns-dialog .ns-statement {
  font-synthesis: none;
  text-rendering: geometricPrecision;
}
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&display=swap');

#services .ns-dialog h2,
#services .ns-dialog h3,
#services .ns-dialog .ns-statement {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500;
}/* NOVA — SHARPER SERVICE CARD TEXT */

/* Make text fully opaque */
#services .ns-final-item .ns-card-name,
#services .ns-final-item .ns-card-note,
#services .ns-final-item .ns-card-arrow {
  opacity: 1;
  filter: none;
  text-shadow: none;
}

/* Stronger contrast for descriptions */
#services .ns-final-item .ns-card-note {
  font-weight: 600;
}

/* Keep final cards in a flat rendering context */
#services .ns-final-item .ns-card {
  transform-style: flat;
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
}

/* Remove unnecessary compositing on text */
#services .ns-final-item .ns-card-name,
#services .ns-final-item .ns-card-note {
  will-change: auto;
  -webkit-font-smoothing: auto;
}.services-section-label {
    position: absolute;
    top: 32px;
    left: 5vw;
    z-index: 20;

    color: rgba(255, 255, 255, 0.65);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 3px;
    text-transform: uppercase;
    pointer-events: none;
}/* =========================================
  
/* =========================================
   NOVA SERVICES — FINAL PREMIUM FINISH
   ========================================= */

/* Consistent premium palette */
#services .ns-card[data-dialog="ns-growth"] {
  --card-color: #F0EEE9;
  --card-ink: #263748;
}

#services .ns-card[data-dialog="ns-websites"] {
  --card-color: #D9E5EE;
  --card-ink: #243B50;
}

#services .ns-card[data-dialog="ns-packaging"] {
  --card-color: #B2CFDF;
  --card-ink: #1C3B51;
}

#services .ns-card[data-dialog="ns-social"] {
  --card-color: #466D8D;
  --card-ink: #F7FAFC;
}

/* Refined surface on the final, sharp cards */
#services .ns-final-item .ns-card {
  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.12) 0%,
      transparent 43%,
      rgba(9,30,52,.055) 100%
    ),
    var(--card-color);

  border-top: 1px solid rgba(255,255,255,.78);
  border-left: 1px solid rgba(255,255,255,.48);
  border-right: 4px solid rgba(20,43,63,.22);
  border-bottom: 6px solid rgba(12,32,52,.28);
  border-radius: 8px;
}

/* The moving studio-light reflection */
#services .ns-final-item .ns-card::before {
  content: "";
  position: absolute;
  inset: -25% -70%;
  z-index: 0;
  border-radius: 0;
  pointer-events: none;

  background: linear-gradient(
    105deg,
    transparent 40%,
    rgba(255,255,255,.04) 44%,
    rgba(255,255,255,.38) 50%,
    rgba(255,255,255,.07) 56%,
    transparent 61%
  );

  opacity: 0;
  transform: translate3d(-65%,0,0);
  will-change: auto;
}

/* Trigger only when the final cards appear */
#services .ns-cards.ns-handoff-complete
.ns-final-item .ns-card::before {
  animation: nsFinalLightSweep
    1300ms cubic-bezier(.22,.61,.36,1) both;
}

/* Left-to-right timing */
#services .ns-final-item:nth-child(1)
.ns-card::before {
  animation-delay: 50ms !important;
}

#services .ns-final-item:nth-child(2)
.ns-card::before {
  animation-delay: 160ms !important;
}

#services .ns-final-item:nth-child(3)
.ns-card::before {
  animation-delay: 270ms !important;
}

#services .ns-final-item:nth-child(4)
.ns-card::before {
  animation-delay: 380ms !important;
}

@keyframes nsFinalLightSweep {
  0% {
    transform: translate3d(-65%,0,0);
    opacity: 0;
  }

  18% {
    opacity: .7;
  }

  70% {
    opacity: .55;
  }

  100% {
    transform: translate3d(65%,0,0);
    opacity: 0;
  }
}

/* Explore Service labels finish appearing */
#services .ns-cards.ns-handoff-complete
.ns-final-item .ns-card-arrow {
  animation: nsFinalCTA 450ms ease both;
}

#services .ns-final-item:nth-child(1)
.ns-card-arrow {
  animation-delay: 450ms !important;
}

#services .ns-final-item:nth-child(2)
.ns-card-arrow {
  animation-delay: 560ms !important;
}

#services .ns-final-item:nth-child(3)
.ns-card-arrow {
  animation-delay: 670ms !important;
}

#services .ns-final-item:nth-child(4)
.ns-card-arrow {
  animation-delay: 780ms !important;
}

@keyframes nsFinalCTA {
  from { opacity: .4; }
  to   { opacity: 1; }
}

/* Gentle heading emphasis at the end */
#services:has(.ns-handoff-complete)
.ns-instruction {
  animation: nsFinalHeading 500ms 500ms ease both;
}

@keyframes nsFinalHeading {
  from { opacity: .65; }
  to   { opacity: 1; }
}

/* Respect accessibility preferences */
@media (prefers-reduced-motion: reduce) {
  #services .ns-final-item .ns-card::before,
  #services .ns-final-item .ns-card-arrow,
  #services .ns-instruction {
    animation: none !important;
  }
}



/* Premium card material */

#services.ns-reference-motion .ns-back .ns-card {

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.20) 0%,
            rgba(255,255,255,.06) 28%,
            transparent 55%,
            rgba(12,35,58,.08) 100%
        ),
        var(--card-color);

    border-top: 1px solid rgba(255,255,255,.72);

    border-left: 1px solid rgba(255,255,255,.42);

    border-right: 3px solid rgba(20,44,65,.24);

    border-bottom: 5px solid rgba(13,34,55,.32);

    border-radius: 8px;

    box-shadow:
        0 16px 25px rgba(0,0,0,.20),
        0 30px 55px rgba(0,0,0,.30),
        inset 0 1px 0 rgba(255,255,255,.35);

    transition:
        box-shadow .35s ease,
        border-color .35s ease;
}


/* Refined surface reflection */

#services.ns-reference-motion .ns-back .ns-card::before {

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.14),
            transparent 42%,
            rgba(12,35,55,.04)
        );

    pointer-events: none;
}


/* Premium hover lighting */

#services.ns-reference-motion .ns-back .ns-card:hover,
#services.ns-reference-motion .ns-back .ns-card:focus-visible {

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.22),
            transparent 55%,
            rgba(12,35,58,.07)
        ),
        var(--card-color);

    border-top-color: rgba(255,255,255,.9);

    box-shadow:
        0 22px 35px rgba(0,0,0,.24),
        0 38px 65px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.48);
}


/* Clearer service titles */

#services.ns-reference-motion .ns-back .ns-card-name {

    color: var(--card-ink);

    font-weight: 600;

    letter-spacing: -.045em;

    line-height: 1.22;
}


/* More refined supporting text */

#services.ns-reference-motion .ns-back .ns-card-note {

    color: var(--card-ink);

    opacity: .78;
}


/* Subtle decorative circles */

#services.ns-reference-motion .ns-back .ns-card::after {

    opacity: .09;
}


/* Cleaner Explore Service text */

#services.ns-reference-motion .ns-back .ns-card-arrow {

    color: var(--card-ink);

    font-weight: 600;

    letter-spacing: .015em;
}
/* ========================================
   NOVA — FINAL HANDOFF REFINEMENT
   ======================================== */

/* Keep the old 3D cards visible briefly */
#services .ns-cards.ns-handoff-complete:not(.ns-handoff-finished) > .ns-slice {
  visibility: visible;
  animation: nsOldCardsFade 400ms ease-in both;
}

/* Fade in the sharp final cards */
#services .ns-cards.ns-handoff-complete .ns-final-layer {
  animation: nsSharpCardsAppear 400ms ease-out both;
}

@keyframes nsOldCardsFade {
  from { opacity: 1; }
  to   { opacity: 0; }
}

@keyframes nsSharpCardsAppear {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Avoid additional text fading during handoff */
#services .ns-cards.ns-handoff-complete
.ns-final-item .ns-card-arrow,
#services:has(.ns-handoff-complete) .ns-instruction {
  animation: none !important;
}

/* Slightly thicker physical edges */
#services .ns-final-item .ns-card {
  border-right: 6px solid rgba(20,43,63,.26);
  border-bottom: 8px solid rgba(12,32,52,.32);
  border-radius: 8px;
}

/* Keep the same edge treatment on hover */
#services .ns-final-item .ns-card:hover {
  border-right-width: 6px;
  border-bottom-width: 8px;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  #services .ns-cards.ns-handoff-complete .ns-final-layer,
  #services .ns-cards.ns-handoff-complete > .ns-slice {
    animation: none !important;
  }
}/* No color fade during the final card handoff */
#services .ns-cards.ns-handoff-complete .ns-final-layer {
  animation: none !important;
  opacity: 1;
}
#ns-packaging .nini-preview {
  display: block;
  width: 100%;
  margin: 32px 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e2d7c055;
  border-radius: 10px;
  background: #4a0000;
  color: #e2d7c0;
  cursor: pointer;
  text-align: left;
}

.nini-preview__strip {
  display: flex;
  gap: 3px;
  padding: 3px;
  overflow: hidden;
  pointer-events: none;
}

.nini-preview__slide {
  display: block;
  position: relative;
  flex: 1 0 0;
  min-width: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.nini-preview__slide iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 1440px;
  height: 900px;
  border: 0;
  transform-origin: top left;
  pointer-events: none;
}

.nini-preview__label {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 16px;
  font: 10px Arial, sans-serif;
  letter-spacing: .08em;
}

.nini-preview:focus-visible {
  outline: 2px solid #e2d7c0;
  outline-offset: 4px;
}

dialog.nini-viewer {
  position: fixed;
  inset: 0;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #4a0000;
  color: #e2d7c0;
  overflow: hidden;
}

dialog.nini-viewer[open] {
  display: flex;
  flex-direction: column;
}

.nini-viewer::backdrop {
  background: #170000;
}

.nini-viewer__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  font: 10px Arial, sans-serif;
}

.nini-viewer__bar button {
  padding: 10px;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.nini-viewer > iframe {
  display: block;
  flex: 1;
  min-height: 0;
  width: 100%;
  border: 0;
}
#ns-packaging .nini-preview {
  width: calc(100% + 40px);
  max-width: none;
  margin-left: -20px;
  margin-right: -20px;
}

@media (max-width: 600px) {
  #ns-packaging .nini-preview {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}
.enova-demo {
  margin: 32px 0;
  overflow: hidden;
  border: 1px solid #78cfff40;
  border-radius: 16px;
  background: #050a12;
  color: #eeeef3;
}

.enova-demo__stage {
  display: grid;
  place-items: center;
  padding: 30px 16px;
  overflow: hidden;
  perspective: 1200px;
  background:
    radial-gradient(ellipse at center, #20405f55, transparent 65%),
    #050a12;
}

.enova-demo__object {
  --photo-width: min(340px, 72vw);
  --photo-height: min(737px, 156.1vw);
  --sphere-size: min(280px, 64vw);

  position: relative;
  width: var(--photo-width);
  height: var(--photo-height);
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 20px 60px #0009;
}

.enova-demo__object > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.enova-demo__second,
.enova-demo__sphere {
  opacity: 0;
}

.enova-demo__sphere {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: url("./images/enova-first.jpg");
  background-size: auto 100%;
  background-repeat: repeat-x;
}

.enova-demo__sphere::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 30% 22%, #ffffff70, transparent 30%),
    radial-gradient(circle at 35% 30%, transparent 25%, #000b 78%);
  box-shadow:
    inset 10px 0 25px #ffffff30,
    inset -25px -20px 45px #000a;
}

.enova-demo__stage {
  min-height: calc(min(737px, 156.1vw) + 60px);
}

.enova-demo__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 16px 20px;
  font: 10px Arial, sans-serif;
  letter-spacing: .1em;
}

.enova-demo__replay {
  padding: 10px 14px;
  border: 1px solid #78cfff60;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.enova-demo__replay:focus-visible {
  outline: 2px solid #78cfff;
  outline-offset: 4px;
}

.enova-demo.is-playing .enova-demo__object {
  animation: enova-morph 3s 1s both;
}

.enova-demo.is-playing .enova-demo__first {
  animation: enova-hide 3s 1s both;
}

.enova-demo.is-playing .enova-demo__second {
  animation: enova-reveal 3s 1s both;
}

.enova-demo.is-playing .enova-demo__sphere {
  animation: enova-sphere 3s 1s both;
}

@keyframes enova-morph {
  0% {
    width: var(--photo-width);
    height: var(--photo-height);
    border-radius: 12px;
    transform: rotateZ(0deg);
  }
  32%, 65% {
    width: var(--sphere-size);
    height: var(--sphere-size);
    border-radius: 50%;
    box-shadow: 0 0 70px #78cfff70;
  }
  45% { transform: rotateZ(170deg); }
  65% { transform: rotateZ(340deg); }
  100% {
    width: var(--photo-width);
    height: var(--photo-height);
    border-radius: 12px;
    transform: rotateZ(360deg);
    box-shadow: 0 20px 60px #0009;
  }
}

@keyframes enova-hide {
  0%, 8% { opacity: 1; }
  25%, 100% { opacity: 0; }
}

@keyframes enova-reveal {
  0%, 72% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes enova-sphere {
  0% {
    opacity: 0;
    background-position: 0% center;
  }
  25% { opacity: 1; }
  49% {
    background-image: url("./images/enova-first.jpg");
  }
  50% {
    background-image: url("./images/enova-second.jpg");
  }
  72% { opacity: 1; }
  100% {
    opacity: 0;
    background-position: 500% center;
    background-image: url("./images/enova-second.jpg");
  }
}

/* Show the result without spinning for reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
  .enova-demo.is-playing .enova-demo__object,
  .enova-demo.is-playing .enova-demo__object > * {
    animation: none;
  }

  .enova-demo.is-playing .enova-demo__first {
    opacity: 0;
  }

  .enova-demo.is-playing .enova-demo__second {
    opacity: 1;
  }
}
#ns-growth .enova-demo {
  width: min(100%, 420px);
  margin: 28px auto;
}

#ns-growth .enova-demo__object {
  --photo-width: min(220px, 65vw);
  --photo-height: min(477px, 140.9vw);
  --sphere-size: min(180px, 55vw);

  width: var(--photo-width);
  height: var(--photo-height);
}

#ns-growth .enova-demo__stage {
  min-height: 0;
  height: calc(min(477px, 140.9vw) + 40px);
  padding: 20px 12px;
}

#ns-growth .enova-demo__footer {
  padding: 12px;
  font-size: 9px;
}
#ns-websites .edart-preview {
  display: block;
  margin: 40px 0;
  color: #eeeef3;
  text-decoration: none;
  perspective: 1200px;
}

.edart-preview__browser {
  overflow: hidden;
  border: 1px solid #78cfff50;
  border-radius: 12px;
  background: #10151d;
  box-shadow: 0 24px 65px #0007;
  transform:
    translateY(var(--edart-lift, 0px))
    rotateX(var(--edart-x, 0deg))
    rotateY(var(--edart-y, 0deg));
  transition: transform .3s ease-out, box-shadow .3s;
}

.edart-preview__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  color: #b8c6d5;
  font: 11px Arial, sans-serif;
}

.edart-preview__dots {
  display: flex;
  gap: 6px;
}

.edart-preview__dots i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ff776e;
}

.edart-preview__dots i:nth-child(2) {
  background: #f4c369;
}

.edart-preview__dots i:nth-child(3) {
  background: #71cb95;
}

.edart-preview__screen {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f5f3ee;
  pointer-events: none;
}

.edart-preview__screen iframe {
  position: absolute;
  inset: 0 auto auto 0;
  width: 1440px;
  height: 810px;
  border: 0;
  transform-origin: top left;
  pointer-events: none;
}

.edart-preview__caption {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 20px 4px 0;
  font: 10px Arial, sans-serif;
  letter-spacing: .1em;
}

.edart-preview:hover .edart-preview__browser {
  box-shadow: 0 30px 80px #0009, 0 0 35px #78cfff18;
}

.edart-preview:focus-visible {
  outline: 2px solid #78cfff;
  outline-offset: 8px;
  border-radius: 12px;
}
#ns-websites .edart-case {
  display: block;
  margin: 32px 0;
  overflow: hidden;
  border: 1px solid #b9955b66;
  border-radius: 10px;
  background: #161613;
  color: #eeeef3;
  text-decoration: none;
}

.edart-case__strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 4px;
  padding: 10px 4px;
  overflow: hidden;
}

.edart-case__strip > span {
  display: block;
  min-width: 0;
  animation: edart-drift 5s ease-in-out infinite;
}

.edart-case__strip > span:nth-child(2n) {
  animation-delay: -2.5s;
}

.edart-case__strip > span:nth-child(3n) {
  animation-delay: -1.25s;
}

.edart-case__strip img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: contain;
  background: #161613;
  border-radius: 3px;
}

.edart-case__caption {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px;
  border-top: 1px solid #b9955b33;
  font: 10px Arial, sans-serif;
  letter-spacing: .08em;
}

.edart-case:hover {
  border-color: #b9955b;
  box-shadow: 0 12px 35px #0005;
}

.edart-case:focus-visible {
  outline: 2px solid #b9955b;
  outline-offset: 5px;
}

@keyframes edart-drift {
  0%, 100% { transform: translateY(3px); }
  50% { transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
  .edart-case__strip > span {
    animation: none;
  }
}
#ns-social .sofra-demo {
  width: min(100%, 640px);
  margin: 32px auto;
  overflow: hidden;
  border: 1px solid #78cfff40;
  border-radius: 14px;
  background: #050a12;
  color: #eeeef3;
}

.sofra-stage {
  position: relative;
  display: grid;
  place-items: center;
  height: 540px;
  padding: 20px;
  overflow: hidden;
  background:
    radial-gradient(ellipse, #20405f55, transparent 75%);
}

.sofra-object {
  position: relative;
  width: 220px;
  height: 480px;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 20px 60px #0009;
}

.sofra-object > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sofra-before {
  opacity: 1;
}

.sofra-after,
.sofra-sphere {
  opacity: 0;
}

.sofra-sphere {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-size: auto 100%;
  background-repeat: repeat-x;
}

.sofra-sphere::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(
      circle at 30% 22%,
      #ffffff70,
      transparent 30%
    ),
    radial-gradient(
      circle at 35% 30%,
      transparent 25%,
      #000c 80%
    );
  box-shadow: inset -25px -20px 45px #000a;
}

.sofra-comparison {
  position: absolute;
  inset: 20px 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 16px;
}

.sofra-comparison[hidden] {
  display: none;
}

.sofra-comparison figure {
  margin: 0;
  min-width: 0;
  text-align: center;
}

.sofra-comparison figcaption {
  margin-bottom: 12px;
  color: #b6dfff;
  font: 11px Arial, sans-serif;
  letter-spacing: .16em;
}

.sofra-comparison img {
  display: block;
  width: 100%;
  max-width: 220px;
  max-height: 470px;
  object-fit: contain;
  margin: auto;
  border-radius: 10px;
}

.sofra-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px;
  font: 10px Arial, sans-serif;
  letter-spacing: .08em;
}

.sofra-replay {
  padding: 10px;
  border: 1px solid #78cfff60;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.sofra-replay:focus-visible {
  outline: 2px solid #78cfff;
  outline-offset: 4px;
}

@media (max-width: 480px) {
  .sofra-comparison {
    gap: 8px;
  }
}
@media (max-width: 700px) {
  #services .ns-stage {
    width: 100%;
    max-width: none;
    height: auto !important;
    margin: 20px auto;
    overflow: visible !important;
  }

  #services .ns-cards.ns-settled {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  #services .ns-cards.ns-handoff-complete > .ns-slice {
    display: none !important;
  }

  #services .ns-cards.ns-settled .ns-final-layer {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    height: auto !important;
  }

  #services .ns-final-item {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0;
    height: auto !important;
    min-height: 200px;
    transform: none !important;
  }

  #services .ns-final-item .ns-card {
    width: 100%;
    height: 100%;
    min-height: 200px;
    padding: 14px 6px;
    border-right-width: 2px;
    border-bottom-width: 3px;
  }

  #services .ns-final-item .ns-card-symbol {
    font-size: 26px;
  }

  #services .ns-final-item .ns-card-name {
    font-size: 10px;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  #services .ns-final-item .ns-card-note {
    font-size: 8px;
    line-height: 1.4;
    overflow-wrap: anywhere;
  }

  #services .ns-final-item .ns-card::after {
    min-height: 16px;
    margin-top: 10px;
    font-size: 8px;
  }

  #services .ns-final-item .ns-card-arrow {
    font-size: 16px;
  }
}
@media (max-width: 700px) {
  /* Opening cover: proportional to the phone width */
  #services .ns-stage {
    width: 100%;
    max-width: none;
    height: auto !important;
    margin: 24px auto;
    overflow: visible !important;
  }

  #services .ns-cover,
  #services .ns-cards:not(.ns-settled) {
    height: auto !important;
    aspect-ratio: 4 / 3;
    min-height: 0;
  }

  #services .ns-cover {
    padding: 20px;
  }

  #services .ns-cover-title {
    font-size: clamp(32px, 10vw, 54px);
  }

  /* Remove the old panels after the flip */
  #services .ns-cards.ns-handoff-complete > .ns-slice {
    display: none !important;
  }

  /* Open cards: two per row */
  #services .ns-cards.ns-settled {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  #services .ns-cards.ns-settled .ns-final-layer {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
    height: auto !important;
  }

  #services .ns-final-item {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
  }

  #services .ns-final-item .ns-card {
    height: 100%;
    min-height: 190px !important;
    padding: 18px 14px;
    border-right-width: 3px;
    border-bottom-width: 4px;
  }

  #services .ns-final-item .ns-card-symbol {
    font-size: 32px;
  }

  #services .ns-final-item .ns-card-name {
    font-size: 15px;
    line-height: 1.25;
  }

  #services .ns-final-item .ns-card-note {
    font-size: 11px;
    line-height: 1.4;
  }

  #services .ns-final-item .ns-card::after {
    min-height: 24px;
    margin-top: 12px;
    font-size: 10px;
  }

  #services .ns-final-item .ns-card-arrow {
    font-size: 20px;
  }
}
@media (max-width: 700px) {
  /* Opening cover: proportional to the phone width */
  #services .ns-stage {
    width: 100%;
    max-width: none;
    height: auto !important;
    margin: 24px auto;
    overflow: visible !important;
  }

  #services .ns-cover,
  #services .ns-cards:not(.ns-settled) {
    height: auto !important;
    aspect-ratio: 4 / 3;
    min-height: 0;
  }

  #services .ns-cover {
    padding: 20px;
  }

  #services .ns-cover-title {
    font-size: clamp(32px, 10vw, 54px);
  }

  /* Remove the old panels after the flip */
  #services .ns-cards.ns-handoff-complete > .ns-slice {
    display: none !important;
  }

  /* Open cards: two per row */
  #services .ns-cards.ns-settled {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  #services .ns-cards.ns-settled .ns-final-layer {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
    height: auto !important;
  }

  #services .ns-final-item {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
  }

  #services .ns-final-item .ns-card {
    height: 100%;
    min-height: 190px !important;
    padding: 18px 14px;
    border-right-width: 3px;
    border-bottom-width: 4px;
  }

  #services .ns-final-item .ns-card-symbol {
    font-size: 32px;
  }

  #services .ns-final-item .ns-card-name {
    font-size: 15px;
    line-height: 1.25;
  }

  #services .ns-final-item .ns-card-note {
    font-size: 11px;
    line-height: 1.4;
  }

  #services .ns-final-item .ns-card::after {
    min-height: 24px;
    margin-top: 12px;
    font-size: 10px;
  }

  #services .ns-final-item .ns-card-arrow {
    font-size: 20px;
  }
}
@media (max-width: 700px) {
  #services .ns-stage {
    width: 100%;
    height: auto !important;
    overflow: visible !important;
  }

  /* Cover and opened grid share the same dimensions */
  #services .ns-cover,
  #services .ns-cards,
  #services .ns-cards.ns-settled {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1;
  }

  #services .ns-cards:not([hidden]) {
    display: block !important;
    position: relative;
  }

  /* The four animated pieces already occupy a 2 × 2 grid */
  #services .ns-cards > .ns-slice {
    position: absolute !important;
    width: 50% !important;
    height: 50% !important;
    margin: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(1) {
    left: 0 !important;
    top: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(2) {
    left: 50% !important;
    top: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(3) {
    left: 0 !important;
    top: 50% !important;
  }

  #services .ns-cards > .ns-slice:nth-child(4) {
    left: 50% !important;
    top: 50% !important;
  }

  /* Final cards occupy exactly the same four positions */
  #services .ns-cards .ns-final-layer {
    position: absolute !important;
    inset: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 0 !important;
    width: 100%;
    height: 100% !important;
  }

  #services .ns-final-layer .ns-final-item {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    transform: none !important;
  }

  #services .ns-back .ns-card,
  #services .ns-final-item .ns-card {
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    padding: 14px 12px !important;
    border: 1px solid rgba(255, 255, 255, .15) !important;
    border-radius: 8px;
    transform: none !important;
  }

  #services .ns-card-symbol {
    font-size: 28px !important;
  }

  #services .ns-card-name {
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  #services .ns-card-note {
    font-size: 10px !important;
    line-height: 1.4 !important;
  }

  #services .ns-card::after {
    min-height: 14px !important;
    margin-top: 8px !important;
  }

  #services .ns-cards.ns-handoff-complete > .ns-slice {
    display: none !important;
  }
}
@media (max-width: 700px) {
  /* Identical proportions before, during and after the flip */
  #services .ns-cover,
  #services .ns-cards:not(.ns-settled),
  #services .ns-cards.ns-settled {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
  }

  #services .ns-cards:not([hidden]) {
    display: block !important;
    position: relative !important;
    overflow: visible !important;
  }

  /* Four equal panels, two above and two below */
  #services .ns-cards > .ns-slice {
    position: absolute !important;
    width: 50% !important;
    height: 50% !important;
    margin: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(1) {
    top: 0 !important;
    left: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(2) {
    top: 0 !important;
    left: 50% !important;
  }

  #services .ns-cards > .ns-slice:nth-child(3) {
    top: 50% !important;
    left: 0 !important;
  }

  #services .ns-cards > .ns-slice:nth-child(4) {
    top: 50% !important;
    left: 50% !important;
  }

  #services .ns-cards .ns-back .ns-card {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 14px 12px !important;
    border: 1px solid rgba(255,255,255,.15) !important;
    border-radius: 8px !important;
    transform: none !important;
  }

  #services .ns-back .ns-card-symbol {
    font-size: 28px !important;
  }

  #services .ns-back .ns-card-name {
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  #services .ns-back .ns-card-note {
    font-size: 10px !important;
    line-height: 1.4 !important;
  }

  #services .ns-back .ns-card::after {
    min-height: 14px !important;
    margin-top: 8px !important;
  }
}
@media (max-width: 700px) {
  #services .ns-cards .ns-card {
    padding: 12px !important;
    gap: 6px;
  }

  #services .ns-cards .ns-card-symbol {
    margin: 4px 0 !important;
    font-size: 26px !important;
    line-height: 1 !important;
  }

  #services .ns-cards .ns-card-name {
    margin-top: auto !important;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  #services .ns-cards .ns-card-note {
    margin-top: 0 !important;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: 10px !important;
    line-height: 1.3 !important;
  }

  /* Remove decorative spacing that crowds the text */
  #services .ns-cards .ns-card::after {
    display: none !important;
  }

  /* Prevent the opening cover showing through the backs */
  #services .ns-front,
  #services .ns-back {
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
  }

  #services .ns-cards.ns-settled .ns-front {
    visibility: hidden !important;
  }
}
@media (max-width: 700px) {
  #services .ns-cards.ns-settled .ns-flipper {
    transform: none !important;
    transform-style: flat !important;
  }

  #services .ns-cards.ns-settled .ns-back {
    transform: none !important;
    pointer-events: auto !important;
    z-index: 2;
  }

  #services .ns-cards.ns-settled .ns-back .ns-card {
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  #services .ns-cards.ns-settled .ns-front {
    display: none !important;
    pointer-events: none !important;
  }
}
#nini-preview .nini-preview__label {
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
#ns-growth .enova-comparison,
#ns-social .sofra-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

#ns-growth .enova-comparison figure,
#ns-social .sofra-comparison figure {
  min-width: 0;
  margin: 0;
}

#ns-growth .enova-comparison figcaption,
#ns-social .sofra-comparison figcaption {
  display: flex;
  align-items: center;
  min-height: 32px;
  margin: 0 0 10px;
}

/* Keep the e-commerce results below both pictures */
#ns-growth .enova-results {
  grid-column: 1 / -1;
}

/* Preserve the animation's hidden state */
#ns-growth .enova-comparison[hidden],
#ns-social .sofra-comparison[hidden] {
  display: none;
}