/* Self-hosted Fraunces (latin subset, variable weight) */
@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/fraunces-latin-wght.woff2") format("woff2");
}
/* Extension of the original style.css: server-rendered pages instead of the JS SPA */
a.plain{color:inherit; text-decoration:none;}
a.brand{color:var(--ink); text-decoration:none;}
.cart-btn{text-decoration:none;}
.flashes{padding-top:12px; display:flex; flex-direction:column; gap:6px;}
.flash{padding:10px 14px; border-radius:10px; background:var(--card); border:1px solid var(--line); font-size:.9rem;}
.flash.success{border-color:var(--ok); color:var(--ok);}
.flash.error{border-color:var(--accent); color:var(--accent);}
.mainnav a{display:inline-block;}
.filters select{min-width:150px;}
.card .media{display:block;}
.card h3{margin:0;}
.buy{display:flex; flex-direction:column; gap:8px; margin-top:auto;}
.buy-row{display:flex; gap:8px;}
.buy-row input{width:84px; text-align:center;}
.buy-row .add-btn{flex:1; background:var(--ink); color:var(--bg);}
.buy-row .add-btn:hover{opacity:.85;}
.buy .field select{width:100%;}
.product-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; padding-top:20px; align-items:start;}
.product-grid .media{aspect-ratio:1/1;}
.product-info{display:flex; flex-direction:column; gap:10px; max-width:420px;}
@media (max-width:720px){ .product-grid{grid-template-columns:1fr;} }
.cart-page{max-width:760px;}
.cart-line{display:grid; grid-template-columns:1fr auto auto; gap:8px 14px; padding:12px 0; border-bottom:1px solid var(--line); align-items:center;}
.cart-qty{display:flex; gap:6px; align-items:center;}
.cart-qty input{width:76px; text-align:center;}
@media (max-width:560px){ .cart-line{grid-template-columns:1fr auto;} .cart-qty{grid-column:1/-1; order:3;} }
.checkout h2{margin:0;}
.checkout input, .checkout select, .checkout textarea{width:100%;}
.checkout .err{color:var(--accent); font-size:.8rem;}
.mascot{max-width:240px;}
.banners .b-track{transition:transform .5s ease;}
a.b-slide{display:block; color:inherit; text-decoration:none;}

.muted{color:var(--ink-soft); font-size:.9rem;}
.pay-btn[disabled]{opacity:.5; cursor:not-allowed;}
