:root{--paper:#FDF4E3;--paper-2:#F3EBD9;--sage-bg:#E4ECE3;--mint:#B1D8B7;--ink:#3B4F3E;--ink-soft:#566657;--primary:#44706A;--primary-deep:#365A53;--coral:#D98C7A;--line:rgba(78,123,115,.22);--serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--en:"Gelasio","Noto Serif JP",serif}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--serif);color:var(--ink);background:var(--paper-2);line-height:1.95;letter-spacing:.04em;font-size:15px}
img{display:block;max-width:100%}
a{color:inherit}
.page{max-width:560px;margin:0 auto;background:var(--paper);box-shadow:0 0 0 1px var(--line);min-height:100vh}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line)}
.top .brand{font-family:var(--en);font-weight:600;letter-spacing:.12em;color:var(--primary);text-decoration:none}
.top .line{font-size:.8125rem;color:var(--primary);text-decoration:none;border:1px solid var(--primary);border-radius:999px;padding:4px 14px}
.crumb{padding:10px 22px 0;font-size:.75rem;color:var(--ink-soft)}
.crumb a{text-decoration:none}
header.hd{padding:34px 26px 10px;text-align:center}
.kicker{font-family:var(--en);font-style:italic;font-weight:600;color:var(--primary);font-size:.8125rem;letter-spacing:.08em;margin-bottom:6px}
h1,h2,h3{font-weight:600;color:var(--primary);letter-spacing:.06em;line-height:1.7}
h1{font-size:1.5rem}
.lead{margin:16px 0 0;text-align:left;font-size:.95rem}
.art{width:132px;margin:18px auto 0;mix-blend-mode:multiply}
.photo{margin:22px 26px 0;border-radius:18px;overflow:hidden;aspect-ratio:4/5}
.photo img{width:100%;height:100%;object-fit:cover}
main{padding:0 26px 30px}
section{margin-top:40px}
section .kicker{text-align:center}
h2{font-size:1.15rem;text-align:center;margin-bottom:14px}
p{margin:10px 0}
ul.check{list-style:none;padding:0;margin:8px 0}
ul.check li{position:relative;padding:8px 0 8px 26px;border-bottom:1px dashed var(--line)}
ul.check li::before{content:"";position:absolute;left:4px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--mint)}
ol.steps{list-style:none;padding:0;counter-reset:s}
ol.steps li{counter-increment:s;position:relative;padding:4px 0 16px 46px}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:4px;width:30px;height:30px;border-radius:50%;background:var(--sage-bg);color:var(--primary);font-family:var(--en);font-weight:600;text-align:center;line-height:30px}
ol.steps b{display:block;color:var(--primary)}
ol.steps span{font-size:.9rem;color:var(--ink-soft)}
.price{background:var(--sage-bg);border-radius:18px;padding:22px 22px 16px;margin-top:30px}
.price .name{font-weight:600;color:var(--primary)}
.price .num{font-family:var(--en);font-size:1.6rem;color:var(--primary)}
.price .num small{font-size:.75rem;margin-left:4px}
.price .time{font-size:.85rem;color:var(--ink-soft)}
.price ul{margin:10px 0 0;padding-left:1.2em;font-size:.9rem}
.note{font-size:.85rem;color:var(--ink-soft);background:var(--paper-2);border-radius:12px;padding:12px 16px}
details{border-bottom:1px solid var(--line);padding:12px 0}
summary{cursor:pointer;color:var(--primary);font-weight:600;list-style:none}
summary::before{content:"Q. ";font-family:var(--en)}
details p{font-size:.92rem}
.links{display:grid;gap:10px;margin-top:16px}
.links a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:#fffaf0;color:var(--primary)}
.links a::after{content:" ›"}
.cta-box{text-align:center;background:var(--sage-bg);margin:44px -26px 0;padding:34px 26px}
.cta{display:flex;align-items:center;justify-content:center;background:var(--primary);color:#FDF6E8;text-decoration:none;font-weight:600;letter-spacing:.1em;padding:17px 20px;border-radius:999px;min-height:56px;box-shadow:0 10px 26px rgba(62,102,95,.22)}
.cta-box p{font-size:.85rem;color:var(--ink-soft)}
nav.all{padding:26px}
nav.all h3{font-size:.95rem;text-align:center;margin-bottom:8px}
nav.all ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:.85rem}
nav.all a{text-decoration:none;color:var(--primary)}
footer{padding:20px 26px 40px;font-size:.78rem;color:var(--ink-soft);text-align:center;border-top:1px solid var(--line)}
footer .addr{margin-bottom:8px}
