:root {
  --radius-md: 16px;
  --radius-lg: 24px;
  --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.08);
}

html {
  scroll-behavior: smooth;
}

body {
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
  backface-visibility: hidden;
}

a {
  color: inherit;
}

a,
button,
input,
textarea {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid rgba(17, 17, 17, 0.6);
  outline-offset: 2px;
}

button,
input,
textarea {
  font-family: inherit;
}

button {
  touch-action: manipulation;
}

.comparison-slider,
.hero-stage,
.service-card,
.cart-box,
.testimonial-card,
.section,
.faq-card,
.service-card-mini {
  background-clip: padding-box;
  -webkit-transform: translateZ(0);
}

.hero-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1616 / 902;
  overflow: hidden;
}

@supports not (aspect-ratio: 1 / 1) {
  .hero-stage {
    min-height: 220px;
  }
}

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

#heroStage,
#heroStage.is-animating {
  width: 100%;
  aspect-ratio: 1616 / 902;
}

#heroStage.is-animating {
  position: relative;
  width: 100%;
}

#heroStage.is-animating .hero-layer {
  position: absolute;
  inset: 0;
}

.hero-handle {
  position: absolute;
  width: 44px;
  height: 44px;
  top: 50%;
  transform: translateY(-50%);
}

.hero-handle.one {
  left: var(--hero-cut-1, 50%);
  transform: translate(-50%, -50%);
}

.hero-handle.two {
  left: var(--hero-cut-2, 70%);
  transform: translate(-50%, -50%);
}

.hero-handle.three {
  left: var(--hero-cut-3, 85%);
  transform: translate(-50%, -50%);
}
