:root{
  --bg:#0e0e0d; --bg2:#151513; --line:#2c2b27; --text:#e9e5dc; --muted:#9c968a;
  --accent:#b39a6b; --rust:#8a5a3c;
  --serif:"Shippori Mincho","Cormorant Garamond",serif;
  --label:"Cormorant Garamond","Shippori Mincho",serif;
  --sans:"Noto Sans JP",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;line-height:1.9;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{width:min(1080px,100% - 40px);margin-inline:auto}

/* header */
.site-head{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(#0e0e0dcc,#0e0e0d00)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--label);letter-spacing:.25em;font-size:15px}
.brand img{width:34px;height:34px;border-radius:50%}
.head-r{display:flex;gap:14px;align-items:center;font-size:13px}
.lang a{text-decoration:none;color:var(--muted)} .lang a[aria-current]{color:var(--text)}
.btn-s{border:1px solid var(--accent);color:var(--accent);padding:6px 12px;text-decoration:none;font-size:12px;letter-spacing:.1em}

/* hero */
.hero{position:relative;height:100svh;min-height:560px;display:grid;place-items:end start;overflow:hidden}
.hero picture,.hero video{position:absolute;inset:0;width:100%;height:100%}
.hero img,.hero video{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 40%,#0e0e0de6)}
.hero-copy{position:relative;z-index:2;padding:0 20px 12vh;max-width:820px}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,6vw,54px);line-height:1.5;margin:0 0 .3em;letter-spacing:.12em}
.hero .sub{color:#d8d2c6;margin:0 0 1.6em;font-size:clamp(13px,1.8vw,16px)}
.btn{display:inline-block;background:var(--accent);color:#111;text-decoration:none;padding:14px 28px;letter-spacing:.15em;font-size:14px;font-weight:500}
.btn:hover{background:#c9b082}

/* sections */
section{padding:clamp(72px,12vw,140px) 0;border-top:1px solid var(--line)}
.label{font-family:var(--label);color:var(--accent);letter-spacing:.35em;font-size:13px;margin:0 0 .4em;text-transform:uppercase}
h2{font-family:var(--serif);font-weight:500;font-size:clamp(22px,3.4vw,32px);margin:0 0 1.2em;letter-spacing:.14em}
.lead{font-family:var(--serif);font-size:clamp(15px,2vw,18px);line-height:2.2;max-width:38em}
.lead p{margin:0 0 1.4em}
.note{color:var(--muted);font-size:12px;line-height:1.8;margin-top:1.4em}
.split{display:grid;gap:clamp(28px,5vw,64px);grid-template-columns:1fr}
@media(min-width:860px){.split{grid-template-columns:1.1fr 1fr;align-items:center}.split.rev>:first-child{order:2}}
.full{width:100%;aspect-ratio:3/2;object-fit:cover}
.quote{border-left:1px solid var(--accent);padding:4px 0 4px 18px;margin:2em 0 0;font-family:var(--serif);font-size:15px}
.quote cite{display:block;color:var(--muted);font-size:12px;font-style:normal;margin-top:.5em;font-family:var(--sans)}

/* view */
.view-img{width:100%;max-height:85vh;object-fit:cover}
.view-txt{text-align:center;font-family:var(--serif);margin-top:2.4em;line-height:2.2}

/* stay grid */
.stay{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:1fr}
@media(min-width:700px){.stay{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.stay{grid-template-columns:repeat(3,1fr)}}
.stay article{background:var(--bg);padding:28px 24px}
.stay h3{font-family:var(--label);letter-spacing:.3em;color:var(--accent);font-weight:500;margin:0 0 .6em;font-size:16px}
.stay p{margin:0;font-size:14px}
.photos{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:40px}
.photos img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* info tables */
.info{width:100%;border-collapse:collapse;font-size:14px}
.info th,.info td{border-top:1px solid var(--line);padding:16px 8px;vertical-align:top;text-align:left}
.info tr:last-child th,.info tr:last-child td{border-bottom:1px solid var(--line)}
.info th{font-weight:400;color:var(--muted);width:6.5em;font-size:13px;line-height:1.7}
@media(min-width:700px){.info th{width:11em}}
.plan{background:#1a1a18;padding:12px}

/* faq */
details{border-top:1px solid var(--line);padding:16px 4px}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;font-size:14px;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";color:var(--accent)} details[open] summary::after{content:"−"}
details p{margin:.8em 0 0;color:#cfc9bd;font-size:14px}

/* book */
.book{text-align:center}
.book .lead{margin-inline:auto}

/* footer */
footer{border-top:1px solid var(--line);padding:56px 0 90px;font-size:12px;color:var(--muted);text-align:center}
footer img{width:72px;margin:0 auto 18px;border-radius:50%}
footer a{color:var(--muted)}
footer p{margin:.4em 0}

/* mobile sticky book */
.sticky{position:fixed;inset:auto 0 0;z-index:20;display:block;text-align:center;background:var(--accent);color:#111;text-decoration:none;padding:14px;font-weight:500;letter-spacing:.15em;font-size:14px}
@media(min-width:860px){.sticky{display:none}}

/* privacy page */
.doc{padding:120px 0 80px;max-width:760px}
.doc h1{font-family:var(--serif);font-weight:500;font-size:26px}
.doc h2{font-size:18px;margin:2em 0 .6em}
.doc p,.doc li{font-size:14px;color:#cfc9bd}

/* gallery */
.gallery{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}

@media(min-width:860px){.gallery{grid-template-columns:repeat(4,1fr)}.gallery img{aspect-ratio:3/4}}

.gallery img{aspect-ratio:3/4}
.seasons{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:48px}
.seasons img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media(min-width:860px){.seasons{grid-template-columns:repeat(4,1fr)}}
.photos img{aspect-ratio:4/5}
.photos.short img{aspect-ratio:4/3}
