/* Structured service landing pages using the site's dark Aixor visual language. */
.nv-service-page {
  background: #050505;
  color: #cfcfcf;
  font-family: "Urbanist", sans-serif;
}
.nv-service-main {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 128px 24px 96px;
}
.nv-service-breadcrumb {
  color: #8e8e8e;
  font-size: 13px;
  letter-spacing: .04em;
  margin: 0 auto 40px;
  max-width: 960px;
}
.nv-service-breadcrumb a { color: #bdbdbd; text-decoration: none; }
.nv-service-breadcrumb a:hover { color: #fff; }
.nv-service-breadcrumb-separator { padding: 0 9px; color: #555; }
.nv-service-hero {
  border-bottom: 1px solid #242424;
  margin: 0 auto;
  max-width: 960px;
  padding: 0 0 70px;
}
.nv-service-hero .section-subtitle,
.nv-service-section .section-subtitle,
.nv-service-cta .section-subtitle {
  color: #999;
  display: block;
  font-size: 12px;
  letter-spacing: .16em;
  margin-bottom: 18px;
  text-transform: uppercase;
}
.nv-service-hero h1 {
  color: #fff;
  font-size: clamp(2.5rem, 7vw, 6.25rem);
  line-height: .98;
  margin: 0;
  max-width: 900px;
  overflow-wrap: anywhere;
}
.nv-service-hero .section-desc {
  color: #b6b6b6;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  line-height: 1.55;
  margin: 28px 0 32px;
  max-width: 60ch;
}
.nv-service-page .theme-btn {
  align-items: center;
  display: inline-flex;
  min-height: 48px;
  text-decoration: none;
}
.nv-service-intro,
.nv-service-section,
.nv-service-faq,
.nv-service-cta {
  margin: 0 auto;
  max-width: 960px;
}
.nv-service-intro {
  padding: 64px 0 20px;
}
.nv-service-intro p,
.nv-service-paragraph,
.nv-service-cta p {
  color: #bdbdbd;
  font-size: 18px;
  line-height: 1.75;
  margin: 0 0 22px;
  max-width: 70ch;
}
.nv-service-page a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.nv-service-page .theme-btn { text-decoration: none; }
.nv-service-sections { padding-top: 28px; }
.nv-service-section { border-top: 1px solid #242424; padding: 72px 0; }
.nv-service-section .section-header { margin-bottom: 32px; }
.nv-service-section .section-title,
.nv-service-faq .section-title {
  color: #fff;
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 1.05;
  margin: 0;
  max-width: 760px;
}
.nv-service-bullets { list-style: none; margin: 26px 0 0; max-width: 720px; padding: 0; }
.nv-service-bullets li { border-top: 1px solid #2a2a2a; color: #d0d0d0; font-size: 17px; line-height: 1.5; padding: 16px 0 16px 28px; position: relative; }
.nv-service-bullets li::before { color: #fff; content: "✓"; left: 0; position: absolute; }
.nv-service-cards { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 34px; }
.nv-service-card { background: #101010; border: 1px solid #282828; min-height: 210px; padding: 28px; }
.nv-service-card .elementor-icon-box-wrapper { display: block; }
.nv-service-card--image { padding: 0; overflow: hidden; }
.nv-service-card--image .elementor-icon-box-content { padding: 22px 28px 28px; }
.nv-service-card-img { aspect-ratio: 1; border-bottom: 1px solid #282828; display: block; height: auto; object-fit: cover; width: 100%; }
.nv-service-card .elementor-icon-box-icon { margin: 0 0 22px; }
.nv-service-card .elementor-icon { color: #fff; display: inline-flex; }
.nv-service-card svg { fill: currentColor; height: 20px; width: 20px; }
.nv-service-card .elementor-icon-box-title,
.nv-service-steps h3 { color: #fff; font-size: 21px; line-height: 1.25; margin: 0 0 10px; }
.nv-service-card .elementor-icon-box-description,
.nv-service-steps p { color: #a9a9a9; font-size: 16px; line-height: 1.6; margin: 0; }
.nv-service-steps { counter-reset: service-step; list-style: none; margin: 30px 0 0; padding: 0; }
.nv-service-steps li { align-items: flex-start; border-top: 1px solid #2a2a2a; counter-increment: service-step; display: grid; gap: 18px; grid-template-columns: 42px 1fr; padding: 23px 0; }
.nv-service-step-number::before { color: #fff; content: counter(service-step, decimal-leading-zero); font-size: 15px; letter-spacing: .08em; }
.nv-service-table-wrap { margin-top: 28px; overflow-x: auto; }
.nv-service-table { border-collapse: collapse; min-width: 640px; width: 100%; }
.nv-service-table th,
.nv-service-table td { border: 1px solid #2b2b2b; padding: 15px 16px; text-align: left; vertical-align: top; }
.nv-service-table th { background: #141414; color: #fff; font-size: 14px; letter-spacing: .05em; text-transform: uppercase; }
.nv-service-table td { color: #bdbdbd; line-height: 1.5; }
.nv-service-faq { border-top: 1px solid #242424; padding: 72px 0; }
.nv-service-faq .section-header { margin-bottom: 30px; }
.nv-service-faq .faq-lists { margin: 0; }
.nv-service-faq .accordion-button { align-items: center; display: flex; gap: 16px; }
.nv-service-faq .accordion-button .nv-faq-q, .nv-service-faq .accordion-button h3 { color: inherit; flex: 1; font: inherit; line-height: 1.35; margin: 0; text-align: left; }
.nv-service-faq .accordion-body p { max-width: 70ch; }
.nv-service-cta { align-items: center; background: #121212; border: 1px solid #2b2b2b; display: flex; gap: 34px; justify-content: space-between; padding: 48px; }
.nv-service-cta h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; margin: 0 0 16px; max-width: 620px; }
.nv-service-cta p { margin-bottom: 0; }
.nv-service-cta .theme-btn { flex: 0 0 auto; }
@media (max-width: 800px) {
  .nv-service-main { padding: 112px 18px 64px; }
  .nv-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nv-service-cta { align-items: flex-start; flex-direction: column; padding: 32px 24px; }
}
@media (max-width: 520px) {
  .nv-service-main { padding-left: 16px; padding-right: 16px; }
  .nv-service-hero { padding-bottom: 52px; }
  .nv-service-intro { padding-top: 46px; }
  .nv-service-section, .nv-service-faq { padding: 54px 0; }
  .nv-service-cards { grid-template-columns: 1fr; }
  .nv-service-card { min-height: 0; }
  .nv-service-intro p, .nv-service-paragraph, .nv-service-cta p { font-size: 16px; }
}

.nv-service-faq h3.accordion-header { margin: 0; font-size: inherit; line-height: inherit; }
.nv-service-faq .accordion-button .number { opacity: .6; margin-right: 12px; font-size: .8em; }
