:root{
  --bg:#181513;
  --surface:#221d19;
  --surface-2:#2a2420;
  --ivory:#F3EADF;
  --ivory-dim:#b0a498;
  --accent:#D08A6E;
  --accent-bright:#E4A184;
  --highlight:#7A1F2B;
  --highlight-bright:#96303E;
  --line: rgba(243,234,223,0.09);
  --line-bright: rgba(243,234,223,0.2);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ivory);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
.display{font-family:'Fraunces',serif;}
.mono{font-family:'Space Mono',monospace;}

.site-header{position:sticky;top:0;z-index:100;background:rgba(24,21,19,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.site-header-wrap{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;}
.site-logo{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;letter-spacing:.04em;}
.site-admin-link{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ivory-dim);border:1px solid var(--line-bright);padding:7px 14px;}
.site-admin-link:hover{border-color:var(--accent);color:var(--accent-bright);}

.price-toggle-bar{background:var(--surface-2);border-bottom:1px solid var(--line);}
.price-toggle-wrap{max-width:1200px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.price-toggle-wrap p{font-size:.76rem;color:var(--ivory-dim);}
.toggle-group{display:flex;border:1px solid var(--line-bright);}
.toggle-group button{background:none;border:none;color:var(--ivory-dim);padding:7px 18px;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-weight:600;font-family:inherit;}
.toggle-group button.active{background:var(--accent);color:var(--bg);}
.wholesale-note{display:none;}
.wholesale-note.show{display:block;}

.hero{max-width:720px;margin:0 auto;padding:52px 24px 28px;text-align:center;}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent-bright);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;}
.hero h1{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:600;margin-bottom:14px;}
.hero p{color:var(--ivory-dim);font-size:.98rem;line-height:1.7;}

.control-strip{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);}
.search-box{background:var(--surface);border:1px solid var(--line);padding:10px 14px;flex:1;min-width:180px;}
.search-box input{background:none;border:none;color:var(--ivory);font-size:.86rem;width:100%;font-family:inherit;}
.search-box input:focus{outline:none;}
.search-box input::placeholder{color:var(--ivory-dim);}
.chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.chip{padding:8px 14px;border:1px solid var(--line-bright);color:var(--ivory-dim);font-size:.74rem;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:none;white-space:nowrap;font-family:inherit;}
.chip:hover{border-color:var(--accent);color:var(--accent-bright);}
.chip.active{background:var(--accent);color:var(--bg);border-color:var(--accent);}
.sort-select{background:var(--surface);border:1px solid var(--line);color:var(--ivory);padding:10px 12px;font-size:.78rem;cursor:pointer;font-family:inherit;}

.combo-banner{max-width:1200px;margin:18px auto 0;padding:0 24px;}
.combo-banner{display:block;}
.combo-banner p{font-size:.82rem;margin:0;background:var(--surface-2);border:1px solid var(--accent);padding:14px 18px;}
.combo-banner p:first-child{margin-bottom:0;border-bottom:none;}
.combo-banner p + p{border-top:none;margin-top:-1px;}

.grid{max-width:1200px;margin:0 auto;padding:20px 24px 60px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;}
.card{background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:.2s;}
.card:hover{border-color:var(--accent);}
.card-tag{position:absolute;top:10px;left:0;background:var(--highlight);color:var(--ivory);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px 4px 12px;clip-path:polygon(0 0,100% 0,88% 50%,100% 100%,0 100%);z-index:2;}
.card-media{aspect-ratio:4/3;background:var(--surface-2);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;}
.card-media svg{width:44%;height:44%;filter:drop-shadow(0 8px 18px rgba(0,0,0,.5));}
.media-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.card-cat{font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-bright);}
.card-name{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;line-height:1.25;cursor:pointer;}
.card-note{font-size:.78rem;color:var(--ivory-dim);line-height:1.5;}
.swatch-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px;}
.swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);flex-shrink:0;padding:0;}
.swatch.active{border-color:var(--accent-bright);transform:scale(1.12);}
.selected-color-label{font-size:.7rem;color:var(--ivory-dim);}
.selected-color-label b{color:var(--ivory);}
.field-row{display:flex;gap:6px;margin-top:4px;}
.size-select,.note-input{background:var(--bg);border:1px solid var(--line-bright);color:var(--ivory);padding:7px 8px;font-size:.75rem;flex:1;min-width:0;font-family:inherit;}
.note-input::placeholder{color:var(--ivory-dim);}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:10px;border-top:1px solid var(--line);}
.card-price{font-family:'Space Mono',monospace;font-size:.96rem;}
.card-price span{color:var(--ivory-dim);font-size:.63rem;margin-left:2px;}
.card-order{display:flex;align-items:center;gap:4px;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-bright);padding:7px 12px;border:1px solid var(--accent);background:none;cursor:pointer;font-weight:600;font-family:inherit;}
.card-order:hover{background:var(--accent);color:var(--bg);}
.empty-state{grid-column:1/-1;text-align:center;padding:60px 16px;color:var(--ivory-dim);}
.empty-state b{display:block;color:var(--ivory);font-family:'Fraunces',serif;font-size:1.15rem;margin-bottom:8px;}

.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;font-weight:600;font-family:inherit;}
.btn-primary{background:var(--accent);color:var(--bg);}
.btn-primary:hover{background:var(--accent-bright);}
.btn-block{width:100%;justify-content:center;}
.btn-clear{width:100%;justify-content:center;margin-top:8px;background:none;border:1px solid var(--line-bright);color:var(--ivory-dim);}
.btn-clear:hover{border-color:var(--highlight-bright);color:var(--highlight-bright);}

.cart-fab{position:fixed;bottom:22px;right:22px;width:58px;height:58px;border-radius:50%;background:var(--accent);color:var(--bg);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.4);z-index:120;}
.cart-count{position:absolute;top:-4px;right:-4px;background:var(--highlight);color:var(--ivory);font-family:'Space Mono',monospace;font-size:.62rem;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 2px;}

.modal-backdrop{position:fixed;inset:0;background:rgba(10,9,8,.78);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px;}
.modal-backdrop.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--line-bright);max-width:780px;width:100%;display:grid;grid-template-columns:1fr 1.1fr;max-height:90vh;overflow:auto;position:relative;}
.modal-media{background:var(--surface-2);display:flex;align-items:center;justify-content:center;padding:36px;position:relative;overflow:hidden;}
.modal-media svg{width:58%;}
.modal-media .media-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.modal-body{padding:32px;display:flex;flex-direction:column;}
.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--ivory-dim);font-size:1.6rem;cursor:pointer;line-height:1;z-index:3;}
.modal-close:hover{color:var(--accent-bright);}
.modal-cat{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-bright);margin-bottom:8px;}
.modal-body h3{font-family:'Fraunces',serif;font-size:1.45rem;margin-bottom:8px;}
.desc{color:var(--ivory-dim);font-size:.88rem;line-height:1.65;margin-bottom:16px;}
.modal-label{font-size:.68rem;color:var(--ivory-dim);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 8px;}
.modal-swatches{display:flex;gap:8px;flex-wrap:wrap;}
.modal-swatches .swatch{width:26px;height:26px;}
.modal-price{font-family:'Space Mono',monospace;font-size:1.4rem;margin:16px 0;}
.qty-control{display:flex;align-items:center;border:1px solid var(--line-bright);}
.qty-control button{background:none;border:none;color:var(--ivory);width:26px;height:26px;cursor:pointer;font-size:.9rem;}
.qty-control button:hover{color:var(--accent-bright);}
.qty-control span{width:26px;text-align:center;font-family:'Space Mono',monospace;font-size:.78rem;}
.modal-actions{display:flex;gap:10px;margin-top:6px;}

.cart-backdrop{position:fixed;inset:0;background:rgba(10,9,8,.7);backdrop-filter:blur(3px);z-index:9998;opacity:0;visibility:hidden;transition:.25s;}
.cart-backdrop.open{opacity:1;visibility:visible;}
.cart-drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:94vw;background:var(--surface);border-left:1px solid var(--line-bright);z-index:9999;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease;}
.cart-drawer.open{transform:translateX(0);}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);}
.cart-head h3{font-family:'Fraunces',serif;font-size:1.2rem;}
.cart-close{background:none;border:none;color:var(--ivory-dim);font-size:1.5rem;cursor:pointer;line-height:1;}
.cart-close:hover{color:var(--accent-bright);}
.cart-items{flex:1;overflow-y:auto;padding:12px 20px;}
.cart-empty{text-align:center;color:var(--ivory-dim);padding:50px 10px;font-size:.86rem;}
.cart-line{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.cart-line-media{width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);}
.cart-line-info{flex:1;min-width:0;}
.cart-line-info b{font-family:'Fraunces',serif;font-size:.88rem;display:block;}
.cart-line-info span{font-size:.7rem;color:var(--ivory-dim);display:block;margin-top:2px;}
.cart-line-price{font-family:'Space Mono',monospace;font-size:.78rem;color:var(--accent-bright);margin-top:4px;display:block;}
.cart-line-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.cart-line-remove{background:none;border:none;color:var(--ivory-dim);cursor:pointer;font-size:.86rem;padding:2px;}
.cart-line-remove:hover{color:var(--highlight-bright);}
.cart-foot{border-top:1px solid var(--line);padding:16px 20px 20px;}
.cart-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:.8rem;color:var(--ivory-dim);}
.cart-row.total{font-size:.96rem;color:var(--ivory);margin:10px 0 14px;padding-top:8px;border-top:1px solid var(--line);}
.cart-row b{font-family:'Space Mono',monospace;color:var(--ivory);}
.cart-row.discount b{color:var(--accent-bright);}
.cart-note{font-size:.72rem;color:var(--ivory-dim);margin-bottom:12px;line-height:1.5;}

.add-toast{position:fixed;bottom:22px;left:22px;background:var(--surface-2);border:1px solid var(--accent);padding:12px 18px;font-size:.78rem;z-index:10000;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none;max-width:280px;}
.add-toast.show{opacity:1;transform:translateY(0);}

.site-footer{border-top:1px solid var(--line);padding:26px 24px;text-align:center;}
.site-footer p{color:var(--ivory-dim);font-size:.78rem;}

@media (max-width:760px){
  .modal{grid-template-columns:1fr;}
  .cart-drawer{width:100vw;}
  .field-row{flex-direction:column;}
}
