
:root{--bg:#f1ede7;--face:#e3dce4;--ink:#302735;--sub:#615466;--line:#aaa0ab;--accent:#56386f}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--bg) url('../decor/paper-grain.svg') 0 0/512px;color:var(--ink);font:400 18px/1.9 'Yusei Magic',sans-serif}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3,strong{font-weight:400}h2{font-size:45px;line-height:1.5;letter-spacing:.025em}h3{font-size:28px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid currentColor;outline-offset:5px}img{display:block;width:100%;height:auto}address{font-style:normal}p,h1,h2,h3,figcaption,address{word-break:keep-all;overflow-wrap:break-word}.skip{position:fixed;z-index:30;top:-80px;left:20px;background:var(--bg);padding:10px 20px}.skip:focus{top:10px}
.ct{width:calc(100% - 96px);max-width:1344px;margin:auto}.section{padding:144px 0}.section-lead{font-size:22px;line-height:1.8;margin-top:22px;max-width:560px}.aux{font-size:14px;color:var(--sub);margin-top:24px;max-width:560px}.section-heading{margin-bottom:64px}.section-heading h2,.reading-block h2{position:relative;padding-top:24px}.section-heading h2:before,.reading-block h2:before{content:'';position:absolute;top:0;left:0;width:52px;height:7px;border-block:1px solid var(--ink)}
.text-link{font-size:16px;min-height:52px;display:inline-flex;align-items:center;justify-content:space-between;gap:40px;border-bottom:1px solid currentColor;padding:10px 0}.arrow{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;font-size:25px;clip-path:inset(0);transition:clip-path .3s,transform .3s}.text-link:hover .arrow,.text-link:focus-visible .arrow{clip-path:inset(0 0 0 12%);transform:translateX(4px)}
/* 番台の料金表：紫は来店前の確認だけに使う。 */
.visit{background:var(--accent);color:var(--bg);padding:112px 0;position:relative}.visit:before,.visit:after{content:'';position:absolute;left:24px;right:24px;height:5px;border-block:1px solid currentColor;opacity:.55}.visit:before{top:20px}.visit:after{bottom:20px}.visit-grid{display:grid;grid-template-columns:.9fr 1.3fr;gap:100px;align-items:center}.visit h2{font-size:45px}.visit-data{border:1px solid currentColor;padding:32px 36px;outline:1px solid currentColor;outline-offset:6px}.opening-hours{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:26px;border-bottom:3px double currentColor}.opening-hours>span{font-size:16px}.time{font-size:45px;line-height:1.3;letter-spacing:-.03em}.price-list>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgb(241 237 231/.35);padding:12px 0}.price-list dt{font-size:18px}.price-list dd{font-size:28px}.price-list strong{font-size:45px}.visit .aux{color:inherit;margin-top:18px;font-size:14px}
/* 入口と休憩所：写真の窓と、短い行の文章。 */
.split{display:grid;grid-template-columns:1.2fr 1fr;gap:96px;align-items:center}.photo-window{position:relative;padding:16px 16px 0;border:1px solid var(--ink);background:var(--bg)}.photo-window:before{content:'';position:absolute;inset:6px;pointer-events:none;border:1px solid var(--line)}.photo-window img{aspect-ratio:3/2;object-fit:cover}.photo-window figcaption{font-size:14px;color:var(--sub);padding:16px 8px 20px;position:relative}.reading-block{max-width:480px}.reading-block>p:not(.section-lead):not(.access-name):not(.aux){margin-top:28px}.reading-block .text-link{margin-top:30px;min-width:240px}.first .split{align-items:start}.first .reading-block{padding-top:36px}.first .photo-window{margin-top:0}.split-reverse{grid-template-columns:1fr 1.25fr}.split-reverse .photo-window{order:2}.split-reverse .reading-block{order:1}.lounge{background:var(--face) url('../decor/paper-grain.svg') 0 0/512px;border-block:1px solid var(--line);position:relative}.lounge .photo-window{background:transparent}
/* 浴場：大きな写真が横へつながる。スマホは縦積み。 */
.bath-section{padding:48px 0 88px;overflow:clip}.bath-section .section-heading{display:flex;align-items:center;justify-content:space-between;gap:40px}.bath-section .section-lead{margin:0}.bath-scroll{position:relative}.bath-pin{padding:24px 0 32px;overflow:hidden}.bath-track{display:flex;gap:64px;padding:0 max(48px,calc((100vw - 1344px)/2));width:max-content}.bath-slide{width:min(72vw,1050px);position:relative;flex:none}.bath-slide img{aspect-ratio:3/2;object-fit:cover}.bath-slide figcaption{display:flex;gap:22px;align-items:center;margin-top:20px;max-width:560px;font-size:22px}.bath-slide figcaption span{font-size:14px;color:var(--sub);border-right:1px solid;padding-right:22px}.window-outline{position:absolute;inset:-14px 18px 66px -14px;border:1px solid var(--line);z-index:-1;pointer-events:none}.gallery-hint{font-size:14px;color:var(--sub);margin:24px 48px 0}.is-horizontal .bath-pin{position:sticky;top:0}
.marquee{overflow:hidden;border-block:3px double var(--line);padding:28px 0}.marquee-track{display:flex;width:max-content;animation:band 25s linear infinite;font-size:45px;letter-spacing:.09em}.marquee-track span{white-space:nowrap}@keyframes band{to{transform:translateX(-50%)}}
/* 季節の掲示。写真を大きく、見出しは同じ和文形式で。 */
.photo-list{display:grid;grid-template-columns:1fr 1fr;gap:64px}.story-card{display:block;position:relative;border-bottom:1px solid var(--ink);padding-bottom:32px}.story-card figure{padding:9px;border:1px solid var(--ink);position:relative}.story-card img{aspect-ratio:3/2;object-fit:cover}.story-card figure:after{content:'';position:absolute;inset:4px;pointer-events:none;border:1px solid var(--line)}.card-copy{padding:24px 48px 0 0;max-width:560px;position:relative}.card-copy:after{content:'';position:absolute;right:2px;top:25px;width:34px;height:28px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 28'%3E%3Cpath d='M5 14H36M28 6L36 14L28 22M5 10V18' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s}.story-card:hover .card-copy:after{transform:translateX(4px)}.card-meta{font-size:14px;color:var(--sub);margin-bottom:8px}.card-copy>p:last-child{margin-top:12px}.photo-list .story-card:nth-child(2){margin-top:80px}.event-list{gap:80px}.event-list .story-card:nth-child(2){margin-top:0}.event-list .story-card{border:1px solid var(--line);padding:20px 20px 28px}.event-list .story-card figure{padding:0;border:0}.event-list .story-card figure:after{display:none}.event-list .card-copy{padding-left:8px}.event-list .card-copy:after{right:0}
/* お知らせ：台帳の罫線。 */
.news{border-block:3px double var(--line);padding:96px 0}.news-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:96px}.news-row{display:grid;grid-template-columns:104px 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--line)}.news-row:first-child{padding-top:0}.news-row:last-child{border-bottom:0;padding-bottom:0}.news-row h3{font-size:22px}.news-row p{font-size:18px;margin-top:12px}.news-date{font-size:14px;color:var(--sub);padding-top:6px}.news-row:hover h3{text-decoration:underline;text-underline-offset:6px}
.access-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:96px;border:1px solid var(--ink);outline:1px solid var(--line);outline-offset:-9px;padding:64px}.access-name{font-size:28px;line-height:1.5;margin-bottom:22px}.access .text-link{margin-top:28px}.access address{font-size:18px}.access .reading-block{border-left:1px solid var(--line);padding-left:48px}
/* 帰り際の看板。 */
.site-footer{padding:64px 0 32px;background:var(--face) url('../decor/paper-grain.svg') 0 0/512px;border-top:1px solid var(--line)}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:32px}.footer-top>p{font-size:22px}.footer-brand{font-size:clamp(90px,14vw,200px);line-height:1.3;letter-spacing:.1em;padding:40px 0;border-bottom:3px double var(--ink)}.footer-bottom{display:flex;justify-content:space-between;gap:48px;padding:40px 0}.footer-bottom address{font-size:16px;margin-top:16px}.footer-bottom nav{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.footer-bottom nav a{font-size:16px;min-height:44px;display:flex;align-items:center}.fiction{font-size:14px;color:var(--sub);max-width:820px;border-top:1px solid var(--line);padding-top:26px}.copyright{font-size:14px;margin-top:20px;color:var(--sub)}
/* 館内の案内板を開く。 */
.menu-dialog{border:1px solid var(--ink);padding:36px 48px;background:var(--bg) url('../decor/paper-grain.svg') 0 0/512px;color:var(--ink);width:min(1100px,calc(100% - 48px));max-height:calc(100dvh - 48px);overflow:auto;outline:1px solid var(--line);outline-offset:-8px}.menu-dialog::backdrop{background:rgb(48 39 53/.6)}.menu-top{display:flex;align-items:center;justify-content:space-between;border-bottom:3px double var(--line);padding-bottom:24px;gap:24px}.menu-title{font-size:28px}.close{min-height:48px;min-width:90px;font-size:16px}.menu-body{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;padding-top:28px}.menu-body nav a{display:flex;justify-content:space-between;gap:20px;font-size:22px;padding:10px 0;border-bottom:1px solid var(--line)}.menu-aside{border-left:1px solid var(--line);padding-left:40px}.menu-aside p{margin-bottom:26px}.menu-brand{font-size:56px}
@media(max-width:1100px) and (min-width:751px){.split{gap:40px}.visit-grid,.news-grid{gap:48px;grid-template-columns:1fr 1.2fr}.time{font-size:40px}.visit-data{padding:24px}.access-grid{padding:44px;gap:44px}.access .reading-block{padding-left:28px}.photo-list{gap:32px}.section-lead{font-size:20px}.visit h2{font-size:38px}}
@media(max-width:899px){.bath-track{display:grid;width:auto;padding:0 32px;gap:56px}.bath-slide{width:100%}.gallery-hint{margin-left:32px}.bath-section .section-heading{display:block}.bath-section .section-lead{margin-top:22px}.split{grid-template-columns:1fr;gap:40px}.split .photo-window{max-width:720px}.split-reverse .photo-window,.split-reverse .reading-block{order:0}.reading-block{max-width:560px}.first .reading-block{padding-top:0}}
@media(max-width:750px){h2{font-size:34px;line-height:1.5}h3{font-size:24px}.ct{width:calc(100% - 48px)}.section{padding:88px 0}.section-lead{font-size:20px;margin-top:20px}.section-heading{margin-bottom:36px}.pc-only{display:none}.visit{padding:76px 0}.visit:before,.visit:after{left:16px;right:16px}.visit-grid,.news-grid,.access-grid{grid-template-columns:1fr;gap:40px}.visit h2{font-size:34px}.visit-data{padding:22px 20px;outline-offset:5px}.opening-hours{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opening-hours>span:last-child{text-align:right}.opening-hours>span{font-size:14px}.time{font-size:36px;width:100%;grid-column:1/-1;grid-row:2}.price-list dt{font-size:18px}.price-list dd{font-size:24px}.price-list strong{font-size:36px}.photo-window{padding:10px 10px 0}.photo-window:before{inset:4px}.photo-window figcaption{padding:12px 4px 16px}.reading-block .text-link{width:100%}.bath-section{padding:0 0 64px}.bath-track{padding:0 24px;gap:48px}.bath-pin{padding-bottom:0}.bath-slide figcaption{font-size:20px}.gallery-hint{margin:24px 24px 0}.window-outline{inset:-9px 12px 60px -9px}.marquee{padding:20px 0}.marquee-track{font-size:34px}.photo-list{grid-template-columns:1fr;gap:48px}.photo-list .story-card:nth-child(2){margin-top:0}.card-copy{padding-top:20px;padding-right:30px}.event-list .story-card{padding:14px 14px 24px}.news-row{grid-template-columns:1fr;gap:6px;padding:24px 0}.news-row h3{font-size:24px}.news-date{padding-top:0}.access-grid{padding:36px 24px}.access .reading-block{padding:0;border-left:0;border-top:1px solid var(--line);padding-top:28px}.access-name{font-size:24px}.access address{font-size:18px}.site-footer{padding:48px 0 24px}.footer-top{display:block}.footer-top>p{font-size:20px}.footer-top .text-link{margin-top:20px}.footer-brand{font-size:76px;letter-spacing:.02em;padding:30px 0}.footer-bottom{display:block;padding:28px 0}.footer-bottom nav{margin-top:24px;gap:4px 20px}.fiction{font-size:14px}.menu-dialog{padding:28px 24px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.menu-title{font-size:24px}.menu-top{gap:10px}.menu-body{grid-template-columns:1fr;gap:32px}.menu-body nav a{font-size:20px}.menu-aside{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.menu-brand{font-size:42px}}
.plan-none .marquee-track,.plan-none .scroll-cue{animation:none!important}.plan-none .fine-rule{transform:none!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.story-card:not([href]) .card-copy:after{display:none}

@media(min-width:601px) and (max-width:900px){h2,.visit h2,.price-list strong,.time,.marquee-track{font-size:40px}.section-lead,.news-row h3,.bath-slide figcaption,.footer-top>p{font-size:20px}}

@media(min-width:751px) and (max-width:899px){.visit-grid{grid-template-columns:1fr;gap:36px}}
