/* ============================================================
   4REIGNER STORE — WooCommerce storefront components
   Inter edition · loads after styles.css
   ============================================================ */

/* Inter refinements */
.eyebrow{font-weight:500}
.btn{font-weight:500;letter-spacing:.22em}
.prod__price{font-family:var(--sans);font-weight:600;font-size:1.18rem;letter-spacing:-.01em}
.split__media .tag{font-style:normal;font-weight:500;font-size:1.05rem;letter-spacing:.02em}
.quote blockquote{font-style:normal;font-weight:500;letter-spacing:-.02em}
.serif-i{font-style:normal;color:var(--gold-soft)}

/* nav cart button */
.cartbtn{position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;
  border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;color:var(--ink);transition:.35s var(--ease)}
.cartbtn:hover{border-color:var(--gold);color:var(--wine)}
.cartbtn svg{width:19px;height:19px}
.cartbtn .cnt{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;
  background:var(--wine);color:var(--ivory);font-size:10.5px;font-weight:600;display:flex;align-items:center;justify-content:center;
  transition:.3s var(--ease)}
.cartbtn .cnt.zero{opacity:0;transform:scale(.5)}
.cartbtn .cnt.bump{animation:cbump .45s var(--ease)}
@keyframes cbump{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}

/* shop toolbar */
.shopbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:30px}
.shopbar .count{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.shopbar select{font-family:var(--sans);font-size:13px;font-weight:400;padding:.75em 2.4em .75em 1.1em;background:var(--cream);
  border:1px solid var(--line);color:var(--ink);border-radius:2px;cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23B08A45' fill='none' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1em center}
.shopbar select:focus{outline:none;border-color:var(--gold)}

/* filter pills */
.pills{display:flex;gap:10px;flex-wrap:wrap}
.pill{font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  padding:.72em 1.35em;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;
  border-radius:999px;transition:.35s var(--ease)}
.pill:hover{border-color:var(--gold);color:var(--wine)}
.pill.on{background:var(--wine);border-color:var(--wine);color:var(--ivory)}

/* product card — store */
.prod{display:flex;flex-direction:column}
.prod__img{position:relative}
.prod .badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--wine);color:var(--ivory);
  font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:.55em 1em;border-radius:1px}
.prod .badge.gold{background:var(--gold);color:var(--ink)}
.prod__body{display:flex;flex-direction:column;flex:1}
.prod__foot{margin-top:auto;padding-top:1.1em}
.addcart{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font-family:var(--sans);
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:.95em 1.9em;
  border:1px solid var(--gold);color:var(--gold);background:transparent;cursor:pointer;border-radius:1px;
  transition:.4s var(--ease);min-width:172px}
.addcart:hover{background:var(--gold);color:var(--ink)}
.addcart.added{background:var(--wine);border-color:var(--wine);color:var(--ivory)}
.addcart svg{width:14px;height:14px}

/* cart drawer */
.cart-ovl{position:fixed;inset:0;z-index:1600;background:rgba(28,12,16,.5);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:.45s var(--ease)}
.cart-ovl.open{opacity:1;visibility:visible}
.cartdr{position:fixed;top:0;right:0;bottom:0;z-index:1700;width:min(440px,100vw);background:var(--cream);
  display:flex;flex-direction:column;transform:translateX(102%);transition:transform .5s var(--ease);
  box-shadow:-30px 0 80px -30px rgba(28,22,17,.5);border-left:1px solid var(--line)}
.cartdr.open{transform:none}
.cartdr__head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--line);flex:none}
.cartdr__head h3{font-size:1.15rem;letter-spacing:-.01em;display:flex;gap:.6em;align-items:baseline}
.cartdr__head h3 span{font-size:11px;letter-spacing:.2em;color:var(--gold);font-weight:500}
.cartdr__close{background:none;border:none;font-size:30px;line-height:1;cursor:pointer;color:var(--ink);
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:.3s}
.cartdr__close:hover{color:var(--wine);transform:rotate(90deg)}
.cartdr__ship{flex:none;padding:13px 26px;background:var(--ivory);border-bottom:1px solid var(--line);
  font-size:12px;letter-spacing:.06em;color:var(--muted)}
.cartdr__ship b{color:var(--wine);font-weight:600}
.cartdr__ship .bar{height:3px;background:var(--paper);border-radius:2px;margin-top:8px;overflow:hidden}
.cartdr__ship .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-2));transition:width .5s var(--ease)}
.cartdr__items{flex:1;overflow-y:auto;padding:10px 26px}
.citem{display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.citem__img{width:72px;height:96px;object-fit:cover;border-radius:2px;background:var(--paper)}
.citem__name{font-weight:600;font-size:14.5px;color:var(--ink);letter-spacing:-.01em}
.citem__type{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:.25em 0 .7em}
.citem__price{font-weight:600;font-size:14px;color:var(--ink);text-align:right}
.citem__rm{background:none;border:none;color:var(--muted);font-size:11px;letter-spacing:.08em;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;padding:0;margin-top:.8em;transition:.3s}
.citem__rm:hover{color:var(--wine)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:2px;background:var(--cream)}
.qty button{background:none;border:none;width:30px;height:32px;font-size:15px;cursor:pointer;color:var(--muted);transition:.25s}
.qty button:hover{color:var(--wine)}
.qty span{min-width:26px;text-align:center;font-size:13.5px;font-weight:600}
.cart-empty{text-align:center;padding:70px 20px;color:var(--muted)}
.cart-empty svg{width:44px;height:44px;color:var(--gold);margin:0 auto 18px;display:block;opacity:.8}
.cart-empty p{font-size:14.5px}
.cartdr__foot{flex:none;padding:20px 26px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--ivory)}
.cartdr__row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13.5px;color:var(--muted)}
.cartdr__row.total{font-size:16px;color:var(--ink);margin:10px 0 16px}
.cartdr__row.total b{font-weight:700;font-size:1.25rem}
.cartdr__foot .btn{width:100%;justify-content:center}
.cartdr__note{text-align:center;font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:12px}
.cartdr__note svg{width:11px;height:11px;vertical-align:-1px;margin-right:4px;color:var(--gold)}

/* add-to-cart toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);z-index:1800;background:var(--wine-2);
  color:var(--ivory);font-size:13px;letter-spacing:.05em;padding:.95em 1.7em;border-radius:2px;border:1px solid rgba(201,168,95,.4);
  opacity:0;visibility:hidden;transition:.4s var(--ease);box-shadow:var(--shadow);display:flex;gap:.7em;align-items:center}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.toast b{color:var(--gold-2);font-weight:600}

/* ============================================================
   PRODUCT DETAIL PAGE (single product — maps to Woo single)
   ============================================================ */
.pdp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,5.5vw,80px);align-items:start}
.pdp__media{position:sticky;top:120px}
.pdp__img{aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);background:linear-gradient(180deg,var(--ivory),var(--paper));position:relative}
.pdp__img img{width:100%;height:100%;object-fit:cover;transition:1.2s var(--ease)}
.pdp__img:hover img{transform:scale(1.045)}
.pdp__img .badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--wine);color:var(--ivory);
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:.6em 1.1em}
.pdp__img .badge.gold{background:var(--gold);color:var(--ink)}
.pdp__thumbs{display:flex;gap:10px;margin-top:12px}
.pdp__thumbs button{width:72px;height:92px;padding:0;border:1px solid var(--line);background:var(--paper);cursor:pointer;overflow:hidden;transition:.3s}
.pdp__thumbs button.on,.pdp__thumbs button:hover{border-color:var(--gold)}
.pdp__thumbs img{width:100%;height:100%;object-fit:cover}
.pdp__info h1{font-size:clamp(1.9rem,3.6vw,2.8rem);color:var(--wine);letter-spacing:-.02em;margin:.25em 0 .35em}
.pdp__price{display:flex;align-items:baseline;gap:14px;margin:.6em 0 1.2em}
.pdp__price .amt{font-size:1.9rem;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.pdp__price .vat{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pdp__story{color:var(--muted);font-size:16px;line-height:1.8;max-width:56ch}
.pdp__buy{display:flex;gap:14px;align-items:stretch;margin:1.8em 0 1.4em;flex-wrap:wrap}
.pdp__buy .qty{border-color:var(--ink);background:var(--cream)}
.pdp__buy .qty button{width:42px;height:52px;font-size:18px}
.pdp__buy .qty span{min-width:34px;font-size:16px}
.pdp__buy .btn{padding:1.05em 2.6em}
.pdp__meta{border-top:1px solid var(--line);margin-top:1.6em;padding-top:1.3em;display:grid;gap:.45em}
.pdp__meta .m{display:flex;gap:10px;font-size:13px;color:var(--muted)}
.pdp__meta .m b{color:var(--ink);font-weight:600;min-width:110px;letter-spacing:.06em;text-transform:uppercase;font-size:11px;padding-top:2px}
.pdp__trust{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-top:1.5em;padding:18px 20px;background:var(--ivory);border:1px solid var(--line)}
.pdp__trust .t{display:flex;gap:10px;align-items:center;font-size:12px;letter-spacing:.06em;color:var(--muted)}
.pdp__trust .t svg{flex:none;width:16px;height:16px;color:var(--gold)}

/* tasting notes */
.tnotes{display:grid;gap:0;border:1px solid var(--line);margin-top:1.6em}
.tnotes .tn{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--cream)}
.tnotes .tn:last-child{border-bottom:none}
.tnotes .tn b{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;padding-top:3px}
.tnotes .tn span{font-size:14.5px;color:var(--ink)}

/* tabs */
.tabs{margin-top:clamp(48px,7vw,80px)}
.tabs__nav{display:flex;gap:0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tabs__nav button{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:1em 1.6em;cursor:pointer;transition:.3s;margin-bottom:-1px}
.tabs__nav button.on{color:var(--wine);border-bottom-color:var(--gold)}
.tabs__panel{display:none;padding:30px 0 0;max-width:820px}
.tabs__panel.on{display:block}
.tabs__panel p,.tabs__panel li{font-size:15.5px;color:var(--muted);line-height:1.85}
.tabs__panel ul{padding-left:1.2em}
.tabs__panel h4{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-weight:600;margin:1.6em 0 .5em}

/* ============================================================
   CART PAGE + CHECKOUT
   ============================================================ */
.cartpg .citem{grid-template-columns:96px 1fr auto;padding:24px 0}
.cartpg .citem__img{width:96px;height:124px}
.cartpg .citem__name{font-size:16px}
.totals{background:var(--ivory);border:1px solid var(--line);padding:28px;position:sticky;top:130px}
.totals h3{font-size:1.2rem;letter-spacing:-.01em;margin-bottom:1em;color:var(--wine)}
.totals .cartdr__row{font-size:14px}
.totals .btn{width:100%;justify-content:center;margin-top:.6em}
.cartcols{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.ck-sec{border:1px solid var(--line);background:var(--cream);padding:clamp(22px,3vw,34px);margin-bottom:22px}
.ck-sec h3{font-size:1.05rem;color:var(--wine);letter-spacing:-.01em;margin-bottom:1.2em;display:flex;gap:.6em;align-items:baseline}
.ck-sec h3 .n{font-size:11px;letter-spacing:.2em;color:var(--gold);font-weight:600}
.ck-items{margin-bottom:1em}
.ck-items .ci{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;color:var(--muted);padding:.45em 0;border-bottom:1px dashed var(--line)}
.ck-items .ci b{color:var(--ink);font-weight:600}
.payfast{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);background:var(--cream);font-size:12.5px;color:var(--muted);margin-top:14px}
.payfast .pf{flex:none;font-weight:700;font-size:14px;color:#e4222c;letter-spacing:-.02em}
.radio{display:flex;gap:.7em;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);background:var(--cream);cursor:pointer;font-size:14px;color:var(--ink)}
.radio input{accent-color:var(--wine);margin-top:.2em}
.radio small{display:block;color:var(--muted);font-size:12.5px}
.radio+.radio{margin-top:10px}

@media(max-width:960px){
  .pdp{grid-template-columns:1fr}
  .pdp__media{position:static;max-width:480px}
  .cartcols{grid-template-columns:1fr}
  .totals{position:static}
}

/* trust strip under hero */
.trust{background:var(--wine-2);color:var(--gold-soft)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-top:22px;padding-bottom:22px}
.trust .t{display:flex;gap:12px;align-items:center;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:400}
.trust .t svg{flex:none;width:20px;height:20px;color:var(--gold-2)}
@media(max-width:860px){.trust .wrap{grid-template-columns:1fr 1fr;gap:14px}}
@media(max-width:540px){.trust .t{font-size:10.5px}}
