:root{--paper:#FBF8F2;--card:#FFFDF8;--rule:#E6DCCB;--ink:#4A3A30;--text:#5B4636;--mustard:#E3A93B;--pale:#F3D9A4}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--paper);color:var(--text);font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;font-size:16px;line-height:1.9;word-break:auto-phrase;line-break:strict}
img{display:block;max-width:100%;height:auto;border-radius:16px;border:4px solid #fff;box-shadow:0 4px 14px rgba(74,58,48,.1)}
.head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;background:rgba(251,248,242,.95);border-bottom:1px solid var(--rule)}
.logo{color:var(--ink);text-decoration:none;font-size:18px}
.logo small{margin-left:8px;font-size:12px}
nav{display:flex;gap:20px;align-items:center}
nav a{color:var(--ink);text-decoration:none;font-size:14px;min-height:44px;display:flex;align-items:center}
.nav-btn{background:var(--mustard);padding:0 16px;border-radius:999px}
.hero{max-width:1080px;margin:0 auto;padding:48px 24px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.hero-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border:12px solid var(--pale);border-radius:50% 50% 16px 16px}
.tag{display:inline-block;margin:0 0 12px;padding:2px 14px;border:1px solid var(--mustard);border-radius:999px;font-size:13px}
h1{margin:0 0 20px;color:var(--ink);font-weight:400;font-size:clamp(36px,5vw,56px);line-height:1.35}
h2{margin:0 0 12px;color:var(--ink);font-weight:400;font-size:clamp(24px,3.4vw,34px);line-height:1.5;text-wrap:balance}
h3{margin:12px 0 4px;color:var(--ink);font-weight:400;font-size:20px}
.btn{display:inline-block;margin-top:12px;background:var(--mustard);color:var(--ink);text-decoration:none;padding:16px 40px;border-radius:12px;font-size:18px;min-height:44px;text-align:center}
.btn small{font-size:12px}
.sec{max-width:1080px;margin:0 auto;padding:72px 24px;border-top:1px dashed var(--rule)}
.lead{margin:0 0 32px}
.concept{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.concept img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;border-color:var(--pale)}
ol{list-style:none;counter-reset:n;margin:0;padding:0}
ol li{counter-increment:n;position:relative;padding:0 0 24px 56px}
ol li::before{content:counter(n);position:absolute;left:0;top:0;width:40px;height:40px;border-radius:50%;background:var(--mustard);color:#fff;display:grid;place-items:center}
ol b{display:block;color:var(--ink);font-weight:400;font-size:20px}
.closing{margin:32px 0 0;font-size:18px;color:var(--ink)}
.cats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cats li{background:var(--card);border-radius:16px;padding:16px}
.cats img{width:100%;aspect-ratio:4/3;object-fit:cover}
.cats p{margin:0;font-size:15px}
.small{font-size:13px;margin-top:20px}
.info{display:grid;grid-template-columns:2fr 3fr;gap:40px;align-items:center;margin-top:24px}
.info img{width:100%;aspect-ratio:4/5;object-fit:cover}
dl{margin:0;display:grid;grid-template-columns:auto 1fr}
dt,dd{margin:0;padding:18px 8px;border-bottom:1px solid var(--ink)}
dt{color:var(--ink);padding-right:24px}
dl dt:first-of-type,dl dt:first-of-type+dd{border-top:1px solid var(--ink)}
.contact{text-align:center}
footer{text-align:center;padding:24px 0 40px;color:#8a7a6e}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
@media (max-width:760px){
  html{scroll-padding-top:110px}
  .head{padding:8px 16px;flex-wrap:wrap}
  nav{gap:12px;flex-wrap:wrap}
  nav a{font-size:13px}
  .hero,.concept,.info{grid-template-columns:1fr;gap:28px}
  .hero{padding:28px 16px}
  .sec{padding:56px 16px}
  .cats{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.sample-note{margin:.6em auto 0;font-size:12px;opacity:.75;max-width:40em;padding:0 1em}
