/* Top stack layout */
.three-dr-top-stack{display:flex;flex-direction:column;gap:.5rem;margin:0 0 .75rem}
.three-dr-price-top,.three-dr-price-top .price{display:block!important}

/* Hide duplicate price widgets — SIMPLE ONLY */
.single-product.product-type-simple .composite-summary .price,
.single-product.product-type-simple .composite_summary .price,
.single-product.product-type-simple .composite_price .price,
.single-product.product-type-simple .woocommerce-variation-price{
  display:none!important;
}

/* Hide ALL Product Add-Ons totals / subtotal UI — SIMPLE ONLY
   (we only show the one we move into the top stack on simple products) */
.single-product.product-type-simple #product-addons-total,
.single-product.product-type-simple .product-addon-totals,
.single-product.product-type-simple .wc-pao-addons-totals,
.single-product.product-type-simple .wc-pao-totals{
  display:none!important;
}


/* Never show labels like "Subtotal" in the top bar */
.three-dr-price-top .price,
.three-dr-composite-top .price {
  /* only the amount span should be visible inside */
}
.three-dr-price-top .price :not(.woocommerce-Price-amount):not(.amount) { display:none !important; }



/* Put "Total Price" and the number on one line */
.three-dr-price-top{
  display:flex!important;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap; /* graceful wrap on tiny screens */
}

/* Turn the label into an inline item (instead of block) */
.three-dr-price-top::before{
  content:"Total Price:";
  display:inline;
  margin:0;
  font-size:14px;
  font-weight:600;
  color:#555;
  letter-spacing:.2px;
}

/* Let the amount sit inline on that same row  */
.three-dr-price-top .price{
  display:inline-block!important;
  margin:0;
}


/* Defaults for product pages */
form.cart,
.composite_form{
  --_3dr-card-py:5px;  /* top/bottom padding */
  --_3dr-card-px:5px;  /* left/right padding */
  --_3dr-gap:5px;      /* spacing between stacked elements */
}

/* Ensure the top stack uses our gap var */
form.cart .three-dr-top-stack{
  display:flex!important;
  flex-direction:column;
  gap:var(--_3dr-gap,12px)!important; /* fallback to 12px */
}

/* Card/separator look (simple + composite) */
form.cart .three-dr-price-top,
form.cart #three-dr-uploader,
form.cart .variations_form,
form.cart .wc-pao-addon-container,
.composite_form .composite_component,
.composite_form .composite_button{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:var(--_3dr-card-py) var(--_3dr-card-px);
  box-shadow:0 1px 0 rgba(0,0,0,.03);
  margin:10px 0;
}

/* Optional: a faint divider line between fields inside PAO blocks */
.wc-pao-addon + .wc-pao-addon{
  border-top:1px dashed #eef2f7;
  margin-top:5px;
  padding-top:10px;
}

/* Compact, pill buttons */
.three-dr-btn{
  font-size:12px;
  line-height:1;
  padding:6px 10px;
  border-radius:9999px;
  border:1px solid #dedede;
  background:#fff;
  color:#333;
  cursor:pointer;
  transition:box-shadow .15s ease, transform .05s ease, opacity .2s ease;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  text-decoration:none;
}
.three-dr-btn--sm{font-size:12px;padding:5px 9px}
.three-dr-btn--pill{border-radius:9999px}
.three-dr-btn:hover{box-shadow:0 2px 6px rgba(0,0,0,.08);transform:translateY(-1px)}
.three-dr-btn:active{transform:translateY(0)}

/*.three-dr-actions{display:flex;gap:.5rem;align-items:center} */

.three-dr-attr-wrap{
  margin-top:.4rem;
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:12px;
}
.three-dr-attr-label{color:#555}
.three-dr-attr-select{
  font-size:12px;
  padding:4px 6px;
  border:1px solid #dedede;
  border-radius:6px;
  background:#fff;
  color:#333;
}

/* Keep uploader after PAO blocks visually if they share a parent */
#three-dr-uploader { order: 10; }
#three-dr-uploader { margin-bottom: 10px; }
#three-dr-uploader, #three-dr-uploader * { float: none; }

/* 3DR uploader: center & highlight the slot labels (final overrides) */
#three-dr-uploader .three-dr-slot{
  position:relative!important;
  padding-top:24px!important; /* room above each box for the badge */
}
#three-dr-uploader .three-dr-slot .three-dr-slot-label{
  position:absolute!important;
  top:0!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  display:inline-block!important;
  padding:6px 12px!important;
  border-radius:9999px!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  text-align:center!important;
  z-index:2!important;
  pointer-events:none!important;
  background:#eef7ff!important;
  color:#0b63c5!important;
  border:1px solid #cfe8ff!important;
  box-shadow:0 1px 0 rgba(0,0,0,.06)!important;
}
#three-dr-uploader .three-dr-slot.role-center .three-dr-slot-label{
  background:#eaf3ff!important;
  border-color:#c9e1ff!important;
}

/* ATC row */
.three-dr-atc-row{
  display:flex;
  align-items:center;
  gap:.5rem;
  width:100%;
  flex:1 1 100%;
  flex-wrap:nowrap;
}
.three-dr-atc-row .single_add_to_cart_button{
  margin-left:auto!important; /* pushes it right */
  float:none!important;
  margin-top:0;
}
.three-dr-atc-row .quantity{
  float:none!important;
  display:flex;
  align-items:center;
  margin:0;
}
.three-dr-atc-row .qty{
  min-width:72px;
  max-width:110px;
}

/* Composite: top info bar that mirrors plugin totals (non-destructive) */
.single-product.product-type-composite .three-dr-composite-top{
  display:flex; align-items:center; gap:.5rem;
  background:#fff; border:1px solid #e5e7eb; border-radius:8px;
  padding:8px 10px; margin:10px 0;
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
.single-product.product-type-composite .three-dr-composite-top::before{
  content:"Total:"; font-weight:600; color:#555; font-size:14px;
}
.single-product.product-type-composite .three-dr-composite-top .woocommerce-Price-amount{
  font-weight:700;
}


input[type=date], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=url], select, textarea {
    border: 1px solid #666;
    border-radius: 3px;
    padding: .5rem 1rem;
    transition: all .3s;
    width: 100%;
}
