/* VAULLA refinement — typographic corrections for the existing public theme.
 * Every rule requires the loader's vr26-active body class. Content is unchanged.
 * Load after the theme, homepage, hero and shop styles.
 */

/* Grid and flex text must be allowed to use the width of its own column. */
body.vr26-active.vaulla-theme :where(main, .vaulla-home, .vp-page, .vj-page, .va-about, .va-blog-article, .vh-singular, .va-terms, .va-delivery, .va-withdrawal, .vp-policy) :where(h1, h2, h3, h4, p, li, dl, dt, dd, summary, label):not(:where(#poznaj-vaulla *)) {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
}
body.vr26-active.vaulla-theme :where(.vh-offer__body, .vp-copy, .vp-summary, .vj-story__copy, .va-hero__copy, .va-purpose__copy, .va-prose, .vp-prose, .entry-content, .vtr-content, .vwd-answer, .vds-answer) {
  min-width: 0;
}
body.vr26-active.vaulla-theme :where(.va-prose, .vp-prose, .entry-content, .va-terms, .vp-policy) a {
  overflow-wrap: anywhere;
}

/* Keep numbers and currency together without squeezing their glyphs. A price
 * range may still wrap between separate amounts, and sale prices retain <del>.
 */
body.vr26-active.vaulla-theme .woocommerce-Price-amount,
body.vr26-active.vaulla-theme .woocommerce-Price-amount bdi,
body.vr26-active.vaulla-theme .woocommerce-Price-currencySymbol,
body.vr26-active.vaulla-theme :is(.vh-hero__price-value, .vh-offer__price, .vp-price, .vp-catalog__price, .vs-shop__price) {
  letter-spacing: 0;
  font-variant-numeric: lining-nums tabular-nums;
}
body.vr26-active.vaulla-theme .woocommerce-Price-amount,
body.vr26-active.vaulla-theme .woocommerce-Price-amount bdi {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

/* Homepage product specifications: one number/unit group, shared baseline. */
body.vr26-active.vaulla-theme .vh-offer__stat strong {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: .12em;
  letter-spacing: 0;
  line-height: 1.08;
  white-space: nowrap;
  overflow-wrap: normal;
  font-variant-numeric: lining-nums tabular-nums;
}
body.vr26-active.vaulla-theme .vh-offer__stat strong > span {
  flex: 0 0 auto;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}

/* Percentages share a baseline with the number. The 5 + 1 operator has its
 * own centered box; do not apply this rule to every span or SVG on the site.
 */
body.vr26-active.vaulla-theme .vaulla-home .vh-promo-card__number,
body.vr26-active.vaulla-theme .vp-page .vp-big-number {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  column-gap: .12em;
  letter-spacing: 0;
  line-height: 1.1;
  white-space: nowrap;
  overflow-wrap: normal;
  font-variant-numeric: lining-nums tabular-nums;
}
body.vr26-active.vaulla-theme .vaulla-home .vh-promo-card__number > span,
body.vr26-active.vaulla-theme .vp-page .vp-big-number > span {
  display: inline-block;
  flex: 0 0 auto;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}
body.vr26-active.vaulla-theme .vaulla-home .vh-promo-card--butter .vh-promo-card__number,
body.vr26-active.vaulla-theme #promocja-5-plus-1 .vp-big-number {
  align-items: center;
  column-gap: .14em;
}
body.vr26-active.vaulla-theme .vaulla-home .vh-promo-card--butter .vh-promo-card__number > span,
body.vr26-active.vaulla-theme #promocja-5-plus-1 .vp-big-number > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: .8em;
  line-height: 1;
}
body.vr26-active.vaulla-theme :is(.vp-reward h3 strong, .vp-promotion__mark, .vj-offer__number, .vj-campaign__number, .vp-promo__reward, .vp-tiktok-reward__amount) {
  letter-spacing: 0;
  line-height: 1.12;
  white-space: nowrap;
  overflow-wrap: normal;
  font-variant-numeric: lining-nums tabular-nums;
}
body.vr26-active.vaulla-theme .vp-promo__reward > span {
  margin-left: .16em;
  letter-spacing: 0;
}
body.vr26-active.vaulla-theme .vj-offer--tiktok .vj-offer__number {
  font-size: clamp(1.4rem, 2.1vw, 1.8rem);
}
body.vr26-active.vaulla-theme .vj-campaign--six .vj-campaign__number {
  display: flex;
  align-items: center;
  gap: .14em;
}
body.vr26-active.vaulla-theme .vj-campaign--six .vj-campaign__number > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  letter-spacing: 0;
  line-height: 1;
}

/* Loyalty reward: 100 pkt + 20 zł. Unit baselines within each group, the plus
 * centered between whole groups. Keep all three parts on one line on mobile.
 */
body.vr26-active.vaulla-theme #bonus-tiktok .vt-reward {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: .22em;
  font-size: clamp(1.5rem, 4.6vw, 3rem);
  letter-spacing: 0;
  line-height: 1.15;
  white-space: nowrap;
  font-variant-numeric: lining-nums tabular-nums;
}
body.vr26-active.vaulla-theme #bonus-tiktok .vt-reward > span:not(.vt-plus) {
  display: inline-flex;
  align-items: baseline;
  flex: 0 0 auto;
  gap: .16em;
  letter-spacing: 0;
  white-space: nowrap;
}
body.vr26-active.vaulla-theme #bonus-tiktok .vt-reward small {
  letter-spacing: 0;
  line-height: 1;
}
body.vr26-active.vaulla-theme #bonus-tiktok .vt-reward .vt-plus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 .8em;
  line-height: 1;
  font-size: .65em;
  font-weight: 500;
  letter-spacing: 0;
}

/* Existing product/article values, including fractions and measurement units. */
body.vr26-active.vaulla-theme :is(.vp-stats dd, .va-amount, .va-nutrition-summary dd, .vp-nowrap) {
  letter-spacing: 0;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  font-variant-numeric: lining-nums tabular-nums;
}

/* Quantities: true centering inside the controls, independent of font metrics.
 * No changes to disabled state, quantity values or checkout/payment logic.
 */
body.vr26-active.vaulla-theme .vp-page .vp-quantity-step,
body.vr26-active.vaulla-theme .vs-shop .vs-shop__quantity-control > button {
  display: grid;
  place-items: center;
  padding: 0;
  letter-spacing: 0;
  line-height: 1;
  text-indent: 0;
}

/* FAQ controls: reserve a fixed symbol area so long questions cannot push the
 * plus/minus into the text. Native content/open states stay intact.
 */
body.vr26-active.vaulla-theme :is(.vh-faq, .vp-faq, .vp-tiktok-terms, .vt-legal, .vwd-faq, .vds-faq, .vtr-toc, .va-faq) summary {
  min-width: 0;
  gap: 16px;
  align-items: center;
  line-height: 1.45;
}
body.vr26-active.vaulla-theme .vaulla-home .vh-faq summary > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  min-width: 24px;
  margin: 0;
  padding: 0;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
}
body.vr26-active.vaulla-theme :is(.vp-faq, .vp-tiktok-terms, .vt-legal, .vwd-faq, .vtr-toc) summary::after {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  min-width: 28px;
  margin: 0;
  padding: 0;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
}
body.vr26-active.vaulla-theme .va-blog-article .va-faq summary h3 {
  min-width: 0;
  flex: 1 1 auto;
  overflow-wrap: break-word;
}
body.vr26-active.vaulla-theme .va-blog-article .va-faq-icon {
  flex: 0 0 18px;
  min-width: 18px;
}
body.vr26-active.vaulla-theme .vp-page .vp-services summary > span:not(.vp-chevron) {
  min-width: 0;
}
body.vr26-active.vaulla-theme .vp-page .vp-chevron {
  flex-shrink: 0;
}

/* The privacy/cookie templates explicitly disabled heading wrapping. Allow
 * these long Polish titles to fit a narrow viewport without clipping text.
 */
body.vr26-active.vaulla-theme:is(.page-id-114, .page-id-115) .vh-singular__header h1 {
  overflow-wrap: break-word;
  word-break: normal;
}
@media (max-width: 640px) {
  body.vr26-active.vaulla-theme .vh-collections .vh-section-head h2 {
    white-space: normal;
  }
  body.vr26-active.vaulla-theme .vp-page .vp-big-number,
  body.vr26-active.vaulla-theme .vp-page .vp-reward h3 strong,
  body.vr26-active.vaulla-theme #bonus-tiktok .vt-reward {
    justify-content: center;
    text-align: center;
  }
  body.vr26-active.vaulla-theme :is(.va-nutrition-summary dd, .vp-stats dd) {
    max-width: 100%;
  }
}
