/* Keep the original visual system while repairing inaccessible controls. */
button:focus-visible,a:focus-visible { outline: 2px solid #b29757; outline-offset: 5px; }
.kiroku_modal:not(.show) { visibility:hidden; pointer-events:none; }
.kiroku_modal.show { visibility:visible; }
.modal.modal_hidden { visibility:hidden; pointer-events:none; }
.access .kiroku-access-introduction .title_wrap {
 flex:0 0 35vw;
 width:35vw;
 min-width:0;
}
.access .kiroku-access-introduction .sentence_wrap {
 flex-shrink:0;
}
.access .kiroku-access-mountain {
 margin:3.5rem 0 0;
 width:70%;
 max-width:380px;
}
.access .kiroku-access-mountain img {
 display:block;
 width:100%;
 height:auto;
}
@media (max-width:796px) {
 .access .kiroku-access-introduction .title_wrap { flex-basis:100%;width:100%; }
 .access .kiroku-access-mountain { margin-top:2.4rem;width:85%;max-width:320px; }
}
/* Related facilities: keep photographs, controls and opening hours in separate rows. */
.spa .facility .inner_wrap {
 display:grid;
 grid-template-columns:minmax(0,42fr) minmax(0,58fr);
 grid-template-rows:auto auto 1fr;
 grid-template-areas:"title photo" "title controls" "title hours";
}
.spa .facility .inner_wrap > .title_wrap {
 grid-area:title;
 box-sizing:border-box;
 min-width:0;
 width:auto;
 padding-right:6rem;
}
.spa .facility .inner_wrap > .swiper_wrap {
 grid-area:photo;
 align-self:start;
 min-width:0;
 width:100%;
}
.spa .facility .inner_wrap > .swiper_wrap > .swiper-container {
 width:100%;
 height:auto;
 aspect-ratio:3 / 2;
}
.spa .facility .inner_wrap > .pagination-container {
 grid-area:controls;
 position:relative;
 inset:auto;
 justify-self:end;
 margin:1.2rem 3.5rem 0 0;
}
.spa .facility .inner_wrap > .text_wrap {
 grid-area:hours;
 box-sizing:border-box;
 min-width:0;
 width:auto;
 margin:0;
 padding:2rem 5rem 6rem;
 z-index:auto;
}
@media (max-width:796px) {
 .spa .facility .inner_wrap {
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto;
  grid-template-areas:"photo" "controls" "title" "hours";
 }
 .spa .facility .inner_wrap > .title_wrap {
  padding:3.5rem 6vw 2.4rem;
 }
 .spa .facility .inner_wrap > .pagination-container {
  justify-self:center;
  margin:1.2rem 0 0;
 }
 .spa .facility .inner_wrap > .text_wrap {
  padding:0 6vw 3.5rem;
 }
}
/* Concept gallery captions share the dining gallery's below-photo placement. */
.concept .feature #gallery .swiper-slide {
 height:auto;
}
.concept .feature #gallery .swiper-slide > .flex {
 display:block;
}
.concept .feature #gallery .swiper-slide > .flex > img {
 display:block;
 width:100%;
 height:auto;
}
.concept .feature #gallery .swiper-slide p {
 display:block;
 margin:1rem 0 0;
 writing-mode:horizontal-tb;
 color:#555;
 opacity:1;
 font-size:clamp(12px,1.3rem,16px);
 line-height:1.8;
 text-align:left;
}
/* Keep the edited Japanese hero copy aligned at the top of every column. */
html[lang="ja"] .home .mv .title h1 > span.vertical { margin-top:0; }
/* Concept is the shared type and spacing reference for the four story sections. */
.home :is(#concept,#service,#architecture,#mission) .collection-section-title {
 font-family:"Cormorant",Georgia,serif;
 font-size:8rem;
 line-height:1;
 color:#F8F5F0;
 margin-bottom:6rem;
}
.home :is(#concept,#service,#architecture,#mission) .collection-section-heading {
 font-family:"Shippori Mincho",serif;
 font-size:2.5rem;
 line-height:1.75;
 color:#F8F5F0;
 margin-bottom:2.4rem;
}
.home :is(#concept,#service,#architecture,#mission) :is(.collection-section-title,.collection-section-heading) > span {
 font-family:inherit;
 font-size:inherit;
 line-height:inherit;
 color:inherit;
}
@media (max-width:796px) {
 .home :is(#concept,#service,#architecture,#mission) .collection-section-title {
  font-size:4.8rem;
  margin-bottom:2.4rem;
 }
 .home :is(#concept,#service,#architecture,#mission) .collection-section-heading {
  font-size:2rem;
  margin-bottom:3rem;
 }
}
/* Sen: Shinkansen station to house by private car, without a local-train leg. */
:is(.sen-transfer-route,.kiroku-transfer-route) {
 display:grid;
 grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);
 align-items:center;
 margin-top:2.4rem;
}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-station {
 display:flex;
 align-items:center;
 justify-content:center;
 min-height:20rem;
 padding:2rem 1rem;
 text-align:center;
 line-height:1.7;
 background:#ECE9E4;
 border:1px solid rgba(16,19,21,.15);
}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-leg {
 display:flex;
 flex-direction:column;
 gap:.8rem;
 padding:0 1rem;
 text-align:center;
 font-size:1.4rem;
 line-height:1.6;
}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-label .with_icon {display:inline-block;}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-arrow {display:block;width:100%;height:auto;}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-house {flex-direction:column;gap:2rem;}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-house img[src] {width:12rem;max-width:100%;height:auto;margin:0;}
:is(.sen-transfer-route,.kiroku-transfer-route) .transfer-house > span {font-size:2.8rem;line-height:1;}
@media (max-width:796px) {
 .access .route .access_route_wrap :is(.sen-station-transfer,.kiroku-station-transfer).access_wrap {width:100%;}
 :is(.sen-transfer-route,.kiroku-transfer-route) {grid-template-columns:1fr;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-station {min-height:0;padding:1.8rem;font-size:1.6rem;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-leg {gap:.4rem;padding:1.8rem 0;font-size:1.4rem;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-arrow {display:none;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-leg::after {content:'↓';font-size:2.4rem;line-height:1;margin-top:.5rem;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-house {flex-direction:row;gap:2rem;}
 :is(.sen-transfer-route,.kiroku-transfer-route) .transfer-house img[src] {width:8rem;}
}
@media (prefers-reduced-motion:reduce) {
 .opening_animation { display:none!important; }
 #wrapper { opacity:1!important; }
 * { scroll-behavior:auto!important; }
}
