.hero { min-height: 0; padding-block: clamp(4rem, 5.5vw, 5.5rem); }
.hero.section--light {
  background:
    radial-gradient(circle at 90% 10%, rgb(var(--color-accent-rgb) / 12%), transparent 15rem),
    radial-gradient(circle at 5% 90%, rgb(var(--color-primary-rgb) / 8%), transparent 18rem),
    var(--color-background);
}
.hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(22.5rem, 0.9fr); grid-template-areas: "content media" "actions membership"; column-gap: clamp(2rem, 4vw, 3.5rem); row-gap: var(--space-3); align-items: center; }
.hero__content { grid-area: content; max-width: 46rem; }
.hero__lead { max-width: 42rem; margin-top: 1.25rem; color: var(--color-text); }
.hero__features { display: grid; gap: 0.625rem; margin-top: var(--space-2); padding: 0; list-style: none; font-size: 1rem; font-weight: 500; }
.hero__features li { display: flex; align-items: center; gap: 0.625rem; }
.hero__features li::before { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--color-accent); content: ""; }
.hero__media { display: grid; min-width: 0; grid-area: media; place-items: center; padding-inline: 0.5rem; }
.hero__image { width: 100%; max-width: 36rem; height: auto; max-height: 32rem; margin-inline: auto; object-fit: contain; filter: drop-shadow(0 20px 30px rgb(var(--color-primary-dark-rgb) / 12%)); }
.hero__actions { display: flex; flex-wrap: wrap; grid-area: actions; gap: var(--space-2); }
.home-services__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.service-card .placeholder-media { aspect-ratio: 16 / 10; min-height: 0; }
.specialist-card { width: 100%; }
.home-specialists .scroll-row {
  grid-auto-columns: calc((100% - (var(--space-2) * 3)) / 4);
  padding-block: 0.5rem 1rem;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.home-specialists .scroll-row::-webkit-scrollbar { display: none; }
.home-specialists__swipe-hint { display: none; }
.carousel-controls { display: flex; justify-content: flex-end; gap: var(--space-1); margin: calc(var(--space-2) * -1) 0 var(--space-2); }
.carousel-control { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); color: var(--color-primary-dark); font-size: 1.25rem; transition: color var(--transition), background-color var(--transition), opacity var(--transition); }
.carousel-control:hover { background: var(--color-primary-dark); color: var(--color-surface); }
.carousel-control:disabled { cursor: default; opacity: 0.35; }
.home-articles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.home-articles__footer { display: flex; justify-content: center; margin-top: var(--space-4); }
.contacts__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(20rem, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: stretch; }
.contacts__list { display: grid; gap: var(--space-3); margin-top: var(--space-4); list-style: none; }
.contacts__list li { display: grid; gap: 0.25rem; padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border); }
.contacts__list span { color: var(--color-text-soft); }
.contacts__route { margin-top: var(--space-3); }
.contacts__visual { min-width: 0; height: 30rem; min-height: 26rem; }
.contacts__visual .yandex-map-widget,
.contacts__visual .yandex-map-widget iframe { width: 100%; height: 100%; }
.hero-membership {
  display: flex;
  grid-area: membership;
  max-width: 42rem;
  align-items: center;
  gap: 0.875rem;
  margin: 0;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgb(var(--color-surface-rgb) / 92%);
  box-shadow: var(--shadow-sm);
}
.hero-membership picture { display: block; flex: 0 0 4rem; }
.hero-membership__logo { width: 4rem; height: 4rem; object-fit: contain; }
.hero-membership__text { margin: 0; font-weight: 700; line-height: 1.35; }

.certificate-gallery__controls { display: flex; gap: var(--space-1); }
.certificate-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(12rem, 19vw, 15rem); gap: var(--space-2); overflow-x: auto; padding: 0.25rem 0.125rem var(--space-2); scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; overscroll-behavior-inline: contain; }
.certificate-card { display: block; height: 20rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-sm); scroll-snap-align: start; transition: transform var(--transition), box-shadow var(--transition); }
.certificate-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.certificate-card__image { width: 100%; height: 100%; padding: 0.5rem; object-fit: contain; }

@media (max-width: 64rem) {
  .hero__grid { grid-template-columns: minmax(0, 1.2fr) minmax(20rem, 0.8fr); column-gap: 2rem; }
  .hero__image { max-width: 32rem; max-height: 29rem; }
  .home-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contacts__visual { height: 27rem; }
}

@media (max-width: 79.9375rem) {
  .home-specialists .scroll-row { grid-auto-columns: calc((100% - (var(--space-2) * 2)) / 3); }
}

@media (max-width: 61.9375rem) {
  .home-specialists .scroll-row { grid-auto-columns: calc((100% - var(--space-2)) / 2); }
}

@media (max-width: 48rem) {
  .hero { padding-block: 3rem; }
  .hero__grid,
  .contacts__grid { grid-template-columns: 1fr; }
  .hero__grid { grid-template-areas: "content" "membership" "actions" "media"; row-gap: var(--space-3); }
  .home-articles__grid { grid-template-columns: 1fr; }
  .contacts__visual { height: 23rem; min-height: 20rem; }
  .carousel-controls { display: none; }
  .certificate-gallery__controls { display: none; }
  .certificate-gallery { grid-auto-columns: min(78vw, 17rem); }
  .certificate-card { height: 19rem; }
  .hero__image { max-width: 30rem; max-height: none; filter: drop-shadow(0 12px 20px rgb(var(--color-primary-dark-rgb) / 10%)); }
}

@media (max-width: 47.9375rem) {
  .home-specialists__swipe-hint {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: var(--space-1);
    color: var(--color-primary-dark);
    font-size: var(--font-size-small);
    font-weight: 600;
  }
  .home-specialists .scroll-row {
    grid-auto-columns: 84vw;
    padding-right: var(--space-2);
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .home-specialists .specialist-card { scroll-snap-align: start; }
}

@media (max-width: 30rem) {
  .hero { padding-block: 2.5rem; }
  .home-services__grid { grid-template-columns: 1fr; }
  .hero__actions { flex-direction: column; }
  .hero__image { max-width: 24rem; }
  .hero-membership { align-items: flex-start; padding: 0.75rem; }
  .hero-membership picture { flex-basis: 3.5rem; }
  .hero-membership__logo { width: 3.5rem; height: 3.5rem; }
}
.clinic-documents__controls { display: flex; gap: var(--space-1); }
.clinic-documents {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(14rem, 20vw, 17rem);
  gap: var(--space-2);
  overflow-x: auto;
  padding: 0.25rem 0.125rem var(--space-2);
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}
.clinic-document-slide {
  display: grid;
  min-width: 0;
  margin: 0;
  padding: 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  scroll-snap-align: start;
  grid-template-rows: 20rem auto;
}
.clinic-document-slide__link { display: block; min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: white; }
.clinic-document-slide__image { width: 100%; height: 100%; padding: 0.375rem; object-fit: contain; transition: transform var(--transition); }
.clinic-document-slide__link:hover .clinic-document-slide__image { transform: scale(1.015); }
.clinic-document-slide__caption { margin-top: 0.75rem; color: var(--color-text); font-size: 0.9375rem; font-weight: 700; line-height: 1.4; }

@media (max-width: 48rem) {
  .clinic-documents__controls { display: none; }
  .clinic-documents { grid-auto-columns: min(76vw, 16rem); }
  .clinic-document-slide { grid-template-rows: 18rem auto; }
}
.home-page .certificates {
  background: #F5FCFC;
}
