/* ==========================================================================
   Grandivini: cart page + shared cart/checkout pieces
   (notices, summary table, trust points, quantity). Loaded on the cart,
   checkout and order-received pages (inc/cart.php). Blocksy CSS is not
   loaded there, so everything these pages need is here.
   ========================================================================== */

/* ---------- reset for the theme-rendered cart/checkout ---------- */
.gv-cartpage,.gv-co-page{padding-top:20px;padding-bottom:56px}
:where(.gv-cartpage,.gv-co-page) :where(h1,h2,h3,p,ul,ol,table,figure,address){margin:0}
:where(.gv-cartpage,.gv-co-page) :where(ul,ol){padding:0;list-style:none}
:where(.gv-cartpage,.gv-co-page) table{border-collapse:collapse;width:100%}
:where(.gv-cartpage,.gv-co-page) :where(th,td){padding:0;text-align:left;font-weight:400;vertical-align:top;border:0}
:where(.gv-cartpage,.gv-co-page) :where(input,button,select,textarea){font:inherit;color:inherit}
.gv-custom .woocommerce{max-width:none}

/* ---------- notices ---------- */
.gv .woocommerce-notices-wrapper:empty{display:none}
.gv .woocommerce-notices-wrapper{margin:0 0 16px}
.gv :where(.woocommerce-message,.woocommerce-info,.woocommerce-error){list-style:none;margin:0 0 12px;padding:12px 14px 12px 16px;border-radius:var(--gv-r);background:var(--gv-cream);box-shadow:inset 3px 0 0 var(--gv-gold),inset 0 0 0 1px var(--gv-line);font:400 14px/1.5 var(--gv-sans);color:var(--gv-ink);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.gv .woocommerce-error{box-shadow:inset 3px 0 0 var(--gv-wine),inset 0 0 0 1px rgba(191,30,46,.3);background:#FDF4F4;display:block}
.gv .woocommerce-error li{margin:0;padding:2px 0}
.gv .woocommerce-message{box-shadow:inset 3px 0 0 var(--gv-ok),inset 0 0 0 1px var(--gv-line)}
.gv :where(.woocommerce-message,.woocommerce-info) a:not(.button){color:var(--gv-wine);font-weight:600}
.gv .woocommerce-error a{color:inherit;font-weight:400;text-decoration:underline;text-underline-offset:2px}
.gv :where(.woocommerce-message,.woocommerce-info) .button,.gv .woocommerce-info .showlogin{order:2;margin-left:auto;font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--gv-ink);border-bottom:1px solid var(--gv-gold);background:none;padding:0 0 2px}
.gv .woocommerce-info .showlogin{margin-left:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--gv-wine)}

/* ---------- page head ---------- */
.gv-cl-head{display:flex;align-items:baseline;gap:12px;margin:4px 0 18px}
.gv .gv-cl-title{font:600 32px/1.05 var(--gv-serif);letter-spacing:.005em;color:var(--gv-ink)}
.gv-cl-count{font-size:13px;color:var(--gv-ink-3)}
@media (min-width:1024px){.gv .gv-cl-title{font-size:42px}.gv-cl-head{margin:16px 0 28px}}

/* ---------- layout ---------- */
.gv-cl-grid{display:grid;gap:28px}
@media (min-width:1024px){
  .gv-cl-grid{grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:start}
  .gv-cl-aside{position:sticky;top:24px}
}
.gv-cartpage.is-busy .gv-cl-grid{opacity:.6;pointer-events:none;transition:opacity .15s}
#gv-cart[aria-busy="true"]{cursor:progress}

/* free shipping bar on the page */
.gv-cl-main>.gv-ship{padding:14px 16px;background:var(--gv-cream);box-shadow:inset 0 0 0 1px var(--gv-line-2);border-radius:var(--gv-r);font-size:13.5px;margin-bottom:8px}
.gv-cl-main>.gv-ship .gv-bar{background:#E9E1D5}

/* ---------- lines ---------- */
.gv-cl-list{border-top:1px solid var(--gv-line)}
.gv-cl-item{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-areas:"img info" "img qty";column-gap:14px;row-gap:12px;padding:18px 0;border-bottom:1px solid var(--gv-line)}
.gv-cl-img{grid-area:img;width:76px;height:100px;background:var(--gv-stone);display:grid;place-items:center;overflow:hidden;align-self:start}
.gv-cl-img img{height:88px;width:auto;max-width:none;mix-blend-mode:multiply;object-fit:contain}
.gv-cl-info{grid-area:info;min-width:0}
.gv-cl-producer{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gv-ink-3)}
.gv .gv-cl-name{font:600 19px/1.15 var(--gv-serif);margin:3px 0 2px;color:var(--gv-ink)}
.gv-cl-name a{text-decoration:none}
.gv-cl-name a:hover{color:var(--gv-wine)}
.gv-cl-meta{font-size:12px;color:var(--gv-ink-3)}
.gv-cl-unit{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:8px;font-size:13px}
.gv-cl-unit s{color:var(--gv-ink-3);font-size:12px}
.gv-cl-now{font-weight:600}
.gv-cl-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--gv-r);background:#EAF3EE;color:var(--gv-ok);font-size:11.5px;font-weight:600;letter-spacing:.02em}
.gv-cl-qty{grid-area:qty;display:flex;align-items:center}
.gv-cl-sub{grid-column:2;grid-row:2;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.gv-cl-line{font:600 19px/1.1 var(--gv-serif);font-variant-numeric:lining-nums;padding-top:2px}
.gv-cl-rm{font-size:12px;color:var(--gv-ink-3);text-decoration:underline;text-underline-offset:2px;padding:2px 0}
.gv-cl-rm:hover{color:var(--gv-wine)}
.gv-qty-in{width:44px;height:38px;border:0;background:none;padding:0;-moz-appearance:textfield;appearance:textfield}
.gv-qty-in::-webkit-outer-spin-button,.gv-qty-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.gv-qty-in:focus-visible{outline:1.5px solid var(--gv-wine);outline-offset:-2px}
.gv-cl-item .backorder_notification,.gv-cl-item .variation{font-size:12px;color:var(--gv-ink-3);margin-top:4px}
@media (min-width:760px){
  .gv-cl-item{grid-template-columns:96px minmax(0,1fr) auto 130px;grid-template-areas:"img info qty sub";column-gap:24px;align-items:center;padding:22px 0}
  .gv-cl-img{width:96px;height:124px;align-self:center}
  .gv-cl-img img{height:108px}
  .gv-cl-sub{grid-area:sub;grid-column:auto;grid-row:auto}
  .gv-cl-line{font-size:21px}
  .gv .gv-cl-name{font-size:21px}
}
.gv-cl-actions{display:flex;justify-content:flex-end;gap:12px;padding:12px 0 0}
.gv-js .gv-cl-update{display:none}
.gv-cl-continue{margin-top:20px}

/* ---------- summary ---------- */
.gv-sum{background:var(--gv-cream);box-shadow:inset 0 0 0 1px var(--gv-line);border-radius:var(--gv-r);padding:20px 18px}
.gv .gv-sum-t{font:600 24px/1.1 var(--gv-serif);margin:0 0 12px;color:var(--gv-ink)}
.gv-sumtable th,.gv-sumtable td{padding:9px 0;font-size:14px;border-bottom:1px solid var(--gv-line-2)}
.gv-sumtable td{text-align:right;white-space:nowrap;padding-left:12px}
.gv-sumtable th small,.gv-rv th small{display:block;font-size:11.5px;color:var(--gv-ink-3);font-weight:400;margin-top:1px}
.gv-sumtable .order-total th,.gv-sumtable .order-total td{border-bottom:0;padding-top:14px}
.gv-sumtable .order-total th{font-weight:600;font-size:15px}
.gv-sum-total{font:600 28px/1 var(--gv-serif);font-variant-numeric:lining-nums}
.gv-sum-tax{font-size:12px;color:var(--gv-ink-3);text-align:right;margin-top:2px}
.gv-sum-saved{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13px;color:var(--gv-ok);font-weight:600}
.gv-sum-saved .gv-ic{width:16px;height:16px;stroke-width:2}
.gv-sum-cta{display:grid;gap:12px;margin-top:16px}
.gv-sum-cta .gv-btn{width:100%}
.gv-sum-pay{display:flex;justify-content:center}
.gv-coupon{margin-top:16px;border-top:1px solid var(--gv-line);padding-top:14px;font-size:13.5px}
.gv-coupon-l{display:block;margin-bottom:8px;font:600 11px/1.2 var(--gv-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gv-ink-2)}
.gv-coupon-msg:empty{display:none}
.gv-coupon-msg{margin-top:10px;display:grid;gap:6px}
.gv-coupon-msg :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){margin:0;padding:9px 12px 9px 15px;font-size:13px;line-height:1.4}
.gv-coupon-msg .woocommerce-message{color:#2e6b3a}
.gv .woocommerce-info:has(.gv-note-wotd){box-shadow:inset 3px 0 0 var(--gv-wine),inset 0 0 0 1px rgba(191,30,46,.3);background:#FDF4F4;color:var(--gv-wine);font-weight:500}
.gv-sumtable th small.gv-coupon-no,.gv-rv th small.gv-coupon-no{color:var(--gv-wine)}
.gv-coupon-form{display:flex;gap:8px}
.gv-coupon-form input{flex:1;min-width:0;height:44px;border:0;box-shadow:inset 0 0 0 1px var(--gv-line);border-radius:var(--gv-r);padding:0 12px;background:#fff}
.gv-coupon-form .gv-btn{height:44px;padding:0 16px}
.gv-sumtable .woocommerce-remove-coupon{font-size:12px;color:var(--gv-ink-3)}

/* ---------- trust ---------- */
.gv-trust{display:grid;gap:12px;margin-top:18px;padding:0 4px}
.gv-trust li{display:flex;gap:12px;align-items:flex-start;font-size:12.5px;line-height:1.4;color:var(--gv-ink-3)}
.gv-trust .gv-ic{width:22px;height:22px;color:var(--gv-gold-ink);margin-top:1px}
.gv-trust strong{display:block;font-size:13px;font-weight:600;color:var(--gv-ink)}
.gv-trust a{text-decoration:none}
.gv-trust a:hover{color:var(--gv-wine)}

/* ---------- cross-sells ---------- */
.gv-cl .gv-shelf{margin-top:24px;border-top:1px solid var(--gv-line)}

/* ---------- empty ---------- */
.gv-empty{text-align:center;padding:40px 16px 24px;max-width:520px;margin:0 auto;display:grid;justify-items:center;gap:10px;color:var(--gv-ink-2)}
.gv-empty>.gv-ic{width:40px;height:40px;color:var(--gv-gold-ink);stroke-width:1.1}
.gv-empty-t{font:600 26px/1.1 var(--gv-serif);color:var(--gv-ink)}
.gv-empty .gv-btn{margin-top:10px}

/* ---------- sticky mobile CTA ---------- */
.gv-cl-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px var(--gv-gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);box-shadow:0 -1px 0 var(--gv-line),0 -8px 24px rgba(28,24,22,.06);transition:transform .25s ease}
.gv-cl-sticky .gv-btn{width:100%;height:50px;font-size:12px;letter-spacing:.1em}
.gv-cl-sticky-total{font-weight:700;letter-spacing:.02em;white-space:nowrap}
.gv-cl.is-cta-visible .gv-cl-sticky{transform:translateY(110%)}
.gv-cart-page .gv-ftr{padding-bottom:96px}
@media (min-width:1024px){.gv-cl-sticky{display:none}.gv-cart-page .gv-ftr{padding-bottom:28px}}
