:root {
  --home-soft-mint: #e6efec;
}

html,
body {
  max-width: 100%;
  overflow-x: clip !important;
}

.home-conditions,
.reviews-editorial,
.appointment-editorial {
  overflow: hidden;
  padding: 5rem 0;
}

.home-conditions {
  background: var(--home-soft-mint);
}

.home-conditions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 3rem;
  border-top: 1px solid rgba(23, 49, 47, .15);
  border-bottom: 1px solid rgba(23, 49, 47, .15);
}

.home-conditions__grid article {
  min-width: 0 !important;
  max-width: none !important;
  overflow: visible !important;
  border: 0 !important;
  border-right: 1px solid rgba(23, 49, 47, .15) !important;
  border-bottom: 1px solid rgba(23, 49, 47, .15) !important;
  border-radius: 0 !important;
  padding: 1.75rem;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

.home-conditions__grid article:nth-child(3n) {
  border-right: 0 !important;
}

.home-conditions__grid article:nth-last-child(-n + 3) {
  border-bottom: 0 !important;
}

.home-conditions__grid article img {
  aspect-ratio: 16 / 9;
  border-radius: .65rem;
  filter: saturate(.85);
}

.home-conditions__grid article > div {
  display: block;
  border: 0 !important;
  padding: 1.35rem 0 .2rem !important;
}

.home-conditions__grid article h3 {
  color: #17312f;
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  line-height: 1.25;
}

.home-conditions__grid article p {
  max-width: 29rem;
  color: rgba(23, 49, 47, .66);
  line-height: 1.7;
}

.reviews-editorial {
  background: #fff;
}

.center-editorial {
  overflow: hidden;
  padding: 5rem 0;
  background: var(--home-soft-mint);
}

.center-editorial__inner {
  width: min(100% - 2.5rem, 80rem);
  margin-inline: auto;
}

.center-editorial__head {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
  align-items: end;
  gap: clamp(2rem, 6vw, 6rem);
}

.center-editorial__head h2 {
  max-width: 48rem;
  color: #17312f;
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.045em;
}

.center-editorial__head h2 span {
  color: #0f625b;
}

.center-editorial__intro > p {
  max-width: 36rem;
  color: rgba(23, 49, 47, .68);
  font-size: .95rem;
  line-height: 1.75;
}

.center-editorial__details {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1.5rem;
  margin-top: 1.35rem;
  border-top: 1px solid rgba(23, 49, 47, .15);
  padding-top: 1rem;
  color: #17312f;
  font-size: .78rem;
  font-weight: 800;
}

.center-editorial__details a {
  color: #0f625b;
  text-decoration: underline;
  text-decoration-color: rgba(15, 98, 91, .28);
  text-underline-offset: .3rem;
  transition: text-decoration-color .2s ease;
}

.center-editorial__details a:hover {
  text-decoration-color: #0f625b;
}

.center-editorial__gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
  gap: 1rem;
  margin-top: 3rem;
  border-top: 1px solid rgba(23, 49, 47, .15);
  padding-top: 1rem;
}

.center-editorial__photo {
  min-width: 0;
  margin: 0;
}

.center-editorial__media {
  overflow: hidden;
  border-radius: .75rem;
  background: rgba(15, 98, 91, .08);
}

.center-editorial__photo--feature .center-editorial__media {
  aspect-ratio: 4 / 3;
}

.center-editorial__photo--wide .center-editorial__media {
  aspect-ratio: 16 / 9;
}

.center-editorial__pair .center-editorial__media {
  aspect-ratio: 4 / 3;
}

.center-editorial__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.86) contrast(.98);
  transition: transform .45s ease, filter .3s ease;
}

.center-editorial__photo--feature .center-editorial__media img {
  object-position: 52% center;
}

.center-editorial__photo figcaption {
  padding: .8rem .1rem 0;
  color: rgba(23, 49, 47, .68);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.5;
}

.center-editorial__side {
  display: grid;
  align-content: start;
  gap: 1rem;
}

.center-editorial__pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (hover: hover) and (pointer: fine) {
  .center-editorial__photo:hover .center-editorial__media img {
    transform: scale(1.018);
    filter: saturate(.94) contrast(1);
  }
}

[aria-label="Команда центра"] > article {
  position: relative;
}

.reviews-editorial [data-reviews-grid] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 !important;
  border-top: 1px solid rgba(23, 49, 47, .15);
  border-bottom: 1px solid rgba(23, 49, 47, .15);
}

.reviews-editorial [data-review-card] {
  min-height: 0 !important;
  align-self: start;
  border: 0 !important;
  border-right: 1px solid rgba(23, 49, 47, .15) !important;
  border-bottom: 1px solid rgba(23, 49, 47, .15) !important;
  border-radius: 0 !important;
  padding: 1.8rem !important;
  background: transparent !important;
  box-shadow: none !important;
}

.reviews-editorial [data-review-card]:not(.hidden) {
  display: flex;
  flex-direction: column;
}

.reviews-editorial [data-review-card]:nth-child(3n) {
  border-right: 0 !important;
}

.reviews-editorial [data-review-card] > div:first-child {
  min-height: 2rem;
}

.reviews-editorial [data-review-card] > div:first-child p {
  color: #0f625b;
  font-size: .95rem;
  line-height: 1.45;
}

.reviews-editorial [data-review-card] [aria-label^="Оценка"] {
  margin-top: .8rem !important;
  font-size: .85rem;
  letter-spacing: .08em;
}

.reviews-editorial [data-review-text] {
  margin-top: 1.15rem !important;
  color: rgba(23, 49, 47, .7) !important;
  line-height: 1.75 !important;
}

.reviews-editorial [data-review-toggle] {
  margin-top: 1.25rem !important;
  padding-top: 0 !important;
}

.reviews-editorial__all {
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 0 .2rem !important;
  background: transparent !important;
  text-decoration: underline;
  text-decoration-color: rgba(15, 98, 91, .28);
  text-underline-offset: .3rem;
}

.reviews-editorial__all:hover {
  background: transparent !important;
  text-decoration-color: #0f625b;
}

.appointment-editorial {
  background: var(--home-soft-mint);
}

.appointment-editorial__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .92fr);
  align-items: start;
  gap: clamp(3rem, 6vw, 6rem);
  margin-top: 3rem;
}

.appointment-editorial__steps {
  border-top: 1px solid rgba(23, 49, 47, .15);
  border-bottom: 1px solid rgba(23, 49, 47, .15);
}

.appointment-editorial__steps li {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 1.25rem;
  border-bottom: 1px solid rgba(23, 49, 47, .15);
  padding: 1.75rem 0;
}

.appointment-editorial__steps li:last-child {
  border-bottom: 0;
}

.appointment-editorial__number {
  color: #17312f;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.appointment-editorial__step h3 {
  color: #17312f;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.035em;
}

.appointment-editorial__step p {
  max-width: 38rem;
  margin-top: .65rem;
  color: rgba(23, 49, 47, .68);
  font-size: .9rem;
  line-height: 1.75;
}

.appointment-editorial__visual {
  position: sticky;
  top: 7rem;
}

.appointment-editorial__figure {
  position: relative;
}

.appointment-editorial__figure img {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: .75rem;
  object-fit: cover;
  object-position: center;
  filter: saturate(.88);
}

.appointment-editorial__caption {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: min(48%, 16rem);
  border: 1px solid rgba(23, 49, 47, .16);
  border-radius: .65rem;
  padding: 1.15rem;
  background: rgba(246, 245, 237, .94);
  color: #17312f;
  backdrop-filter: blur(10px);
}

.appointment-editorial__caption h3 {
  font-size: clamp(.95rem, 1.7vw, 1.2rem);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -.025em;
}

.appointment-editorial__caption p {
  margin-top: .65rem;
  color: rgba(23, 49, 47, .66);
  font-size: .72rem;
  line-height: 1.65;
}

.appointment-editorial__note {
  margin-top: 1.25rem;
  border-top: 1px solid rgba(23, 49, 47, .15);
  padding-top: 1.25rem;
  color: rgba(23, 49, 47, .68);
  font-size: .82rem;
  line-height: 1.7;
}

@media (min-width: 640px) {
  .home-conditions,
  .reviews-editorial,
  .appointment-editorial,
  .center-editorial {
    padding: 7rem 0;
  }

  .center-editorial__inner {
    width: min(100% - 4rem, 80rem);
  }
}

@media (max-width: 1023px) {
  .home-conditions__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-conditions__grid article:nth-child(3n) {
    border-right: 1px solid rgba(23, 49, 47, .15) !important;
  }

  .home-conditions__grid article:nth-child(2n) {
    border-right: 0 !important;
  }

  .home-conditions__grid article:nth-last-child(-n + 3) {
    border-bottom: 1px solid rgba(23, 49, 47, .15) !important;
  }

  .home-conditions__grid article:last-child {
    border-bottom: 0 !important;
  }

  .reviews-editorial [data-reviews-grid] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reviews-editorial [data-review-card]:nth-child(3n) {
    border-right: 1px solid rgba(23, 49, 47, .15) !important;
  }

  .reviews-editorial [data-review-card]:nth-child(2n) {
    border-right: 0 !important;
  }

  .appointment-editorial__layout {
    grid-template-columns: 1fr;
  }

  .appointment-editorial__visual {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, .7fr);
    align-items: start;
    gap: 1.5rem;
  }

  .appointment-editorial__note {
    margin-top: 0;
  }

  .center-editorial__head,
  .center-editorial__gallery {
    grid-template-columns: 1fr;
  }

  .center-editorial__head {
    align-items: start;
  }

  .center-editorial__intro {
    max-width: 42rem;
  }

  .center-editorial__side {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  }
}

@media (max-width: 639px) {
  .home-conditions__grid {
    display: flex;
    margin-right: -1.25rem;
    margin-left: -1.25rem;
    overflow-x: auto;
    scroll-padding-left: 1.25rem;
    scrollbar-width: none;
  }

  .home-conditions__grid::-webkit-scrollbar {
    display: none;
  }

  .home-conditions__grid article,
  .home-conditions__grid article:nth-child(2n),
  .home-conditions__grid article:nth-child(3n),
  .home-conditions__grid article:nth-last-child(-n + 2),
  .home-conditions__grid article:nth-last-child(-n + 3) {
    width: 84vw;
    min-width: 84vw !important;
    max-width: 22rem !important;
    flex: 0 0 auto;
    scroll-snap-align: start;
    border-right: 1px solid rgba(23, 49, 47, .15) !important;
    border-bottom: 0 !important;
    padding: 1.35rem 1.25rem 1.55rem;
  }

  .home-conditions__grid article:last-child {
    border-right: 0 !important;
  }

  .reviews-editorial [data-reviews-grid] {
    grid-template-columns: 1fr;
  }

  .reviews-editorial [data-review-card],
  .reviews-editorial [data-review-card]:nth-child(2n),
  .reviews-editorial [data-review-card]:nth-child(3n) {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(23, 49, 47, .15) !important;
    padding: 1.6rem 0 !important;
  }

  .reviews-editorial [data-review-card]:last-child {
    border-bottom: 0 !important;
  }

  .appointment-editorial__layout {
    gap: 2.25rem;
  }

  .appointment-editorial__steps li {
    grid-template-columns: 2.7rem minmax(0, 1fr);
    gap: .75rem;
    padding: 1.45rem 0;
  }

  .appointment-editorial__visual {
    display: block;
  }

  .appointment-editorial__caption {
    top: .75rem;
    right: .75rem;
    width: 50%;
    padding: .85rem;
  }

  .appointment-editorial__caption p {
    font-size: .64rem;
    line-height: 1.5;
  }

  .appointment-editorial__note {
    margin-top: 1rem;
  }

  .center-editorial__inner {
    width: min(100% - 2.5rem, 80rem);
  }

  .center-editorial__head {
    gap: 1.5rem;
  }

  .center-editorial__gallery {
    display: block;
    margin-top: 2.25rem;
  }

  .center-editorial__photo--feature .center-editorial__media {
    aspect-ratio: 4 / 3;
  }

  .center-editorial__side {
    display: flex;
    gap: .85rem;
    margin-top: 1.25rem;
    margin-right: -1.25rem;
    overflow-x: auto;
    scroll-padding-left: 0;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .center-editorial__side::-webkit-scrollbar {
    display: none;
  }

  .center-editorial__pair {
    display: contents;
  }

  .center-editorial__side .center-editorial__photo {
    width: 78vw;
    max-width: 21rem;
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .center-editorial__side .center-editorial__media,
  .center-editorial__photo--wide .center-editorial__media,
  .center-editorial__pair .center-editorial__media {
    aspect-ratio: 4 / 3;
  }
}

html.is-accessible body :where(.home-conditions__grid article, .reviews-editorial [data-review-card]) {
  border-color: #000 !important;
  background: #fff !important;
}

html.is-accessible body .appointment-editorial__caption {
  border: 2px solid #000;
  background: #000 !important;
}

html.is-accessible body .center-editorial {
  background: #fff !important;
  color: #000 !important;
}

html.is-accessible body .center-editorial :where(h2, h2 span, p, span, a, figcaption) {
  color: #000 !important;
}

.hero-editorial-main {
  position: relative;
  background: var(--home-soft-mint);
  box-shadow: 0 0 0 100vmax var(--home-soft-mint);
  clip-path: inset(0 -100vmax);
}

.advantages-bento-title,
[data-faq-list] summary,
[data-faq-list] details[open] summary {
  color: #17312f;
}

#directions article,
.advantages-bento-card,
.reviews-editorial [data-review-card],
[data-faq-list] details {
  transition:
    background-color .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}

#directions article {
  padding-right: clamp(1.5rem, 2.5vw, 2rem) !important;
  padding-left: clamp(1.5rem, 2.5vw, 2rem) !important;
}

.advantages-bento-card,
.advantages-bento-card--primary,
.advantages-bento-card--patients,
.advantages-bento-card--approach,
.advantages-bento-card--directions,
.advantages-bento-card--experience,
.advantages-bento-card--plan {
  padding-right: clamp(1.5rem, 3vw, 2.4rem) !important;
  padding-left: clamp(1.5rem, 3vw, 2.4rem) !important;
}

[data-faq-list] details {
  padding-right: clamp(1.25rem, 2.5vw, 2rem) !important;
  padding-left: clamp(1.25rem, 2.5vw, 2rem) !important;
}

@media (hover: hover) and (pointer: fine) {
  #directions article:hover,
  .advantages-bento-card:hover,
  .reviews-editorial [data-review-card]:hover,
  [data-faq-list] details:hover {
    background: rgba(217, 237, 231, .62) !important;
    box-shadow: inset 0 0 0 1px rgba(15, 98, 91, .13) !important;
  }

  #directions article:hover h3,
  .reviews-editorial [data-review-card]:hover > div:first-child p {
    color: #093f3b;
  }

  .advantages-bento-card:hover .advantages-bento-title,
  [data-faq-list] details:hover summary {
    color: #17312f;
  }
}

@media (hover: none), (pointer: coarse) {
  #directions article:active,
  #directions article:focus-within,
  .advantages-bento-card:active,
  .advantages-bento-card:focus-within,
  .reviews-editorial [data-review-card]:active,
  .reviews-editorial [data-review-card]:focus-within,
  [data-faq-list] details:active,
  [data-faq-list] details:focus-within {
    background: rgba(217, 237, 231, .62) !important;
    box-shadow: inset 0 0 0 1px rgba(15, 98, 91, .13) !important;
  }
}

html.is-accessible body :where(
  #directions article,
  .advantages-bento-card,
  .reviews-editorial [data-review-card],
  [data-faq-list] details
):where(:hover, :active, :focus-within) {
  background: #fff !important;
  box-shadow: none !important;
}

@media (max-width: 639px) {
  #directions article {
    padding-right: 1.25rem !important;
    padding-left: 1.25rem !important;
  }

  .advantages-bento-card,
  .advantages-bento-card--primary,
  .advantages-bento-card--patients,
  .advantages-bento-card--approach,
  .advantages-bento-card--directions,
  .advantages-bento-card--experience,
  .advantages-bento-card--plan {
    padding-right: 1.25rem !important;
    padding-left: 1.25rem !important;
  }

  .reviews-editorial [data-review-card],
  .reviews-editorial [data-review-card]:nth-child(2n),
  .reviews-editorial [data-review-card]:nth-child(3n) {
    padding-right: 1.25rem !important;
    padding-left: 1.25rem !important;
  }

  [data-faq-list] details {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
}

.appointment-booking__call-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 76px clamp(28px, 4vw, 48px) 44px;
  background: #fff;
}

.appointment-booking__call-label {
  margin: 0;
  color: rgba(23, 49, 47, .52);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.appointment-booking__call-list {
  margin-top: 18px;
  border-top: 1px solid rgba(23, 49, 47, .15);
  border-bottom: 1px solid rgba(23, 49, 47, .15);
}

.appointment-booking__call-list a {
  display: flex;
  min-height: 104px;
  flex-direction: column;
  justify-content: center;
  color: #17312f;
  text-decoration: none;
  transition: background .18s ease, color .18s ease;
}

.appointment-booking__call-list a + a {
  border-top: 1px solid rgba(23, 49, 47, .15);
}

.appointment-booking__call-list span {
  color: rgba(23, 49, 47, .48);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.appointment-booking__call-list strong {
  margin-top: 8px;
  font-size: clamp(20px, 2.4vw, 27px);
  line-height: 1.2;
  letter-spacing: -.03em;
}

.appointment-booking__call-note {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  margin-top: 24px;
}

.appointment-booking__call-note strong {
  color: #0f625b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.appointment-booking__call-note p {
  margin: 0;
  color: rgba(23, 49, 47, .55);
  font-size: 11px;
  line-height: 1.7;
}

@media (hover: hover) and (pointer: fine) {
  .appointment-booking__call-list a:hover {
    background: #edf6f3;
    color: #0f625b;
  }
}

.appointment-booking__call-list a:focus-visible {
  outline: 3px solid #d9ef79;
  outline-offset: -3px;
}

html.is-accessible .appointment-booking__call-panel,
html.is-accessible .appointment-booking__call-panel :where(a, span, strong, p) {
  background: #fff !important;
  color: #000 !important;
}

/* Compact appointment dialog on phones */
@media (max-width: 639px) {
  .appointment-booking {
    width: calc(100% - 16px) !important;
    max-height: calc(100dvh - 12px);
    border-radius: 24px !important;
  }

  .appointment-booking__shell {
    max-height: none !important;
    overflow: hidden !important;
    grid-template-columns: minmax(0, 1fr);
  }

  .appointment-booking__intro {
    min-width: 0;
    padding: 22px 72px 17px 20px !important;
  }

  .appointment-booking__title {
    max-width: none !important;
    font-size: clamp(25px, 7.6vw, 32px) !important;
    line-height: 1.08;
  }

  .appointment-booking__lead {
    margin-top: 9px !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
  }

  .appointment-booking__benefits {
    display: none;
  }

  .appointment-booking__phone {
    margin-top: 9px !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  .appointment-booking__close {
    top: 14px !important;
    right: 14px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .appointment-booking__call-panel {
    padding: 18px 20px 22px;
  }

  .appointment-booking__call-label { font-size: 10px; }

  .appointment-booking__call-list {
    margin-top: 10px;
  }

  .appointment-booking__call-list a {
    min-height: 74px;
  }

  .appointment-booking__call-list strong {
    font-size: 20px;
  }

  .appointment-booking__call-note {
    grid-template-columns: 1fr;
    gap: 7px;
    margin-top: 15px;
  }

  .appointment-booking__form {
    gap: 10px !important;
    padding: 16px 20px 18px !important;
  }

  .appointment-booking__form > label:not(.appointment-booking__consent),
  .appointment-booking__fields label {
    gap: 5px !important;
  }

  .appointment-booking__form input:not([type="checkbox"]),
  .appointment-booking__form select {
    min-height: 46px;
    border-radius: 14px !important;
    padding-block: 10px !important;
  }

  .appointment-booking__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .appointment-booking__fields select {
    min-width: 0;
    padding-inline: 10px !important;
    font-size: 12px !important;
  }

  .appointment-booking__consent {
    gap: 9px !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
  }

  .appointment-booking__submit {
    min-height: 48px;
    padding-block: 12px !important;
  }
}

@media (max-width: 639px) and (max-height: 700px) {
  .appointment-booking__intro {
    padding-top: 17px !important;
    padding-bottom: 13px !important;
  }

  .appointment-booking__lead {
    display: block;
  }

  .appointment-booking__call-panel {
    padding-top: 12px;
    padding-bottom: 16px;
  }

  .appointment-booking__form {
    gap: 8px !important;
    padding-top: 12px !important;
    padding-bottom: 14px !important;
  }

  .appointment-booking__form input:not([type="checkbox"]),
  .appointment-booking__form select {
    min-height: 42px;
    padding-block: 8px !important;
  }
}
