/* Sino Wood premium hero */
.sw-hero {
  --ease: cubic-bezier(.22, .61, .36, 1);
  --fade: 1.8s;
  position: relative; width: 100%; overflow: hidden; isolation: isolate;
  height: clamp(540px, 86vh, 820px); background: #1c130c; color: var(--sw-parchment, #f3ecdf);
}
.sw-hero__slides { position: absolute; inset: 0; }
.sw-hero__slide {
  position: absolute; inset: 0; opacity: 0; visibility: hidden; z-index: 1;
  transition: opacity var(--fade) var(--ease), visibility 0s linear var(--fade);
}
.sw-hero__slide.is-active { opacity: 1; visibility: visible; z-index: 3; transition: opacity var(--fade) var(--ease), visibility 0s; }
.sw-hero__slide.is-leaving { opacity: 1; visibility: visible; z-index: 2; transition: none; }

/* photo: slow zoom that keeps running while the slide fades out */
.sw-hero .sw-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform-origin: 55% 50%; will-change: transform; }
.sw-hero__slide.is-active .sw-hero__img, .sw-hero__slide.is-leaving .sw-hero__img { animation: swKen 12s cubic-bezier(.25, .46, .45, .94) forwards; }
.sw-hero__slide:nth-child(even) .sw-hero__img { transform-origin: 40% 55%; }
@keyframes swKen { from { transform: scale(1.16) translate3d(1.2%, 0, 0); } to { transform: scale(1.03) translate3d(0, 0, 0); } }

/* shade: calm text area on the left, gentle vignette */
.sw-hero__shade { position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(24,16,10,.80) 0%, rgba(24,16,10,.52) 42%, rgba(24,16,10,.10) 78%, rgba(24,16,10,0) 100%),
    linear-gradient(0deg, rgba(24,16,10,.62) 0%, rgba(24,16,10,0) 38%); }

.sw-hero__content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; max-width: 1120px; margin: 0 auto; left: 0; right: 0; padding-bottom: 36px; }
.sw-hero__kicker { display: flex; align-items: center; gap: 14px; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; color: var(--sw-brass-light, #d4a86a); font-weight: 600; margin-bottom: 18px; }
.sw-hero__kicker::before { content: ""; width: 0; height: 1px; background: var(--sw-brass-light, #d4a86a); transition: width 1.1s var(--ease) .5s; }
.sw-hero__slide.is-active .sw-hero__kicker::before { width: 54px; }
.sw-hero__title { font-family: var(--sw-serif, Georgia, serif); font-weight: 500; font-size: clamp(2.1rem, 5.2vw, 3.8rem); line-height: 1.08; letter-spacing: -.01em; margin: 0 0 20px; max-width: 15em; color: #fff; text-shadow: 0 2px 22px rgba(0,0,0,.35); }
.sw-hero__text { font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.6; max-width: 34em; margin: 0 0 32px; color: rgba(243,236,223,.94); }
.sw-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.sw-btn--light { background: transparent; border: 1px solid rgba(243,236,223,.55); color: var(--sw-parchment, #f3ecdf); }
.sw-btn--light:hover { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }

/* text glides in on the active slide, and leaves quickly */
.sw-reveal { opacity: 0; transform: translate3d(0, 30px, 0); transition: opacity .45s ease, transform .45s ease; }
.sw-hero__slide.is-active .sw-reveal { opacity: 1; transform: none; transition: opacity 1s var(--ease) var(--d, .4s), transform 1.1s var(--ease) var(--d, .4s); }

/* controls */
.sw-hero__ui { position: absolute; z-index: 6; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 22px; max-width: 1120px; margin: 0 auto; padding: 0 28px 28px; }
.sw-hero__counter { font-family: var(--sw-serif, Georgia, serif); font-size: 1rem; letter-spacing: .08em; color: rgba(243,236,223,.85); min-width: 4.4em; }
.sw-hero__cur { font-size: 1.5rem; color: #fff; }
.sw-hero__dots { display: flex; gap: 10px; flex: 1; max-width: 360px; }
.sw-hero__dot { flex: 1; height: 22px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.sw-hero__dot span { position: absolute; left: 0; right: 0; top: 10px; height: 2px; background: rgba(243,236,223,.3); overflow: hidden; }
.sw-hero__dot span::after { content: ""; position: absolute; inset: 0; background: var(--sw-brass-light, #d4a86a); transform: scaleX(0); transform-origin: left; }
.sw-hero__dot.is-done span::after { transform: scaleX(1); }
.sw-hero__dot.is-active span::after { animation: swProgress var(--sw-secs, 7s) linear forwards; }
.sw-hero[data-autoplay="0"] .sw-hero__dot.is-active span::after { transform: scaleX(1); animation: none; }
.sw-hero.is-paused .sw-hero__dot.is-active span::after { animation-play-state: paused; }
@keyframes swProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.sw-hero__dot:focus-visible, .sw-hero__arrow:focus-visible, .sw-hero__pause:focus-visible { outline: 2px solid var(--sw-brass-light, #d4a86a); outline-offset: 3px; }
.sw-hero__pause { width: 34px; height: 34px; border: 1px solid rgba(243,236,223,.5); background: rgba(20,13,8,.35); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; margin-left: auto; }
.sw-hero__pause-icon { width: 10px; height: 12px; border-left: 3px solid #fff; border-right: 3px solid #fff; display: block; }
.sw-hero.is-paused .sw-hero__pause-icon { width: 0; height: 0; border: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 10px solid #fff; margin-left: 3px; }

.sw-hero__arrow { position: absolute; z-index: 6; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(243,236,223,.45); background: rgba(20,13,8,.28); color: #fff; font-size: 1.9rem; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .3s, background .2s; backdrop-filter: blur(4px); }
.sw-hero__prev { left: 22px; } .sw-hero__next { right: 22px; }
.sw-hero:hover .sw-hero__arrow, .sw-hero:focus-within .sw-hero__arrow { opacity: 1; }
.sw-hero__arrow:hover { background: rgba(184,135,75,.85); }

/* phones */
@media (max-width: 760px) {
  .sw-hero { height: clamp(520px, 82vh, 680px); }
  .sw-hero__shade { background: linear-gradient(0deg, rgba(24,16,10,.94) 0%, rgba(24,16,10,.78) 48%, rgba(24,16,10,.34) 100%); }
  .sw-hero__content { justify-content: flex-end; padding: 0 22px 92px; }
  .sw-hero__kicker { font-size: .78rem; margin-bottom: 12px; }
  .sw-hero__title { font-size: clamp(1.75rem, 8vw, 2.3rem); margin-bottom: 12px; }
  .sw-hero__text { font-size: .95rem; margin-bottom: 20px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .sw-hero__cta .sw-btn { padding: 11px 18px; font-size: .9rem; }
  .sw-hero__arrow { display: none; }
  .sw-hero__ui { padding: 0 22px 20px; gap: 14px; }
  .sw-hero__counter { min-width: 3.6em; }
}

/* reduced motion: still, gentle cross-fade only */
@media (prefers-reduced-motion: reduce) {
  .sw-hero { --fade: .6s; }
  .sw-hero__slide.is-active .sw-hero__img, .sw-hero__slide.is-leaving .sw-hero__img { animation: none; transform: scale(1.03); }
  .sw-reveal, .sw-hero__slide.is-active .sw-reveal { transition: opacity .4s; transform: none; }
}
