/* =========================================================
   Vegas Labs — cart / request list
   Measurements: Figma export "08 · Cart.png" (desktop 1440 at x 640, mobile 390 at x 7040, empty at x 9240; 4×).
   Page = native Elementor containers/widgets; live parts come from snippet "VL Cart":
   .vl-cart-items (lines) · .vl-cart-sum (totals) · .vl-cart-docs (lot → COA) · .vl-dial (empty state).
   ========================================================= */

/* ---------- filled / empty switch (body class from the snippet, kept in sync by vl-cart.js) ---------- */
body.vl-cart-empty .vl-cart-filled-only,body.vl-cart-filled .vl-cart-empty-only{display:none!important}
body.vl-cart-busy .vl-cart-part{opacity:.55;pointer-events:none;transition:opacity .2s ease}

/* ---------- page head ---------- */
.vl-cart-top{--padding-top:80.9px;--padding-bottom:79.1px;background:var(--vl-surf)}
.vl-cart-head{margin-top:21px}
:root .vl-cart-title .elementor-heading-title{margin:0;font-family:"Geist",sans-serif;font-size:60px;line-height:60px;font-weight:500;letter-spacing:-.03em;color:var(--vl-ink)}
.vl-cart-head__meta{text-align:right;margin-bottom:-1.1px}
.vl-sec .vl-cart-head__meta p{margin:0}
.vl-sec .vl-cart-head__meta p + p{margin-top:7.7px}
.vl-cart-head__count{color:var(--vl-ink)}

/* ---------- two columns ---------- */
.vl-cart-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 420px;column-gap:64px;margin-top:48px}
.vl-cart-main,.vl-cart-side{width:auto!important;min-width:0}

/* ---------- line items ---------- */
.vl-cart-items{margin:0;padding:0;list-style:none;border-top:1px solid var(--vl-border)}
.vl-cart-item{display:grid;grid-template-columns:128px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:24px;padding:24.2px 0 24.2px;border-bottom:1px solid var(--vl-line);transition:opacity .25s ease}
.vl-cart-item.is-removing{opacity:.4}
.vl-cart-item__img{grid-row:1 / span 2;display:flex;align-items:center;justify-content:center;width:128px;height:160px;border-radius:12px;background:var(--vl-ivory);overflow:hidden}
.vl-cart-item__img img{display:block;width:auto!important;max-width:86%!important;height:auto!important;max-height:86%;object-fit:contain}
.vl-cart-item__body{grid-column:2;min-width:0;margin-top:-.9px}
.vl-sec .vl-cart-item__cat{margin:0;font-family:"Geist Mono",monospace;font-size:11px;line-height:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--vl-mute)}
:root .vl-cart-item__name{margin:6.4px 0 0;font-family:"Geist",sans-serif;font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.01em;color:var(--vl-ink)}
.vl-cart-item__name a{color:inherit;text-decoration:none}
.vl-cart-item__name a:hover{text-decoration:underline;text-underline-offset:4px}
.vl-sec .vl-cart-item__meta{display:flex;flex-wrap:wrap;align-items:center;margin:6.7px 0 0;font-family:"Geist Mono",monospace;font-size:12px;line-height:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--vl-text)}
.vl-cart-item__meta i{display:block;width:1px;height:12px;margin:0 9px;background:var(--vl-border)}
.vl-cart-item__meta .is-id{color:var(--vl-green)}
.vl-cart-item__ruo{margin-top:9px}
.vl-cart-item__ruo .vl-icon{width:13px;height:13px}
.vl-cart-item__actions{grid-column:2;grid-row:2;display:flex;align-items:center;gap:18.5px;margin-top:5.2px}
.vl-cart-item__price{grid-column:3;grid-row:1;margin-top:-4.3px;text-align:right;white-space:nowrap}
.vl-cart-item__price strong{display:block;font-family:"Geist Mono",monospace;font-size:20px;line-height:24px;font-weight:400;color:var(--vl-ink)}
.vl-cart-item__price strong .woocommerce-Price-amount{font:inherit}
.vl-cart-item__price > span{display:block;margin-top:3.5px;font-family:"Geist Mono",monospace;font-size:11px;line-height:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--vl-mute)}
.vl-cart-items__empty{margin:0;padding:24px 0;border-top:1px solid var(--vl-border);color:var(--vl-text)}

/* quantity stepper */
.vl-cart-qty{display:inline-grid;grid-template-columns:46.2px 34.4px 45px;align-items:center;height:44px;box-sizing:border-box;padding-right:4.4px;border:1px solid var(--vl-border);border-radius:999px;background:transparent}
:root .vl-cart-qty button{display:flex;align-items:center;justify-content:center;width:100%;height:42px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--vl-ink);cursor:pointer}
:root .vl-cart-qty button:hover,:root .vl-cart-qty button:focus-visible{background:var(--vl-ivory);color:var(--vl-ink)}
:root .vl-cart-qty button[disabled]{color:var(--vl-border);cursor:default;background:transparent}
:root .vl-cart-qty input{width:100%;height:42px;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;text-align:center;font-family:"Geist Mono",monospace;font-size:15px;color:var(--vl-ink);-moz-appearance:textfield}
.vl-cart-qty input::-webkit-outer-spin-button,.vl-cart-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
:root .vl-cart-item__remove{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;font-family:"Geist",sans-serif;font-size:14px;line-height:20px;font-weight:400;color:var(--vl-mute);cursor:pointer}
:root .vl-cart-item__remove:hover,:root .vl-cart-item__remove:focus-visible{background:transparent;color:var(--vl-ink);text-decoration:underline;text-underline-offset:3px}

/* below the list */
.vl-cart-foot{margin-top:31.9px;gap:16px}
.vl-sec .vl-cart-foot__note p{margin:0;text-align:right}

/* ---------- side boxes ---------- */
.vl-cart-box{box-sizing:border-box;border-radius:20px;background:var(--vl-ivory)}
.vl-cart-box--summary{padding:31.3px 32px 32px}
:root .vl-cart-box__title .elementor-heading-title{margin:0;font-family:"Geist",sans-serif;font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.01em;color:var(--vl-ink)}
.vl-cart-sum{margin:18.7px 0 0;padding:14.8px 0 23.6px;border-top:1px solid var(--vl-line-2)}
.vl-cart-sum__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.vl-cart-sum__row + .vl-cart-sum__row{margin-top:14px}
.vl-cart-sum dt{font-family:"Geist",sans-serif;font-size:16px;line-height:24px;color:var(--vl-text)}
.vl-cart-sum dd{margin:0;font-family:"Geist Mono",monospace;font-size:14px;line-height:24px;color:var(--vl-ink);text-align:right}
.vl-cart-sum__row.is-note dd{color:var(--vl-text)}
.vl-cart-sum__row.is-discount dt,.vl-cart-sum__row.is-discount dd{color:var(--vl-green)}
.vl-cart-sum__row.is-list dd{color:var(--vl-text)}
.vl-cart-sum--total{margin:0;padding:13.5px 0 0;border-top:1px solid var(--vl-border)}
.vl-cart-sum--total dt{font-size:18px;font-weight:600;color:var(--vl-ink)}
.vl-cart-sum--total dd{font-size:20px}
.vl-cart-checkout{margin-top:21.1px}
.vl-cart-checkout .elementor-button{width:100%}
.vl-cart-note{margin-top:20px}
.vl-sec .vl-cart-note p{display:flex;align-items:flex-start;gap:8px;margin:0;padding:12px 16px 11.8px;border-radius:12px;background:var(--vl-tint);font-size:14px;line-height:21px;color:var(--vl-green)}
.vl-cart-note .vl-icon{margin-top:2px}

.vl-cart-box--docs{margin-top:16.2px;padding:23px 24px 23.8px}
.vl-sec .vl-cart-docs-head h3{display:flex;align-items:center;gap:8px;margin:0;font-family:"Geist",sans-serif;font-size:15px;line-height:20px;font-weight:500;color:var(--vl-ink)}
.vl-cart-docs-head h3 .vl-icon{color:var(--vl-green)}
.vl-sec .vl-cart-docs-head p{margin:10.9px 0 0;font-size:14px;line-height:20px;color:var(--vl-text)}
.vl-cart-docs{margin:13.1px 0 0;padding:0;list-style:none}
.vl-cart-docs li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13.4px 0 11.6px;border-top:1px solid var(--vl-line-2);font-family:"Geist Mono",monospace;font-size:12px;line-height:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--vl-text)}
.vl-cart-docs a{display:inline-flex;align-items:center;gap:4px;flex:none;color:var(--vl-green);text-decoration:none}
.vl-cart-docs a:hover{text-decoration:underline;text-underline-offset:3px}
.vl-cart-help{margin-top:15.1px}
.vl-sec .vl-cart-help p{margin:0}
.vl-cart-help a{color:inherit;text-decoration:none}
.vl-cart-help a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- empty state ---------- */
.vl-cart-empty-state{align-items:center;text-align:center;padding-top:39.1px}
.vl-dial{position:relative;width:280px;height:280px;margin:0 auto}
.vl-dial__svg{display:block;width:280px;height:280px;overflow:visible}
.vl-dial__icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--vl-mute)}
.vl-cart-empty__kicker{margin-top:38.9px}
.vl-sec .vl-cart-empty__kicker p{margin:0}
:root .vl-cart-empty__title .elementor-heading-title{margin:14.6px 0 0;font-family:"Geist",sans-serif;font-size:48px;line-height:52px;font-weight:500;letter-spacing:-.025em;color:var(--vl-ink)}
:root .vl-cart-empty__lead{max-width:560px!important;margin:14.6px auto 0}
.vl-sec .vl-cart-empty__lead p{margin:0;font-size:18px;line-height:28px;color:var(--vl-text)}
.vl-cart-empty__btns{gap:16px;margin-top:40.4px}
.vl-cart-empty__btns > .elementor-widget{width:auto!important}
.vl-cart-empty__foot{margin-top:38.9px}
.vl-sec .vl-cart-empty__foot p{margin:0}
body.vl-cart-empty .vl-cart-top{--padding-top:80.9px;--padding-bottom:119.1px}

/* ---------- continue exploring ---------- */
.vl-cart-more{--padding-top:114px;--padding-bottom:119.2px;background:var(--vl-ivory)}
.vl-cart-more .vl-row-head{gap:32px}
.vl-cart-more .vl-row-head__text{flex:1 1 auto;min-width:0;width:auto!important}
.vl-cart-more .vl-row-head > .elementor-widget-button{flex:none;width:auto!important}
.vl-cart-more .vl-sh-lead{margin-top:20px!important}
/* same small card as the homepage catalog: 444 tall, 280 media */
.vl-cart-loop{margin-top:64.4px}
.vl-cart-loop .elementor-loop-container{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:444px;gap:24px!important}
.vl-cart-loop .vl-card__head{height:280px}
.vl-cart-loop .vl-card .vl-card__info{padding-top:25.3px}
.vl-cart-loop .vl-card .vl-meta{margin-top:16.2px}
.vl-cart-loop .vl-card .vl-card__actions{margin-top:16.5px}
.vl-cart-loop .vl-card__img--front{width:175.6px!important;left:calc(50% - 69.7px);top:31.8px}

/* Loop Item "VL Product Row" (mobile list) */
.vl-row{flex-wrap:nowrap!important;gap:12px!important;padding:0 17.4px 0 12px!important}
.vl-row__img{flex:none;width:96px!important}
.vl-row__img a,.vl-row__img img{display:block}
.vl-row__img img{width:96px!important;height:112px!important;object-fit:contain;padding:8px;box-sizing:border-box;border-radius:12px;background:var(--vl-glass)}
.vl-row__body{flex:1 1 auto;min-width:0;width:auto!important}
.vl-sec .vl-row__cat p,.vl-row__cat{margin:0;font-family:"Geist Mono",monospace;font-size:11px;line-height:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--vl-mute)}
.vl-row__cat a{color:inherit;text-decoration:none}
:root .vl-row__title .elementor-heading-title{margin:2.5px 0 0;font-family:"Geist",sans-serif;font-size:18px;line-height:24px;font-weight:600;color:var(--vl-ink)}
.vl-row__title a{color:inherit}
.vl-row__meta{margin-top:4px;gap:0!important}
.vl-row__meta .elementor-widget{width:auto!important}
.vl-row__strength,.vl-row__lot,.vl-sec .vl-row__strength p,.vl-sec .vl-row__lot p{margin:0;font-family:"Geist Mono",monospace;font-size:12px;line-height:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--vl-text)}
.vl-row__lot::before{content:"";display:inline-block;width:1px;height:12px;margin:0 9px;vertical-align:-2px;background:var(--vl-border)}
.vl-row__cart{flex:none;width:auto!important}
:root .vl-btn-cart--icon{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}
.vl-btn-cart--icon span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- tablet ---------- */
@media (max-width:1024px){
  .vl-cart-grid{grid-template-columns:minmax(0,1fr);row-gap:48px}
  .vl-cart-loop .elementor-loop-container{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- mobile ---------- */
@media (max-width:767px){
  .vl-cart-top{--padding-top:41px;--padding-bottom:72px}
  .vl-cart-head{flex-direction:column!important;align-items:flex-start!important;margin-top:14.9px}
  :root .vl-cart-title .elementor-heading-title{font-size:40px;line-height:44px}
  .vl-cart-head__meta{text-align:left;margin-top:14.3px}
  .vl-cart-grid{margin-top:32.8px;row-gap:0}

  .vl-cart-item{grid-template-columns:88px minmax(0,1fr) auto;column-gap:16px;padding:20.2px 0 19.4px}
  .vl-cart-item__img{grid-row:1;width:88px;height:104px}
  .vl-cart-item__body{grid-column:2 / span 2}
  .vl-cart-item__body{margin-top:.3px}
  :root .vl-cart-item__name{margin-top:.5px;font-size:20px;line-height:20px}
  .vl-sec .vl-cart-item__meta{margin-top:.5px;font-size:11px;line-height:14px}
  .vl-cart-item__meta i{width:auto;height:auto;margin:0 6px;background:none}
  .vl-cart-item__meta i::before{content:"·"}
  .vl-cart-item__meta .is-form + i{flex-basis:100%;height:0;margin:0}
  .vl-cart-item__meta .is-form + i::before{content:none}
  .vl-cart-item__ruo{margin-top:.5px}
  .vl-cart-item__actions{grid-column:1 / span 2;grid-row:2;align-self:start;margin-top:15.8px;gap:16px}
  .vl-cart-item__price{grid-column:3;grid-row:2;align-self:start;margin-top:16.9px}
  .vl-cart-item__price > span{margin-top:.8px}

  .vl-cart-foot{flex-direction:column!important;align-items:flex-start!important;margin-top:25.6px;gap:19.5px!important}
  .vl-sec .vl-cart-foot__note p{text-align:left;line-height:14px}

  .vl-cart-side{margin-top:32.1px}
  .vl-cart-box--summary{padding:31.3px 32px 32px}
  :root .vl-cart-box__title .elementor-heading-title{font-size:21px;line-height:28px}
  .vl-cart-box--docs{margin-top:32px;padding:18.1px 20px 8px}
  .vl-sec .vl-cart-docs-head p{margin-top:10px;line-height:21px}
  .vl-cart-docs li{padding:13.4px 0 23.7px}
  .vl-cart-help{display:none}
  .vl-cart-top{--padding-bottom:64px}

  body.vl-cart-empty .vl-cart-top{--padding-top:56px;--padding-bottom:72px}
  .vl-cart-empty-state{padding-top:0}
  .vl-dial,.vl-dial__svg{width:220px;height:220px}
  :root .vl-cart-empty__title .elementor-heading-title{font-size:34px;line-height:38px}
  .vl-cart-empty__btns{flex-direction:column!important;gap:20px;width:100%}
  .vl-cart-empty__btns .vl-ebtn--primary,.vl-cart-empty__btns .vl-ebtn--primary .elementor-button{width:100%!important}

  .vl-cart-more{--padding-top:66px;--padding-bottom:72px}
  .vl-cart-loop-m{margin-top:43.2px}
  .vl-cart-loop-m .elementor-loop-container{--grid-row-gap:36.2px;row-gap:36.2px}
  .vl-cart-more__all{margin-top:44px}
  .vl-cart-more__all .elementor-button{width:100%}
}
