:root{font-family:"DM Sans",system-ui,sans-serif;color:#2d2420;background:#fcf8f0;--wine:#742f35;--line:#e8ddcf}*{box-sizing:border-box}body{margin:0}.wrap{width:min(1120px,calc(100% - 32px));margin:auto}header{background:#fffdf8;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}.brand,.cart-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.brand{min-height:68px}.brand a{color:var(--wine);font-weight:900;text-decoration:none;font-size:1.25rem}.brand span{font-weight:650}button,input,textarea,select{font:inherit}button{background:var(--wine);color:white;border:1px solid var(--wine);border-radius:9px;padding:.65rem .95rem;cursor:pointer;min-height:42px}button:disabled{opacity:.52;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #a95b20;outline-offset:3px}#count{margin-left:.3rem}.hero{background:#f0e1cf;padding:clamp(2rem,6vw,5rem) 0}.hero h1{font:600 clamp(2.5rem,7vw,5rem)/1.05 Georgia,serif;color:#52252b;margin:.45rem 0 .9rem}.label{font-size:.78rem;letter-spacing:.15em;font-weight:800;color:var(--wine)}.hero p{margin:.5rem 0}.hero .delivery{font-weight:700;margin-top:1.1rem}.shop{padding:2rem 0}label{display:block;font-weight:650;margin-bottom:.4rem}input,textarea,select{color:inherit;background:white;border:1px solid #bda99a;border-radius:8px;padding:.65rem;width:100%}#search{max-width:470px}nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.secondary,nav button[aria-pressed=false]{background:#fffdf8;color:var(--wine);border-color:#cbb4ac}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}article{display:flex;flex-direction:column;gap:.65rem;padding:1rem;background:#fffdf9;border:1px solid var(--line);border-radius:12px}article h2{font-size:1.15rem;margin:0}article label{font-size:.86rem;margin:0}article button{margin-top:auto}article .price{font-weight:800;color:var(--wine)}dialog{width:min(100% - 20px,560px);max-height:92dvh;border:1px solid var(--line);border-radius:16px;padding:1.25rem;background:#fcf8f0;color:inherit}dialog::backdrop{background:#21120cb3}.cart-heading h2{margin:.4rem 0}.line{padding:.7rem 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:.6rem}.line p{margin:.3rem 0}.quantity{display:flex;align-items:center;gap:.45rem}.quantity button{min-width:42px;padding:.35rem}.small,#status{font-size:.9rem;color:#604d46}#checkout-button{margin-top:.5rem;width:100%}#total{font-weight:800}footer{border-top:1px solid var(--line);padding:1rem 0 2rem;font-size:.9rem}
.product-photo{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f7efe4;border-radius:8px}
.line{display:grid;grid-template-columns:minmax(0,1fr) auto}.line-note{grid-column:1/-1}.line-note label{font-size:.88rem}.wholesale{font-size:.88rem;color:var(--wine);font-weight:700}.checkout-link{display:block;text-align:center;text-decoration:none;background:var(--wine);color:white;border-radius:9px;padding:.75rem 1rem;margin:.5rem 0}#copy-status:empty{display:none}#order-preview{min-height:9rem;margin-top:.5rem}#checkout[hidden]{display:none}
.brand .brand-logo{display:flex;align-items:center;padding:4px 0}.brand-logo img{display:block;width:auto;height:56px;max-width:100%;object-fit:contain}
.product-actions{margin-top:auto}.product-actions>button{width:100%}.product-actions .quantity{justify-content:space-between}.product-actions [hidden]{display:none}.quantity span{white-space:nowrap;text-align:center}

/* Keep controls reachable on touch screens and when the cart scrolls. */
button, .checkout-link, input, select { min-height: 44px; }
button, .checkout-link { touch-action: manipulation; }
.quantity button { min-width: 44px; flex: 0 0 auto; }
article, .line > div, .brand-logo { min-width: 0; }
article h2, .line p, .line strong { overflow-wrap: anywhere; }
.checkout-link { display: flex; align-items: center; justify-content: center; }
#cart {
  --cart-padding: 1.25rem;
  padding: 0 var(--cart-padding) max(var(--cart-padding), env(safe-area-inset-bottom));
  max-height: 92vh;
  max-height: 92dvh;
  overscroll-behavior: contain;
  scroll-padding-top: 70px;
}
.cart-heading {
  position: sticky;
  z-index: 1;
  top: 0;
  margin-inline: calc(-1 * var(--cart-padding));
  padding: .6rem var(--cart-padding);
  background: #fcf8f0;
  border-bottom: 1px solid var(--line);
}
body.cart-open { overflow: hidden; }
textarea { resize: vertical; }
#open-cart { flex: 0 0 auto; white-space: nowrap; }

@media (max-width: 640px) {
  .wrap { width: calc(100% - 24px); }
  .brand { min-height: 60px; }
  .brand-logo img { height: 48px; }
  .hero { padding: 1.6rem 0; }
  .hero h1 { font-size: clamp(2rem, 8vw, 3.3rem); }
  .shop { padding: 1.25rem 0; }
  .grid { gap: .75rem; }
  article { padding: .65rem; }
  article h2 { font-size: 1rem; }
  article select { padding-inline: .35rem; }
  .product-actions .quantity { gap: .25rem; }
  .product-actions .quantity span { font-size: .875rem; }
  input, select, textarea { font-size: 1rem; }
  #cart {
    --cart-padding: .875rem;
    width: 100%;
    max-width: none;
    margin: auto 0 0;
    border-radius: 16px 16px 0 0;
  }
  #copy-order { width: 100%; }
}
@media (min-width: 390px) and (max-width: 640px) {
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 389px) {
  .line { grid-template-columns: minmax(0, 1fr); }
  .line .quantity { justify-self: start; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .brand { min-height: 54px; }
  .brand-logo img { height: 44px; }
  .hero { padding: 1.25rem 0; }
  #cart { max-height: 96vh; max-height: 96dvh; }
}

.payment-notice {
  background: var(--wine);
  color: white;
  padding: .75rem 0;
  font-size: .95rem;
  line-height: 1.5;
}

.christmas-promo {
  background: #fae9d5;
  color: #52252b;
  padding: 1rem 0;
  border-bottom: 1px solid #e9ccb0;
}
.christmas-content { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.christmas-content h2 { margin: 0 0 .35rem; }
.christmas-content p { margin: .35rem 0; }
.christmas-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.christmas-actions a { color: var(--wine); }
.christmas-price { display: block; font-size: .8rem; }
.christmas-gift { background: #fae9d5; padding: .7rem; border-radius: 8px; font-weight: 650; }
