:root{--ink:#444;--accent:#804e3d;--footer:#4c1d0c;--bottom:#6e3622;--paper:#fff;--header:92px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Serif JP","Yu Mincho",serif;font-size:15px;line-height:1.8}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}.skip-link{position:fixed;z-index:1000;top:-60px;left:1rem;background:#fff;padding:.6rem 1rem}.skip-link:focus{top:1rem}.site-header{position:sticky;z-index:100;top:0;height:var(--header);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.96);box-shadow:0 1px 6px #0000001a}.brand{display:flex;align-items:center;height:100%;padding:0 35px}.brand img{width:240px}.desktop-nav{height:100%;display:flex;align-items:stretch}.desktop-nav a{display:flex;align-items:center;padding:0 17px;color:var(--accent);font-size:14px;letter-spacing:.04em;white-space:nowrap}.desktop-nav a:hover{background:#f4f4f2}.reserve-button{background:var(--accent)!important;color:#eee!important;padding-inline:28px!important}.menu-button,.mobile-menu{display:none}.hero{position:relative;height:min(800px,calc(100vh - var(--header)));min-height:400px;overflow:hidden;background:#222}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.3s ease;pointer-events:none}.hero-slide.is-active{opacity:1;pointer-events:auto}.hero-slide img{width:100%;height:100%;object-fit:cover;animation:zoom 14s linear infinite alternate}.hero-slide::after{content:"";position:absolute;inset:0;background:#0003}.hero-slide h1,.hero-slide h2{position:absolute;z-index:1;inset:50% auto auto 50%;width:min(1000px,88%);margin:0;transform:translate(-50%,-50%);color:#fff;text-align:center;font-size:clamp(25px,3.2vw,48px);font-weight:400;line-height:1.5;text-shadow:0 2px 14px #0008}@keyframes zoom{to{transform:scale(1.07)}}.slider-arrow{position:absolute;z-index:3;top:50%;border:0;background:transparent;color:#fff;font:200 52px/1 serif;opacity:0;cursor:pointer;transform:translateY(-50%);transition:opacity .2s}.hero:hover .slider-arrow,.slider-arrow:focus-visible{opacity:.8}.slider-arrow.previous{left:18px}.slider-arrow.next{right:18px}.slider-dots{position:absolute;z-index:3;bottom:20px;left:50%;display:flex;gap:12px;transform:translateX(-50%)}.slider-dots button{width:10px;height:10px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer}.slider-dots .is-active{background:#fff}.section-small{padding:32px 24px}.section-normal{padding:70px 24px}.booking-banner{text-align:center}.booking-banner img{width:400px;margin:auto}.narrow{max-width:820px;margin:auto;text-align:center}.introduction{padding-block:28px 55px;background:#fff}.introduction .lead{margin:0 0 22px;font-size:25px}.health-inner{display:grid;grid-template-columns:1fr 1fr;max-width:1200px;margin:auto;align-items:center}.health-inner>img{width:100%;height:100%;object-fit:cover}.health-copy{padding:40px 9%;text-align:center}.health-copy h2{font-weight:400;font-size:25px}.health-copy p{text-align:left}.outline-button{display:inline-block;min-width:135px;margin-top:25px;padding:8px 20px;border:1px solid #ccc;text-align:center;font-family:sans-serif;font-size:14px}.outline-button:hover{background:#222;color:#fff}.service{position:relative;overflow:hidden}.service>img{width:100%;height:min(72vw,760px);object-fit:cover}.service-copy{position:absolute;right:0;bottom:0;left:0;padding:34px max(5%,calc((100% - 1200px)/2));background:rgba(30,30,30,.4);color:#fff}.service-copy h2{margin:0 0 12px;font-size:28px;font-weight:400}.service-copy p{max-width:850px;margin:0}.outline-button.light{border-color:#fff}.outline-button.light:hover{background:#fff;color:#222}.site-footer{color:#fff;background:var(--footer)}.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:1200px;margin:auto;padding:60px 30px}.footer-name,.phone{font-size:22px}.footer-nav{display:grid;grid-template-columns:1fr 1fr}.footer-nav a{padding:9px 15px;border-bottom:1px solid #ffffff38}.footer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}.footer-buttons a{padding:8px;border:1px solid #fff;text-align:center}.copyright{padding:8px;text-align:center;background:rgba(3,2,2,.9);font:12px sans-serif}.mobile-bottom{display:none}.mobile-only{display:none}
@media(max-width:1100px){:root{--header:76px}body{padding-bottom:61px}.brand{padding:0 20px}.brand img{width:200px}.desktop-nav{display:none}.menu-button{display:grid;gap:5px;width:68px;height:100%;place-content:center;border:0;background:transparent;cursor:pointer}.menu-button span{display:block;width:27px;height:1px;background:var(--accent);transition:.25s}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mobile-menu{position:fixed;z-index:90;inset:var(--header) 0 0;display:block;background:rgba(30,30,30,.9);color:#fff}.mobile-menu[hidden]{display:none}.mobile-menu nav{display:flex;flex-direction:column;align-items:center;padding:30px}.mobile-menu a{width:min(400px,100%);padding:11px;text-align:center}.mobile-menu .reserve-button{margin-top:15px}.hero{height:68vw;max-height:700px}.service>img{height:68vw}.mobile-bottom{position:fixed;z-index:110;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);height:61px;background:var(--bottom);color:#fff}.mobile-bottom a{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #fff4;font:18px sans-serif}.mobile-bottom small{margin-top:2px;font-size:10px}}
@media(max-width:700px){body{padding-bottom:61px;font-size:14px}.brand img{width:175px}.hero{height:70vh;min-height:440px}.hero-slide h1,.hero-slide h2{font-size:clamp(24px,7.2vw,33px);line-height:1.7}.slider-arrow{display:none}.section-small{padding:24px 18px}.booking-banner img{width:min(290px,90%)}.introduction{padding-block:35px}.introduction .lead{font-size:21px}.introduction p{margin-inline:auto;max-width:31em;text-align:left}.introduction .lead{text-align:center}.section-normal{padding:38px 0}.health-inner{display:flex;flex-direction:column}.health-copy{display:contents}.health-copy h2{order:-1;margin:0;padding:0 18px 28px;font-size:21px}.health-copy p{padding:10px 24px 0}.health-copy .outline-button{align-self:center;margin:8px 0 20px}.service>img{height:auto}.service-copy{position:static;padding:30px 24px 38px;background:rgba(3,2,2,.9)}.service-copy h2{margin-bottom:25px;font-size:25px}.site-footer{padding-bottom:0}.footer-main{grid-template-columns:1fr;gap:28px;padding:45px 25px}.footer-nav{grid-template-columns:1fr 1fr}.footer-buttons{grid-template-columns:1fr}.mobile-only{display:block}.mobile-bottom{position:fixed;z-index:110;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);height:61px;background:var(--bottom);color:#fff}.mobile-bottom a{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #fff4;font:18px sans-serif}.mobile-bottom small{font-size:10px;margin-top:2px}}
.external-link::after,.external-icon{display:inline-block;margin-left:.35em;font-family:"Material Symbols Outlined";font-size:1em;font-weight:400;font-style:normal;line-height:1;vertical-align:-.12em;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.external-link::after{content:"open_in_new"}.facebook-area{text-align:center}.facebook-link{display:inline-flex;flex-direction:column;align-items:center;gap:.3em}.facebook-link svg{width:46px;height:46px;fill:currentColor}.facebook-link span{display:block}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-slide img{animation:none}}
.footer-icon-link{display:inline-flex;align-items:center;gap:.45em}.footer-icon-link svg{width:.8em;height:1.1em;flex:0 0 auto;fill:currentColor}
.phone.footer-icon-link svg{width:1em;height:1em}
.mobile-bottom .quick-icon{width:24px;height:24px;fill:currentColor}.mobile-bottom small{display:flex;align-items:center;justify-content:center}

/* Restart the FV zoom-out motion whenever a slide becomes active. */
.hero-slide img {
  transform: scale(1);
  animation: none;
}

.hero-slide.is-active {
  z-index: 2;
}

.hero-slide.is-leaving {
  z-index: 1;
}

.hero-slide.is-active img,
.hero-slide.is-leaving img {
  animation: hero-zoom-out 5.3s linear forwards;
}

@keyframes hero-zoom-out {
  from {
    transform: scale(1.07);
  }

  to {
    transform: scale(1);
  }
}
