:root{
  --bg:#fffaf0; --ink:#29324f; --ink-soft:#5b6280; --red:#e8412a; --orange:#f5933b;
  --yellow:#f9c13c; --blue:#4fa3d8; --green:#74a84a; --pink:#f4a8b8; --card:#fff;
  --line:3px; --shadow:6px 6px 0 var(--ink); --shadow-sm:4px 4px 0 var(--ink); --radius:18px;
  --font:'Hiragino Maru Gothic ProN','Hiragino Maru Gothic Pro','Rounded Mplus 1c','Yu Gothic','Meiryo',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.8;
  -webkit-font-smoothing:antialiased;font-feature-settings:"palt";word-break:auto-phrase}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* ===== ヘッダ ===== */
.shop-head{position:sticky;top:0;z-index:50;background:rgba(255,250,240,.94);
  backdrop-filter:blur(6px);border-bottom:var(--line) solid var(--ink)}
.shop-head .wrap{display:flex;align-items:center;justify-content:space-between;height:62px}
.h-back{font-weight:900;font-size:.9rem}.h-back span{color:var(--red)}
.h-title{font-weight:900;letter-spacing:.14em;font-size:.9rem;
  position:absolute;left:50%;transform:translateX(-50%)}
.cart-btn{position:relative;font-weight:900;font-size:.9rem;background:var(--yellow);
  border:var(--line) solid var(--ink);border-radius:999px;padding:8px 16px;box-shadow:var(--shadow-sm)}
.cart-btn .badge{position:absolute;top:-8px;right:-8px;background:var(--red);color:#fff;
  min-width:22px;height:22px;border-radius:999px;border:2.5px solid var(--ink);
  font-size:.72rem;display:grid;place-items:center;padding:0 5px}
/* スマホ：中央タイトルは戻るリンク／カートと重なるので隠す */
@media(max-width:620px){
  .h-title{display:none}
  .shop-head .wrap{height:56px}
  .h-back{font-size:.86rem}
  .cart-btn{font-size:.84rem;padding:7px 13px}
}

/* ===== 送料無料バナー ===== */
.freeship{background:var(--green);color:#fff;border-bottom:var(--line) solid var(--ink)}
.freeship .wrap{padding:12px 20px;text-align:center;font-weight:900;font-size:.98rem;
  display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
.freeship .big{background:var(--yellow);color:var(--ink);border:2.5px solid var(--ink);
  border-radius:999px;padding:3px 12px;font-size:.92rem;transform:rotate(-1.5deg)}
.freeship small{font-weight:700;opacity:.92}

/* ===== ページ見出し ===== */
main{padding:34px 0 80px}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-h h1{font-size:clamp(1.6rem,5vw,2.2rem);font-weight:900;
  background:linear-gradient(transparent 66%,var(--yellow) 66%);padding:0 .1em;display:inline-block}
.page-h .cnt{color:var(--ink-soft);font-weight:800;font-size:.86rem}

/* ===== カテゴリ絞り込み ===== */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.chip{border:var(--line) solid var(--ink);background:var(--card);border-radius:999px;
  padding:9px 20px;font-weight:900;font-size:.9rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:.12s}
.chip.on{background:var(--red);color:#fff;transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}

/* ===== 商品グリッド ===== */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(min-width:640px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:920px){.grid{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--card);border:var(--line) solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);overflow:hidden;transition:.14s;display:block}
.card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.thumb{position:relative;aspect-ratio:1/1;overflow:hidden;border-bottom:var(--line) solid var(--ink)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb .tag{position:absolute;top:10px;left:10px;background:var(--ink);color:#fff;
  font-size:.68rem;font-weight:900;padding:3px 10px;border-radius:999px}
.info{padding:14px 14px 16px}
.info .nm{font-weight:900;font-size:.92rem;line-height:1.4;min-height:2.5em}
.info .pr{margin-top:8px;font-weight:900;font-size:1.05rem;color:var(--red)}

/* 画像プレースホルダ */
.ph{width:100%;height:100%;display:grid;place-items:center;gap:8px;
  background:
    repeating-linear-gradient(45deg, color-mix(in srgb, var(--phc) 14%, #fff) 0 12px, #fff 12px 24px);
  border:0}
.ph-emoji{font-size:2.6rem;line-height:1}
.ph-cap{font-size:.68rem;font-weight:900;color:var(--ink-soft);letter-spacing:.06em;
  background:#fff;border:2px solid var(--ink);border-radius:999px;padding:2px 10px}
.kari{font-size:.72em;color:var(--red);font-weight:900;vertical-align:top}

/* ===== 個別ページ ===== */
.crumb{font-size:.82rem;font-weight:700;color:var(--ink-soft);margin-bottom:20px}
.crumb a{color:var(--blue);font-weight:800}.crumb span{margin:0 6px}
.pdetail{display:grid;gap:32px}
@media(min-width:860px){.pdetail{grid-template-columns:1fr 1fr;gap:44px;align-items:start}}
.pmain{position:relative;aspect-ratio:1/1;border:var(--line) solid var(--ink);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow)}
.pmain img{width:100%;height:100%;object-fit:cover}
.pthumbs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.pthumb{aspect-ratio:1/1;border:var(--line) solid var(--ink);border-radius:14px;overflow:hidden;
  padding:0;background:#fff;cursor:pointer;transition:.12s}
.pthumb img{width:100%;height:100%;object-fit:cover}
.pthumb.on{box-shadow:0 0 0 3px var(--yellow) inset,var(--shadow-sm)}
.pthumb:hover{transform:translateY(-2px)}
/* ホバー虫眼鏡 */
.loupe{position:absolute;display:none;width:400px;height:400px;border-radius:50%;
  border:3px solid var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.35);pointer-events:none;
  background-repeat:no-repeat;background-color:#000;z-index:5}
@media(max-width:820px){.loupe{display:none!important}} /* タッチ端末では無効 */
.pmain.has-img::after{content:"🔍 クリックで拡大";position:absolute;left:10px;bottom:10px;
  background:rgba(41,50,79,.82);color:#fff;font-size:.7rem;font-weight:900;padding:4px 10px;
  border-radius:999px;pointer-events:none;opacity:.9}
/* ライトボックス */
#lightbox{position:fixed;inset:0;background:rgba(15,18,30,.92);display:none;place-items:center;
  z-index:1000;padding:24px;cursor:zoom-out}
#lightbox.show{display:grid}
#lightbox img{max-width:92vw;max-height:88vh;border-radius:10px;border:3px solid #fff;background:#000}
#lightbox .lb-close{position:absolute;top:18px;right:22px;width:46px;height:46px;border-radius:50%;
  border:0;background:#fff;color:var(--ink);font-size:1.7rem;font-weight:900;cursor:pointer;line-height:1;box-shadow:var(--shadow-sm)}
.pcat{display:inline-block;background:var(--ink);color:#fff;font-size:.72rem;font-weight:900;
  padding:4px 12px;border-radius:999px}
.ptitle{font-size:clamp(1.4rem,4.4vw,1.9rem);font-weight:900;margin:12px 0 10px;line-height:1.35}
.pprice{font-size:1.7rem;font-weight:900;color:var(--red)}
.pprice .taxnote{font-size:.72rem;color:var(--ink-soft);font-weight:800;margin-left:8px}
.fld{display:flex;align-items:center;gap:14px;margin-top:20px}
.fld span{font-weight:900;font-size:.9rem;min-width:52px}
.fld select{flex:1;max-width:220px;border:var(--line) solid var(--ink);border-radius:12px;
  padding:11px 14px;font-family:inherit;font-weight:800;font-size:1rem;background:#fff;box-shadow:var(--shadow-sm)}
.addbtn{width:100%;margin-top:26px;background:var(--red);color:#fff;font-weight:900;font-size:1.1rem;
  border:var(--line) solid var(--ink);border-radius:999px;padding:16px;cursor:pointer;
  box-shadow:var(--shadow);transition:.14s}
.addbtn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.ship-note{margin-top:16px;background:#eef7e6;border:2px dashed var(--green);border-radius:12px;
  padding:12px 14px;font-size:.88rem;font-weight:700;color:#3f6b26}
.pdesc{margin-top:30px;border-top:2px dashed #e7e1d2;padding-top:24px}
.pdesc h3{font-size:1.1rem;font-weight:900;margin-bottom:10px}
.pdesc p{font-weight:600;color:var(--ink-soft)}
.spec{margin-top:16px;border:1px solid #e7e1d2;border-radius:12px;overflow:hidden}
.spec dt{background:#faf6ec;font-weight:900;font-size:.82rem;padding:10px 14px}
.spec dd{padding:12px 14px;font-weight:600;font-size:.92rem}
.kari-note{margin-top:14px;font-size:.8rem;color:var(--ink-soft);font-weight:700}
.kari-note.center{text-align:center;margin-top:26px}

/* ===== カート ===== */
.cart-grid{display:grid;gap:26px}
@media(min-width:860px){.cart-grid{grid-template-columns:1fr 360px;align-items:start}}
.clist{display:grid;gap:14px}
.citem{display:grid;grid-template-columns:88px 1fr auto;gap:14px;align-items:center;
  background:var(--card);border:var(--line) solid var(--ink);border-radius:16px;padding:12px;box-shadow:var(--shadow-sm)}
.cthumb{width:88px;height:88px;border-radius:10px;overflow:hidden;border:2px solid var(--ink)}
.cthumb img{width:100%;height:100%;object-fit:cover}
.cthumb .ph{gap:2px}.cthumb .ph-emoji{font-size:1.7rem}.cthumb .ph-cap{display:none}
.cnm{font-weight:900;font-size:.92rem}
.cvar{font-size:.8rem;color:var(--ink-soft);font-weight:700;margin-top:2px}
.cpr{font-weight:900;color:var(--red);margin-top:4px}
.cqty{display:flex;align-items:center;gap:8px}
.qbtn{width:32px;height:32px;border:2.5px solid var(--ink);background:#fff;border-radius:9px;
  font-weight:900;font-size:1.1rem;cursor:pointer;line-height:1}
.cqty span{font-weight:900;min-width:20px;text-align:center}
.rm{margin-left:6px;background:none;border:0;color:var(--ink-soft);font-weight:800;font-size:.8rem;cursor:pointer;text-decoration:underline}
.csum{background:var(--card);border:var(--line) solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px}
.ship-bar{background:#eef7e6;border:2px solid var(--green);border-radius:12px;padding:14px;text-align:center;font-size:.92rem}
.ship-bar b{color:#3f6b26}
.ship-bar .bar{height:10px;background:#d7e8c8;border-radius:999px;margin:10px 0 8px;overflow:hidden;border:2px solid #bcd3a6}
.ship-bar .bar span{display:block;height:100%;background:var(--green)}
.ship-bar small{color:#4d7a33;font-weight:700}
.coupon{margin-top:20px}
.coupon label{font-weight:900;font-size:.86rem}
.crow{display:flex;gap:8px;margin-top:8px}
.crow input{flex:1;border:2.5px solid var(--ink);border-radius:10px;padding:10px 12px;font-family:inherit;font-weight:800;font-size:.95rem}
.crow button{background:var(--ink);color:#fff;border:0;border-radius:10px;padding:0 18px;font-weight:900;cursor:pointer}
.cmsg{margin-top:8px;font-size:.82rem;font-weight:800;color:var(--green)}
.cmsg .err{color:var(--red)}.cmsg a{color:var(--blue);text-decoration:underline}
.totals{margin-top:20px;border-top:2px dashed #e7e1d2;padding-top:16px}
.totals>div{display:flex;justify-content:space-between;padding:6px 0;font-weight:800}
.totals dt{color:var(--ink-soft)}.totals .disc dd{color:var(--red)}
.totals .free{color:var(--green)}
.totals .grand{border-top:2px solid var(--ink);margin-top:8px;padding-top:12px;font-size:1.25rem}
.totals .grand dd{color:var(--red)}
.checkout{display:block;margin-top:20px;background:var(--red);color:#fff;text-align:center;font-weight:900;
  font-size:1.05rem;padding:15px;border:var(--line) solid var(--ink);border-radius:999px;box-shadow:var(--shadow-sm);transition:.14s}
.checkout:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.basenote{margin-top:12px;font-size:.76rem;color:var(--ink-soft);font-weight:700;text-align:center}
.backshop{display:block;margin-top:16px;text-align:center;font-weight:800;color:var(--blue);text-decoration:underline}
.empty{text-align:center;padding:70px 0}.e-emoji{font-size:3rem}.empty p{font-weight:800;margin:14px 0 20px}

/* ===== 購入手続き（チェックアウト） ===== */
.cocol{background:var(--card);border:var(--line) solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.cocol h3{font-size:1.05rem;font-weight:900;margin:0 0 14px}
.co-fld{margin-bottom:14px}
.co-fld label{display:block;font-weight:900;font-size:.84rem;margin-bottom:6px}
.co-fld input{width:100%;border:2.5px solid var(--ink);border-radius:10px;padding:11px 13px;font-family:inherit;font-weight:700;font-size:.95rem;background:#fff}
.co-two{display:grid;gap:12px}@media(min-width:520px){.co-two{grid-template-columns:1fr 1fr}}
.pay{display:grid;gap:10px}
.pay label{display:flex;gap:10px;align-items:center;border:2.5px solid var(--ink);border-radius:10px;padding:11px 13px;font-weight:800;cursor:pointer}
.pay .soon{margin-left:auto;font-size:.7rem;font-weight:900;color:var(--ink-soft);background:#f3efe3;border:2px solid var(--ink);border-radius:999px;padding:1px 9px}
.co-items{margin-bottom:6px}
.co-item{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed #e7e1d2;font-weight:800;font-size:.86rem}
.co-item .q{color:var(--ink-soft);font-weight:700}
.co-done{text-align:center;background:#eef7e6;border:var(--line) solid var(--green);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:44px 24px}
.co-done h3{font-size:1.4rem;font-weight:900;color:#3f6b26;margin:8px 0 12px}
.co-done p{font-weight:700;color:var(--ink-soft);max-width:460px;margin:0 auto 20px}

/* ===== トースト ===== */
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;font-weight:800;font-size:.9rem;padding:14px 20px;border-radius:14px;
  box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;z-index:100;max-width:92vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
#toast a{color:var(--yellow);font-weight:900;margin-left:10px;white-space:nowrap}

/* ===== フッタ ===== */
.shop-foot{background:var(--ink);color:#fff;text-align:center;padding:34px 0;border-top:6px solid var(--yellow);margin-top:40px}
.shop-foot .fl{font-weight:900;color:var(--yellow);letter-spacing:.06em}
.shop-foot small{display:block;margin-top:12px;color:#b5ab97;font-size:.76rem;line-height:1.9}
.shop-foot a{color:#fff;text-decoration:underline;margin:0 8px;font-size:.8rem;font-weight:700}

/* ===== 配送・お支払いのご案内（2026-07 追加） ===== */
.delivbar{background:var(--blue);color:#fff;border-bottom:var(--line) solid var(--ink)}
.delivbar .wrap{padding:11px 20px;text-align:center;font-weight:900;font-size:.95rem;
  display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center}
.delivbar .big{background:#fff;color:var(--ink);border:2.5px solid var(--ink);
  border-radius:999px;padding:3px 14px;font-size:.92rem}
.delivbar small{font-weight:700;opacity:.95}
.pdeliv{margin-top:10px;background:#eaf4fb;border:2px dashed var(--blue);border-radius:12px;
  padding:10px 14px;font-size:.85rem;font-weight:800;color:#2a5f8f;line-height:1.7}
.pdeliv b{color:var(--red)}

/* ===== 先行予約販売のご案内（2026-07 追加） ===== */
.presale{background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:20px 24px;margin:6px 0 28px}
.presale .ph1{font-size:1.08rem;font-weight:900;color:var(--ink)}
.presale .ph1 b{color:var(--red);background:linear-gradient(transparent 66%,var(--yellow) 66%);padding:0 .1em}
.presale p{font-size:.88rem;font-weight:700;color:var(--ink);margin-top:8px;line-height:1.8}
.presale .warn{color:var(--red);font-weight:800}
.presale small{display:block;margin-top:8px;font-size:.78rem;font-weight:700;color:var(--ink-soft)}

/* ===== 先行販売価格／会場販売価格の2段表示（2026-07 追加） ===== */
.pnow{color:var(--red);font-weight:900}
.pwas{color:var(--ink-soft);font-weight:700;font-size:.8em;white-space:nowrap}
.plabel{display:inline-block;background:var(--red);color:#fff;font-size:.72rem;font-weight:900;
  letter-spacing:.04em;border-radius:999px;padding:3px 14px;margin-bottom:4px}
.pwas-lg{color:var(--ink-soft);font-weight:700;font-size:.98rem;margin-top:2px}
.savebadge{display:inline-block;background:var(--yellow);border:2.5px solid var(--ink);border-radius:999px;
  box-shadow:3px 3px 0 var(--ink);font-weight:900;font-size:.92rem;padding:6px 18px;margin:12px 0 4px;transform:rotate(-1deg)}
.save-bar{background:#fff6e0;border:2px dashed var(--orange);border-radius:12px;
  padding:10px 14px;font-weight:800;font-size:.9rem;color:#8a5a12;margin-bottom:14px}
.save-bar small{display:block;font-weight:700;font-size:.78rem;color:var(--ink-soft);margin-top:2px}
.totals .vsub{color:var(--ink-soft);font-weight:700;font-size:.88em;margin-right:4px}

/* ===== 商品仕様の複数行表示（2026-07 追加） ===== */
.pdesc .spec dd.specbody{white-space:pre-line;line-height:1.9}

/* ===== Tシャツ サイズチャート（罫線テーブル・2026-07 追加） ===== */
.sizechart-wrap h3{font-size:1rem;font-weight:900;margin-bottom:8px}
.sizechart{border-collapse:collapse;width:100%;max-width:440px;font-size:.92rem;background:#fff}
.sizechart th,.sizechart td{border:1px solid #e0d9c6;padding:9px 12px;text-align:center;font-weight:700}
.sizechart thead th{background:#f6f0df;font-weight:900}
.sizechart tbody th{background:#faf6ec;font-weight:900}
.sizechart-note{max-width:440px;text-align:right;font-size:.76rem;color:var(--ink-soft);font-weight:700;margin-top:6px}

/* ===== SOLD OUT シール（在庫0商品・2026-07 追加） ===== */
.thumb{position:relative}
.thumb.is-soldout img,.thumb.is-soldout .ph{opacity:.45;filter:grayscale(1)}
.pmain.is-soldout img,.pmain.is-soldout .ph{opacity:.45;filter:grayscale(1)}
.soldout-sticker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-9deg);
  background:var(--red,#e8412a);color:#fff;font-weight:900;font-size:.92rem;letter-spacing:.06em;line-height:1.05;
  padding:8px 18px;border-radius:7px;border:2.5px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.35);
  white-space:nowrap;pointer-events:none;z-index:3;text-align:center}
.soldout-sticker small{display:block;font-size:.68rem;letter-spacing:.18em;margin-top:1px}
