/* ===========================================================
   NECORA PRO – CART ULTRA GLASS (v16.0 GLASS SYSTEM)
   ===========================================================
   🪶 Neutro elegante (Cian Digital + Verde Azul Profundo)
   🧊 Glass coherente con header/hero
   🌗 Modo oscuro automático (data-theme="dark")
   💎 Jerarquía UX limpia + microinteracciones premium
=========================================================== */

/* === BASE / VARIABLES – NECORA GLASS SYSTEM v16.0 === */
:root {
  /* Gamma tokens */
  --necora-accent: #00C2B2;                 /* brand-cyan */
  --necora-accent-alt: #018E85;             /* alt tonal */
  --necora-text: #111111;
  --necora-bg: #F9F9F9;
  --necora-border: #DADADA;
  --necora-glass-bg: rgba(255,255,255,0.08);
  --necora-glass-border: rgba(255,255,255,0.12);
  --necora-shadow-soft: 0 4px 16px rgba(0,0,0,0.08);
  --necora-radius-lg: 1.75rem;

  /* Backward-compat aliases */
  --color-primary: var(--necora-accent);
  --color-secondary: var(--necora-accent-alt);
  --color-text: var(--necora-text);
  --color-bg: var(--necora-bg);
  --color-border: var(--necora-border);
  --color-glass-bg: var(--necora-glass-bg);
  --color-glass-border: var(--necora-glass-border);
  --shadow-soft: var(--necora-shadow-soft);
}
[data-theme="dark"] {
  --necora-text: #F1F1F1;               /* Texto claro */
  --necora-bg: #0B0C0E;                 /* Fondo oscuro profundo */
  --necora-border: #2C2D30;
  --necora-glass-bg: rgba(255,255,255,0.05);
  --necora-glass-border: rgba(255,255,255,0.1);
  --necora-shadow-soft: 0 4px 22px rgba(0,0,0,0.55);
}

/* === GLOBAL === */
.cart-page {
  background: var(--necora-bg);
  font-family: 'Inter', sans-serif;
  padding: 3rem 0 5rem;
  color: var(--necora-text);
}

/* === GRID LAYOUT === */
.cart-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  align-items: flex-start;
  animation: fadeIn .8s cubic-bezier(.19,1,.22,1);
}
@keyframes fadeIn { from {opacity:0;transform:translateY(20px);} to {opacity:1;transform:none;} }
@media (max-width:992px){.cart-grid{grid-template-columns:1fr;gap:1.8rem;}}

/* === CONTAINERS (Glass panels) === */
.glass-cart,
.glass-totals {
  background: var(--necora-glass-bg);
  backdrop-filter: blur(28px) saturate(180%);
  border-radius: var(--necora-radius-lg, 1.75rem);
  padding: 2.4rem;
  border: 1px solid var(--necora-glass-border);
  box-shadow: var(--necora-shadow-soft);
  position: relative;
  /* Evita scroll interno; deja que el documento maneje el scroll */
  overflow: visible;
}
.glass-cart::before,
.glass-totals::before {
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 25% 15%,rgba(0,194,178,0.08),transparent 70%),
    radial-gradient(circle at 85% 85%,rgba(1,142,133,0.06),transparent 60%);
  z-index:0;
}
.glass-cart>*,
.glass-totals>* { position:relative; z-index:1; }

/* === TITLES === */
.shop-title,
.totals-title {
  font-weight:900;
  letter-spacing:-0.03em;
  color: var(--necora-accent);
  margin-bottom:1.4rem;
}
.totals-title { text-align:center; font-size:1.5rem; }
[data-theme="dark"] .shop-title,
[data-theme="dark"] .totals-title {
  color: var(--necora-accent);
  text-shadow: 0 0 14px rgba(0,224,181,0.35);
}

/* === PRODUCT LIST === */
.necora-cart-list {
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  list-style:none;
  margin:0;
  padding:0;
}
.necora-cart-item {
  display:flex;
  align-items:center;
  gap:1.5rem;
  background: rgba(255,255,255,0.55);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:1.25rem;
  padding:1.3rem 1.6rem;
  backdrop-filter:blur(10px) saturate(160%);
  box-shadow: var(--shadow-soft);
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
}
.necora-cart-item:hover {
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 14px 35px rgba(0,0,0,0.1);
}
[data-theme="dark"] .necora-cart-item {
  background: rgba(25,25,30,0.55);
  border-color: rgba(255,255,255,0.08);
  box-shadow: 0 0 25px rgba(0,0,0,0.45);
}

/* === IMAGE === */
.cart-thumb img {
  width:95px;
  height:95px;
  object-fit:cover;
  border-radius:1.1rem;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  transition:transform .35s ease;
}
.necora-cart-item:hover .cart-thumb img { transform:scale(1.05); }

/* === INFO === */
.cart-info { flex:1; display:flex; flex-direction:column; gap:.45rem; }
.cart-header { display:flex; justify-content:space-between; align-items:flex-start; }
.cart-name {
  font-weight:700;
  color:var(--necora-text);
  text-decoration:none;
  transition:color .25s;
}
.cart-name:hover { color:var(--necora-accent); }
.cart-remove {
  font-size:1.35rem;
  color:#aaa;
  text-decoration:none;
  transition:all .25s;
}
.cart-remove:hover { color:#ff5555; transform:scale(1.25); }

/* === META === */
.cart-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  margin-top:.5rem;
}
.cart-price {
  font-weight:700;
  font-size:1rem;
  color:var(--necora-accent);
}
.cart-qty input {
  width:68px;
  text-align:center;
  border-radius: var(--necora-radius-sm, 10px);
  border:1px solid var(--necora-border);
  font-weight:600;
  padding:.3rem;
  transition:border .25s;
}
.cart-qty input:focus {
  outline:none;
  border-color:var(--necora-accent);
  box-shadow:0 0 0 3px rgba(0,224,181,0.15);
}
[data-theme="dark"] .cart-qty input {
  background:rgba(255,255,255,0.08);
  color:#fff;
  border-color:rgba(255,255,255,0.2);
}

/* === ACTIONS === */
.cart-actions { text-align:right; margin-top:2rem; }
.update-cart {
  background: linear-gradient(135deg,var(--necora-accent),var(--necora-accent-alt));
  border:none;
  color:#fff;
  padding:1rem 1.8rem;
  font-weight:700;
  border-radius:1rem;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,0.12);
  transition:transform .3s, box-shadow .3s, filter .3s;
}
.update-cart:hover {
  transform:translateY(-4px);
  box-shadow:0 14px 40px rgba(0,0,0,0.18);
  filter:brightness(1.1);
}
.update-cart.is-sending { opacity:.6; pointer-events:none; }
.update-cart.is-sending .btn-icon { animation:spin .6s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* === SIDEBAR (Totales) === */
.glass-totals { position:sticky; top:2rem; }
.checkout-btn {
  display:block;
  width:100%;
  margin-top:2rem;
  text-align:center;
  background: linear-gradient(135deg,var(--necora-accent),var(--necora-accent-alt));
  color:#fff;
  font-weight:800;
  border-radius:1rem;
  padding:1.2rem;
  box-shadow:0 12px 40px rgba(0,0,0,0.15);
  text-decoration:none;
  letter-spacing:-0.02em;
  transition:transform .3s,filter .3s;
}
.checkout-btn:hover {
  transform:translateY(-3px);
  filter:brightness(1.1);
}

/* === EMPTY CART === */
.empty-cart-msg {
  text-align:center;
  opacity:.8;
  padding:2.4rem 0;
  font-size:1.05rem;
  font-weight:500;
}

/* === TOASTS === */
.necora-toast {
  position:fixed;
  bottom:24px;
  right:24px;
  background: var(--color-glass-bg);
  backdrop-filter: blur(12px) saturate(160%);
  color:var(--color-text);
  font-weight:600;
  border-radius:1rem;
  padding:.8rem 1rem;
  box-shadow: var(--shadow-soft);
  transform:translateY(20px);
  opacity:0;
  transition:all .25s cubic-bezier(.19,1,.22,1);
  z-index:99999;
  min-width:220px;
  text-align:center;
  font-size:.9rem;
}
.necora-toast.show { opacity:1; transform:translateY(0); }
.necora-toast.info { border-left:3px solid var(--color-primary); }
.necora-toast.error { border-left:3px solid #ff4b4b; }
.necora-toast.success { border-left:3px solid var(--color-secondary); }
[data-theme="dark"] .necora-toast {
  background: rgba(20,20,25,0.8);
  color:#fff;
}

/* === RESPONSIVE === */
@media(max-width:768px){
  .necora-cart-item{flex-direction:column;align-items:flex-start;}
  .cart-meta{flex-direction:column;align-items:flex-start;gap:.4rem;}
  .checkout-btn{font-size:1rem;}
}

/* ===========================================================
   PURE MINIMAL CART (modo limpio)
=========================================================== */
.pure-minimal {
  background: var(--color-bg);
  font-family: 'Inter', sans-serif;
  padding: 3rem 0;
}
.cart-container {
  max-width: 1080px;
  margin: 0 auto;
  background: var(--color-glass-bg);
  border-radius: 1.5rem;
  padding: 3rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--color-glass-border);
}
.cart-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--color-text);
  margin-bottom: 2rem;
}

/* === TABLE === */
.necora-cart-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 1.5rem;
}
.necora-cart-table th {
  text-align: left;
  text-transform: uppercase;
  font-size: .75rem;
  color: var(--color-text-secondary,#888);
  padding-bottom: .8rem;
}
.necora-cart-row {
  background: var(--color-glass-bg);
  box-shadow: var(--shadow-soft);
  border-radius: 1rem;
}
.necora-cart-row td {
  padding: 1.5rem 1rem;
  vertical-align: middle;
}
.product-info { display:flex; align-items:center; gap:1rem; }
.product-thumb img { width:80px; border-radius:.8rem; }
.product-name {
  font-weight:700;
  color: var(--color-text);
  text-decoration:none;
}
.product-name:hover { color: var(--color-primary); }
.product-meta { color: var(--color-text-secondary); font-size:.8rem; margin-top:.2rem; }
.product-price, .product-subtotal { font-weight:700; color: var(--color-primary); }
.product-qty input {
  width:65px;
  text-align:center;
  border-radius:.5rem;
  border:1px solid var(--color-border);
  padding:.3rem;
  background: transparent;
}
.product-remove a {
  color:#999;
  font-size:1.4rem;
  text-decoration:none;
  transition: color .25s;
}
.product-remove a:hover { color:#e53935; }

/* === ACTIONS === */
.cart-actions {
  text-align: right;
  margin-top: 1.5rem;
}
.update-cart {
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: .7rem;
  padding: .9rem 1.6rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .25s;
}
.update-cart:hover {
  background: var(--color-secondary);
  transform: translateY(-2px);
}

/* === SUMMARY / SHIPPING === */
.cart-summary {
  background: rgba(255,255,255,0.02);
  border-radius: 1rem;
  padding: 2rem;
  margin-top: 3rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2rem;
}
.shipping-mode h3 { font-size:1rem; font-weight:700; margin-bottom:1rem; }
.shipping-mode label {
  display:block; margin-bottom:.8rem; font-weight:500; color:var(--color-text);
}
.shipping-mode input { margin-right:.4rem; }
.shipping-mode small {
  display:block; margin-left:1.4rem; color:var(--color-text-secondary); font-size:.8rem;
}

.totals-box {
  background: var(--color-glass-bg);
  border-radius:1rem;
  padding:1.5rem 2rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--color-glass-border);
  min-width:260px;
}
.totals-box table { width:100%; font-size:.95rem; }
.totals-box th { text-align:left; color: var(--color-text-secondary); font-weight:500; }
.totals-box td { text-align:right; color: var(--color-text); font-weight:600; }
.totals-box .total th, .totals-box .total td {
  font-weight:800; padding-top:.6rem;
}

.checkout-btn {
  display:block; width:100%;
  background: linear-gradient(135deg,var(--color-primary),var(--color-secondary));
  color:#fff;
  text-align:center;
  border-radius:.8rem;
  padding:1rem;
  margin-top:1.2rem;
  font-weight:700;
  transition:all .25s;
}
.checkout-btn:hover {
  background: var(--color-secondary);
  transform:translateY(-2px);
}

/* ===========================================================
   EMPTY CART (Glass Style)
=========================================================== */
.necora-empty-cart {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 70vh;
  padding: 4rem 2rem;
  background: var(--color-glass-bg);
  backdrop-filter: blur(20px) saturate(1.3);
  border-radius: 1.5rem;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--color-glass-border);
  transition: all 0.4s ease;
}
.necora-empty-inner { max-width: 600px; }
.necora-empty-icon {
  color: var(--color-primary);
  opacity: 0.8;
  animation: floatIcon 3s ease-in-out infinite;
}
@keyframes floatIcon {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.necora-empty-title {
  margin-top: 1.5rem;
  font-size: clamp(1.5rem, 4vw, 2rem);
  color: var(--color-text);
}
.necora-empty-text {
  margin-top: 0.5rem;
  color: var(--color-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
}
.necora-btn-primary {
  display: inline-block;
  margin-top: 2rem;
  background: var(--color-primary);
  color: #fff;
  padding: 0.9rem 1.8rem;
  border-radius: 100px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.25s ease;
  backdrop-filter: blur(8px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}
.necora-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}
[data-theme="dark"] .necora-empty-cart {
  background: rgba(0,0,0,0.4);
  border-color: rgba(255,255,255,0.1);
}
[data-theme="dark"] .necora-empty-title { color: #fff; }
[data-theme="dark"] .necora-empty-text { color: rgba(255,255,255,0.7); }
