/* =====================================================================
   Service detail template (cpp) — Figma 2002:69
   Hero (2002:124) + "Какие задачи решаем" tags (2002:159)
   ===================================================================== */

/* ---------- Hero ---------- */
.svc-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  /* full viewport height, clearing the fixed site header */
  min-height: 100vh;
  min-height: 100svh;
  /* clear the fixed site header (var set by theme JS, fallback 150px) */
  padding: calc(var(--header-height-full, 150px) + 32px) 0 56px;
  background: #182a40;
  color: #fff;
}

.svc-hero_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  isolation: isolate;
}

.svc-hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* darken + subtle vignette (matches Figma 2002:158) */
.svc-hero_overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(120% 120% at 50% 50%, rgba(26, 26, 26, 0) 40%, rgba(26, 26, 26, 0.25) 100%),
    linear-gradient(rgba(26, 26, 26, 0.68), rgba(26, 26, 26, 0.68));
}

/* navy color grade (blends with photo below) */
.svc-hero_tint {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(33, 58, 89, 0.6);
  mix-blend-mode: color;
}

.svc-hero_inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.svc-hero_main {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1160px;
}

.svc-hero_textwrap {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.svc-hero_text {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-hero_head {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.svc-hero_title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 56px;
  line-height: 1.0714;
  color: #fff;
}

.svc-hero_lead {
  margin: 0;
  max-width: 960px;
  font-size: 18px;
  line-height: 1.5556;
  color: #c5d3e4;
}

.svc-hero_sub {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 960px;
}

.svc-hero_subtitle {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.2;
  color: #fff;
}

.svc-hero_subtext {
  margin: 0;
  max-width: 860px;
  font-size: 18px;
  line-height: 1.5556;
  color: #c5d3e4;
}

.svc-hero_facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-hero_fact {
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: center;
  min-width: 0;
  padding: 24px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.svc-hero_fact-label {
  font-weight: 600;
  font-size: 20px;
  line-height: 1;
  color: #fff;
}

.svc-hero_fact-caption {
  font-size: 16px;
  line-height: 1;
  color: #c5d3e4;
}

.svc-hero_actions {
  display: flex;
}

.svc-hero_cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.svc-hero_cta .button_text {
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  color: #213a59;
}

.svc-hero_cta:hover {
  background: #eef2f7;
}

/* breadcrumbs on dark hero */
.svc-hero .breadcrumbs_link,
.svc-hero .breadcrumbs_current {
  color: #fff;
}

.svc-hero .breadcrumbs_sep,
.svc-hero .breadcrumbs_current {
  color: #9eb6d2;
}

.svc-hero .breadcrumbs_link {
  text-decoration: none;
}

.svc-hero .breadcrumbs_link:hover {
  text-decoration: underline;
}

/* ---------- "Какие задачи решаем" (tags) ---------- */
.svc-tasks {
  padding: 80px 0;
  background: #fff;
}

.svc-tasks_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-tasks_header {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 1160px;
}

.svc-tasks_title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.125;
  color: #213a59;
}

.svc-tasks_subtitle {
  margin: 0;
  font-size: 18px;
  line-height: 1.5556;
  color: #8599b1;
}

.svc-tasks_list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.svc-tasks_tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 16px 15px;
  background: #f5f7f9;
  border: 1px solid #cdd8e5;
  border-radius: 8px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  color: #043b7e;
  text-decoration: none;
}

a.svc-tasks_tag:hover {
  background: #eef2f7;
  border-color: #b9c8db;
}

/* ---------- Shared section header (reused across sections) ---------- */
.svc-section-head {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 1160px;
}

.svc-section-title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.125;
  color: #213a59;
}

.svc-section-subtitle {
  margin: 0;
  font-size: 18px;
  line-height: 1.5556;
  color: #8599b1;
}

/* ---------- "Кому нужно обучение" (cards) ---------- */
.svc-audience {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-audience_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-audience_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.svc-audience_card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  background: #fff;
  border-radius: 16px;
}

.svc-audience_card-title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-audience_card-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

/* ---------- "Стоимость" (price card + table) ---------- */
.svc-price {
  padding: 80px 0;
  background: #fff;
}

.svc-price_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-price_card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

.svc-price_head {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  padding: 28px 24px 24px;
  background: #f5f7f9;
}

.svc-price_head-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.svc-price_card-title {
  margin: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.1667;
  color: #213a59;
}

.svc-price_card-subtitle {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-price_head-right {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 8px;
  align-items: flex-end;
  text-align: right;
  white-space: nowrap;
}

.svc-price_value-label {
  font-size: 16px;
  line-height: 1;
  color: #3d5d84;
}

.svc-price_value {
  font-weight: 600;
  font-size: 20px;
  line-height: 1;
  color: #213a59;
}

.svc-price_table {
  width: 100%;
  border-collapse: collapse;
}

.svc-price_table th,
.svc-price_table td {
  padding: 16px 24px;
  text-align: left;
  vertical-align: top;
  font-size: 16px;
  line-height: 1.5;
  color: #043b7e;
  border: 1px solid #ced8e5;
}

.svc-price_table th {
  width: 260px;
  font-weight: 600;
  background: #fbfcfd;
}

.svc-price_table td {
  font-weight: 400;
}

/* avoid doubling the card's outer border */
.svc-price_table th:first-child {
  border-left: 0;
}

.svc-price_table td:last-child {
  border-right: 0;
}

.svc-price_table tr:last-child th,
.svc-price_table tr:last-child td {
  border-bottom: 0;
}

.svc-price_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.svc-price_cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.svc-price_cta .button_text {
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
}

.svc-price_cta--primary {
  background: #3d5d84;
  border-color: #3d5d84;
}

.svc-price_cta--primary .button_text {
  color: #fff;
}

.svc-price_cta--primary:hover {
  background: #324d6f;
}

.svc-price_cta--secondary {
  background: #fff;
  border-color: #ced8e5;
}

.svc-price_cta--secondary .button_text {
  color: #043b7e;
}

.svc-price_cta--secondary:hover {
  background: #eef2f7;
}

/* ---------- "Что вы получите" (certificate + photo) ---------- */
.svc-result {
  padding: 80px 0;
  background: #182a40;
  color: #fff;
}

.svc-result_inner {
  display: flex;
  gap: 40px;
  align-items: center;
}

.svc-result_left {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 40px;
  align-items: center;
  width: 560px;
  text-align: center;
}

.svc-result_title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.125;
  color: #fff;
}

.svc-result_subtitle {
  margin: 0;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.1667;
  color: #fff;
}

.svc-result_cert {
  width: 226px;
  max-width: 100%;
  padding: 8px;
  background: #f5f7f9;
  border-radius: 8px;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

.svc-result_cert:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

.svc-result_cert img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.svc-result_caption {
  margin: 0;
  font-size: 18px;
  line-height: 1.5556;
  color: #8599b1;
}

.svc-result_right {
  flex: 1 1 0;
  min-width: 0;
}

.svc-result_photo {
  display: block;
  width: 100%;
  height: 400px;
  object-fit: cover;
  background: #f5f7f9;
  border-radius: 16px;
}

/* ---------- "Что входит в курс" (cards with badge + note) ---------- */
.svc-course {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-course_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-course_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.svc-course_card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  background: #fff;
  border-radius: 16px;
}

.svc-course_badge {
  align-self: flex-start;
  padding: 8px 12px 9px;
  background: #eef5fb;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1;
  color: #153f63;
}

.svc-course_card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.svc-course_card-title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-course_card-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-course_note {
  padding: 20px 24px;
  background: #eef5fb;
  border: 1px solid #b8d8ff;
  border-left: 4px solid #3d5d84;
  border-radius: 12px;
}

.svc-course_note-text,
.svc-course_note-text p {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-course_note-text strong,
.svc-course_note-text b {
  font-weight: 700;
  color: #3d5d84;
}

/* ---------- "Порядок получения" (numbered steps) ---------- */
.svc-steps {
  padding: 80px 0;
  background: #fff;
}

.svc-steps_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-steps_list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-steps_item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

/* row 1: number aligned with the title */
.svc-steps_head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.svc-steps_num {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  background: #3d5d84;
  border-radius: 100px;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  color: #fff;
}

.svc-steps_title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-steps_text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

/* ---------- Documents tables (reusable: 2002:312 / 2002:366) ---------- */
.svc-doctable {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-doctable--white {
  background: #fff;
}

.svc-doctable_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-doctable_wrap {
  overflow: hidden;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

.svc-doctable_table {
  width: 100%;
  border-collapse: collapse;
}

.svc-doctable_table th,
.svc-doctable_table td {
  padding: 20px 24px;
  text-align: left;
  vertical-align: top;
  font-size: 16px;
  line-height: 1.5;
  color: #043b7e;
  border-right: 1px solid #ced8e5;
  border-bottom: 1px solid #ced8e5;
}

.svc-doctable_table tr > *:last-child {
  border-right: 0;
}

.svc-doctable_table tbody tr:last-child > * {
  border-bottom: 0;
}

.svc-doctable_table thead th {
  font-weight: 600;
  color: #213a59;
  background: #f5f7f9;
}

.svc-doctable_table tbody th {
  width: 33.33%;
  font-weight: 600;
  color: #043b7e;
  background: #fff;
}

.svc-doctable_table tbody td {
  font-weight: 400;
  background: #fbfcfd;
}

/* compact variant (parent "Что подготовить для поступления") — tighter cells under 450px */
@media (max-width: 449.98px) {
  .svc-doctable--compact .svc-doctable_table th,
  .svc-doctable--compact .svc-doctable_table td {
    padding: 6px 16px;
  }
}

/* ---------- "Записаться на обучение" (CTA + contacts) ---------- */
.svc-cta {
  padding: 60px 0;
  background: #182a40;
  color: #fff;
}

.svc-cta_inner {
  display: flex;
  gap: 40px;
  align-items: center;
  justify-content: space-between;
}

.svc-cta_main {
  display: flex;
  flex-direction: column;
  gap: 32px;
  max-width: 660px;
}

.svc-cta_head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.svc-cta_title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.125;
  color: #fff;
}

.svc-cta_subtitle {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #fff;
}

.svc-cta_contacts {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  color: #9eb6d2;
}

.svc-cta_contact {
  display: flex;
  gap: 8px;
}

.svc-cta_contact-label {
  flex-shrink: 0;
  font-weight: 600;
  font-size: 13px;
}

.svc-cta_contact-value {
  color: #9eb6d2;
  text-decoration: none;
  font-size: 13px;
}

a.svc-cta_contact-value:hover {
  color: #fff;
  text-decoration: underline;
}

.svc-cta_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.svc-cta_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.svc-cta_btn .button_text {
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
}

.svc-cta_btn--light {
  background: #fff;
  border-color: #ced8e5;
}

.svc-cta_btn--light .button_text {
  color: #043b7e;
}

.svc-cta_btn--light:hover {
  background: #eef2f7;
}

.svc-cta_btn--filled {
  background: #3d5d84;
  border-color: #3d5d84;
}

.svc-cta_btn--filled .button_text {
  color: #fff;
}

.svc-cta_btn--filled:hover {
  background: #324d6f;
}

.svc-cta_media {
  flex-shrink: 0;
  align-self: stretch;
  width: 360px;
}

.svc-cta_img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
  border-radius: 16px;
}

/* ---------- "Учебная и материальная база" (photo cards) ---------- */
.svc-base {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-base_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-base_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 40px;
}

.svc-base_card {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  background: #fff;
  border-radius: 16px;
}

.svc-base_media {
  display: block;
  height: 220px;
  cursor: zoom-in;
}

.svc-base_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.svc-base_media:hover .svc-base_img {
  transform: scale(1.04);
}

.svc-base_caption {
  margin: 0;
  padding: 24px 24px 32px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: #043b7e;
}

/* ---------- "Документы центра" (badge cards + docs list) ---------- */
.svc-dcenter {
  padding: 80px 0;
  background: #fff;
}

.svc-dcenter_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-dcenter_cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.svc-dcenter_card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

.svc-dcenter_badge {
  align-self: flex-start;
  padding: 8px 12px 9px;
  background: #eef5fb;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1;
  color: #153f63;
}

.svc-dcenter_card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.svc-dcenter_card-title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-dcenter_card-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-dcenter_card-link {
  align-self: flex-start;
  margin-top: auto;
}

.svc-dcenter_list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-dcenter_row {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
  border-top: 1px solid #cdd8e5;
}

.svc-dcenter_row:first-child {
  border-top: 0;
}

.svc-dcenter_row-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.svc-dcenter_row-title {
  margin: 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-dcenter_row-desc {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-dcenter_view {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 17px 20px;
  background: #fff;
  border: 1px solid #cdd8e5;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  color: #043b7e;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.svc-dcenter_view:hover {
  background: #eef2f7;
}

/* ---------- FAQ (reuses theme accordion: .faq_list / .accordion_item) ---------- */
.svc-faq {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-faq_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-faq .accordion_item {
  background: #fbfcfd;
}

.svc-faq .accordion_item.open {
  background: #fff;
}

.svc-faq .accordion_item_title {
  font-weight: 600;
  color: #213a59;
}

.svc-faq .accordion_item.open .accordion_item_title {
  color: #043b7e;
}

/* ---------- "Смежные услуги" (cards with badge + link) ---------- */
.svc-related {
  padding: 80px 0;
  background: #fff;
}

.svc-related_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-related_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.svc-related_card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

.svc-related_badge {
  align-self: flex-start;
  padding: 8px 12px 9px;
  background: #eef5fb;
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1;
  color: #153f63;
}

.svc-related_body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.svc-related_title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-related_text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-related_view {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  padding: 17px 20px;
  background: #fff;
  border: 1px solid #cdd8e5;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  color: #043b7e;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.svc-related_view:hover {
  background: #eef2f7;
}

/* ---------- "Получить консультацию" (CTA + CF7 form) ---------- */
.svc-formcta {
  padding: 120px 0;
  background: #182a40;
  color: #fff;
}

.svc-formcta_inner {
  display: flex;
  gap: 40px;
  align-items: stretch;
}

.svc-formcta_info {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
  min-width: 0;
}

.svc-formcta_head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.svc-formcta_title {
  margin: 0;
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 600;
  font-size: 32px;
  line-height: 1.125;
  color: #fff;
}

.svc-formcta_subtitle {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #fff;
}

.svc-formcta_form {
  flex: 1 1 0;
  min-width: 0;
}

/* ---------- "Программа" (theory/practice columns) ---------- */
.svc-prog {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-prog_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-prog_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}

.svc-prog_card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  background: #fff;
  border-radius: 16px;
}

.svc-prog_card-title {
  margin: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  color: #043b7e;
}

.svc-prog_list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-prog_list li {
  position: relative;
  padding-left: 16px;
  font-size: 16px;
  line-height: 1.5;
  color: #043b7e;
}

.svc-prog_list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3d5d84;
}

/* ---------- doctable 4-column variant ---------- */
.svc-doctable--4col .svc-doctable_table tbody th {
  width: auto;
}

/* ---------- "Тесты" table link button (reuses .svc-doctable table) ---------- */
.svc-tests_table td.svc-tests_linkcell {
  width: 1%;
  white-space: nowrap;
}

.svc-tests_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 17px 20px;
  background: #fff;
  border: 1px solid #cdd8e5;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  color: #043b7e;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.15s ease;
}

.svc-tests_btn:hover {
  background: #eef2f7;
}

.svc-tests_dash {
  color: #8599b1;
}

/* ========== PARENT-ONLY SECTIONS ========== */

/* ---------- Parent: info strip ---------- */
.svc-spinfo {
  padding: 56px 0;
  background: #fff;
}

.svc-spinfo_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.svc-spinfo_card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  background: #f5f7f9;
  border-radius: 16px;
}

.svc-spinfo_label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8599b1;
}

.svc-spinfo_value {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  color: #213a59;
  word-break: break-word;
}

.svc-spinfo_text {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: #3d5d84;
}

@media (max-width: 767px) {
  .svc-spinfo_card {
    gap: 4px;
    padding: 12px;
    border-radius: 8px;
  }

  .svc-spinfo_value {
    font-size: 17px;
  }

  .svc-spinfo_text {
    font-size: 14px;
  }
}

/* ---------- Parent: разряд selector ---------- */
.svc-razryad {
  padding: 80px 0;
  background: #f5f7f9;
}

.svc-razryad_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-razryad_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.svc-razryad_card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px;
  background: #fff;
  border-radius: 16px;
}

.svc-razryad_head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.svc-razryad_num {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #213a59;
  color: #fff;
  font-size: 22px;
  font-weight: 600;
}

.svc-razryad_title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  color: #213a59;
}

.svc-razryad_text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-razryad_list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-razryad_list li {
  position: relative;
  padding-left: 16px;
  font-size: 15px;
  line-height: 1.5;
  color: #043b7e;
}

.svc-razryad_list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3d5d84;
}

.svc-razryad_link {
  align-self: flex-start;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  border: 1px solid #cdd8e5;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #043b7e;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

/* the lead-modal control renders a <button>, so reset native button styling */
button.svc-razryad_link {
  background: #fff;
  font-family: inherit;
  cursor: pointer;
}

.svc-razryad_link .button_text {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #043b7e;
}

.svc-razryad_link:hover {
  background: #eef2f7;
}

.svc-razryad_note {
  padding: 20px 24px;
  background: #eef3fb;
  border-left: 3px solid #3d5d84;
  border-radius: 12px;
}

.svc-razryad_note-title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: #213a59;
}

.svc-razryad_note-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #3d5d84;
  display: inline;
}

.svc-razryad_note-link {
  text-decoration: underline !important;
  color: #3d5d84;
}

@media (max-width: 767px) {
  .svc-razryad_title {
    font-size: 17px;
  }
  .svc-razryad_list {
    gap: 4px;
  }
  .svc-razryad_text,
  .svc-razryad_list li,
  .svc-razryad_note-text {
    font-size: 14px;
  }
}

/* ---------- Parent: price cards (stacked full-width) ---------- */
.svc-spprice {
  padding: 80px 0;
  background: #fff;
}

.svc-spprice_inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.svc-spprice_list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* mobile (<768px): the responsive swiper adds .swiper and takes over layout.
   The list is a flex-column item of .svc-spprice_inner, so it needs min-width:0
   and overflow:hidden — otherwise Swiper measures the content width and blows the
   slide width up to millions of px. */
.svc-spprice_inner {
  min-width: 0;
}

.svc-spprice_list.swiper {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding-bottom: 32px; /* room for pagination dots */
}

/* equal-height slides + footer pinned to the bottom so CTA buttons line up */
.svc-spprice_list.swiper .swiper-wrapper {
  align-items: stretch;
}

.svc-spprice_list.swiper .svc-spprice_card {
  height: auto;
  display: flex;
  flex-direction: column;
}

.svc-spprice_list.swiper .svc-spprice_foot {
  margin-top: auto;
}

/* ---------- Mobile swipers for steps / base / dcenter (same pattern as price) ---------- */
.svc-steps_inner,
.svc-base_inner,
.svc-dcenter_inner {
  min-width: 0;
}

.svc-steps_list.swiper,
.svc-base_grid.swiper,
.svc-dcenter_cards.swiper {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding-bottom: 32px;
}

.svc-steps_list.swiper .swiper-wrapper,
.svc-base_grid.swiper .swiper-wrapper,
.svc-dcenter_cards.swiper .swiper-wrapper {
  align-items: stretch;
}

.svc-steps_list.swiper .svc-steps_item,
.svc-base_grid.swiper .svc-base_card,
.svc-dcenter_cards.swiper .svc-dcenter_card {
  height: auto;
}

.svc-spprice_card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 16px;
}

.svc-spprice_card--featured {
  border-color: #213a59;
}

.svc-spprice_head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px;
  background: #f5f7f9;
}

.svc-spprice_head-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.svc-spprice_badge {
  align-self: flex-start;
  padding: 4px 12px;
  border-radius: 999px;
  background: #e6edf5;
  font-size: 13px;
  font-weight: 600;
  color: #213a59;
}

.svc-spprice_title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  color: #213a59;
}

.svc-spprice_title a {
  color: inherit;
  text-decoration: none;
}

.svc-spprice_title a:hover {
  color: #043b7e;
  text-decoration: underline;
}

.svc-spprice_sub {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-spprice_head-right {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}

.svc-spprice_value-label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #8599b1;
}

.svc-spprice_value-num {
  font-size: 22px;
  font-weight: 600;
  color: #043b7e;
}

.svc-spprice_rows {
  display: flex;
  flex-direction: column;
}

.svc-spprice_row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  padding: 16px 24px;
  border-top: 1px solid #eef2f6;
}

.svc-spprice_row:first-child {
  border-top: 0;
}

.svc-spprice_row-label {
  font-size: 14px;
  font-weight: 600;
  color: #213a59;
}

.svc-spprice_row-value {
  font-size: 15px;
  line-height: 1.5;
  color: #3d5d84;
}

.svc-spprice_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.svc-spprice_tags li {
  padding: 4px 10px;
  border-radius: 8px;
  background: #eef2f6;
  font-size: 13px;
  color: #043b7e;
}

.svc-spprice_foot {
  padding: 14px 24px 20px;
}

.svc-spprice_cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 20px;
  background: #fff;
  border: 1px solid #ced8e5;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #043b7e;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.svc-spprice_cta:hover {
  background: #eef2f7;
}

@media (max-width: 767px) {
  .svc-spprice_title {
    font-size: 17px;
  }
  .svc-spprice_sub {
    font-size: 14px;
  }
  .svc-spprice_value-num,
  .svc-spprice_row-value {
    font-size: 14px;
  }
  .svc-spprice_row-label {
    font-size: 16px;
  }
  .svc-spprice_row {
    gap: 7px;
    padding: 14px 20px;
  }
  .svc-spprice_head {
    padding: 14px 20px;
  }
  .svc-spprice_tags li {
    font-size: 12px;
  }
  .svc-spprice_cta {
    text-align: center;
    width: 100%;
  }
}

/* parent tests: full-width button in the last column */
.svc-sptests .svc-tests_table td.svc-tests_linkcell {
  width: 200px;
  white-space: normal;
}

.svc-sptests .svc-tests_btn {
  width: 100%;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .svc-hero_title {
    font-size: 44px;
  }

  .svc-hero_facts {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

@media (max-width: 991px) {
  .svc-audience_grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .svc-result_inner {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }

  .svc-result_left {
    width: auto;
  }

  .svc-result_photo {
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .svc-course_grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .svc-cta_inner {
    flex-direction: column;
    align-items: stretch;
  }

  .svc-cta_main {
    max-width: none;
  }

  .svc-cta_media {
    width: 100%;
  }

  .svc-cta_img {
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .svc-dcenter_cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .svc-related_grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .svc-formcta {
    padding: 80px 0;
  }

  .svc-formcta_inner {
    flex-direction: column;
    align-items: stretch;
  }

  .svc-formcta_info {
    gap: 32px;
  }

  .svc-prog_grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 767px) {
  .svc-hero {
    padding: calc(var(--header-height-full, 120px) + 24px) 0 40px;
  }

  .svc-audience {
    padding: 48px 0;
  }

  .svc-audience_inner {
    gap: 24px;
  }

  .svc-audience_grid {
    gap: 12px;
  }

  .svc-section-head {
    gap: 16px;
  }

  .svc-audience_card {
    padding: 20px;
    gap: 10px;
  }

  .svc-section-title {
    font-size: 21px;
  }

  .svc-section-subtitle {
    font-size: 14px;
  }

  .svc-price {
    padding: 48px 0;
  }

  .svc-price_inner {
    gap: 24px;
  }

  .svc-price_card-title {
    font-size: 20px;
  }

  .svc-price_table th {
    width: 200px;
  }

  .svc-price_table th,
  .svc-price_table td {
    padding: 14px 16px;
  }

  .svc-result {
    padding: 48px 0;
  }

  .svc-result_left {
    gap: 24px;
  }

  .svc-result_title {
    font-size: 24px;
  }

  .svc-result_subtitle {
    font-size: 20px;
  }

  .svc-result_caption {
    font-size: 16px;
  }

  .svc-course {
    padding: 48px 0;
  }

  .svc-course_inner {
    gap: 24px;
  }

  .svc-course_grid {
    gap: 12px;
  }

  .svc-course_card {
    padding: 20px;
  }

  .svc-course_note {
    padding: 16px 20px;
  }

  .svc-steps {
    padding: 48px 0;
  }

  .svc-steps_inner {
    gap: 24px;
  }

  .svc-steps_item {
    padding: 20px;
    gap: 16px;
  }

  .svc-doctable {
    padding: 48px 0;
  }

  .svc-doctable_inner {
    gap: 24px;
  }

  .svc-doctable_table th,
  .svc-doctable_table td {
    padding: 14px 16px;
  }

  .svc-cta {
    padding: 48px 0;
  }

  .svc-cta_title {
    font-size: 24px;
  }

  .svc-base {
    padding: 0;
  }

  .svc-base_inner {
    gap: 24px;
  }

  .svc-base_grid {
    gap: 16px;
  }

  .svc-base_caption {
    padding: 16px 16px 20px;
  }

  .svc-dcenter {
    padding: 48px 0;
  }

  .svc-dcenter_inner {
    gap: 24px;
  }

  .svc-dcenter_card {
    padding: 20px;
  }

  .svc-dcenter_row {
    padding: 20px 0;
  }

  .svc-faq {
    padding: 48px 0;
  }

  .svc-faq_inner {
    gap: 24px;
  }

  .svc-related {
    padding: 48px 0;
  }

  .svc-related_inner {
    gap: 24px;
  }

  .svc-related_card {
    padding: 20px;
  }

  .svc-formcta {
    padding: 48px 0;
  }

  .svc-formcta_title {
    font-size: 24px;
  }

  .svc-prog {
    padding: 48px 0;
  }

  .svc-prog_inner {
    gap: 24px;
  }

  .svc-prog_card {
    padding: 20px;
  }

  .svc-hero_main,
  .svc-hero_text {
    gap: 28px;
  }

  .svc-hero_title {
    font-size: 30px;
    line-height: 1.15;
  }

  .svc-hero_lead,
  .svc-hero_subtext {
    font-size: 16px;
  }

  .svc-hero_facts {
    gap: 12px;
  }

  .svc-hero_fact {
    padding: 16px;
  }

  .svc-tasks {
    padding: 48px 0;
  }

  .svc-tasks_title {
    font-size: 24px;
  }

  .svc-tasks_subtitle {
    font-size: 16px;
  }
}

@media (max-width: 575px) {
  .svc-hero_title {
    font-size: 24px;
  }

  .svc-hero_subtitle {
    font-size: 18px;
  }

  .svc-hero_lead,
  .svc-hero_subtext {
    font-size: 14px;
  }

  .svc-hero_facts {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .svc-hero_fact {
    padding: 14px;
    gap: 8px;
  }

  .svc-hero_fact-label {
    font-size: 16px;
  }

  .svc-hero_fact-caption {
    font-size: 13px;
  }

  .svc-audience {
    padding: 40px 0;
  }

  .svc-audience_card {
    padding: 16px;
  }

  .svc-section-head {
    gap: 12px;
  }

  .svc-audience_card-title {
    font-size: 18px;
  }

  .svc-audience_card-text {
    font-size: 14px;
  }

  .svc-tasks_tag {
    width: 100%;
  }

  .svc-hero_actions {
    width: 100%;
  }

  .svc-hero_cta {
    width: 100%;
  }

  .svc-price {
    padding: 40px 0;
  }

  .svc-price_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 20px 16px;
  }

  .svc-price_head-right {
    align-items: flex-start;
    text-align: left;
  }

  .svc-price_card-title {
    font-size: 18px;
  }

  .svc-price_table tr {
    display: block;
  }

  .svc-price_table tr:not(:last-child) {
    border-bottom: 1px solid #ced8e5;
  }

  .svc-price_table th,
  .svc-price_table td {
    display: block;
    width: 100%;
    border: 0;
  }

  .svc-price_table th {
    padding: 12px 16px 4px;
    background: transparent;
  }

  .svc-price_table td {
    padding: 0 16px 14px;
  }

  .svc-price_actions {
    gap: 8px;
  }

  .svc-price_cta {
    flex: 1 1 100%;
    width: 100%;
  }

  .svc-result {
    padding: 40px 0;
  }

  .svc-result_subtitle {
    font-size: 18px;
  }

  .svc-result_caption {
    font-size: 14px;
  }

  .svc-course_card-title {
    font-size: 18px;
  }

  .svc-course_card-text,
  .svc-course_note-text,
  .svc-course_note-text p {
    font-size: 14px;
  }

  .svc-steps_title {
    font-size: 18px;
  }

  .svc-steps_text {
    font-size: 14px;
  }

  .svc-doctable {
    padding: 40px 0;
  }

  .svc-doctable_wrap {
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
  }

  .svc-doctable_table thead {
    display: none;
  }

  .svc-doctable_table tbody tr {
    display: block;
    margin-bottom: 12px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ced8e5;
    border-radius: 12px;
  }

  .svc-doctable_table tbody tr:last-child {
    margin-bottom: 0;
  }

  .svc-doctable_table tbody th,
  .svc-doctable_table tbody td {
    display: block;
    width: 100%;
    padding: 12px 16px;
    border: 0;
    font-size: 14px;
  }

  .svc-doctable_table tbody th {
    font-size: 16px;
    background: #f5f7f9;
  }

  .svc-doctable_table tbody td:not(:last-child) {
    border-bottom: 1px solid #eef2f7;
  }

  .svc-doctable_table tbody td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #aab6c6;
  }

  .svc-cta_btn {
    flex: 1 1 100%;
    width: 100%;
  }

  .svc-cta_contact {
    flex-wrap: wrap;
  }

  .svc-dcenter_card-title {
    font-size: 18px;
  }

  .svc-dcenter_card-text,
  .svc-dcenter_row-desc {
    font-size: 14px;
  }

  .svc-dcenter_row {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .svc-dcenter_row-title {
    font-size: 16px;
  }

  .svc-dcenter_view {
    width: 100%;
  }

  .svc-faq .accordion_item_head {
    padding: 20px;
  }

  .svc-faq .accordion_item.open .accordion_item_body {
    padding: 0 20px 20px;
  }

  .svc-faq .accordion_item_title {
    font-size: 16px;
  }

  .svc-related_title {
    font-size: 18px;
  }

  .svc-related_text {
    font-size: 14px;
  }

  .svc-related_view {
    align-self: stretch;
    width: 100%;
  }

  .svc-tests_table td.svc-tests_linkcell {
    width: 100%;
  }

  .svc-tests_btn {
    width: 100%;
  }
}

/* ---------- Parent sections — responsive ---------- */
@media (max-width: 991px) {
  .svc-spinfo_grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .svc-razryad_grid {
    grid-template-columns: 1fr;
  }

  .svc-razryad,
  .svc-spprice {
    padding: 48px 0;
  }

  .svc-razryad_inner,
  .svc-spprice_inner {
    gap: 24px;
  }
}

@media (max-width: 767px) {
  .svc-spinfo {
    padding: 40px 0;
  }

  .svc-razryad_card {
    padding: 24px;
  }

  .svc-spprice_head {
    flex-direction: column;
    gap: 12px;
  }

  .svc-spprice_head-right {
    align-items: flex-start;
    text-align: left;
  }

  .svc-spprice_row {
    grid-template-columns: 1fr;
    /* gap: 4px; */
  }

  .svc-spprice_inner {
    padding-right: 0;
  }
  .svc-section-head {
    padding-right: 20px;
  }
  .svc-spprice {
    padding: 48px 0 24px;
  }
}

@media (max-width: 575px) {
  .svc-spinfo_grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* ---------- Mobile swiper for the tests table (rows become slides) ---------- */
@media (max-width: 767px) {
  /* Tests table stacks into cards across the whole swiper range (≤767), not only ≤575,
     otherwise 576–767 shows a broken horizontal table under the mounted swiper. */
  .svc-tests .svc-doctable_wrap {
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
  }

  .svc-tests_table thead {
    display: none;
  }

  .svc-tests_table tbody tr {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ced8e5;
    border-radius: 12px;
  }

  .svc-tests_table tbody th,
  .svc-tests_table tbody td {
    display: block;
    width: 100%;
    padding: 12px 16px;
    border: 0;
    font-size: 14px;
  }

  .svc-tests_table tbody th {
    font-size: 16px;
    background: #f5f7f9;
    /* reserve 2 lines so the header cell is the same height across all slides
       (line-height 1.5 * 16px = 24px per line, 2 lines = 3em, + 24px padding) */
    min-height: calc(3em + 24px);
  }

  .svc-tests_table tbody td:not(:last-child) {
    border-bottom: 1px solid #eef2f7;
  }

  .svc-tests_table tbody td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #aab6c6;
  }

  /* pin the "Открыть" button to the bottom so buttons line up across slides */
  .svc-tests_table tbody td.svc-tests_linkcell {
    margin-top: auto;
    width: 100%;
  }

  .svc-tests_table .svc-tests_btn {
    width: 100%;
  }

  .svc-tests_table:has(tbody.swiper) {
    display: block;
  }

  .svc-tests_table tbody.swiper {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    padding-bottom: 28px;
  }

  .svc-tests_table tbody.swiper .swiper-wrapper {
    align-items: stretch;
  }

  .svc-tests_table tbody.swiper .swiper-slide {
    height: auto;
  }
}

/* ---------- Mobile swiper bleed: peeking slide reaches the screen edge ---------- */
@media (max-width: 767px) {
  .svc-spprice_inner,
  .svc-steps_inner,
  .svc-base_inner,
  .svc-dcenter_inner,
  .svc-sptests .svc-doctable_inner,
  .svc-tests .svc-doctable_inner {
    padding-right: 0;
  }

  .svc-spprice_inner > .svc-section-head,
  .svc-steps_inner > .svc-section-head,
  .svc-base_inner > .svc-section-head,
  .svc-dcenter_inner > .svc-section-head,
  .svc-sptests .svc-doctable_inner > .svc-section-head,
  .svc-tests .svc-doctable_inner > .svc-section-head {
    padding-right: 20px;
  }
}
