:root{--paper:#f7f3ed;--paper2:#eee7de;--ink:#241f1d;--muted:#6f655f;--wine:#79515c;--rose:#c5a5a8;--white:#fffdf9;--line:rgba(36,31,29,.16);--green:#06c755;--serif:'Shippori Mincho',serif;--sans:'Noto Sans JP',sans-serif;--latin:'DM Sans',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;font-weight:300;line-height:1.9;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
p{max-width:68ch}
.wrap{width:min(1100px,calc(100% - 48px));margin-inline:auto}
.site-header{position:sticky;z-index:20;top:0;border-bottom:1px solid var(--line);background:rgba(247,243,237,.92);backdrop-filter:blur(16px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:24px}
.brand{font-family:var(--serif);font-size:1.42rem;font-weight:500;letter-spacing:-.02em}
.header-nav{display:flex;align-items:center;gap:22px;font-family:var(--latin);font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase}
.header-nav .reserve{padding:11px 17px;border-radius:999px;background:var(--ink);color:#fff}
.breadcrumbs{padding:18px 0;color:var(--muted);font-size:.68rem}
.breadcrumbs a{border-bottom:1px solid currentColor}
.hero{padding:clamp(64px,9vw,120px) 0 clamp(72px,10vw,132px)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(38px,7vw,90px);align-items:center}
.kicker{margin-bottom:18px;color:var(--wine);font-family:var(--latin);font-size:.69rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
h1{font-family:var(--serif);font-size:clamp(2.35rem,5.6vw,5.3rem);font-weight:500;line-height:1.25;letter-spacing:-.04em;text-wrap:balance}
.hero-lead{margin-top:24px;color:var(--muted);font-size:clamp(.92rem,1.2vw,1.06rem);line-height:2.05}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.hero-tags span{padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.5);font-size:.68rem}
.hero-image{overflow:hidden;aspect-ratio:4/5;border-radius:50% 50% 38% 62% / 42% 56% 44% 58%;box-shadow:0 35px 75px -52px rgba(36,31,29,.65)}
.hero-image img{height:100%;object-fit:cover}
.section{padding:clamp(72px,9vw,120px) 0}
.section.alt{background:var(--white)}
.section.tint{background:var(--paper2)}
.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;margin-bottom:46px;align-items:end}
.section h2{font-family:var(--serif);font-size:clamp(1.85rem,4vw,3.7rem);font-weight:500;line-height:1.4;letter-spacing:-.03em;text-wrap:balance}
.section-head p{justify-self:end;color:var(--muted);font-size:.92rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--white)}
.alt .card{background:var(--paper)}
.card-no{display:block;margin-bottom:24px;color:var(--wine);font-family:var(--latin);font-size:.7rem;font-weight:600;letter-spacing:.16em}
.card h3,.card .card-h{margin-bottom:13px;font-family:var(--serif);font-size:1.3rem;font-weight:500;line-height:1.5}
.card p{color:var(--muted);font-size:.82rem}
.prose{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,6vw,72px);align-items:start}
.prose h2{position:sticky;top:110px}
.prose-body p{color:var(--muted)}
.prose-body p+p{margin-top:20px}
.note{margin-top:28px;padding:22px 24px;border-left:3px solid var(--wine);border-radius:0 16px 16px 0;background:rgba(121,81,92,.08);font-size:.82rem}
.steps{display:grid;gap:14px;counter-reset:step}
.step{counter-increment:step;display:grid;grid-template-columns:54px 1fr;gap:18px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--white)}
.step::before{content:"0" counter(step);display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--wine);border-radius:50%;color:var(--wine);font-family:var(--latin);font-size:.68rem;font-weight:600}
.step h3{font-family:var(--serif);font-size:1.18rem;font-weight:500}
.step p{margin-top:4px;color:var(--muted);font-size:.82rem}
.info-list{border-top:1px solid var(--line)}
.info-row{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.info-key{font-family:var(--latin);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.info-value{font-size:.88rem}
.info-value small{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}
.photo-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:36px}
.photo-grid figure{overflow:hidden;border-radius:24px;background:var(--paper2)}
.photo-grid img{height:100%;min-height:320px;object-fit:cover}
.faq-list{display:grid;gap:12px}
.faq-list details{border:1px solid var(--line);border-radius:18px;background:var(--white)}
.faq-list summary{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;cursor:pointer;list-style:none;font-family:var(--serif);font-size:1rem;font-weight:500}
.faq-list summary::after{content:"＋";color:var(--wine)}
.faq-list details[open] summary::after{content:"−"}
.faq-answer{padding:0 22px 22px;color:var(--muted);font-size:.82rem}
.cta{padding:clamp(72px,10vw,120px) 0;background:var(--ink);color:#fff;text-align:center}
.cta h2{max-width:800px;margin:auto;font-family:var(--serif);font-size:clamp(2rem,4.6vw,4rem);font-weight:500;line-height:1.42}
.cta p{margin:18px auto 28px;color:#cabfba}
.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:13px 22px;border:1px solid rgba(255,255,255,.55);border-radius:999px;font-size:.8rem;font-weight:500}
.button.line{border-color:var(--green);background:var(--green);color:#fff}
.button.light{background:#fff;color:var(--ink)}
.footer{padding:42px 0 88px;background:var(--ink);color:#bfb5af;border-top:1px solid rgba(255,255,255,.14)}
.footer-inner{display:flex;justify-content:space-between;gap:28px;align-items:flex-end}
.footer-brand{color:#fff;font-family:var(--serif);font-size:1.8rem}
.footer-meta{margin-top:5px;font-size:.7rem}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px;font-family:var(--latin);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase}
.copyright{margin-top:22px;font-size:.6rem}
@media(max-width:760px){
  .wrap{width:min(100% - 30px,1100px)}
  .header-inner{min-height:64px}.header-nav a:not(.reserve){display:none}.brand{font-size:1.12rem}
  .hero-grid,.section-head,.prose{grid-template-columns:1fr}.hero-image{max-width:520px;margin:auto}.section-head p{justify-self:start}
  .cards{grid-template-columns:1fr}.prose h2{position:static}.photo-grid{grid-template-columns:1fr}.photo-grid img{min-height:250px}
  .info-row{grid-template-columns:95px 1fr;gap:14px}.footer-inner{display:block}.footer-links{justify-content:flex-start;margin-top:24px}
}

/* NAP / map (2026-10-01) */
.footer-nap{margin-top:10px;font-style:normal;font-size:.68rem;line-height:1.8;color:#a99f99}
.footer-nap a{color:#d9cfc9;border-bottom:1px solid rgba(255,255,255,.3)}
.tel-link{font-family:var(--latin);font-weight:500;letter-spacing:.04em;border-bottom:1px solid currentColor}
.map-embed{overflow:hidden;margin-top:36px;border:1px solid var(--line);border-radius:24px;background:var(--paper2);aspect-ratio:16/10}
.map-embed iframe{display:block;width:100%;height:100%;border:0}
.inline-link{color:var(--wine);border-bottom:1px solid currentColor;font-weight:500}
@media(max-width:760px){.map-embed{aspect-ratio:1/1}}
