/*
 * Broviane v1.3.17 canonical visual system.
 *
 * This file is enqueued last and is the only place new cross-page visual
 * rules should be added. Historical page styles remain as layout fallbacks;
 * the tokens, type scale, product media, controls and six page templates are
 * normalized here.
 */

/* Base surfaces, type families and readable minimums. */
body {
  background: var(--bv-sand);
  color: var(--bv-ink);
  font: 400 16px/1.7 var(--bv-sans);
}

body main,
body.home main,
body.single-product main {
  background: var(--bv-paper);
}

body.woocommerce-shop main,
body.tax-product_cat main,
body.home .bv109-products {
  background: var(--bv-sand);
}

body h1,
body h2,
body h3,
body h4 {
  color: var(--bv-ink);
}

body h1,
body h2,
body .woocommerce div.product p.price,
body .woocommerce div.product span.price {
  font-family: var(--bv-serif);
}

body h3,
body h4,
body p,
body li,
body label,
body input,
body select,
body textarea,
body button {
  font-family: var(--bv-sans);
}

body small,
body .bv-kicker,
body .bv109-kicker,
body .bv112-kicker,
body .bv-breadcrumb,
body .bv112-breadcrumb,
body .woocommerce-breadcrumb,
body .bv-pdp-stock,
body .bv-pdp-sku,
body .bv-pdp-price-note,
body .bv-pdp-video-link,
body .bv-payment-copy,
body .bv-product-note,
body .bv-site-footer h4,
body .bv-legal,
body .bv-custom-label,
body .bv-custom-breadcrumb,
body .bv-custom-stone__sub,
body .bv-custom-stone__used,
body .bv-custom-arrival b,
body .bv-custom-total > p,
body .bv112-no,
body .bv112-spec,
body .bv112-stone-card > small,
body .bv112-stone-card__meta small,
body .bv112-stone-card__meta em,
body .bv112-tier-range,
body .bv112-durability article > small,
body .bv-footer-page .bv-company-details > summary span {
  font-size: 12px !important;
  line-height: 1.45;
}

body .bv-menu > li > a span,
body .bv-announcement,
body .bv-hero-proof,
body .bv-trust strong,
body .bv-editorial-product__image > span,
body .bv-editorial-product__image em,
body .bv-editorial-product p,
body .bv-editorial-product small,
body .bv-story-grid cite,
body .bv-journal-grid small,
body .bv-logo span,
body .bv-home-hero .bv-hero-copy > .bv-kicker,
body .bv-color-card__copy small,
body .bv-guide-cards span,
body .bv-footer-promises strong,
body .bv-footer-promises small,
body .bv-product-facts dt,
body .bv-low-stock,
body .bv-size-row--head,
body .bv-measure-steps strong,
body .bv-care-grid section > span,
body .bv-catalog-filters > span,
body .bv-catalog-filters select,
body .bv-catalog-filters button,
body .bv-catalog-filters > a,
body .bv-pdp-native-video figcaption,
body .bv-footer-page .bv-breadcrumb,
body .bv-material-cards article > span,
body .bv-number-grid article > span,
body .bv-detail-grid article > span,
body .bv-story-sections article > span,
body .bv-material-cards small,
body .bv-channel-grid small,
body .bv-data-head,
body .bv-company-details dt,
body .bv-legal-layout aside .bv-kicker,
body .bv-custom-ring__center span,
body .bv-custom-mix-row small,
body .bv-custom-order > h2,
body .bv-custom-arrival > button > b,
body .bv109-product__image > span,
body .bv109-rating small,
body .bv109-story__user > span,
body .bv109-story__user strong,
body .bv109-story-grid figcaption,
body .bv109-hero__proofbar,
body .bv109-filters__label,
body .bv109-strand__stone,
body .bv112-measure li > span,
body .bv112-fit-head,
body .bv-mc-makeup article > span,
body .bv-mc-stone__meta,
body .bv-mc-tiers header,
body .bv-mc-tiers footer,
body .bv-mc-hardness > div,
body .bv-mc-modal dt,
body .bv-mc-modal__care strong {
  font-size: 12px !important;
}

body .bv-kicker,
body .bv109-kicker,
body .bv112-kicker {
  color: var(--bv-accent);
  font-family: var(--bv-mono);
  letter-spacing: .12em;
}

body .bv-pdp-stock:not(.bv-pdp-stock--available),
body .bv-custom-status,
body .woocommerce-error {
  color: var(--bv-alert);
}

body .bv-section-head > a {
  border-bottom-color: var(--bv-ink);
}

/* Eight-level hierarchy. */
body:not(.home) .bv-page-title,
body:not(.home) .page-title,
body .bv-collection-intro h1,
body .bv-footer-page .bv-info-hero h1,
body .bv112-materials-hero h1,
body .bv112-care-hero h1,
body .bv112-simple-hero h1,
body .bv-custom-hero h1 {
  font: 400 34px/1.15 var(--bv-serif) !important;
  letter-spacing: -.01em;
}

body .bv109-section-head h2,
body .bv109-custom h2,
body .bv109-craft h2,
body .bv-pdp-section-head h2,
body .bv-pdp-stack h2,
body .bv-pdp-faq h2,
body .bv112-section-heading h2,
body .bv-footer-page .bv-info-section h2,
body .bv-footer-page .bv-contact-layout h2,
body .bv-footer-page .bv-company-details h2 {
  font: 500 24px/1.25 var(--bv-serif) !important;
  letter-spacing: 0;
}

body .bv109-product h3,
body .woocommerce ul.products li.product .woocommerce-loop-product__title,
body .bv112-stone-card > strong,
body .bv-custom-guidance h3 {
  font-size: 18px;
  line-height: 1.35;
}

/* One rectangular control language. Rounded geometry is reserved for chips,
   stone samples and avatars. */
body .bv-button,
body .wp-element-button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button,
body button.single_add_to_cart_button,
body .bv-custom-add {
  align-items: center;
  border-radius: 0 !important;
  display: inline-flex;
  font-family: var(--bv-sans);
  font-size: 14px !important;
  font-weight: 600;
  justify-content: center;
  letter-spacing: .08em;
  min-height: 48px;
  padding: 0 24px !important;
}

body input,
body select,
body textarea,
body .select2-selection,
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea {
  border-color: var(--bv-line);
  border-radius: 0 !important;
}

body .bv109-filters button,
body .bv112-material-filters button,
body .bv112-wrist-tabs button,
body .bv-mc-filters button,
body .bv-mc-wrists button,
body .bv-custom-pills button,
body .bv-custom-colors button,
body .bv-custom-actions button {
  border-color: var(--bv-line-strong);
  border-radius: 0;
  font: 500 12px/1.5 var(--bv-sans);
  letter-spacing: .02em;
  min-height: 40px;
}

/* WooCommerce can render loops inside a shortcode/page without the usual
   body.woocommerce-shop or descendant .woocommerce hooks. Target the loop
   itself so the canonical card and control rules also reach those pages. */
body ul.products li.product .button,
body ul.products li.product .added_to_cart {
  display: none !important;
}

body ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--bv-sans) !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
}

body ul.products li.product .price {
  color: var(--bv-ink) !important;
  font-family: var(--bv-serif) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

body ul.products li.product .bv-product-note {
  color: var(--bv-muted);
  display: -webkit-box;
  font-size: 14px !important;
  line-height: 1.5;
  min-height: 1.5em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

body a.button,
body button.button,
body input.button,
body .bv-catalog-filters button,
body .woocommerce-info,
body .cart-collaterals .cart_totals,
body table.shop_table {
  border-radius: 0 !important;
}

/* Information pages previously carried a second compact header treatment.
   Restore the same header used by home, shop and product templates. */
body.bv-footer-info-page .bv-announcement {
  background: var(--bv-ink);
  color: var(--bv-paper);
  font: 500 12px/1.5 var(--bv-sans);
  letter-spacing: .02em;
  min-height: 30px;
  padding: 8px 20px;
  text-transform: uppercase;
}

body.bv-footer-info-page .bv-header-inner {
  display: grid;
  gap: 28px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 76px;
  padding-block: 0;
  width: min(1320px, calc(100% - 64px));
}

body.bv-footer-info-page .bv-logo {
  color: var(--bv-ink);
  font: 500 24px/1 var(--bv-serif);
  letter-spacing: .19em;
}

body.bv-footer-info-page .bv-menu {
  gap: clamp(14px, 1.55vw, 26px);
}

body.bv-footer-info-page .bv-menu > li:last-child {
  display: flex;
}

body.bv-footer-info-page .bv-menu > li > a,
body.bv-footer-info-page .bv-header-tools > a,
body.bv-footer-info-page .bv-header-search input {
  color: var(--bv-muted);
  font: 400 14px/1.6 var(--bv-sans);
}

body.bv-footer-info-page .bv-header-search {
  border-bottom: 1px solid var(--bv-muted);
  width: 182px;
}

body.bv-footer-info-page .bv-header-search > span,
body.bv-footer-info-page .bv-header-tools > a > span,
body.bv-footer-info-page .bv-menu .menu-item-has-children > a > span,
body.bv-footer-info-page .bv-cart-count {
  display: inline;
}

body.bv-footer-info-page .bv-header-tools {
  gap: 16px;
}

body.bv-footer-info-page .bv-saved-link::before,
body.bv-footer-info-page .bv-cart-link::before {
  content: none;
}

/* Product imagery: paper cards, square frames, contain crop, consistent scale. */
body .bv109-product__image,
body .woocommerce ul.products li.product a img,
body .bv-pdp-stack__products > a,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body .bv112-stone-card__image,
body .bv-mc-stone > img {
  background: var(--bv-paper) !important;
  border-radius: 0;
  box-shadow: none !important;
  filter: none !important;
}

body .bv109-product__image,
body .woocommerce ul.products li.product a img,
body .bv-pdp-related .woocommerce ul.products li.product a img {
  aspect-ratio: 1;
}

body .bv109-product__image img,
body .woocommerce ul.products li.product a img,
body .bv-pdp-related .woocommerce ul.products li.product a img {
  height: 100%;
  object-fit: contain !important;
  transform: scale(.88);
  transition: transform .2s ease;
  width: 100%;
}

body .bv109-product__image:hover img,
body .woocommerce ul.products li.product a:hover img,
body .bv-pdp-related .woocommerce ul.products li.product a:hover img {
  transform: scale(.90);
}

body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image a {
  overflow: hidden;
}

body.single-product .woocommerce-product-gallery__image img,
body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  aspect-ratio: 1;
  object-fit: contain !important;
  transform: scale(.90);
}

/* Home template. */
body.home .bv109-hero--overlay h1 {
  font: 400 52px/1.05 var(--bv-serif);
  letter-spacing: -.02em;
}

body.home .bv109-hero__bg img {
  transform: scale(1.02);
}

body.home .bv109-trust p,
body.home .bv109-trust strong {
  font-size: 12px;
}

body.home .bv109-steps li,
body.home .bv109-custom__intro > p:not(.bv109-kicker),
body.home .bv109-craft p:not(.bv109-kicker) {
  font: 400 16px/1.7 var(--bv-sans);
}

body.home .bv109-hero--overlay .bv109-actions {
  white-space: normal;
}

body.home .bv109-strand__stone img {
  transform: none;
}

body.home .bv109-strand__stone:hover img,
body.home .bv109-strand__stone:focus-visible img {
  transform: translateY(-4px) scale(1.35);
}

body.home .bv109-product h3 {
  display: -webkit-box;
  min-height: 2.6em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-family: var(--bv-sans);
  font-weight: 500;
}

body.home .bv109-product > p {
  display: -webkit-box;
  min-height: 1.5em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  color: var(--bv-muted);
  font-size: 14px;
}

body.home .bv109-product__meta,
body.home .bv109-product__meta strong,
body.home .bv109-product__meta span {
  color: var(--bv-ink);
  font-size: 16px;
  font-weight: 600;
}

/* Product and collection template. */
body.woocommerce-shop .woocommerce ul.products li.product .button,
body.tax-product_cat .woocommerce ul.products li.product .button,
body .bv-pdp-related .woocommerce ul.products li.product .button,
body.woocommerce-shop .woocommerce ul.products li.product .added_to_cart,
body.tax-product_cat .woocommerce ul.products li.product .added_to_cart {
  display: none !important;
}

body .woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box;
  min-height: 2.6em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-family: var(--bv-sans);
  font-weight: 500;
  padding-top: 14px;
}

body .woocommerce ul.products li.product .price {
  color: var(--bv-ink);
  font-size: 16px;
  font-weight: 600;
}

body .woocommerce ul.products li.product .bv-product-note {
  display: -webkit-box;
  min-height: 1.45em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  color: var(--bv-muted);
  font-size: 14px !important;
}

/* Product-detail template. */
body.single-product div.product {
  grid-template-columns: minmax(0, 1.13fr) minmax(380px, .87fr);
}

body.single-product div.product .product_title {
  font: 400 34px/1.15 var(--bv-serif);
  letter-spacing: -.01em;
}

body.single-product .bv-pdp-stock,
body.single-product .bv-pdp-sku,
body.single-product .bv-pdp-price-note,
body.single-product .bv-pdp-video-link,
body.single-product form.cart .variations label,
body.single-product .bv-gift-options legend,
body.single-product .bv-pdp-delivery > small,
body.single-product .bv-payment-copy {
  font-size: 12px !important;
}

body.single-product .bv-pdp-specs dt {
  color: var(--bv-muted);
  font: 500 12px/1.5 var(--bv-sans);
  letter-spacing: .02em;
}

body.single-product .bv-pdp-specs dd {
  font: 500 18px/1.35 var(--bv-sans);
}

body.single-product .bv-pdp-accordions summary,
body.single-product .bv-pdp-faq summary {
  font: 500 18px/1.35 var(--bv-sans);
}

body.single-product .bv-pdp-trust strong,
body.single-product .bv-pdp-trust span,
body.single-product .bv-review-list cite,
body.single-product .bv-pdp-related nav span {
  font-size: 12px;
}

body.single-product .bv-review-summary > strong {
  font-size: 52px;
}

/* Design Lab / custom template. */
body .bv-custom-page {
  --paper: var(--bv-paper);
  --sand: var(--bv-sand);
  --ink: var(--bv-ink);
  --muted: var(--bv-muted);
  --line: var(--bv-line);
}

body .bv-custom-builder {
  background: var(--bv-paper);
}

body .bv-custom-controls,
body .bv-custom-order,
body .bv-custom-strand {
  background: var(--bv-paper);
  border-color: var(--bv-line);
  box-shadow: none;
}

body .bv-custom-strand {
  border-left: 0;
  border-right: 0;
}

body .bv-custom-stone__image,
body .bv-custom-bead,
body .bv-custom-mix-row i {
  background-color: var(--bv-paper);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  box-shadow: none;
}

body img.bv-custom-stone__image {
  height: 40px;
  object-fit: contain;
  width: 40px;
}

body .bv-custom-note,
body .bv-custom-ease,
body .bv-custom-cursor-note,
body .bv-custom-arrival span small,
body .bv-custom-kit-note,
body .bv-custom-guidance article > p:last-child {
  color: var(--bv-muted);
  font-size: 14px !important;
  line-height: 1.7;
}

/* Materials, care, FAQ and information templates. */
body.bv-footer-info-page,
body.bv-footer-info-page .bv112-page,
body.bv-footer-info-page .bv-footer-page {
  background: var(--bv-paper);
}

body .bv112-materials-hero__copy > p:last-of-type,
body .bv112-care-hero__copy > p:last-child,
body .bv112-simple-hero > p:last-child,
body .bv-footer-page .bv-info-section p,
body .bv-footer-page .bv-story-sections p,
body .bv-footer-page .bv-promise-grid p,
body .bv-footer-page .bv-legal-copy p {
  color: var(--bv-muted);
  font: 400 16px/1.7 var(--bv-sans) !important;
}

body .bv112-section-heading > p,
body .bv112-makeup article > p:last-child,
body .bv112-size-copy,
body .bv112-note,
body .bv112-cta p,
body .bv112-callout,
body .bv112-caption,
body .bv112-wearing article > p:last-child,
body .bv112-care-media div > p:last-child,
body .bv112-durability__intro,
body .bv112-durability article > p:not(.bv112-tier-range),
body .bv112-durability li,
body .bv112-kit-cta p {
  color: var(--bv-muted);
  font-size: 14px !important;
}

body .bv112-stone-card__image,
body .bv112-stone-card__image img,
body .bv-mc-stone,
body .bv-mc-stone > img {
  background: var(--bv-paper) !important;
}

body .bv112-stone-card__image img,
body .bv-mc-stone > img {
  object-fit: contain;
  transform: scale(.92);
}

body .bv112-stone-card > strong {
  display: -webkit-box;
  min-height: 2.7em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-family: var(--bv-sans);
  font-size: 14px;
}

body .bv112-stone-card__look {
  font-size: 14px;
}

body .bv112-care-media figure,
body .bv112-kit-cta figure {
  aspect-ratio: 4 / 3;
}

body .bv112-care-media img,
body .bv112-kit-cta img {
  object-position: center;
}

/* One light footer on every page, including its legal strip. */
body .bv-site-footer {
  background: var(--bv-paper);
  border-top: 1px solid var(--bv-line);
  color: var(--bv-ink);
}

body .bv-site-footer h4 {
  color: var(--bv-ink);
  font-family: var(--bv-sans);
  font-weight: 500;
}

body .bv-site-footer p,
body .bv-site-footer a,
body .bv-site-footer address {
  color: var(--bv-muted);
  font-size: 14px;
}

body .bv-legal {
  background: var(--bv-paper);
  border-top: 1px solid var(--bv-line);
  color: var(--bv-muted);
  font-family: var(--bv-sans);
  font-size: 12px;
  letter-spacing: 0;
  opacity: 1;
  text-transform: none;
}

/* Policy and checkout templates. */
body .bv-footer-page .bv-legal-copy article h2,
body .bv-policy h2,
body .bv-policy-grid h2,
body .bv-policy-alert strong {
  font: 500 24px/1.25 var(--bv-serif);
}

body.woocommerce-checkout form.checkout .bv-express-checkout,
body.woocommerce-checkout form.checkout #customer_details,
body.woocommerce-checkout form.checkout #order_review,
body.woocommerce-checkout #payment ul.payment_methods > li,
body.woocommerce-cart .cart_totals,
body.woocommerce-cart table.shop_table {
  border-color: var(--bv-line);
  border-radius: 0;
  box-shadow: none;
}

body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-checkout form.checkout .bv-express-title,
body.woocommerce-checkout form.checkout .bv-payment-security,
body.woocommerce-cart .bv-shipping-estimate,
body.woocommerce-checkout .bv-shipping-estimate {
  color: var(--bv-muted);
  font-size: 12px;
}

body.woocommerce-checkout .bv-checkout-product-image {
  background: var(--bv-paper);
  border-radius: 0;
  object-fit: contain;
}

/* Break the PDP into one readable column before its two columns become tight. */
@media (max-width: 1024px) {
  body.single-product div.product {
    grid-template-columns: 1fr;
  }

  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .summary {
    grid-column: 1;
  }

  body.single-product div.product .woocommerce-product-gallery {
    margin-inline: auto !important;
    max-width: 760px;
  }
}

@media (max-width: 900px) {
  body.bv-footer-info-page .bv-header-inner {
    display: flex;
    min-height: 66px;
    padding-block: 0;
    width: min(100% - 36px, 720px);
  }

  body.bv-footer-info-page .bv-header-search,
  body.bv-footer-info-page .bv-saved-link {
    display: none;
  }

  body.bv-footer-info-page .bv-menu-toggle {
    display: grid;
    order: 3;
  }
}

@media (max-width: 760px) {
  body.home .bv109-hero--overlay h1 {
    font-size: 40px;
  }

  body.home .bv109-hero--overlay .bv109-actions {
    align-items: stretch;
    flex-direction: column;
  }

  body.home .bv109-button--light {
    width: 100%;
  }

  body.home .bv109-strand {
    padding-bottom: 24px;
    padding-top: 24px;
  }

  body.home .bv109-strand__line {
    display: none;
  }

  body.home .bv109-strand__row {
    display: grid;
    gap: 6px 3px;
    grid-template-columns: repeat(15, minmax(0, 1fr));
    overflow: visible;
  }

  body.home .bv109-strand__row li,
  body.home .bv109-strand__row li:nth-child(even) {
    display: block;
    min-width: 0;
    width: auto;
  }

  body.home .bv109-strand__stone img {
    height: auto;
    width: 100%;
  }

  body.home .bv109-strand__stone > span {
    display: none;
  }

  body.home .bv109-strand__more {
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    min-height: 44px;
    text-align: center;
  }

  body .bv109-filters button,
  body .bv112-material-filters button,
  body .bv112-wrist-tabs button,
  body .bv-mc-filters button,
  body .bv-mc-wrists button,
  body .bv-custom-pills button,
  body .bv-custom-colors button,
  body .bv-custom-actions button {
    min-height: 44px;
  }

  body.single-product div.product .product_title {
    font-size: 34px;
  }

  body .bv-site-footer .bv-footer-grid,
  body .bv-legal .bv-container {
    gap: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .bv109-product__image img,
  body .woocommerce ul.products li.product a img,
  body .bv109-strand__stone img {
    transition: none;
  }
}

/* v1.3.5 — product-page art direction and density pass. */
body.single-product main.bv-section {
  padding-top: 28px;
}

body.single-product .woocommerce-breadcrumb {
  margin-bottom: 32px;
  margin-top: 0;
}

body.single-product div.product {
  background: var(--bv-sand);
  align-items: start;
  column-gap: 42px;
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
  row-gap: 0;
}

body.single-product div.product .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) {
  padding-left: 0;
}

body.single-product .woocommerce-product-gallery__image {
  background: var(--bv-sand) !important;
  border: 0;
  box-sizing: border-box;
  padding: 18px;
}

body.single-product .woocommerce-product-gallery__image a {
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  box-sizing: border-box;
  display: block;
  height: 100%;
  padding: 10px;
}

body.single-product .woocommerce-product-gallery__image img {
  filter: contrast(1.06) saturate(1.02) !important;
  transform: scale(.94);
}

body.single-product div.product .summary {
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  padding: 30px;
}

body.single-product div.product .product_title {
  hyphens: none;
  text-wrap: balance;
  word-break: normal;
}

body.single-product .woocommerce-product-details__short-description {
  line-height: 1.6;
  margin-bottom: 16px;
  padding-bottom: 18px;
}

body.single-product .bv-gift-options {
  border-bottom: 1px solid var(--bv-line);
  border-top: 1px solid var(--bv-line);
  display: block;
  margin: 0 0 14px;
  padding: 0;
  width: 100%;
}

body.single-product .bv-gift-options > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font: 500 12px/1.5 var(--bv-sans);
  justify-content: space-between;
  letter-spacing: .08em;
  list-style: none;
  min-height: 48px;
  text-transform: uppercase;
}

body.single-product .bv-gift-options > summary::-webkit-details-marker {
  display: none;
}

body.single-product .bv-gift-options > summary::after {
  content: "+";
  font: 500 18px/1 var(--bv-sans);
  margin-left: 12px;
}

body.single-product .bv-gift-options[open] > summary::after {
  content: "−";
}

body.single-product .bv-gift-options > summary small {
  color: var(--bv-muted);
  font: 500 12px/1.5 var(--bv-sans) !important;
  letter-spacing: .02em;
  letter-spacing: 0;
  margin-left: auto;
  text-transform: none;
}

body.single-product .bv-gift-options fieldset {
  border: 0;
  margin: 0;
  padding: 0 0 8px;
}

body.single-product .bv-gift-options label {
  min-height: 44px;
  padding: 9px 2px;
}

body.single-product form.cart {
  gap: 10px;
}

body.single-product .bv-pdp-delivery {
  margin-top: 16px;
  padding-top: 16px;
}

body.single-product div.product > section {
  margin-top: 36px;
}

body.single-product .bv-pdp-trust {
  background: var(--bv-paper);
  margin-top: 36px;
}

body.single-product .bv-pdp-trust div {
  padding: 16px 14px;
}

body.single-product .bv-pdp-specs {
  align-items: start;
  display: grid;
  gap: 40px;
  grid-template-columns: minmax(190px, .38fr) minmax(0, 1.62fr);
  padding: 30px 0;
}

body.single-product .bv-pdp-specs .bv-pdp-section-head {
  margin: 0;
}

body.single-product .bv-pdp-specs dl {
  /* Do not paint implicit empty grid cells (the final row may contain only
   * one or two specification items). */
  background: transparent;
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.single-product .bv-pdp-specs dl > div,
body.single-product .bv-pdp-specs dl > div:nth-child(3n + 1) {
  background: var(--bv-paper);
  border: 0;
  min-height: 112px;
  padding: 16px 18px;
}

body.single-product .bv-pdp-specs dd {
  font-size: 16px;
  line-height: 1.45;
}

body.single-product .bv-pdp-description {
  background: var(--bv-sand);
  border: 0;
  gap: 36px;
  grid-template-columns: minmax(190px, .4fr) minmax(0, 1.6fr);
  padding: 34px 38px;
}

body.single-product .bv-pdp-description__content {
  max-width: 740px;
}

body.single-product .bv-pdp-description__content > :first-child {
  font-size: 18px;
  line-height: 1.42;
}

body.single-product .bv-pdp-description__content h3 {
  font-size: 18px;
  margin-top: 20px;
}

body.single-product .bv-pdp-accordions {
  margin-top: 24px;
}

body.single-product .bv-pdp-accordions summary,
body.single-product .bv-pdp-faq summary {
  min-height: 50px;
  padding: 13px 0;
}

body.single-product .bv-pdp-reviews {
  align-items: start;
  border-bottom: 1px solid var(--bv-line);
  border-top: 1px solid var(--bv-line);
  gap: 32px;
  grid-template-columns: minmax(240px, .55fr) minmax(0, 1.45fr);
  padding: 28px 0;
}

body.single-product .bv-pdp-reviews--empty {
  align-items: center;
  background: var(--bv-paper);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 24px 28px;
}

body.single-product .bv-review-summary {
  border-right: 1px solid var(--bv-line);
  padding-right: 32px;
}

body.single-product .bv-pdp-reviews--empty .bv-review-summary {
  border-right: 0;
  padding-right: 0;
}

body.single-product .bv-review-summary h2 {
  font-size: 24px;
  margin: 5px 0 3px;
}

body.single-product .bv-review-summary p,
body.single-product .bv-review-summary small {
  margin: 0;
}

body.single-product .bv-review-summary small {
  display: block;
  margin-top: 5px;
}

body.single-product .bv-native-review-form {
  border: 0;
  grid-column: 1 / -1;
  margin: 0;
  padding: 0;
}

body.single-product .bv-pdp-reviews--empty .bv-native-review-form {
  grid-column: auto;
}

body.single-product .bv-native-review-form > summary {
  list-style: none;
  white-space: nowrap;
}

body.single-product .bv-native-review-form > summary::-webkit-details-marker {
  display: none;
}

body.single-product .bv-native-review-form[open] {
  border-top: 1px solid var(--bv-line);
  padding-top: 24px;
}

body.single-product .bv-pdp-reviews--empty .bv-native-review-form[open] {
  grid-column: 1 / -1;
}

body.single-product .bv-native-review-form[open] > summary {
  margin-bottom: 22px;
}

body.single-product .bv-native-review-form__body #review_form_wrapper {
  max-width: 760px;
}

body.single-product .bv-pdp-stack {
  margin-left: 0;
  margin-right: 0;
  padding: 34px;
}

body.single-product .bv-pdp-stack__products {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.single-product .bv-pdp-stack__products a > span {
  align-items: start;
  gap: 12px;
}

body.single-product .bv-stack-total {
  align-items: center;
  display: grid;
  gap: 8px 24px;
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 18px 22px;
}

body.single-product .bv-stack-total > strong {
  font-size: 24px;
  margin: 0;
}

body.single-product .bv-stack-total .bv-button {
  grid-column: 3;
  grid-row: 1 / span 2;
}

body.single-product .bv-pdp-faq {
  display: block;
  padding: 36px 0;
}

body.single-product .bv-pdp-faq > div:first-child {
  margin: 0 auto 22px;
  max-width: 620px;
  text-align: center;
}

body.single-product .bv-pdp-faq h2 {
  font-size: 24px;
}

body.single-product .bv-pdp-faq > div:last-child {
  column-gap: 40px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.single-product .bv-pdp-faq summary {
  font-size: 16px;
}

body.single-product .bv-pdp-related {
  padding-top: 34px;
}

/* Express-payment rails share one quiet, collapsed block rather than
 * competing with the primary Add to cart action. Plugin markup varies, so the
 * selectors intentionally cover Stripe and PayPal containers by stable IDs. */
body.single-product .bv-express-checkout {
  background: var(--bv-sand);
  border: 1px solid var(--bv-line);
  margin-top: 8px;
}

body.single-product .bv-express-checkout > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font: 500 12px/1.5 var(--bv-sans);
  justify-content: space-between;
  letter-spacing: .08em;
  list-style: none;
  min-height: 44px;
  padding: 0 12px;
  text-transform: uppercase;
}

body.single-product .bv-express-checkout > summary::-webkit-details-marker {
  display: none;
}

body.single-product .bv-express-checkout > summary::after {
  content: "+";
  font: 500 18px/1 var(--bv-sans);
  margin-left: 12px;
}

body.single-product .bv-express-checkout[open] > summary::after {
  content: "−";
}

body.single-product .bv-express-checkout > summary small {
  color: var(--bv-muted);
  font: 500 12px/1.5 var(--bv-sans) !important;
  letter-spacing: .02em;
  margin-left: auto;
  margin-right: 10px;
  text-transform: none;
}

body.single-product .bv-express-checkout__body {
  border-top: 1px solid var(--bv-line);
  padding: 8px 10px 10px;
}

body.single-product .bv-express-checkout__body #wc-stripe-express-checkout-element,
body.single-product .bv-express-checkout__body [id^="zoid-paypal-buttons-uid_"] {
  background: transparent;
  border: 0;
  margin-top: 8px;
  padding: 0;
}

/* Keep third-party payment containers compact in their native DOM position.
 * Moving Stripe/PayPal iframes is deliberately avoided for renderer safety. */
body.single-product div.product .summary > #wc-stripe-express-checkout-element,
body.single-product div.product .summary > [id^="zoid-paypal-buttons-uid_"] {
  display: none !important;
}

body.single-product form.cart .bv-buy-now {
  background: transparent !important;
  border: 1px solid var(--bv-ink) !important;
  color: var(--bv-ink) !important;
  flex: 1;
}

body.single-product form.cart .bv-buy-now:hover,
body.single-product form.cart .bv-buy-now:focus-visible {
  background: var(--bv-ink) !important;
  color: var(--bv-paper) !important;
}

body.single-product .bv-pdp-related .bv-pdp-section-head nav {
  display: none !important;
}

body.single-product .bv-pdp-related .woocommerce ul.products li.product a {
  aspect-ratio: 1.18 / 1;
}

@media (max-width: 1120px) {
  body.single-product div.product {
    grid-template-columns: minmax(0, 1fr) minmax(390px, .92fr);
  }

  body.single-product div.product .summary {
    padding: 24px;
  }
}

@media (max-width: 1024px) {
  body.single-product div.product {
    grid-template-columns: 1fr;
  }

  body.single-product div.product .summary {
    margin-inline: auto !important;
    max-width: 760px;
  }
}

@media (max-width: 760px) {
  body.single-product main.bv-section {
    padding-top: 22px;
  }

  body.single-product div.product .summary {
    padding: 22px 18px;
  }

  body.single-product .bv-pdp-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.single-product .bv-pdp-trust div:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--bv-line);
  }

  body.single-product .bv-pdp-trust div:nth-child(4) {
    border-top: 1px solid var(--bv-line);
  }

  body.single-product .bv-pdp-specs,
  body.single-product .bv-pdp-description {
    gap: 20px;
    grid-template-columns: 1fr;
  }

  body.single-product .bv-pdp-specs dl {
    grid-template-columns: 1fr;
  }

  body.single-product .bv-pdp-specs dl > div,
  body.single-product .bv-pdp-specs dl > div:nth-child(3n + 1) {
    min-height: 0;
  }

  body.single-product .bv-pdp-description {
    padding: 28px 22px;
  }

  body.single-product .bv-pdp-reviews,
  body.single-product .bv-pdp-reviews--empty {
    grid-template-columns: 1fr;
  }

  body.single-product .bv-review-summary {
    border-bottom: 1px solid var(--bv-line);
    border-right: 0;
    padding-bottom: 20px;
    padding-right: 0;
  }

  body.single-product .bv-pdp-reviews--empty .bv-review-summary {
    border-bottom: 0;
    padding-bottom: 0;
  }

  body.single-product .bv-pdp-reviews--empty .bv-native-review-form {
    grid-column: 1;
  }

  body.single-product .bv-pdp-stack {
    padding: 28px 20px;
  }

  body.single-product .bv-pdp-stack__products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.single-product .bv-stack-total {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
  }

  body.single-product .bv-stack-total .bv-button {
    grid-column: 1;
    grid-row: auto;
    margin-top: 8px;
    width: 100%;
  }

  body.single-product .bv-pdp-faq > div:last-child {
    grid-template-columns: 1fr;
  }
}

/* Shared commerce frames and repaired information-page grids. */
body.single-product main.bv-container {
  box-sizing: border-box;
  width: min(1440px, calc(100% - 64px));
}

body.woocommerce-shop main.bv-container,
body.tax-product_cat main.bv-container {
  box-sizing: border-box;
  max-width: none;
  width: min(1344px, calc(100% - 96px));
}

body.woocommerce-shop main.bv-container,
body.tax-product_cat main.bv-container {
  background: var(--bv-sand);
  padding: 36px 48px 48px;
}

body.single-product div.product {
  box-sizing: border-box;
  padding: 28px;
}

body.woocommerce-shop main.bv-section,
body.tax-product_cat main.bv-section,
body.home .bv109-products {
  background: var(--bv-sand);
}

body.woocommerce-shop main.bv-section,
body.tax-product_cat main.bv-section {
  padding-left: 32px;
  padding-right: 32px;
}

body.single-product .summary .ppc-button-wrapper,
body.single-product .summary [id^="ppc-button"],
body.single-product .summary .paypal-buttons,
body.single-product .summary .wc-stripe-product-checkout-container,
body.single-product .summary .wc-block-components-express-payment {
  display: none !important;
}

body .bv109-product__image {
  border: 12px solid var(--bv-paper) !important;
  box-sizing: border-box;
}

body.woocommerce-shop ul.products,
body.tax-product_cat ul.products {
  column-gap: 24px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  row-gap: 24px !important;
}

body.woocommerce-shop ul.products li.product a img,
body.tax-product_cat ul.products li.product a img {
  aspect-ratio: 1;
  background: var(--bv-image-surface) !important;
  border: 0 !important;
  box-sizing: border-box;
  height: 100%;
  object-fit: contain !important;
  padding: 0;
  transform: scale(1);
  width: 100%;
}

body.woocommerce-shop ul.products li.product .woocommerce-loop-product__link,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__link {
  align-content: start;
  display: grid;
  grid-template-rows: auto minmax(2.6em, auto) auto;
}

body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
  margin: 14px 0 4px !important;
  min-height: 2.6em;
  padding: 0 !important;
}

body.woocommerce-shop .bv-catalog-filters,
body.tax-product_cat .bv-catalog-filters {
  margin-bottom: 24px;
}

body.woocommerce-shop .woocommerce ul.products,
body.tax-product_cat .woocommerce ul.products {
  clear: both;
  margin: 24px 0 0 !important;
}

body.woocommerce-shop .bv-collection-intro,
body.tax-product_cat .bv-collection-intro {
  margin-bottom: var(--bv-space-5);
  padding: 0 0 var(--bv-space-5);
}

body.woocommerce-shop .bv-collection-intro p:not(.bv-kicker),
body.tax-product_cat .bv-collection-intro p:not(.bv-kicker) {
  max-width: 680px;
  white-space: normal;
}

@media (max-width: 1050px) {
  body.woocommerce-shop ul.products,
  body.tax-product_cat ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body .bv-site-footer .bv-footer-grid {
  column-gap: 48px;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
}

body .bv-site-footer .bv-footer-grid > div:not(.bv-footer-brand),
body .bv-site-footer .bv-footer-grid > div:last-child {
  align-items: flex-start;
  text-align: left;
}

body .bv-site-footer .bv-footer-grid > div:not(.bv-footer-brand) + div {
  border-left: 1px solid var(--bv-on-dark-muted);
  padding-left: 36px;
}

body .bv-footer-page .bv-company-details {
  display: block;
  overflow: hidden;
  padding: 0 0 48px;
}

body .bv-footer-page .bv-company-details > summary {
  padding: 34px 48px 24px;
}

body .bv-footer-page .bv-company-details dl,
body .bv-footer-page--about .bv-company-details dl {
  background: transparent;
  border: 1px solid var(--bv-line);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 48px;
}

body .bv-footer-page .bv-company-details dl > div,
body .bv-footer-page--about .bv-company-details dl > div {
  background: var(--bv-paper);
  border: 0;
  border-bottom: 1px solid var(--bv-line);
  box-sizing: border-box;
  display: block;
  min-height: 118px;
  padding: 18px 22px;
}

body .bv-footer-page .bv-company-details dl > div:nth-child(odd) {
  border-right: 1px solid var(--bv-line);
}

body .bv-footer-page .bv-company-details dl > div:nth-last-child(-n + 2) {
  border-bottom: 0;
}

body .bv-footer-page .bv-company-details dd {
  margin-top: 10px;
}

body .bv-footer-page [data-order-number-field][hidden] {
  display: none !important;
}

@media (min-width: 901px) {
  body .bv-footer-page--contact .bv-channel-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  body .bv-footer-page--contact .bv-channel-grid > article:nth-child(-n + 2) {
    grid-column: span 3;
  }

  body .bv-footer-page--contact .bv-channel-grid > article:nth-child(n + 3) {
    grid-column: span 2;
  }
}

@media (max-width: 900px) {
  body.single-product main.bv-container {
    width: calc(100% - 36px);
  }

  body.woocommerce-shop main.bv-container,
  body.tax-product_cat main.bv-container {
    width: calc(100% - 96px);
  }

  body.single-product div.product {
    padding: 20px;
  }

  body.woocommerce-shop main.bv-section,
  body.tax-product_cat main.bv-section {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.woocommerce-shop main.bv-container,
  body.tax-product_cat main.bv-container {
    padding: 36px 40px 48px;
  }

  body .bv-site-footer .bv-footer-grid {
    column-gap: 28px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body .bv-site-footer .bv-footer-grid > div:not(.bv-footer-brand) + div {
    border-left: 0;
    padding-left: 0;
  }

  body .bv-footer-page--contact .bv-channel-grid > article {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  body.single-product div.product {
    padding: 14px;
  }

  body .bv109-product__image {
    border-width: 8px !important;
  }

  body .bv-footer-page .bv-company-details > summary {
    padding: 28px 20px 20px;
  }

  body .bv-footer-page .bv-company-details dl,
  body .bv-footer-page--about .bv-company-details dl {
    grid-template-columns: 1fr;
    margin: 0 20px;
  }

  body .bv-footer-page .bv-company-details {
    padding-bottom: 20px;
  }

  body .bv-footer-page .bv-company-details dl > div,
  body .bv-footer-page .bv-company-details dl > div:nth-child(odd) {
    border-bottom: 1px solid var(--bv-line);
    border-right: 0;
    min-height: 0;
  }

  body .bv-footer-page .bv-company-details dl > div:last-child {
    border-bottom: 0;
  }
}

/* v1.3.18 — strict design-system convergence.
 * The canonical stylesheet is loaded last. Reset inherited legacy type sizes,
 * then opt every visible role back into one of the eight approved levels.
 * Cormorant is reserved for 24px+ headings and prices; UI and copy use Jost.
 * IBM Plex Mono is reserved for the single uppercase kicker role. */
body * {
  font-size: inherit !important;
}

body :where(span, strong, b, em, i) {
  font-family: inherit !important;
}

body :where(p, li, a, label, summary, legend, input, select, textarea, button, dt, dd, blockquote, cite, figcaption, th, td) {
  font-family: var(--bv-sans) !important;
}

body :where(h1, .page-title, .bv-page-title, .product_title) {
  color: var(--bv-ink) !important;
  font: 400 34px/1.15 var(--bv-serif) !important;
  letter-spacing: -.01em;
}

body :where(h2, .bv-section-title) {
  color: var(--bv-ink) !important;
  font: 500 24px/1.25 var(--bv-serif) !important;
  letter-spacing: 0;
}

body :where(h3, h4, .woocommerce-loop-product__title) {
  color: var(--bv-title-soft) !important;
  font: 500 18px/1.35 var(--bv-sans) !important;
  letter-spacing: 0;
}

body :where(p, li, dd, blockquote, input, select, textarea, table) {
  font: 400 16px/1.7 var(--bv-sans) !important;
  letter-spacing: 0;
}

body :where(p, li, dd, blockquote, address, table td) {
  color: var(--bv-muted) !important;
}

body :where(button, .button, .wp-element-button, .bv-button, .added_to_cart, .bv-pill) {
  font-family: var(--bv-sans) !important;
  font-size: 14px !important;
}

body :where(.bv-product-note, .bv-custom-note, .bv-custom-ease, .bv112-note, .bv112-caption, .bv112-size-copy, .bv-footer-grid p, .bv-footer-grid a, .bv-footer-grid address) {
  font: 400 14px/1.6 var(--bv-sans) !important;
  letter-spacing: 0;
}

body :where(small, figcaption, dt, .bv-pdp-stock, .bv-pdp-sku, .bv-pdp-price-note, .bv-pdp-video-link, .bv-payment-copy, .bv-custom-label, .bv112-no, .bv112-spec, .bv-data-head, .bv-company-details dt, .woocommerce-breadcrumb, .bvg-period, .bvg-cite, .bvg-caption, .bvg-design-name span, .bvg-design-name strong) {
  color: var(--bv-accent) !important;
  font: 500 12px/1.5 var(--bv-sans) !important;
  letter-spacing: .02em;
}

body :where(.bv-kicker, .bv109-kicker, .bv112-kicker, .bv-breadcrumb, .bv112-breadcrumb, .bv-custom-breadcrumb, .bvg-kicker, .bvg-breadcrumb) {
  color: var(--bv-accent) !important;
  font: 500 12px/1.4 var(--bv-mono) !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}

body :where(.price, .amount, .bv109-product__meta > strong, .bv-editorial-product > div > strong) {
  color: var(--bv-ink) !important;
  font-family: var(--bv-serif) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
}

/* Catalogue destinations inherit the homepage product-card type and rhythm. */
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
  font: 500 18px/1.35 var(--bv-sans) !important;
}

body.woocommerce-shop ul.products li.product .price,
body.woocommerce-shop ul.products li.product .price .amount,
body.tax-product_cat ul.products li.product .price,
body.tax-product_cat ul.products li.product .price .amount {
  color: var(--bv-ink) !important;
  font: 500 16px/1.3 var(--bv-serif) !important;
}

body.single-product :where(.summary .price, .summary .amount) {
  font: 500 24px/1.2 var(--bv-serif) !important;
}

body .bv-logo {
  font: 500 24px/1 var(--bv-serif) !important;
}

body :where(.bv-nav, .bv-menu > li > a, .bv-header-tools > a, .bv-catalog-filters, .woocommerce-ordering, .woocommerce-result-count) {
  font-family: var(--bv-sans) !important;
  font-size: 14px !important;
}

body .bv-site-footer h4 {
  font: 500 12px/1.5 var(--bv-sans) !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body .bv-legal {
  color: var(--bv-muted) !important;
  font-family: var(--bv-sans) !important;
  font-size: 12px !important;
}

/* Guide-page roles use the same locked eight-level type scale. */
body .bvg-page h1 {
  font: 400 52px/1.05 var(--bv-serif) !important;
  letter-spacing: -.02em !important;
}

body .bvg-colour-family > header h2 {
  font: 500 34px/1.15 var(--bv-serif) !important;
}

body :where(.bvg-disclosure, .bvg-family-links a, .bvg-patterns article > p:last-child, .bvg-design-grid article > p:last-child, .bvg-colour-family > header > p, .bvg-rules article p, .bvg-size-preview article > p:last-child, .bvg-fit-row > span, .bvg-care-pair aside span) {
  font: 400 14px/1.6 var(--bv-sans) !important;
}

body .bvg-traditions h4 {
  font: 500 14px/1.4 var(--bv-sans) !important;
}

body :where(.bvg-rules article > span, .bvg-wearing article > span) {
  font: 500 24px/1 var(--bv-sans) !important;
}

body :where(.bvg-stone__summary, .bvg-design-name span) {
  color: var(--bv-ink) !important;
}

body .bvg-disclosure strong {
  color: var(--bv-alert) !important;
  font: 500 12px/1.4 var(--bv-sans) !important;
  letter-spacing: .1em !important;
}

body :where(.bvg-family-name, .bvg-family-count) {
  font: 400 14px/1.6 var(--bv-sans) !important;
}

body .bvg-family-count {
  color: var(--bv-muted) !important;
}

body .bvg-stone__design-link {
  font: 400 16px/1.7 var(--bv-sans) !important;
}

body .bvg-culture .bvg-cta h2 {
  font: 400 24px/1.25 var(--bv-serif) !important;
}

body .bvg-culture .bvg-cta p {
  color: var(--bv-muted) !important;
  font: 400 14px/1.6 var(--bv-sans) !important;
}

body.home :where(.bv109-hero--overlay h1, .bv-hero h1, .bv-mock-hero h1) {
  color: var(--bv-paper) !important;
  font: 400 52px/1.05 var(--bv-serif) !important;
  letter-spacing: -.02em !important;
}

/* One text colour per semantic type role. Text links use colour plus an
 * underline; card and product-title links retain their H3 role colour. */
body main a:not(.button):not(.bv-button):not(.bv112-button):not(.bv109-textlink):not(.bv109-craft__link):not(.wp-element-button):not(.woocommerce-loop-product__link):not([class*="product__image"]) {
  color: var(--bv-accent) !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}

body main .bvg-family-links a,
body main .bvg-stone__design-link {
  text-decoration: none !important;
}

body main a:not(.button):not(.bv-button):not(.bv112-button):not(.bv109-textlink):not(.bv109-craft__link):not(.wp-element-button):hover {
  color: var(--bv-ink) !important;
}

body :where(h3, h4, .woocommerce-loop-product__title) a,
body .woocommerce-loop-product__link {
  color: inherit !important;
  text-decoration: none !important;
}

body :where(.woocommerce-error, .bv-form-status, .bv-pdp-stock:not(.bv-pdp-stock--available), .bv-custom-status) {
  color: var(--bv-alert) !important;
}

body :where(:disabled, [aria-disabled="true"], .disabled, .is-disabled) {
  color: var(--bv-disabled) !important;
  opacity: 1 !important;
  text-decoration: none !important;
}

body :where(.bv-custom-pills--wraps small, .bv112-material-filters button b, .bv-mc-filters b, del) {
  opacity: 1 !important;
}

/* Dark surfaces use solid colours only—never translucent text. */
body .bv-announcement,
body.home .bv-site-header a,
body.home .bv-site-header .bv-logo,
body.home .bv109-hero--overlay h1,
body.home .bv109-button--light,
body.home .bv109-textlink {
  color: var(--bv-paper) !important;
}

body.home .bv109-steps li,
body.home .bv-header-search input::placeholder,
body .bv-payment-strip span,
body .bv-copyright,
body .bv-merchant-footer {
  color: var(--bv-on-dark-muted) !important;
  opacity: 1 !important;
}

body.home .bv109-steps b,
body.home .bv109-hero--overlay .bv109-kicker {
  color: var(--bv-accent-on-dark) !important;
}

body.home .bv109-button--light {
  background: var(--bv-paper) !important;
  color: var(--bv-hero-scrim) !important;
}

body.home .bv109-textlink:hover {
  color: var(--bv-accent-on-dark) !important;
}

body.home .bv-header-search input {
  color: var(--bv-paper) !important;
}

/* Names shown over stone imagery sit on a solid ink backing when revealed. */
body .bv109-strand__stone > span {
  background: var(--bv-ink) !important;
  color: var(--bv-paper) !important;
}

/* Browser-native file input labels follow the operating-system language.
 * Replace them with one accessible, deterministic English control. */
body .bv-file-field > span:first-child {
  display: block;
  margin-bottom: 10px;
}

body .bv-file-control {
  align-items: center;
  background: var(--bv-paper);
  border: 1px dashed var(--bv-line-strong);
  cursor: pointer;
  display: flex;
  gap: 14px;
  min-height: 64px;
  padding: 14px 16px;
  position: relative;
}

body .bv-file-control input[type="file"] {
  border: 0 !important;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0 !important;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

body .bv-file-button {
  background: var(--bv-paper);
  border: 1px solid var(--bv-line-strong);
  color: var(--bv-ink) !important;
  flex: 0 0 auto;
  font: 500 14px/1.6 var(--bv-sans) !important;
  padding: 8px 14px;
}

body .bv-file-status {
  color: var(--bv-muted) !important;
  font: 400 14px/1.6 var(--bv-sans) !important;
}

body .bv-file-control:has(input:focus-visible) {
  outline: 2px solid var(--bv-accent);
  outline-offset: 2px;
}

@media (max-width: 520px) {
  body .bv-file-control {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 760px) {
  body.home :where(.bv109-hero--overlay h1, .bv-hero h1, .bv-mock-hero h1) {
    font-size: 40px !important;
  }
}

/* v1.3.19 — the stone rail is visual first. Names stay in the DOM for
 * assistive technology and search, but render only on pointer/keyboard intent. */
body.home .bv109-hero--overlay {
  height: auto;
}

body.home .bv109-hero__bg,
body.home .bv109-hero__bg img,
body.home .bv109-scrim--side {
  bottom: auto;
  height: 520px;
  top: 0;
}

body.home .bv109-scrim--top {
  height: 130px;
  top: 0;
}

body.home .bv109-scrim--bottom {
  bottom: auto;
  height: 170px;
  top: 350px;
}

body.home .bv109-hero__inner {
  height: 520px;
}

body.home .bv109-trust {
  background: var(--bv-hero-scrim);
  bottom: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 14px 48px;
  position: relative;
}

body.home .bv109-trust p {
  color: var(--bv-on-dark-muted) !important;
  opacity: 1 !important;
}

body.home .bv109-trust strong {
  color: var(--bv-paper) !important;
  opacity: 1 !important;
}

body.home .bv109-strand,
body.home .bv109-strand__row,
body.home .bv109-strand__row li,
body.home .bv109-strand__stone {
  overflow: visible;
}

body.home .bv109-strand__row {
  display: flex;
}

body.home .bv109-strand__row li {
  opacity: 1;
  position: relative;
  transition: opacity .18s ease;
  z-index: 1;
}

body.home .bv109-strand__stone {
  appearance: none;
  cursor: pointer;
}

body.home .bv109-strand__stone img {
  filter: none;
  transform: scale(1);
  transition: transform .18s ease, filter .18s ease, opacity .18s ease;
}

body.home .bv109-strand__stone > span {
  border-radius: 0;
  bottom: calc(100% + 10px);
  box-shadow: none;
  display: block;
  font: 500 12px/1.5 var(--bv-sans) !important;
  max-width: none;
  opacity: 0 !important;
  padding: 5px 8px;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity .18s ease .1s, transform .18s ease .1s, visibility 0s linear .28s;
  visibility: hidden;
  white-space: nowrap;
  width: max-content;
  z-index: 7;
}

body.home .bv109-strand__stone:focus-visible {
  border-radius: 50%;
  outline: 2px solid var(--bv-ink);
  outline-offset: 2px;
}

body.home .bv109-strand__selection {
  display: none;
}

/* Product and editorial cards share one restrained image enlargement. */
body .bv109-product__image img,
body .woocommerce ul.products li.product a img,
body .bv-pdp-related .woocommerce ul.products li.product a img {
  transform: scale(1);
}

body .bv109-product__image:hover img,
body .woocommerce ul.products li.product a:hover img,
body .bv-pdp-related .woocommerce ul.products li.product a:hover img,
body .bv-choose-grid a:hover img,
body .bv-editorial-product__image:hover img,
body .bv-home-story figure:hover img {
  transform: scale(1.02) !important;
}

body.home .bv109-beadrule__stone:hover img,
body.home .bv109-beadrule__stone:focus-visible img {
  filter: none;
  transform: translateY(-4px) scale(1.35) !important;
}

@media (hover: hover) and (pointer: fine) and (min-width: 761px) {
  body.home .bv109-strand__row li:hover,
  body.home .bv109-strand__row li:focus-within {
    opacity: 1;
    z-index: 6;
  }

  body.home .bv109-strand__stone:hover img,
  body.home .bv109-strand__stone:focus-visible img {
    filter: none;
    transform: translateY(-4px) scale(1.35);
  }

  body.home .bv109-strand__stone:hover > span,
  body.home .bv109-strand__stone:focus-visible > span {
    opacity: 1 !important;
    transform: translate(-50%, 0);
    transition-delay: 0s;
    visibility: visible;
  }

  body.home .bv109-strand__row li:first-child .bv109-strand__stone > span {
    left: 0;
    right: auto;
    transform: translate(0, 4px);
  }

  body.home .bv109-strand__row li:first-child .bv109-strand__stone:hover > span,
  body.home .bv109-strand__row li:first-child .bv109-strand__stone:focus-visible > span {
    transform: translate(0, 0);
  }

  body.home .bv109-strand__row li:last-child .bv109-strand__stone > span {
    left: auto;
    right: 0;
    transform: translate(0, 4px);
  }

  body.home .bv109-strand__row li:last-child .bv109-strand__stone:hover > span,
  body.home .bv109-strand__row li:last-child .bv109-strand__stone:focus-visible > span {
    transform: translate(0, 0);
  }
}

@media (max-width: 760px) {
  body.home .bv109-hero__bg,
  body.home .bv109-hero__bg img,
  body.home .bv109-scrim--side,
  body.home .bv109-hero__inner {
    height: 620px;
  }

  body.home .bv109-scrim--bottom {
    top: 450px;
  }

  body.home .bv109-trust {
    background: var(--bv-hero-scrim);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 16px 24px;
  }

  body.home .bv109-strand__row {
    display: grid;
    gap: 8px 4px;
    grid-template-columns: repeat(15, minmax(0, 1fr));
    overflow: visible;
  }

  body.home .bv109-strand__row li,
  body.home .bv109-strand__row li:nth-child(even) {
    display: block;
    min-width: 0;
    opacity: 1;
    width: auto;
  }

  body.home .bv109-strand__stone > span {
    display: none;
  }

  body.home .bv109-strand__selection:not([hidden]) {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    font: 400 14px/1.6 var(--bv-sans) !important;
    gap: 4px 14px;
    justify-content: space-between;
    margin: 14px 0 0;
  }

  body.home .bv109-strand__selection > span:first-child {
    color: var(--bv-ink) !important;
    font-weight: 500;
  }

  body.home .bv109-strand__selection a {
    font-size: 14px !important;
  }

  body.home .bv109-strand__more {
    display: none;
  }
}

/* v1.3.20 — custom-builder pricing and scale corrections. */
body .bv-custom-controls > section > .bv-custom-label,
body .bv-custom-order > section > .bv-custom-label {
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  line-height: 1.4 !important;
}

body .bv-custom-bead {
  background-size: 152% !important;
}

/* v1.3.21 — readable sentence case throughout the bracelet controls. */
body .bv-custom-pills button,
body .bv-custom-colors button {
  font-family: var(--bv-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none;
}

body .bv-custom-strand > header p {
  text-transform: none;
}

/* v1.3.23 — centre the strand line and keep every stone fully visible. */
@media (min-width: 761px) {
  body.home .bv109-strand {
    --bv-strand-edge: 48px;
  }

  body.home .bv109-strand__line {
    display: none;
  }

  body.home .bv109-strand__row::before {
    background: var(--bv-line-strong);
    content: "";
    height: 1px;
    left: calc(-1 * var(--bv-strand-edge));
    pointer-events: none;
    position: absolute;
    right: calc(-1 * var(--bv-strand-edge));
    top: 50%;
    transform: translateY(-.5px);
    z-index: 0;
  }

  body.home .bv109-strand__row li,
  body.home .bv109-strand__row:hover li,
  body.home .bv109-strand__row:focus-within li {
    opacity: 1 !important;
  }
}

/* v1.3.24 — align home content frames and render custom previews at checkout. */
body.home .bv109-products {
  box-sizing: border-box;
  max-width: 1344px;
}

body.woocommerce-checkout .bv-checkout-product > .bv-cart-custom-preview {
  grid-row: 1 / span 2;
  height: 52px;
  width: 52px;
}

@media (max-width: 1380px) {
  body.home .bv109-products {
    max-width: calc(100% - 96px);
  }

  body.woocommerce-shop main.bv-container,
  body.tax-product_cat main.bv-container {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (max-width: 760px) {
  body.home .bv109-products {
    max-width: calc(100% - 40px);
  }

  body.woocommerce-shop main.bv-container,
  body.tax-product_cat main.bv-container {
    padding: 34px 24px 44px;
    width: calc(100% - 40px);
  }

  body.woocommerce-shop ul.products,
  body.tax-product_cat ul.products {
    column-gap: 12px !important;
    row-gap: 24px !important;
  }

  body.woocommerce-shop .bv-catalog-filters :where(select, button),
  body.tax-product_cat .bv-catalog-filters :where(select, button) {
    min-height: 44px;
  }
}

/* v1.3.25 — account verification, personal coupons and Google sign-in. */
body .bv-welcome-panel,
body .bv-welcome-fields {
  background: var(--bv-sand);
  border: 1px solid var(--bv-line);
  box-sizing: border-box;
  margin: 24px 0;
  padding: 24px;
}

body .bv-welcome-fields h3,
body .bv-welcome-panel h2 {
  margin-top: 0;
}

body .bv-welcome-fields select,
body .bv-welcome-fields input {
  background: var(--bv-paper);
  border: 1px solid var(--bv-line);
  border-radius: 0;
  box-sizing: border-box;
  min-height: 48px;
  padding: 10px 12px;
  width: 100%;
}

body .bv-google-login {
  align-items: center;
  display: grid;
  gap: 12px;
  margin-top: 20px;
  text-align: center;
}

body .bv-google-login > span {
  color: var(--bv-muted);
  font-size: 12px;
}

body .bv-google-login .button,
body .bv-welcome-panel .button {
  background: var(--bv-paper);
  border: 1px solid var(--bv-ink);
  border-radius: 0;
  color: var(--bv-ink);
  display: inline-flex;
  justify-content: center;
  min-height: 48px;
  padding: 13px 20px;
}

@media (max-width: 760px) {
  body .bv-newsletter__account {
    justify-self: start;
  }
}

@media (min-width: 761px) and (max-width: 1380px) {
  body.home .bv109-strand {
    --bv-strand-edge: 40px;
  }
}

/* Cross-page colour roles and the mobile hero are normalized after all
 * historical page styles so old one-off greys cannot win the cascade. */
body :where(.bv-breadcrumb, .bv112-breadcrumb, .bv-custom-breadcrumb) {
  color: var(--bv-accent) !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}

body.home .bv109-filters button {
  color: var(--bv-muted) !important;
}

body.home .bv109-filters :where(button:hover, button.is-active),
body .bv-catalog-filters button,
body .single_add_to_cart_button,
body .bv-button:not(.bv-button--outline),
body .bv-custom-add:not(:disabled) {
  color: var(--bv-paper) !important;
}

body .bv-custom-add:disabled {
  color: var(--bv-disabled) !important;
}

body .bv-contact-form label {
  color: var(--bv-muted) !important;
}

@media (max-width: 760px) {
  body.home .bv109-hero--overlay .bv109-hero__copy {
    height: auto;
    min-height: 0;
    padding: 0;
  }

  body.home .bv109-hero__inner {
    align-items: flex-end;
    padding: 96px 24px 44px;
  }
}

/* v1.3.26 — white canvas, evergreen blocks and token-only colour roles. */
body,
body main,
body.home main,
body.single-product main,
body.woocommerce-shop main,
body.tax-product_cat main,
body.home .bv109-products {
  background: var(--bv-sand);
}

body .bv-site-header,
body.home .bv-site-header,
body .bv-nav,
body.home .bv-nav {
  background: var(--bv-sand);
  border-bottom-color: var(--bv-line);
  box-shadow: none;
}

body.home .bv-site-header a,
body.home .bv-site-header .bv-logo,
body.home .bv-menu > li > a,
body.home .bv-header-tools > a,
body.home .bv-header-search input,
body.home .bv-header-search input::placeholder {
  color: var(--bv-ink) !important;
}

body.home .bv-header-search {
  border-bottom-color: var(--bv-line-strong);
}

/* Product media keeps its native neutral canvas without a decorative frame. */
body .bv109-product__image,
body .bv109-product__image img,
body .woocommerce ul.products li.product,
body .woocommerce ul.products li.product a img,
body .bv-pdp-related .woocommerce ul.products li.product a img,
body .bv-editorial-product__image,
body .bv-editorial-product__image img,
body .bv-pdp-stack__products > a,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image img,
body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body .bv-cart-custom-preview {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body .bv109-product__image,
body .woocommerce ul.products li.product a img,
body .bv-pdp-related .woocommerce ul.products li.product a img,
body .bv-editorial-product__image,
body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image img {
  background: var(--bv-image-surface) !important;
  padding: 0 !important;
}

/* The custom flow is the first solid brand block on home. */
body.home .bv109-custom,
body.home .bv109-craft {
  background: var(--bv-block);
  border: 0;
  color: var(--bv-on-dark);
}

body.home .bv109-custom :where(h2, h3, strong, .bv109-custom__ring b),
body.home .bv109-craft :where(h2, h3, strong) {
  color: var(--bv-on-dark) !important;
}

body.home .bv109-custom :where(p, li),
body.home .bv109-craft :where(p, li) {
  color: var(--bv-on-dark-muted) !important;
}

body.home .bv109-custom :where(.bv109-kicker, .bv109-custom__steps > li > span),
body.home .bv109-craft .bv109-kicker {
  color: var(--bv-accent-on-dark) !important;
}

body.home .bv109-craft a {
  border-bottom-color: var(--bv-accent-on-dark);
  color: var(--bv-on-dark) !important;
}

body.home .bv109-craft a:hover,
body.home .bv109-craft a:focus-visible {
  color: var(--bv-accent-on-dark) !important;
}

body.home .bv109-custom .bv109-custom__steps li {
  border-color: rgba(255, 255, 255, .14);
}

/* Footer is the second solid brand block. */
body .bv-site-footer,
body .bv-legal {
  background: var(--bv-block);
  border-color: rgba(255, 255, 255, .14);
  color: var(--bv-on-dark);
}

body .bv-site-footer :where(h3, h4) {
  color: var(--bv-accent-on-dark) !important;
}

body .bv-site-footer :where(p, a, address),
body .bv-legal,
body .bv-copyright {
  color: var(--bv-on-dark-muted) !important;
}

body .bv-site-footer a:hover,
body .bv-site-footer a:focus-visible {
  color: var(--bv-accent-on-dark) !important;
}

/* One rectangular control system with an accessible disabled state. */
body :where(.bv-button, .wp-element-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, button.single_add_to_cart_button, .bv-custom-add):not(:disabled):not(.bv-button--outline) {
  background: var(--bv-accent) !important;
  border-color: var(--bv-accent) !important;
  color: var(--bv-on-dark) !important;
}

body :where(.bv-button, .wp-element-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, button.single_add_to_cart_button, .bv-custom-add):not(:disabled):not(.bv-button--outline):hover,
body :where(.bv-button, .wp-element-button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, button.single_add_to_cart_button, .bv-custom-add):not(:disabled):not(.bv-button--outline):focus-visible {
  background: var(--bv-ink) !important;
  border-color: var(--bv-ink) !important;
}

body :where(.bv-button--outline, .bv-google-login .button, .bv-welcome-panel .button) {
  background: var(--bv-sand) !important;
  border: 1px solid var(--bv-accent) !important;
  color: var(--bv-accent) !important;
}

body :where(.bv-button--outline, .bv-google-login .button, .bv-welcome-panel .button):hover,
body :where(.bv-button--outline, .bv-google-login .button, .bv-welcome-panel .button):focus-visible {
  background: var(--bv-accent) !important;
  color: var(--bv-on-dark) !important;
}

body :where(:disabled, [aria-disabled="true"], .disabled, .is-disabled),
body .bv-custom-add:disabled {
  background: var(--bv-disabled) !important;
  border-color: var(--bv-disabled) !important;
  color: var(--bv-disabled-text) !important;
  opacity: 1 !important;
}

/* The photo remains visible while the text side receives enough contrast. */
body.home .bv109-scrim--side,
body.home .bv109-hero__scrim {
  background: linear-gradient(97deg,
    rgba(var(--bv-block-rgb), .76) 0%,
    rgba(var(--bv-block-rgb), .72) 24%,
    rgba(var(--bv-block-rgb), .52) 42%,
    rgba(var(--bv-block-rgb), .28) 58%,
    rgba(var(--bv-block-rgb), 0) 76%);
}

body.home .bv109-scrim--top,
body.home .bv109-hero__topscrim {
  background: linear-gradient(180deg,
    rgba(var(--bv-block-rgb), .52) 0%,
    rgba(var(--bv-block-rgb), .24) 58%,
    rgba(var(--bv-block-rgb), 0) 100%);
}

body.home .bv109-scrim--bottom {
  background: linear-gradient(0deg,
    rgba(var(--bv-block-rgb), .76) 0%,
    rgba(var(--bv-block-rgb), .48) 52%,
    rgba(var(--bv-block-rgb), 0) 100%);
}

@media (max-width: 760px) {
  body.home .bv109-scrim--side,
  body.home .bv109-hero__scrim {
    background: linear-gradient(0deg,
      rgba(var(--bv-block-rgb), .82) 0%,
      rgba(var(--bv-block-rgb), .66) 48%,
      rgba(var(--bv-block-rgb), .22) 82%,
      rgba(var(--bv-block-rgb), 0) 100%);
  }
}

/* v1.3.27 — carry the homepage's white/evergreen tone across every page.
 * Neutral grey is now reserved for product photography and disabled states;
 * page shells, commerce panels and information cards remain white. */
body {
  --bv-surface-page: var(--bv-sand);
  --bv-surface-card: var(--bv-sand);
  --bv-surface-field: var(--bv-sand);
}

body .bv-announcement {
  background: var(--bv-block) !important;
  border-color: rgba(255, 255, 255, .14);
  color: var(--bv-on-dark) !important;
}

body:not(.home),
body:not(.home) main,
body.bv-footer-info-page,
body.bv-footer-info-page .bv112-page,
body.bv-footer-info-page .bv-footer-page,
body .bv-custom-builder,
body .bv-custom-controls,
body .bv-custom-order,
body .bv-custom-strand,
body.single-product div.product,
body.single-product div.product .summary,
body.single-product .bv-pdp-trust,
body.single-product .bv-pdp-specs dl > div,
body.single-product .bv-pdp-description,
body.single-product .bv-pdp-reviews--empty,
body.single-product .bv-pdp-stack,
body.woocommerce-cart form.woocommerce-cart-form,
body.woocommerce-cart form.woocommerce-cart-form table.cart,
body.woocommerce-cart .cart-collaterals .bv-checkout-notice,
body.woocommerce-cart .cart-collaterals .cart_totals,
body.woocommerce-cart .cart-collaterals .cart_totals table,
body.woocommerce-checkout form.checkout .bv-express-checkout,
body.woocommerce-checkout form.checkout #customer_details,
body.woocommerce-checkout form.checkout #order_review,
body.woocommerce-checkout #payment ul.payment_methods > li,
body .bv-welcome-panel,
body .bv-welcome-fields {
  background: var(--bv-sand) !important;
}

body.single-product .bv-pdp-trust,
body.single-product .bv-pdp-description,
body.single-product .bv-pdp-reviews--empty,
body.woocommerce-cart form.woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals .cart_totals,
body.woocommerce-checkout form.checkout .bv-express-checkout,
body.woocommerce-checkout form.checkout #customer_details,
body.woocommerce-checkout form.checkout #order_review,
body .bv-welcome-panel,
body .bv-welcome-fields {
  border-color: var(--bv-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body :where(input, select, textarea, .select2-selection),
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea {
  background: var(--bv-sand) !important;
}

/* Use one dark status/header band instead of additional grey fills. */
body .bv-custom-order > h2,
body .bv-rate-head,
body .bv-data-head {
  background: var(--bv-block);
  color: var(--bv-on-dark) !important;
}

body .bv-custom-order > h2 :where(span, small),
body .bv-rate-head :where(span, small),
body .bv-data-head :where(span, small) {
  color: inherit !important;
}

/* v1.3.28 — full-bleed information bands and dependable dark-surface type. */
body {
  overflow-x: hidden;
}

/* Highlighted horizontal sections escape the 1440px page frame while their
 * contents remain aligned to the site's standard desktop gutter. */
body :where(
  .bv112-material-reference,
  .bv112-cta,
  .bv112-habits,
  .bv112-kit-cta,
  .bv-footer-page .bv-track-box
) {
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: max(48px, calc((100vw - 1440px) / 2 + 48px));
  padding-right: max(48px, calc((100vw - 1440px) / 2 + 48px));
  width: 100vw;
}

/* Contact and returns use the same clean white canvas as home. */
body .bv-footer-page--contact :where(.bv-info-hero, .bv-channel-grid, .bv-contact-layout, .bv-contact-layout > div),
body .bv-footer-page--returns-refunds :where(.bv-return-hero, .bv-info-hero, .bv-return-promise, .bv-eligibility, .bv-eligibility > div, .bv-info-section) {
  background: var(--bv-sand) !important;
}

body .bv-footer-page--contact .bv-contact-layout,
body .bv-footer-page--returns-refunds .bv-eligibility {
  border-color: var(--bv-line) !important;
}

/* CTA links are buttons, not ordinary links: their foreground must stay light
 * even when the global link treatment changes. */
body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button,
body :where(.bv112-material-filters, .bv112-wrist-tabs, .bv-mc-filters, .bv-mc-wrists) button.is-active,
body .bv-custom-pills button.is-active,
body .bv-custom-colors button.is-active {
  background: var(--bv-accent) !important;
  border-color: var(--bv-accent) !important;
  color: var(--bv-on-dark) !important;
}

body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button:hover,
body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button:focus-visible {
  background: var(--bv-ink) !important;
  border-color: var(--bv-ink) !important;
  color: var(--bv-on-dark) !important;
}

body :where(.bv-legal, .bv-announcement, .bv-data-head, .bv-rate-head, .bv-custom-order > h2) :where(a, p, span, strong, small, h1, h2, h3, h4, label) {
  color: inherit !important;
}

/* The six shipping notes read faster as two rows of three on desktop. */
@media (min-width: 1100px) {
  body .bv-footer-page--shipping-policy .bv-detail-grid {
    column-gap: 42px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 32px;
  }

  body .bv-footer-page--shipping-policy .bv-track-box {
    align-items: center;
    display: grid;
    gap: 56px;
    grid-template-columns: minmax(0, 1fr) minmax(520px, .9fr);
  }

  body .bv-footer-page--shipping-policy .bv-track-box > div:last-child {
    min-width: 0;
  }

  body .bv-footer-page--shipping-policy .bv-track-box .woocommerce-form-track-order {
    align-items: end;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body .bv-footer-page--shipping-policy .bv-track-box .woocommerce-form-track-order .form-row {
    float: none;
    margin: 0;
    width: auto;
  }

  body .bv-footer-page--shipping-policy .bv-track-box .woocommerce-form-track-order .form-row:last-of-type {
    grid-column: 1 / -1;
    justify-self: start;
  }

  body .bv-footer-page--shipping-policy .bv-track-box .woocommerce-form-track-order .clear {
    display: none;
  }
}

@media (min-width: 761px) and (max-width: 1099px) {
  body .bv-footer-page--shipping-policy .bv-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body :where(
    .bv112-material-reference,
    .bv112-cta,
    .bv112-habits,
    .bv112-kit-cta,
    .bv-footer-page .bv-track-box
  ) {
    padding-left: 20px;
    padding-right: 20px;
  }

  body .bv-footer-page--shipping-policy .bv-detail-grid {
    grid-template-columns: 1fr;
  }
}

/* v1.3.29 — final dark-surface contrast, restrained catalogue cards and
 * neutral navigation dropdowns (including Elementor's injected skin). */
body.home .bv109-hero .bv109-textlink,
body.home .bv109-hero .bv109-textlink > span {
  color: var(--bv-on-dark) !important;
  opacity: 1 !important;
  visibility: visible !important;
  -webkit-text-fill-color: var(--bv-on-dark) !important;
}

body.home .bv109-hero .bv109-textlink:hover,
body.home .bv109-hero .bv109-textlink:focus-visible,
body.home .bv109-hero .bv109-textlink:hover > span,
body.home .bv109-hero .bv109-textlink:focus-visible > span {
  color: var(--bv-accent-on-dark) !important;
  -webkit-text-fill-color: var(--bv-accent-on-dark) !important;
}

body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button,
body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button:visited,
body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button:hover,
body :where(.bv112-cta, .bv112-kit-cta) a.bv112-button:focus-visible {
  color: var(--bv-on-dark) !important;
  font: 500 12px/1 var(--bv-sans) !important;
  opacity: 1 !important;
  text-indent: 0 !important;
  visibility: visible !important;
  -webkit-text-fill-color: var(--bv-on-dark) !important;
}

body.home .bv109-craft a,
body.home .bv109-craft a > span {
  color: var(--bv-on-dark) !important;
  opacity: 1 !important;
  visibility: visible !important;
  -webkit-text-fill-color: var(--bv-on-dark) !important;
}

body.home .bv109-craft a:hover,
body.home .bv109-craft a:focus-visible,
body.home .bv109-craft a:hover > span,
body.home .bv109-craft a:focus-visible > span {
  color: var(--bv-accent-on-dark) !important;
  -webkit-text-fill-color: var(--bv-accent-on-dark) !important;
}

/* Product grids deliberately show only image, name and price. */
body .bv109-product > p,
body .woocommerce ul.products li.product .bv-product-note {
  display: none !important;
}

/* Primary navigation stays one step larger/heavier than every dropdown. */
body .bv-menu > li > a,
body .elementor-nav-menu--main > .elementor-nav-menu > li > a {
  font: 500 15px/1.3 var(--bv-sans) !important;
}

/* Override both the theme dropdown and Elementor's dropdown skin. */
body .bv-menu .sub-menu,
body .elementor-nav-menu--main .elementor-nav-menu ul,
body .elementor-widget-nav-menu .sub-menu,
body .elementor-nav-menu--dropdown {
  background: var(--bv-sand) !important;
  border: 1px solid var(--bv-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body .bv-menu .sub-menu,
body .elementor-nav-menu--main .elementor-nav-menu ul,
body .elementor-widget-nav-menu .sub-menu {
  gap: 0 !important;
  min-width: max-content !important;
  padding: 0 !important;
  width: max-content !important;
}

body .bv-menu .sub-menu a,
body .elementor-nav-menu--main .elementor-nav-menu ul a,
body .elementor-widget-nav-menu .sub-menu a,
body .elementor-nav-menu--dropdown a {
  align-items: center !important;
  background: var(--bv-sand) !important;
  color: var(--bv-ink) !important;
  display: flex !important;
  font: 400 14px/44px var(--bv-sans) !important;
  min-height: 44px !important;
  padding: 0 18px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  width: 100% !important;
  -webkit-text-fill-color: var(--bv-ink) !important;
}

body .bv-menu .sub-menu a:hover,
body .bv-menu .sub-menu a:focus-visible,
body .elementor-nav-menu--main .elementor-nav-menu ul a:hover,
body .elementor-nav-menu--main .elementor-nav-menu ul a:focus-visible,
body .elementor-widget-nav-menu .sub-menu a:hover,
body .elementor-widget-nav-menu .sub-menu a:focus-visible,
body .elementor-nav-menu--dropdown a:hover,
body .elementor-nav-menu--dropdown a:focus-visible {
  background: var(--bv-deep) !important;
  color: var(--bv-ink) !important;
  -webkit-text-fill-color: var(--bv-ink) !important;
}

/* Clear separators prevent the legal footer clauses running together. */
body .bv-legal .bv-container {
  align-items: center;
  column-gap: 18px;
}

body .bv-legal .bv-container > span + span::before {
  color: var(--bv-accent-on-dark);
  content: "·";
  margin-right: 18px;
}

@media (max-width: 760px) {
  body .bv-legal .bv-container > span + span::before {
    content: none;
  }
}

/* v1.3.36 — simplified four-link header with icon-only utilities. */
body .bv-site-header .bv-header-inner {
  box-sizing: border-box;
  gap: clamp(18px, 2.4vw, 40px);
  max-width: 1440px;
  min-height: 68px;
  padding: 0 48px;
  width: 100%;
}

body .bv-site-header .bv-nav {
  justify-self: center;
}

body .bv-site-header .bv-menu {
  gap: clamp(18px, 2vw, 34px);
}

body .bv-site-header .bv-menu > li > a {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
  text-decoration: none;
}

body .bv-site-header .bv-header-tools {
  align-items: center;
  display: flex;
  gap: 0;
  justify-self: end;
  position: relative;
}

body .bv-site-header .bv-header-icon {
  align-items: center;
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  color: var(--bv-ink) !important;
  display: inline-flex;
  flex: 0 0 44px;
  height: 44px;
  justify-content: center;
  min-height: 44px !important;
  padding: 0 !important;
  position: relative;
  text-decoration: none !important;
  width: 44px;
  -webkit-text-fill-color: var(--bv-ink) !important;
}

body .bv-site-header .bv-header-icon:hover,
body .bv-site-header .bv-header-icon:focus-visible {
  background: var(--bv-deep) !important;
  color: var(--bv-ink) !important;
  outline: 2px solid var(--bv-ink);
  outline-offset: -2px;
}

body .bv-site-header .bv-header-icon svg {
  fill: none;
  height: 20px;
  pointer-events: none;
  stroke: currentColor;
  stroke-width: 1.6;
  width: 20px;
}

body .bv-site-header .bv-header-search {
  border: 0;
  display: block;
  flex: 0 0 44px;
  position: relative;
  width: 44px;
  z-index: 40;
}

body .bv-site-header .bv-header-search > input[type="search"] {
  background: var(--bv-paper) !important;
  border: 1px solid var(--bv-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--bv-ink) !important;
  font: 400 14px/1.6 var(--bv-sans) !important;
  height: 44px;
  opacity: 0;
  padding: 0 !important;
  pointer-events: none;
  position: absolute;
  right: 44px;
  top: 0;
  transition: opacity .16s ease, width .16s ease;
  visibility: hidden;
  width: 0;
  -webkit-text-fill-color: var(--bv-ink) !important;
}

body .bv-site-header .bv-header-search.is-open > input[type="search"] {
  opacity: 1;
  padding: 0 14px !important;
  pointer-events: auto;
  visibility: visible;
  width: 240px;
}

body .bv-site-header .bv-header-search > input[type="search"]::placeholder {
  color: var(--bv-muted) !important;
  opacity: 1;
  -webkit-text-fill-color: var(--bv-muted) !important;
}

body .bv-site-header .bv-header-tools .bv-cart-count {
  align-items: center;
  background: var(--bv-paper);
  border: 0;
  color: var(--bv-ink);
  display: inline-flex;
  font: 500 12px/1 var(--bv-sans);
  height: 14px;
  justify-content: center;
  min-width: 12px;
  padding: 0;
  position: absolute;
  right: 0;
  top: 2px;
}

@media (max-width: 900px) {
  body .bv-site-header .bv-header-inner {
    gap: 4px;
    min-height: 66px;
    padding: 0 18px;
  }

  body .bv-site-header .bv-logo {
    margin-right: auto;
  }

  body .bv-site-header .bv-header-tools {
    margin-left: 0;
  }

  body .bv-site-header .bv-header-search.is-open > input[type="search"] {
    width: min(240px, calc(100vw - 100px));
  }
}

@media (max-width: 620px) {
  body .bv-site-header .bv-header-icon,
  body .bv-site-header .bv-header-search {
    flex-basis: 38px;
    width: 38px;
  }

  body .bv-site-header .bv-header-search > input[type="search"] {
    right: 38px;
  }
}
