/* ============================================================
   AMBER STORE — UTILITY / HELPER CLASSES
   Replacement for previously inlined `style="…"` attributes.
   Loaded after style.css on every page.
   ============================================================ */

/* ---- Display / visibility ---- */
.u-hidden          { display: none !important; }
.u-block           { display: block; }
.u-inline-block    { display: inline-block; }
.u-flex            { display: flex; }
.u-flex-col        { display: flex; flex-direction: column; }
.u-grid            { display: grid; }

/* ---- Flex helpers ---- */
.u-flex-center     { display: flex; align-items: center; justify-content: center; }
.u-flex-between    { display: flex; justify-content: space-between; align-items: center; }
.u-flex-end        { display: flex; justify-content: flex-end; align-items: center; }
.u-items-center    { align-items: center; }
.u-gap-1           { gap: .25rem; }
.u-gap-2           { gap: .5rem; }
.u-gap-3           { gap: .75rem; }
.u-gap-4           { gap: 1rem; }

/* ---- Positioning ---- */
.u-relative        { position: relative; }
.u-absolute        { position: absolute; }
.u-rel-z1          { position: relative; z-index: 1; }

/* ---- Sizing ---- */
.u-w-full          { width: 100%; }
.u-mw-narrow       { max-width: 460px; margin: 0 auto; }
.u-mw-1000         { max-width: 1000px; margin: 0 auto; }

/* ---- Text ---- */
.u-text-center     { text-align: center; }
.u-text-left       { text-align: left; }
.u-text-right      { text-align: right; }
.u-text-white      { color: var(--clr-white) !important; }
.u-text-gold       { color: var(--clr-gold) !important; }
.u-text-sage       { color: var(--clr-sage); }
.u-text-success    { color: var(--clr-success); }
.u-text-danger     { color: #e74c3c; }

.u-text-xs         { font-size: .72rem; }
.u-text-sm         { font-size: .8rem; }
.u-text-md         { font-size: .85rem; }
.u-text-lg         { font-size: .9rem; }

.u-fw-600          { font-weight: 600; }
.u-fw-700          { font-weight: 700; }
.u-uppercase       { text-transform: uppercase; letter-spacing: .08em; }

/* ---- Spacing helpers ---- */
.u-mt-0  { margin-top: 0; }
.u-mt-1  { margin-top: .25rem; }
.u-mt-2  { margin-top: .5rem; }
.u-mt-3  { margin-top: .75rem; }
.u-mt-4  { margin-top: 1rem; }
.u-mt-5  { margin-top: 1.25rem; }
.u-mt-6  { margin-top: 1.5rem; }
.u-mt-8  { margin-top: 2rem; }
.u-mt-12 { margin-top: 3rem; }
.u-mb-2  { margin-bottom: .5rem; }
.u-mb-4  { margin-bottom: 1rem; }
.u-mb-6  { margin-bottom: 1.5rem; }
.u-mb-8  { margin-bottom: 2rem; }

.u-py-section     { padding: 2rem 0 5rem; }
.u-pad-2          { padding: 2rem; }
.u-pad-5          { padding: 5rem 2rem; }

/* ---- States ---- */
.u-disabled       { opacity: .5; cursor: not-allowed; pointer-events: none; }
.u-loading        { text-align: center; padding: 5rem; }
.u-loading i      { font-size: 2rem; color: var(--clr-gold); }

/* ---- Empty / not-found state shared ---- */
.u-empty-state    { text-align: center; padding: 5rem; }
.u-empty-state .ico { font-size: 3rem; color: var(--clr-sage); display: block; margin-bottom: 1rem; }

/* ---- Cart sidebar utilities ---- */
.cart-shipping-bar-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .5rem;
}
.cart-shipping-bar-row .lbl  { font-size: .8rem; font-weight: 600; }
.cart-shipping-bar-row .amt  { font-size: .8rem; color: var(--clr-gold); font-weight: 700; }

/* ---- Checkout extra ---- */
.checkout-secure-flag {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .85rem;
  color: rgba(255,255,255,.65);
}
.checkout-secure-flag i { color: var(--clr-gold); }

.field-hint--info {
  font-size: .72rem;
  color: var(--clr-sage);
  margin-top: .3rem;
}

/* ---- Product page note disclaimer paragraph ---- */
.notes-empty-line { color: var(--clr-sage); font-size: .9rem; }

/* ---- Generic “section wrapper for results” on catalog ---- */
.results-section { padding: 2rem 0 5rem; }
.results-shipping-hint { color: var(--clr-gold); font-weight: 600; font-size: .8rem; }

/* ---- Footer payment line ---- */
.footer-payment-icons i.gold { color: var(--clr-gold); }
.footer-payment-icons span   { font-size: .8rem; }

/* ---- Newsletter section ---- */
.newsletter-eyebrow {
  display: block;
  text-align: center;
  margin-bottom: 1rem;
}
.newsletter-title {
  color: var(--clr-white);
  text-align: center;
  margin-bottom: 1rem;
}
.newsletter-desc {
  text-align: center;
  opacity: .75;
  color: var(--clr-white);
  max-width: 460px;
  margin: 0 auto;
}

/* ---- Section title white variant ---- */
.section-title--white,
.section-title--white h2 { color: var(--clr-white); }

/* ---- Cart foot hide-by-default ---- */
.cart-foot { display: none; }
.cart-foot.is-visible { display: block; }

/* ---- Generic loader/error placeholders for product page ---- */
.loader-center { text-align: center; padding: 5rem; }
.loader-center i { font-size: 2rem; color: var(--clr-gold); }

.error-center { text-align: center; padding: 5rem; }
.error-center i { font-size: 3rem; color: var(--clr-sage); display: block; margin-bottom: 1rem; }
.error-center .btn { margin-top: 1.5rem; }

/* ---- Notes empty paragraph ---- */
.notes-empty { color: var(--clr-sage); font-size: .9rem; }

/* ---- Disabled add-to-cart button ---- */
.btn-disabled-cart { opacity: .5; cursor: not-allowed; }

/* ---- Section CTA wrapper ---- */
.section-cta-row { text-align: center; margin-top: 3rem; }
