.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 { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(22.5rem, 0.9fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
.hero__content { max-width: 46rem; }
.hero__lead { max-width: 42rem; margin-top: 1.25rem; color: var(--color-text-soft); }
.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; 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; gap: var(--space-2); margin-top: var(--space-3); }
.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; }
.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%; }
.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); 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 { row-gap: 2rem; }
  .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 .scroll-row { grid-auto-columns: min(82vw, 20rem); }
}

@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; }
}
