/* Additional CMS slideshow behavior layered over the original homepage design. */
.hero { position: relative; overflow: hidden; }
.hero-cms-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 1.1s ease; }
.hero-cms-slide.is-active { opacity: 1; visibility: visible; }
.hero-cms-photo { position: absolute; inset: 0; background-size: cover; background-position: center; }
.hero-cms-slide.is-active .hero-cms-zoom-in { animation: kampachiCmsZoomIn 8s ease-out both; }
.hero-cms-slide.is-active .hero-cms-zoom-out { animation: kampachiCmsZoomOut 8s ease-out both; }
.hero-cms-slide.is-active .hero-cms-left { animation: kampachiCmsPanLeft 8s ease-out both; }
.hero-cms-slide.is-active .hero-cms-right { animation: kampachiCmsPanRight 8s ease-out both; }
.hero-cms-slide.is-active .hero-cms-up { animation: kampachiCmsPanUp 8s ease-out both; }
.hero-cms-slide.is-active .hero-cms-down { animation: kampachiCmsPanDown 8s ease-out both; }
.hero-cms-copy { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 100px 24px 65px; text-align: center; color: #fff; background: linear-gradient(0deg, rgba(0,0,0,.24),rgba(0,0,0,.08)); }
.hero-cms-title { font-size: clamp(25px, 3.5vw, 55px); line-height: 1.2; }
.hero-cms-text { font-size: clamp(15px, 1.4vw, 21px); line-height: 1.7; max-width: 760px; }
.hero-cms-copy p { margin: 0; }
.home-cms-description { line-height: 1.7; }
.home-cms-description:empty { display: none; }
.home-cms-description p:first-child { margin-top: 0; }
.home-cms-description p:last-child { margin-bottom: 0; }
.signature-dish-row .home-cms-description { font-size: 14px; }
.home-sake-heading .home-cms-description { margin-inline: auto; }
.experience-card img { object-fit: cover; }
@keyframes kampachiCmsZoomIn { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes kampachiCmsZoomOut { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes kampachiCmsPanLeft { from { transform: scale(1.08) translateX(2%); } to { transform: scale(1.08) translateX(-2%); } }
@keyframes kampachiCmsPanRight { from { transform: scale(1.08) translateX(-2%); } to { transform: scale(1.08) translateX(2%); } }
@keyframes kampachiCmsPanUp { from { transform: scale(1.08) translateY(2%); } to { transform: scale(1.08) translateY(-2%); } }
@keyframes kampachiCmsPanDown { from { transform: scale(1.08) translateY(-2%); } to { transform: scale(1.08) translateY(2%); } }
@media (prefers-reduced-motion: reduce) { .hero-cms-slide { transition: none; } .hero-cms-photo { animation: none !important; } }
