:root {
  --services-mint: #37d696;
  --services-cyan: #3bbfc4;
  --services-ink: #0b0e0e;
  --services-panel: #141a1a;
  --services-text: #edf2f6;
  --services-muted: #aebcbd;
  --services-line: rgba(90, 130, 132, 0.32);
}

.devices-block__pretitle,
.services-final-request .section-top__pretitle {
  color: var(--services-mint);
}

.devices,
.tests--new,
.services-process,
.services-procedures,
.services {
  padding-bottom: 0;
}

.devices .devices-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 1.4vw, 28px);
}

.devices .devices-block,
.services-procedure-card {
  width: 100%;
  height: auto;
  min-width: 0;
  min-height: 0;
  padding: clamp(28px, 2.5vw, 42px);
  border: 1px solid rgba(49, 69, 70, 0.32);
  border-radius: clamp(28px, 3vw, 50px);
  background: linear-gradient(148deg, #0b0e0e 12%, #141a1a 50%, #0b0e0e 88%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(16px, 1.35vw, 24px);
}

.devices .devices-block__title,
.devices .devices-block__text,
.services-procedure-card .devices-block__title,
.services-procedure-card .devices-block__text {
  min-height: 0;
}

.devices .devices-block__pretitle,
.services-procedure-card .devices-block__pretitle {
  font-size: clamp(18px, 1.4vw, 24px);
}

.devices .devices-block__title,
.services-procedure-card .devices-block__title {
  font-size: clamp(21px, 1.45vw, 26px);
}

.devices .devices-block__text,
.services-procedure-card .devices-block__text {
  font-size: clamp(14px, 0.9vw, 16px);
  line-height: 1.55;
}

.devices .devices-block__text p:last-child,
.services-procedure-card .devices-block__text p:last-child {
  margin-bottom: 0;
}

.devices .devices-block__btn,
.services-procedure-card .devices-block__btn {
  margin-top: auto;
}

.services-procedures {
  position: relative;
  z-index: 100;
}

.services-procedures__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 1.4vw, 28px);
  margin-top: clamp(28px, 2.1vw, 40px);
}

.services-procedure-card .devices-block__btn {
  align-self: flex-start;
}

.services .bottom-more-posts {
  margin-top: 36px;
}

.services .more-services {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 390px);
  border: 0;
  cursor: pointer;
}

.services-more-loader {
  display: none;
  width: 26px;
  height: 26px;
  border: 3px solid rgba(0, 0, 0, 0.24);
  border-top-color: #06100c;
  border-radius: 50%;
  animation: services-loader-spin 700ms linear infinite;
}

.more-services.is-loading {
  cursor: wait;
}

.more-services.is-loading .services-more-label {
  display: none;
}

.more-services.is-loading .services-more-loader {
  display: block;
}

@keyframes services-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

.services-process__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.92fr);
  gap: clamp(20px, 1.4vw, 28px);
  margin-top: clamp(28px, 2.1vw, 40px);
  align-items: stretch;
}

.services-process .tests-big,
.services-process__steps {
  width: 100%;
  margin: 0;
}

.services-process .tests-big {
  align-items: flex-start;
}

.services-process .tests-big-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
}

.services-process .tests-big__text {
  max-width: 62ch;
}

.services-process .tests-big .devices-block__btn {
  align-self: flex-start;
  margin-top: auto;
}

.services-process__steps {
  gap: clamp(20px, 1.6vw, 30px);
}

.services-process__steps .tests-list {
  width: 100%;
}

.services-process__steps .tests-list-item {
  align-items: flex-start;
}

.services-process__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 1.4vw, 28px);
  margin-top: clamp(20px, 1.4vw, 28px);
}

.services-process__details .tests-block {
  width: 100%;
}

.services-block-photo {
  overflow: hidden;
  background: #dfe8e7;
}

.services-block-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.services-btns button {
  border: 0;
  background: transparent;
  cursor: pointer;
}

.services-btns .services-btn--urgent {
  color: var(--services-text);
}

.services-btns .services-btn-more {
  border: 1px solid #314546;
}

.services-block-hidden-wrapper[hidden] {
  display: none !important;
}

.services-block.is-expanded .services-btn-more {
  background: #314546;
}

.services-block.is-expanded .services-btn-more [aria-hidden="true"] {
  transform: rotate(180deg);
}

.services-btn-more [aria-hidden="true"] {
  display: inline-block;
  transition: transform 180ms ease;
}

.services-final-request {
  position: relative;
  z-index: 100;
  padding: clamp(72px, 8vw, 150px) 0;
  border-top: 1px solid var(--services-line);
  background:
    radial-gradient(circle at 20% 20%, rgba(55, 214, 150, 0.13), transparent 34%),
    linear-gradient(148deg, #0b0e0e 12%, #141a1a 52%, #0b0e0e 88%);
}

.services-final-request__grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(40px, 6vw, 110px);
  align-items: start;
}

.services-final-request__intro {
  position: sticky;
  top: 32px;
}

.services-final-request__intro p,
.services-final-request__intro strong {
  display: block;
  max-width: 54ch;
  margin-top: 22px;
  color: var(--services-muted);
  font-family: "Century Gothic", sans-serif;
  font-size: clamp(14px, 0.98vw, 17px);
  line-height: 1.65;
}

.services-final-request__intro strong {
  color: var(--services-text);
  font-size: clamp(13px, 0.9vw, 15px);
}

.services-request-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.services-request-form label:not(.services-request-consent) {
  display: flex;
  flex-direction: column;
  gap: 9px;
  color: var(--services-text);
  font-family: "Century Gothic", sans-serif;
  font-size: 13px;
  letter-spacing: 0.04em;
}

.services-request-form input,
.services-request-form select,
.services-request-form textarea {
  width: 100%;
  min-height: 56px;
  padding: 15px 17px;
  border: 1px solid var(--services-line);
  border-radius: 16px;
  outline: none;
  background: rgba(35, 52, 53, 0.72);
  color: var(--services-text);
  font: inherit;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.services-request-form textarea {
  min-height: 132px;
  resize: vertical;
}

.services-request-form select option {
  background: var(--services-panel);
}

.services-request-form input:focus,
.services-request-form select:focus,
.services-request-form textarea:focus {
  border-color: var(--services-mint);
  box-shadow: 0 0 0 3px rgba(55, 214, 150, 0.16);
}

.services-request-form__wide {
  grid-column: 1 / -1;
}

.services-request-form__submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.services-request-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 520px;
  color: var(--services-muted);
  font-family: "Century Gothic", sans-serif;
  font-size: 12px;
  line-height: 1.45;
}

.services-request-consent input {
  width: 18px;
  min-height: 18px;
  height: 18px;
  margin-top: 1px;
  flex: 0 0 auto;
}

.services-request-consent a {
  color: var(--services-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.services-form-status {
  min-height: 22px;
  color: var(--services-muted);
  font-family: "Century Gothic", sans-serif;
  font-size: 13px;
}

.services-btns button:focus-visible,
.services-request-form button:focus-visible,
.more-services:focus-visible {
  outline: 3px solid var(--services-mint);
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .devices .devices-row,
  .services-procedures__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .services-process__hero {
    grid-template-columns: 1fr;
  }

  .services-process__details {
    grid-template-columns: 1fr;
  }

  .services-process .tests-big,
  .services-process .tests-block {
    padding: 38px 30px;
    border-radius: 34px;
  }

  .services-process .tests-big__title,
  .services-process .tests-block__title {
    font-size: 24px;
  }

  .services-process .tests-big__text,
  .services-process .tests-block__text,
  .services-process .tests-list-item__name,
  .services-process .tests-list-item__text {
    font-size: 14px;
  }

  .services-process .tests-list-item__count {
    min-width: 42px;
    font-size: 22px;
  }

  .services-block-top {
    flex-wrap: wrap;
  }

  .services-block-photo {
    width: 32%;
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .services-content {
    width: calc(68% - 24px);
    margin-left: 24px;
  }

  .services-btns {
    width: 100%;
    margin: 24px 0 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .services-btns > * {
    min-height: 54px;
  }

  .services-final-request__grid {
    grid-template-columns: 1fr;
  }

  .services-final-request__intro {
    position: static;
  }
}

@media (max-width: 680px) {
  .devices .devices-row,
  .services-procedures__grid {
    grid-template-columns: 1fr;
  }

  .devices .devices-block,
  .services-procedure-card {
    padding: 28px 20px;
    border-radius: 28px;
  }

  .services-procedure-card .devices-block__btn,
  .services .more-services {
    width: 100%;
  }

  .services-process .tests-big,
  .services-process .tests-block {
    padding: 28px 20px;
    border-radius: 28px;
  }

  .services-process .tests-big .devices-block__btn {
    width: 100%;
    min-height: 56px;
    justify-content: center;
  }

  .services-process .tests-list-item {
    gap: 12px;
  }

  .services-block {
    padding: 24px 18px;
    border-radius: 28px;
  }

  .services-block-photo,
  .services-content {
    width: 100%;
  }

  .services-content {
    margin: 22px 0 0;
  }

  .services-content-terms {
    flex-wrap: wrap;
    gap: 7px;
  }

  .services-content-term {
    padding: 8px 14px;
    font-size: 11px;
  }

  .services-content__title {
    margin: 16px 0 12px;
    font-size: 22px;
  }

  .services-content__text {
    font-size: 14px;
  }

  .services-btns {
    grid-template-columns: 1fr;
  }

  .services-btns .devices-block__btn,
  .services-btns .services-btn--urgent,
  .services-btns .services-btn-more {
    width: 100%;
    height: 56px;
    font-size: 11px;
  }

  .services-block-hidden {
    padding-top: 54px;
  }

  .services-lists,
  .services-bottom,
  .services-bullets,
  .services-bottom-btns {
    flex-direction: column;
    align-items: stretch;
  }

  .services-lists {
    gap: 32px;
  }

  .services-lists-col,
  .services-bottom-btn {
    width: 100%;
  }

  .services-bottom {
    gap: 26px;
    padding: 22px 18px;
  }

  .services-bullets,
  .services-bottom-btns {
    gap: 20px;
  }

  .services-request-form {
    grid-template-columns: 1fr;
  }

  .services-request-form > * {
    grid-column: 1;
  }

  .services-request-form__submit {
    flex-direction: column;
    align-items: stretch;
  }

  .services-request-form__submit .btn {
    width: 100%;
  }

}

@media (prefers-reduced-motion: reduce) {
  .services-page *,
  .services-btn-more [aria-hidden="true"] {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
