/* --- TP Store availability (dots) --- */
#store-availability-meta{ margin:.5rem 0 1rem; }
#store-availability-meta .stock{ margin:0; }
#store-availability-meta .stock > strong{ color:#000 !important; }

#store-availability-meta .stock-header{
  display:flex;
  align-items:center;
  gap:24px;
}

#store-availability-meta .stock-title{
  font-weight:700;
  color:var(--tp-store-availability-heading-color, #000);
  font-size:var(--tp-store-availability-heading-size, 14px);
}

#store-availability-meta .stock-legend{
  display:inline-flex;
  align-items:center;
  gap:14px;
}

#store-availability-meta .legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:var(--tp-store-availability-legend-size, 12px);
  color:var(--tp-store-availability-legend-color, #000);
}

/* container: wrap cards */
#store-availability-meta .my-custom-locations-container{
  display:flex;
  flex-wrap:wrap;
  gap:var(--tp-store-availability-store-gap-y, 6px) var(--tp-store-availability-store-gap-x, 16px);
}

/* card */
#store-availability-meta .location-item{
  border:1px solid var(--tp-store-availability-store-border, #ded7c8);
  border-radius:var(--tp-store-availability-store-radius, 8px);
  background:var(--tp-store-availability-store-background, #fff);
  box-shadow:0 1px 0 rgba(35,35,35,.03);
  padding:var(--tp-store-availability-store-padding-y, 8px) var(--tp-store-availability-store-padding-x, 10px);
}

/* row: dot + name */
#store-availability-meta .location-name{
  display:inline-flex;
  align-items:center;
  gap:var(--tp-store-availability-dot-text-gap, 10px);
  line-height:1.1;
}

#store-availability-meta .place-name{
  color:var(--tp-store-availability-store-text, #000) !important;
  max-width:220px;
  white-space:normal;
  word-break:break-word;
  font-size:var(--tp-store-availability-store-text-size, 14px);
}

/* dot only */
#store-availability-meta .status{
  display:inline-block;
  width:var(--tp-store-availability-dot-size, 18px) !important;
  height:var(--tp-store-availability-dot-size, 18px) !important;
  min-width:var(--tp-store-availability-dot-size, 18px) !important;
  max-width:var(--tp-store-availability-dot-size, 18px) !important;
  min-height:var(--tp-store-availability-dot-size, 18px) !important;
  max-height:var(--tp-store-availability-dot-size, 18px) !important;
  border-radius:50%;
  background:#ccc; /* default */
  flex:0 0 auto;
}

/* colors */
#store-availability-meta .status.in-stock{ background:var(--tp-store-availability-in-stock, #27AE60); }
#store-availability-meta .status.not-available{ background:var(--tp-store-availability-not-available, #f8cb60); }
#store-availability-meta .status.unknown{ background:var(--tp-store-availability-unknown, #cfcfcf); }

#store-availability-meta .tp-store-availability-card{
  display:inline-block;
  width:auto;
  max-width:100%;
}

#store-availability-meta details.tp-store-availability-card{
  display:inline-block;
  width:auto;
}

#store-availability-meta .tp-store-availability-toggle{
  width:auto;
  inline-size:max-content;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--tp-store-availability-card-border, #ded7c8);
  border-radius:var(--tp-store-availability-card-radius, 8px);
  background:linear-gradient(110deg, rgba(var(--tp-store-availability-card-accent-rgb, 243,196,83), .18) 0%, rgba(var(--tp-store-availability-card-accent-rgb, 243,196,83), .06) 36%, rgba(255,255,255,.88) 76%), var(--tp-store-availability-card-background, #f5f5f5);
  color:var(--tp-store-availability-card-text, #111);
  box-shadow:0 1px 0 rgba(35,35,35,.03);
  padding:var(--tp-store-availability-card-padding-y, 10px) var(--tp-store-availability-card-padding-x, 12px);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:box-shadow 160ms ease, border-color 160ms ease;
  list-style:none;
}

#store-availability-meta .tp-store-availability-toggle::-webkit-details-marker{
  display:none;
}

#store-availability-meta .tp-store-availability-toggle:hover{
  border-color:var(--tp-store-availability-card-accent, #f3c453);
  box-shadow:0 10px 24px rgba(35,35,35,.1), 0 0 0 3px rgba(var(--tp-store-availability-card-accent-rgb, 243,196,83), .36);
}

#store-availability-meta .tp-store-availability-toggle-copy{
  display:block;
  min-width:0;
  flex:1 1 auto;
}

#store-availability-meta .tp-store-availability-toggle-title{
  color:var(--tp-store-availability-card-text, #111);
  font-size:var(--tp-store-availability-card-title-size, 16px);
  font-weight:800;
  line-height:1.15;
  white-space:normal;
}

#store-availability-meta .tp-store-availability-toggle::after{
  content:"+";
  flex:0 0 auto;
  align-self:center;
  color:var(--tp-store-availability-card-text, #111);
  font-size:var(--tp-store-availability-card-icon-size, 18px);
  font-weight:700;
  line-height:1;
}

#store-availability-meta .tp-store-availability-card[data-expanded="1"] .tp-store-availability-toggle::after{
  content:"-";
}

#store-availability-meta .tp-store-availability-card[open] .tp-store-availability-toggle::after{
  content:"-";
}

#store-availability-meta .tp-store-availability-toggle:focus-visible{
  border-color:var(--tp-store-availability-card-accent, #f3c453);
  outline:2px solid currentColor;
  outline-offset:2px;
}

#store-availability-meta .tp-store-availability-panel{
  padding-top:10px;
}

#store-availability-meta .tp-store-availability-panel[hidden]{
  display:none !important;
}

html.tp-store-availability-card-mode #store-availability-meta > :not(.tp-store-availability-card){
  display:none !important;
}

.tp-store-availability-source-hidden{ display:none !important; }

/* Hide raw source stock while the widget is active; leave it visible if JS fails. */
html.tp-store-availability-ready .woocommerce-variation-description p.stock,
html.tp-store-availability-ready .woocommerce-variation-availability,
html.tp-store-availability-js .woocommerce-variation-description p.stock,
html.tp-store-availability-js .single_variation .woocommerce-variation-description p.stock,
html.tp-store-availability-js .single_variation .woocommerce-variation-availability,
body.tp-store-availability-rendered .woocommerce-variation-description p.stock,
body.tp-store-availability-rendered .woocommerce-variation-availability,
html.tp-store-availability-js .stock-msg,
html.tp-store-availability-js .slw-variations-listed{ display:none !important; }

@media (max-width:480px){
  #store-availability-meta .my-custom-locations-container{
    gap:6px 10px;
  }
  #store-availability-meta .location-item{
    width:100%;
  }
}
