:root{
  --bg:#f4f1ea;
  --paper:#fffdf8;
  --forest:#1f4d3a;
  --forest-deep:#14352a;
  --moss:#5f8f6a;
  --wood:#8a5a2b;
  --amber:#e0a458;
  --ink:#1f2a24;
  --ink-soft:#5a665f;
  --line:#d9d3c5;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --serif:"Zen Old Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--forest);text-decoration:none}
a:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
img{max-width:100%;height:auto;display:block}

header.top{position:sticky;top:0;z-index:20;background:var(--forest-deep);color:#fff;border-bottom:3px solid var(--amber)}
header.top .in{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;gap:10px}
header.top .brand{font-family:var(--serif);font-size:20px;color:#fff;letter-spacing:.04em;line-height:1.2}
header.top .brand small{display:block;font-family:var(--sans);font-size:11px;color:#bcd3c5;letter-spacing:.15em}
nav.main{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}
nav.main a{color:#e6efe9;font-size:13px;padding:8px 10px;border-radius:6px;white-space:nowrap}
nav.main a[aria-current="page"]{background:rgba(255,255,255,.12);color:#fff}

.hero{background:var(--forest);color:#fff;padding:44px 16px 40px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;background:radial-gradient(ellipse at center,rgba(224,164,88,.25),transparent 60%);pointer-events:none}
.hero .in{max-width:960px;margin:0 auto;position:relative}
.hero h1{font-family:var(--serif);font-size:clamp(30px,7vw,48px);margin:0 0 6px;line-height:1.2;letter-spacing:.03em}
.hero .tag{font-size:15px;color:#d5e5db;margin:0 0 18px}
.hero .facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:#e8f0eb}
.hero .facts span::before{content:"◆";color:var(--amber);margin-right:6px;font-size:10px;vertical-align:2px}

main{max-width:960px;margin:0 auto;padding:12px 16px 60px}
section{padding:34px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
h2{font-family:var(--serif);font-size:24px;margin:0 0 14px;color:var(--forest-deep);letter-spacing:.03em}
h2 .en{display:block;font-family:var(--sans);font-size:11px;color:var(--moss);letter-spacing:.2em;margin-bottom:2px}
h3{font-size:16px;margin:22px 0 6px;color:var(--forest-deep)}
p{margin:0 0 12px}
.note{font-size:13px;color:var(--ink-soft)}

.grid{display:grid;gap:14px}
@media(min-width:640px){.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}}

.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px}
.card h3{margin-top:0}

.price{display:grid;gap:12px}
.slot{background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--wood);border-radius:8px;padding:16px 18px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.slot .name{font-weight:700;font-size:17px;color:var(--forest-deep)}
.slot .time{font-size:14px;color:var(--ink-soft)}
.slot .yen{font-family:var(--serif);font-size:26px;color:var(--wood);white-space:nowrap}
.slot .yen small{font-family:var(--sans);font-size:12px;color:var(--ink-soft);margin-left:4px}
.opt{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:15px}
.opt:last-child{border-bottom:0}
.opt b{color:var(--wood);white-space:nowrap}

ul.eq{list-style:none;padding:0;margin:0;display:grid;gap:8px}
@media(min-width:640px){ul.eq{grid-template-columns:1fr 1fr}}
ul.eq li{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px 12px 38px;position:relative;font-size:15px}
ul.eq li::before{content:"";position:absolute;left:14px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--moss)}
ul.eq li small{display:block;color:var(--ink-soft);font-size:13px;margin-top:2px}

dl.access{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:15px}
dl.access dt{color:var(--moss);font-weight:700;white-space:nowrap}
dl.access dd{margin:0}
.map{margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.map iframe{display:block;width:100%;height:320px;border:0}

.cta{display:grid;gap:10px;margin-top:8px}
@media(min-width:640px){.cta{grid-template-columns:1fr 1fr}}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:10px;font-weight:700;font-size:16px;text-align:center}
.btn.line{background:#06c755;color:#fff}
.btn.tel{background:var(--forest);color:#fff}
.btn.mail{background:var(--paper);color:var(--forest-deep);border:2px solid var(--forest)}

.photos{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.photos img{border-radius:8px;border:1px solid var(--line);width:100%;aspect-ratio:16/9;object-fit:cover}

.caution{background:#fbf5e8;border:1px solid #ecd9b0;border-radius:8px;padding:14px 16px;font-size:13px;color:#5b4a2a}

footer.site{background:var(--forest-deep);color:#c9d9cf;text-align:center;padding:26px 16px;font-size:13px;line-height:1.9}
footer.site a{color:#fff}
footer.site .nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-bottom:8px}
