/* =========================================================
   UBD GLOBO INCLUIDO 1.6.0 · DISEÑO MODULAR COLORIDO SEGURO
   Capa exclusivamente visual sobre la versión funcional 1.5.9.
   No modifica plantillas, JavaScript, AJAX, autoguardado ni valores.
   ========================================================= */

html body#product .ubdgi-wrap {
  --ubdgi-orange:#E7923C;
  --ubdgi-coral:#E78252;
  --ubdgi-yellow:#EFC25E;
  --ubdgi-green:#93B56D;
  --ubdgi-teal:#5DA084;
  --ubdgi-ink:#18333A;
  --ubdgi-muted:#65777B;
  --ubdgi-paper:#FBF8F3;
  --ubdgi-line:rgba(24,51,58,.11);
  --ubdgi-shadow:0 16px 38px rgba(24,51,58,.09);
  position:relative !important;
  width:100% !important;
  margin:22px 0 !important;
  padding:clamp(16px,2.7vw,24px) !important;
  overflow:hidden !important;
  border:1px solid var(--ubdgi-line) !important;
  border-radius:26px !important;
  background:#fff !important;
  box-shadow:var(--ubdgi-shadow) !important;
  color:var(--ubdgi-ink) !important;
  font-family:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}

html body#product .ubdgi-wrap::before {
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:7px;
  background:linear-gradient(90deg,var(--ubdgi-orange) 0 24%,var(--ubdgi-yellow) 24% 48%,var(--ubdgi-green) 48% 72%,var(--ubdgi-teal) 72% 100%);
  pointer-events:none;
}

html body#product .ubdgi-head {
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  margin:0 0 16px !important;
  padding:16px 18px !important;
  border:0 !important;
  border-radius:21px !important;
  background:#F3B36F !important;
  box-shadow:0 10px 24px rgba(24,51,58,.07) !important;
}

html body#product .ubdgi-head > div { min-width:0 !important; }

html body#product .ubdgi-icon {
  display:grid !important;
  place-items:center !important;
  flex:0 0 48px !important;
  width:48px !important;
  height:48px !important;
  margin:0 !important;
  border-radius:16px !important;
  background:rgba(255,255,255,.78) !important;
  box-shadow:0 8px 18px rgba(24,51,58,.08) !important;
  font-size:25px !important;
  line-height:1 !important;
}

html body#product .ubdgi-head strong {
  display:block !important;
  margin:0 !important;
  color:var(--ubdgi-ink) !important;
  font-family:"Protest Strike",Impact,Manrope,sans-serif !important;
  font-size:clamp(25px,4vw,36px) !important;
  font-weight:400 !important;
  line-height:.98 !important;
  letter-spacing:-.015em !important;
  text-transform:uppercase !important;
}

html body#product .ubdgi-head small {
  display:block !important;
  margin:6px 0 0 !important;
  color:rgba(24,51,58,.78) !important;
  font-size:12.5px !important;
  font-weight:600 !important;
  line-height:1.45 !important;
}

html body#product .ubdgi-units {
  display:grid !important;
  gap:14px !important;
}

html body#product .ubdgi-unit {
  min-inline-size:0 !important;
  margin:0 !important;
  padding:16px !important;
  border:1px solid var(--ubdgi-line) !important;
  border-radius:22px !important;
  background:var(--ubdgi-paper) !important;
  box-shadow:none !important;
}

html body#product .ubdgi-unit legend {
  float:none !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 10px !important;
  padding:7px 11px !important;
  border:0 !important;
  border-radius:999px !important;
  background:var(--ubdgi-green) !important;
  color:var(--ubdgi-ink) !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1.2 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
}

html body#product .ubdgi-slot {
  margin:0 !important;
  padding:14px 0 0 !important;
  border:0 !important;
}

html body#product .ubdgi-slot + .ubdgi-slot {
  margin-top:16px !important;
  padding-top:18px !important;
  border-top:1px dashed rgba(24,51,58,.16) !important;
}

html body#product .ubdgi-slot-title {
  margin:0 0 10px !important;
  color:var(--ubdgi-ink) !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1.3 !important;
}

html body#product .ubdgi-choice-tabs {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
  margin:0 0 14px !important;
}

html body#product .ubdgi-choice-tabs label {
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  min-height:54px !important;
  margin:0 !important;
  padding:11px 12px !important;
  border:2px solid transparent !important;
  border-radius:16px !important;
  background:#F3B36F !important;
  color:var(--ubdgi-ink) !important;
  box-shadow:0 8px 18px rgba(24,51,58,.06) !important;
  cursor:pointer !important;
  font-size:12.5px !important;
  font-weight:800 !important;
  line-height:1.25 !important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease !important;
}

html body#product .ubdgi-choice-tabs label:nth-child(2) { background:#BBD68F !important; }
html body#product .ubdgi-choice-tabs label:nth-child(3) { background:#F4D782 !important; }
html body#product .ubdgi-choice-tabs label:hover {
  transform:translateY(-1px) !important;
  box-shadow:0 11px 22px rgba(24,51,58,.09) !important;
}
html body#product .ubdgi-choice-tabs label:has(input:checked) {
  border-color:var(--ubdgi-ink) !important;
  box-shadow:0 0 0 3px rgba(24,51,58,.10),0 12px 24px rgba(24,51,58,.10) !important;
}

/* Se conserva la forma y el comportamiento nativo de todos los inputs. */
html body#product .ubdgi-choice-tabs input.ubdgi-type {
  flex:0 0 auto !important;
  margin:0 !important;
  accent-color:var(--ubdgi-ink) !important;
}

html body#product .ubdgi-panel {
  margin:0 !important;
  padding:14px !important;
  border:1px solid var(--ubdgi-line) !important;
  border-radius:19px !important;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(24,51,58,.055) !important;
}

/* Un producto adicional por fila: 4 escritorio. */
html body#product .ubdgi-grid {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
  max-height:430px !important;
  margin:0 !important;
  padding:2px 4px 4px 2px !important;
  overflow:auto !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(24,51,58,.25) transparent !important;
}

html body#product .ubdgi-card {
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  min-height:150px !important;
  margin:0 !important;
  padding:8px !important;
  overflow:hidden !important;
  border:2px solid transparent !important;
  border-radius:17px !important;
  background:#F3B36F !important;
  color:var(--ubdgi-ink) !important;
  box-shadow:0 8px 18px rgba(24,51,58,.06) !important;
  cursor:pointer !important;
  text-align:center !important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease !important;
}

html body#product .ubdgi-card:nth-child(5n + 2) { background:#F1A17B !important; }
html body#product .ubdgi-card:nth-child(5n + 3) { background:#F5D471 !important; }
html body#product .ubdgi-card:nth-child(5n + 4) { background:#BBD68F !important; }
html body#product .ubdgi-card:nth-child(5n + 5) { background:#8FC7B0 !important; }
html body#product .ubdgi-card:hover {
  transform:translateY(-2px) !important;
  box-shadow:0 12px 24px rgba(24,51,58,.10) !important;
}
html body#product .ubdgi-card:has(input:checked) {
  border-color:var(--ubdgi-ink) !important;
  box-shadow:0 0 0 3px rgba(255,255,255,.92),0 0 0 6px rgba(24,51,58,.16),0 13px 26px rgba(24,51,58,.12) !important;
}

html body#product .ubdgi-card input.ubdgi-balloon {
  position:absolute !important;
  top:9px !important;
  left:9px !important;
  z-index:3 !important;
  margin:0 !important;
  accent-color:var(--ubdgi-ink) !important;
}

html body#product .ubdgi-card img {
  display:block !important;
  width:100% !important;
  height:102px !important;
  margin:0 auto !important;
  padding:4px !important;
  border-radius:13px !important;
  background:rgba(255,255,255,.78) !important;
  object-fit:contain !important;
  object-position:center !important;
}

html body#product .ubdgi-card span {
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  min-height:29px !important;
  margin:7px 0 0 !important;
  overflow:hidden !important;
  color:var(--ubdgi-ink) !important;
  font-size:11px !important;
  font-weight:800 !important;
  line-height:1.28 !important;
}

html body#product .ubdgi-custom-product {
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin:0 0 12px !important;
  padding:11px !important;
  border-radius:16px !important;
  background:#BBD68F !important;
}
html body#product .ubdgi-custom-product img {
  flex:0 0 76px !important;
  width:76px !important;
  height:76px !important;
  margin:0 !important;
  padding:5px !important;
  border:0 !important;
  border-radius:14px !important;
  background:rgba(255,255,255,.8) !important;
  object-fit:contain !important;
}
html body#product .ubdgi-custom-product strong {
  color:var(--ubdgi-ink) !important;
  font-size:14px !important;
  font-weight:900 !important;
}
html body#product .ubdgi-custom label {
  display:block !important;
  margin:0 !important;
  color:var(--ubdgi-ink) !important;
  font-size:13px !important;
  font-weight:800 !important;
}
html body#product .ubdgi-custom-text {
  display:block !important;
  width:100% !important;
  min-height:50px !important;
  margin:7px 0 0 !important;
  padding:12px 14px !important;
  border:2px solid rgba(24,51,58,.12) !important;
  border-radius:15px !important;
  background:#fff !important;
  color:var(--ubdgi-ink) !important;
  box-shadow:0 6px 14px rgba(24,51,58,.05) !important;
  font-size:15px !important;
}
html body#product .ubdgi-custom-text:focus {
  border-color:var(--ubdgi-teal) !important;
  outline:3px solid rgba(93,160,132,.16) !important;
  outline-offset:0 !important;
}
html body#product .ubdgi-custom label small {
  display:block !important;
  margin:6px 2px 0 !important;
  color:var(--ubdgi-muted) !important;
  font-size:11px !important;
  font-weight:700 !important;
  text-align:right !important;
}
html body#product .ubdgi-decline { background:#FFF7E5 !important; }
html body#product .ubdgi-decline p {
  margin:0 !important;
  color:var(--ubdgi-ink) !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.45 !important;
}
html body#product .ubdgi-error,
html body#product .ubdgi-slot-invalid .ubdgi-slot-title { color:#A53B32 !important; }
html body#product .ubdgi-invalid,
html body#product .ubdgi-slot-invalid {
  border-radius:16px !important;
  background:#FFF0ED !important;
}
html body#product .ubdgi-confirm-area {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:36px !important;
  margin:14px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  text-align:center !important;
}
html body#product .ubdgi-save-status {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:32px !important;
  max-width:100% !important;
  margin:0 !important;
  padding:7px 11px !important;
  border-radius:999px !important;
  background:var(--ubdgi-paper) !important;
  color:var(--ubdgi-muted) !important;
  font-size:11.5px !important;
  font-weight:800 !important;
  line-height:1.25 !important;
}
html body#product .ubdgi-save-status.is-success { background:rgba(147,181,109,.22) !important; color:#315B32 !important; }
html body#product .ubdgi-save-status.is-error { background:#FFF0ED !important; color:#A53B32 !important; }
html body#product .ubdgi-save-status.is-pending { background:#FFF7E5 !important; color:#765416 !important; }

html body .ubdgi-cart-choices,
html body .ubdgi-modal-choices,
html body .ubdgi-checkout-choices {
  clear:both !important;
  margin:7px 0 !important;
  padding:9px 11px !important;
  border:1px solid rgba(93,160,132,.18) !important;
  border-left:4px solid #5DA084 !important;
  border-radius:12px !important;
  background:#F7FAF5 !important;
  color:#425257 !important;
  box-shadow:none !important;
  font-size:12px !important;
  line-height:1.4 !important;
}
html body .ubdgi-cart-label,
html body .ubdgi-modal-label,
html body .ubdgi-checkout-label { color:#18333A !important; font-weight:900 !important; }
html body .ubdgi-cart-value,
html body .ubdgi-modal-value,
html body .ubdgi-checkout-value { color:#526267 !important; font-weight:600 !important; }
html body .ubdgi-choice-separator { color:#93A59F !important; }

@media (max-width:767px) {
  html body#product .ubdgi-wrap {
    margin:18px 0 !important;
    padding:14px !important;
    border-radius:22px !important;
  }
  html body#product .ubdgi-head {
    align-items:flex-start !important;
    gap:11px !important;
    padding:14px !important;
    border-radius:18px !important;
  }
  html body#product .ubdgi-icon {
    flex-basis:42px !important;
    width:42px !important;
    height:42px !important;
    border-radius:14px !important;
    font-size:22px !important;
  }
  html body#product .ubdgi-head strong { font-size:25px !important; }
  html body#product .ubdgi-head small { font-size:11.5px !important; }
  html body#product .ubdgi-unit { padding:13px !important; border-radius:18px !important; }
  html body#product .ubdgi-choice-tabs { grid-template-columns:1fr !important; gap:8px !important; }
  html body#product .ubdgi-choice-tabs label {
    min-height:48px !important;
    padding:10px 11px !important;
    border-radius:14px !important;
  }
  html body#product .ubdgi-panel { padding:9px !important; border-radius:16px !important; }
  /* Un producto adicional por fila: 3 en móvil. */
  html body#product .ubdgi-grid {
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:7px !important;
    max-height:390px !important;
  }
  html body#product .ubdgi-card {
    min-height:129px !important;
    padding:6px !important;
    border-radius:14px !important;
  }
  html body#product .ubdgi-card input.ubdgi-balloon { top:7px !important; left:7px !important; }
  html body#product .ubdgi-card img {
    height:82px !important;
    padding:3px !important;
    border-radius:10px !important;
  }
  html body#product .ubdgi-card span {
    min-height:27px !important;
    margin-top:6px !important;
    font-size:9.5px !important;
    line-height:1.25 !important;
  }
  html body#product .ubdgi-custom-product img {
    flex-basis:64px !important;
    width:64px !important;
    height:64px !important;
  }
}

@media (max-width:390px) {
  html body#product .ubdgi-grid { gap:6px !important; }
  html body#product .ubdgi-card { min-height:119px !important; padding:5px !important; }
  html body#product .ubdgi-card img { height:73px !important; }
  html body#product .ubdgi-card span { font-size:9px !important; min-height:25px !important; }
}

@media (prefers-reduced-motion:reduce) {
  html body#product .ubdgi-choice-tabs label,
  html body#product .ubdgi-card { transition:none !important; }
}
