*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Sans","Noto Sans JP",sans-serif;background-color:#fff8e8;background-image:linear-gradient(180deg,#fff8e8 0%,#f6faea 55%,#eaf6ef 100%);background-attachment:fixed;min-height:100vh;color:#3b3228;line-height:1.6}
header.site{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 20px;background:#2f7d32;color:#fff}
header.site a{color:#fff;text-decoration:none;margin-right:14px}
.brand{font-weight:bold;font-size:1.2rem}
main{max-width:860px;margin:0 auto;padding:20px}
h1{font-size:1.5rem}
.items{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.item,.card,fieldset{background:#fff;border:1px solid #dde5d6;border-radius:12px;padding:16px}
.item{text-align:center}
.item img{width:100%;max-height:220px;object-fit:cover;border-radius:8px}
.price{font-size:1.2rem;font-weight:bold;margin:4px 0}
.stock{color:#667;margin:0 0 8px}
.qty{display:flex;justify-content:center;gap:8px}
.qty input{width:80px;text-align:center;font-size:1.1rem}
.qty button{width:44px;font-size:1.3rem}
.total{text-align:right;font-size:1.2rem}
fieldset{margin:16px 0}
label{display:block;margin:10px 0;font-size:.95rem}
input,textarea,select{width:100%;padding:9px;border:1px solid #bcc7b4;border-radius:6px;font-size:1rem;font-family:inherit}
label.check{display:flex;align-items:center;gap:8px}
label.check input{width:auto}
button{padding:8px 14px;border:1px solid #bcc7b4;border-radius:6px;background:#fff;font-size:1rem;cursor:pointer}
button:disabled{opacity:.4;cursor:not-allowed}
button.primary{background:#2f7d32;color:#fff;border:0;padding:12px 28px;font-size:1.1rem}
button.link{background:none;border:0;color:#fff;text-decoration:underline;padding:0}
form.inline{display:inline}
.req{background:#c62828;color:#fff;font-size:.7rem;padding:1px 6px;border-radius:4px;margin-left:4px}
.alert{padding:10px 14px;border-radius:8px;margin:12px 0}
.alert.error{background:#fdecea;color:#8a1c1c}
.alert.ok{background:#e6f4e7;color:#1b5e20}
.alert ul{margin:0;padding-left:20px}
.narrow{max-width:360px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters input,.filters select{width:auto;flex:1;min-width:140px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border:1px solid #dde5d6;padding:8px;text-align:left;white-space:nowrap}
th{background:#eef4ea}
.badge{padding:2px 8px;border-radius:10px;background:#eceff1;font-size:.85rem}
.badge.ok{background:#c8e6c9}.badge.ng{background:#ffcdd2}
dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:0}
dt{color:#667}dd{margin:0}
.pre{white-space:pre-wrap}
.hint{color:#667;font-size:.9rem}
.pager{text-align:center}
.ship-fields[hidden]{display:none!important}
.radios{display:flex;gap:24px}
.fieldset-note{color:#667}
#copy-sender{margin-bottom:6px}
header.site.cheer{background:linear-gradient(90deg,#ffb300,#ff7043);flex-direction:column;align-items:center;justify-content:center;padding:16px 12px 20px}
.hello{color:#fff;font-weight:bold;font-size:1.35rem;text-align:center;text-shadow:0 2px 0 rgba(0,0,0,.15);margin:0!important}
.wiggle{display:inline-block;animation:wiggle 1.6s ease-in-out infinite}
.wiggle.d2{animation-delay:.4s}
@keyframes wiggle{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(12deg) scale(1.15)}}
@media (prefers-reduced-motion:reduce){.wiggle{animation:none}}
.callout{background:#fff8e1;border:2px dashed #ffb300;border-radius:10px;padding:10px 14px;margin:0 0 12px;font-weight:bold}
.radios.stack{flex-direction:column;gap:4px}
.notice{background:#fffde7;padding:10px 14px;border-radius:8px}
.btn-row{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-top:16px}

.hero{display:flex;align-items:center;justify-content:center;gap:18px;background:rgba(255,255,255,.93);color:#4e342e;border-radius:16px;padding:14px 20px;margin-top:12px;max-width:640px;width:100%;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.hero img{width:200px;height:200px;object-fit:cover;border-radius:12px;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.2);flex:none}
.hero p{margin:0;font-size:1.15rem;font-weight:bold;line-height:1.9}
.heart{color:#e53935;margin-left:2px}
@media (max-width:560px){.hero{flex-direction:column;text-align:center;padding:14px}.hero img{width:70%;max-width:240px;height:auto;aspect-ratio:1/1}}

.label-like{margin:10px 0 4px;font-size:.95rem}
#contact-email[hidden],#contact-line[hidden]{display:none!important}
.line-box{display:flex;align-items:center;gap:16px;background:#f1fbf3;border:2px solid #06c755;border-radius:12px;padding:12px 16px;margin:10px 0}
.line-box img{width:220px;height:220px;flex:none;background:#fff;border-radius:8px;padding:6px}
.line-box p{margin:0 0 10px}
.btn-line{display:inline-block;background:#06c755;color:#fff!important;text-decoration:none;font-weight:bold;padding:10px 16px;border-radius:24px}
.btn-csv{display:inline-block;background:#fff;border:1px solid #bcc7b4;border-radius:6px;padding:8px 14px;text-decoration:none}
@media (max-width:560px){.line-box{flex-direction:column;text-align:center}.line-box img{width:70%;max-width:240px;height:auto}}

.box-hint{margin:.6rem 0 .4rem}
#box-warning[hidden]{display:none!important}

/* キャンセルの注文を目立たせる */
tr.cancelled td { background: #fde4e4; color: #8a1c1c; }
tr.cancelled td a { color: #8a1c1c; }
.badge.cancel { background: #c62828; color: #fff; font-weight: 700; }
.alert.cancel-note { background: #fde4e4; color: #8a1c1c; border-left: 5px solid #c62828; }
/* 削除 */
.del-link { color: #c62828; font-size: .85rem; }
.danger-zone { margin-top: 2.2rem; padding-top: 1rem; border-top: 1px dashed #e0b4b4; }
.btn-danger-outline { display: inline-block; color: #c62828; border: 1px solid #c62828; border-radius: 6px; padding: 8px 14px; text-decoration: none; background: #fff; }
.btn-danger-outline:hover { background: #fdeaea; }
button.danger { background: #c62828; color: #fff; border: 0; padding: 12px 28px; font-size: 1.05rem; border-radius: 6px; cursor: pointer; }
.btn-back { display: inline-block; padding: 12px 22px; border: 1px solid #bcc7b4; border-radius: 6px; background: #fff; text-decoration: none; color: inherit; }

.contact-note { margin: 1rem 0; text-align: center; }
.contact-note p { margin: 0; }
.contact-note .tel { margin-top: .4rem; }
.contact-note .tel a { font-size: 1.5rem; font-weight: 700; letter-spacing: .06em; color: inherit; text-decoration: none; }

/* クーポン・配送個数 */
.qty.left { justify-content: flex-start; align-items: center; }
.qty .unit { margin-left: .4rem; }
.sum { text-align: right; }
.sum p { margin: .2rem 0; }
.sum .total { font-size: 1.25rem; }
#discount-row[hidden] { display: none; }
#discount-row strong { color: #c62828; }
.ship-summary { margin: .4rem 0 0; font-weight: 600; }
.ship-summary[hidden] { display: none; }
tr.discount td { color: #c62828; }

.line-after { font-weight: 700; font-size: 1.05rem; color: #05813a; margin: 0 0 .5rem !important; }

/* 複数の配送先 */
.dest-block[hidden] { display: none; }
.dest-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px 12px; margin-bottom: .4rem; }
.dest-nums label { margin: 6px 0; }
.dest-status { margin: .8rem 0; padding: 10px 14px; border-radius: 8px; background: #f3f6f1; }
.dest-status p { margin: 0; font-weight: 600; }
.dest-status .ok { color: #1b6b2a; }
.dest-status .ng { color: #b3261e; }
.dest-status ul { margin: .4rem 0 0; padding-left: 1.2rem; font-weight: 400; }
#dest-auto { margin: 0 0 1rem; }

/* 受付終了 */
.check.closed { color: #8a8f87; }
.closed-tag { margin-left: .6rem; padding: 1px 8px; border-radius: 10px; background: #c62828; color: #fff; font-size: .75rem; font-weight: 700; }
.alert.notice { background: #fff4d6; color: #7a5a00; border-left: 5px solid #f0a800; }
tr.closed-row td { background: #f3f3f3; }
button.danger-sm { background: #c62828; color: #fff; border: 0; }
