/* Lavie Cart Page Styles */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@600;700&display=swap');

:root{
  --lavie-primary:#1882B1;
  --lavie-primary-dark:#0E78A7;
  --lavie-text:#063043;
  --lavie-muted:rgba(6,48,67,0.6);
  --lavie-bg:#F6F9FF;
  --lavie-border:#C9E1EB;
  --lavie-success:#2DBE7A;
  --lavie-danger:#E96A6A;
}

.lavie-cart-wrap{display:flex;flex-direction:column;align-items:center;padding:48px clamp(16px,5vw,80px) 40px;gap:24px;overflow-x:hidden}
.lavie-cart-inner{width:100%;max-width:1280px;display:flex;flex-direction:column;gap:40px;overflow-x:hidden}

.lavie-cart-wrap .lavie-cart-title,
h1.lavie-cart-title{font-family:'Nunito',sans-serif !important;font-weight:700 !important;font-size:48px !important;line-height:1 !important;text-align:center;color:var(--lavie-text);margin:0}

/* Header row */
.lavie-cart-head{display:grid;grid-template-columns:400px 232px 160px 232px 64px;align-items:center;padding:12px;gap:24px;color:var(--lavie-muted)}
.lavie-cart-head .h{font-family:'Nunito',sans-serif;font-weight:700;font-size:18px;line-height:1}

/* Item rows */
.lavie-cart-items{display:flex;flex-direction:column;gap:8px}
.lavie-cart-row{display:grid;grid-template-columns:400px 232px 160px 232px 64px;align-items:center;padding:12px;gap:24px;background:var(--lavie-bg);border-radius:32px}

.lavie-ci-prod{display:flex;align-items:center;gap:16px;height:80px}
.lavie-ci-thumb{width:80px;height:80px;border-radius:24px;overflow:hidden;background:#D9D9D9;flex:0 0 80px}
.lavie-ci-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lavie-ci-text{display:flex;flex-direction:column;gap:8px}
.lavie-ci-name{font-family:'Nunito',sans-serif;font-weight:700;font-size:18px;line-height:1;color:var(--lavie-text);margin:0}
.lavie-ci-name a{color:inherit;text-decoration:none}
.lavie-ci-name a:hover{text-decoration:none}
.lavie-ci-attr{font-family:'Nunito',sans-serif;font-weight:700;font-size:16px;line-height:1;color:var(--lavie-muted)}

.lavie-ci-price,.lavie-ci-subtotal{display:flex;justify-content:center;align-items:center;height:18px;font-family:'Nunito',sans-serif;font-weight:700;font-size:18px;color:var(--lavie-text)}

/* Quantity pill */
.lavie-qty{display:flex;align-items:center;padding:8px;gap:6px;width:160px;justify-content:center;height:64px;background:var(--lavie-bg);border:1px solid var(--lavie-border);border-radius:9999px;margin:0 auto}
.lavie-qty input.qty{width:48px;min-width:48px;height:48px;background:#fff;border:2px solid #fff;border-radius:70px;text-align:center;font-family:'Nunito',sans-serif;font-weight:700;font-size:20px;color:var(--lavie-primary);padding:0;box-shadow:none;appearance:textfield;-moz-appearance:textfield}
.lavie-qty input.qty::-webkit-outer-spin-button,.lavie-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.lavie-qty .lavie-qty-btn{display:flex;justify-content:center;align-items:center;width:48px;height:48px;color:var(--lavie-primary);font-size:24px;border:0;background:transparent;border-radius:70px;cursor:pointer}
.lavie-qty .lavie-qty-btn:focus-visible{outline:2px solid var(--lavie-primary);outline-offset:2px}
.lavie-qty .lavie-qty-btn:focus{outline:none}

/* Remove */
.lavie-remove{display:flex;justify-content:center;align-items:center}
.lavie-remove a{display:flex;justify-content:center;align-items:center;width:64px;height:64px;border-radius:70px;color:var(--lavie-muted);text-decoration:none}
.lavie-remove a:hover{background:rgba(24,130,177,0.08)}

/* WooCommerce notices */
.lavie-cart-wrap .woocommerce-notices-wrapper{width:100%;max-width:1280px}
.lavie-cart-wrap .woocommerce-message,
.lavie-cart-wrap .woocommerce-info,
.lavie-cart-wrap .woocommerce-error,
.lavie-cart-wrap ul.woocommerce-message,
.lavie-cart-wrap ul.woocommerce-info,
.lavie-cart-wrap ul.woocommerce-error{
  list-style:none;
  margin:0 0 16px 0;
  padding:0;
  border:1px solid var(--lavie-border);
  background:#fff;
  border-radius:16px;
}
.woocommerce-cart .woocommerce-notices-wrapper{width:100%;max-width:1280px;margin:0 auto}
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-cart ul.woocommerce-message,
.woocommerce-cart ul.woocommerce-info,
.woocommerce-cart ul.woocommerce-error{
  list-style:none;
  margin:0 0 16px 0;
  border:1px solid var(--lavie-border);
  background:#fff;
  border-radius:16px;
}
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error{padding:16px 20px;display:flex;align-items:center;gap:12px;font-family:'Nunito',sans-serif;font-weight:700;color:var(--lavie-text)}
.lavie-cart-wrap .woocommerce-message li,
.lavie-cart-wrap .woocommerce-info li,
.lavie-cart-wrap .woocommerce-error li{
  margin:0;
  padding:16px 20px;
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Nunito',sans-serif;
  font-weight:700;
  color:var(--lavie-text);
}
.woocommerce-cart ul.woocommerce-message li,
.woocommerce-cart ul.woocommerce-info li,
.woocommerce-cart ul.woocommerce-error li{margin:0;padding:16px 20px;display:flex;align-items:center;gap:12px;font-family:'Nunito',sans-serif;font-weight:700;color:var(--lavie-text)}
.lavie-cart-wrap .woocommerce-message{border-left:4px solid var(--lavie-primary)}
.lavie-cart-wrap .woocommerce-info{border-left:4px solid var(--lavie-primary-dark)}
.lavie-cart-wrap .woocommerce-error{border-left:4px solid var(--lavie-danger)}
.lavie-cart-wrap ul.woocommerce-message{border-left:4px solid var(--lavie-primary)}
.lavie-cart-wrap ul.woocommerce-info{border-left:4px solid var(--lavie-primary-dark)}
.lavie-cart-wrap ul.woocommerce-error{border-left:4px solid var(--lavie-danger)}
.woocommerce-cart .woocommerce-message{border-left:4px solid var(--lavie-primary)}
.woocommerce-cart .woocommerce-info{border-left:4px solid var(--lavie-primary-dark)}
.woocommerce-cart .woocommerce-error{border-left:4px solid var(--lavie-danger)}
.woocommerce-cart ul.woocommerce-message{border-left:4px solid var(--lavie-primary)}
.woocommerce-cart ul.woocommerce-info{border-left:4px solid var(--lavie-primary-dark)}
.woocommerce-cart ul.woocommerce-error{border-left:4px solid var(--lavie-danger)}

.lavie-cart-wrap .woocommerce-message .button,
.lavie-cart-wrap .woocommerce-info .button,
.lavie-cart-wrap .woocommerce-error .button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 16px;
  background:var(--lavie-primary);
  color:#fff;
  border-radius:70px;
  border:1px solid transparent;
  font-family:'Nunito',sans-serif;
  font-weight:700;
  text-decoration:none;
}
.woocommerce-cart .woocommerce-message .button,
.woocommerce-cart .woocommerce-info .button,
.woocommerce-cart .woocommerce-error .button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;background:var(--lavie-primary);color:#fff;border-radius:70px;border:1px solid transparent;font-family:'Nunito',sans-serif;font-weight:700;text-decoration:none}
.lavie-cart-wrap .woocommerce-message .button:hover,
.lavie-cart-wrap .woocommerce-info .button:hover,
.lavie-cart-wrap .woocommerce-error .button:hover{
  background:#F6F9FF;
  color:var(--lavie-primary);
  border-color:#D7E8EF;
  text-decoration:none;
}
.woocommerce-cart .woocommerce-message .button:hover,
.woocommerce-cart .woocommerce-info .button:hover,
.woocommerce-cart .woocommerce-error .button:hover{background:#F6F9FF;color:var(--lavie-primary);border-color:#D7E8EF;text-decoration:none}
.lavie-cart-wrap .woocommerce-notices-wrapper a{color:var(--lavie-primary);text-decoration:none;font-weight:700}
.lavie-cart-wrap .woocommerce-notices-wrapper a:hover{color:#063043;text-decoration:none}
.woocommerce-cart .woocommerce-notices-wrapper a{color:var(--lavie-primary);text-decoration:none;font-weight:700}
.woocommerce-cart .woocommerce-notices-wrapper a:hover{color:#063043;text-decoration:none}

/* Stronger overrides for Woo notices regardless of wrapper/order */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error{
  padding:16px 20px !important;
  border:1px solid var(--lavie-border) !important;
  background:#fff !important;
  border-radius:16px !important;
  color:var(--lavie-text) !important;
  width:100% !important;
  max-width:1280px !important;
  margin:0 auto 16px auto !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  box-shadow:none !important;
  font-family:'Nunito',sans-serif !important;
  font-weight:700 !important;
  box-sizing:border-box !important;
}
body.woocommerce-cart .woocommerce-message{border-left:4px solid var(--lavie-primary) !important}
body.woocommerce-cart .woocommerce-info{border-left:4px solid var(--lavie-primary-dark) !important}
body.woocommerce-cart .woocommerce-error{border-left:4px solid var(--lavie-danger) !important}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before{display:none !important}

/* Promo + referral and totals grid */
.lavie-cart-bottom{display:flex;flex-direction:row;align-items:flex-start;padding:0;width:100%;max-width:1280px;background:var(--lavie-bg);border-radius:32px;overflow:hidden}

.lavie-codes{flex:1;padding:48px;display:flex;flex-direction:column;gap:40px}
.lavie-code-block{display:flex;flex-direction:column;gap:8px}
.lavie-code-title{font-family:'Nunito',sans-serif;font-weight:600;font-size:20px;color:var(--lavie-text)}
.lavie-input-pill{position:relative;display:flex;align-items:center;gap:16px;height:64px;padding:20px 24px;background:#fff;border:1px solid var(--lavie-border);border-radius:70px}
.lavie-input-pill input{flex:1 1 auto;border:0;outline:none;font-family:'Nunito',sans-serif;font-weight:600;font-size:20px;color:var(--lavie-muted)}
.lavie-apply-wrapper{position:absolute;width:64px;height:64px;right:0;top:0;display:flex;align-items:center;justify-content:center;padding:4px;z-index:1}
.lavie-apply{width:56px !important;height:56px !important;min-width:56px;min-height:56px;border-radius:50% !important;background:var(--lavie-primary);border:0 !important;display:flex;justify-content:center;align-items:center;cursor:pointer;padding:0 !important;box-sizing:border-box}
.lavie-apply:hover{background:var(--lavie-primary-dark)}
.lavie-apply svg{width:17px;height:24px;flex-shrink:0}
.lavie-note{padding:0 24px;font-family:'Nunito',sans-serif;font-weight:600;font-size:14px;line-height:1.5;color:var(--lavie-muted)}
.lavie-sep{height:1px;background:var(--lavie-border);margin:0 24px}

/* Totals */
.lavie-totals{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;gap:16px;background:linear-gradient(81.46deg,#DBE9F1 0%, rgba(219,233,241,0.2) 100%);border-radius:32px}
.lavie-totals-top{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;max-width:544px}
.lavie-totals-title{font-family:'Nunito',sans-serif;font-weight:700;font-size:40px;color:var(--lavie-text);flex:1}
.lavie-totals-link{font-family:'Nunito',sans-serif;font-weight:700;font-size:16px;color:var(--lavie-primary);text-decoration:none !important}
.lavie-totals-link:hover,.lavie-totals-link:focus{color:#063043;text-decoration:none !important}

.lavie-totals-card{width:100%;max-width:544px;background:#fff;border-radius:24px;padding:24px;display:flex;flex-direction:column;gap:24px}
.lavie-line{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.lavie-line .l{font-family:'Nunito',sans-serif;font-weight:700;font-size:24px;color:var(--lavie-text)}
.lavie-line .r{font-family:'Nunito',sans-serif;font-weight:700;font-size:24px;color:var(--lavie-muted)}
.lavie-total .r{color:var(--lavie-text)}
.lavie-total small{display:block;margin-top:4px;font-size:14px;color:var(--lavie-muted);font-weight:700}

.lavie-checkout{width:100%;max-width:544px}
.lavie-checkout .checkout-button{display:flex;justify-content:center;align-items:center;gap:16px;width:100%;padding:28px 40px;background:var(--lavie-primary);border-radius:70px;font-family:'Nunito',sans-serif;font-weight:700;font-size:24px;color:#fff;border:1px solid transparent;text-decoration:none;transition:all 0.3s ease}
.lavie-checkout .checkout-button:hover,.lavie-checkout .checkout-button:focus{text-decoration:none}
.lavie-checkout .checkout-button:hover{background:#F6F9FF;color:var(--lavie-primary);border-color:#D7E8EF}
.lavie-checkout-icon{position:relative;display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center}
.lavie-icon-default,.lavie-icon-hover{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:opacity 0.3s ease}
.lavie-icon-default{opacity:1;width:17px;height:24px}
.lavie-icon-hover{opacity:0;width:18px;height:24px}
.lavie-checkout .checkout-button:hover .lavie-icon-default{opacity:0}
.lavie-checkout .checkout-button:hover .lavie-icon-hover{opacity:1}

/* Hide default update button visually but keep accessible */
.lavie-hidden{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* Responsive */
@media (max-width: 1024px){
  .lavie-cart-head,.lavie-cart-row{grid-template-columns:1fr 120px 160px 140px 48px}
  .lavie-ci-price,.lavie-ci-subtotal{font-size:16px}
  .lavie-qty{width:160px}
}
@media (max-width: 1100px){
  .lavie-cart-head,.lavie-cart-row{grid-template-columns:minmax(200px,1fr) 100px 140px 100px 48px;gap:12px}
}
@media (max-width: 720px){
  .lavie-cart-wrap{padding:24px 16px}
  .lavie-cart-inner{gap:24px}
  .lavie-cart-wrap .lavie-cart-title,
  h1.lavie-cart-title{font-size:32px !important}
  .lavie-cart-head{display:none}
  .lavie-cart-row{position:relative;grid-template-columns:auto 1fr;grid-template-areas:"prod prod" "sub qty";gap:12px;padding:12px}
  .lavie-ci-prod{grid-area:prod;height:auto;padding-right:56px}
  .lavie-ci-thumb{width:64px;height:64px;flex:0 0 64px;border-radius:16px}
  .lavie-ci-name{font-size:16px}
  .lavie-ci-attr{font-size:14px}
  .lavie-remove{grid-area:remove;position:absolute;right:8px;top:8px}
  .lavie-remove a{width:40px;height:40px}
  .lavie-ci-price{display:none !important}
  .lavie-qty{grid-area:qty;justify-self:flex-end;width:clamp(120px,56vw,180px);max-width:180px;height:48px;gap:4px}
  .lavie-qty .lavie-qty-btn{width:40px;height:40px;font-size:20px}
  .lavie-qty input.qty{width:40px;min-width:40px;height:40px;font-size:16px;background:transparent;border:0}
  .lavie-ci-subtotal{grid-area:sub;align-self:center;justify-self:flex-start;font-size:18px;color:var(--lavie-text)}

  .lavie-cart-bottom{flex-direction:column;padding:0;gap:16px;background:transparent;border-radius:0;overflow:visible}
  .lavie-codes{padding:16px;gap:16px;background:var(--lavie-bg);border-radius:24px}
  .lavie-code-block{gap:8px}
  .lavie-code-title{font-size:18px}
  .lavie-input-pill{height:52px;padding:14px 16px}
  .lavie-input-pill input{font-size:16px}
  .lavie-apply-wrapper{width:52px;height:52px}
  .lavie-apply{width:44px !important;height:44px !important;min-width:44px;min-height:44px;border-radius:50% !important}
  .lavie-apply svg{width:13px;height:18px}
  .lavie-note{font-size:12px;padding:0 20px}
  .lavie-sep{margin:0 20px}

  .lavie-totals{padding:24px;gap:12px;width:100%;max-width:none;margin-top:16px}
  .lavie-totals-top{flex-direction:column;align-items:flex-start;gap:8px}
  .lavie-totals-title{font-size:28px}
  .lavie-totals-link{font-size:14px}
  .lavie-totals-card{padding:20px;gap:16px}
  .lavie-line .l,.lavie-line .r{font-size:18px}
  .lavie-total small{font-size:12px}
  .lavie-checkout .checkout-button{padding:20px 32px;font-size:18px}
  .lavie-checkout-icon{width:20px;height:20px}
  .lavie-icon-default{width:14px;height:20px}
  .lavie-icon-hover{width:15px;height:20px}
}

@media (max-width: 480px){
  .lavie-cart-wrap .lavie-cart-title,
  h1.lavie-cart-title{font-size:28px !important}
  .lavie-ci-thumb{width:56px;height:56px;flex:0 0 56px;border-radius:14px}
  .lavie-qty{height:56px}
  .lavie-qty .lavie-qty-btn{width:44px;height:44px}
  .lavie-qty input.qty{width:44px;min-width:44px;height:44px;font-size:18px}
  .lavie-checkout .checkout-button{padding:16px 24px;font-size:16px}
}
