:root { scroll-behavior:auto; }
body { letter-spacing:.045em; }
.ryokan-header { position:relative; z-index:10; padding:15px 24px; background:#f7f5f0; }
.ryokan-header .wp-block-site-title { font-family:'Yu Mincho',serif; letter-spacing:.18em; }
.ryokan-header a, .ryokan-footer a { text-decoration:none; }
.ryokan-hero { min-height:min(75vh,790px); }
.ryokan-hero .wp-block-cover__inner-container { max-width:1180px; width:calc(100% - 48px); }
.ryokan-hero h1 { font-size:clamp(2.1rem,5vw,4.9rem); letter-spacing:.2em; text-shadow:0 2px 20px #0008; }
.ryokan-hero.is-style-ryokan-depth .wp-block-cover__image-background { transform:translate3d(0,var(--ryokan-shift,0px),0) scale(1.15); will-change:transform; }
.ryokan-hero.is-style-ryokan-zoom .wp-block-cover__image-background { transform:scale(var(--ryokan-zoom,1)); will-change:transform; }
.ryokan-hero:is(.is-style-ryokan-cinematic,.is-style-ryokan-cinematic-slow,.is-style-ryokan-cinematic-fast) { --ryokan-slide-ms:6800ms; }
.ryokan-hero.is-style-ryokan-cinematic-slow { --ryokan-slide-ms:10000ms; }
.ryokan-hero.is-style-ryokan-cinematic-fast { --ryokan-slide-ms:4800ms; }
.ryokan-hero.is-ryokan-managed .ryokan-slides { display:none; }
.ryokan-hero.is-ryokan-ready > .wp-block-cover__image-background { opacity:0; }
.ryokan-slide-layer { position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.ryokan-slide-layer img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.15s ease; }
.ryokan-slide-layer img.is-current { opacity:1; animation:ryokan-zoom-in calc(var(--ryokan-slide-ms,6800ms) + 400ms) linear both; }
@keyframes ryokan-zoom-in { from { transform:scale(1); } to { transform:scale(1.16); } }
.ryokan-scroll-cue { position:absolute; left:50%; bottom:14px; margin:0; transform:translateX(-50%); z-index:2; }
.ryokan-scroll-cue a { display:block; width:94px; height:64px; color:#fff; font-size:0; text-decoration:none; }
.ryokan-scroll-cue a:focus-visible { outline:none; filter:drop-shadow(0 0 5px #fff9); }
.ryokan-scroll-cue span { display:block; position:relative; width:70px; height:42px; margin:auto; font-size:0; filter:drop-shadow(0 1px 3px #0006); animation:ryokan-down 2.5s ease-in-out infinite; }
.ryokan-scroll-cue a:hover span, .ryokan-scroll-cue a:focus-visible span { animation-play-state:paused; }
.ryokan-scroll-cue span::before, .ryokan-scroll-cue span::after { content:""; position:absolute; top:4px; width:50px; height:1.5px; background:currentColor; transform-origin:left center; }
.ryokan-scroll-cue span::before { left:0; transform:rotate(45deg); }
.ryokan-scroll-cue span::after { left:70px; transform:rotate(135deg); }
@keyframes ryokan-down { 0%,100% { transform:translateY(0); opacity:.82; } 50% { transform:translateY(7px); opacity:1; } }
.ryokan-kicker { letter-spacing:.28em; text-transform:uppercase; }
.ryokan-section { padding:clamp(56px,8vw,112px) 24px; }
.ryokan-section h2 { font-size:clamp(1.8rem,3vw,2.9rem); letter-spacing:.12em; }
.ryokan-section .wp-block-image img { display:block; width:100%; object-fit:cover; }
.ryokan-cards .wp-block-image img { aspect-ratio: 4 / 3; }
.ryokan-cards .wp-block-column { min-width:0; }
.ryokan-cards h3 { margin-top:20px; }
.ryokan-reserve { padding:70px 24px; background:#4a5b46; color:white; }
.ryokan-reserve .wp-block-button__link { background:#f7f5f0; color:#292d29; }
.ryokan-footer { padding:48px 24px 24px; background:#e9e5dc; }
@media(max-width:780px) { .ryokan-hero { min-height:62vh; } .ryokan-section { padding:56px 20px; } }
@media(prefers-reduced-motion:reduce) { .ryokan-scroll-cue span { animation:none; } .ryokan-hero:is(.is-style-ryokan-depth,.is-style-ryokan-zoom) .wp-block-cover__image-background { transform:none; will-change:auto; } .ryokan-hero.has-parallax .wp-block-cover__image-background { background-attachment:scroll; } .ryokan-slide-layer img { transition:none; animation:none!important; } }
