body { background:#f6dc9f; color:#1a1207; }
.market_main { min-height:100vh; padding-bottom:70px; --accent:#8b6914; --accent-soft:rgba(139,105,20,.15); }
.market_main.cafe_theme { --accent:#2f7d55; --accent-soft:rgba(47,125,85,.16); }
.market_main.goods_theme { --accent:#7c4bb0; --accent-soft:rgba(124,75,176,.16); }
.market_hero { padding:130px 24px 54px; text-align:center; background:radial-gradient(circle at 50% 0,var(--accent-soft),transparent 42%),linear-gradient(180deg,#dab584,#f6dc9f); }
.market_label { font-family:"Noto Sans JP",sans-serif; font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:rgba(26,18,7,.45); margin-bottom:12px; }
.market_hero h1 { font-family:"Zen Old Mincho",serif; font-size:clamp(30px,6vw,54px); font-weight:900; letter-spacing:.08em; }
.market_hero p:last-child { max-width:720px; margin:14px auto 0; font-family:"Shippori Mincho",serif; line-height:1.9; color:rgba(26,18,7,.68); }
.market_controls { position:sticky; top:80px; z-index:90; max-width:1120px; margin:0 auto; padding:16px 20px; background:rgba(246,220,159,.92); backdrop-filter:blur(16px); display:flex; flex-wrap:wrap; align-items:center; gap:10px; border-bottom:1px solid rgba(26,18,7,.08); }
.market_search_wrap { flex:1 1 260px; }
.market_search { width:100%; padding:12px 15px; border:1.5px solid rgba(26,18,7,.12); border-radius:14px; background:rgba(255,255,255,.72); font-family:"Noto Sans JP",sans-serif; outline:none; }
.market_search:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.market_filter_row { display:flex; flex-wrap:wrap; gap:7px; }
.market_chip { border:1px solid rgba(26,18,7,.12); border-radius:999px; padding:8px 12px; background:rgba(255,255,255,.48); color:rgba(26,18,7,.7); font-family:"Noto Sans JP",sans-serif; font-size:12px; cursor:pointer; transition:.2s ease; }
.market_chip:hover { background:rgba(255,255,255,.82); }
.market_chip.active { background:var(--accent); border-color:var(--accent); color:#fff; }
.market_count { margin-left:auto; font-family:"Noto Sans JP",sans-serif; font-size:12px; color:rgba(26,18,7,.45); }
.market_grid { max-width:1120px; margin:24px auto 0; padding:0 20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.market_card { border-radius:22px; overflow:hidden; background:rgba(255,255,255,.72); border:1px solid rgba(26,18,7,.08); box-shadow:0 12px 30px rgba(26,18,7,.08); cursor:pointer; transform:translateY(16px); opacity:0; animation:marketIn .45s ease forwards; transition:transform .25s ease, box-shadow .25s ease; }
.market_card:hover, .market_card:focus { transform:translateY(-5px); box-shadow:0 18px 40px rgba(26,18,7,.14); outline:2px solid var(--accent); outline-offset:3px; }
@keyframes marketIn { to { transform:translateY(0); opacity:1; } }
.market_img_wrap { position:relative; padding-top:62%; background:linear-gradient(135deg,var(--accent-soft),#dab584); overflow:hidden; }
.market_img_wrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.market_card:hover img { transform:scale(1.05); }
.market_card_body { padding:17px; display:flex; min-height:220px; flex-direction:column; gap:10px; }
.market_card_top { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.market_category, .market_stock { font-family:"Noto Sans JP",sans-serif; font-size:11px; }
.market_category { padding:4px 9px; border-radius:999px; color:#fff; background:var(--accent); }
.market_stock { color:rgba(26,18,7,.45); }
.market_card h2 { font-family:"Zen Old Mincho",serif; font-size:19px; font-weight:900; line-height:1.45; }
.market_card p { font-family:"Shippori Mincho",serif; color:rgba(26,18,7,.68); line-height:1.75; font-size:13px; flex:1; }
.market_meta { display:flex; justify-content:space-between; gap:10px; align-items:flex-end; border-top:1px solid rgba(26,18,7,.08); padding-top:10px; }
.market_meta strong { color:var(--accent); font-family:"Noto Sans JP",sans-serif; font-size:18px; }
.market_meta span { font-family:"Noto Sans JP",sans-serif; font-size:11px; color:rgba(26,18,7,.5); text-align:right; }
.market_pay { align-self:flex-start; padding:4px 9px; border-radius:8px; font-family:"Noto Sans JP",sans-serif; font-size:11px; }
.market_pay.ok { background:rgba(47,125,85,.12); color:#2f7d55; }.market_pay.cash { background:rgba(90,65,38,.12); color:#6d4d2e; }
.market_empty { grid-column:1/-1; padding:50px; text-align:center; font-family:"Noto Sans JP",sans-serif; color:rgba(26,18,7,.55); }
.market_modal_overlay { position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.5); backdrop-filter:blur(5px); opacity:0; pointer-events:none; transition:.25s ease; }
.market_modal_overlay.active { opacity:1; pointer-events:auto; }
.market_modal { width:min(620px,100%); max-height:90dvh; overflow:auto; border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.25); position:relative; transform:translateY(18px) scale(.98); transition:.25s ease; }
.market_modal_overlay.active .market_modal { transform:translateY(0) scale(1); }
.market_modal_close { position:absolute; right:12px; top:12px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.9); font-size:24px; cursor:pointer; z-index:2; }
.market_modal_img { width:100%; aspect-ratio:16/9; object-fit:cover; background:#dab584; }
.market_modal_body { padding:24px; }
.market_modal_category { display:inline-block; padding:4px 10px; border-radius:999px; background:var(--accent); color:#fff; font-family:"Noto Sans JP",sans-serif; font-size:12px; margin-bottom:12px; }
.market_modal h2 { font-family:"Zen Old Mincho",serif; font-size:28px; margin-bottom:10px; }
.market_modal_body > p:not(.market_modal_category) { font-family:"Shippori Mincho",serif; line-height:1.9; color:rgba(26,18,7,.72); }
.market_modal_info { margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.market_modal_info div { padding:12px; border-radius:14px; background:rgba(246,220,159,.45); }
.market_modal_info dt { font-family:"Noto Sans JP",sans-serif; font-size:11px; color:rgba(26,18,7,.45); margin-bottom:4px; }.market_modal_info dd { font-family:"Noto Sans JP",sans-serif; font-weight:700; }
body.market_modal_open { overflow:hidden; }
@media (max-width:1023px) { .market_grid{grid-template-columns:repeat(2,minmax(0,1fr))}.market_controls{align-items:flex-start}.market_count{margin-left:0} }
@media (max-width:640px) { .market_hero{padding:105px 18px 38px}.market_controls{position:static;padding:14px 16px}.market_grid{grid-template-columns:1fr;padding:0 16px}.market_card_body{min-height:auto}.market_modal_info{grid-template-columns:1fr}.market_modal{max-height:86dvh} }
