/* Lucky's Baked Goods: shared styles for the shop, checkout, order and admin pages.
   Same palette and type as the homepage. */
:root{
  --cherry:#B52A1E; --cherry-dk:#8E1F15; --cream:#F8EEDC; --cream2:#FFFAF1;
  --page:#F1E9DA; --page-dk:#E7DCC8;
  --pink:#E8A8B6; --pink-lt:#F7E1E6; --olive:#3E4F37; --olive-lt:#E7EBE1;
  --caramel:#D19A5B; --brown:#5A3A28;
  --ink:#2E1D14; --ink2:#6B5343; --ink3:#9A8370; --rule:#E2D2B6; --rule2:#CCB491;
  --pv:40px;
  color-scheme: light;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background-color:var(--page);color:var(--ink);font-family:"Archivo",system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
[hidden]{display:none !important}
.narrow{font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.13em;font-weight:700}
.script{font-family:"Yellowtail",cursive;font-weight:400}
.checks{height:13px;background-image:
  linear-gradient(45deg,var(--cherry) 25%,transparent 25%,transparent 75%,var(--cherry) 75%),
  linear-gradient(45deg,var(--cherry) 25%,transparent 25%,transparent 75%,var(--cherry) 75%);
  background-size:26px 26px;background-position:0 0,13px 13px}
.btn{display:inline-block;background:var(--cherry);color:var(--cream);padding:15px 26px;border-radius:3px;text-decoration:none;
  font-size:12.5px;font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:700;
  border:0;cursor:pointer;min-height:48px;line-height:1.3;text-align:center}
.btn:hover{background:var(--cherry-dk)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.block{display:block;width:100%}
.btn.ghost{background:transparent;color:var(--cherry);box-shadow:inset 0 0 0 1.5px var(--cherry)}
.btn.ghost:hover{background:rgba(181,42,30,.06)}
.btn.olive{background:var(--olive);color:var(--cream)}
.btn.olive:hover{background:#2F3D2A}
.btn.small{padding:10px 14px;min-height:40px;font-size:11px}
.link{background:none;border:0;padding:0;color:var(--cherry);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}

/* ---------- preview bar ---------- */
.previewbar{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--pv);display:flex;align-items:center;justify-content:center;gap:14px;
  background:repeating-linear-gradient(135deg,#2E1D14 0 14px,#3A261B 14px 28px);color:#FFE9A8;
  font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:12px;
  border-bottom:3px solid var(--caramel);padding:0 12px;text-align:center}
.previewbar a{color:var(--cream);font-size:10.5px;opacity:.85;white-space:nowrap}
.previewbar .lk{display:flex;gap:14px}
body.preview{padding-top:calc(var(--pv) + 3px)}
body.preview .hdr{top:calc(var(--pv) + 3px)}
@media(max-width:560px){:root{--pv:54px}.previewbar{flex-direction:column;gap:2px;font-size:11px;letter-spacing:.06em;line-height:1.25}.previewbar a{margin:0 6px}}

/* ---------- simple pages ---------- */
body.plain{min-height:100vh;display:flex;flex-direction:column}
main.center{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:34px 18px 60px}
.pcard{width:100%;max-width:520px}
.pcard.center{text-align:center}
.logo{width:150px;margin:0 auto 22px}
.h{font-family:"Fraunces",Georgia,serif;font-weight:900;letter-spacing:-.02em;font-size:clamp(26px,7vw,34px);line-height:1.08;margin:0 0 8px}
.sub{color:var(--ink2);font-size:15px;margin:10px auto 0}
.stack{display:grid;gap:10px;margin-top:22px}

/* ---------- shop pieces on the menu ---------- */
.packs{margin-top:12px;border-top:1px dotted var(--rule);padding-top:4px}
.pack{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.pack .pl{font-size:14px;font-weight:600}
.pack .pl small{display:block;font-weight:400;color:var(--ink3);font-size:12px}
.pack.out .pl{color:var(--ink3)}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--rule2);border-radius:3px;background:#fff;flex:none}
.stepper button{width:44px;height:44px;border:0;background:transparent;color:var(--cherry);font-size:22px;line-height:1;cursor:pointer;font-weight:700}
.stepper button:disabled{color:var(--rule2);cursor:not-allowed}
.stepper output{min-width:30px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.soldtag{font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;font-weight:700;color:var(--cherry)}
.badge.sold{background:var(--cherry)}

.cartbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--cream2);border-top:2px solid var(--cherry);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 20px rgba(46,29,20,.08)}
.cartbar .in{max-width:620px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.cartbar .sum{font-size:14px;line-height:1.3}
.cartbar .sum b{font-family:"Fraunces",Georgia,serif;font-size:20px;font-weight:900;display:block}
.cartbar .btn{flex:none}
body.hascart{padding-bottom:84px}

/* ---------- forms ---------- */
.panel{background-color:var(--cream2);border:1px solid var(--rule2);border-radius:4px;padding:20px 18px 22px;margin-top:16px}
.panel h2,.panel h3{margin:0 0 4px;font-family:"Fraunces",Georgia,serif;font-weight:900;letter-spacing:-.015em;font-size:21px;line-height:1.15}
.panel .hint{margin:0 0 14px;font-size:13px;color:var(--ink2)}
.stepno{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--cherry);color:var(--cream);align-items:center;justify-content:center;
  font-size:12px;font-weight:700;margin-right:8px;vertical-align:3px;font-family:"Archivo",sans-serif}
.fields{display:grid;gap:12px;margin-top:14px}
@media(min-width:480px){.fields.two{grid-template-columns:1fr 1fr}.fields.three{grid-template-columns:2fr 1fr 1fr}}
label.fl,.fl{display:block;font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:700;color:var(--ink3);margin-bottom:5px}
.fields input,.fields textarea,.fields select,input.in,select.in,textarea.in{width:100%;padding:13px 14px;border:1px solid var(--rule2);border-radius:3px;background:#fff;font:inherit;font-size:16px;color:var(--ink);min-height:48px}
.fields textarea,textarea.in{min-height:80px;resize:vertical}
.fields input:focus,.fields textarea:focus,.fields select:focus,.in:focus{outline:2px solid var(--cherry);outline-offset:1px}
.picker{display:grid;gap:9px;margin-top:12px}
@media(min-width:480px){.picker.two{grid-template-columns:1fr 1fr}}
.opt{position:relative;border:1px solid var(--rule2);border-radius:3px;background:#fff;padding:14px 14px 14px 46px;cursor:pointer;display:block;min-height:56px}
.opt input{position:absolute;left:16px;top:17px;width:20px;height:20px;accent-color:var(--cherry);margin:0}
.opt .on{display:block;font-weight:700;font-size:15px;line-height:1.3}
.opt .tm{display:block;font-size:13px;color:var(--cherry);font-variant-numeric:tabular-nums;margin-top:3px}
.opt .ds{display:block;font-size:12.5px;color:var(--ink2);margin-top:3px}
.opt:has(.pr){padding-right:84px}
.opt .pr{position:absolute;right:14px;top:14px;font-weight:700;font-variant-numeric:tabular-nums}
.opt:has(input:checked){border-color:var(--cherry);box-shadow:inset 0 0 0 1px var(--cherry);background:#FFFDF8}
.opt.dis{opacity:.5;cursor:not-allowed}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45;margin-top:14px;cursor:pointer}
.check input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--cherry)}

.lines{margin:6px 0 0}
.line{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dotted var(--rule);font-size:14.5px;align-items:center}
.line .q{color:var(--ink3);font-size:12.5px;display:block}
.line .amt{font-variant-numeric:tabular-nums;font-weight:600;flex:none}
.line.tot{border-bottom:0;border-top:2px solid var(--rule2);margin-top:4px;padding-top:14px}
.line.tot .amt{font-family:"Fraunces",Georgia,serif;font-weight:900;font-size:24px}
.line.tot .l{font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:var(--ink3)}

.note{margin-top:14px;background:var(--olive-lt);border-left:3px solid var(--olive);padding:12px 14px;border-radius:0 3px 3px 0;font-size:13.5px;color:#31402B;line-height:1.55}
.note.warn{background:var(--pink-lt);border-left-color:var(--cherry);color:#6E2A22}
.note b{color:inherit}
.err{margin-top:14px;background:var(--pink-lt);border:1px solid var(--pink);color:#7A241A;padding:12px 14px;border-radius:3px;font-size:14px}
.ok{margin-top:14px;background:var(--olive-lt);border:1px solid #BCC8B0;color:#31402B;padding:12px 14px;border-radius:3px;font-size:14px}
.payhow{margin-top:12px;background:#fff;border:1px dashed var(--rule2);border-radius:3px;padding:14px}
.payhow .big{font-family:"Fraunces",Georgia,serif;font-weight:900;font-size:22px;letter-spacing:-.01em;word-break:break-all}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.08em;background:var(--page-dk);color:var(--ink2);white-space:nowrap}
.pill.red{background:var(--cherry);color:var(--cream)}
.pill.green{background:var(--olive);color:var(--cream)}
.pill.amber{background:#F3D9A6;color:#6B4712}
.pill.pink{background:var(--pink-lt);color:#7E4252}
.pill.ink{background:var(--ink);color:#FFE9A8}
.spin{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .8s linear infinite;vertical-align:-3px}
@keyframes sp{to{transform:rotate(360deg)}}
.testribbon{background:var(--ink);color:#FFE9A8;text-align:center;font-family:"Archivo Narrow","Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:12px;padding:8px;border-radius:3px;margin-bottom:14px}

.minihdr{background:var(--page);border-bottom:1px solid var(--rule2)}
.minihdr .in{max-width:620px;margin:0 auto;padding:11px 18px;display:flex;align-items:center;justify-content:space-between}
.minihdr img{width:120px}
.minihdr a.back{font-size:13px;color:var(--ink2)}
.wrap{max-width:620px;margin:0 auto;padding-inline:18px}
footer.mini{background:var(--brown);color:#E3CDB6;padding:20px;text-align:center;font-size:11.5px;margin-top:40px}
footer.mini a{color:#F0DCC4}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
