:root{--ink:#2A211E;--sub:#6B5E57;--line:#EADFD8;--bg:#FFFCF9;--washi:#FFF8EF;--shu:#B5351F;--shu-d:#8E2817;--gold:#9a7b3c;--mincho:"Noto Serif CJK JP","Noto Serif CJK","游明朝",YuMincho,"Yu Mincho","Sawarabi Mincho","Hiragino Mincho ProN","HGS明朝E",serif;--gothic:Meiryo,"メイリオ","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
body{background-image:radial-gradient(rgba(181,53,31,.025) 1px,transparent 1px);background-size:6px 6px;font-family:var(--gothic);font-size:13px;color:var(--ink);background:var(--bg);line-height:1.8;-webkit-text-size-adjust:100%}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.topbar{background:var(--shu);color:#fff;font-size:12px;text-align:center;padding:6px 16px}
header.site{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:20}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;padding-bottom:10px}
.logo{text-decoration:none;display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:0 1 auto}
.logo b{overflow:hidden;text-overflow:ellipsis}
.hd-right{flex:0 0 auto}
.logo small{font-size:11px;color:var(--sub);letter-spacing:.1em}
.logo b{font-family:var(--mincho);font-weight:600;font-size:clamp(17px,4.6vw,22px);letter-spacing:.04em;white-space:nowrap}
.hd-tel .short{display:none}
@media(max-width:420px){header.site .wrap{gap:8px;padding-left:12px;padding-right:12px}.logo b{font-size:16px}.logo small{font-size:10px}
.hd-right{gap:6px}header.site .hd-tel span,header.site .hd-tel .num{display:none}
header.site .hd-tel .short{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:40px;padding:0 8px;border:1px solid var(--shu);color:var(--shu);border-radius:4px;font-size:13px}
.cartbtn{padding:8px 10px}}
@media(max-width:360px){header.site .wrap{padding-left:8px;padding-right:8px;gap:6px}.hd-right{gap:4px}.logo b{font-size:14px;letter-spacing:0}.logo small{display:none}header.site .hd-tel .short{min-width:40px;padding:0 6px;font-size:12px}.cartbtn{padding:8px;font-size:12px}}
.hd-right{display:flex;align-items:center;gap:12px;font-size:13px}
.hd-tel{text-decoration:none;font-weight:700;white-space:nowrap}
.hd-tel span{display:block;font-size:10px;font-weight:400;color:var(--sub)}
.cartbtn{background:var(--shu);color:#fff;text-decoration:none;padding:8px 12px;border-radius:4px;font-weight:700;white-space:nowrap}
.cartbtn .n{background:#fff;color:var(--shu);border-radius:10px;padding:0 6px;margin-left:4px;font-size:12px}
nav.cats{background:var(--washi);border-bottom:1px solid var(--line);overflow-x:auto}
nav.cats ul{list-style:none;display:flex;gap:4px;max-width:1080px;margin:0 auto;padding:0 8px}
nav.cats a{display:block;padding:10px 12px;text-decoration:none;font-size:14px;white-space:nowrap}
nav.cats a:hover{color:var(--shu)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.slider{max-width:1080px;margin:16px auto 0;padding:0 16px}
.slider .track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:8px;background:#fff;border:1px solid var(--line)}
.slider .track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:start;display:grid;grid-template-columns:1fr;min-width:0}
.sl-ph{display:block;aspect-ratio:1200/628;overflow:hidden}
.sl-ph picture,.sl-ph img{display:block;width:100%;height:100%;object-fit:contain}
.sl-tx{padding:14px 16px 16px;display:flex;flex-direction:column;justify-content:center;background:var(--washi);min-height:128px}
.sl-t{font-family:var(--mincho);font-weight:600;font-size:clamp(18px,4.6vw,24px);line-height:1.4;letter-spacing:.04em}
.sl-s{font-family:var(--mincho);font-size:14px;color:var(--sub);margin-top:4px}
.sl-go{align-self:flex-start;margin-top:10px;background:var(--shu);color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:10px 16px;border-radius:22px;min-height:44px;display:inline-flex;align-items:center}
@media(min-width:760px){.slide{grid-template-columns:62% 38%}.sl-tx{padding:24px 28px;min-height:0}.sl-s{font-size:15px}}
/* スマホ：写真を画面いっぱい近くに広げ（左右 8px）、少し縦長に切り出して料理を大きく見せる（左右を各 8% 程度だけ切る）。文字の帯は小さく */
@media(max-width:759px){.slider{padding:0 8px;margin-top:10px}.slider .track{border-radius:6px}
.sl-ph{aspect-ratio:16/10}.sl-ph picture,.sl-ph img{object-fit:cover;object-position:50% 50%}
.sl-tx{padding:10px 12px 12px;min-height:0}.sl-t{font-size:17px;line-height:1.35}.sl-s{font-size:13px;margin-top:2px;line-height:1.5}
.sl-go{margin-top:8px;padding:8px 14px}.sl-ctl{margin-top:4px}}
.sl-ctl{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.sl-ctl>button{min-width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:22px;font-size:18px;color:var(--ink);cursor:pointer;padding:0 12px}
.sl-ctl .sl-play{font-size:13px}
.slider .dots{display:flex;gap:2px}
.slider .dots button{width:28px;height:44px;border:0;background:none;cursor:pointer;position:relative;padding:0}
.slider .dots button::after{content:"";position:absolute;left:9px;top:17px;width:10px;height:10px;border-radius:50%;background:#d8cbc2}
.slider .dots button[aria-current="true"]::after{background:var(--shu)}
.slider button:focus-visible,.slider a:focus-visible{outline:3px solid #1d6fd6;outline-offset:2px}
.seasonpage .ph2{display:grid;grid-template-columns:1fr;gap:12px;margin:12px 0}
@media(min-width:760px){.seasonpage .ph2{grid-template-columns:1fr 1fr}}
.seasonpage .ph2 img{width:100%;height:auto;border-radius:6px;display:block}
.hero{background:linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.35)),url(/images/hero_hanakago.jpg) center/cover;color:#fff}
.hero .wrap{padding-top:56px;padding-bottom:56px}
.hero h1{font-family:var(--mincho);font-size:clamp(24px,5vw,40px);line-height:1.45;letter-spacing:.06em;font-weight:600}
.hero p{margin-top:12px;max-width:560px;font-family:var(--mincho);font-size:15px}
.hero .btn{margin-top:20px}
.btn{display:inline-block;background:var(--shu);color:#fff;text-decoration:none;padding:14px 24px;border-radius:4px;font-weight:700;border:0;font-size:16px;cursor:pointer}
.btn:hover{background:var(--shu-d)}
.btn.line{background:#fff;color:var(--shu);border:2px solid var(--shu)}
.btn[disabled]{opacity:.5;cursor:default}
section{padding:32px 0}
h2.sec{font-family:var(--mincho);font-weight:600;font-size:17px;margin-bottom:16px;background:#1f1916;color:#fff;padding:8px 14px;letter-spacing:.06em}
h2.sec small{font-family:Meiryo,sans-serif;font-size:11px;color:#d9c9b4;letter-spacing:.2em;margin-right:10px}
.layout{display:block}
.side{display:none}
@media(min-width:900px){.layout{display:grid;grid-template-columns:200px 1fr;gap:24px}.side{display:block;padding-top:32px}
.side h3{background:#1f1916;color:#fff;font-size:13px;padding:6px 10px}.side ul{list-style:none;border:1px solid var(--line);border-top:0;background:#fff}
.side a{display:block;padding:8px 10px;border-top:1px solid var(--line);text-decoration:none;font-size:13px}.side a:hover{color:var(--shu);background:var(--washi)}}
.scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.scene{position:relative;text-decoration:none;border-radius:6px;overflow:hidden;aspect-ratio:4/3;background:var(--washi)}
.scene img{width:100%;height:100%;object-fit:cover}
.scene span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-weight:700;padding:20px 10px 8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.card{border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;background:#fff}
.card .ph{aspect-ratio:4/3;background:var(--washi);display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:13px}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .bd{padding:10px 12px 14px}
.card h3{font-family:var(--mincho);font-size:15px;line-height:1.5;font-weight:600}
.price{font-family:var(--mincho);font-weight:700;color:var(--shu);font-size:17px}
.price small{color:var(--sub);font-weight:400;font-size:11px;margin-left:2px}
.code{font-size:11px;color:var(--sub)}
.crumb{font-size:12px;color:var(--sub);padding:12px 0}
.catlead{font-family:var(--mincho);font-size:15px;background:var(--washi);padding:16px;border-radius:6px;margin-bottom:20px}
.pd{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:760px){.pd{grid-template-columns:1fr 1fr}}
.pd .ph{aspect-ratio:4/3;background:var(--washi);border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--sub)}
.pd .ph img{width:100%;height:100%;object-fit:cover}
.pd h1{font-family:var(--mincho);font-size:23px;line-height:1.5;font-weight:600}
.pd p,.info dd,main section>p,main section li{font-family:var(--mincho);font-size:15px}
.pd .price{font-size:23px;margin:8px 0}
.qty{display:flex;align-items:center;gap:8px;margin:16px 0}
.qty button{width:40px;height:40px;border:1px solid var(--line);background:#fff;font-size:20px;border-radius:4px;cursor:pointer}
.qty input{width:64px;height:40px;text-align:center;font-size:16px;border:1px solid var(--line);border-radius:4px}
.info{border:1px solid var(--line);border-radius:6px;padding:14px 16px;font-size:14px;margin-top:16px}
.info dt{font-weight:700;margin-top:6px}
.info dd{color:var(--sub)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;counter-reset:s}
.steps li{list-style:none;background:var(--washi);border-radius:6px;padding:14px;counter-increment:s}
.steps li::before{content:counter(s);display:inline-block;background:var(--shu);color:#fff;border-radius:50%;width:24px;height:24px;text-align:center;line-height:24px;margin-right:8px;font-weight:700}
form .f{margin-bottom:14px}
form .f small{display:block;color:var(--sub);font-size:12px;margin-top:4px}
form label{display:block;font-weight:700;font-size:14px;margin-bottom:4px}
form .req{color:var(--shu);font-size:11px;margin-left:4px}
form input,form select,form textarea{width:100%;font-size:16px;padding:10px;border:1px solid #cfc6b8;border-radius:4px;font-family:inherit;background:#fff}
.cartline{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}
.cartline .nm{flex:1;font-size:14px}
.cartline .q{display:flex;align-items:center;gap:4px}
.cartline .q button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:4px;font-size:16px;cursor:pointer}
.total{display:flex;justify-content:space-between;font-weight:700;font-size:18px;padding:12px 0}
.notice{background:#fff7f2;border:1px solid #f0c8b4;border-radius:6px;padding:12px;font-size:14px;margin:12px 0}
.err{background:#fdecec;border:1px solid #e9a3a3;color:#7f1a1f;border-radius:6px;padding:12px;font-size:14px;margin:12px 0}
footer.site{background:#1f1916;color:#e9e2d6;font-size:13px;margin-top:40px}
footer.site .wrap{padding-top:28px;padding-bottom:40px}
footer.site a{color:#e9e2d6}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
footer.site h4{font-size:14px;margin-bottom:6px}
footer.site ul{list-style:none}
footer.site .stodeli{margin-top:20px;font-size:11px;color:#b8ae9f}
.card .cl{text-decoration:none;color:inherit;display:flex;flex-direction:column;flex:1}
.card .add{padding:0 12px 12px}
.addbtn{width:100%;min-height:44px;border:2px solid var(--shu);background:#fff;color:var(--shu);border-radius:22px;font-weight:700;font-size:14px;cursor:pointer}
.addbtn:hover{background:var(--shu);color:#fff}
.stp{display:flex;align-items:center;justify-content:space-between;border:2px solid var(--shu);border-radius:22px;min-height:44px;overflow:hidden}
.stp button{width:44px;height:44px;border:0;background:var(--shu);color:#fff;font-size:20px;cursor:pointer;flex:0 0 44px}
.stp output{flex:1;text-align:center;font-weight:700;font-size:16px}
.btn.big{font-size:17px;padding:16px 20px;border-radius:28px}
.btn:focus-visible,.addbtn:focus-visible,.stp button:focus-visible,.chip input:focus-visible+span,a:focus-visible{outline:3px solid #1d6fd6;outline-offset:2px}
body.has-bar{padding-bottom:84px}
.cartbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#1f1916;color:#fff;box-shadow:0 -2px 10px rgba(0,0,0,.25)}
.cartbar a{display:flex;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:10px 16px;color:#fff;text-decoration:none;min-height:60px}
.cb-n{background:var(--shu);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 46px}
.cb-n b{font-size:17px}
.cb-sum{flex:1;display:flex;flex-direction:column;line-height:1.3}
.cb-sum b{font-size:18px}
.cb-sum small{font-size:12px;color:#e9d9c4}
.cb-go{background:var(--shu);padding:10px 14px;border-radius:22px;font-weight:700;font-size:14px;white-space:nowrap}
.cb-bar{height:4px;background:#4a3d36}.cb-bar i,.minbar i{display:block;height:100%;background:#e6b422;width:0;transition:width .3s}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:40;background:#2A211E;color:#fff;border-radius:24px;padding:10px 16px;font-size:14px;display:none;align-items:center;gap:12px;max-width:calc(100% - 32px)}
.toast.on{display:flex}
.toast button{background:none;border:1px solid #fff;color:#fff;border-radius:16px;padding:4px 12px;font-size:13px;cursor:pointer;min-height:32px}
.cartmain{max-width:720px;margin:0 auto;padding-bottom:24px}
.stepper{display:flex;list-style:none;gap:4px;margin:16px 0 8px;font-size:12px}
.stepper li{flex:1;text-align:center;color:var(--sub);border-bottom:4px solid var(--line);padding-bottom:6px}
.stepper li b{display:block;margin:0 auto 2px;width:24px;height:24px;line-height:24px;border-radius:50%;background:var(--line);color:#fff}
.stepper li.done{color:var(--ink);border-color:#c98b78}.stepper li.done b{background:#c98b78}
.stepper li[aria-current="step"]{color:var(--shu);font-weight:700;border-color:var(--shu)}.stepper li[aria-current="step"] b{background:var(--shu)}
.sh{font-family:var(--mincho);font-size:21px;font-weight:600;margin:12px 0}
.sh:focus{outline:none}
.nav{display:flex;gap:10px;margin-top:20px}
.nav .btn{flex:1;text-align:center;min-height:48px}
.cartline{display:grid;grid-template-columns:72px 1fr;gap:6px 12px;border-bottom:1px solid var(--line);padding:12px 0}
.cartline .th{width:72px;height:54px;border-radius:4px;background:var(--washi);object-fit:cover;grid-row:span 2}
.cartline .th.no{display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--sub)}
.cartline .nm{font-family:var(--mincho);font-size:15px;font-weight:600;line-height:1.4}
.cartline .nm small{display:block;font-family:Meiryo,sans-serif;font-weight:400;font-size:12px;color:var(--sub)}
.cartline .row{display:flex;align-items:center;gap:10px;justify-content:space-between}
.cartline .stp{width:140px}
.cartline .ls{font-weight:700;font-size:16px}
.cartline .del{background:none;border:0;color:var(--sub);text-decoration:underline;font-size:13px;cursor:pointer;min-height:32px}
.free{text-align:right;font-size:13px;color:var(--sub)}.free b{color:#2d7a2d}
.minbar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin:8px 0}
.okmsg{color:#2d7a2d;font-weight:700;font-size:14px;text-align:center}
fieldset.f{border:0;padding:0;margin:0 0 16px}
fieldset.f legend{font-weight:700;font-size:14px;margin-bottom:6px}
label.sub{font-weight:400;font-size:13px;color:var(--sub);margin-top:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;margin:0}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:72px;min-height:44px;padding:6px 12px;border:1px solid #cfc6b8;border-radius:8px;background:#fff;font-size:14px;cursor:pointer;line-height:1.3}
.chip span small{font-size:11px;color:var(--sub)}
.chip input:checked+span{border:2px solid var(--shu);background:#fff3ee;color:var(--shu);font-weight:700}
.ferr{color:#b3261e;font-size:13px;margin-top:4px;font-weight:700}
.ferr:empty{display:none}
[aria-invalid="true"]{border-color:#b3261e!important;background:#fff8f8!important}
.review dl{display:grid;grid-template-columns:7em 1fr;gap:6px 10px;font-size:14px;border:1px solid var(--line);border-radius:6px;padding:12px;margin:12px 0}
.review dt{color:var(--sub)}
.review .edit{font-size:13px;background:none;border:0;color:var(--shu);text-decoration:underline;cursor:pointer}
@media(max-width:380px){.cb-go{display:none}}
.rvs{padding-top:28px}
.rv-src{background:var(--washi);border:1px solid var(--line);border-radius:6px;padding:12px 14px;font-size:13px;color:var(--sub);line-height:1.7}
.rv-src p+p{margin-top:4px}
.rv-src p:nth-child(2){word-break:break-all}
.rvl{list-style:none;margin-top:12px}
.rv{border-bottom:1px solid var(--line);padding:14px 2px}
.rv-h{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
.rv-st{color:#c9881b;font-size:17px;letter-spacing:1px}
.rv-off{color:#ddd3c8}
.rv-d{font-size:12px;color:var(--sub)}
.rv-b{font-family:var(--mincho);font-size:15px;line-height:1.85;margin-top:6px;white-space:pre-line;overflow-wrap:anywhere}
.rv-note{font-size:12px;color:var(--sub);margin-top:6px;background:#f6f1ea;border-radius:4px;padding:6px 8px}
.rel{padding-top:28px}
.rel-more{margin-top:12px;font-size:14px}
.hidden{display:none!important}
