:root{
  --bg:#faf6ef; --ink:#2b2b2b; --muted:#6b6257; --gold:#b3985f; --gold-d:#8a743f;
  --line:#e4dccd; --card:#ffffff; --danger:#b3261e; --ok:#1e7a4c;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif;color:var(--ink);background:var(--bg);line-height:1.7}
a{color:var(--gold-d)}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
header.site{border-bottom:1px solid var(--line);background:rgba(250,246,239,.92);position:sticky;top:0;backdrop-filter:blur(6px);z-index:10}
header.site .bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.brand{font-weight:700;letter-spacing:.04em;text-decoration:none;color:var(--ink)}
.brand small{display:block;font-size:10px;letter-spacing:.18em;color:var(--muted);font-weight:400}
.navlinks a{margin-left:16px;font-size:.9rem;text-decoration:none;color:var(--ink)}
main{padding:32px 0 60px}
h1{font-size:1.5rem;margin:0 0 18px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}
.card h3{margin:0;font-size:1rem}
.price{font-weight:700;color:var(--gold-d)}
.btn{display:inline-block;background:var(--gold);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:.95rem;cursor:pointer;text-decoration:none;text-align:center}
.btn:hover{background:var(--gold-d)}
.btn.secondary{background:transparent;color:var(--gold-d);border:1px solid var(--gold)}
.btn:disabled{opacity:.5;cursor:not-allowed}
table{border-collapse:collapse;width:100%;background:var(--card);font-size:.92rem}
th,td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
th{background:#f3ede1}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.muted{color:var(--muted);font-size:.88rem}
.field{margin-bottom:14px}
.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}
.field input{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font-size:.95rem}
#card-container{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;margin-bottom:14px}
.msg{padding:10px 14px;border-radius:8px;font-size:.9rem;margin:12px 0}
.msg.err{background:#fdecea;color:var(--danger);border:1px solid #f5c2be}
.msg.ok{background:#eaf6ef;color:var(--ok);border:1px solid #bfe3cd}
.note{font-size:.82rem;color:var(--muted)}
footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:.85rem;text-align:center}
