@charset "UTF-8";
:root { --ink:#2d2926; --brown:#654823; --paper:#fffdf9; --line:#ddd2c3; --muted:#6c6258; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f6f3ee; font:16px/1.75 "メイリオ", Meiryo, sans-serif; }
.shop-page { max-width:980px; min-height:100vh; margin:0 auto; padding:28px 28px 48px; background:var(--paper); box-shadow:0 0 20px rgba(55,38,18,.08); }
.shop-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:26px; padding-bottom:18px; border-bottom:4px solid var(--brown); }
.shop-logo { color:var(--ink); font-size:22px; font-weight:bold; letter-spacing:.08em; text-decoration:none; }
.shop-cart-link { display:inline-block; padding:8px 14px; color:#fff; background:#111; text-decoration:none; font-size:14px; }
h1 { margin:0 0 18px; font-size:30px; line-height:1.35; letter-spacing:.04em; }
h2 { margin:32px 0 14px; padding:7px 14px; color:#fff; background:#111; border-bottom:3px solid var(--brown); font-size:18px; }
h3 { margin:26px 0 12px; padding:5px 12px; border:1px solid var(--line); border-bottom:3px solid var(--brown); font-size:17px; }
p { margin:0 0 16px; }
a { color:var(--brown); } a:hover { color:#111; }
.notice { padding:13px 16px; background:#f3eee6; border-left:4px solid var(--brown); }
.cart-table { width:100%; margin:18px 0; border-collapse:collapse; background:#fff; }
.cart-table th { padding:9px; background:#f2ede6; white-space:nowrap; }
.cart-table td, .cart-table th { border:1px solid var(--line); text-align:left; }
.cart-table td { padding:9px; }
.cart-table td:nth-child(n+2), .cart-table th:nth-child(n+2) { text-align:right; }
.cart-total { font-size:20px; font-weight:bold; text-align:right; }
label { display:block; font-weight:bold; }
input, textarea, select { max-width:100%; padding:8px 10px; border:1px solid #b8ad9d; border-radius:2px; font:inherit; background:#fff; }
textarea { width:100%; min-height:110px; resize:vertical; }
input[type="number"] { width:78px; }
button, .button { display:inline-block; margin:4px 6px 4px 0; padding:10px 16px; border:0; background:var(--brown); color:#fff; font:inherit; cursor:pointer; text-decoration:none; }
button:hover, .button:hover { background:#111; color:#fff; }
button.secondary { background:#6c6258; }
.form-row { margin:0 0 18px; }
.form-row > label { margin-bottom:6px; }
.form-help { color:var(--muted); font-size:14px; }
.actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.actions button { margin:0; }
.empty-cart { padding:26px; background:#f3eee6; text-align:center; }
.complete { max-width:620px; margin:44px auto; padding:34px; background:#f3eee6; border-top:5px solid var(--brown); text-align:center; }
.complete h1 { margin-bottom:14px; }
.login-panel { max-width:460px; margin:72px auto; padding:30px; background:#f3eee6; border-top:5px solid var(--brown); }
.admin-table { width:100%; border-collapse:collapse; background:#fff; font-size:14px; }
.admin-table th, .admin-table td { padding:9px; border:1px solid var(--line); vertical-align:top; }
.admin-table th { background:#f2ede6; white-space:nowrap; }
.admin-table a { font-weight:bold; }
.settings-panel { padding:18px; background:#f3eee6; }
.settings-panel h3 { margin-top:22px; }
@media (max-width:680px) { .shop-page { padding:18px 14px 36px; } .shop-header { align-items:flex-start; flex-direction:column; } h1 { font-size:25px; } .cart-table { font-size:14px; } .cart-table th, .cart-table td { padding:6px 4px; } .cart-table td:first-child { max-width:150px; } }
