:root{--ink:#222;--sub:#6f6f6f;--line:#ddd;--wide:1240px;--narrow:820px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;color:var(--ink);font-weight:300;line-height:1.9;font-size:15px;background:#fff;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
a:hover{opacity:.6}
.en{font-family:"Noto Sans","Helvetica Neue",Arial,sans-serif}
.serif{font-family:"Noto Serif CJK JP","Hiragino Mincho ProN",serif}
.script{font-family:"Noto Serif",serif;font-style:italic;font-weight:400}
/* header */
header.site{position:absolute;top:0;left:0;right:0;z-index:20;color:#fff}
header.site.solid{position:static;color:var(--ink);border-bottom:1px solid #eee}
.hd-in{max-width:1440px;margin:0 auto;display:flex;align-items:center;gap:34px;padding:22px 40px}
.logo{font-size:30px;letter-spacing:.02em;line-height:1}
nav.main{display:flex;gap:30px;margin-left:auto;font-family:"Noto Sans",Arial,sans-serif;font-size:11px;letter-spacing:.22em}
.pill{display:inline-block;border:1px solid currentColor;border-radius:999px;padding:10px 26px;font-family:"Noto Sans",Arial,sans-serif;font-size:11px;letter-spacing:.24em}
.pill.dark{border-color:#333;color:#222;padding:16px 54px;font-size:12px}
/* fv */
.fv{position:relative;height:810px}
.fv .note{position:absolute;right:0;bottom:0;background:#eef1f3;padding:18px 22px;display:flex;gap:16px;max-width:520px}
.fv .note img{width:150px;height:96px}
.fv .note b{font-size:13px;line-height:1.6;display:block}
.fv .note p{font-size:11.5px;line-height:1.7;color:#444}
/* sections */
section.blk{padding:110px 24px 0;max-width:var(--wide);margin:0 auto}
section.blk:last-of-type{padding-bottom:0}
h2.sec{font-family:"Noto Sans",Arial,sans-serif;font-weight:200;font-size:40px;letter-spacing:.42em;text-align:center;text-indent:.42em;line-height:1.4}
.sub{text-align:center;color:var(--sub);font-size:14px;margin-top:10px;letter-spacing:.14em}
.sec-head{position:relative}
.arrows{position:absolute;right:0;top:6px;display:flex;gap:8px}
.arrows span{width:34px;height:34px;border:1px solid #bbb;border-radius:50%;display:grid;place-items:center;font-size:13px;color:#555}
.wide-photo{max-width:1070px;margin:54px auto 0;aspect-ratio:16/8.2}
.caption-note{text-align:center;color:var(--sub);font-size:12px;margin-top:26px}
/* hairline list */
.hlist{max-width:var(--narrow);margin:44px auto 0}
.hlist .row{display:flex;justify-content:space-between;gap:30px;padding:15px 4px;border-bottom:1px solid var(--line);font-size:14px}
.hlist .row:first-child{border-top:1px solid var(--line)}
.hlist .date{color:var(--sub);font-size:12px;letter-spacing:.08em}
.news-list{max-width:640px}
.more{display:block;text-align:right;max-width:640px;margin:18px auto 0;font-size:12.5px;text-decoration:underline;text-underline-offset:5px}
.more-c{text-align:center}
/* cards */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:54px}
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:54px}
.card .ph{aspect-ratio:3/3.9}
.card .ph.h{aspect-ratio:4/3.1}
.cap{margin-top:16px}
.cap .en{font-weight:700;font-size:13.5px;letter-spacing:.12em}
.cap .jp{font-size:14.5px;margin-top:2px}
.cap .gr{color:var(--sub);font-size:12px;line-height:1.7}
/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:50px}
.tile{background:#f4f4f4;aspect-ratio:2.15;display:grid;place-items:center;font-size:17px;letter-spacing:.1em}
/* overlay photo */
.overlay{position:relative;max-width:1070px;margin:54px auto 0;aspect-ratio:16/8.4}
.overlay .big{position:absolute;left:0;right:0;bottom:26px;text-align:center;color:#fff;font-family:"Noto Sans",Arial,sans-serif;font-weight:200;font-size:64px;letter-spacing:.3em;text-indent:.3em}
.center-line{text-align:center;font-size:19px;margin-top:44px;letter-spacing:.06em}
.center-sub{text-align:center;color:var(--sub);font-size:13px;margin-top:10px}
.u-link{text-align:center;margin-top:12px}
.u-link a{text-decoration:underline;text-underline-offset:6px;font-size:13.5px}
/* message / price */
.quote{text-align:center;font-size:21px;line-height:2.1;margin-top:44px}
.quote small{display:block;font-size:12px;color:var(--sub);margin-top:14px;font-family:"Noto Sans CJK JP",sans-serif;letter-spacing:.1em}
.price{max-width:700px}
.price .row b{font-weight:500}
.promise{text-align:center;color:var(--sub);font-size:12.5px;line-height:2;margin-top:30px}
/* staff */
.staff-top{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center;max-width:1070px;margin:60px auto 0}
.staff-top .ph{aspect-ratio:4/2.9}
.label{font-family:"Noto Sans",Arial,sans-serif;font-size:11px;letter-spacing:.3em;color:var(--sub)}
.staff-top h3{font-size:30px;font-weight:400;letter-spacing:.18em;margin:10px 0 18px}
.staff-top p{font-size:14px;line-height:2.1}
.staff-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:640px;margin:56px auto 0}
.staff-cards .ph{aspect-ratio:1/0.92}
.staff-cards .cap{text-align:center}
/* booking + footer */
.booking{text-align:center;padding:120px 24px 110px}
.booking p{margin:26px 0 34px;font-size:14.5px}
footer.site{background:#000;color:#fff;margin-top:130px}
footer.site.no-gap{margin-top:0}
.ft-in{max-width:1240px;margin:0 auto;padding:56px 40px 26px;position:relative}
.pagetop{position:absolute;right:40px;top:26px;font-family:"Noto Sans",Arial,sans-serif;font-size:10px;letter-spacing:.24em}
.ft-cols{display:flex;gap:110px}
.ft-cols h4{font-family:"Noto Sans",Arial,sans-serif;font-weight:400;font-size:12px;letter-spacing:.3em;margin-bottom:20px}
.ft-cols li{list-style:none;font-size:11.5px;line-height:2.3;color:#ddd}
.ft-side{margin-left:auto;text-align:right}
.sns{display:flex;gap:20px;justify-content:flex-end;font-size:19px;margin-bottom:22px}
.ft-logo{display:flex;justify-content:space-between;align-items:flex-end;margin-top:56px}
.copy{font-family:"Noto Sans",Arial,sans-serif;font-size:9.5px;letter-spacing:.14em;color:#bbb}
.giant{font-size:74px;line-height:1}
/* subpages */
.page-head{padding:86px 24px 0;text-align:center}
.page-head h1{font-family:"Noto Sans",Arial,sans-serif;font-weight:200;font-size:36px;letter-spacing:.4em;text-indent:.4em}
.crumbs{max-width:var(--wide);margin:26px auto 0;padding:0 24px;font-size:11px;color:var(--sub);letter-spacing:.08em}
.body-narrow{max-width:var(--narrow);margin:0 auto;padding:0 24px}
.body-narrow p{margin-top:22px;font-size:14.5px}
.body-narrow h3{font-size:17px;font-weight:500;margin-top:52px;letter-spacing:.06em}
table.spec{width:100%;border-collapse:collapse;margin-top:30px;font-size:14px}
table.spec th,table.spec td{border-bottom:1px solid var(--line);padding:15px 6px;text-align:left;font-weight:300}
table.spec th{width:34%;color:#444}
details.faq{border-bottom:1px solid var(--line);padding:20px 4px}
details.faq summary{cursor:pointer;font-size:15px;list-style:none}
details.faq p{color:#444;font-size:14px;margin-top:12px}
form.book{display:grid;gap:20px;margin-top:44px}
form.book label{font-size:13px;display:grid;gap:8px}
form.book input,form.book select,form.book textarea{border:1px solid #ccc;padding:13px;font:inherit;font-size:14px;background:#fff}
form.book button{justify-self:center;background:#fff;border:1px solid #333;border-radius:999px;padding:15px 60px;letter-spacing:.24em;font-family:"Noto Sans",Arial,sans-serif;font-size:12px;cursor:pointer}
.form-note{text-align:center;color:var(--sub);font-size:12px}
.area-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:50px}
.area-cards a{border:1px solid var(--line);padding:34px;text-align:center;font-size:18px;letter-spacing:.14em}
.area-cards a span{display:block;font-size:11.5px;color:var(--sub);margin-top:8px;letter-spacing:.04em}
@media(max-width:900px){nav.main{display:none}.cards3,.cards4,.tiles{grid-template-columns:1fr 1fr}.staff-top{grid-template-columns:1fr}.fv{height:480px}h2.sec{font-size:28px}.overlay .big{font-size:34px}.giant{font-size:44px}}
