/* Premium Product Options — product page (scoped, theme-independent) */
.ppo-wrap{
  --ppo-accent:#14963a; --ppo-accent-2:#0f7f30; --ppo-ink:#16241c; --ppo-muted:#6b7a72;
  --ppo-line:#e3e8e4; --ppo-bg:#fff; --ppo-soft:#f5f8f6; --ppo-radius:14px;
  margin:18px 0 22px; color:var(--ppo-ink);
  font-family:inherit;
}
.ppo-wrap *{box-sizing:border-box}
.ppo-set{margin-bottom:6px}

/* Break out of the theme's add-to-cart flex row → options take a full row of
   their own ABOVE the quantity + buttons (instead of a squeezed column). The
   flex-* values only take effect when the parent is actually a flex container;
   otherwise the block simply spans full width — safe either way. */
.ppo-wrap{flex:1 1 100%!important;width:100%!important;max-width:100%!important;order:-1}
form.cart{flex-wrap:wrap!important}

.ppo-heading{margin:18px 0 8px;font-size:1.05rem;font-weight:800;color:var(--ppo-ink);padding-bottom:6px;border-bottom:2px solid var(--ppo-soft)}
.ppo-help{margin:2px 0 8px;font-size:.82rem;color:var(--ppo-muted);line-height:1.5}
.ppo-content{margin:8px 0;font-size:.9rem;color:var(--ppo-ink);background:var(--ppo-soft);padding:10px 12px;border-radius:10px}

.ppo-field{margin:0 0 14px}
.ppo-label{display:block;font-weight:700;font-size:.92rem;margin-bottom:7px}
.ppo-req{color:#dc2626}

/* inputs */
.ppo-input{
  width:100%;border:1.5px solid var(--ppo-line);border-radius:11px;padding:11px 13px;font-size:.95rem;
  background:var(--ppo-bg);color:var(--ppo-ink);min-height:46px;outline:none;transition:border .15s,box-shadow .15s;
}
.ppo-input:focus{border-color:var(--ppo-accent);box-shadow:0 0 0 3px rgba(20,150,58,.15)}
textarea.ppo-input{min-height:84px;resize:vertical}

/* list choices (checkbox / radio) */
.ppo-choices-list{display:flex;flex-direction:column;gap:8px}
.ppo-choices-list .ppo-choice{
  display:flex;align-items:center;gap:11px;padding:11px 13px;border:1.5px solid var(--ppo-line);
  border-radius:12px;cursor:pointer;transition:border .15s,background .15s,box-shadow .15s;min-height:48px;
}
.ppo-choices-list .ppo-choice:hover{border-color:#c7d3cc;background:var(--ppo-soft)}
.ppo-choices-list input{width:20px;height:20px;accent-color:var(--ppo-accent);flex:none;cursor:pointer}
.ppo-choices-list .ppo-choice:has(input:checked){border-color:var(--ppo-accent);background:rgba(20,150,58,.06);box-shadow:0 0 0 1px var(--ppo-accent) inset}
.ppo-choice-txt{flex:1;font-size:.92rem}
.ppo-price{color:var(--ppo-accent-2);font-weight:800;white-space:nowrap}

/* button-style choices */
.ppo-choices-button{display:flex;flex-wrap:wrap;gap:9px}
.ppo-choices-button .ppo-choice{
  display:inline-flex;align-items:center;gap:6px;padding:10px 15px;border:1.5px solid var(--ppo-line);
  border-radius:11px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .15s;min-height:46px;
}
.ppo-choices-button input{position:absolute;opacity:0;pointer-events:none}
.ppo-choices-button .ppo-choice:hover{border-color:#c7d3cc;background:var(--ppo-soft)}
.ppo-choices-button .ppo-choice:has(input:checked){border-color:var(--ppo-accent);background:var(--ppo-accent);color:#fff}
.ppo-choices-button .ppo-choice:has(input:checked) .ppo-price{color:#eafff0}

/* color / image swatches */
.ppo-choices-color_swatch,.ppo-choices-image_swatch{display:flex;flex-wrap:wrap;gap:10px}
.ppo-choices-color_swatch .ppo-choice,.ppo-choices-image_swatch .ppo-choice{
  position:relative;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:4px;
}
.ppo-choices-color_swatch input,.ppo-choices-image_swatch input{position:absolute;opacity:0;pointer-events:none}
.ppo-sw{display:block;border-radius:10px;border:2px solid var(--ppo-line);transition:all .15s}
.ppo-sw-color{width:42px;height:42px}
.ppo-sw-img{width:54px;height:54px;overflow:hidden;padding:0}
.ppo-sw-img img{width:100%;height:100%;object-fit:cover;display:block}
.ppo-choices-color_swatch .ppo-choice:has(input:checked) .ppo-sw,
.ppo-choices-image_swatch .ppo-choice:has(input:checked) .ppo-sw{border-color:var(--ppo-accent);box-shadow:0 0 0 3px rgba(20,150,58,.25)}
.ppo-choices-color_swatch .ppo-choice-txt,.ppo-choices-image_swatch .ppo-choice-txt{font-size:.72rem;color:var(--ppo-muted);text-align:center}

/* live total */
.ppo-total{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;
  padding:14px 16px;border-radius:var(--ppo-radius);
  background:linear-gradient(135deg,rgba(20,150,58,.10),rgba(20,150,58,.04));border:1.5px solid rgba(20,150,58,.25);
}
.ppo-total-label{font-weight:700;font-size:.95rem}
.ppo-total-val{font-weight:900;font-size:1.3rem;color:var(--ppo-accent-2);font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){.ppo-wrap *{transition:none!important}}
@media (max-width:480px){
  .ppo-total-val{font-size:1.15rem}
  .ppo-sw-img{width:48px;height:48px}
}

/* required-field nudge (when add-to-cart clicked with empty required option) */
.ppo-shake{animation:ppoShake .5s ease;border-radius:12px;box-shadow:0 0 0 3px rgba(220,38,38,.35)}
@keyframes ppoShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
