/**
 * VOPEČBUŘT prelaunch RC2 – typography and responsive reconciliation.
 *
 * Brand manual:
 * - website headlines: Rubik Dirt
 * - subheadlines and UI emphasis: Roboto Bold
 * - regular text: Roboto Regular
 * - Veneer Two: social media only, never website UI
 */

@font-face {
  font-family: "Rubik Dirt";
  src: url("../fonts/RubikDirt-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/Roboto-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 75% 100%;
  font-display: swap;
}

:root {
  --vb-display-font: "Rubik Dirt", Impact, Haettenschweiler, "Arial Narrow", sans-serif;
  --vb-heading-font: "Rubik Dirt", Impact, Haettenschweiler, "Arial Narrow", sans-serif;
  --vb-subheading-font: "Roboto", Arial, Helvetica, sans-serif;
  --vb-body-font: "Roboto", Arial, Helvetica, sans-serif;
}

/* --------------------------------------------------------------------------
   Brand typography
   -------------------------------------------------------------------------- */

html,
body,
body.vb-theme,
.vb-theme,
.vb-theme input,
.vb-theme textarea,
.vb-theme select,
.vb-theme button,
.vb-theme .button,
.vb-theme .vb-btn,
.vb-theme table,
.vb-theme label,
.vb-theme p,
.vb-theme li,
.vb-theme a,
.vb-theme address,
.vb-theme .price,
.vb-theme .amount,
.vb-theme .woocommerce-message,
.vb-theme .woocommerce-info,
.vb-theme .woocommerce-error,
.vb-theme .vb-nav,
.vb-theme .vb-topbar,
.vb-theme .vb-footer {
  font-family: var(--vb-body-font) !important;
}

/* Main website headlines. */
.vb-theme h1,
.vb-theme h2,
.vb-theme .entry-title,
.vb-theme .product_title,
.vb-theme .woocommerce-products-header__title,
.vb-theme .related.products > h2,
.vb-theme .up-sells > h2,
.vb-theme .cross-sells > h2,
.vb-theme .vb-section-head h2,
.vb-theme .vb-story h2,
.vb-theme .vb-contact-hero h1,
.vb-theme .vb-shop-hero h1,
.vb-theme .woocommerce-tabs .panel > h2,
.vb-theme .woocommerce-Tabs-panel > h2,
.vb-theme .vb-bought-together__head h2,
.vb-theme .vb-empty-cart-216 h2,
.vb-theme .vb-empty-cart-217 h2,
.vb-theme .vb-empty-cart-218 h2 {
  font-family: var(--vb-display-font) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-synthesis: none;
  text-transform: uppercase;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  text-wrap: balance;
}

/* Subheadlines, product-card names and functional headings. */
.vb-theme h3,
.vb-theme h4,
.vb-theme h5,
.vb-theme h6,
.vb-theme .vb-product-card h3,
.vb-theme .vb-product-card h3 a,
.vb-theme .vb-bought-card h3,
.vb-theme .vb-bought-card h3 a,
.vb-theme ul.products li.product .woocommerce-loop-product__title,
.vb-theme ul.products li.product.product-category h2,
.vb-theme .vb-category-card strong,
.vb-theme .vb-care-card strong,
.vb-theme .vb-hero-card strong,
.vb-theme .vb-shop-products-intro-242 strong,
.vb-theme .vb-shop-categories-242__head strong,
.vb-theme .vb-shop-categories-245__head strong,
.vb-theme .cart_totals > h2,
.vb-theme .woocommerce-billing-fields > h3,
.vb-theme .woocommerce-additional-fields > h3,
.vb-theme #order_review_heading,
.vb-theme .vb-footer h2 {
  font-family: var(--vb-subheading-font) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-synthesis: none;
  line-height: 1.18 !important;
  letter-spacing: .015em !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.vb-theme .vb-product-card__kicker,
.vb-theme .vb-bought-card__kicker,
.vb-theme .vb-kicker,
.vb-theme .vb-eyebrow,
.vb-theme .vb-topbar__item,
.vb-theme .vb-nav__list a,
.vb-theme .button,
.vb-theme button,
.vb-theme input[type="submit"] {
  font-family: var(--vb-subheading-font) !important;
  font-weight: 700 !important;
}

/* Product names are subheadlines, not display posters. */
.vb-theme .vb-product-card h3,
.vb-theme ul.products li.product .woocommerce-loop-product__title,
.vb-theme .vb-bought-card h3 {
  min-height: 2.45em !important;
  margin-bottom: 12px !important;
  font-size: clamp(1.05rem, 1.55vw, 1.28rem) !important;
  line-height: 1.22 !important;
  text-transform: uppercase !important;
  text-wrap: balance;
}

/* Main product title remains a website headline, but must not dominate mobile. */
body.vb-theme.single-product .product_title,
body.vb-theme.single-product div.product .product_title,
body.vb-theme.single-product .summary .product_title,
body.vb-theme.single-product .product_title.entry-title {
  max-width: 100% !important;
  font-size: clamp(2rem, 4.2vw, 3.35rem) !important;
  line-height: .98 !important;
  letter-spacing: 0 !important;
}

/* --------------------------------------------------------------------------
   Structural safeguards confirmed by the visual audit
   -------------------------------------------------------------------------- */

.vb-theme *,
.vb-theme *::before,
.vb-theme *::after {
  box-sizing: border-box;
}

.vb-theme .vb-site-shell,
.vb-theme .vb-main,
.vb-theme .vb-container,
.vb-theme .site-content,
.vb-theme .content-area,
.vb-theme .site-main,
.vb-theme .woocommerce,
.vb-theme .woocommerce-page {
  min-width: 0;
  max-width: 100%;
}

/* Shop/category hero: remove the desktop fixed secondary column on tablets. */
@media (max-width: 900px) {
  body.vb-shop-premium-layout .vb-shop-hero,
  body.vb-shop-premium-layout .vb-shop-hero--242,
  body.tax-product_cat .vb-shop-hero,
  body.post-type-archive-product .vb-shop-hero {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
    padding: clamp(28px, 5vw, 42px) !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    overflow: hidden !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero__copy,
  body.vb-shop-premium-layout .vb-shop-hero__facts,
  body.tax-product_cat .vb-shop-hero__copy,
  body.tax-product_cat .vb-shop-hero__facts {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero h1,
  body.tax-product_cat .vb-shop-hero h1 {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 0 16px !important;
    font-size: clamp(2.75rem, 9vw, 4.5rem) !important;
    line-height: .94 !important;
    letter-spacing: 0 !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero p:not(.vb-kicker),
  body.tax-product_cat .vb-shop-hero p:not(.vb-kicker) {
    width: auto !important;
    max-width: 46rem !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero__facts,
  body.tax-product_cat .vb-shop-hero__facts {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero__facts span,
  body.tax-product_cat .vb-shop-hero__facts span {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 13px 15px !important;
    white-space: normal !important;
    line-height: 1.35 !important;
    overflow-wrap: normal !important;
  }

  /* The audit found an 818px document at a 768px viewport. The cause was the
     five nowrap topbar labels. Keep the five icons, visually hide their text. */
  .vb-topbar--243 .vb-topbar__inner,
  .vb-topbar .vb-topbar__inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: space-evenly !important;
    align-items: center !important;
    gap: 0 !important;
    padding-inline: 16px !important;
    overflow: visible !important;
  }

  .vb-topbar--243 .vb-topbar__item,
  .vb-topbar .vb-topbar__item {
    position: relative !important;
    flex: 0 0 auto !important;
    min-width: 24px !important;
    max-width: 40px !important;
    gap: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
  }

  .vb-topbar--243 .vb-topbar__item > span,
  .vb-topbar .vb-topbar__item > span {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .vb-topbar--243 .vb-topbar__svg,
  .vb-topbar .vb-topbar__svg {
    width: 16px !important;
    height: 16px !important;
    flex: 0 0 16px !important;
  }

  /* Product information tabs were 16px wider than their 768px container. */
  .vb-theme .woocommerce-tabs ul.tabs,
  .vb-theme .wc-tabs {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  .vb-theme .woocommerce-tabs ul.tabs li,
  .vb-theme .wc-tabs li {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .vb-theme .woocommerce-tabs ul.tabs li a,
  .vb-theme .wc-tabs li a {
    width: 100% !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 14px !important;
    text-align: center !important;
    white-space: normal !important;
  }
}

@media (max-width: 620px) {
  body.vb-shop-premium-layout .vb-shop-hero,
  body.vb-shop-premium-layout .vb-shop-hero--242,
  body.tax-product_cat .vb-shop-hero,
  body.post-type-archive-product .vb-shop-hero {
    padding: 24px 20px 30px !important;
    gap: 20px !important;
  }

  body.vb-shop-premium-layout .vb-shop-hero h1,
  body.tax-product_cat .vb-shop-hero h1 {
    font-size: clamp(2.35rem, 13vw, 3.55rem) !important;
    line-height: .96 !important;
  }

  .vb-theme .vb-product-card h3,
  .vb-theme ul.products li.product .woocommerce-loop-product__title,
  .vb-theme .vb-bought-card h3 {
    min-height: 0 !important;
    font-size: 1.12rem !important;
    line-height: 1.25 !important;
  }

  body.vb-theme.single-product .product_title,
  body.vb-theme.single-product div.product .product_title,
  body.vb-theme.single-product .summary .product_title,
  body.vb-theme.single-product .product_title.entry-title {
    font-size: clamp(1.9rem, 9vw, 2.65rem) !important;
    line-height: 1 !important;
  }

  .vb-theme .woocommerce-tabs ul.tabs,
  .vb-theme .wc-tabs {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .vb-theme .entry-title,
  .vb-theme:not(.home) .entry-title {
    font-size: clamp(2.35rem, 12vw, 3.65rem) !important;
    line-height: .96 !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .vb-theme .vb-product-card h3,
  .vb-theme ul.products li.product .woocommerce-loop-product__title,
  .vb-theme .vb-bought-card h3 {
    font-size: 1.08rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vb-theme *,
  .vb-theme *::before,
  .vb-theme *::after {
    scroll-behavior: auto !important;
  }
}
