.nspo{width:100%;font-family:inherit;color:inherit}.nspo *{box-sizing:border-box}.nspo__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 28px}.nspo__card{position:relative;display:flex;min-width:0;min-height:205px;align-items:center;justify-content:flex-end;flex-direction:column;gap:8px;padding:22px 14px 16px;border:1px solid currentColor;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:center;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}.nspo__card:hover{transform:translateY(-1px)}.nspo__card.is-selected{border-width:3px;background:color-mix(in srgb,currentColor 5%,transparent);padding:20px 12px 14px;box-shadow:0 0 0 1px currentColor inset}.nspo__card:focus-visible{outline:3px solid currentColor;outline-offset:3px}.nspo__card.is-disabled{opacity:.48;cursor:not-allowed}.nspo__badge{position:absolute;left:20px;right:20px;top:-23px;min-height:23px;padding:4px 8px;border-radius:4px 4px 0 0;background:#59a8f5;color:#fff;font-size:12px;font-weight:700;line-height:15px}.nspo__card:nth-child(3) .nspo__badge{background:#e6b900}.nspo__image-wrap{display:flex;height:74px;align-items:flex-end;justify-content:center}.nspo__image-wrap img{display:block;max-width:92px;max-height:74px;width:auto;height:auto;object-fit:contain}.nspo__title{font-size:17px;font-weight:700;line-height:1.2}.nspo__prices{display:flex;align-items:baseline;justify-content:center;gap:5px;font-size:14px}.nspo__regular-price{text-decoration:line-through;opacity:.72}.nspo__price{font-weight:700}.nspo__saving{display:inline-block;padding:4px 6px;border:1px solid currentColor;border-radius:4px;font-size:12px;font-weight:700;line-height:1.2}.nspo__unavailable{font-size:12px;font-weight:700}.nspo__purchase-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:92px;padding:22px;border:1px solid currentColor;margin-bottom:24px}.nspo__radio-mark{width:32px;height:32px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center}.nspo__radio-mark:after{content:"";width:20px;height:20px;border-radius:50%;background:currentColor}.nspo__purchase-label{font-size:18px;font-weight:700}.nspo__final-prices{display:flex;align-items:baseline;gap:10px;font-size:20px;font-weight:700}.nspo__final-regular{text-decoration:line-through;font-weight:500}.nspo__add-to-cart.button{width:100%;min-height:62px;border:0;border-radius:999px;font-size:18px;font-weight:800;text-transform:uppercase;cursor:pointer}.nspo__add-to-cart.is-loading{opacity:.72;cursor:wait}.nspo__message{min-height:1.4em;margin-top:10px;font-size:14px}.nspo__message.is-error{color:#b42318}.nspo__message.is-success{color:#157f3b}.nspo-editor-placeholder{padding:24px;border:1px dashed #8c8f94;background:#fff;text-align:center}.nspo [hidden]{display:none!important}@media(max-width:680px){.nspo__cards{gap:10px}.nspo__card{min-height:190px;padding-left:8px;padding-right:8px}.nspo__card.is-selected{padding-left:6px;padding-right:6px}.nspo__badge{left:8px;right:8px}.nspo__title{font-size:14px}.nspo__prices{font-size:12px;flex-wrap:wrap}.nspo__saving{font-size:11px}.nspo__purchase-row{padding:18px 16px}.nspo__purchase-label{font-size:16px}.nspo__final-prices{font-size:17px;gap:6px}}@media(max-width:430px){.nspo__cards{grid-template-columns:repeat(3,minmax(96px,1fr));overflow-x:auto;padding-top:24px}.nspo__card{min-width:96px}.nspo__purchase-row{grid-template-columns:auto 1fr}.nspo__final-prices{grid-column:2;justify-self:start}}

/* v0.1.1 simple block options */
.nspo__add-to-cart.button{background:var(--nspo-button-bg, var(--wp--preset--color--primary, #111));}
.nspo--horizontal .nspo__cards{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;overflow:visible;padding-top:0}
.nspo--horizontal .nspo__card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;justify-content:stretch;gap:3px 14px;min-height:92px;width:100%;padding:12px 16px;text-align:left}
.nspo--horizontal .nspo__card.is-selected{padding:10px 14px}
.nspo--horizontal .nspo__image-wrap{grid-column:1;grid-row:1 / span 2;height:66px;align-items:center;justify-content:center}
.nspo--horizontal .nspo__image-wrap img{max-width:66px;max-height:66px}
.nspo--horizontal .nspo__title{grid-column:2;grid-row:1;align-self:end}
.nspo--horizontal .nspo__prices{grid-column:2;grid-row:2;justify-content:flex-start;align-self:start}
.nspo--horizontal .nspo__saving{grid-column:3;grid-row:1 / span 2;justify-self:end;align-self:center}
.nspo--horizontal .nspo__badge{position:static;grid-column:3;grid-row:1 / span 2;justify-self:end;align-self:center;min-height:0;padding:5px 8px;border-radius:4px}
.nspo--horizontal .nspo__badge + .nspo__image-wrap{}
.nspo--horizontal .nspo__unavailable{grid-column:3;grid-row:1 / span 2;justify-self:end}
@media(max-width:520px){
  .nspo--horizontal .nspo__card{grid-template-columns:58px minmax(0,1fr);padding:10px 12px}
  .nspo--horizontal .nspo__card.is-selected{padding:8px 10px}
  .nspo--horizontal .nspo__image-wrap{height:54px}
  .nspo--horizontal .nspo__image-wrap img{max-width:54px;max-height:54px}
  .nspo--horizontal .nspo__saving,.nspo--horizontal .nspo__badge,.nspo--horizontal .nspo__unavailable{grid-column:2;grid-row:3;justify-self:start;margin-top:4px}
}


/* v0.1.2 compact horizontal row style */
.nspo--horizontal-compact .nspo__cards{
  display:flex;
  flex-direction:column;
  gap:0;
  margin:0 0 24px;
  overflow:hidden;
  padding:0;
  border:var(--nspo-compact-border-width, 1px) solid var(--nspo-compact-border-color, #000);
  border-radius:var(--nspo-compact-border-radius, 9px);
}
.nspo--horizontal-compact .nspo__card{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto auto;
  align-items:center;
  gap:12px;
  width:100%;
  min-height:54px;
  padding:11px 16px;
  border:0;
  border-bottom:var(--nspo-compact-border-width, 1px) solid var(--nspo-compact-border-color, #000);
  border-radius:0;
  background:transparent;
  text-align:left;
  transform:none;
  box-shadow:none;
}
.nspo--horizontal-compact .nspo__card:last-child{border-bottom:0}
.nspo--horizontal-compact .nspo__card:hover{transform:none;background:rgba(0,0,0,.018)}
.nspo--horizontal-compact .nspo__card.is-selected{
  padding:11px 16px;
  border-width:0;
  background:rgba(0,0,0,.025);
  box-shadow:none;
}
.nspo--horizontal-compact .nspo__card:before{
  content:"";
  display:block;
  width:18px;
  height:18px;
  border:2px solid currentColor;
  border-radius:50%;
  grid-column:1;
  background:transparent;
}
.nspo--horizontal-compact .nspo__card.is-selected:before{
  background:radial-gradient(circle at 50% 50%, currentColor 0 4px, transparent 4.5px);
}
.nspo--horizontal-compact .nspo__image-wrap,
.nspo--horizontal-compact .nspo__regular-price,
.nspo--horizontal-compact .nspo__saving{display:none}
.nspo--horizontal-compact .nspo__title{
  grid-column:2;
  font-size:16px;
  font-weight:700;
  line-height:1.2;
}
.nspo--horizontal-compact .nspo__prices{
  grid-column:3;
  display:block;
  justify-self:end;
  font-size:16px;
  font-weight:700;
  white-space:nowrap;
}
.nspo--horizontal-compact .nspo__badge{
  position:static;
  grid-column:4;
  min-height:0;
  padding:6px 12px;
  border-radius:999px;
  background:#49aa88;
  color:#fff;
  font-size:14px;
  font-weight:700;
  line-height:1.1;
  white-space:nowrap;
}
.nspo--horizontal-compact .nspo__card:nth-child(3) .nspo__badge{background:#49aa88}
.nspo--horizontal-compact .nspo__unavailable{grid-column:4;justify-self:end}
@media(max-width:520px){
  .nspo--horizontal-compact .nspo__card{
    grid-template-columns:22px minmax(0,1fr) auto;
    gap:8px;
    padding:11px 12px;
  }
  .nspo--horizontal-compact .nspo__card.is-selected{padding:11px 12px}
  .nspo--horizontal-compact .nspo__title{font-size:14px}
  .nspo--horizontal-compact .nspo__prices{font-size:14px}
  .nspo--horizontal-compact .nspo__badge{
    grid-column:2 / span 2;
    justify-self:start;
    margin-top:2px;
    padding:5px 9px;
    font-size:12px;
  }
}

/* Gutenberg editor preview: keep controls non-interactive without adding a visible frame. */
.editor-styles-wrapper .nspo-editor-block{cursor:pointer;border:0!important;outline:0!important;box-shadow:none!important}
.editor-styles-wrapper .nspo-editor-block .nspo{pointer-events:none;border:0!important;outline:0!important;box-shadow:none!important}
.editor-styles-wrapper .block-editor-block-list__block.is-selected:has(> .nspo-editor-block),
.editor-styles-wrapper .block-editor-block-list__block.has-child-selected:has(> .nspo-editor-block){outline:0!important;box-shadow:none!important}


/* v1.0.1 editor-only hotfix: remove Gutenberg's selection frame around this block. */
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"],
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"] > .nspo-editor-block {
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"]::before,
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"]::after,
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"] > .nspo-editor-block::before,
.editor-styles-wrapper .block-editor-block-list__block[data-type="northstar/product-options"] > .nspo-editor-block::after {
  content:none!important;
  display:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}


/* v1.0.2 frontend outer-frame fix.
 * Some themes apply generic borders to dynamic block/root wrappers.
 * Keep borders only on the intended selector and purchase row elements. */
.nspo,
.wp-block-northstar-product-options,
.nspo-editor-block,
.nspo-block-shell {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}
.nspo::before,
.nspo::after,
.wp-block-northstar-product-options::before,
.wp-block-northstar-product-options::after,
.nspo-editor-block::before,
.nspo-editor-block::after,
.nspo-block-shell::before,
.nspo-block-shell::after {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
/* Compact cards retain one outer border and only the row dividers. */
.nspo--horizontal-compact > .nspo__cards {
  box-shadow: none !important;
  outline: 0 !important;
}
.nspo--horizontal-compact > .nspo__purchase-row {
  box-shadow: none !important;
  outline: 0 !important;
}
