@font-face{font-family:ShimizuSerif;src:url('../fonts/serif.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#f5f3ed;--paper-deep:#e8e4db;--ink:#272725;--muted:#69665f;--line:#cbc6bb;--accent:#706257;--serif:ShimizuSerif,"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--gutter:clamp(24px,5.6vw,96px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:2;letter-spacing:.055em;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none;text-underline-offset:6px}
a:hover{color:var(--accent)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
img{display:block;width:100%;height:auto}
h1,h2,h3,p,figure,dl,dd,ol,ul{margin:0}
h1,h2,h3{font-weight:400}
.skip-link{position:fixed;z-index:200;left:18px;top:-100px;padding:10px 18px;background:var(--ink);color:var(--paper)}
.skip-link:focus{top:18px}
.site-header{position:relative;z-index:20;min-height:92px;padding:20px var(--gutter);display:grid;grid-template-columns:170px 1fr auto;gap:40px;align-items:center;border-bottom:1px solid var(--line)}
.site-brand img{width:150px}
.global-nav{display:flex;justify-content:center;gap:clamp(18px,2vw,34px);font-family:var(--sans);font-size:11px;letter-spacing:.08em}
.global-nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:1px}
.header-book{min-height:44px;padding:0 19px;display:flex;align-items:center;border:1px solid var(--ink);font-family:var(--sans);font-size:11px;letter-spacing:.09em}
.mobile-menu{display:none}
.section-label{font-family:var(--sans);font-size:10px;line-height:1.5;letter-spacing:.19em;color:var(--muted)}
.sub-hero{max-width:1600px;min-height:690px;margin:0 auto;padding:94px var(--gutter) 118px;display:grid;grid-template-columns:minmax(300px,.78fr) minmax(440px,1.22fr);gap:10%;align-items:center}
.sub-hero-copy{padding-left:clamp(0px,3.5vw,56px)}
.sub-hero .section-label{margin-bottom:28px}
.sub-hero h1{font-size:clamp(39px,4.8vw,68px);line-height:1.42;letter-spacing:.14em}
.sub-hero-lead{max-width:25em;margin-top:38px;font-size:clamp(18px,1.55vw,22px);line-height:2.05;letter-spacing:.08em}
.sub-hero-note{max-width:40em;margin-top:26px;font-family:var(--sans);font-size:11px;line-height:1.9;color:var(--muted);letter-spacing:.035em}
.sub-hero-media{justify-self:end;width:min(100%,760px)}
.sub-hero-media img{aspect-ratio:4/3;object-fit:cover;filter:saturate(.78) contrast(1.025)}
.sub-hero-media.portrait{width:min(78%,560px)}
.sub-hero-media.portrait img{aspect-ratio:3/4}
figcaption{margin-top:13px;font-family:var(--sans);font-size:10px;line-height:1.8;letter-spacing:.13em;color:var(--muted)}
.page-links{max-width:1408px;margin:0 auto;padding:0 var(--gutter);display:flex;flex-wrap:wrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.page-links a{min-height:64px;flex:1;min-width:150px;padding:14px 18px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);font-family:var(--sans);font-size:11px;letter-spacing:.07em;text-align:center}
.page-links a:last-child{border-right:0}
.section{max-width:1408px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.intro-section{padding-top:130px;padding-bottom:138px;display:grid;grid-template-columns:.72fr 1.28fr;gap:10%;border-bottom:1px solid var(--line)}
.intro-section h2,.section-title h2{margin-top:20px;font-size:clamp(29px,3.4vw,47px);line-height:1.65;letter-spacing:.11em}
.intro-copy{max-width:43em}
.intro-copy p{font-size:18px;line-height:2.15}
.intro-copy p+p{margin-top:24px}
.editorial{padding-top:135px;padding-bottom:145px}
.editorial-row{display:grid;grid-template-columns:1.1fr .9fr;gap:9%;align-items:center}
.editorial-row+.editorial-row{margin-top:130px}
.editorial-row.reverse{grid-template-columns:.9fr 1.1fr}
.editorial-row.reverse .editorial-media{order:2}
.editorial-row.reverse .editorial-copy{order:1}
.editorial-media img{aspect-ratio:4/3;object-fit:cover;filter:saturate(.78) contrast(1.025)}
.editorial-media.tall{width:78%}
.editorial-media.tall img{aspect-ratio:3/4}
.editorial-copy{max-width:35em}
.editorial-copy h2{font-size:clamp(27px,3vw,42px);line-height:1.7;letter-spacing:.1em}
.editorial-copy h3{font-size:clamp(22px,2.2vw,31px);line-height:1.75;letter-spacing:.09em}
.editorial-copy p{margin-top:27px;font-size:16px;line-height:2.15}
.editorial-copy .section-label{margin-bottom:16px}
.plain-link{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:290px;min-height:57px;margin-top:34px;border-bottom:1px solid var(--line);font-family:var(--sans);font-size:13px;letter-spacing:.06em}
.plain-link::after{content:"→";font-size:16px}
.facts-section{padding-top:118px;padding-bottom:128px;background:var(--paper-deep)}
.facts-inner{max-width:1408px;margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:.65fr 1.35fr;gap:10%}
.facts{border-top:1px solid var(--ink)}
.facts>div{display:grid;grid-template-columns:180px 1fr;gap:32px;padding:23px 0;border-bottom:1px solid var(--line)}
.facts dt{font-family:var(--sans);font-size:11px;letter-spacing:.09em;color:var(--muted)}
.facts dd{font-size:15px;line-height:1.95}
.facts dd small{display:block;margin-top:6px;font-family:var(--sans);font-size:11px;line-height:1.8;color:var(--muted)}
.gallery-section{padding-top:136px;padding-bottom:142px}
.gallery-heading{max-width:38em;margin-bottom:70px}
.gallery-heading h2{margin-top:19px;font-size:clamp(29px,3.3vw,45px);line-height:1.65;letter-spacing:.11em}
.gallery-heading p:last-child{margin-top:25px;font-size:16px}
.gallery{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(22px,4vw,65px);align-items:end}
.gallery figure:nth-child(2){margin-bottom:-52px}
.gallery figure:nth-child(2) img{aspect-ratio:3/4;object-fit:cover}
.gallery figure:first-child img{aspect-ratio:4/3;object-fit:cover}
.note-panel{max-width:1408px;margin:0 auto;padding:90px var(--gutter);border-top:1px solid var(--line);display:grid;grid-template-columns:.7fr 1.3fr;gap:10%}
.note-panel h2{font-size:clamp(26px,3vw,40px);line-height:1.65;letter-spacing:.1em}
.note-panel div p{font-family:var(--sans);font-size:13px;line-height:2;color:var(--muted)}
.note-panel div p+p{margin-top:18px}
.timeline{border-top:1px solid var(--ink)}
.timeline>div{display:grid;grid-template-columns:150px 1fr;gap:40px;padding:29px 0;border-bottom:1px solid var(--line)}
.timeline dt{font-family:var(--sans);font-size:12px;color:var(--muted)}
.timeline dd{font-size:16px;line-height:2}
.notice-list{border-top:1px solid var(--ink)}
.notice-item{display:grid;grid-template-columns:120px 150px 1fr;gap:30px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
.notice-item time,.notice-tag{font-family:var(--sans);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.notice-item h2{font-size:20px;line-height:1.75;letter-spacing:.08em}
.notice-item p{grid-column:3;margin-top:7px;font-family:var(--sans);font-size:13px;line-height:2;color:var(--muted)}
.company-table{border-top:1px solid var(--ink)}
.company-table>div{display:grid;grid-template-columns:190px 1fr;gap:35px;padding:24px 0;border-bottom:1px solid var(--line)}
.company-table dt{font-family:var(--sans);font-size:11px;color:var(--muted)}
.company-table dd{font-size:15px}
.policy{max-width:900px;margin:0 auto;padding:110px var(--gutter) 140px}
.policy section+section{margin-top:62px;padding-top:55px;border-top:1px solid var(--line)}
.policy h2{font-size:24px;line-height:1.7;letter-spacing:.08em}
.policy p,.policy li{margin-top:20px;font-family:var(--sans);font-size:13px;line-height:2.05;color:var(--muted)}
.policy ul{padding-left:1.5em}
.reservation-cta{max-width:1408px;margin:0 auto;padding:100px clamp(30px,7vw,110px);display:grid;grid-template-columns:1.1fr .9fr;gap:10%;align-items:end;background:var(--ink);color:var(--paper)}
.reservation-cta h2{margin-top:20px;font-size:clamp(29px,3.4vw,46px);line-height:1.65;letter-spacing:.1em}
.reservation-cta p{margin-top:25px;font-size:15px;line-height:2}
.reservation-actions{display:flex;flex-direction:column;gap:14px}
.reservation-actions a{min-height:62px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(245,243,237,.36);font-family:var(--sans);font-size:13px}
.reservation-actions a::after{content:"↗";font-size:17px}
.reservation-actions .sub-action{font-size:11px;color:#bbb8b0}
.site-footer{max-width:1408px;margin:0 auto;padding:84px var(--gutter) 28px;background:var(--paper-deep)}
.footer-top{display:grid;grid-template-columns:280px 1fr;gap:9%;align-items:start}
.footer-brand img{width:250px}
.footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:15px 30px;font-family:var(--sans);font-size:11px;line-height:1.8}
.footer-links a{text-decoration:underline;text-decoration-thickness:1px}
.footer-bottom{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;font-family:var(--sans);font-size:10px;color:var(--muted)}
.footer-bottom address{font-style:normal}
@media(max-width:1080px){.site-header{grid-template-columns:150px 1fr auto;gap:22px}.global-nav{gap:16px;font-size:10px}.sub-hero{grid-template-columns:.85fr 1.15fr;gap:6%}.editorial-row,.editorial-row.reverse{gap:6%}.footer-links{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.site-header{display:flex;justify-content:space-between;min-height:74px;padding:15px 20px}.site-brand img{width:122px}.global-nav,.site-header>.header-book{display:none}.mobile-menu{display:block;position:relative;font-family:var(--sans)}.mobile-menu summary{min-height:42px;padding:0 8px;display:flex;align-items:center;list-style:none;font-size:11px;letter-spacing:.08em;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;z-index:40;top:49px;right:-20px;width:min(82vw,330px);padding:22px 25px;background:var(--paper);border:1px solid var(--line);box-shadow:0 14px 40px rgba(39,39,37,.1);display:flex;flex-direction:column;gap:13px;font-size:14px}.mobile-menu nav a:last-child{margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}.sub-hero{min-height:0;padding-top:75px;padding-bottom:82px;grid-template-columns:1fr 1.15fr;gap:7%}.sub-hero-copy{padding:0}.sub-hero h1{font-size:38px}.intro-section,.facts-inner,.note-panel{grid-template-columns:.85fr 1.15fr;gap:7%}.editorial-row,.editorial-row.reverse{grid-template-columns:1fr 1fr}.notice-item{grid-template-columns:100px 110px 1fr}.footer-top{grid-template-columns:210px 1fr}.footer-links{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){:root{--gutter:24px}body{font-size:16px}.sub-hero{display:flex;flex-direction:column;padding:58px var(--gutter) 74px}.sub-hero-copy{width:100%}.sub-hero .section-label{margin-bottom:18px}.sub-hero h1{font-size:36px;line-height:1.5}.sub-hero-lead{margin-top:25px;font-size:18px}.sub-hero-note{margin-top:20px}.sub-hero-media,.sub-hero-media.portrait{width:100%;margin-top:45px}.sub-hero-media.portrait img{aspect-ratio:4/5}.page-links{display:grid;grid-template-columns:repeat(2,1fr);padding:0 24px;border-top:0}.page-links a{min-width:0;min-height:54px;padding:10px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.page-links a:nth-child(2n){border-right:0}.page-links a:last-child:nth-child(odd){grid-column:1/-1;border-right:0}.intro-section,.facts-inner,.note-panel{display:block}.intro-section{padding-top:76px;padding-bottom:78px}.intro-copy{margin-top:34px}.intro-copy p{font-size:16px}.editorial{padding-top:80px;padding-bottom:88px}.editorial-row,.editorial-row.reverse{display:flex;flex-direction:column;gap:38px}.editorial-row+.editorial-row{margin-top:85px}.editorial-row.reverse .editorial-media{order:1}.editorial-row.reverse .editorial-copy{order:2}.editorial-media.tall{width:86%}.editorial-copy h2{font-size:29px}.editorial-copy p{font-size:15px}.facts-section{padding-top:72px;padding-bottom:80px}.facts{margin-top:38px}.facts>div{grid-template-columns:105px 1fr;gap:22px}.gallery-section{padding-top:82px;padding-bottom:88px}.gallery-heading{margin-bottom:45px}.gallery{grid-template-columns:1fr;gap:30px}.gallery figure:nth-child(2){width:82%;margin:0 0 0 auto}.note-panel{padding-top:72px;padding-bottom:72px}.note-panel div{margin-top:30px}.timeline>div,.company-table>div{grid-template-columns:92px 1fr;gap:22px}.notice-item{grid-template-columns:95px 1fr;gap:12px 20px}.notice-item .notice-tag{grid-column:2}.notice-item h2,.notice-item p{grid-column:1/-1}.notice-item h2{margin-top:8px}.policy{padding-top:70px;padding-bottom:90px}.reservation-cta{display:block;padding:72px 28px}.reservation-actions{margin-top:45px}.site-footer{padding-top:62px}.footer-top{display:block}.footer-brand{display:block;margin-bottom:40px}.footer-brand img{width:210px}.footer-links{grid-template-columns:1fr 1fr;gap:14px 24px}.footer-bottom{display:block;margin-top:40px}.footer-bottom address{margin-bottom:8px}}
@media(max-width:359px){.sub-hero h1{font-size:32px}.footer-links{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-header,.page-links,.reservation-cta,.site-footer{display:none}.sub-hero{min-height:0;padding-top:30px}.sub-hero-media{max-width:360px}.section,.facts-inner{padding-left:0;padding-right:0}}
