.kch-home { background:#f4f0eb; color:#261b1d; font-family:'Noto Serif JP',Georgia,serif; }
.kch-hero { position:relative; height: min(820px,100svh); min-height:550px; overflow:hidden; background:#100304; color:white; }
.kch-hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.kch-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1.1s ease, visibility 1.1s; }
.kch-slide.is-active { opacity:1; visibility:visible; }
.kch-slide-photo { position:absolute; inset:0; background-position:center; background-size:cover; }
.kch-slide.is-active .kch-zoom-in { animation:kchZoomIn 10s ease-out both; }
.kch-slide.is-active .kch-zoom-out { animation:kchZoomOut 10s ease-out both; }
.kch-slide.is-active .kch-left { animation:kchMoveLeft 10s ease-out both; }
.kch-slide.is-active .kch-right { animation:kchMoveRight 10s ease-out both; }
.kch-slide.is-active .kch-up { animation:kchMoveUp 10s ease-out both; }
.kch-slide.is-active .kch-down { animation:kchMoveDown 10s ease-out both; }
.kch-slide-overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:130px 24px 40px; text-align:center; background:linear-gradient(0deg,rgba(0,0,0,.45),rgba(0,0,0,.06)); }
.kch-slide-title { font-size:clamp(24px,3.5vw,50px); }
.kch-slide-text { font-size:clamp(15px,1.4vw,20px); }
.kch-section { padding:clamp(65px,8vw,125px) 5%; max-width:1400px; margin:auto; }
.kch-section-heading { text-align:center; max-width:800px; margin:0 auto 55px; }
.kch-section-subtitle { font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:#8b6355; }
.kch-section-title { font-size:clamp(26px,3vw,38px); }
.kch-section-description { font-size:16px; line-height:1.9; }
.kch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.kch-card { background:#fff; border:1px solid #e3dcd4; overflow:hidden; }
.kch-image-link, .kch-card img { display:block; width:100%; }
.kch-card img { aspect-ratio:16 / 9; object-fit:cover; }
.kch-dish-card img { aspect-ratio:1; }
.kch-card-body { padding:24px; }
.kch-card-title, .kch-card h3 { font-size:22px; margin:0 0 14px; font-weight:500; }
.kch-card p { font-size:15px; line-height:1.8; }
.kch-card a { color:inherit; text-decoration:none; }
.kch-discover { display:inline-block; margin-top:12px; border-bottom:1px solid currentColor; padding-bottom:6px; }
.kch-brand { color:#916d54; text-transform:uppercase; letter-spacing:.1em; }
@keyframes kchZoomIn { from{transform:scale(1)}to{transform:scale(1.13)} }
@keyframes kchZoomOut { from{transform:scale(1.13)}to{transform:scale(1)} }
@keyframes kchMoveLeft { from{transform:scale(1.13) translateX(3%)}to{transform:scale(1.13) translateX(-3%)} }
@keyframes kchMoveRight { from{transform:scale(1.13) translateX(-3%)}to{transform:scale(1.13) translateX(3%)} }
@keyframes kchMoveUp { from{transform:scale(1.13) translateY(3%)}to{transform:scale(1.13) translateY(-3%)} }
@keyframes kchMoveDown { from{transform:scale(1.13) translateY(-3%)}to{transform:scale(1.13) translateY(3%)} }
@media(max-width:850px) { .kch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .kch-grid { grid-template-columns:1fr; } .kch-hero{min-height:480px} }
@media(prefers-reduced-motion:reduce) { .kch-slide-photo { animation:none !important; } .kch-slide { transition:none; } }
