﻿:root {
  --cavem-maroon: #741A2A;
  --cavem-maroon-dark: #4A101C;
  --cavem-gold: #cbb4a3;
  --cavem-green: #10B981;
  --cavem-cream: #FFFDF9;
  --cavem-border: #EFE6DC;
  --cavem-shadow: 0 10px 25px -5px rgba(116, 26, 42, 0.08);
}

/* Free Shipping Meter */
.cavem-shipping-meter-wrap { background: linear-gradient(135deg, #FFF9F2 0%, #FFF4E8 100%); border: 1.5px solid #F3DEC8; border-radius: 14px; padding: 16px 20px; margin: 15px 0 25px 0; box-shadow: var(--cavem-shadow); position: relative; overflow: hidden; }
.csm-info { color: var(--cavem-maroon-dark); font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.csm-info strong { color: var(--cavem-maroon); background: #FFE6D6; padding: 2px 8px; border-radius: 6px; }
.csm-unlocked { color: #065F46; background: #D1FAE5; border: 1px solid #A7F3D0; font-weight: 800; font-size: 14px; text-align: center; padding: 10px 14px; border-radius: 10px; }
.csm-bar-bg { background: #EADBD0; height: 12px; border-radius: 20px; overflow: hidden; }
.csm-bar-fill { background: linear-gradient(90deg, #741A2A 0%, #D93854 50%, #10B981 100%); height: 100%; border-radius: 20px; transition: width 0.6s ease; }

/* Delivery Schedule Card */
.cavem-slot-hero-card { background: #FFFFFF; border: 2px solid #EFE6DC; border-radius: 16px; padding: 20px; margin: 20px 0 30px 0; box-shadow: var(--cavem-shadow); }
.slot-hero-header { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.slot-badge-icon { font-size: 24px; background: #FFF1F3; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 12px; }
.slot-hero-header h4 { margin: 0; font-size: 16px; font-weight: 800; color: var(--cavem-maroon-dark); }
.slot-hero-header p { margin: 2px 0 0 0; font-size: 12px; color: #7A6A65; }

/* Date Grid */
.cavem-date-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 10px; }
.cavem-date-option { position: relative; cursor: pointer; margin: 0 !important; }
.cavem-date-option input[type="radio"] { position: absolute; opacity: 0; cursor: pointer; }
.date-option-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px 6px; background: #FAF8F5; border: 2px solid #EADBCE; border-radius: 12px; text-align: center; transition: all 0.2s ease; }
.date-day { font-size: 13px; font-weight: 800; color: #2D2424; }
.date-sub { font-size: 11.5px; color: #7A6A65; margin-top: 2px; font-weight: 600; }
.cavem-date-option input[type="radio"]:checked + .date-option-inner { background: #FFF5F6; border-color: #741A2A; box-shadow: 0 0 0 1px #741A2A; }
.cavem-date-option input[type="radio"]:checked + .date-option-inner .date-day { color: #741A2A; }
.cavem-date-option input[type="radio"]:checked + .date-option-inner .date-sub { color: #741A2A; font-weight: 700; }

/* Slot Grid */
.cavem-slot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cavem-slot-option { position: relative; cursor: pointer; margin: 0 !important; }
.cavem-slot-option input[type="radio"] { position: absolute; opacity: 0; cursor: pointer; }
.slot-option-inner { display: flex; flex-direction: column; padding: 14px 16px; background: #FAF8F5; border: 2px solid #EADBCE; border-radius: 12px; transition: all 0.2s ease; }
.slot-time-text { font-size: 14px; font-weight: 700; color: #2D2424; }
.slot-guarantee-tag { font-size: 11px; color: #10B981; font-weight: 700; margin-top: 4px; text-transform: uppercase; }
.cavem-slot-option input[type="radio"]:checked + .slot-option-inner { background: #FFF5F6; border-color: #741A2A; box-shadow: 0 0 0 1px #741A2A; }
.cavem-slot-option input[type="radio"]:checked + .slot-option-inner .slot-time-text { color: #741A2A; }

/* Pincode Widget */
.cavem-pincode-widget { background: #faf6f0; border: 1.5px solid #e8dbcb; border-radius: 10px; padding: 16px; margin: 20px 0; }
.cp-title { font-weight: 700; color: #4a101c; font-size: 13px; display: block; margin-bottom: 8px; }
.cp-input-wrap { display: flex; gap: 8px; }
.cp-input-wrap input { width: 160px; padding: 8px 12px; border: 1.5px solid #c9b4a1; border-radius: 6px; font-size: 14px; }
.cp-input-wrap button { background: #741a2a; color: #fff; border: 0; padding: 8px 18px; border-radius: 6px; cursor: pointer; font-weight: 700; font-size: 13px; }
#cavem_pin_response { margin-top: 8px; font-size: 12px; font-weight: 700; }
#cavem_pin_response.success { color: #15803d; }
#cavem_pin_response.fail { color: #b91c1c; }

/* WhatsApp & Enhancements */
.cavem-wa-container { margin: 16px 0; }
.cavem-btn-wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #25d366; color: #fff !important; padding: 12px 24px; border-radius: 8px; font-weight: 700; font-size: 14px; text-decoration: none !important; }
.cavem-mov-banner { background: #FFF1F2; border-left: 4px solid #E11D48; padding: 12px 16px; border-radius: 8px; margin-bottom: 20px; color: #9F1239; font-size: 13.5px; font-weight: 600; }
.cavem-trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; background: #FAF7F2; border: 1.5px solid #EADBCE; border-radius: 12px; padding: 14px; margin: 20px 0; }
.trust-item { display: flex; align-items: center; gap: 10px; }
.trust-icon { font-size: 24px; }
.trust-text strong { display: block; font-size: 12.5px; color: var(--cavem-maroon-dark); }
.trust-text small { font-size: 11px; color: #7A6A65; line-height: 1.2; display: block; }
.cavem-storage-checkbox-wrap { background: #FFFBEB; border: 1.5px dashed #F59E0B; padding: 14px 16px; border-radius: 10px; margin: 18px 0; }
.cavem-storage-checkbox-wrap label { font-size: 13px; color: #92400E; display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.cavem-storage-checkbox-wrap input { margin-top: 3px; accent-color: var(--cavem-maroon); }
.cavem-thankyou-wa-box { background: #F0FDF4; border: 2px solid #86EFAC; padding: 22px; border-radius: 14px; margin: 25px 0; text-align: center; }
.wa-box-header h3 { margin: 0 0 6px 0; color: #166534; font-size: 18px; font-weight: 800; }
.wa-box-header p { margin: 0 0 16px 0; color: #15803D; font-size: 13.5px; }
.cavem-upsell-strip { background: #FFF8F5; border: 1.5px solid #F3DEC8; border-radius: 10px; padding: 12px 14px; margin: 14px 0; }
.upsell-badge { background: var(--cavem-maroon); color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; padding: 2px 8px; border-radius: 4px; display: inline-block; margin-bottom: 6px; }
.upsell-body strong { color: var(--cavem-maroon-dark); font-size: 13px; display: block; }
.upsell-body p { margin: 2px 0 0 0; font-size: 12px; color: #7A6A65; }

/* Strict Side Cart Hidden CSS */
#cavem-side-cart.cavem-drawer { position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 9999999 !important; visibility: hidden !important; pointer-events: none !important; display: block !important; }
#cavem-side-cart.cavem-drawer.is-open { visibility: visible !important; pointer-events: auto !important; }
#cavem-side-cart .cavem-drawer-overlay { position: absolute !important; inset: 0 !important; background: rgba(0, 0, 0, 0.6) !important; opacity: 0 !important; transition: opacity 0.3s ease !important; }
#cavem-side-cart.cavem-drawer.is-open .cavem-drawer-overlay { opacity: 1 !important; }
#cavem-side-cart .cavem-drawer-content { position: absolute !important; top: 0 !important; right: -420px !important; width: 380px !important; max-width: 88vw !important; height: 100% !important; background: #ffffff !important; box-shadow: -8px 0 30px rgba(0,0,0,0.25) !important; transition: right 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important; display: flex !important; flex-direction: column !important; }
#cavem-side-cart.cavem-drawer.is-open .cavem-drawer-content { right: 0 !important; }
.cavem-drawer-head { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #eee; }
.cavem-drawer-head h3 { margin: 0; font-size: 18px; color: var(--cavem-maroon); font-weight: 700; }
.cavem-drawer-close { background: none; border: none; font-size: 28px; cursor: pointer; color: #888; }
.cavem-drawer-body { padding: 20px; overflow-y: auto; flex-grow: 1; }

@media (max-width: 768px) {
  .cavem-date-grid { grid-template-columns: repeat(2, 1fr); }
  .cavem-trust-strip { grid-template-columns: 1fr; }
  .cavem-slot-grid { grid-template-columns: 1fr; }
  .cavem-btn-wa { width: 100%; }
}

/* Side Cart Modern Polish */
.cavem-drawer-meter-container {
  padding: 12px 18px 6px;
  background: #FFFDF9;
  border-bottom: 1px solid #F0E6DC;
}
.cavem-drawer-shipping-meter {
  background: #FFF5EC;
  border: 1px solid #F3DFC8;
  padding: 10px 12px;
  border-radius: 8px;
}
.cd-meter-text {
  font-size: 12.5px;
  margin: 0 0 6px 0;
  color: #4A101C;
  line-height: 1.3;
}
.cd-meter-text.unlocked {
  color: #047857;
  font-weight: 700;
}
.cd-meter-track {
  background: #EADBCE;
  height: 8px;
  border-radius: 10px;
  overflow: hidden;
}
.cd-meter-bar {
  background: linear-gradient(90deg, #741A2A, #10B981);
  height: 100%;
  border-radius: 10px;
  transition: width 0.4s ease;
}

/* Woocommerce Mini Cart Override */
#cavem-side-cart ul.woocommerce-mini-cart {
  list-style: none !important;
  margin: 0 !important;
  padding: 10px 16px !important;
}
#cavem-side-cart ul.woocommerce-mini-cart li.woocommerce-mini-cart-item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #F5ECE3 !important;
  position: relative !important;
}
#cavem-side-cart ul.woocommerce-mini-cart li img {
  width: 64px !important;
  height: 64px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  border: 1px solid #EADBCE !important;
  margin: 0 !important;
  float: none !important;
}
#cavem-side-cart .woocommerce-mini-cart__total {
  padding: 16px 18px !important;
  border-top: 2px solid #EFE6DC !important;
  margin: 0 !important;
  font-size: 15px !important;
  display: flex !important;
  justify-content: space-between !important;
  background: #FAF8F5 !important;
  font-weight: 800 !important;
  color: #4A101C !important;
}
#cavem-side-cart p.woocommerce-mini-cart__buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding: 16px 18px 24px !important;
  margin: 0 !important;
  background: #FAF8F5 !important;
}
#cavem-side-cart p.woocommerce-mini-cart__buttons a {
  width: 100% !important;
  text-align: center !important;
  padding: 12px !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  margin: 0 !important;
}
#cavem-side-cart p.woocommerce-mini-cart__buttons a.checkout {
  background: #741A2A !important;
  color: #fff !important;
}
#cavem-side-cart p.woocommerce-mini-cart__buttons a:not(.checkout) {
  background: #EFE6DC !important;
  color: #4A101C !important;
}

/* Mobile Responsive Drawer */
@media (max-width: 600px) {
  #cavem-side-cart .cavem-drawer-content {
    width: 100% !important;
    max-width: 100vw !important;
    right: -100% !important;
  }
  #cavem-side-cart.cavem-drawer.is-open .cavem-drawer-content {
    right: 0 !important;
  }
}

/* Professional WhatsApp Action Box */
.cavem-wa-action-wrap {
  margin: 14px 0 20px 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  clear: both;
}

.cavem-btn-wa-pro {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 420px !important;
  height: 48px !important;
  background-color: #25D366 !important;
  color: #FFFFFF !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  border: 1px solid #1EBE5D !important;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.22) !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
  padding: 0 20px !important;
  box-sizing: border-box !important;
}

.cavem-btn-wa-pro:hover {
  background-color: #1EBE5D !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(37, 211, 102, 0.32) !important;
}

.cavem-wa-svg {
  flex-shrink: 0;
  fill: currentColor;
}

.cavem-wa-subtext {
  font-size: 11.5px;
  color: #7A6A65;
  margin-top: 6px;
  display: block;
}

/* Ensure WooCommerce Add to Cart Form has breathing room */
form.cart {
  margin-bottom: 10px !important;
}

@media (max-width: 600px) {
  .cavem-btn-wa-pro {
    max-width: 100% !important;
  }
}
