/* ============================================================
   WooCommerce → aura design. Cart, checkout, my-account, shop,
   buttons, forms, tables, notices. Classic + Blocks selectors.
   All scoped under body.bspmp-chrome-on.
   ============================================================ */

/* ---- primary (CTA) buttons ---- */
body.bspmp-chrome-on .woocommerce a.button.alt,
body.bspmp-chrome-on .woocommerce button.button.alt,
body.bspmp-chrome-on .woocommerce input.button.alt,
body.bspmp-chrome-on .woocommerce #respond input#submit.alt,
body.bspmp-chrome-on .woocommerce a.button.checkout,
body.bspmp-chrome-on .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.bspmp-chrome-on .wc-block-components-button,
body.bspmp-chrome-on .wc-block-cart__submit-button{
  background:var(--aura-gradient-br) !important;
  color:#fff !important;
  border:none !important;
  border-radius:999px !important;
  padding:13px 28px !important;
  font-weight:600 !important;
  font-family:var(--font-sans) !important;
  box-shadow:var(--glow-cta);
  transition:opacity .16s ease, transform .16s ease;
  text-shadow:none;
}
body.bspmp-chrome-on .woocommerce a.button.alt:hover,
body.bspmp-chrome-on .woocommerce button.button.alt:hover,
body.bspmp-chrome-on .woocommerce input.button.alt:hover,
body.bspmp-chrome-on .woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.bspmp-chrome-on .wc-block-components-button:hover{
  opacity:.93; transform:translateY(-1px); color:#fff !important;
}

/* ---- secondary buttons (Update cart, Apply coupon, etc.) ---- */
body.bspmp-chrome-on .woocommerce a.button,
body.bspmp-chrome-on .woocommerce button.button,
body.bspmp-chrome-on .woocommerce input.button,
body.bspmp-chrome-on .woocommerce #respond input#submit{
  background:#fff !important;
  color:var(--aura-ink) !important;
  border:1px solid var(--border-strong) !important;
  border-radius:999px !important;
  padding:12px 24px !important;
  font-weight:600 !important;
  font-family:var(--font-sans) !important;
  box-shadow:var(--shadow-1);
  transition:border-color .16s, color .16s;
}
body.bspmp-chrome-on .woocommerce a.button:hover,
body.bspmp-chrome-on .woocommerce button.button:hover,
body.bspmp-chrome-on .woocommerce input.button:hover{
  border-color:var(--indigo) !important; color:var(--indigo) !important;
}

/* ---- form fields ---- */
body.bspmp-chrome-on .woocommerce form .form-row input.input-text,
body.bspmp-chrome-on .woocommerce form .form-row textarea,
body.bspmp-chrome-on .woocommerce .select2-container .select2-selection,
body.bspmp-chrome-on .woocommerce form .form-row select,
body.bspmp-chrome-on .woocommerce #order_comments,
body.bspmp-chrome-on input[type="email"],
body.bspmp-chrome-on input[type="tel"],
body.bspmp-chrome-on input[type="password"]{
  border-radius:12px !important;
  border:1px solid var(--border) !important;
  padding:12px 14px !important;
  background:#fff !important;
  font-family:var(--font-sans);
  color:var(--aura-ink);
  box-shadow:none !important;
}
body.bspmp-chrome-on .woocommerce form .form-row input.input-text:focus,
body.bspmp-chrome-on .woocommerce form .form-row textarea:focus,
body.bspmp-chrome-on .wc-block-components-text-input input:focus{
  border-color:var(--indigo) !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.15) !important;
  outline:none !important;
}

/* ---- prices ---- */
body.bspmp-chrome-on .woocommerce .price,
body.bspmp-chrome-on .woocommerce .amount,
body.bspmp-chrome-on .wc-block-components-product-price{
  font-family:var(--font-display); color:var(--aura-ink); font-weight:600;
}

/* ---- notices ---- */
body.bspmp-chrome-on .woocommerce-message,
body.bspmp-chrome-on .woocommerce-info,
body.bspmp-chrome-on .woocommerce-error,
body.bspmp-chrome-on .wc-block-components-notice-banner{
  border-radius:var(--radius-lg) !important;
  border:1px solid var(--border) !important;
  border-left:4px solid var(--indigo) !important;
  background:rgba(99,102,241,.06) !important;
  color:var(--aura-ink) !important;
  box-shadow:none !important;
  font-family:var(--font-sans);
}
body.bspmp-chrome-on .woocommerce-error{
  border-left-color:#dc2626 !important; background:rgba(220,38,38,.06) !important;
}
body.bspmp-chrome-on .woocommerce-message::before,
body.bspmp-chrome-on .woocommerce-info::before{color:var(--indigo)}

/* ---- tables (cart, order review, account orders) ---- */
body.bspmp-chrome-on .woocommerce table.shop_table{
  border-radius:var(--radius-xl); border:1px solid var(--border);
  background:#fff; box-shadow:var(--shadow-1); overflow:hidden; border-collapse:separate; border-spacing:0;
}
body.bspmp-chrome-on .woocommerce table.shop_table th{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  color:var(--fg-muted); background:rgba(15,15,26,.02);
}
body.bspmp-chrome-on .woocommerce table.shop_table td,
body.bspmp-chrome-on .woocommerce table.shop_table th{ border-top:1px solid var(--border); }

/* ---- cart / checkout totals card (classic) ---- */
body.bspmp-chrome-on .woocommerce .cart_totals,
body.bspmp-chrome-on .woocommerce #order_review{
  border-radius:var(--radius-2xl); border:1px solid var(--border);
  background:#fff; box-shadow:var(--shadow-1); padding:6px 20px 20px;
}

/* ---- product / shop grid ---- */
body.bspmp-chrome-on .woocommerce ul.products li.product{
  border-radius:var(--radius-2xl); border:1px solid var(--border);
  background:#fff; box-shadow:var(--shadow-1); padding:16px; transition:transform .18s, box-shadow .18s;
}
body.bspmp-chrome-on .woocommerce ul.products li.product:hover{ transform:translateY(-3px); box-shadow:var(--glow-violet); }
body.bspmp-chrome-on .woocommerce ul.products li.product img{ border-radius:var(--radius-lg); }

/* ---- my account (see the dedicated block further down) ---- */

/* ---- quantity input ---- */
body.bspmp-chrome-on .woocommerce .quantity input.qty{
  border-radius:10px; border:1px solid var(--border); padding:8px; background:#fff;
}

/* ============================================================
   Block cart & checkout (WooCommerce Blocks).
   These use a different DOM to the classic shortcodes, so they
   get their own rules rather than inheriting classic ones.
   ============================================================ */

/* ---- page width + column rhythm ---- */
body.bspmp-chrome-on.woocommerce-checkout .site-main,
body.bspmp-chrome-on.woocommerce-cart .site-main,
body.bspmp-chrome-on.woocommerce-checkout main#content,
body.bspmp-chrome-on.woocommerce-cart main#content{
  max-width:1180px;
}
body.bspmp-chrome-on .wc-block-checkout__form,
body.bspmp-chrome-on .wp-block-woocommerce-checkout-fields-block{
  padding-right:8px;
}
body.bspmp-chrome-on .wp-block-woocommerce-checkout{
  gap:48px;
}

/* ---- the order summary is ONE card, not a card per row ---- */
body.bspmp-chrome-on .wc-block-checkout__sidebar,
body.bspmp-chrome-on .wp-block-woocommerce-checkout-totals-block,
body.bspmp-chrome-on .wp-block-woocommerce-cart-totals-block{
  border-radius:var(--radius-2xl);
  border:1px solid var(--border);
  background:#fff;
  box-shadow:var(--shadow-1);
  padding:6px 22px 16px;
}
/* Sticky sidebar must clear the sticky site header (and the admin bar). */
body.bspmp-chrome-on .wc-block-checkout__sidebar.is-sticky{
  top:104px !important;
}
body.admin-bar.bspmp-chrome-on .wc-block-checkout__sidebar.is-sticky{
  top:136px !important;
}

/* Rows inside the card: plain, divided, and invisible when empty.
   WooCommerce renders empty discount/fee wrappers on every order —
   styling each as a card is what produced the floating blank boxes. */
body.bspmp-chrome-on .wc-block-components-totals-wrapper{
  border:0 !important;
  border-top:1px solid var(--border) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:14px 0 !important;
  margin:0 !important;
}
body.bspmp-chrome-on .wc-block-components-totals-wrapper:empty{
  display:none !important;
}
body.bspmp-chrome-on .wc-block-components-totals-wrapper:first-of-type{
  border-top:0 !important;
}

/* ---- order summary heading + items ---- */
body.bspmp-chrome-on .wc-block-components-order-summary .wc-block-components-panel__button,
body.bspmp-chrome-on .wp-block-woocommerce-checkout-order-summary-block > .wc-block-components-title{
  font-family:var(--font-display) !important;
  font-size:18px !important;
  color:var(--aura-ink) !important;
}
body.bspmp-chrome-on .wc-block-components-order-summary-item__image img{
  border-radius:var(--radius-md);
  border:1px solid var(--border);
  background:var(--aura-canvas);
}
body.bspmp-chrome-on .wc-block-components-order-summary-item__quantity{
  background:var(--aura-ink) !important;
  border-color:var(--aura-ink) !important;
  color:#fff !important;
}
body.bspmp-chrome-on .wc-block-components-product-name{
  font-weight:600;
  color:var(--aura-ink);
}
body.bspmp-chrome-on .wc-block-components-product-details__license,
body.bspmp-chrome-on .wc-block-components-product-details li{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--fg-subtle);
}

/* ---- totals: make the final line read as the total ---- */
body.bspmp-chrome-on .wc-block-components-totals-item__label{
  color:var(--fg-muted);
  font-size:14px;
}
body.bspmp-chrome-on .wc-block-components-totals-footer-item{
  font-family:var(--font-display);
}
body.bspmp-chrome-on .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.bspmp-chrome-on .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-size:20px !important;
  font-weight:600 !important;
  color:var(--aura-ink) !important;
}

/* ---- form section headings ---- */
body.bspmp-chrome-on .wc-block-components-checkout-step__title,
body.bspmp-chrome-on .wc-block-components-title.wc-block-components-checkout-step__title{
  font-family:var(--font-display) !important;
  font-size:20px !important;
  font-weight:600 !important;
  letter-spacing:-0.02em;
  color:var(--aura-ink) !important;
}
body.bspmp-chrome-on .wc-block-components-checkout-step__description{
  color:var(--fg-muted);
  font-size:13.5px;
}
body.bspmp-chrome-on .wc-block-components-checkout-step{
  border:0;
  padding-left:0;
}

/* ---- block inputs: room for the floating label ---- */
body.bspmp-chrome-on .wc-block-components-text-input input,
body.bspmp-chrome-on .wc-block-components-text-input textarea{
  border-radius:12px !important;
  border:1px solid var(--border) !important;
  background:#fff !important;
  font-family:var(--font-sans) !important;
  color:var(--aura-ink) !important;
  box-shadow:none !important;
  padding:24px 14px 8px !important;
  height:auto !important;
  min-height:56px;
  line-height:1.3 !important;
}
body.bspmp-chrome-on .wc-block-components-text-input label{
  left:14px !important;
  color:var(--fg-subtle) !important;
  font-family:var(--font-sans) !important;
}
body.bspmp-chrome-on .wc-block-components-text-input.is-active label{
  top:8px !important;
  color:var(--fg-subtle) !important;
}
body.bspmp-chrome-on .wc-block-components-text-input input:focus,
body.bspmp-chrome-on .wc-block-components-text-input textarea:focus{
  border-color:var(--indigo) !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.15) !important;
  outline:none !important;
}
body.bspmp-chrome-on .wc-block-components-text-input.is-active label{
  transform:translateY(0) scale(.8) !important;
}

/* ---- selects (country / state) match the text inputs ---- */
body.bspmp-chrome-on .wc-blocks-components-select__container,
body.bspmp-chrome-on .wc-blocks-components-select{
  border-radius:12px !important;
  border:1px solid var(--border) !important;
  background:#fff !important;
  box-shadow:none !important;
  min-height:56px;
}
body.bspmp-chrome-on .wc-blocks-components-select__select{
  border:0 !important;
  background:transparent !important;
  font-family:var(--font-sans) !important;
  color:var(--aura-ink) !important;
  padding:24px 14px 8px !important;
  height:auto !important;
  min-height:56px;
  box-shadow:none !important;
}
body.bspmp-chrome-on .wc-blocks-components-select__label{
  left:14px !important;
  color:var(--fg-subtle) !important;
  font-family:var(--font-sans) !important;
}
body.bspmp-chrome-on .wc-blocks-components-select__container:focus-within{
  border-color:var(--indigo) !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.15) !important;
}

/* ---- coupon panel ---- */
body.bspmp-chrome-on .wc-block-components-panel__button{
  font-family:var(--font-sans) !important;
  font-weight:600 !important;
  color:var(--aura-ink) !important;
}

/* ---- place order ---- */
body.bspmp-chrome-on .wc-block-components-checkout-place-order-button{
  width:100%;
  justify-content:center;
  padding:16px 28px !important;
  font-size:15px !important;
}
body.bspmp-chrome-on .wc-block-checkout__actions_row{
  border:0;
  padding-top:8px;
}
body.bspmp-chrome-on .wc-block-checkout__terms{
  color:var(--fg-subtle);
  font-size:12.5px;
}

/* ---- notices inside the block checkout ---- */
body.bspmp-chrome-on .wc-block-components-notice-banner.is-error{
  border-left-color:#dc2626 !important;
  background:rgba(220,38,38,.06) !important;
}

@media (max-width:900px){
  body.bspmp-chrome-on .wp-block-woocommerce-checkout{ gap:28px; }
  body.bspmp-chrome-on .wc-block-checkout__form,
  body.bspmp-chrome-on .wp-block-woocommerce-checkout-fields-block{ padding-right:0; }
  body.bspmp-chrome-on .wc-block-checkout__sidebar.is-sticky{ top:80px !important; }
}

/* ============================================================
   My Account.

   Two things to know about these selectors:

   1. `woocommerce-account` is a class on <body>, not on a wrapper
      element. Writing `.bspmp-chrome-on .woocommerce-account ...`
      (descendant) matches nothing — it has to be chained onto the
      body selector with no space.
   2. The portal's dashboard cards are printed with inline styles
      from PHP, so external CSS only wins with !important. They also
      carry no classes, hence the [style*=...] hooks.
   ============================================================ */

/* ---- page container: works on classic AND block themes ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce{
  max-width:1180px !important;
  margin-inline:auto;
}
body.bspmp-chrome-on.woocommerce-account .entry-content > .woocommerce,
body.bspmp-chrome-on.woocommerce-account .wp-block-post-content > .woocommerce{
  width:100%;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce::after{
  content:""; display:table; clear:both;
}

/* ---- page heading ---- */
body.bspmp-chrome-on.woocommerce-account .entry-title,
body.bspmp-chrome-on.woocommerce-account .wp-block-post-title{
  max-width:1180px;
  margin:0 auto 28px;
  font-size:40px;
}

/* ---- sidebar nav as a card ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation{
  width:250px !important;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none !important;
  margin:0 !important;
  padding:6px !important;
  display:flex;
  flex-direction:column;
  gap:2px;
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  background:#fff;
  box-shadow:var(--shadow-1);
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation li{
  margin:0 !important;
  list-style:none !important;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  font-weight:500;
  color:var(--fg-muted) !important;
  text-decoration:none;
  transition:background .15s, color .15s;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  background:rgba(15,15,26,.04);
  color:var(--aura-ink) !important;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  color:#fff !important;
  background:var(--aura-gradient-br);
  font-weight:600;
  box-shadow:var(--glow-cta);
}

/* ---- content panel ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content{
  width:calc(100% - 292px) !important;
  border:1px solid var(--border);
  border-radius:var(--radius-2xl);
  background:#fff;
  box-shadow:var(--shadow-1);
  padding:30px 32px;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content > h3,
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content > h4{
  font-family:var(--font-display);
  letter-spacing:-0.02em;
  color:var(--aura-ink);
  margin:32px 0 14px;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content > h3{ font-size:20px; }
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content > h4{ font-size:16px; }
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content > h3:first-child{ margin-top:0; }
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content p{
  color:var(--fg-muted);
  line-height:1.65;
}

/* ---- dashboard stat cards (inline-styled by the portal plugin) ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"]{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:14px !important;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > a,
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > div{
  min-width:0 !important;
  padding:18px !important;
  border:1px solid var(--border) !important;
  border-radius:var(--radius-lg) !important;
  background:#fff !important;
  box-shadow:var(--shadow-1);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > a:hover{
  transform:translateY(-2px);
  border-color:var(--indigo) !important;
  box-shadow:var(--glow-violet);
}
/* first inner div is the figure, second is the label */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > a > div:first-child{
  font-family:var(--font-display) !important;
  font-size:32px !important;
  font-weight:600 !important;
  letter-spacing:-0.02em;
  color:var(--aura-ink);
  line-height:1.1;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > a > div:last-child{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--fg-subtle);
  margin-top:6px;
}
/* the amber "expiring soon" tone the plugin sets when the count is > 0 */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > a[style*="#d98500"]{
  border-color:#d98500 !important;
  background:rgba(217,133,0,.05) !important;
}

/* ---- "Coming Soon" placeholder cards ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"] > div[style*="dashed"]{
  border:1px dashed var(--border-strong) !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:1 !important;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="dashed"] > div:first-child{
  font-weight:600;
  color:var(--fg-muted);
  font-size:14px;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="dashed"] em{
  font-family:var(--font-mono);
  font-size:11px;
  font-style:normal;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--fg-subtle);
}

/* ---- tables inside the account ---- */
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  font-size:13.5px;
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content table th{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--fg-subtle);
  background:rgba(15,15,26,.02);
  text-align:left;
  padding:11px 14px;
  border-bottom:1px solid var(--border);
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content table td{
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  color:var(--fg-muted);
}
body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content table tr:last-child td{
  border-bottom:0;
}

@media (max-width:900px){
  body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-navigation,
  body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content{
    width:100% !important;
    float:none !important;
  }
  body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content{
    margin-top:20px;
    padding:22px 18px;
  }
  body.bspmp-chrome-on.woocommerce-account .woocommerce-MyAccount-content div[style*="display:flex"]{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}
