/* assets/css/store-utilities.css — Phase A Bootstrap-compatible subset.
 *
 * Single-purpose utility classes: spacing, display/flex, position,
 * typography, colors/backgrounds, borders/shadow/rounded. Rules copied
 * verbatim from the self-hosted assets/vendor/bootstrap/bootstrap.min.css
 * (Bootstrap 5.3.2) — filtered to classes actually used by the store
 * frontend. See assets/css/store-framework.css header for the extraction
 * method and current (unlinked) status.
 */

/* ===== Spacing / Display-Flex / Position / Typography / Colors-Backgrounds / Borders-Shadow ===== */

/* ---- spacing ---- */
.m-0 {
  margin:0!important;
}
.mx-auto {
  margin-right:auto!important;
  margin-left:auto!important;
}
.my-2 {
  margin-top:.5rem!important;
  margin-bottom:.5rem!important;
}
.mt-1 {
  margin-top:.25rem!important;
}
.mt-2 {
  margin-top:.5rem!important;
}
.mt-3 {
  margin-top:1rem!important;
}
.mt-4 {
  margin-top:1.5rem!important;
}
.mt-5 {
  margin-top:3rem!important;
}
.mt-auto {
  margin-top:auto!important;
}
.me-2 {
  margin-right:.5rem!important;
}
.me-3 {
  margin-right:1rem!important;
}
.me-auto {
  margin-right:auto!important;
}
.mb-0 {
  margin-bottom:0!important;
}
.mb-1 {
  margin-bottom:.25rem!important;
}
.mb-2 {
  margin-bottom:.5rem!important;
}
.mb-3 {
  margin-bottom:1rem!important;
}
.ms-1 {
  margin-left:.25rem!important;
}
.ms-2 {
  margin-left:.5rem!important;
}
.ms-auto {
  margin-left:auto!important;
}
.p-0 {
  padding:0!important;
}
.p-3 {
  padding:1rem!important;
}
.px-1 {
  padding-right:.25rem!important;
  padding-left:.25rem!important;
}
.px-3 {
  padding-right:1rem!important;
  padding-left:1rem!important;
}
.py-2 {
  padding-top:.5rem!important;
  padding-bottom:.5rem!important;
}
.py-4 {
  padding-top:1.5rem!important;
  padding-bottom:1.5rem!important;
}
.py-5 {
  padding-top:3rem!important;
  padding-bottom:3rem!important;
}
.pt-4 {
  padding-top:1.5rem!important;
}
.pb-3 {
  padding-bottom:1rem!important;
}
@media (min-width:992px) {
  .mb-lg-0 {
    margin-bottom:0!important;
  }
}

/* ---- display-flex ---- */
.d-inline {
  display:inline!important;
}
.d-inline-block {
  display:inline-block!important;
}
.d-grid {
  display:grid!important;
}
.d-flex {
  display:flex!important;
}
.list-unstyled {
  padding-left:0;
  list-style:none;
}
.d-inline-flex {
  display:inline-flex!important;
}
.d-none {
  display:none!important;
}
.flex-column {
  flex-direction:column!important;
}
.flex-grow-1 {
  flex-grow:1!important;
}
.flex-shrink-0 {
  flex-shrink:0!important;
}
.flex-wrap {
  flex-wrap:wrap!important;
}
.justify-content-end {
  justify-content:flex-end!important;
}
.justify-content-center {
  justify-content:center!important;
}
.justify-content-between {
  justify-content:space-between!important;
}
.align-items-start {
  align-items:flex-start!important;
}
.align-items-center {
  align-items:center!important;
}
.align-self-start {
  align-self:flex-start!important;
}
.gap-2 {
  gap:.5rem!important;
}
.gap-3 {
  gap:1rem!important;
}
.gap-4 {
  gap:1.5rem!important;
}
@media (min-width:576px) {
  .d-sm-flex {
    display:flex!important;
  }
}
@media (min-width:992px) {
  .order-lg-1 {
    order:1!important;
  }
  .order-lg-2 {
    order:2!important;
  }
}

/* ---- position ---- */
.position-relative {
  position:relative!important;
}
.position-absolute {
  position:absolute!important;
}
.top-0 {
  top:0!important;
}
.start-100 {
  left:100%!important;
}
.translate-middle {
  transform:translate(-50%,-50%)!important;
}
.w-100 {
  width:100%!important;
}
.h-100 {
  height:100%!important;
}

/* ---- typography ---- */
.h4,.h5,.h6 {
  margin-top:0;
  margin-bottom:.5rem;
  font-weight:500;
  line-height:1.2;
  color:var(--bs-heading-color);
}
.h4 {
  font-size:calc(1.275rem + .3vw);
}
@media (min-width:1200px) {
  .h4 {
    font-size:1.5rem;
  }
}
.h5 {
  font-size:1.25rem;
}
.h6 {
  font-size:1rem;
}
.small {
  font-size:.875em;
}
.fs-5 {
  font-size:1.25rem!important;
}
.fw-semibold {
  font-weight:600!important;
}
.fw-bold {
  font-weight:700!important;
}
.text-end {
  text-align:right!important;
}
.text-center {
  text-align:center!important;
}
.text-decoration-none {
  text-decoration:none!important;
}
.text-uppercase {
  text-transform:uppercase!important;
}
@media (min-width:768px) {
  .text-md-start {
    text-align:left!important;
  }
  .text-md-end {
    text-align:right!important;
  }
}

/* ---- colors-backgrounds ---- */
.link-light {
  color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;
  -webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;
  text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;
}
.link-light:focus,.link-light:hover {
  color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;
  -webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;
  text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;
}
.text-primary {
  --bs-text-opacity:1;
  color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important;
}
.text-secondary {
  --bs-text-opacity:1;
  color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important;
}
.text-success {
  --bs-text-opacity:1;
  color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important;
}
.text-info {
  --bs-text-opacity:1;
  color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important;
}
.text-danger {
  --bs-text-opacity:1;
  color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important;
}
.text-light {
  --bs-text-opacity:1;
  color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important;
}
.text-white {
  --bs-text-opacity:1;
  color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important;
}
.text-muted {
  --bs-text-opacity:1;
  color:var(--bs-secondary-color)!important;
}
.bg-primary {
  --bs-bg-opacity:1;
  background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important;
}
.bg-secondary {
  --bs-bg-opacity:1;
  background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important;
}
.bg-light {
  --bs-bg-opacity:1;
  background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important;
}
.bg-dark {
  --bs-bg-opacity:1;
  background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important;
}
.bg-white {
  --bs-bg-opacity:1;
  background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important;
}
.bg-secondary-subtle {
  background-color:var(--bs-secondary-bg-subtle)!important;
}
.bg-info-subtle {
  background-color:var(--bs-info-bg-subtle)!important;
}

/* ---- borders-shadow ---- */
.shadow-sm {
  box-shadow:var(--bs-box-shadow-sm)!important;
}
.border {
  border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;
}
.border-top {
  border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;
}
.border-bottom {
  border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;
}
.border-success {
  --bs-border-opacity:1;
  border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important;
}
.rounded {
  border-radius:var(--bs-border-radius)!important;
}
.rounded-pill {
  border-radius:var(--bs-border-radius-pill)!important;
}
.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within) {
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
  position:absolute!important;
}

/* ---- language switcher (BG | EN | RO), header nav — 2026-08-25;
   2026-09-08 rebuilt as a dropdown (a button showing the current
   language, click reveals the other 2 as a menu) instead of all 3
   sitting inline side by side. Toggle behavior is
   assets/js/store-lang-dropdown.js (vanilla, same pattern as
   store-collapse.js — no Bootstrap JS dependency added for this). ---- */
.store-lang-switcher {
  position:relative;
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.02em;
}
.store-lang-switcher-toggle {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  border:0;
  background:none;
  padding:0;
  margin:0;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
.store-lang-switcher-flag {
  font-size:1rem;
  line-height:1;
}
.store-lang-switcher-caret {
  flex:0 0 auto;
  transition:transform .15s ease;
}
.store-lang-switcher[data-open="true"] .store-lang-switcher-caret {
  transform:rotate(180deg);
}
.store-lang-switcher-menu {
  position:absolute;
  top:calc(100% + .5rem);
  right:0;
  z-index:1050;
  display:none;
  flex-direction:column;
  min-width:6.5rem;
  margin:0;
  padding:.35rem;
  list-style:none;
  background:#fff;
  border:1px solid rgba(0,0,0,.1);
  border-radius:.4rem;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.store-lang-switcher[data-open="true"] .store-lang-switcher-menu {
  display:flex;
}
.store-lang-switcher-menu li {
  display:block;
}
.store-lang-switcher-link,
.store-lang-switcher-unavailable {
  display:flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .5rem;
  border-radius:.3rem;
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.store-lang-switcher-link:hover,
.store-lang-switcher-link:focus-visible {
  background:rgba(0,0,0,.06);
  text-decoration:none;
}
.store-lang-switcher-unavailable {
  opacity:.45;
  cursor:default;
}
