.hero-carousel { position: relative; margin-top: 82px; padding: 0; height: clamp(620px, calc(100svh - 82px), 800px); color: #fff; background: #17191a; overflow: hidden; isolation: isolate; }
.hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility .9s; }
.hero-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #111517b8 0%, #11151775 35%, #11151710 75%), linear-gradient(0deg, #111517c9, transparent 28%); pointer-events: none; }
.hero-content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-bottom: 65px; }
.hero-tag { display: flex; align-items: center; gap: 14px; color: #efbc8c; font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.hero-tag::before { content: ''; width: 32px; height: 1px; background: #efbc8c; }
.hero-title { max-width: 690px; margin: 26px 0 23px; font-family: var(--sans); font-weight: 700; font-size: clamp(40px, 4.1vw, 68px); letter-spacing: -.035em; line-height: 1.27; }
.hero-title em { color: #ffb46f; font-style: normal; }
.hero-description { width: min(470px, 44%); margin: 0; color: #e2ded8; font-size: 16px; line-height: 1.95; }
.hero-service-tags { margin-top: 22px; color: #e8b98f; font-size: 12px; letter-spacing: .1em; }
.hero-link { display: inline-flex; align-items: center; gap: 35px; margin-top: 32px; padding: 12px 22px; border: 1px solid #ffc48d80; background: #e86f19; color: #fff; border-radius: 3px; font-size: 14px; font-weight: 700; transition: background .2s; }
.hero-link:hover { background: #bf4d0b; }
.hero-controls { position: absolute; z-index: 3; bottom: 31px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 16px; }
.hero-dots { display: flex; gap: 8px; margin-right: auto; }
.hero-dot { width: 55px; height: 40px; padding: 0; border: 0; background: transparent; color: #ffffff70; font: 11px var(--sans); cursor: pointer; text-align: left; }
.hero-dot::after { content: ''; display: block; height: 2px; margin-top: 8px; background: #ffffff35; transition: background .3s; }
.hero-dot[aria-current="true"] { color: #ffbc82; }
.hero-dot[aria-current="true"]::after { background: #ffb46f; }
.hero-control { height: 40px; min-width: 40px; padding: 0 11px; border: 1px solid #ffffff45; border-radius: 50%; background: #17191a30; color: #fff; cursor: pointer; font: 18px var(--sans); }
.hero-control:hover { background: #ffffff20; }
.hero-pause { font-size: 11px; border-radius: 20px; padding: 0 16px; }
.hero-carousel :focus-visible { outline: 2px solid #ffbc82; outline-offset: 5px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (min-width: 1700px) { .hero-art { object-position: center 53%; } }
@media (max-width: 900px) { .hero-title { font-size: 44px; } .hero-description { width: 50%; font-size: 14px; } }
@media (max-width: 620px) {
  .hero-carousel { margin-top: 73px; height: 690px; min-height: 0; }
  .hero-art { height: 310px; object-position: 76% center; }
  .hero-slide::after { background: linear-gradient(0deg, #17191a 53%, transparent 92%), linear-gradient(90deg, #17191a40, transparent); }
  .hero-content { justify-content: flex-start; padding-top: 240px; padding-bottom: 80px; }
  .hero-tag { font-size: 10px; letter-spacing: .12em; }
  .hero-title { font-size: clamp(29px, 8.2vw, 38px); margin: 18px 0; max-width: 100%; }
  .hero-description { width: 100%; max-width: 420px; font-size: 13px; line-height: 1.85; }
  .hero-service-tags { font-size: 10px; margin-top: 17px; letter-spacing: .03em; }
  .hero-link { margin-top: 21px; padding: 10px 17px; font-size: 12px; }
  .hero-controls { bottom: 20px; gap: 9px; }
  .hero-dot { width: 38px; }
  .hero-control { min-width: 34px; height: 34px; }
  .hero-pause { padding: 0 12px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .hero-slide { transition: none; } }
