/* Olverin base stylesheet. Authored by Olverin Ventures for the OlverinEcom theme. Built from assets/css/parts/. */

/* ---- 00-tokens.css ---- */
/* ==========================================================================
   Olverin theme: design tokens
   Authored by Olverin Ventures. Values are measurements of the intended look
   (Tanning Rush / cosmetics setup). Colors that the Customizer controls are
   also written as inline CSS by olverin-core/inc/style.php, which overrides
   these defaults; keep the same visual role when adding tokens.
   ========================================================================== */
:root {
  /* Brand + text */
  --olv-primary: #f44c30;                 /* main color (Customizer: blonwe_main_color) */
  --olv-primary-rgb: 244, 76, 48;
  --olv-primary-soft: rgba(244, 76, 48, 0.1);
  --olv-accent: #f8c17f;                  /* warm accent used for badges/notification date */
  --olv-text: #1b1f22;                    /* rgb(27,31,34) body/heading text */
  --olv-text-rgb: 27, 31, 34;
  --olv-text-muted: rgba(27, 31, 34, 0.7);
  --olv-text-light: rgba(27, 31, 34, 0.55);
  --olv-white: #ffffff;
  --olv-bg: #ffffff;
  --olv-bg-gray: #f7f7f8;                 /* light gray layout rows */
  --olv-bg-baby-light: #fdf5f1;           /* footer "baby-light" layout */
  --olv-border: rgba(27, 31, 34, 0.1);    /* border-theme-10 */
  --olv-border-15: rgba(27, 31, 34, 0.15);
  --olv-border-strong: rgba(27, 31, 34, 0.2);
  --olv-success: #2f9e44;
  --olv-danger: #e53e3e;
  --olv-warning: #f59f00;
  --olv-info: #1c7ed6;
  --olv-star: #ffb400;
  --olv-sale: #f44c30;

  /* Typography (Customizer defaults: DM Sans body 16px, Crimson Text headings 600) */
  --olv-font-body: "DM Sans", sans-serif;
  --olv-font-heading: "Crimson Text", serif;
  --olv-font-menu: "DM Sans", sans-serif;
  --olv-font-size: 16px;
  --olv-line-height: 1.6;
  --olv-heading-weight: 600;
  --olv-heading-tracking: -0.01em;

  /* Shape */
  --olv-radius: 0px;                      /* border-radius base (Customizer: 0px) */
  --olv-radius-form: 2px;                 /* forms/buttons (Customizer: 2px) */
  --olv-radius-round: 999px;

  /* Layout */
  --olv-container: 1360px;                /* .container max width incl. 40px side padding */
  --olv-container-pad: 40px;
  --olv-gutter: 30px;
  --olv-header-topbar-h: 39px;
  --olv-header-main-h: 70px;
  --olv-header-bottom-h: 69px;
  --olv-mobile-header-h: 56px;
  --olv-mobile-bottom-h: 60px;

  /* Controls */
  --olv-btn-h: 46px;
  --olv-btn-h-sm: 38px;
  --olv-btn-px: 18px;
  --olv-btn-font: 15px;
  --olv-btn-weight: 600;
  --olv-input-h: 46px;
  --olv-input-bg: #ffffff;
  --olv-input-border: rgba(27, 31, 34, 0.15);

  /* Effects */
  --olv-shadow-sm: 0 1px 3px rgba(27, 31, 34, 0.08);
  --olv-shadow-md: 0 4px 14px rgba(27, 31, 34, 0.1);
  --olv-shadow-lg: 0 10px 34px rgba(27, 31, 34, 0.12);
  --olv-transition: 0.25s ease;
  --olv-z-header: 999;
  --olv-z-drawer: 9999999;
  --olv-z-modal: 99999;
}

/* ---- 01-reset-typography.css ---- */
/* ==========================================================================
   01 - Reset & typography
   Authored by Olverin Ventures for the OlverinEcom theme.
   Bootstrap 5 reboot is loaded before this file; only what changes the look
   is written here. Values measured from the reference renders (DM Sans 16px
   body, Crimson Text 600 headings, line-height 1.2, tracking -0.01em).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Document
   -------------------------------------------------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background-color: var(--olv-bg);
  color: var(--olv-text);
  font-family: var(--olv-font-body);
  font-size: var(--olv-font-size);
  font-weight: 400;
  line-height: var(--olv-line-height);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body.overflow-hidden,
body.drawer-open,
body.modal-open {
  overflow: hidden;
}
::selection {
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
:focus {
  outline: none;
}
:focus-visible {
  outline: 2px solid rgba(var(--olv-primary-rgb), 0.5);
  outline-offset: 2px;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Headings (Crimson Text 600, line-height 1.2, letter-spacing -0.01em)
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.entry-title,
.widget-title,
.product-title {
  margin-top: 0;
  margin-bottom: 0.5rem;
  color: inherit;
  font-family: var(--olv-font-heading);
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
}
h1, .h1 { font-size: calc(1.375rem + 1.5vw); }
h2, .h2 { font-size: calc(1.2rem + 0.5vw); }
h3, .h3 { font-size: 1.25rem; }
h4, .h4 { font-size: 1.125rem; }
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: 0.875rem; }
@media (min-width: 1200px) {
  h1, .h1 { font-size: 2.625rem; }   /* 42px page titles */
  h2, .h2 { font-size: 1.625rem; }   /* 26px section titles */
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
.entry-title a {
  color: inherit;
}
.entry-subtitle {
  font-family: var(--olv-font-heading);
  font-weight: 600;
  letter-spacing: var(--olv-heading-tracking);
  margin-bottom: 0.5rem;
}
.entry-description,
.entry-excerpt,
.entry-caption {
  color: inherit;
}
.entry-description > p:last-child,
.entry-excerpt > p:last-child {
  margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   Text elements
   -------------------------------------------------------------------------- */
p {
  margin-top: 0;
  margin-bottom: 1rem;
}
a {
  color: var(--olv-text);
  text-decoration: none;
  transition: color var(--olv-transition), background-color var(--olv-transition), border-color var(--olv-transition);
}
a:hover {
  color: var(--olv-primary);
}
strong, b { font-weight: 700; }
small, .small { font-size: 0.875em; }
mark { background-color: rgba(var(--olv-primary-rgb), 0.15); color: inherit; padding: 0 0.15em; }
hr {
  margin: 1.5rem 0;
  border: 0;
  border-top: 1px solid var(--olv-border);
  opacity: 1;
}
abbr[title] { text-decoration: underline dotted; cursor: help; }
sup, sub { font-size: 0.75em; }

/* Lists */
ul, ol {
  margin-top: 0;
  margin-bottom: 1rem;
  padding-left: 2rem;
}
ul ul, ol ol, ul ol, ol ul { margin-bottom: 0; }
nav ul,
.klb-menu,
.widget ul,
.site-social ul,
.site-application ul,
.products.list-style,
.list-unstyled {
  margin: 0;
  padding: 0;
  list-style: none;
}
dl { margin-bottom: 1rem; }
dt { font-weight: 600; }
dd { margin-bottom: 0.5rem; margin-left: 0; }

/* Blockquote */
blockquote,
.wp-block-quote {
  position: relative;
  margin: 1.5rem 0;
  padding: 1.25rem 1.5rem 1.25rem 2rem;
  border-left: 3px solid var(--olv-primary);
  background-color: var(--olv-bg-gray);
  font-family: var(--olv-font-heading);
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.5;
}
blockquote p:last-child,
.wp-block-quote p:last-child { margin-bottom: 0; }
blockquote cite,
.wp-block-quote cite {
  display: block;
  margin-top: 0.75rem;
  font-family: var(--olv-font-body);
  font-size: 0.8125rem;
  font-style: normal;
  font-weight: 500;
  opacity: 0.7;
}

/* Code */
code, kbd, pre, samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.875em;
}
code {
  padding: 0.1em 0.35em;
  border-radius: 3px;
  background-color: var(--olv-bg-gray);
  color: var(--olv-primary);
}
pre {
  margin: 0 0 1rem;
  padding: 1rem 1.25rem;
  overflow: auto;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-bg-gray);
  font-size: 0.875rem;
  line-height: 1.6;
}
pre code { padding: 0; background: none; color: inherit; }

/* Media */
img, svg, video {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
svg { height: 1em; width: 1em; fill: currentColor; }
figure { margin: 0 0 1rem; }
figcaption,
.wp-caption-text,
.wp-element-caption {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  opacity: 0.7;
  text-align: center;
}
iframe { max-width: 100%; border: 0; }

/* Tables (Bootstrap .table also applied by WooCommerce tables) */
table {
  width: 100%;
  margin-bottom: 1rem;
  border-collapse: collapse;
  caption-side: bottom;
  font-size: 0.9375rem;
  line-height: 1.5;
  vertical-align: top;
}
th, td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--olv-border);
  text-align: left;
  vertical-align: middle;
}
th, thead th {
  font-weight: 700;
}
tbody tr:last-child > td { border-bottom-color: var(--olv-border); }
.table > :not(caption) > * > * {
  border-bottom-color: var(--olv-border);
  box-shadow: none;
}

/* --------------------------------------------------------------------------
   WordPress core classes
   -------------------------------------------------------------------------- */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  border: 0;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  top: 5px;
  left: 5px;
  z-index: 100000;
  width: auto;
  height: auto;
  padding: 15px 23px 14px;
  clip: auto !important;
  clip-path: none;
  border-radius: 3px;
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-md);
  color: var(--olv-primary);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
}
.alignleft { float: left; margin: 0.4em 1.5em 1em 0; }
.alignright { float: right; margin: 0.4em 0 1em 1.5em; }
.aligncenter { display: block; clear: both; margin: 0 auto 1.5em; }
.alignnone { margin: 0 0 1.5em; }
.alignwide { margin-left: -40px; margin-right: -40px; max-width: none; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.wp-caption {
  max-width: 100%;
  margin-bottom: 1.5em;
}
.wp-caption img { display: block; }
.wp-caption.alignleft, .wp-caption.alignright { margin-bottom: 1em; }
.sticky { display: block; }
.bypostauthor { display: block; }
.gallery {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -8px 1.5em;
}
.gallery-item {
  margin: 0 0 16px;
  padding: 0 8px;
  width: 100%;
  text-align: center;
}
.gallery-columns-2 .gallery-item { width: 50%; }
.gallery-columns-3 .gallery-item { width: 33.333%; }
.gallery-columns-4 .gallery-item { width: 25%; }
.gallery-columns-5 .gallery-item { width: 20%; }
.gallery-columns-6 .gallery-item { width: 16.666%; }
.gallery-columns-7 .gallery-item { width: 14.285%; }
.gallery-columns-8 .gallery-item { width: 12.5%; }
.gallery-columns-9 .gallery-item { width: 11.111%; }
.gallery-caption {
  display: block;
  margin-top: 6px;
  font-size: 0.75rem;
  opacity: 0.7;
}
.post-password-form label { display: block; margin-bottom: 0.5rem; }
.post-password-form input[type="password"] { margin-right: 6px; }

/* Block editor basics */
.wp-block-image { margin-bottom: 1.5rem; }
.wp-block-image img { border-radius: var(--olv-radius); }
.wp-block-image figcaption { margin-bottom: 0; }
.wp-block-separator {
  border: 0;
  border-top: 1px solid var(--olv-border);
  margin: 2rem auto;
}
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; }
.wp-block-pullquote {
  margin: 2rem 0;
  padding: 2rem 0;
  border-top: 3px solid var(--olv-primary);
  border-bottom: 3px solid var(--olv-primary);
  text-align: center;
}
.wp-block-pullquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 1.5rem;
}
.wp-block-table table { margin-bottom: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: var(--olv-bg-gray); }
.wp-block-columns { margin-bottom: 1.5rem; }
.wp-block-group.has-background { padding: 1.5rem; }
.wp-block-cover { margin-bottom: 1.5rem; }
.wp-block-code { background-color: var(--olv-bg-gray); }
.wp-block-embed { margin-bottom: 1.5rem; }
.wp-block-embed .wp-block-embed__wrapper { position: relative; }
.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 56.25%; }
.wp-block-embed.wp-embed-aspect-16-9 iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.has-text-align-left { text-align: left; }
.has-small-font-size { font-size: 0.8125rem; }
.has-medium-font-size { font-size: 1.25rem; }
.has-large-font-size { font-size: 2.25rem; }
.has-huge-font-size, .has-x-large-font-size { font-size: 2.625rem; }
.wp-site-blocks .wp-block-group.is-layout-flex { padding: 60px 40px; text-align: center; }

/* --------------------------------------------------------------------------
   Page wrappers: header.php / index.php / page.php
   #page.page-content > #main.site-primary > #content.site-content
   -------------------------------------------------------------------------- */
.page-content {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.site-primary {
  flex: 1 0 0%;
  width: 100%;
}
.site-content {
  position: relative;
}
.site-content > .container > .content-area,
.site-content > .page-inner {
  position: relative;
}
/* Blog archive, shop/category, static pages: 40px above, 60px below (Elementor
   pages carry their own section spacing and use margin 0). */
.site-content > .page-inner,
.site-content > .site-content > .page-inner,
.site-content > .container > #primary.content-area {
  margin-top: 40px;
  margin-bottom: 60px;
}
.site-content > .elementor,
.site-content > .container > .elementor { margin: 0; }
.site-main { position: relative; }
.page-inner.page-default,
.page-inner.klb-blog,
.page-inner.klb-blog-single { position: relative; }
@media (max-width: 991.98px) {
  .site-content > .page-inner,
  .site-content > .site-content > .page-inner,
  .site-content > .container > #primary.content-area {
    margin-top: 20px;
    margin-bottom: 40px;
  }
}

/* Static page content (page.php) */
.page-default .entry-content > *:last-child,
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
  margin-top: 1.5rem;
}
.entry-content h1:first-child, .entry-content h2:first-child, .entry-content h3:first-child,
.entry-content h4:first-child, .entry-content h5:first-child, .entry-content h6:first-child {
  margin-top: 0;
}
.entry-content a:not(.button):not(.btn):not(.wp-block-button__link) {
  color: var(--olv-primary);
  text-decoration: underline;
  text-decoration-color: rgba(var(--olv-primary-rgb), 0.4);
  text-underline-offset: 2px;
}
.entry-content a:not(.button):not(.btn):not(.wp-block-button__link):hover {
  text-decoration-color: currentColor;
}

/* --------------------------------------------------------------------------
   Preloader: header.php (.site-loading > .preloading > svg.circular)
   Shown until the page loaded; JS removes it, hence the fade helper.
   -------------------------------------------------------------------------- */
.site-loading {
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--olv-bg);
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.site-loading.loaded,
.site-loading.hide,
body.loaded .site-loading {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.preloading {
  position: relative;
  width: 56px;
  height: 56px;
}
.preloading .circular {
  width: 100%;
  height: 100%;
  animation: olv-rotate 2s linear infinite;
  transform-origin: center center;
}
.preloading .path {
  stroke: var(--olv-primary);
  stroke-dasharray: 1, 200;
  stroke-dashoffset: 0;
  stroke-linecap: round;
  animation: olv-dash 1.5s ease-in-out infinite;
}
@keyframes olv-rotate { 100% { transform: rotate(360deg); } }
@keyframes olv-dash {
  0%   { stroke-dasharray: 1, 200; stroke-dashoffset: 0; }
  50%  { stroke-dasharray: 89, 200; stroke-dashoffset: -35px; }
  100% { stroke-dasharray: 89, 200; stroke-dashoffset: -124px; }
}

/* --------------------------------------------------------------------------
   Scroll helpers (.site-scroll: perfect-scrollbar containers, drawers, lists)
   -------------------------------------------------------------------------- */
.site-scroll {
  position: relative;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--olv-text-rgb), 0.2) transparent;
}
.site-scroll.ps { overflow: hidden; }
.site-scroll::-webkit-scrollbar { width: 5px; height: 5px; }
.site-scroll::-webkit-scrollbar-track { background: transparent; }
.site-scroll::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(var(--olv-text-rgb), 0.2);
}
.site-scroll::-webkit-scrollbar-thumb:hover { background-color: rgba(var(--olv-text-rgb), 0.35); }
.ps__rail-y, .ps__rail-x { z-index: 5; }
.ps__thumb-y, .ps__thumb-x { background-color: rgba(var(--olv-text-rgb), 0.25); }
.hide-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.hide-scrollbar::-webkit-scrollbar { display: none; }

/* Skip to top */
.site-scroll-top,
.scroll-to-top,
.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-md);
  color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--olv-transition), visibility var(--olv-transition), transform var(--olv-transition);
  transform: translateY(10px);
}
.site-scroll-top.show,
.scroll-to-top.show,
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: none;
}

/* ---- 02-buttons-forms.css ---- */
/* ==========================================================================
   02 - Buttons & forms
   Authored by Olverin Ventures for the OlverinEcom theme.
   Measured: buttons 46px (2px transparent border, 42px line), 15px/600,
   tracking -0.01em, radius 2px; `.btn` widget buttons 40px 13px/600;
   inputs 46px, #f1f3f5 fill, transparent 1px border, 15px/500, focus ring
   1px primary; custom checkbox 17px, radius 4px.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Base button: .button / button / input[type=submit] (WooCommerce, templates)
   -------------------------------------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  font-family: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.button,
button.button,
input[type="submit"],
.wp-block-button__link,
.wc-block-components-button,
.klb-readmore,
.button.alt {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: var(--olv-btn-h);
  padding: 0 var(--olv-btn-px);
  border: 2px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-family: var(--olv-font-body);
  font-size: var(--olv-btn-font);
  font-weight: var(--olv-btn-weight);
  line-height: calc(var(--olv-btn-h) - 4px);
  letter-spacing: -0.01em;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.button:hover,
button.button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.button.alt:hover {
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(var(--olv-primary-rgb), 0.3);
}
.button i,
.btn i {
  font-size: 1.1em;
  line-height: 1;
}
.button.icon-right i,
.btn.icon-right i { order: 2; margin-left: 7px; }
.button.icon-left i,
.btn.icon-left i { order: -1; margin-right: 7px; }
.button > .button-text,
.btn > .button-text { display: inline-block; }

/* Sizes */
.button.sm,
.button.small,
.button-sm,
.btn-sm.button {
  height: var(--olv-btn-h-sm);
  padding: 0 14px;
  font-size: 13px;
  line-height: calc(var(--olv-btn-h-sm) - 4px);
}
.button.lg,
.button.large,
.button-lg {
  height: 50px;
  padding: 0 28px;
  font-size: 16px;
  line-height: 46px;
}
.button.full,
.button.block,
.button.w-100 { display: flex; width: 100%; }
.button.rounded,
.button.radius-rounded,
.button.rounded-5,
.btn.radius-rounded { border-radius: var(--olv-radius-round); }
.button.square { border-radius: 0; }

/* Color variants: .button.primary|secondary|outline|success|dark|white|link */
.button.primary { background-color: var(--olv-primary); color: var(--olv-white); }
.button.primary:hover { background-color: var(--olv-text); }
.button.secondary,
.button.gray,
.button.light,
.button.wc-backward,
.woocommerce-message .button.wc-forward,
.button.empty-cart-button {
  background-color: #e6e8eb;
  color: var(--olv-text);
}
.button.secondary:hover,
.button.gray:hover,
.button.light:hover,
.button.wc-backward:hover,
.woocommerce-message .button.wc-forward:hover {
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.button.dark,
.button.black { background-color: var(--olv-text); color: var(--olv-white); }
.button.dark:hover,
.button.black:hover { background-color: var(--olv-primary); }
.button.white { background-color: var(--olv-white); color: var(--olv-text); }
.button.white:hover { background-color: var(--olv-text); color: var(--olv-white); }
.button.success,
.button.green,
.single_add_to_cart_button.button.alt { background-color: var(--olv-success); color: var(--olv-white); }
.button.success:hover,
.button.green:hover,
.single_add_to_cart_button.button.alt:hover { background-color: var(--olv-text); }
.button.danger,
.button.red { background-color: var(--olv-danger); color: var(--olv-white); }
.button.danger:hover { background-color: var(--olv-text); }
.button.info,
.button.blue { background-color: var(--olv-info); color: var(--olv-white); }
.button.info:hover { background-color: var(--olv-text); }
.button.outline,
.button.empty-cart-button {
  border-width: 1px;
  border-color: rgba(var(--olv-text-rgb), 0.2);
  background-color: transparent;
  color: var(--olv-text);
  line-height: calc(var(--olv-btn-h) - 2px);
}
.button.outline:hover { border-color: var(--olv-text); background-color: var(--olv-text); color: var(--olv-white); }
.button.primary.outline { border-color: var(--olv-primary); color: var(--olv-primary); }
.button.primary.outline:hover { background-color: var(--olv-primary); color: var(--olv-white); }
a.button.success.outline,
.button.success.outline { border-color: var(--olv-success); color: var(--olv-success); }
a.button.success.outline:hover,
.button.success.outline:hover { background-color: var(--olv-success); color: var(--olv-white); }
.button.white.outline { border-color: var(--olv-white); color: var(--olv-white); }
.button.white.outline:hover { background-color: var(--olv-white); color: var(--olv-text); }
.button.link,
.button.text {
  height: auto;
  padding: 0;
  border: 0;
  background: none;
  color: var(--olv-text);
  line-height: 1.4;
}
.button.link:hover,
.button.text:hover { background: none; color: var(--olv-primary); }

/* Loading / disabled states (WooCommerce adds .loading, .added, .disabled) */
.button:disabled,
.button.disabled,
button:disabled,
input[type="submit"]:disabled,
.button[aria-disabled="true"] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.button.loading,
.btn.loading {
  color: transparent;
  pointer-events: none;
}
.button.loading::after,
.btn.loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: var(--olv-white);
  border-radius: 50%;
  animation: olv-rotate 0.7s linear infinite;
}
.button.outline.loading::after,
.button.link.loading::after {
  border-color: rgba(var(--olv-text-rgb), 0.2);
  border-top-color: var(--olv-text);
}
.button.loading > i,
.btn.loading > i { visibility: hidden; }

/* WordPress button block */
.wp-block-button { margin-bottom: 1rem; }
.wp-block-button.is-style-outline .wp-block-button__link {
  border-width: 1px;
  border-color: currentColor;
  background: transparent;
  color: var(--olv-text);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background-color: var(--olv-text); color: var(--olv-white); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.wp-block-buttons .wp-block-button { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Widget buttons `.btn` (Elementor widgets: banners, text blocks, press box)
   40px 13px/600, radius 2px; `.black.outline` 42px 15px; `.radius-rounded` 35px
   -------------------------------------------------------------------------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 18px;
  min-height: 40px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: transparent;
  color: var(--olv-text);
  font-family: var(--olv-font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.btn.icon-right { padding-right: 14px; }
.btn.icon-left { padding-left: 14px; }
.btn > i { font-size: 16px; }
.btn.icon-right > i { margin-left: 7px; }
.btn.icon-left > i { margin-right: 7px; order: -1; }
.btn:hover { color: var(--olv-primary); }
.btn.primary { background-color: var(--olv-primary); border-color: transparent; color: var(--olv-white); }
.btn.primary:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.secondary { background-color: #e6e8eb; color: var(--olv-text); }
.btn.secondary:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.black,
.btn.dark { background-color: var(--olv-text); color: var(--olv-white); }
.btn.black:hover,
.btn.dark:hover { background-color: var(--olv-primary); color: var(--olv-white); }
.btn.white { background-color: var(--olv-white); color: var(--olv-text); }
.btn.white:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.blue { background-color: var(--olv-info); color: var(--olv-white); }
.btn.blue:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.green,
.btn.success { background-color: var(--olv-success); color: var(--olv-white); }
.btn.green:hover,
.btn.success:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.red,
.btn.danger { background-color: var(--olv-danger); color: var(--olv-white); }
.btn.red:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.default { background-color: var(--olv-bg-gray); color: var(--olv-text); }
.btn.outline {
  min-height: 42px;
  background-color: transparent;
  border-color: currentColor;
  font-size: 15px;
  line-height: 28px;
}
.btn.black.outline,
.btn.dark.outline,
.btn.default.outline { border-color: var(--olv-text); color: var(--olv-text); }
.btn.black.outline:hover,
.btn.dark.outline:hover,
.btn.default.outline:hover { background-color: var(--olv-text); color: var(--olv-white); }
.btn.white.outline { border-color: var(--olv-white); color: var(--olv-white); }
.btn.white.outline:hover { background-color: var(--olv-white); color: var(--olv-text); }
.btn.primary.outline { border-color: var(--olv-primary); color: var(--olv-primary); }
.btn.primary.outline:hover { background-color: var(--olv-primary); color: var(--olv-white); }
.btn.link,
.btn.text {
  min-height: 0;
  padding: 0;
  border-color: transparent;
  background: none;
  font-size: 14px;
  line-height: 1.45;
}
.btn.link:hover,
.btn.text:hover { color: var(--olv-primary); }
.btn.link.icon-right > i,
.btn.text.icon-right > i { transition: transform 0.2s ease; }
.btn.link:hover > i,
.btn.text:hover > i { transform: translateX(3px); }
.btn.radius-rounded {
  min-height: 35px;
  padding: 6px 14px;
  border-radius: var(--olv-radius-round);
}
.btn.radius-rounded.icon-right { padding-right: 10px; }
.btn.lg { min-height: 46px; padding: 6px 24px; font-size: 15px; }
.btn.sm { min-height: 32px; padding: 4px 12px; font-size: 12px; }
.btn.full { display: flex; width: 100%; }
.btn:disabled,
.btn.disabled { opacity: 0.5; pointer-events: none; }
/* Bootstrap's own .btn:focus ring is dropped in favour of the theme ring */
.btn:focus,
.btn:focus-visible { box-shadow: 0 0 0 3px rgba(var(--olv-primary-rgb), 0.25); }

/* --------------------------------------------------------------------------
   Form controls
   -------------------------------------------------------------------------- */
label {
  display: inline-block;
  margin-bottom: 5px;
  font-size: 13px;
  line-height: 1.5;
}
label .required,
.required { color: var(--olv-danger); text-decoration: none; }
.optional { opacity: 0.6; font-size: 12px; }
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input.input-text,
input.form-control,
input.form_control,
textarea,
textarea.form-control,
select,
.form-control,
.form-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  display: block;
  width: 100%;
  height: var(--olv-input-h);
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  color: var(--olv-text);
  font-family: var(--olv-font-body);
  font-size: 15px;
  font-weight: 500;
  line-height: calc(var(--olv-input-h) - 2px);
  letter-spacing: -0.01em;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
textarea,
textarea.form-control {
  height: auto;
  min-height: 150px;
  padding: 12px;
  line-height: 1.5;
  resize: vertical;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input.input-text:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
  outline: 0;
  border-color: transparent;
  background-color: #f1f3f5;
  color: var(--olv-text);
  box-shadow: 0 0 0 1px var(--olv-primary);
}
::placeholder {
  color: rgba(var(--olv-text-rgb), 0.5);
  opacity: 1;
}
input:-webkit-autofill,
input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #f1f3f5 inset;
  -webkit-text-fill-color: var(--olv-text);
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
input[type="number"] { -moz-appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input:disabled,
textarea:disabled,
select:disabled,
.form-control:disabled { opacity: 0.6; cursor: not-allowed; }
input[readonly].form-control { background-color: var(--olv-bg-gray); }

/* Native select & Bootstrap form-select: chevron on the right */
select,
.form-select {
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b1f22' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 16px 16px;
  cursor: pointer;
}
select[multiple],
select[size] { height: auto; padding: 8px 12px; background-image: none; }
select option { font-weight: 400; }

/* Select2 restyle (checkout country/state, variation selects) */
.select2-container { width: 100% !important; }
.select2-container--default .select2-selection--single {
  display: inline-flex;
  align-items: center;
  padding: 0 12px 0 4px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-left: 11px;
  padding-right: 30px;
  color: var(--olv-text);
  font-size: 15px;
  font-weight: 500;
  line-height: calc(var(--olv-input-h) - 4px);
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: rgba(var(--olv-text-rgb), 0.5); }
.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 1px;
  right: 1px;
  width: 30px;
  height: calc(var(--olv-input-h) - 4px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b1f22' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b { display: none; }
.select2-container--default .select2-selection--single .select2-selection__clear {
  margin-right: 6px;
  font-weight: 400;
  color: rgba(var(--olv-text-rgb), 0.6);
}
.select2-container--default .select2-selection--multiple {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  height: auto;
  min-height: var(--olv-input-h);
  padding: 4px 8px;
  line-height: 1.5;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  margin: 0;
  padding: 2px 8px;
  border: 0;
  border-radius: 3px;
  background-color: var(--olv-white);
  font-size: 13px;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { margin-right: 4px; color: inherit; }
.select2-dropdown {
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-md);
  overflow: hidden;
  z-index: 100000;
}
.select2-container--default .select2-search--dropdown { padding: 8px; }
.select2-container--default .select2-search--dropdown .select2-search__field {
  height: 38px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  font-size: 14px;
  outline: 0;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus { box-shadow: 0 0 0 1px var(--olv-primary); }
.select2-results__option {
  padding: 8px 12px;
  font-size: 14px;
  line-height: 1.4;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected {
  background-color: var(--olv-bg-gray);
  color: var(--olv-text);
}
.select2-container--default .select2-results > .select2-results__options { max-height: 260px; }

/* Checkbox & radio: custom 17px box, #f1f3f5, radius 4px; checked = primary */
input[type="checkbox"],
input[type="radio"] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  margin: 0 8px 0 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background-color: transparent;
  vertical-align: middle;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]::after,
input[type="radio"]::after {
  content: "";
  display: block;
  width: 17px;
  height: 17px;
  border-radius: inherit;
  background-color: #f1f3f5;
  box-shadow: inset 0 0 0 1px rgba(var(--olv-text-rgb), 0.08);
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
input[type="checkbox"]:hover::after,
input[type="radio"]:hover::after { box-shadow: inset 0 0 0 1px rgba(var(--olv-text-rgb), 0.3); }
input[type="checkbox"]:checked::after {
  background-color: var(--olv-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10-10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 11px 11px;
  box-shadow: none;
}
input[type="radio"]:checked::after {
  background-color: var(--olv-white);
  box-shadow: inset 0 0 0 5px var(--olv-primary);
}
input[type="checkbox"]:focus-visible::after,
input[type="radio"]:focus-visible::after { box-shadow: 0 0 0 2px rgba(var(--olv-primary-rgb), 0.35); }
input[type="checkbox"]:disabled,
input[type="radio"]:disabled { opacity: 0.5; cursor: not-allowed; }
.woocommerce-form__label-for-checkbox,
label.checkbox,
label.radio,
.form-check {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  margin-bottom: 0;
  font-size: 13px;
  line-height: 1.5;
  cursor: pointer;
}
.woocommerce-form__label-for-checkbox input,
.woocommerce-form__label-for-checkbox span { vertical-align: middle; }
.form-check { padding-left: 0; }
.form-check .form-check-input { float: none; margin-left: 0; }
.form-check-input:checked { background-color: transparent; border: 0; }
.form-check-label { cursor: pointer; }

/* Form rows (WooCommerce .form-row, theme .form-row / .form-group) */
.form-row,
.form-group,
.wpcf7 p,
.comment-form p {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.form-row.form-row-wide,
.form-row-wide { width: 100%; }
.form-row > label,
.form-group > label,
.wpcf7 p > label,
.comment-form p > label {
  width: 100%;
  margin-bottom: 5px;
}
.form-row > input,
.form-row > textarea,
.form-row > select,
.form-row > .woocommerce-input-wrapper,
.form-row > .password-input,
.form-row > .select2-container,
.wpcf7-form-control-wrap {
  width: 100%;
}
.wpcf7-form-control-wrap { display: block; position: relative; }
.form-row-first,
.form-row-last {
  width: calc(50% - 8px);
}
.form-row-last { margin-left: 16px; }
.form-row.woocommerce-invalid input,
.form-row.woocommerce-invalid select,
.form-row.woocommerce-invalid .select2-selection--single,
.wpcf7-not-valid,
.form-control.is-invalid,
input.error,
textarea.error {
  box-shadow: 0 0 0 1px var(--olv-danger);
}
.form-row.woocommerce-validated input,
.form-row.woocommerce-validated select,
.form-control.is-valid {
  box-shadow: 0 0 0 1px var(--olv-success);
}
.wpcf7-not-valid-tip,
.invalid-feedback,
.error-text {
  display: block;
  width: 100%;
  margin-top: 4px;
  color: var(--olv-danger);
  font-size: 12px;
}
.wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 16px;
  border: 1px solid var(--olv-border-15);
  border-radius: var(--olv-radius-form);
  font-size: 14px;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--olv-success); color: var(--olv-success); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { border-color: var(--olv-danger); color: var(--olv-danger); }
.wpcf7 .wpcf7-spinner { margin: 0 12px; }
.wpcf7-submit { width: auto; }
.password-input {
  position: relative;
  display: flex;
}
.password-input input { padding-right: 46px; }
.show-password-input {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: var(--olv-input-h);
  border: 0;
  background: none;
  color: var(--olv-text);
  opacity: 0.6;
  cursor: pointer;
}
.show-password-input::after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12a2 2 0 1 0 4 0a2 2 0 0 0-4 0'/%3E%3Cpath d='M21 12c-2.4 4-5.4 6-9 6c-3.6 0-6.6-2-9-6c2.4-4 5.4-6 9-6c3.6 0 6.6 2 9 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12a2 2 0 1 0 4 0a2 2 0 0 0-4 0'/%3E%3Cpath d='M21 12c-2.4 4-5.4 6-9 6c-3.6 0-6.6-2-9-6c2.4-4 5.4-6 9-6c3.6 0 6.6 2 9 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.show-password-input.display-password { opacity: 1; }
fieldset { margin: 0 0 1rem; padding: 0; border: 0; }
legend {
  float: none;
  width: auto;
  margin-bottom: 10px;
  font-family: var(--olv-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Search forms: searchform.php (.search-form > .form_control + button) and
   header search (.search-form.form-style-primary: header package sets layout,
   base gives the filled field look)
   -------------------------------------------------------------------------- */
.search_form .search-form,
.search-form {
  position: relative;
  display: flex;
  align-items: center;
}
.search_form .search-form .form_control,
.search-form .form_control,
.search-form .search-input,
.search-form .search-field {
  flex: 1 1 auto;
  padding-right: 48px;
}
.search_form .search-form > button,
.search-form > button[type="submit"],
.search-form .search-button {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: var(--olv-text);
  font-size: 18px;
  cursor: pointer;
}
.search-form > button[type="submit"]:hover,
.search_form .search-form > button:hover { color: var(--olv-primary); }
.search-form.form-style-primary .form-control { background-color: #f1f3f5; }
.search-form.form-style-primary .form-control:focus { box-shadow: 0 0 0 1px var(--olv-primary); }
.widget_product_search .woocommerce-product-search,
.widget_search .search-form { position: relative; }
.woocommerce-product-search { display: flex; position: relative; }
.woocommerce-product-search .search-field { padding-right: 48px; }
.woocommerce-product-search button {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  padding: 0 14px;
  border: 0;
  background: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--olv-text);
}
.woocommerce-product-search button:hover { color: var(--olv-primary); }

/* --------------------------------------------------------------------------
   Newsletter forms: footer-type1/2 (.newsletter-form) and MC4WP / theme
   subscribe shortcode: input + submit button in one row
   -------------------------------------------------------------------------- */
.newsletter-form form,
.newsletter-form .mc4wp-form-fields,
.klb-newsletter-form form {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.newsletter-form form > p,
.newsletter-form .mc4wp-form-fields > p {
  display: flex;
  flex: 1 1 100%;
  gap: 10px;
  margin: 0;
}
.newsletter-form input[type="email"],
.newsletter-form input[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  background-color: var(--olv-white);
  border-color: rgba(var(--olv-text-rgb), 0.15);
}
.newsletter-form input[type="email"]:focus { border-color: transparent; }
.newsletter-form input[type="submit"],
.newsletter-form button[type="submit"] {
  flex: 0 0 auto;
  height: var(--olv-input-h);
}
.newsletter-form .mc4wp-response,
.newsletter-form .mc4wp-alert {
  width: 100%;
  margin-top: 8px;
  font-size: 13px;
}
.newsletter-form .mc4wp-error { color: var(--olv-danger); }
.newsletter-form .mc4wp-success { color: var(--olv-success); }
.newsletter-form label { display: none; }
@media (max-width: 575.98px) {
  .newsletter-form form > p,
  .newsletter-form .mc4wp-form-fields > p { flex-wrap: wrap; }
  .newsletter-form input[type="submit"],
  .newsletter-form button[type="submit"] { flex: 1 1 100%; width: 100%; }
}

/* --------------------------------------------------------------------------
   Quantity input: woocommerce/global/quantity-input.php and
   includes/woocommerce/add-to-cart.php (.quantity > .quantity-button + .qty)
   Measured: 106x46, border #dfe2e6, radius 2px, buttons 32px, field 40px.
   -------------------------------------------------------------------------- */
.quantity {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 106px;
  height: var(--olv-input-h);
  padding: 0 32px;
  border: 1px solid #dfe2e6;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  box-shadow: 0 1px 2px rgba(var(--olv-text-rgb), 0.04);
  vertical-align: middle;
  flex-shrink: 0;
}
.quantity .qty,
.quantity input.qty,
.quantity input.input-text.qty {
  width: 40px;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  -moz-appearance: textfield;
}
.quantity .qty:focus { box-shadow: none; }
.quantity .quantity-button {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  font-size: 14px;
  color: var(--olv-text);
  cursor: pointer;
  user-select: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}
.quantity .quantity-button.minus { left: 0; }
.quantity .quantity-button.plus { right: 0; }
.quantity .quantity-button:hover { color: var(--olv-primary); }
.quantity .quantity-button.disabled { opacity: 0.35; pointer-events: none; }
.quantity .quantity-button i { font-size: 14px; }
.quantity.hidden { display: none; }
.quantity.sm,
.quantity.small { width: 90px; height: 36px; padding: 0 26px; }
.quantity.sm .quantity-button { width: 26px; }
.quantity.sm .qty { width: 36px; font-size: 13px; }
/* Ajax quantity box in product cards (add-to-cart.php: .cart-with-quantity) */
.product-buttons .quantity.ajax-quantity { height: 40px; }
.product-buttons.cart-with-quantity {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ---- 03-utilities-layout.css ---- */
/* ==========================================================================
   03 - Utilities & shared layout
   Authored by Olverin Ventures for the OlverinEcom theme.
   Helper classes used by header/footer types, Elementor widgets and the
   WooCommerce templates; shared components (breadcrumb, notices, rating,
   price, badges, pagination, modal shell, social lists).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Container: Bootstrap's .container overridden to the measured 1360px max
   width with 40px side padding (1280px content), 15px on phones; rows use
   the theme's 30px gutter (.row.content-wrapper margin -15px).
   -------------------------------------------------------------------------- */
.container,
.container-fluid,
.container-lg,
.container-xl,
.container-xxl {
  --bs-gutter-x: 30px;
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
  margin-left: auto;
  margin-right: auto;
}
.container,
.container-lg,
.container-xl,
.container-xxl {
  max-width: var(--olv-container);
}
@media (min-width: 768px) {
  .container,
  .container-fluid,
  .container-lg,
  .container-xl,
  .container-xxl {
    padding-left: var(--olv-container-pad);
    padding-right: var(--olv-container-pad);
  }
}
.row { --bs-gutter-x: var(--olv-gutter); }
.row.content-wrapper { margin-left: -15px; margin-right: -15px; }
.row.content-wrapper > .col,
.row.content-wrapper > [class*="col-"] { padding-left: 15px; padding-right: 15px; }

/* --------------------------------------------------------------------------
   Color schemes (text) and layouts (background) — header/footer rows,
   drawers, banners: includes/header/*, includes/footer/*
   -------------------------------------------------------------------------- */
.color-scheme-dark { color: var(--olv-text); }
.color-scheme-white { color: var(--olv-white); }
.color-scheme-light { color: rgba(255, 255, 255, 0.85); }
.color-scheme-white a,
.color-scheme-light a { color: inherit; }
.color-scheme-white a:hover,
.color-scheme-light a:hover { color: var(--olv-white); opacity: 0.8; }
.color-scheme-dark a { color: inherit; }
.color-scheme-dark a:hover { color: var(--olv-primary); }

.color-layout-white { background-color: var(--olv-white); }
.color-layout-light-gray,
.color-layout-light { background-color: var(--olv-bg-gray); }
.color-layout-baby-light { background-color: var(--olv-bg-baby-light); }
.color-layout-dark { background-color: #1b1f22; }
.color-layout-black { background-color: #000; }
.color-layout-primary,
.color-layout-theme { background-color: var(--olv-primary); }
.color-layout-transparent { background-color: transparent; }
.color-layout-image {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.color-layout-custom { background-color: var(--olv-layout-custom, var(--olv-white)); }
[class*="color-layout-"] {
  background-size: cover;
  background-repeat: no-repeat;
}

/* Text colors used by widgets (.color-primary, .color-gray, ...) */
.color-primary { color: var(--olv-primary); }
.color-secondary { color: #4b5563; }
.color-text { color: var(--olv-text); }
.color-text-lighter { color: var(--olv-text-light); }
.color-dark-gray,
.color-gray { color: #768088; }
.color-light { color: rgba(var(--olv-text-rgb), 0.55); }
.color-white { color: var(--olv-white); }
.color-black { color: #000; }
.color-red,
.color-danger { color: var(--olv-danger); }
.color-green,
.color-success { color: #40c057; }
.color-blue { color: #228be6; }
.color-orange { color: #f59f00; }
.color-theme { color: var(--olv-primary); }

/* --------------------------------------------------------------------------
   Borders: bordered-top|bottom (on the row) and -inner (on the .container
   child) with border-theme-NN alpha
   -------------------------------------------------------------------------- */
.bordered-top { border-top: 1px solid var(--olv-border); }
.bordered-bottom { border-bottom: 1px solid var(--olv-border); }
.bordered-top-inner > .container > *:first-child,
.bordered-top-inner > .container > .footer-inner,
.bordered-top-inner > .container > .header-inner { border-top: 1px solid var(--olv-border); }
.bordered-bottom-inner > .container > *:first-child,
.bordered-bottom-inner > .container > .footer-inner,
.bordered-bottom-inner > .container > .header-inner { border-bottom: 1px solid var(--olv-border); }
.border-theme-10,
.border-theme-10 > .container > * { border-color: rgba(var(--olv-text-rgb), 0.1); }
.border-theme-15,
.border-theme-15 > .container > * { border-color: rgba(var(--olv-text-rgb), 0.15); }
.border-theme-20,
.border-theme-20 > .container > * { border-color: rgba(var(--olv-text-rgb), 0.2); }
.color-scheme-white.border-theme-10,
.color-scheme-white.border-theme-10 > .container > * { border-color: rgba(255, 255, 255, 0.1); }
.color-scheme-white.border-theme-15,
.color-scheme-white.border-theme-15 > .container > * { border-color: rgba(255, 255, 255, 0.15); }
.color-scheme-white.border-theme-20,
.color-scheme-white.border-theme-20 > .container > * { border-color: rgba(255, 255, 255, 0.2); }
.bordered { border: 1px solid var(--olv-border); }
.border-gray { border-color: var(--olv-border); }
.rounded-style { border-radius: var(--olv-radius-round); }
.radius-base { border-radius: var(--olv-radius); }
.radius-form { border-radius: var(--olv-radius-form); }
.radius-rounded { border-radius: var(--olv-radius-round); }

/* --------------------------------------------------------------------------
   Viewport visibility helpers: min-NNN shows from that width, max-NNN hides
   from it (header-desktop.min-1200 / header-mobile.max-1200, drawers, modal
   banner .min-1024, per-page .hide-mobile ...)
   -------------------------------------------------------------------------- */
.min-576, .min-768, .min-992, .min-1024, .min-1200, .min-1400 { display: none; }
@media (min-width: 576px)  { .min-576  { display: block; } .max-576  { display: none; } }
@media (min-width: 768px)  { .min-768  { display: block; } .max-768  { display: none; } }
@media (min-width: 992px)  { .min-992  { display: block; } .max-992  { display: none; } }
@media (min-width: 1024px) { .min-1024 { display: block; } .max-1024 { display: none; } }
@media (min-width: 1200px) { .min-1200 { display: block; } .max-1200 { display: none; } }
@media (min-width: 1400px) { .min-1400 { display: block; } .max-1400 { display: none; } }
/* max-NNN with a 3-digit value is a max-width helper (text-block excerpts) */
.max-420 { max-width: 420px; } .max-520 { max-width: 520px; } .max-640 { max-width: 640px; }
.max-720 { max-width: 720px; } .max-920 { max-width: 920px; } .max-w-1200 { max-width: 1200px; }
.text-center > .max-420, .text-center > .max-520, .text-center > .max-640,
.text-center > .max-720, .text-center > .max-920 { margin-left: auto; margin-right: auto; }
.not-opacity { opacity: 1; }
.letter-spacing-1 { letter-spacing: 1px; }
.color-gray-500 { color: #adb5bd; }
.overlay-link { position: absolute; inset: 0; z-index: 8; }
@media (max-width: 991.98px) { .hide-mobile { display: none; } }
@media (min-width: 992px)  { .hide-desktop { display: none; } }
/* flex-typed rows keep their display when shown */
@media (min-width: 576px)  { .d-flex.min-576, .min-576.d-flex, .min-576.d-inline-flex { display: flex; } }
@media (min-width: 768px)  { .min-768.d-flex, .min-768.d-inline-flex { display: flex; } }
@media (min-width: 992px)  { .min-992.d-flex, .min-992.d-inline-flex { display: flex; } }
@media (min-width: 1024px) { .min-1024.d-flex, .min-1024.d-inline-flex { display: flex; } }
@media (min-width: 1200px) { .min-1200.d-flex, .min-1200.d-inline-flex { display: flex; } }

/* --------------------------------------------------------------------------
   Typography helpers: font-NN (fixed), font-sm/md-NN (from 576/1200),
   weight-NNN, lh-*
   -------------------------------------------------------------------------- */
.font-10 { font-size: 10px; } .font-11 { font-size: 11px; } .font-12 { font-size: 12px; }
.font-13 { font-size: 13px; } .font-14 { font-size: 14px; } .font-15 { font-size: 15px; }
.font-16 { font-size: 16px; } .font-17 { font-size: 17px; } .font-18 { font-size: 18px; }
.font-19 { font-size: 19px; } .font-20 { font-size: 20px; } .font-22 { font-size: 22px; }
.font-24 { font-size: 24px; } .font-26 { font-size: 26px; } .font-28 { font-size: 28px; }
.font-30 { font-size: 30px; } .font-32 { font-size: 32px; } .font-34 { font-size: 34px; }
.font-36 { font-size: 36px; } .font-40 { font-size: 40px; } .font-42 { font-size: 42px; }
.font-48 { font-size: 48px; } .font-56 { font-size: 56px; }
/* Large md sizes fall back to a smaller mobile size (measured 22px for 42,
   Bootstrap-like fluid for 56/66) until the md breakpoint. */
.font-md-40, .font-md-42, .font-md-46, .font-md-48 { font-size: 22px; }
.font-md-50, .font-md-52, .font-md-54, .font-md-56 { font-size: calc(1.325rem + 0.9vw); }
.font-md-60, .font-md-66, .font-md-76 { font-size: 30px; }
.font-md-30, .font-md-32, .font-md-34, .font-md-36 { font-size: 20px; }
.font-md-24, .font-md-26, .font-md-28 { font-size: 18px; }
@media (min-width: 576px) {
  .font-sm-14 { font-size: 14px; } .font-sm-15 { font-size: 15px; } .font-sm-16 { font-size: 16px; }
  .font-sm-18 { font-size: 18px; } .font-sm-20 { font-size: 20px; } .font-sm-22 { font-size: 22px; }
  .font-sm-24 { font-size: 24px; } .font-sm-26 { font-size: 26px; } .font-sm-28 { font-size: 28px; }
  .font-sm-30 { font-size: 30px; } .font-sm-32 { font-size: 32px; } .font-sm-36 { font-size: 36px; }
}
@media (min-width: 1200px) {
  .font-md-11 { font-size: 11px; } .font-md-12 { font-size: 12px; } .font-md-13 { font-size: 13px; }
  .font-md-14 { font-size: 14px; } .font-md-15 { font-size: 15px; } .font-md-16 { font-size: 16px; }
  .font-md-17 { font-size: 17px; } .font-md-18 { font-size: 18px; } .font-md-20 { font-size: 20px; }
  .font-md-22 { font-size: 22px; } .font-md-24 { font-size: 24px; } .font-md-26 { font-size: 26px; }
  .font-md-28 { font-size: 28px; } .font-md-30 { font-size: 30px; } .font-md-32 { font-size: 32px; }
  .font-md-34 { font-size: 34px; } .font-md-36 { font-size: 36px; } .font-md-40 { font-size: 40px; }
  .font-md-42 { font-size: 42px; } .font-md-46 { font-size: 46px; } .font-md-48 { font-size: 48px; }
  .font-md-50 { font-size: 50px; } .font-md-52 { font-size: 52px; } .font-md-54 { font-size: 54px; }
  .font-md-56 { font-size: 56px; } .font-md-60 { font-size: 60px; } .font-md-66 { font-size: 66px; }
  .font-md-76 { font-size: 76px; }
}
.weight-300 { font-weight: 300; } .weight-400 { font-weight: 400; } .weight-500 { font-weight: 500; }
.weight-600 { font-weight: 600; } .weight-700 { font-weight: 700; } .weight-800 { font-weight: 800; }
.lh-1 { line-height: 1; } .lh-1-1 { line-height: 1.1; } .lh-1-2 { line-height: 1.2; }
.lh-1-3 { line-height: 1.3; } .lh-1-4 { line-height: 1.4; } .lh-1-5 { line-height: 1.5; }
.text-align-left, .text-left { text-align: left; }
.text-align-center, .text-center { text-align: center; }
.text-align-right, .text-right { text-align: right; }
.text-uppercase { text-transform: uppercase; }
.text-underline { text-decoration: underline; }
.text-italic { font-style: italic; }
.text-nowrap { white-space: nowrap; }
.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.font-heading { font-family: var(--olv-font-heading); }
.font-body { font-family: var(--olv-font-body); }
.opacity-30 { opacity: 0.3; } .opacity-50 { opacity: 0.5; } .opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; } .opacity-80 { opacity: 0.8; }

/* --------------------------------------------------------------------------
   Pixel spacing helpers (Bootstrap covers 0-5 scale; theme uses px values,
   md/lg variants from 992/1200)
   -------------------------------------------------------------------------- */
.pt-0 { padding-top: 0 !important; } .pb-0 { padding-bottom: 0 !important; }
.mt-0 { margin-top: 0 !important; } .mb-0 { margin-bottom: 0 !important; }
.pt-10 { padding-top: 10px; } .pt-15 { padding-top: 15px; } .pt-20 { padding-top: 20px; }
.pt-25 { padding-top: 25px; } .pt-30 { padding-top: 30px; } .pt-35 { padding-top: 35px; }
.pt-40 { padding-top: 40px; } .pt-50 { padding-top: 50px; } .pt-60 { padding-top: 60px; }
.pt-70 { padding-top: 70px; } .pt-80 { padding-top: 80px; } .pt-100 { padding-top: 100px; }
.pt-110 { padding-top: 110px; } .pt-120 { padding-top: 120px; }
.pb-10 { padding-bottom: 10px; } .pb-15 { padding-bottom: 15px; } .pb-20 { padding-bottom: 20px; }
.pb-25 { padding-bottom: 25px; } .pb-30 { padding-bottom: 30px; } .pb-35 { padding-bottom: 35px; }
.pb-40 { padding-bottom: 40px; } .pb-50 { padding-bottom: 50px; } .pb-60 { padding-bottom: 60px; }
.pb-70 { padding-bottom: 70px; } .pb-80 { padding-bottom: 80px; } .pb-100 { padding-bottom: 100px; }
.pb-110 { padding-bottom: 110px; } .pb-120 { padding-bottom: 120px; }
.pl-10 { padding-left: 10px; } .pl-20 { padding-left: 20px; } .pl-30 { padding-left: 30px; }
.pr-10 { padding-right: 10px; } .pr-20 { padding-right: 20px; } .pr-30 { padding-right: 30px; }
.mt-5 { margin-top: 5px; } .mt-10 { margin-top: 10px; } .mt-15 { margin-top: 15px; }
.mt-20 { margin-top: 20px; } .mt-25 { margin-top: 25px; } .mt-30 { margin-top: 30px; }
.mt-40 { margin-top: 40px; } .mt-50 { margin-top: 50px; } .mt-60 { margin-top: 60px; }
.mb-5 { margin-bottom: 5px; } .mb-10 { margin-bottom: 10px; } .mb-15 { margin-bottom: 15px; }
.mb-20 { margin-bottom: 20px; } .mb-25 { margin-bottom: 25px; } .mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; } .mb-50 { margin-bottom: 50px; } .mb-60 { margin-bottom: 60px; }
.ml-10 { margin-left: 10px; } .ml-20 { margin-left: 20px; } .mr-10 { margin-right: 10px; } .mr-20 { margin-right: 20px; }
@media (min-width: 992px) {
  .pt-lg-40 { padding-top: 40px; } .pb-lg-40 { padding-bottom: 40px; }
}
@media (min-width: 1200px) {
  .pt-md-0 { padding-top: 0; } .pt-md-10 { padding-top: 10px; } .pt-md-20 { padding-top: 20px; }
  .pt-md-30 { padding-top: 30px; } .pt-md-40 { padding-top: 40px; } .pt-md-50 { padding-top: 50px; }
  .pt-md-60 { padding-top: 60px; } .pt-md-80 { padding-top: 80px; } .pt-md-100 { padding-top: 100px; }
  .pt-md-110 { padding-top: 110px; } .pt-md-120 { padding-top: 120px; }
  .pb-md-0 { padding-bottom: 0; } .pb-md-10 { padding-bottom: 10px; } .pb-md-20 { padding-bottom: 20px; }
  .pb-md-30 { padding-bottom: 30px; } .pb-md-40 { padding-bottom: 40px; } .pb-md-50 { padding-bottom: 50px; }
  .pb-md-60 { padding-bottom: 60px; } .pb-md-80 { padding-bottom: 80px; } .pb-md-100 { padding-bottom: 100px; }
  .pb-md-110 { padding-bottom: 110px; } .pb-md-120 { padding-bottom: 120px; }
  .pl-md-60 { padding-left: 60px; } .pr-md-60 { padding-right: 60px; }
  .mt-md-0 { margin-top: 0; } .mt-md-10 { margin-top: 10px; } .mt-md-20 { margin-top: 20px; }
  .mt-md-30 { margin-top: 30px; } .mt-md-40 { margin-top: 40px; } .mt-md-60 { margin-top: 60px; }
  .mb-md-0 { margin-bottom: 0; } .mb-md-10 { margin-bottom: 10px; } .mb-md-20 { margin-bottom: 20px; }
  .mb-md-30 { margin-bottom: 30px; } .mb-md-40 { margin-bottom: 40px; } .mb-md-60 { margin-bottom: 60px; }
}

/* --------------------------------------------------------------------------
   Grid helpers: fixed-width header columns (.col-custom-NNN) and the
   product grids (.products.grid-column.column-N, .mobile-grid-2)
   Measured desktop: gap 15px, item margin-bottom 40px; tablet 3 cols,
   mobile 2 cols, margin-bottom 30px.
   -------------------------------------------------------------------------- */
.col-custom-200 { flex: 0 0 200px; width: 200px; max-width: 200px; }
.col-custom-220 { flex: 0 0 220px; width: 220px; max-width: 220px; }
.col-custom-240 { flex: 0 0 240px; width: 240px; max-width: 240px; }
.col-custom-260 { flex: 0 0 260px; width: 260px; max-width: 260px; }
.col-custom-280 { flex: 0 0 280px; width: 280px; max-width: 280px; }
.col-custom-300 { flex: 0 0 300px; width: 300px; max-width: 300px; }
.col-custom-310 { flex: 0 0 310px; width: 310px; max-width: 310px; }
.col-custom-320 { flex: 0 0 320px; width: 320px; max-width: 320px; }
.col-custom-340 { flex: 0 0 340px; width: 340px; max-width: 340px; }
.col-custom-360 { flex: 0 0 360px; width: 360px; max-width: 360px; }
.col-custom-400 { flex: 0 0 400px; width: 400px; max-width: 400px; }

.products.grid-column,
.products.grid-style,
.grid-column {
  --olv-grid-gap: 15px;
  --olv-grid-cols: 2;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  flex-basis: 100%;
  column-gap: var(--olv-grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.products.grid-column > .product,
.grid-column > .column,
.grid-column > .grid-item {
  position: relative;
  z-index: 10;
  flex: 0 0 auto;
  width: calc((100% - var(--olv-grid-gap) * (var(--olv-grid-cols) - 1)) / var(--olv-grid-cols));
  max-width: 100%;
  margin-bottom: 30px;
}
.grid-column.mobile-grid-1 { --olv-grid-cols: 1; }
.grid-column.mobile-grid-2 { --olv-grid-cols: 2; }
.grid-column.mobile-grid-3 { --olv-grid-cols: 3; }
@media (min-width: 576px) {
  .grid-column.column-1 { --olv-grid-cols: 1; }
  .grid-column.column-2 { --olv-grid-cols: 2; }
  .grid-column.column-3, .grid-column.column-4, .grid-column.column-5, .grid-column.column-6 { --olv-grid-cols: 2; }
}
@media (min-width: 768px) {
  .grid-column.column-3, .grid-column.column-4, .grid-column.column-5, .grid-column.column-6 { --olv-grid-cols: 3; }
}
@media (min-width: 992px) {
  .grid-column.column-4, .grid-column.column-5 { --olv-grid-cols: 4; }
  .grid-column.column-6 { --olv-grid-cols: 4; }
  .products.grid-column > .product,
  .grid-column > .column,
  .grid-column > .grid-item { margin-bottom: 40px; }
}
@media (min-width: 1200px) {
  .grid-column.column-1 { --olv-grid-cols: 1; }
  .grid-column.column-2 { --olv-grid-cols: 2; }
  .grid-column.column-3 { --olv-grid-cols: 3; }
  .grid-column.column-4 { --olv-grid-cols: 4; }
  .grid-column.column-5 { --olv-grid-cols: 5; }
  .grid-column.column-6 { --olv-grid-cols: 6; }
}
.products.list-style { display: block; }
.products.list-style > .product { width: 100%; }
.w-50 { width: 50%; } .w-60 { width: 60%; } .w-70 { width: 70%; } .w-80 { width: 80%; } .w-90 { width: 90%; }

/* --------------------------------------------------------------------------
   Section module: .klb-module > .module-header / .module-body
   (Elementor widgets: custom-title, product carousels, categories)
   Measured: title h3 32px/500 (font-md-32), excerpt 14px #768088 mt 8px,
   header margin-bottom 20px.
   -------------------------------------------------------------------------- */
.klb-module { position: relative; }
.module-header {
  position: relative;
  margin-bottom: 20px;
}
.module-header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
}
.module-header .entry-title {
  margin-bottom: 0;
  font-weight: 500;
}
.module-header .entry-subtitle { margin-bottom: 4px; }
.module-header .entry-excerpt,
.module-header .entry-description {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5;
}
.module-header.centered { text-align: center; }
.module-header.centered .module-header-inner {
  flex-direction: column;
  justify-content: center;
}
.module-header.centered .entry-excerpt,
.module-header.centered .entry-description {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
.module-header .column.button-column { margin-left: auto; }
.module-header.centered .column.button-column { margin-left: 0; }
.module-header .entry-link,
.module-header .view-all {
  font-size: 13px;
  font-weight: 600;
}
.module-body { position: relative; }
.entry-media { position: relative; overflow: hidden; }
.entry-media img { width: 100%; }

/* --------------------------------------------------------------------------
   Breadcrumb: olverin-core/inc/breadcrumb.php (nav.woocommerce-breadcrumb /
   .site-breadcrumb > ul > li > a|span). 13px #adb5bd, chevron 10px.
   -------------------------------------------------------------------------- */
.woocommerce-breadcrumb,
.site-breadcrumb,
.klb-breadcrumb {
  margin: 15px 0;
  font-size: 13px;
  line-height: 1;
}
.woocommerce-breadcrumb ul,
.site-breadcrumb ul,
.klb-breadcrumb ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce-breadcrumb li,
.site-breadcrumb li,
.klb-breadcrumb li {
  display: flex;
  align-items: center;
  color: #adb5bd;
}
.woocommerce-breadcrumb li a,
.site-breadcrumb li a,
.klb-breadcrumb li a { color: inherit; }
.woocommerce-breadcrumb li a:hover,
.site-breadcrumb li a:hover,
.klb-breadcrumb li a:hover { color: var(--olv-primary); }
.woocommerce-breadcrumb li:not(:last-child)::after,
.site-breadcrumb li:not(:last-child)::after,
.klb-breadcrumb li:not(:last-child)::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin-left: 5px;
  background-color: var(--olv-text);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6l-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6l-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-breadcrumb li:last-child,
.site-breadcrumb li:last-child,
.klb-breadcrumb li:last-child { color: var(--olv-text); }
.woocommerce-breadcrumb li span,
.site-breadcrumb li span { color: inherit; }

/* Page title / page header (page.php, archive.php, woocommerce-page-header) */
.page-header,
.woocommerce-page-header,
.klb-page-header {
  position: relative;
  margin-bottom: 20px;
}
.page-header .page-title,
.page-title,
.woocommerce-products-header__title {
  margin-bottom: 10px;
}
.page-header .entry-description,
.page-header .term-description,
.woocommerce-products-header .term-description {
  font-size: 14px;
  color: #768088;
}
.page-header.centered { text-align: center; }
/* 404.php: .site-content.page-error > .page-inner > .container > .page-not-found */
.site-content.page-error > .page-inner { margin: 0; }
.page-not-found { padding: 140px 0 180px; text-align: center; }
.page-not-found > img { max-width: 420px; margin-bottom: 60px; }
.page-not-found .entry-title { margin-bottom: 8px; font-size: 54px; }
.page-not-found .entry-description { margin-bottom: 40px; color: #768088; font-size: 18px; }
.page-not-found .btn.primary { min-height: 46px; padding: 6px 24px; font-size: 15px; }
.page-not-found .search-form { max-width: 460px; margin: 0 auto 20px; }
@media (max-width: 767.98px) {
  .page-not-found { padding: 60px 0 80px; }
  .page-not-found > img { max-width: 260px; margin-bottom: 30px; }
  .page-not-found .entry-title { font-size: 32px; }
  .page-not-found .entry-description { font-size: 15px; }
}

/* --------------------------------------------------------------------------
   WooCommerce notices: .woocommerce-message|info|error, .woocommerce-notices-wrapper
   Measured: flex row-reverse, padding 16px, 1px border #dee2e6, 14px, 30px
   vertical margins, button on the right.
   -------------------------------------------------------------------------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.wc-block-components-notice-banner {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  margin: 0 0 30px;
  padding: 16px;
  border: 1px solid #dee2e6;
  border-left-width: 3px;
  border-left-color: var(--olv-success);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 14px;
  line-height: 1.5;
  list-style: none;
}
.woocommerce-notices-wrapper > .woocommerce-message,
.woocommerce-notices-wrapper > .woocommerce-info,
.woocommerce-notices-wrapper > .woocommerce-error { margin-top: 30px; }
.woocommerce-info,
.woocommerce-notice--info { border-left-color: var(--olv-info); }
.woocommerce-error,
.woocommerce-notice--error { border-left-color: var(--olv-danger); }
.woocommerce-error li { list-style: none; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  order: 2;
  height: 42px;
  line-height: 40px;
  flex-shrink: 0;
}
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) {
  font-weight: 500;
  text-decoration: underline;
}
.woocommerce-form-coupon-toggle .woocommerce-info {
  flex-direction: row;
  justify-content: flex-start;
  margin-bottom: 20px;
  padding: 12px 16px;
}
.woocommerce-NoticeGroup { width: 100%; }
.woocommerce-form-login-toggle .woocommerce-info { flex-direction: row; justify-content: flex-start; }
.woocommerce-store-notice,
.demo_store {
  position: relative;
  z-index: 1000;
  margin: 0;
  padding: 12px 20px;
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 14px;
  text-align: center;
}
.woocommerce-store-notice a,
.demo_store a { color: inherit; text-decoration: underline; }

/* --------------------------------------------------------------------------
   Star rating: .star-rating (WooCommerce) inside .product-rating
   5 stars drawn with a masked SVG; gray #dfe2e6 base, filled #fcc419 overlay.
   Measured card: font-size 12px, 5 stars = ~66px; product page 14px.
   -------------------------------------------------------------------------- */
.star-rating {
  position: relative;
  display: inline-block;
  overflow: hidden;
  width: 5.5em;
  height: 1em;
  font-size: 12px;
  line-height: 1;
  vertical-align: middle;
}
.star-rating::before,
.star-rating > span::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5.5em;
  height: 1em;
  background-color: #dfe2e6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706-3l5.693 3l.1 .046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0l-2.853 5.78z'/%3E%3C/svg%3E") left center / 1.1em 1em repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706-3l5.693 3l.1 .046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0l-2.853 5.78z'/%3E%3C/svg%3E") left center / 1.1em 1em repeat-x;
}
.star-rating > span {
  position: absolute;
  top: 0;
  left: 0;
  height: 1em;
  overflow: hidden;
  padding-top: 1.5em;
  color: transparent;
  white-space: nowrap;
}
.star-rating > span::before {
  background-color: var(--olv-star);
}
.star-rating > span .rating,
.star-rating > span strong { display: inline; color: transparent; }
.product-rating,
.woocommerce-product-rating {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 6px;
  font-size: 12px;
  line-height: 1.5;
}
.product-rating .rating-count,
.product-rating .woocommerce-review-link,
.woocommerce-product-rating .woocommerce-review-link {
  margin-left: 6px;
  font-size: 12px;
  font-weight: 500;
  color: inherit;
}
.product-rating .rating-count .count-text { display: inline-flex; align-items: center; }
.woocommerce-product-rating .star-rating { font-size: 14px; }
.review-stars .star-rating { font-size: 28px; }
.comment-form-rating .stars,
.stars {
  display: inline-flex;
  gap: 2px;
  font-size: 0;
}
.stars a {
  display: inline-block;
  width: 18px;
  height: 18px;
  background-color: #dfe2e6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706-3l5.693 3l.1 .046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0l-2.853 5.78z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706-3l5.693 3l.1 .046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0l-2.853 5.78z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.stars:hover a,
.stars.selected a { background-color: var(--olv-star); }
.stars a:hover ~ a,
.stars.selected a.active ~ a { background-color: #dfe2e6; }

/* --------------------------------------------------------------------------
   Price: .price with ins/del (cards 15px/600, sale #e53e3e, del #768088)
   -------------------------------------------------------------------------- */
.price,
.woocommerce-Price-amount {
  font-weight: 600;
}
.price {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--olv-text);
}
.price ins {
  order: 2;
  text-decoration: none;
  color: var(--olv-danger);
}
.price del {
  order: 1;
  font-size: 0.89em;
  font-weight: 500;
  color: #768088;
  opacity: 0.8;
  text-decoration: line-through;
}
.price del .woocommerce-Price-amount { font-weight: 500; }
.price .woocommerce-Price-currencySymbol { font-weight: inherit; }
.price .from,
.price .tax_label { font-size: 0.8em; font-weight: 400; opacity: 0.7; }
ins { text-decoration: none; }
del { color: #768088; }

/* --------------------------------------------------------------------------
   Badges: .badge (product cards .thumbnail-badges, menu items), .onsale
   Measured: 12px/600 white, #e53e3e, padding 5px 7px, radius 3px; menu
   badge 10px, #ced4da.
   -------------------------------------------------------------------------- */
.badge,
.onsale {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  padding: 5px 7px;
  border-radius: 3px;
  background-color: #ced4da;
  color: var(--olv-white);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
}
.badge.sale,
.badge.onsale,
.onsale,
.badge.hot,
.badge.red { background-color: var(--olv-danger); }
.badge.new,
.badge.green { background-color: #40c057; }
.badge.primary,
.badge.theme { background-color: var(--olv-primary); }
.badge.dark,
.badge.black { background-color: var(--olv-text); }
.badge.blue,
.badge.info { background-color: #228be6; }
.badge.orange,
.badge.warning { background-color: #f59f00; }
.badge.gray,
.badge.light { background-color: #ced4da; }
.badge.white { background-color: var(--olv-white); color: var(--olv-text); }
.badge.outline { background-color: transparent; border: 1px solid currentColor; color: var(--olv-text); }
.badge.rounded,
.badge.radius-rounded { border-radius: var(--olv-radius-round); }
.thumbnail-badges,
.product-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  pointer-events: none;
}
.klb-menu .badge,
.menu-item .badge {
  margin: -2px 0 -2px 8px;
  padding: 4px 6px;
  font-size: 10px;
  text-transform: uppercase;
}
.count-badge,
.header-action .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

/* --------------------------------------------------------------------------
   Pagination: WooCommerce .woocommerce-pagination > ul.page-numbers,
   blog .nav-links / .pagination. 36px squares, gap 4px, current = primary,
   others #f1f3f5, arrows 18px icons.
   -------------------------------------------------------------------------- */
.woocommerce-pagination,
.klb-pagination,
.pagination-wrapper,
nav.navigation.pagination {
  margin-top: 40px;
}
.woocommerce-pagination ul.page-numbers,
.nav-links,
ul.page-numbers,
.pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 0;
}
.woocommerce-pagination ul.page-numbers li {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}
.page-numbers:not(ul),
.nav-links .page-numbers,
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 6px;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 6px;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
a.page-numbers:hover,
.woocommerce-pagination ul.page-numbers li a:hover {
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.page-numbers.current,
.woocommerce-pagination ul.page-numbers li span.current {
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.page-numbers.dots,
.woocommerce-pagination ul.page-numbers li span.dots { background-color: transparent; }
.page-numbers.prev,
.page-numbers.next,
.woocommerce-pagination ul.page-numbers li a.prev,
.woocommerce-pagination ul.page-numbers li a.next {
  background-color: transparent;
  font-size: 18px;
}
.page-numbers.prev:hover,
.page-numbers.next:hover,
.woocommerce-pagination ul.page-numbers li a.prev:hover,
.woocommerce-pagination ul.page-numbers li a.next:hover {
  background-color: #f1f3f5;
  color: var(--olv-text);
}
.page-numbers i,
.nav-links i { font-size: 18px; }
/* Post navigation (single post prev/next) */
.post-navigation .nav-links { justify-content: space-between; }
.post-navigation .nav-links a {
  display: inline-flex;
  min-width: 0;
  height: auto;
  padding: 0;
  background: none;
  font-weight: 600;
}
.post-navigation .nav-links a:hover { background: none; color: var(--olv-primary); }
.navigation.posts-navigation .nav-links { justify-content: space-between; }
.load-more-wrapper,
.klb-load-more { margin-top: 40px; text-align: center; }

/* --------------------------------------------------------------------------
   Ajax notice (olverin-core notice-ajax module) base position; the module's
   own stylesheet draws the box.
   -------------------------------------------------------------------------- */
.klb-notice-ajax {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 999999;
  max-width: 360px;
  width: calc(100% - 40px);
  pointer-events: none;
}
.klb-notice-ajax > * { pointer-events: auto; }
.klb-notice-ajax .woocommerce-message,
.klb-notice-ajax .woocommerce-info,
.klb-notice-ajax .woocommerce-error {
  margin: 0 0 10px;
  box-shadow: var(--olv-shadow-lg);
}

/* --------------------------------------------------------------------------
   Generic modal shell: .klb-modal-root > .klb-modal-inner + .klb-modal-overlay
   (includes/header/models/account-icon.php, olverin-core location modal).
   Overlay #1b1f22 at 0.2, box centered, 986px max, header close 44px.
   The header package styles the login form content.
   -------------------------------------------------------------------------- */
.klb-modal-root {
  position: fixed;
  inset: 0;
  z-index: var(--olv-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.klb-modal-root.is-active,
.klb-modal-root.active,
.klb-modal-root.show {
  opacity: 1;
  visibility: visible;
}
.klb-modal-overlay {
  position: absolute;
  inset: 0;
  background-color: var(--olv-text);
  opacity: 0.2;
  cursor: pointer;
}
.klb-modal-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 986px;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border-radius: var(--olv-radius);
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-lg);
  transform: translateY(20px);
  transition: opacity 0.1s ease, transform 0.3s ease;
}
.klb-modal-root.is-active .klb-modal-inner,
.klb-modal-root.active .klb-modal-inner,
.klb-modal-root.show .klb-modal-inner { transform: none; }
.klb-modal-root.default-modal .klb-modal-inner { max-width: 520px; }
.klb-modal-header {
  position: relative;
  margin-bottom: 20px;
  text-align: center;
}
.klb-modal-header .entry-title {
  margin-bottom: 8px;
  font-size: 26px;
  font-weight: 500;
}
.klb-modal-body { padding: 30px; }
.site-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  overflow: hidden;
  border-radius: 50%;
  font-size: 18px;
  line-height: 1;
  color: var(--olv-text);
  cursor: pointer;
  transition: transform 0.4s ease, color 0.4s ease, background-color 0.4s ease;
}
.site-close svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
}
.site-close:hover {
  color: var(--olv-primary);
  transform: rotate(90deg);
}
.site-overlay,
.drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: calc(var(--olv-z-drawer) - 1);
  background-color: rgba(var(--olv-text-rgb), 0.3);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.site-overlay.show,
.drawer-overlay.show,
body.drawer-open .site-overlay { opacity: 1; visibility: visible; }

/* Tooltips (Bootstrap data-bs-toggle="tooltip" on grid/list toggles and
   product action buttons) */
.tooltip { font-family: var(--olv-font-body); font-size: 12px; }
.tooltip .tooltip-inner {
  padding: 5px 10px;
  border-radius: 3px;
  background-color: var(--olv-text);
  color: var(--olv-white);
  font-weight: 500;
}
.tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before { border-top-color: var(--olv-text); }
.tooltip.bs-tooltip-bottom .tooltip-arrow::before,
.tooltip.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before { border-bottom-color: var(--olv-text); }
.tooltip.bs-tooltip-start .tooltip-arrow::before { border-left-color: var(--olv-text); }
.tooltip.bs-tooltip-end .tooltip-arrow::before { border-right-color: var(--olv-text); }
[data-title] { position: relative; }
[data-title]::after {
  content: attr(data-title);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 10;
  padding: 5px 10px;
  border-radius: 3px;
  background-color: var(--olv-text);
  color: var(--olv-white);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  pointer-events: none;
}
[data-title]:hover::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

/* --------------------------------------------------------------------------
   Social lists: .site-social (footer-type1/2, widget-social-media)
   ul.color-theme.rounded-style: 36px circles, 10% text tint, icon 15px, gap 4px
   -------------------------------------------------------------------------- */
.site-social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.site-social .social-label {
  margin-right: 10px;
  font-size: 14px;
  font-weight: 500;
}
.site-social ul,
ul.social-media,
ul.social-color,
ul.color-theme {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-social li a,
ul.social-media li a,
ul.social-color li a,
ul.color-theme li a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--olv-text);
  font-size: 15px;
  line-height: 1;
}
.site-social li a::before,
ul.social-media li a::before,
ul.social-color li a::before,
ul.color-theme li a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--olv-radius-form);
  background-color: currentColor;
  opacity: 0.1;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}
.site-social ul.rounded-style li a::before,
ul.social-media.rounded-style li a::before,
ul.color-theme.rounded-style li a::before { border-radius: 50%; }
.site-social li a i,
ul.social-media li a i,
ul.color-theme li a i { position: relative; z-index: 1; font-size: 15px; }
.site-social li a:hover::before,
ul.social-media li a:hover::before,
ul.color-theme li a:hover::before { opacity: 0.18; }
.site-social li a:hover,
ul.social-media li a:hover,
ul.color-theme li a:hover { color: var(--olv-primary); }
/* Brand colors: ul.social-color / .social-color-* / a.facebook etc. */
ul.social-color li a,
.social-color li a,
.color-theme.social-brand li a { color: var(--olv-white); }
ul.social-color li a::before,
.social-color li a::before { opacity: 1; background-color: var(--olv-text); }
ul.social-color li a.facebook::before, .social-color-facebook::before, ul.social-color li a.facebook { background-color: #1877f2; color: #fff; }
ul.social-color li a.twitter::before, ul.social-color li a.x::before, .social-color-twitter::before { background-color: #1b1f22; }
ul.social-color li a.instagram::before, .social-color-instagram::before { background-color: #e1306c; }
ul.social-color li a.pinterest::before, .social-color-pinterest::before { background-color: #e60023; }
ul.social-color li a.linkedin::before, .social-color-linkedin::before { background-color: #0a66c2; }
ul.social-color li a.youtube::before, .social-color-youtube::before { background-color: #ff0000; }
ul.social-color li a.whatsapp::before, .social-color-whatsapp::before { background-color: #25d366; }
ul.social-color li a.telegram::before, .social-color-telegram::before { background-color: #2aabee; }
ul.social-color li a.tiktok::before, .social-color-tiktok::before { background-color: #010101; }
ul.social-color li a.vimeo::before, .social-color-vimeo::before { background-color: #1ab7ea; }
ul.social-color li a.snapchat::before, .social-color-snapchat::before { background-color: #fffc00; }
ul.social-color li a.reddit::before, .social-color-reddit::before { background-color: #ff4500; }
ul.social-color li a:hover { color: var(--olv-white); }
ul.social-color li a:hover::before { opacity: 0.85; }
/* Widget version with label: .site-social.for-widget */
.site-social.for-widget ul { flex-direction: column; align-items: stretch; gap: 8px; }
.site-social.for-widget li a {
  width: auto;
  height: auto;
  justify-content: flex-start;
  gap: 10px;
  padding: 0;
  font-size: 14px;
}
.site-social.for-widget li a::before { display: none; }
.site-social.for-widget .social-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--olv-white);
  background-color: var(--olv-text);
}
.site-social.for-widget .social-icon i { position: relative; font-size: 15px; }
.site-social.for-widget .social-label {
  margin: 0;
  font-weight: 500;
  text-transform: capitalize;
}
.site-social.for-widget li a.facebook .social-icon { background-color: #1877f2; }
.site-social.for-widget li a.instagram .social-icon { background-color: #e1306c; }
.site-social.for-widget li a.youtube .social-icon { background-color: #ff0000; }
.site-social.for-widget li a.pinterest .social-icon { background-color: #e60023; }
.site-social.for-widget li a.linkedin .social-icon { background-color: #0a66c2; }
.site-social.for-widget li a.whatsapp .social-icon { background-color: #25d366; }
.site-social.for-widget li a.telegram .social-icon { background-color: #2aabee; }

/* Payment cards & app badges: footer-type1.php */
.site-payment-cards {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.site-payment-cards .payment-cards-label {
  font-size: 14px;
  font-weight: 500;
}
.payment-cards {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.payment-cards .card-item {
  display: inline-flex;
  align-items: center;
}
.payment-cards img {
  max-height: 24px;
  width: auto;
}
.site-application {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.site-application .app-label {
  margin-right: 10px;
  font-size: 14px;
  font-weight: 500;
}
.site-application ul {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-application img {
  max-height: 35px;
  width: auto;
}
.site-application a:hover img { opacity: 0.85; }

/* --------------------------------------------------------------------------
   Misc shared bits
   -------------------------------------------------------------------------- */
.site-brand a { display: flex; align-items: center; position: relative; }
.site-brand .light-logo { position: absolute; top: 0; left: 0; opacity: 0; }
.color-scheme-white .site-brand .dark-logo { opacity: 0; }
.color-scheme-white .site-brand .light-logo { opacity: 1; }
.entry-thumbnail img,
.thumbnail-wrapper img { width: 100%; }
.klb-count-notification.top-notification { text-align: center; }
.object-fit-cover { object-fit: cover; }
.overflow-hidden { overflow: hidden; }
.cursor-pointer { cursor: pointer; }
.flex-1 { flex: 1 1 0%; }
.gap-10 { gap: 10px; } .gap-15 { gap: 15px; } .gap-20 { gap: 20px; } .gap-30 { gap: 30px; }
.divider { height: 1px; background-color: var(--olv-border); }

/* ---- 10-header.css ---- */
/* ==========================================================================
   Olverin theme: site header
   Authored by Olverin Ventures. Covers includes/header/main-header.php,
   header-type1..6.php and includes/header/models/*.php. Measurements: topbar
   39px (12px text), main row 70px, bottom row 69px, mobile row 57px.
   Visibility helpers (.min-1200/.max-1200/.min-992/.hide-desktop) live in
   03-utilities-layout.css; JS state classes: .sticky-header, .is-searchable,
   .custom-dropdown.show / .custom-dropdown-menu.show.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shell: header.site-header, .header-desktop / .header-mobile, rows
   -------------------------------------------------------------------------- */
.site-header {
  position: relative;
  z-index: 11;
  color: var(--olv-text);
}
.site-header a { color: inherit; text-decoration: none; }
.site-header p { margin: 0; }
.site-header ul { list-style: none; margin: 0; padding: 0; }
.site-header i[class*="klb-"] { flex-shrink: 0; }
.header-row {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
}
.header-inner { display: flex; }
.header-inner > .col { display: flex; align-items: center; min-width: 0; }
.header-inner > .col + .col { padding-left: 15px; }
.header-inner > .col.col-auto,
.header-inner > .col[class*="col-custom-"] { flex: 0 0 auto; width: auto; }
.header-inner > .col-custom-260 { width: 260px; }
.header-inner > .col-custom-310 { width: 310px; }
.header-inner > .col.center { justify-content: flex-start; }

/* Color scheme / layout modifiers used by every header type */
.header-row.color-scheme-dark { color: var(--olv-text); }
.header-row.color-scheme-light { color: var(--olv-white); }
.header-row.color-layout-white,
.header-row.background-white,
.header-row.color-layout-light { background-color: var(--olv-white); }
.header-row.color-layout-gray { background-color: var(--olv-bg-gray); }
.header-row.color-layout-black,
.header-row.color-layout-dark,
.header-row.background-black { background-color: var(--olv-text); }
.header-row.color-layout-custom.dark-blue { background-color: #1f2a44; }
.header-row.bordered-bottom { border-bottom: 1px solid var(--olv-border); }
.header-row.border-theme-10 { border-color: var(--olv-border); }
.header-row.border-theme-15 { border-color: var(--olv-border-15); }
.header-row.border-light-10 { border-color: rgba(255, 255, 255, 0.1); }
.header-row.border-light-15 { border-color: rgba(255, 255, 255, 0.15); }

/* Row heights */
.header-topbar {
  height: var(--olv-header-topbar-h);
  font-size: 12px;
  line-height: 18px;
}
.header-main { height: var(--olv-header-main-h); }
.header-bottom { height: var(--olv-header-bottom-h); }
.header-mobile-main { height: calc(var(--olv-mobile-header-h) + 1px); }
.header-topbar > .container,
.header-main > .container,
.header-bottom > .container,
.header-mobile-main > .container,
.header-topbar .header-inner,
.header-main .header-inner,
.header-bottom .header-inner,
.header-mobile-main .header-inner { height: 100%; }
.header-main .col.center { padding-left: 40px; }
.header-main .col.justify-content-end.col-custom-260 { padding-left: 35px; }

/* Logo: width is set inline by the Customizer (121 / 141 / 156px) */
.site-brand { display: flex; align-items: center; flex-shrink: 0; }
.site-brand a { position: relative; display: flex; align-items: center; }
.site-brand img { max-width: 100%; height: auto; }
.site-brand .light-logo { position: absolute; top: 0; left: 0; opacity: 0; }
.site-brand .brand-text {
  font-family: var(--olv-font-heading);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* --------------------------------------------------------------------------
   Topbar: header-notify, currency/language menus, theme toggle
   -------------------------------------------------------------------------- */
.header-notify { position: relative; display: flex; align-items: center; }
.header-notify i { margin-right: 7px; font-size: 1.28em; }
.header-notify p { display: flex; align-items: center; }
.header-notify p a { margin-left: 3px; font-weight: 600; }
.header-notify.link-filled p a {
  padding: 0 8px;
  border-radius: 28px;
  background-color: var(--olv-primary-soft);
  color: var(--olv-primary);
}
.header-notify p a.no-bg { padding: 0; background: none; }
.header-notify p a.color-black { color: inherit; }
.header-notify + .klb-menu-nav,
.header-topbar .justify-content-end .klb-menu-nav + .klb-menu-nav { margin-left: 15px; }
.header-topbar .justify-content-end .klb-menu-nav::before {
  content: "";
  display: flex;
  width: 1px;
  height: 15px;
  margin-right: 17px;
  background-color: currentColor;
  opacity: 0.2;
}
.theme-toggle { margin-left: 15px; }
.theme-toggle .theme-mode-toggle {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  line-height: 1;
}
.theme-toggle .toggle-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  font-size: 13px;
}
.theme-toggle .header-light-background { background-color: #f0f3f6; color: var(--olv-text); }
.theme-toggle .toggle-text { margin-left: 10px; }
.theme-toggle .toggle-text .light-theme { display: none; }
.theme-toggle.is-dark .toggle-text .light-theme,
body.dark-theme .theme-toggle .toggle-text .light-theme { display: inline; }
.theme-toggle.is-dark .toggle-text .dark-theme,
body.dark-theme .theme-toggle .toggle-text .dark-theme { display: none; }

/* --------------------------------------------------------------------------
   Header actions: models/account-icon.php, wishlist-icon.php,
   compare-icon.php, cart.php, toggle-menu-button.php
   -------------------------------------------------------------------------- */
.header-action { position: relative; margin-left: 15px; }
.header-action:first-child { margin-left: 0; }
.header-action .action-link {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  height: 38px;
  min-width: 38px;
  white-space: nowrap;
  transition: color var(--olv-transition);
}
.header-action .action-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 100%;
  font-size: 26px;
  line-height: 1;
}
.header-action .action-count {
  position: absolute;
  top: 2px;
  right: -2px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 17px;
  min-width: 17px;
  padding: 0 1px;
  border-radius: 50%;
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 10px;
  font-weight: 500;
  line-height: 17px;
}
.header-action .action-text { margin-left: 10px; line-height: 1.3; text-align: left; }
.header-action .action-text span {
  display: block;
  font-size: 11px;
  font-weight: 500;
  opacity: 0.4;
}
.header-action .action-text p { font-size: 14px; font-weight: 500; }
.header-action .action-text .cart-price { font-weight: 600; }
.header-action .action-link:hover .action-icon { color: var(--olv-primary); }
/* text under icon variant */
.header-action.column-style .action-link { flex-direction: column; flex-wrap: nowrap; height: auto; }
.header-action.column-style .action-icon { height: 38px; }
.header-action.column-style .action-text { margin: 2px 0 0; text-align: center; }
.header-action.column-style .action-text p { font-size: 11px; opacity: 0.6; }
/* type2 "bordered" location button */
.header-action.bordered .action-link {
  height: 46px;
  padding: 0 15px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--olv-radius-form);
}
.header-action.bordered .action-text { margin-left: 8px; }
/* "Menu" toggle used in header-type1/2 main row */
.header-action.custom-toggle .action-link {
  height: 46px;
  padding: 0 16px 0 12px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-bg-gray);
}
.header-action.custom-toggle .action-icon { width: auto; font-size: 24px; }
.header-action.custom-toggle .action-text { margin-left: 8px; }
.header-action.custom-toggle .action-text p { font-size: 14px; font-weight: 600; }
.header-action.custom-toggle + .header-search-form { margin-left: 20px; }
/* hamburger in the mobile row */
.header-action.toggle-button .action-icon { font-size: 24px; }

/* --------------------------------------------------------------------------
   Header search: models/search.php + blonwe_header_product_search()
   (form.search-form.form-style-*.search-type-N inside .header-search-form)
   -------------------------------------------------------------------------- */
.header-search-form {
  position: relative;
  z-index: 1;
  flex: 1 0 0%;
  height: 46px;
}
.col-auto .header-search-form,
.col-custom-260 .header-search-form {
  height: 32px;
  min-width: 220px;
  max-width: 230px;
}
.header-search-form .search-form {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
}
.header-search-form .search-form .search-input {
  width: 100%;
  height: 100%;
  padding: 6px 48px 6px 12px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1;
  transition: background-color var(--olv-transition), border-color var(--olv-transition), box-shadow var(--olv-transition);
}
.header-search-form .search-form .search-input:focus {
  border-color: var(--olv-primary);
  background-color: var(--olv-white);
  box-shadow: 0 0 0 1px var(--olv-primary);
  outline: none;
}
.header-search-form .search-form .search-input::placeholder { color: var(--olv-text-light); }
.header-search-form .search-type-1 .search-input { padding-left: 83px; }
.header-search-form .input-search-addon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  height: 100%;
  border-right: 1px solid #dfe2e6;
}
.header-search-form .input-search-addon .form-select {
  width: 68px;
  height: 100%;
  padding: 6px 26px 6px 12px;
  border: 0;
  background-color: transparent;
  background-position: calc(100% - 12px) 50%;
  background-size: 16px 12px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: none;
}
.header-search-form .search-form > button {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 100%;
  min-width: 48px;
  padding: 1px 15px;
  border: 0;
  border-radius: 0 var(--olv-radius-form) var(--olv-radius-form) 0;
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background-color var(--olv-transition);
}
.header-search-form .search-form > button:hover { background-color: var(--olv-text); color: var(--olv-white); }
/* gray / light variants (search-type-3, 4, 6) */
.header-search-form .form-style-gray .search-input { background-color: var(--olv-bg-gray); }
.header-search-form .form-style-light .search-input { border-color: var(--olv-border-15); background-color: var(--olv-white); }
.header-search-form .form-style-gray > button.unset,
.header-search-form .form-style-light > button.unset {
  background-color: transparent;
  color: inherit;
  font-size: 22px;
}
.header-search-form .form-style-gray > button.unset:hover,
.header-search-form .form-style-light > button.unset:hover { background-color: transparent; color: var(--olv-primary); }
.header-search-form .search-type-4 > button.btn { top: 5px; right: 5px; height: calc(100% - 10px); border-radius: var(--olv-radius-form); }
/* dark rows: field turns translucent */
.color-scheme-light .header-search-form .search-input { background-color: rgba(255, 255, 255, 0.1); color: var(--olv-white); }
.color-scheme-light .header-search-form .search-input::placeholder { color: rgba(255, 255, 255, 0.6); }

/* overlay search: white card behind the form + page shade when .is-searchable */
.header-search-overlay::before {
  content: "";
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  background-color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--olv-transition), visibility var(--olv-transition);
}
.header-search-overlay .search-form::before {
  content: "";
  position: absolute;
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
  z-index: -1;
  display: block;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.header-search-overlay.is-searchable,
.header-search-overlay.search-focused { z-index: 20; }
.header-search-overlay.is-searchable::before,
.header-search-overlay.search-focused::before { opacity: 0.2; visibility: visible; }
.header-search-overlay.is-searchable .search-form::before,
.header-search-overlay.search-focused .search-form::before { opacity: 1; }
.header-search-overlay.is-searchable .search-form .search-input,
.header-search-overlay.search-focused .search-form .search-input {
  border-color: var(--olv-primary);
  background-color: var(--olv-white);
  box-shadow: 0 0 0 1px var(--olv-primary);
}
/* trending keywords panel below the field (rendered by search.php) */
.header-search-form .header-search-results {
  position: absolute;
  top: calc(100% + 3px);
  right: -8px;
  left: -8px;
  padding: 15px 10px 10px;
  border-radius: 0 0 var(--olv-radius-form) var(--olv-radius-form);
  background-color: var(--olv-white);
  color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--olv-transition), visibility var(--olv-transition);
}
.header-search-overlay.is-searchable .header-search-results,
.header-search-overlay.search-focused .header-search-results,
.header-search-form .header-search-results.show { opacity: 1; visibility: visible; }
.header-search-results .search-results-heading {
  display: block;
  margin-bottom: 8px;
  padding: 0 10px;
  color: #adb5bd;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
}
.header-search-results .search-keywords.tag-style {
  display: flex;
  flex-wrap: wrap;
  margin: -4px;
  padding: 0 0 10px 10px;
  list-style: none;
}
.header-search-results .search-keywords.tag-style li { margin: 4px; }
.header-search-results .search-keywords.tag-style a {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid #dfe2e6;
  border-radius: 1px;
  font-size: 13px;
  line-height: 1.5;
  transition: background-color 0.05s, color 0.05s, border-color 0.05s;
}
.header-search-results .search-keywords.tag-style a:hover {
  border-color: var(--olv-text);
  background-color: var(--olv-text);
  color: var(--olv-white);
}

/* --------------------------------------------------------------------------
   Top notification countdown bar: models/top-notification-count.php
   (rendered above the header; background color comes from the Customizer)
   -------------------------------------------------------------------------- */
.klb-count-notification {
  position: relative;
  z-index: 11;
  padding: 9px 0;
  background-color: var(--olv-accent);
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--olv-text);
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
}
.klb-count-notification > .container {
  display: flex;
  align-items: center;
  justify-content: center;
}
.klb-count-notification p { margin: 0; }
.klb-count-notification .klb-countdown-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin-left: 10px;
}
.klb-count-notification .klb-countdown {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}
.klb-count-notification .count-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 25px;
  min-width: 30px;
  margin-left: 4px;
  padding: 0 4px;
  border: 1px solid transparent;
}
.klb-count-notification .filled .count-item { background-color: rgba(var(--olv-text-rgb), 0.1); }
.klb-count-notification .radius .count-item { border-radius: var(--olv-radius-form); }
.klb-count-notification .count-label { margin-left: 4px; font-size: 0.85em; font-weight: 400; opacity: 0.5; }
.klb-count-notification .klb-countdown > span { margin-left: 4px; opacity: 0.4; }
@media (max-width: 991.98px) {
  .klb-count-notification > .container { flex-direction: column; }
  .klb-count-notification .klb-countdown-wrapper { margin: 7px 0 0; }
}

/* --------------------------------------------------------------------------
   Sticky header (JS adds .sticky-header on scroll) and transparent variant
   -------------------------------------------------------------------------- */
.site-header.sticky-header,
.site-header.is-sticky { z-index: 99; }
.site-header.sticky-header .header-main,
.site-header.is-sticky .header-main {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 10;
  box-shadow: var(--olv-shadow-sm);
  animation: olv-header-slide 0.3s ease;
}
.site-header.sticky-header .header-main::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: currentColor;
  opacity: 0.1;
}
@keyframes olv-header-slide {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}
@media (max-width: 1199.98px) {
  .site-header.sticky-header .header-mobile,
  .site-header.is-sticky .header-mobile {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 9;
    animation: olv-header-slide 0.3s ease;
  }
}
@media (min-width: 1200px) {
  .site-header.header-transparent-desktop {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
  }
  .site-header.header-transparent-desktop .header-desktop .header-row {
    background-color: transparent;
    border-color: rgba(255, 255, 255, 0.15);
  }
  .site-header.header-transparent-desktop .header-desktop .color-scheme-dark { color: var(--olv-white); }
  .site-header.header-transparent-desktop .site-brand .dark-logo { opacity: 0; }
  .site-header.header-transparent-desktop .site-brand .light-logo { opacity: 1; }
  .site-header.header-transparent-desktop.sticky-header .header-main { background-color: var(--olv-white); color: var(--olv-text); }
}

/* --------------------------------------------------------------------------
   Per-type differences: header-type1.php ... header-type6.php
   -------------------------------------------------------------------------- */
/* type1: plain topbar/main, bordered bottom row with category dropdown */
.header-type1 .header-topbar,
.header-type1 .header-main { border-bottom: 0; }
.header-type1 .header-main .col.center { padding-left: 30px; }
.header-type1 .header-main .col.center .header-search-form { max-width: 720px; }
.header-type1 .header-bottom .col-custom-310 { padding-right: 30px; }
/* type2: dark-blue rows, decorator line under the main row */
.header-type2 .header-main { position: relative; }
.header-type2 .header-decorator {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: currentColor;
  opacity: 0.1;
}
.header-type2 .header-main .col.center { padding-left: 30px; }
.header-type2 .header-main .col.center .header-search-form { max-width: 620px; }
.header-type2 .header-search-form .search-form > button { background-color: var(--olv-primary); }
/* type3: black topbar, menu centered in the main row */
.header-type3 .header-main .col.center { justify-content: center; padding-left: 15px; }
/* type5: sale products tab next to the menu */
.header-type5 .header-main .col.center { padding-left: 30px; }
.header-type5 .header-main .col.center .klb-menu-nav { margin-right: 20px; }
/* type6: search left, centered logo, separated menu in the bottom row */
.header-type6 .header-main .col-auto .header-search-form { min-width: 260px; }
.header-type6 .header-bottom .col { justify-content: center; }

/* help center link + discount products button (header-bottom / type5) */
.custom-link.help-center { margin-left: auto; }
.custom-link.help-center a {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
}
.custom-link.help-center a i { margin-right: 8px; font-size: 24px; }
.custom-button-menu { position: relative; margin-left: 20px; }
.custom-button-menu > a {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary-soft);
  color: var(--olv-primary);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}
.custom-button-menu > a i { margin-right: 6px; font-size: 18px; }
.custom-button-menu > a:hover { background-color: var(--olv-primary); color: var(--olv-white); }
.custom-button-menu .mega-header { margin-bottom: 25px; text-align: center; }
.custom-button-menu .mega-header .entry-title { margin-bottom: 4px; font-size: 22px; }
.custom-button-menu .mega-header .entry-description { color: var(--olv-text-muted); font-size: 14px; }
.custom-button-menu .products {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 20px;
}

/* --------------------------------------------------------------------------
   Mobile header row (all types): hamburger / logo / cart
   -------------------------------------------------------------------------- */
.header-mobile .header-inner > .col.col-auto { width: 38px; }
.header-mobile .header-inner > .col.justify-content-center { justify-content: center; }
.header-mobile .header-action { margin-left: 0; }
.header-mobile .site-brand { max-width: 100%; }

/* --------------------------------------------------------------------------
   Mobile bottom bar: olverin-core/woocommerce-filter/mobile-filter (5 items)
   -------------------------------------------------------------------------- */
.klb-mobile-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100000;
  padding: 10px 20px 8px;
  border-top: 1px solid #eceef0;
  border-radius: 22px 22px 0 0;
  background-color: var(--olv-white);
  color: var(--olv-text);
  box-shadow: 0 0 10px -4px rgba(var(--olv-text-rgb), 0.3);
}
.klb-mobile-bottom .mobile-menu ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 5px 0;
  list-style: none;
}
.klb-mobile-bottom .mobile-menu li { position: relative; }
.klb-mobile-bottom .mobile-menu a {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  color: inherit;
  line-height: 1;
  text-decoration: none;
}
.klb-mobile-bottom .mobile-menu a i {
  position: relative;
  margin-bottom: 5px;
  font-size: 28px;
  line-height: 1;
}
.klb-mobile-bottom .mobile-menu a span {
  font-size: 12px;
  line-height: 1;
  text-transform: capitalize;
  opacity: 0.5;
}
.klb-mobile-bottom .mobile-menu a.active,
.klb-mobile-bottom .mobile-menu a:hover { color: var(--olv-primary); }
.klb-mobile-bottom .mobile-menu a .count {
  position: absolute;
  top: -4px;
  right: -6px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 17px;
  min-width: 17px;
  border-radius: 50%;
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 10px;
  font-weight: 500;
}
@media (max-width: 991.98px) {
  body.admin-bar .klb-mobile-bottom { z-index: 99990; }
}

/* --------------------------------------------------------------------------
   Responsive: tablet 768 / mobile 375
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .header-mobile .header-inner > .col + .col { padding-left: 15px; }
  .header-mobile .site-brand img { max-width: 141px; }
}
@media (min-width: 1200px) {
  .header-desktop { display: block; }
  .header-mobile { display: none; }
}
@media (max-width: 1199.98px) {
  .header-desktop { display: none; }
  .header-mobile { display: block; }
}

/* Coordinator fixes: category select must show "All" without ellipsis; expired countdown keeps zeros only */
.header-search-form .input-search-addon select,
.header-search-form .input-search-addon .form-select { padding-left: 10px; padding-right: 20px; background-position: right 6px center; text-overflow: clip; }
.klb-countdown.is-expired .count-expired { display: none; }
.header-search-form .input-search-addon select,
.header-search-form .input-search-addon .form-select { line-height: normal; height: 100%; }

/* ---- 11-menus.css ---- */
/* ==========================================================================
   Olverin theme: navigation menus
   Authored by Olverin Ventures. Covers nav.klb-menu-nav (horizontal in the
   header rows, vertical inside the drawer), dropdown .sub-menu panels, the
   full-width li.mega-menu.mega-menu-boxed panel, .dropdown-categories
   (models/sidebar-menu.php) and the menu badges. Chevrons are drawn with
   CSS borders / an authored SVG mask so no icon font is needed.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Horizontal menu shell: nav.klb-menu-nav.horizontal > ul.klb-menu
   -------------------------------------------------------------------------- */
.klb-menu-nav { display: flex; align-items: center; height: 100%; }
.klb-menu-nav ul { list-style: none; margin: 0; padding: 0; }
.klb-menu-nav a { color: inherit; text-decoration: none; }
.klb-menu-nav.horizontal > .klb-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  height: 100%;
  column-gap: 17px;
}
.klb-menu-nav.horizontal > .klb-menu > li {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  white-space: nowrap;
}
.klb-menu-nav.horizontal > .klb-menu > li > a {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 6px;
  font-weight: 500;
  transition: color var(--olv-transition);
}
.klb-menu-nav.horizontal > .klb-menu > li:first-child > a { padding-left: 0; }
.klb-menu-nav.horizontal > .klb-menu > li > a:hover,
.klb-menu-nav.horizontal > .klb-menu > li.current-menu-item > a,
.klb-menu-nav.horizontal > .klb-menu > li.current-menu-ancestor > a { color: var(--olv-primary); }
/* icon classes put on the li by the menu editor (e.g. klb-icon-box-iso-thin) */
.klb-menu-nav.horizontal > .klb-menu > li[class*="klb-icon-"] {
  width: auto;
  height: 100%;
  background: none;
  -webkit-mask-image: none;
  mask-image: none;
}
.klb-menu-nav.horizontal > .klb-menu > li[class*="klb-icon-"]::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 5px;
  background-color: currentColor;
  -webkit-mask-image: inherit;
  mask-image: inherit;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
/* chevron after items with children */
.klb-menu-nav.horizontal > .klb-menu > li.menu-item-has-children > a::after {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  margin: -3px 0 0 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.7;
}
/* topbar menus: 12px text, 38px tall */
.header-topbar .klb-menu-nav.horizontal > .klb-menu > li > a { padding: 0; font-size: 12px; font-weight: 400; }
.header-topbar .klb-menu-nav.horizontal > .klb-menu > li.menu-item-has-children > a::after { width: 5px; height: 5px; margin-left: 5px; }
.header-topbar .klb-menu-nav.horizontal > .klb-menu > li > a:hover { color: var(--olv-primary); }
/* type6: items separated by a vertical rule */
.klb-menu-nav.menu-seperate > .klb-menu { column-gap: 0; }
.klb-menu-nav.menu-seperate > .klb-menu > li > a { padding: 0 20px; }
.klb-menu-nav.menu-seperate > .klb-menu > li + li::before {
  content: "";
  width: 1px;
  height: 14px;
  background-color: currentColor;
  opacity: 0.15;
}

/* --------------------------------------------------------------------------
   Dropdown panels: li.menu-item-has-children > ul.sub-menu
   (.border-gray = 1px border, .sub-shadow-md = layered shadow,
    .triangle-enable = caret pointing at the parent link)
   -------------------------------------------------------------------------- */
.klb-menu-nav.horizontal .sub-menu {
  position: absolute;
  top: 100%;
  left: -22px;
  z-index: 10;
  min-width: 220px;
  padding: 10px 0;
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 14px;
  line-height: 1.5;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translateY(3px);
  transition: opacity 0.1s ease-in-out, transform 0.15s ease-in-out, visibility 0.15s;
}
.klb-menu-nav.horizontal .sub-menu .sub-menu { top: -11px; left: 100%; }
.klb-menu-nav.horizontal li:hover > .sub-menu,
.klb-menu-nav.horizontal li.menu-hover > .sub-menu,
.klb-menu-nav.horizontal li.open > .sub-menu,
.klb-menu-nav.horizontal li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.klb-menu-nav.border-gray .sub-menu { border: 1px solid #eceef0; }
.klb-menu-nav.sub-shadow-md .sub-menu {
  box-shadow: 0 1px 3px rgba(var(--olv-text-rgb), 0.05), 0 20px 25px -5px rgba(var(--olv-text-rgb), 0.05), 0 10px 10px -5px rgba(var(--olv-text-rgb), 0.04);
}
.klb-menu-nav.sub-shadow-sm .sub-menu { box-shadow: var(--olv-shadow-sm); }
.klb-menu-nav.horizontal .sub-menu li { position: relative; display: block; }
.klb-menu-nav.horizontal .sub-menu li a {
  display: flex;
  align-items: center;
  padding: 5px 22px;
  transition: color var(--olv-transition), padding var(--olv-transition);
}
.klb-menu-nav.horizontal .sub-menu li a:hover { color: var(--olv-primary); }
.klb-menu-nav.horizontal .sub-menu li.menu-item-has-children > a::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.5;
}
.header-topbar .klb-menu-nav.horizontal .sub-menu { min-width: 0; font-size: 12px; }
.header-topbar .klb-menu-nav.horizontal .sub-menu li a { padding: 4px 22px; line-height: 18px; }
/* caret */
.klb-menu-nav.triangle-enable > .klb-menu > li > .sub-menu::before,
.klb-menu-nav.triangle-enable > .klb-menu > li > .sub-menu::after {
  content: "";
  position: absolute;
  top: -8px;
  left: 18px;
  width: 16px;
  height: 8px;
  background-color: #eceef0;
  -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.klb-menu-nav.triangle-enable > .klb-menu > li > .sub-menu::after { top: -7px; background-color: var(--olv-white); }
/* keep the panel open while moving the pointer over the gap */
.klb-menu-nav.horizontal > .klb-menu > li > .sub-menu { margin-top: 0; }
.klb-menu-nav.horizontal > .klb-menu > li::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  height: 10px;
}

/* --------------------------------------------------------------------------
   Mega menu: li.mega-menu.mega-menu-boxed > ul.sub-menu (full container
   width; columns are the 2nd level, links the 3rd level)
   -------------------------------------------------------------------------- */
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu { position: static; margin-right: 3px; }
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu > .sub-menu {
  top: calc(100% - 1px);
  right: var(--olv-container-pad);
  left: var(--olv-container-pad);
  display: flex;
  flex-wrap: wrap;
  width: auto;
  max-width: calc(var(--olv-container) - 2 * var(--olv-container-pad));
  margin: 0 auto;
  padding: 38px 42px 46px;
  line-height: 1;
  transform: translateY(3px);
}
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu:hover > .sub-menu,
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu.menu-hover > .sub-menu,
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu.is-hover > .sub-menu,
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu.open > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.klb-menu-nav.horizontal li.is-hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
/* alignment variants set by JS when the panel would overflow */
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu.full-width > .sub-menu { right: 0; left: 0; max-width: none; }
.klb-menu-nav.horizontal > .klb-menu > li.mega-menu.align-right > .sub-menu { right: var(--olv-container-pad); left: auto; margin: 0; }
.klb-menu-nav.horizontal > .klb-menu > li.align-right > .sub-menu:not(.mega-menu) { right: -22px; left: auto; }
.klb-menu-nav.triangle-enable > .klb-menu > li.mega-menu > .sub-menu::before,
.klb-menu-nav.triangle-enable > .klb-menu > li.mega-menu > .sub-menu::after { display: none; }
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li {
  position: relative;
  display: block;
  flex: 1 0 0%;
  min-width: 0;
  padding-right: 20px;
}
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-bottom: 22px;
  padding: 0;
  font-weight: 600;
  line-height: 1;
}
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > a::before {
  content: "";
  position: absolute;
  top: 15px;
  right: 0;
  left: 0;
  height: 1px;
  background-color: currentColor;
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > a:hover { color: inherit; }
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > a:hover::before { opacity: 1; }
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li.menu-item-has-children > a::after { display: none; }
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > .sub-menu {
  position: static;
  display: block;
  min-width: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  opacity: 1;
  visibility: visible;
  transform: none;
}
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > .sub-menu li + li { margin-top: 10px; }
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > .sub-menu li a {
  display: inline-flex;
  padding: 0;
  font-size: 14px;
  line-height: 22px;
}
.klb-menu-nav.horizontal li.mega-menu > .sub-menu > li > .sub-menu li a:hover { color: var(--olv-primary); }
/* mega menu with a picture / Elementor template column */
.klb-menu-nav.horizontal li.mega-menu-elementor > .sub-menu { padding: 0; }
.klb-menu-nav.horizontal li.mega-menu-elementor > .sub-menu > li { padding: 0; }
.klb-menu-nav.horizontal li.mega-menu-elementor .elementor { width: 100%; }
.klb-menu-nav.horizontal li.mega-menu .menu-image img { display: block; max-width: 100%; height: auto; }
/* "sale products" tab dropdown (models/discount-products.php) */
.custom-button-menu > .sub-menu.mega-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  z-index: 10;
  width: 1100px;
  max-width: calc(100vw - 2 * var(--olv-container-pad));
  padding: 30px;
  border: 1px solid #eceef0;
  background-color: var(--olv-white);
  color: var(--olv-text);
  box-shadow: var(--olv-shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(3px);
  transition: opacity 0.1s ease-in-out, transform 0.15s ease-in-out, visibility 0.15s;
}
.custom-button-menu:hover > .sub-menu.mega-menu,
.custom-button-menu.open > .sub-menu.mega-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.custom-button-menu > .sub-menu.mega-menu > .container { padding: 0; }

/* --------------------------------------------------------------------------
   Category dropdown: models/sidebar-menu.php (.dropdown-categories)
   -------------------------------------------------------------------------- */
.dropdown-categories { position: relative; width: 100%; }
.dropdown-categories > .dropdown-toggle {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  height: 46px;
  padding: 0 16px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}
.dropdown-categories > .dropdown-toggle::after {
  content: "";
  width: 7px;
  height: 7px;
  margin: -3px 0 0 auto;
  border: 0;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  vertical-align: 0;
}
.dropdown-categories > .dropdown-toggle.gray { background-color: transparent; color: var(--olv-text); }
.dropdown-categories > .dropdown-toggle.gray::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-bg-gray);
}
.dropdown-categories .dropdown-menu-icon { margin-right: 10px; font-size: 22px; line-height: 1; }
.dropdown-categories .dropdown-menu-text { flex: 1; }
.dropdown-categories .dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  z-index: 10;
  display: none;
  float: none;
  min-width: 0;
  margin: 0;
  padding: 10px 0;
  border: 1px solid var(--olv-border);
  border-radius: 0 0 var(--olv-radius-form) var(--olv-radius-form);
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 14px;
  box-shadow: var(--olv-shadow-md);
}
.dropdown-categories .dropdown-menu.show,
.dropdown-categories.open .dropdown-menu { display: block; }
.dropdown-categories .dropdown-menu.primary-border { border-color: var(--olv-primary); }
.dropdown-categories .dropdown-menu ul { list-style: none; margin: 0; padding: 0; }
.dropdown-categories .dropdown-menu li { position: relative; }
.dropdown-categories .dropdown-menu li > a {
  display: flex;
  align-items: center;
  padding: 8px 18px;
  color: inherit;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: color var(--olv-transition), background-color var(--olv-transition);
}
.dropdown-categories .dropdown-menu li > a:hover { color: var(--olv-primary); }
.dropdown-categories .dropdown-menu.style-1 li > a:hover { background-color: var(--olv-bg-gray); }
.dropdown-categories .dropdown-menu li > a i { margin-right: 12px; font-size: 22px; line-height: 1; opacity: 0.8; }
.dropdown-categories .dropdown-menu.colored-icons li > a i { color: var(--olv-primary); opacity: 1; }
.dropdown-categories .dropdown-menu li.menu-item-has-children > a::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-left: auto;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.5;
}
.dropdown-categories .dropdown-menu .sub-menu {
  position: absolute;
  top: -11px;
  left: 100%;
  z-index: 10;
  min-width: 240px;
  padding: 10px 0;
  border: 1px solid #eceef0;
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateX(3px);
  transition: opacity 0.1s ease-in-out, transform 0.15s ease-in-out, visibility 0.15s;
}
.dropdown-categories .dropdown-menu li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.dropdown-categories .dropdown-menu li.menu-item-custom {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--olv-border);
}

/* --------------------------------------------------------------------------
   Vertical menus in the drawer: nav.mobile-menu, .drawer-menu.drawer-primary
   / .drawer-category / .drawer-secondary (canvas-menu.php). JS injects
   span.menu-dropdown > svg.feather-chevron-down and toggles .active on li.
   -------------------------------------------------------------------------- */
.klb-menu-nav.vertical,
.klb-menu-wrapper.vertical { display: block; height: auto; }
.drawer-menu .klb-menu { margin-bottom: 16px; }
.drawer-menu.drawer-primary .klb-menu { margin-bottom: 0; }
.drawer-menu li {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
}
.drawer-menu li > a {
  display: flex;
  flex: 1 0 0%;
  align-items: center;
  max-height: 40px;
  padding: 8px 0;
  color: inherit;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: color var(--olv-transition);
}
.drawer-menu li > a:hover,
.drawer-menu li.current-menu-item > a { color: var(--olv-primary); }
.drawer-menu li > a i { margin-right: 10px; font-size: 20px; }
.drawer-menu.drawer-category li > a { padding: 10px 0; }
.drawer-menu.drawer-secondary li > a { padding: 7px 0; font-size: 13px; line-height: 1; }
.drawer-menu .menu-dropdown {
  display: flex;
  order: 2;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 24px;
  cursor: pointer;
}
.drawer-menu .menu-dropdown svg {
  width: 20px;
  height: 24px;
  stroke: currentColor;
  transition: transform 0.2s ease;
}
.drawer-menu li.active > .menu-dropdown svg,
.drawer-menu li.is-open > .menu-dropdown svg,
.drawer-menu li.open > .menu-dropdown svg { transform: rotate(180deg); }
.drawer-menu .sub-menu {
  position: relative;
  order: 3;
  display: none;
  width: 100%;
  padding-left: 15px;
}
.drawer-menu li.active > .sub-menu,
.drawer-menu li.is-open > .sub-menu,
.drawer-menu li.open > .sub-menu { display: block; }
.drawer-menu .sub-menu li > a { padding: 5px 0; font-size: 14px; font-weight: 400; }
.drawer-menu li.menu-item-custom {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--olv-border);
}
/* mega menu items flatten to an accordion inside the drawer */
.drawer-menu li.mega-menu > .sub-menu > li > a { font-weight: 600; }
.drawer-menu .menu-image { display: none; }

/* --------------------------------------------------------------------------
   Menu badges: span.badge.* / .menu-label inside menu links
   -------------------------------------------------------------------------- */
.klb-menu .badge,
.klb-menu .menu-label,
.dropdown-menu .badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  margin: -2px 0 -2px auto;
  padding: 4px 6px;
  border-radius: 3px;
  background-color: #ced4da;
  color: var(--olv-white);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.klb-menu-nav.horizontal > .klb-menu > li > a .badge,
.klb-menu-nav.horizontal > .klb-menu > li > a .menu-label { margin-left: 6px; }
.klb-menu .badge.hot,
.klb-menu .menu-label.hot { background-color: var(--olv-danger); }
.klb-menu .badge.sale,
.klb-menu .menu-label.sale { background-color: var(--olv-primary); }
.klb-menu .badge.popular,
.klb-menu .menu-label.popular { background-color: var(--olv-success); }
.klb-menu .badge.for.you { background-color: #ced4da; }

/* --------------------------------------------------------------------------
   Responsive: dropdowns exist only in the desktop header (min 1200); the
   drawer menus are vertical at every width.
   -------------------------------------------------------------------------- */
@media (max-width: 1399.98px) {
  .klb-menu-nav.horizontal > .klb-menu > li.mega-menu > .sub-menu { padding: 30px 32px 36px; }
}

/* Coordinator fix: drawer menus show the current item in text color, like the reference */
.site-drawer .klb-menu > li.current-menu-item > a,
.site-drawer .klb-menu > li.current_page_item > a { color: var(--olv-text); }

/* ---- 12-drawers-overlays.css ---- */
/* ==========================================================================
   Olverin theme: drawers and overlays
   Authored by Olverin Ventures. Covers aside.site-drawer (models/canvas-menu.php),
   .site-overlay, .klb-mobile-search (models/search-holder.php), the cart
   dropdown .custom-dropdown-menu with the mini cart (woocommerce/cart/mini-cart.php)
   and .klb-modal-root.authentication-modal (models/account-icon.php).
   JS state classes supported: .open / .is-open / .active on the element, or
   body.drawer-open / body.search-open / body.modal-open; modal uses .is-active.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Off-canvas drawer: aside.site-drawer (left aligned, 340px, 35px gutter)
   -------------------------------------------------------------------------- */
.site-drawer {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: var(--olv-z-drawer);
  width: 340px;
  max-width: calc(100% - 35px);
  background-color: var(--olv-white);
  color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-100%);
  transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s;
}
.site-drawer.open,
.site-drawer.is-open,
.site-drawer.active,
body.menu-open .site-drawer,
body.drawer-open .site-drawer {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}
.site-drawer a { color: inherit; text-decoration: none; }
.site-drawer .site-scrollsa,
.site-drawer .site-scroll {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.site-drawer .drawer-row { position: relative; padding: 20px 25px; }
.site-drawer .drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  padding: 10px 25px;
  border-bottom: 1px solid var(--olv-border);
}
.site-drawer .drawer-body { flex: 1 0 auto; }
.site-drawer .drawer-footer { padding-top: 20px; }
.site-drawer .drawer-heading {
  margin: 10px 0;
  font-family: var(--olv-font-heading);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 1px;
  text-transform: uppercase;
  opacity: 0.3;
}
.site-drawer .site-brand { display: flex; align-items: center; flex-shrink: 0; }
.site-drawer .site-brand a { position: relative; display: flex; align-items: center; }
.site-drawer .site-brand img { max-width: 100%; height: auto; }
.site-drawer .site-brand .light-logo { position: absolute; top: 0; left: 0; opacity: 0; }
/* close buttons (drawer, modal, side cart) */
.site-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  overflow: hidden;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.4s ease, color 0.4s ease;
}
.site-close svg { width: 14px; height: 14px; fill: currentColor; }
.site-close:hover { transform: rotate(90deg); }
/* contact boxes */
.drawer-contact .contact-item { display: flex; flex-direction: column; }
.drawer-contact .contact-item + .contact-item { margin-top: 40px; }
.drawer-contact .contact-header { display: flex; align-items: center; margin-bottom: 2px; }
.drawer-contact .contact-header i { margin-right: 10px; font-size: 20px; line-height: 30px; }
.drawer-contact .contact-title {
  margin: 0;
  font-family: var(--olv-font-heading);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}
.drawer-contact .contact-description { font-size: 13px; line-height: 1.5; opacity: 0.8; }
.drawer-contact .contact-description p { margin: 0; }
.site-drawer .site-copyright { font-size: 12px; font-weight: 500; line-height: 1.5; }
.site-drawer .site-copyright p { margin-bottom: 16px; }
.site-drawer .site-copyright a { color: var(--olv-primary); }
/* page shade behind the drawer / mobile search (div.site-overlay in header.php) */
.site-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 90;
  background-color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s;
}
.site-overlay.active,
.site-overlay.is-visible,
.site-overlay.show,
body.menu-open .site-overlay,
body.drawer-open .site-overlay,
body.search-open .site-overlay {
  opacity: 0.6;
  visibility: visible;
}
body.menu-open,
body.drawer-open,
body.search-open,
body.modal-open { overflow: hidden; }
@media (max-width: 767.98px) {
  .site-drawer .drawer-row,
  .site-drawer .drawer-header { padding-right: 20px; padding-left: 20px; }
  .site-drawer .drawer-header .site-close { width: 38px; height: 38px; }
}

/* --------------------------------------------------------------------------
   Mobile full-screen search: .klb-mobile-search (models/search-holder.php)
   -------------------------------------------------------------------------- */
.klb-mobile-search {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99999;
  background-color: var(--olv-white);
  color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.05s ease, visibility 0.05s;
}
.klb-mobile-search.open,
.klb-mobile-search.is-open,
.klb-mobile-search.active,
body.search-open .klb-mobile-search { opacity: 1; visibility: visible; }
.klb-mobile-search .site-scroll { position: relative; height: 100%; overflow-x: hidden; overflow-y: auto; }
.klb-mobile-search .mobile-search-header {
  position: relative;
  padding: 12px 20px 17px;
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.klb-mobile-search .mobile-search-header p {
  margin: 0 0 7px;
  padding-right: 30px;
  font-size: 12px;
  line-height: 18px;
}
.klb-mobile-search .search-form { position: relative; display: flex; align-items: center; }
.klb-mobile-search .search-form .search-input {
  width: 100%;
  height: 42px;
  padding: 6px 12px 6px 42px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.klb-mobile-search .search-form .search-input:focus { outline: none; box-shadow: none; border-color: transparent; }
.klb-mobile-search .search-form > button {
  position: absolute;
  top: 0;
  left: 0;
  right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 1px 6px;
  border: 0;
  background: none;
  color: var(--olv-text);
  font-size: 20px;
  line-height: 1;
}
.klb-mobile-search .search-form > button:hover { color: var(--olv-primary); }
/* close control: JS may inject .mobile-search-close, otherwise the bottom bar toggles */
.klb-mobile-search .mobile-search-close,
.klb-mobile-search .site-close {
  position: absolute;
  top: 6px;
  right: 10px;
  width: 32px;
  height: 32px;
  color: var(--olv-white);
  cursor: pointer;
}
.klb-mobile-search .searh-caption {
  padding: 10px 20px;
  border-bottom: 1px solid #e6e8eb;
  font-size: 12px;
  line-height: 18px;
}
.klb-mobile-search .searh-caption p { margin: 0; }
.klb-mobile-search .search-results { padding: 15px 20px; }
.klb-mobile-search .search-results-heading {
  display: block;
  margin-bottom: 7px;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
}
.klb-mobile-search .search-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.klb-mobile-search .search-keywords a {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border: 1px solid #dfe2e6;
  border-radius: 1px;
  color: inherit;
  font-size: 12px;
  line-height: 18px;
  text-decoration: none;
  transition: background-color 0.05s, color 0.05s;
}
.klb-mobile-search .search-keywords a:hover {
  border-color: var(--olv-text);
  background-color: var(--olv-text);
  color: var(--olv-white);
}

/* --------------------------------------------------------------------------
   Cart dropdown: .header-action.custom-dropdown > .custom-dropdown-menu
   (models/cart.php). Opens on hover (desktop) or with .show.
   -------------------------------------------------------------------------- */
.custom-dropdown { position: relative; }
.custom-dropdown-menu {
  position: absolute;
  top: 100%;
  right: -12px;
  z-index: 10;
  display: block;
  box-sizing: content-box;
  float: none;
  min-width: 300px;
  margin: 0;
  padding: 9px 0 0;
  border: 0;
  background: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-2px);
  transition: opacity 0.1s ease-in-out, transform 0.15s ease-in-out, visibility 0.15s;
}
.custom-dropdown[data-placement="left"] .custom-dropdown-menu { right: auto; left: -12px; }
.custom-dropdown.show .custom-dropdown-menu,
.custom-dropdown.is-open .custom-dropdown-menu,
.custom-dropdown.open .custom-dropdown-menu,
.custom-dropdown-menu.show,
.custom-dropdown-menu.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.custom-dropdown-body {
  position: relative;
  padding: 16px;
  border: 1px solid #eceef0;
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 14px;
  line-height: 1.5;
  box-shadow: 0 1px 3px rgba(var(--olv-text-rgb), 0.03), 0 1px 2px rgba(var(--olv-text-rgb), 0.05);
}
.custom-dropdown-body::before,
.custom-dropdown-body::after {
  content: "";
  position: absolute;
  top: -10px;
  right: 21px;
  width: 19px;
  height: 10px;
  background-color: #eceef0;
  -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.custom-dropdown-body::after { top: -9px; background-color: var(--olv-white); }
.custom-dropdown[data-placement="left"] .custom-dropdown-body::before,
.custom-dropdown[data-placement="left"] .custom-dropdown-body::after { right: auto; left: 21px; }
.custom-dropdown .cart-discount {
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid #eceef0;
  font-size: 12px;
  line-height: 18px;
  opacity: 0.7;
}
.custom-dropdown .cart-discount p { margin: 0; }
@media (min-width: 1200px) {
  .custom-dropdown:hover .custom-dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
}
@media (max-width: 575.98px) {
  .header-mobile .custom-dropdown-menu { right: -10px; min-width: 290px; }
}

/* --------------------------------------------------------------------------
   Mini cart list (woocommerce/cart/mini-cart.php) inside the dropdown and
   the side cart (.cart-widget-side, olverin-core side-cart module)
   -------------------------------------------------------------------------- */
.fl-mini-cart-content .cart-products {
  display: flex;
  flex-wrap: wrap;
  max-height: 240px;
  margin: 0;
  padding: 0;
  overflow: hidden auto;
  list-style: none;
}
.fl-mini-cart-content .cart-products .product {
  position: relative;
  z-index: 10;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
}
.fl-mini-cart-content .cart-products .product + .product { margin-top: 26px; }
.fl-mini-cart-content .product-inner { display: flex; flex-wrap: wrap; }
.fl-mini-cart-content .thumbnail-wrapper {
  position: relative;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  margin-right: 15px;
}
.fl-mini-cart-content .thumbnail-wrapper img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fl-mini-cart-content .content-wrapper { flex: 1 0 0%; min-width: 0; padding-right: 5px; }
.fl-mini-cart-content .product-title {
  max-width: 100%;
  margin: 0 0 5px;
  overflow: hidden;
  font-family: var(--olv-font-heading);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.fl-mini-cart-content .product-title a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: transparent;
  transition: text-decoration-color var(--olv-transition);
}
.fl-mini-cart-content .product-title a:hover { text-decoration-color: currentColor; }
.fl-mini-cart-content .content-wrapper .price {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}
.fl-mini-cart-content .content-wrapper .amount { color: var(--olv-danger); }
.fl-mini-cart-content .content-wrapper .variation {
  display: flex;
  flex-wrap: wrap;
  gap: 0 6px;
  margin: 3px 0 0;
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.7;
}
.fl-mini-cart-content .content-wrapper .variation dt,
.fl-mini-cart-content .content-wrapper .variation dd { margin: 0; font-weight: 400; }
.fl-mini-cart-content .content-wrapper .variation p { margin: 0; }
.fl-mini-cart-content a.remove {
  display: flex;
  align-self: flex-start;
  justify-content: center;
  width: 22px;
  height: 24px;
  margin: -3px 8px 0 0;
  color: inherit;
  font-size: 16px;
  line-height: 24px;
  text-decoration: none;
  transition: color var(--olv-transition);
}
.fl-mini-cart-content a.remove:hover { color: var(--olv-danger); }
.fl-mini-cart-content .woocommerce-mini-cart__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 10px;
  padding-top: 10px;
  border-top: 1px solid #eceef0;
}
.fl-mini-cart-content .woocommerce-mini-cart__total strong { font-weight: 500; }
.fl-mini-cart-content .woocommerce-mini-cart__total .amount { color: var(--olv-danger); font-weight: 700; }
/* free shipping progress (shipping-progress-bar/free-shipping.php) */
.fl-mini-cart-content .klb-free-shipping {
  position: relative;
  margin-bottom: 12px;
  padding: 8px 12px;
  background-color: #fff5f5;
}
.fl-mini-cart-content .klb-free-shipping.success { background-color: #f1faf3; }
.fl-mini-cart-content .shipping-notice { margin: 0 0 10px; font-size: 12px; line-height: 18px; }
.fl-mini-cart-content .shipping-notice i { margin-right: 4px; vertical-align: -2px; }
.fl-mini-cart-content .shipping-notice .amount { color: var(--olv-danger); font-weight: 600; }
.fl-mini-cart-content .shipping-progress {
  position: relative;
  height: 6px;
  overflow: hidden;
  border-radius: 12px;
  background-color: #ffe0e0;
}
.fl-mini-cart-content .shipping-progress span {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  border-radius: 12px;
  background-color: var(--olv-danger);
  transition: width 0.4s ease;
}
.fl-mini-cart-content .klb-free-shipping.success .shipping-progress { background-color: #d9efdf; }
.fl-mini-cart-content .klb-free-shipping.success .shipping-progress span,
.fl-mini-cart-content .klb-free-shipping.success .shipping-notice .amount { background-color: var(--olv-success); color: var(--olv-success); }
.fl-mini-cart-content .klb-free-shipping.success .shipping-notice .amount { background: none; }
/* buttons row */
.fl-mini-cart-content .woocommerce-mini-cart__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 16px;
}
.fl-mini-cart-content .woocommerce-mini-cart__buttons .button {
  display: flex;
  flex: 1 0 0%;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 18px;
  border: 1px solid currentColor;
  border-radius: 8px;
  background: none;
  color: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.fl-mini-cart-content .woocommerce-mini-cart__buttons .button:hover { background-color: var(--olv-text); color: var(--olv-white); }
.fl-mini-cart-content .woocommerce-mini-cart__buttons .button.checkout {
  border-color: transparent;
  background-color: var(--olv-danger);
  color: var(--olv-white);
}
.fl-mini-cart-content .woocommerce-mini-cart__buttons .button.checkout:hover { background-color: var(--olv-text); }
.custom-dropdown-body .fl-mini-cart-content .woocommerce-mini-cart__buttons { margin-bottom: 0; }
/* empty state */
.fl-mini-cart-content .cart-empty { padding: 10px 0; text-align: center; }
.fl-mini-cart-content .empty-icon svg { width: 56px; height: 56px; fill: currentColor; opacity: 0.25; }
.fl-mini-cart-content .empty-text { margin-top: 12px; font-size: 14px; font-weight: 500; opacity: 0.6; }

/* --------------------------------------------------------------------------
   Login modal: .klb-modal-root.authentication-modal (models/account-icon.php)
   -------------------------------------------------------------------------- */
.klb-modal-root {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--olv-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s;
}
.klb-modal-root.is-active,
.klb-modal-root.is-open,
.klb-modal-root.active,
.klb-modal-root.open { opacity: 1; visibility: visible; }
/* fixed ajax notices (add to cart / login feedback), container injected by JS */
.klb-ajax-notices {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: var(--olv-z-modal);
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 360px;
  max-width: calc(100% - 40px);
  pointer-events: none;
}
.klb-ajax-notices > * { pointer-events: auto; }
.klb-ajax-notices .woocommerce-message,
.klb-ajax-notices .woocommerce-error,
.klb-ajax-notices .woocommerce-info {
  margin: 0;
  padding: 12px 16px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-text);
  color: var(--olv-white);
  font-size: 13px;
  line-height: 1.5;
  box-shadow: var(--olv-shadow-lg);
  list-style: none;
}
.klb-ajax-notices .woocommerce-error { background-color: var(--olv-danger); }
.klb-ajax-notices a { color: inherit; text-decoration: underline; }
@media (max-width: 991.98px) {
  .klb-ajax-notices { right: 15px; bottom: 85px; }
}
.klb-modal-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--olv-text);
  opacity: 0.2;
}
.klb-modal-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 30px);
  overflow: auto;
  background-color: var(--olv-white);
  color: var(--olv-text);
  transform: translateY(20px);
  transition: opacity 0.1s ease, transform 0.3s ease;
}
.klb-modal-root.is-active .klb-modal-inner,
.klb-modal-root.is-open .klb-modal-inner,
.klb-modal-root.active .klb-modal-inner,
.klb-modal-root.open .klb-modal-inner { transform: translateY(0); }
.authentication-modal-banner { position: relative; display: none; }
.authentication-modal-banner a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 620px;
}
.authentication-modal-banner img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.klb-authentication-modal {
  display: flex;
  flex-direction: column;
  max-width: 526px;
  padding-top: 50px;
}
.klb-authentication-modal .klb-modal-header {
  position: static;
  margin-bottom: 40px;
  text-align: center;
}
.klb-authentication-modal .klb-modal-header .entry-title {
  margin: 0 0 8px;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.klb-authentication-modal .klb-modal-header .site-close {
  position: absolute;
  top: 10px;
  right: 10px;
}
.klb-authentication-form {
  position: relative;
  overflow: hidden;
  padding: 0 70px;
}
.klb-authentication-inner { display: flex; transition: transform 0.4s ease; }
.klb-authentication-inner > .klb-login-form,
.klb-authentication-inner > .klb-register-form { flex: 0 0 100%; width: 100%; }
.klb-authentication-form.show-register .klb-authentication-inner,
.klb-authentication-form.register-active .klb-authentication-inner { transform: translateX(-100%); }
.klb-authentication-modal form { margin: 0; }
.klb-authentication-modal .form-row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 0;
}
.klb-authentication-modal .form-row label {
  position: relative;
  display: block;
  width: 100%;
  margin-bottom: 5px;
  font-size: 13px;
  line-height: 1.5;
}
.klb-authentication-modal .form-row label .required { color: var(--olv-danger); text-decoration: none; }
.klb-authentication-modal .form-row .input-text {
  width: 100%;
  height: 44px;
  padding: 1px 12px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: border-color var(--olv-transition), background-color var(--olv-transition), box-shadow var(--olv-transition);
}
.klb-authentication-modal .form-row .input-text:focus {
  border-color: var(--olv-primary);
  background-color: var(--olv-white);
  box-shadow: 0 0 0 1px var(--olv-primary);
  outline: none;
}
.klb-authentication-modal .woocommerce-form__label-for-checkbox {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: auto;
  margin-bottom: 14px;
  cursor: pointer;
}
.klb-authentication-modal .woocommerce-form__input-checkbox {
  width: 17px;
  height: 17px;
  margin: 0 8px 0 0;
  border-radius: 4px;
  accent-color: var(--olv-primary);
}
.klb-authentication-modal .woocommerce-form-login__submit,
.klb-authentication-modal .woocommerce-form-register__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 46px;
  padding: 1px 18px;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.klb-authentication-modal .woocommerce-form-login__submit:hover,
.klb-authentication-modal .woocommerce-form-register__submit:hover { background-color: var(--olv-text); }
.klb-authentication-modal .lost-password p { margin: 0 0 16px; text-align: center; }
.klb-authentication-modal .lost-password a {
  position: relative;
  padding: 2px 0;
  color: inherit;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}
.klb-authentication-modal .lost-password a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: currentColor;
  transition: opacity var(--olv-transition);
}
.klb-authentication-modal .lost-password a:hover::after { opacity: 0; }
.klb-authentication-modal .privacy-text {
  margin: 30px 0 16px;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
  white-space: normal;
}
.klb-authentication-modal .privacy-text a { color: inherit; text-decoration: underline; }
.klb-authentication-modal .woocommerce-notices-wrapper .woocommerce-error,
.klb-authentication-modal .woocommerce-notices-wrapper .woocommerce-message { margin-bottom: 16px; }
.klb-authentication-tab {
  margin-top: auto;
  padding: 15px 0;
  border-top: 1px solid #e6e8eb;
  color: #adb5bd;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.klb-authentication-tab p { margin: 0; }
.klb-authentication-tab a { color: var(--olv-info); text-decoration: none; }
.klb-authentication-tab a:hover { text-decoration: underline; }
@media (max-width: 767.98px) {
  .klb-authentication-modal { padding-top: 40px; }
  .klb-authentication-modal .klb-modal-header { margin-bottom: 25px; }
  .klb-authentication-form { padding: 0 20px; }
  .klb-authentication-modal .privacy-text { margin-top: 16px; }
}
@media (min-width: 1024px) {
  .authentication-modal .klb-modal-inner {
    display: grid;
    grid-template-columns: 466px minmax(0, 520px);
    max-width: 986px;
    overflow: hidden;
  }
  .authentication-modal-banner { display: block; }
  .klb-authentication-modal { width: 100%; }
}

/* ---- 20-footer.css ---- */
/* ==========================================================================
   Olverin theme: site footer
   Styles includes/footer/footer-type1.php and footer-type2.php (selected by
   includes/footer/main_footer.php). Mobile first; measured at 375 / 768 / 1440.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Footer shell and row color layouts
   -------------------------------------------------------------------------- */
.site-footer {
  position: relative;
  margin-top: 30px;
  color: var(--olv-text);
}
.site-footer .footer-row {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.site-footer .footer-inner {
  display: flex;
}
.site-footer .footer-row.color-layout-white { background-color: var(--olv-white); }
.site-footer .footer-row.color-layout-light-gray { background-color: var(--olv-white); }
.site-footer .footer-row.color-layout-baby-light { background-color: var(--olv-bg-baby-light); }
.site-footer .footer-row.color-layout-image { background-color: var(--olv-bg-baby-light); }
.site-footer .footer-row.color-layout-black { background-color: var(--olv-text); color: var(--olv-white); }

/* border helpers used on the rows */
.site-footer .footer-row.bordered-top { border-top: 1px solid var(--olv-border); }
.site-footer .footer-row.bordered-bottom { border-bottom: 1px solid var(--olv-border); }
.site-footer .footer-row.bordered-top-inner .footer-inner { border-top: 1px solid var(--olv-border); }
.site-footer .footer-row.bordered-bottom-inner .footer-inner { border-bottom: 1px solid var(--olv-border); }
.site-footer .footer-row.border-theme-15.bordered-top-inner .footer-inner,
.site-footer .footer-row.border-theme-15.bordered-bottom-inner .footer-inner { border-color: var(--olv-border-15); }
.site-footer .footer-row.pt-120 { padding-top: 120px; }
.site-footer .footer-inner.pb-0 { padding-bottom: 0; }

@media (min-width: 992px) {
  .site-footer { margin-top: 60px; }
}

/* --------------------------------------------------------------------------
   Newsletter band  (.footer-row.footer-newsletter.style-1)
   -------------------------------------------------------------------------- */
.site-footer .footer-newsletter .footer-inner {
  flex-direction: column;
  align-items: center;
  padding: 20px 0;
  text-align: center;
}
.site-footer .footer-newsletter .newsletter-text {
  max-width: 560px;
}
.site-footer .footer-newsletter .entry-title {
  margin-bottom: 8px;
  font-family: var(--olv-font-heading);
  font-size: 20px;
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
}
.site-footer .footer-newsletter .entry-caption p {
  margin-bottom: 0;
  font-size: 15px;
  line-height: 1.5;
  opacity: 0.6;
}
.site-footer .footer-newsletter .form-column {
  width: 280px;
  margin-top: 30px;
}
.site-footer .footer-newsletter .newsletter-form {
  position: relative;
  width: 100%;
  min-width: 280px;
  max-width: 460px;
}

@media (min-width: 768px) {
  .site-footer .footer-newsletter .footer-inner {
    flex-direction: row;
    justify-content: space-between;
    margin: 0 -20px;
    padding: 40px 0;
    text-align: left;
  }
  .site-footer .footer-newsletter .column {
    flex: 1 0 0%;
    padding: 0 20px;
  }
  .site-footer .footer-newsletter .form-column {
    display: flex;
    justify-content: flex-end;
    width: auto;
    margin-top: 0;
  }
  .site-footer .footer-newsletter .entry-title { font-size: 26px; }
}
@media (min-width: 1200px) {
  .site-footer .footer-newsletter .footer-inner { padding: 60px 0; }
}

/* --------------------------------------------------------------------------
   Widget area  (.footer-row.footer-widgets)
   -------------------------------------------------------------------------- */
.site-footer .footer-widgets {
  border-top: 1px solid var(--olv-border);
}
.site-footer .footer-widgets .footer-inner {
  flex-direction: column;
  row-gap: 20px;
  padding: 20px 0;
}
.site-footer .footer-widgets .column {
  position: relative;
}
.site-footer .footer-widgets .column-widgets {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}
.site-footer .footer-widgets .widget-column {
  flex: 1 0 0%;
}
/* 3 / 5 column variants use bootstrap cols inside a flex row */
.site-footer .footer-widgets .footer-inner > .col {
  padding: 0;
}

@media (min-width: 768px) {
  .site-footer .footer-widgets .footer-inner {
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 -20px;
    padding: 40px 0;
  }
  .site-footer .footer-widgets .column-brand {
    flex-shrink: 0;
    width: 380px;
    padding: 0 20px;
  }
  .site-footer .footer-widgets .column-widgets {
    flex: 1 0 0%;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 40px;
    padding-right: 20px;
    padding-left: 80px;
  }
  .site-footer .footer-widgets .column-widgets::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 1px;
    height: 100%;
    background-color: currentColor;
    opacity: 0.1;
  }
  .site-footer .footer-widgets .widget-column {
    min-width: 140px;
  }
  .site-footer .footer-widgets .footer-inner > .col { padding: 0 20px; }
}
@media (min-width: 1200px) {
  .site-footer .footer-widgets .footer-inner {
    margin: 0 -40px;
    padding: 80px 0;
  }
  .site-footer .footer-widgets .column-brand { padding: 0 40px; }
  .site-footer .footer-widgets .column-widgets { padding-right: 40px; }
  .site-footer .footer-widgets .footer-inner > .col { padding: 0 40px; }
}

/* footer widget frame */
.site-footer .widget {
  position: relative;
  margin-bottom: 0;
}
.site-footer .widget + .widget { margin-top: 30px; }
.site-footer .widget .widget-title,
.site-footer .widget .widgettitle {
  display: block;
  margin: 0 0 10px;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
  color: inherit;
}
@media (min-width: 992px) {
  .site-footer .widget .widget-title,
  .site-footer .widget .widgettitle {
    margin-bottom: 20px;
    font-size: 15px;
  }
}

/* text widget: "Do You Need Help?" (config/widgets.json footer-1) */
.site-footer .widget_text .widget-body { font-size: 14px; line-height: 1.5; }
.site-footer .widget_text .widget-body p { margin-bottom: 16px; }
.site-footer .widget_text .widget-body p:last-child { margin-bottom: 0; }
.site-footer .company-details { position: relative; }
.site-footer .company-details p { margin-bottom: 16px; font-size: 14px; line-height: 1.5; }
.site-footer .company-details p:last-child { margin-bottom: 0; }
.site-footer .company-details .company-phone {
  margin-bottom: 3px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.1;
}
.site-footer .company-details .company-phone a,
.site-footer .company-details .company-phone strong { color: var(--olv-primary); }
.site-footer .company-details .company-email a {
  position: relative;
  padding: 2px 0;
  font-weight: 500;
  color: inherit;
}
.site-footer .company-details .company-email a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.site-footer .company-details .company-email a:hover::before { opacity: 1; }
.site-footer .company-details .company-hours strong {
  display: block;
  font-weight: 700;
}
@media (min-width: 992px) {
  .site-footer .company-details .company-phone { font-size: 24px; }
}

/* menu widgets: Get to Know Us / Let Us Help You / Make Money with Us */
.site-footer .widget_nav_menu ul,
.site-footer .widget ul.menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer .widget_nav_menu ul li { margin-bottom: 8px; font-size: 14px; line-height: 1.5; }
.site-footer .widget_nav_menu ul li:last-child { margin-bottom: 0; }
.site-footer .widget_nav_menu ul ul { padding-left: 12px; margin-top: 8px; }
.site-footer .widget_nav_menu ul li a {
  display: inline-block;
  color: inherit;
  transition: color var(--olv-transition);
}
.site-footer .widget_nav_menu ul li a:hover { color: var(--olv-primary); }
.site-footer .footer-row.color-layout-black .widget_nav_menu ul li a:hover { opacity: 0.7; }

/* --------------------------------------------------------------------------
   Social + application row  (.footer-row.footer-social)
   -------------------------------------------------------------------------- */
.site-footer .footer-social .footer-inner {
  flex-direction: column;
  row-gap: 15px;
  padding: 20px 0;
}
.site-footer .site-social,
.site-footer .site-application {
  display: flex;
  flex-direction: column;
}
.site-footer .site-social ul,
.site-footer .site-application ul {
  display: flex;
  align-items: center;
  column-gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer .social-label,
.site-footer .app-label {
  margin-bottom: 7px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.site-footer .site-social li { width: 30px; height: 30px; }
.site-footer .site-social li a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 13px;
  color: inherit;
  transition: color var(--olv-transition);
}
.site-footer .site-social li a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  opacity: 0.1;
  transition: opacity var(--olv-transition), background-color var(--olv-transition);
}
.site-footer .site-social ul.rounded-style li a::before { border-radius: 50%; }
.site-footer .site-social li a i {
  position: relative;
  z-index: 1;
  font-size: inherit;
  line-height: 1;
}
.site-footer .site-social li a.whatsapp,
.site-footer .site-social li a.instagram,
.site-footer .site-social li a.telegram { font-size: 15px; }
.site-footer .site-social ul.color-theme li a:hover { color: var(--olv-primary); }
.site-footer .site-social li a:hover::before { opacity: 0.15; }

.site-footer .site-application li img {
  display: block;
  width: auto;
  height: 35px;
}
.site-footer .site-application li a { display: block; }

@media (min-width: 768px) {
  .site-footer .footer-social .footer-inner {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    padding: 25px 0;
  }
  .site-footer .site-social,
  .site-footer .site-application {
    flex-direction: row;
    align-items: center;
  }
  .site-footer .social-label,
  .site-footer .app-label {
    margin: 0 10px 0 0;
  }
  .site-footer .site-application { margin-left: auto; }
  .site-footer .site-social li { width: 36px; height: 36px; }
  .site-footer .site-social li a { font-size: 15px; }
  .site-footer .site-social li a.whatsapp,
  .site-footer .site-social li a.instagram,
  .site-footer .site-social li a.telegram { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   Copyright row  (.footer-row.footer-copyright)
   -------------------------------------------------------------------------- */
.site-footer .footer-copyright .footer-inner {
  flex-wrap: wrap;
  align-items: center;
  row-gap: 15px;
  padding: 20px 0;
}
.site-footer .site-copyright p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
.site-footer .site-copyright a {
  position: relative;
  padding: 2px 0;
  font-weight: 500;
  color: inherit;
}
.site-footer .site-copyright a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transition: opacity var(--olv-transition);
}
.site-footer .site-copyright a:hover::before { opacity: 0; }

.site-footer .site-payment-cards {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
}
.site-footer .payment-cards-label {
  margin-right: 10px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
.site-footer .payment-cards {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 6px;
  row-gap: 6px;
}
.site-footer .payment-cards .card-item {
  display: inline-flex;
  align-items: center;
}
.site-footer .payment-cards .card-item img {
  display: block;
  width: auto;
  height: 24px;
}

@media (min-width: 768px) {
  .site-footer .footer-copyright .footer-inner { padding: 30px 0 50px; }
  .site-footer .site-payment-cards {
    width: auto;
    margin-left: auto;
  }
}

/* --------------------------------------------------------------------------
   Footer type 2 specifics (includes/footer/footer-type2.php)
   -------------------------------------------------------------------------- */
.site-footer.footer-type2 .footer-widgets {
  border-top: 0;
}
.site-footer.footer-type2 .footer-widgets.color-layout-image {
  background-position: center top;
}
.site-footer.footer-type2 .footer-social .footer-inner {
  border-top: 1px solid var(--olv-border);
  border-bottom: 1px solid var(--olv-border);
}
.site-footer.footer-type2 .footer-copyright .footer-inner {
  padding: 20px 0;
}
@media (min-width: 768px) {
  .site-footer.footer-type2 .footer-copyright .footer-inner { padding: 25px 0; }
}

/* ---- 21-widgets.css ---- */
/* ==========================================================================
   Olverin theme: sidebar widgets
   Generic .widget frame (blog sidebar, shop filter sidebar, mobile filter
   drawer), block widgets from config/widgets.json, olverin-core widgets
   (popular_posts, social_media, product_status, klb_product_categories) and
   the WooCommerce shop widgets (price filter, layered nav, tag cloud, recent
   reviews, cart). Mobile first; measured at 375 (filter drawer) and 1440.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Widget frame
   -------------------------------------------------------------------------- */
.widget {
  position: relative;
  margin-bottom: 20px;
  font-size: 13px;
  line-height: 1.5;
}
.sidebar-column .widget:last-child,
.filter-sidebar-body .widget:last-child { margin-bottom: 0; }
.widget .widget-title,
.widget .widgettitle,
.widget .wp-block-group > h2,
.widget .wp-block-group > h3,
.widget .wp-block-heading {
  display: block;
  margin: 0 0 10px;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
  color: var(--olv-text);
}
.widget ul { margin: 0; padding: 0; list-style: none; }
.widget ul ul { padding-left: 15px; }
.widget a { color: inherit; }
.widget-body { position: relative; }

@media (min-width: 992px) {
  .widget { margin-bottom: 40px; }
  .widget .widget-title,
  .widget .widgettitle,
  .widget .wp-block-group > h2,
  .widget .wp-block-group > h3,
  .widget .wp-block-heading { margin-bottom: 20px; font-size: 15px; } }

/* --------------------------------------------------------------------------
   Checkbox lists (.widget-checkbox-list): product categories, product status
   widget-product-categories.php / product-status widget in olverin-core
   -------------------------------------------------------------------------- */
.widget-checkbox-list ul li { position: relative; }
.widget-checkbox-list ul li a {
  display: flex;
  align-items: center;
  padding: 1px 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--olv-text);
  transition: color var(--olv-transition);
}
.widget-checkbox-list ul li a:hover { color: var(--olv-primary); }
.widget-checkbox-list ul li a input[type="checkbox"] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--olv-border-strong);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-input-bg);
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: background-color var(--olv-transition), border-color var(--olv-transition);
}
.widget-checkbox-list ul li a input[type="checkbox"]:checked {
  border-color: var(--olv-primary);
  background-color: var(--olv-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2 5 8.6l4.5-5.2'/%3E%3C/svg%3E");
  background-size: 12px 12px;
  background-position: center;
  background-repeat: no-repeat;
}
.widget-checkbox-list ul li a label {
  position: relative;
  flex: 1 1 auto;
  margin: 0 0 0 10px;
  cursor: pointer;
}
.widget-checkbox-list ul li a label span { display: inline; }
.widget-checkbox-list ul li.current-cat > a,
.widget-checkbox-list ul li.active > a { color: var(--olv-primary); }

/* parent categories: extra top gap, +/- toggle drawn on the right */
.widget-checkbox-list ul li.cat-parent { margin-top: 8px; }
.widget-checkbox-list ul li.cat-parent > a { padding-right: 28px; }
.widget-checkbox-list ul li .subDropdown {
  position: absolute;
  top: 2px;
  right: 0;
  display: block;
  width: 20px;
  height: 20px;
  cursor: pointer;
}
.widget-checkbox-list ul li .subDropdown::before,
.widget-checkbox-list ul li .subDropdown::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  background-color: var(--olv-text);
  opacity: 0.6;
  transform: translate(-50%, -50%);
}
.widget-checkbox-list ul li .subDropdown::before { width: 11px; height: 1px; }
.widget-checkbox-list ul li .subDropdown::after { width: 1px; height: 11px; }
.widget-checkbox-list ul li .subDropdown.minus::after { display: none; }
.widget-checkbox-list ul.children { padding-left: 26px; }
.widget-checkbox-list ul.children li { margin-top: 0; }

/* --------------------------------------------------------------------------
   WooCommerce layered nav (Filter by Color, Brands)
   -------------------------------------------------------------------------- */
.widget_layered_nav ul.woocommerce-widget-layered-nav-list { margin-bottom: 16px; }
.widget_layered_nav .woocommerce-widget-layered-nav-list__item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 14px;
  line-height: 1.5;
}
.widget_layered_nav .woocommerce-widget-layered-nav-list__item a {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: var(--olv-text);
  transition: color var(--olv-transition);
}
.widget_layered_nav .woocommerce-widget-layered-nav-list__item a:hover { color: var(--olv-primary); }
.widget_layered_nav .woocommerce-widget-layered-nav-list__item .count { margin-left: 4px; font-size: 13px; opacity: 0.55; }
.widget_layered_nav .woocommerce-widget-layered-nav-list__item.chosen a { color: var(--olv-primary); }
.widget_layered_nav .woocommerce-widget-layered-nav-list__item.chosen a::after { content: "\00d7"; margin-left: 6px; font-size: 12px; }
/* color swatches: the color attribute links carry filter_color=<slug> */
.widget_layered_nav a[href*="filter_color="]::before {
  content: "";
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin-right: 8px;
  border: 1px solid var(--olv-border-15);
  border-radius: 50%;
  background-color: #ddd;
}
.widget_layered_nav a[href*="filter_color=black"]::before { background-color: #1b1f22; }
.widget_layered_nav a[href*="filter_color=blue"]::before { background-color: #3b7ddd; }
.widget_layered_nav a[href*="filter_color=brown"]::before { background-color: #8b5a2b; }
.widget_layered_nav a[href*="filter_color=gray"]::before,
.widget_layered_nav a[href*="filter_color=grey"]::before { background-color: #9aa0a6; }
.widget_layered_nav a[href*="filter_color=green"]::before { background-color: #3aa655; }
.widget_layered_nav a[href*="filter_color=orange"]::before { background-color: #f28b30; }
.widget_layered_nav a[href*="filter_color=red"]::before { background-color: #e0342b; }
.widget_layered_nav a[href*="filter_color=yellow"]::before { background-color: #f4c531; }
.widget_layered_nav a[href*="filter_color=white"]::before { background-color: #ffffff; }
.widget_layered_nav a[href*="filter_color=pink"]::before { background-color: #f08fb4; }
.widget_layered_nav a[href*="filter_color=purple"]::before { background-color: #8e5bd1; }
.widget_layered_nav a[href*="filter_color=beige"]::before { background-color: #e8d5b5; }
/* dropdown display type */
.widget_layered_nav .woocommerce-widget-layered-nav-dropdown .select2-container { width: 100% !important; }
.widget_layered_nav .woocommerce-widget-layered-nav-dropdown__submit { margin-top: 10px; }

/* --------------------------------------------------------------------------
   WooCommerce price filter (.widget_price_filter) - jQuery UI slider
   -------------------------------------------------------------------------- */
.widget_price_filter .price_slider_wrapper { position: relative; }
.widget_price_filter .price_slider_amount {
  display: flex;
  align-items: flex-end;
  column-gap: 10px;
  margin-bottom: 20px;
}
.widget_price_filter .price_slider_amount .min-price { position: relative; flex: 1 1 0%; min-width: 0; }
.widget_price_filter .price-placeholder {
  display: block;
  margin-bottom: 5px;
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.6;
}
.widget_price_filter .price_slider_amount input[type="text"] {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--olv-input-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-input-bg);
  font-size: 14px;
  color: var(--olv-text);
  outline: 0;
}
.widget_price_filter .price_slider_amount input[type="text"]:focus { border-color: var(--olv-text); }
.widget_price_filter .price_slider_amount .separator { flex-shrink: 0; padding-bottom: 10px; opacity: 0.5; }
.widget_price_filter .price_slider {
  position: relative;
  height: 4px;
  margin: 8px 8px 24px;
  border-radius: var(--olv-radius-round);
  background-color: var(--olv-border);
}
.widget_price_filter .price_slider .ui-slider-range {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: var(--olv-radius-round);
  background-color: var(--olv-primary);
}
.widget_price_filter .price_slider .ui-slider-handle {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 16px;
  height: 16px;
  margin-left: -8px;
  border: 2px solid var(--olv-primary);
  border-radius: 50%;
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-sm);
  outline: 0;
  cursor: pointer;
  transform: translateY(-50%);
  transition: box-shadow var(--olv-transition);
}
.widget_price_filter .price_slider .ui-slider-handle:hover,
.widget_price_filter .price_slider .ui-slider-handle.ui-state-active { box-shadow: 0 0 0 4px var(--olv-primary-soft); }
.widget_price_filter .price_slider_bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 12px;
}
.widget_price_filter .price_slider_bottom .price_slider_amount { margin-bottom: 0; }
.widget_price_filter .price_slider_bottom .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--olv-btn-h-sm);
  padding: 0 var(--olv-btn-px);
  border: 1px solid var(--olv-text);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-text);
  font-size: 13px;
  font-weight: var(--olv-btn-weight);
  color: var(--olv-white);
  cursor: pointer;
  transition: background-color var(--olv-transition), border-color var(--olv-transition);
}
.widget_price_filter .price_slider_bottom .button:hover { border-color: var(--olv-primary); background-color: var(--olv-primary); }
.widget_price_filter .price_label { font-size: 13px; opacity: 0.7; }
.widget_price_filter .clear { clear: both; }

/* --------------------------------------------------------------------------
   Block widgets used in the blog sidebar (search, latest posts, comments)
   -------------------------------------------------------------------------- */
.widget .wp-block-search__inside-wrapper {
  display: flex;
  border: 1px solid var(--olv-input-border);
  border-radius: var(--olv-radius-form);
  overflow: hidden;
}
.widget .wp-block-search__input {
  flex: 1 1 auto;
  min-width: 0;
  height: var(--olv-input-h);
  padding: 0 15px;
  border: 0;
  background-color: var(--olv-input-bg);
  font-size: 14px;
  color: var(--olv-text);
  outline: 0;
}
.widget .wp-block-search__button {
  flex-shrink: 0;
  height: var(--olv-input-h);
  margin: 0;
  padding: 0 18px;
  border: 0;
  background-color: var(--olv-text);
  font-size: 13px;
  font-weight: var(--olv-btn-weight);
  color: var(--olv-white);
  cursor: pointer;
  transition: background-color var(--olv-transition);
}
.widget .wp-block-search__button:hover { background-color: var(--olv-primary); }
.widget .wp-block-search__label { display: none; }
.widget .wp-block-latest-posts li,
.widget .wp-block-latest-comments li,
.widget .wp-block-categories li,
.widget .wp-block-archives li,
.widget ul.wp-block-page-list li {
  margin-bottom: 8px;
  padding: 0;
  font-size: 14px;
  line-height: 1.5;
}
.widget .wp-block-latest-posts li a,
.widget .wp-block-latest-comments__comment a,
.widget .wp-block-categories li a,
.widget .wp-block-archives li a { transition: color var(--olv-transition); }
.widget .wp-block-latest-posts li a:hover,
.widget .wp-block-latest-comments__comment a:hover,
.widget .wp-block-categories li a:hover,
.widget .wp-block-archives li a:hover { color: var(--olv-primary); }
.widget .wp-block-latest-comments__comment-meta { font-size: 13px; }
.widget .wp-block-latest-comments__comment-meta a { font-weight: 500; }
.widget .wp-block-latest-posts__post-date { display: block; font-size: 12px; opacity: 0.6; }
.widget .wp-block-group { margin: 0; }

/* --------------------------------------------------------------------------
   Popular posts (olverin-core widget_popular_posts)
   -------------------------------------------------------------------------- */
.widget_popular_posts .posts-list li.post {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.widget_popular_posts .posts-list li.post:last-child { margin-bottom: 0; }
.widget_popular_posts .entry-media { flex-shrink: 0; width: 66px; margin: 0 15px 10px 0; }
.widget_popular_posts .entry-media a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--olv-radius);
}
.widget_popular_posts .entry-media img { display: block; width: 100%; height: auto; }
.widget_popular_posts .entry-wrapper { flex: 1 0 0%; min-width: 0; }
.widget_popular_posts .entry-title {
  margin: 0 0 10px;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
}
.widget_popular_posts .entry-title a { display: inline-block; color: var(--olv-text); transition: color var(--olv-transition); }
.widget_popular_posts .entry-title a:hover { color: var(--olv-primary); }
.widget_popular_posts .entry-meta {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 10px;
  font-size: 12px;
  line-height: 1;
}
.widget_popular_posts .entry-published { display: flex; align-items: center; opacity: 0.6; }

/* --------------------------------------------------------------------------
   Social media widget (olverin-core widget_social_media)
   -------------------------------------------------------------------------- */
.widget_social_media .site-social.for-widget ul { display: flex; flex-wrap: wrap; row-gap: 8px; }
.widget_social_media .site-social.for-widget li { flex: 0 0 100%; width: 100%; }
.widget_social_media .site-social.for-widget li a {
  display: inline-flex;
  align-items: center;
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-text);
  font-size: 14px;
  color: var(--olv-white);
  transition: opacity var(--olv-transition);
}
.widget_social_media .site-social.for-widget li a:hover { opacity: 0.85; }
.widget_social_media .social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  font-size: 15px;
}
.widget_social_media .social-label {
  margin-left: 20px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}
/* brand colors for the .social-color list */
.site-social ul.social-color a.facebook { background-color: #1877f2; }
.site-social ul.social-color a.twitter { background-color: #1da1f2; }
.site-social ul.social-color a.pinterest { background-color: #e60023; }
.site-social ul.social-color a.linkedin { background-color: #0077b5; }
.site-social ul.social-color a.youtube { background-color: #ff0000; }
.site-social ul.social-color a.instagram { background-color: #e1306c; }
.site-social ul.social-color a.whatsapp { background-color: #25d366; }
.site-social ul.social-color a.telegram { background-color: #229ed9; }
.site-social ul.social-color a.tiktok { background-color: #010101; }

/* --------------------------------------------------------------------------
   Other WooCommerce sidebar widgets
   -------------------------------------------------------------------------- */
.widget_product_tag_cloud .tagcloud,
.widget_tag_cloud .tagcloud { display: flex; flex-wrap: wrap; gap: 6px; }
.widget_product_tag_cloud .tagcloud a,
.widget_tag_cloud .tagcloud a {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  font-size: 13px !important;
  line-height: 1;
  color: var(--olv-text);
  transition: border-color var(--olv-transition), color var(--olv-transition);
}
.widget_product_tag_cloud .tagcloud a:hover,
.widget_tag_cloud .tagcloud a:hover { border-color: var(--olv-primary); color: var(--olv-primary); }

.widget .product_list_widget li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 15px;
  padding: 0;
  font-size: 14px;
  line-height: 1.4;
}
.widget .product_list_widget li:last-child { margin-bottom: 0; }
.widget .product_list_widget li > a { display: flex; align-items: center; flex: 1 1 0%; font-weight: 500; }
.widget .product_list_widget li img {
  float: none;
  order: -1;
  width: 60px;
  height: auto;
  margin: 0 15px 0 0;
  flex-shrink: 0;
}
.widget .product_list_widget li .star-rating { margin: 4px 0; font-size: 11px; color: var(--olv-star); }
.widget .product_list_widget li .reviewer { display: block; width: 100%; font-size: 12px; opacity: 0.6; }
.widget .product_list_widget li .amount { font-weight: 600; }
.widget .product_list_widget li del { opacity: 0.5; margin-right: 4px; }
.widget .product_list_widget li ins { text-decoration: none; }
.widget .product_list_widget li .quantity { width: 100%; font-size: 13px; opacity: 0.7; }
.widget .product_list_widget li a.remove {
  order: 1;
  margin-left: auto;
  font-size: 16px;
  line-height: 1;
  color: var(--olv-text);
  opacity: 0.5;
}
.widget .product_list_widget li a.remove:hover { opacity: 1; color: var(--olv-danger); }

.widget_shopping_cart .woocommerce-mini-cart__total {
  display: flex;
  justify-content: space-between;
  margin: 15px 0;
  padding-top: 15px;
  border-top: 1px solid var(--olv-border);
  font-size: 14px;
  font-weight: 500;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons .button {
  flex: 1 1 0%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--olv-btn-h-sm);
  padding: 0 var(--olv-btn-px);
  border: 1px solid var(--olv-text);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  font-size: 13px;
  font-weight: var(--olv-btn-weight);
  color: var(--olv-text);
  transition: background-color var(--olv-transition), color var(--olv-transition);
}
.widget_shopping_cart .woocommerce-mini-cart__buttons .button.checkout { background-color: var(--olv-text); color: var(--olv-white); }
.widget_shopping_cart .woocommerce-mini-cart__buttons .button:hover { border-color: var(--olv-primary); background-color: var(--olv-primary); color: var(--olv-white); }
.widget_shopping_cart .woocommerce-mini-cart__empty-message { margin: 0; font-size: 14px; opacity: 0.7; }

/* ---- 30-product-card.css ---- */
/* ==========================================================================
   Olverin theme: product cards (WooCommerce loop items) and quick view
   Covers includes/woocommerce/product-type/product-type1..13.php,
   product-type-list*.php, product-type-header.php, woocommerce/loop/loop-start.php
   and the quick view modal built in includes/woocommerce.php (quick_view ajax).
   Measured on the reference at 1440 / 768 / 375.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Product grid — woocommerce/loop/loop-start.php, Elementor product widgets
   -------------------------------------------------------------------------- */
.products.grid-column,
.products.list-column {
  display: flex;
  flex-wrap: wrap;
  column-gap: 15px;
}
.products.grid-column > .product,
.products.list-column > .product {
  width: calc((100% - 15px) / 2);
  margin-bottom: 30px;
}
.products.mobile-grid-1 > .product,
.products.list-column > .product { width: 100%; }
.products.loading { opacity: 0.5; pointer-events: none; transition: opacity var(--olv-transition); }
.products.grid-column.no-gutters { column-gap: 0; }
.products.grid-column.no-gutters > .product { width: 50%; margin-bottom: 0; }

@media (min-width: 768px) {
  .products.grid-column > .product { width: calc((100% - 30px) / 3); }
  .products.grid-column.column-2 > .product { width: calc((100% - 15px) / 2); }
  .products.grid-column.no-gutters > .product { width: 33.3333%; }
}
@media (min-width: 992px) {
  .products.grid-column.column-4 > .product,
  .products.grid-column.column-5 > .product,
  .products.grid-column.column-6 > .product { width: calc((100% - 45px) / 4); }
  .products.grid-column.no-gutters > .product { width: 25%; }
}
@media (min-width: 1200px) {
  .products.grid-column > .product { margin-bottom: 40px; }
  .products.grid-column.column-5 > .product { width: calc((100% - 60px) / 5); }
  .products.grid-column.column-6 > .product { width: calc((100% - 75px) / 6); }
  .products.grid-column.no-gutters.column-5 > .product { width: 20%; }
  .products.grid-column.no-gutters.column-6 > .product { width: 16.6667%; }
}

/* --------------------------------------------------------------------------
   2. Card frame — shared by every product-typeN.php
   -------------------------------------------------------------------------- */
.product-wrapper {
  position: relative;
  z-index: 1;
  height: 100%;
  font-size: 14px;
  line-height: 1.5;
}
.product-wrapper .product-inner { position: relative; }
.product-wrapper .thumbnail-wrapper {
  position: relative;
  margin-bottom: 17px;
}
.product-wrapper .thumbnail-wrapper > a,
.product-wrapper .product-thumbnail,
.product-wrapper .product-zoom {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: var(--olv-radius);
}
.product-wrapper .thumbnail-wrapper img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: opacity var(--olv-transition), transform var(--olv-transition);
}
/* second image shown on hover (blonwe_product_second_image) */
.product-wrapper .product-second-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.product-wrapper:hover .product-second-image,
.product.is-hover .product-second-image { opacity: 1; }
/* hover gallery (custom/hoverslider.js): a.product-thumbnail.product-hover-gallery
   > .product-main-image + .product-thumbnail-gallery > .gallery-item(.active) */
.product-wrapper .product-hover-gallery,
.product-wrapper .hover-slider { display: block; position: relative; }
.product-wrapper .product-thumbnail-gallery {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.product-wrapper .has-hover-slider .product-thumbnail-gallery { opacity: 1; }
.product-wrapper .gallery-item {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.product-wrapper .gallery-item.active { opacity: 1; }
.product-wrapper .hover-slider-dots {
  display: flex;
  justify-content: center;
  column-gap: 5px;
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 8px;
  left: 0;
  opacity: 0;
  transition: opacity var(--olv-transition);
  pointer-events: none;
}
.product-wrapper .hover-slider-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: rgba(var(--olv-text-rgb), 0.25);
  transition: background-color var(--olv-transition);
}
.product-wrapper .hover-slider-dots span.active { background-color: var(--olv-text); }
.product-wrapper:hover .hover-slider-dots,
.product.is-hover .hover-slider-dots { opacity: 1; }
.product-wrapper .product-box-image-zoom { overflow: hidden; }
.product-wrapper .product-box-image-zoom:hover img { transform: scale(1.06); }
.product-wrapper.image-gray .thumbnail-wrapper > a { background-color: var(--olv-bg-gray); }
.product-wrapper.background-white { background-color: var(--olv-white); }

/* Sale / custom badges (blonwe_sale_percentage) */
.product-wrapper .thumbnail-badges {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 4px;
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 12px;
  pointer-events: none;
}
.product-wrapper .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  padding: 5px 7px;
  border-radius: 3px;
  background-color: var(--olv-danger);
  color: var(--olv-white);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

/* Icon buttons: wishlist / quick view / compare, stacked top right */
.product-wrapper .thumbnail-buttons {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  position: absolute;
  z-index: 2;
  top: 5px;
  right: 5px;
}
.product-wrapper .thumbnail-buttons > * {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #e6e8eb;
  border-radius: 50%;
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 20px;
  line-height: 1;
  box-shadow: 0 1px 3px rgba(var(--olv-text-rgb), 0.02), 0 1px 2px rgba(var(--olv-text-rgb), 0.04);
  cursor: pointer;
  transition: color var(--olv-transition), background-color var(--olv-transition),
    border-color var(--olv-transition), transform var(--olv-transition), opacity var(--olv-transition);
}
.product-wrapper .thumbnail-buttons > *:hover {
  border-color: var(--olv-text);
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.product-wrapper .thumbnail-buttons i { font-size: 20px; }
.product-wrapper .thumbnail-buttons .quickview-button,
.product-wrapper .thumbnail-buttons .klbcp-btn {
  opacity: 0;
  transform: translateX(7px);
}
.product-wrapper .thumbnail-buttons .klbcp-btn { transition-delay: 0.08s; }
.product-wrapper:hover .thumbnail-buttons > *,
.product.is-hover .thumbnail-buttons > * {
  opacity: 1;
  transform: translateX(0);
}
.product-wrapper .quickview-button.loading i { animation: olv-spin 0.7s linear infinite; }
body.quickview-loading { cursor: progress; }
@media (min-width: 1200px) {
  .product-wrapper .thumbnail-buttons { top: 10px; right: 10px; }
  .product-wrapper .thumbnail-buttons > * { width: 32px; height: 32px; }
}
/* overlay add to cart (product-type5.php) */
.product-wrapper .thumbnail-wrapper .product-buttons {
  position: absolute;
  z-index: 2;
  right: 10px;
  bottom: 10px;
  left: 10px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--olv-transition), transform var(--olv-transition);
}
.product-wrapper:hover .thumbnail-wrapper .product-buttons,
.product.is-hover .thumbnail-wrapper .product-buttons { opacity: 1; transform: translateY(0); }

/* --------------------------------------------------------------------------
   3. Card content
   -------------------------------------------------------------------------- */
.product-wrapper .content-wrapper { position: relative; }
.product-wrapper.centered .content-wrapper { text-align: center; }
.product-wrapper .product-title {
  display: block;
  margin: 0 0 6px;
  overflow: hidden;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-overflow: ellipsis;
}
.product-wrapper .product-title a { color: inherit; text-decoration: none; }
.product-wrapper .product-title a:hover { color: var(--olv-primary); }
.product-wrapper .product-category {
  margin-bottom: 4px;
  color: var(--olv-text-light);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.product-wrapper .product-category a { color: inherit; text-decoration: none; }
.product-wrapper .product-vendor,
.product-wrapper .vendor-name { font-size: 12px; color: var(--olv-text-muted); }

/* Rating row: WooCommerce .star-rating + count */
.product-wrapper .product-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  margin-bottom: 6px;
  font-size: 12px;
  line-height: 18px;
}
.product-wrapper.centered .product-rating { justify-content: center; }
.product-wrapper .rating-count {
  margin-left: 6px;
  font-weight: 500;
}
.product-wrapper .count-text { display: inline-flex; align-items: center; }
.product-wrapper .product-rating.style-2 .product-rating-inner {
  display: inline-flex;
  align-items: center;
  column-gap: 3px;
  font-weight: 600;
}
.product-wrapper .product-rating.style-2 .klb-icon-star { color: var(--olv-star); font-size: 13px; }
.product-wrapper .product-rating.style-2 .rating-count { font-weight: 400; color: var(--olv-text-muted); }
.product-rating .star-rating,
.klb-quickview-product .star-rating,
.klbwl-list .star-rating,
.klbcp_table .star-rating {
  display: block;
  position: relative;
  overflow: hidden;
  width: 5.5em;
  height: 1.2em;
  font-size: 12px;
  line-height: 1.2em;
  color: #dfe2e6;
}
.product-rating .star-rating::before,
.product-rating .star-rating > span::before,
.klb-quickview-product .star-rating::before,
.klb-quickview-product .star-rating > span::before,
.klbwl-list .star-rating::before,
.klbwl-list .star-rating > span::before,
.klbcp_table .star-rating::before,
.klbcp_table .star-rating > span::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 5.5em;
  height: 1.2em;
  background-color: currentColor;
  -webkit-mask-image: var(--olv-stars-mask);
  mask-image: var(--olv-stars-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
.product-rating .star-rating > span,
.klb-quickview-product .star-rating > span,
.klbwl-list .star-rating > span,
.klbcp_table .star-rating > span {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  overflow: hidden;
  color: #fcc419;
  text-indent: -9999px;
}
:root {
  /* five stars, 20 units wide on a 22.8 pitch so WooCommerce's percentage
     width (rating/5) covers whole stars the way the reference renders them */
  --olv-stars-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2 0 111.2 24'%3E%3Cdefs%3E%3Cpath id='s' d='M12 2l3.09 6.26 6.91 1-5 4.87 1.18 6.88L12 17.77l-6.18 3.25 1.18-6.88-5-4.87 6.91-1z'/%3E%3C/defs%3E%3Cuse href='%23s'/%3E%3Cuse href='%23s' x='22.8'/%3E%3Cuse href='%23s' x='45.6'/%3E%3Cuse href='%23s' x='68.4'/%3E%3Cuse href='%23s' x='91.2'/%3E%3C/svg%3E");
}

/* Price */
.product-wrapper .price {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--olv-text);
}
.product-wrapper.centered .price { justify-content: center; }
.product-wrapper .price ins {
  color: var(--olv-danger);
  text-decoration: none;
}
.product-wrapper .price del {
  order: -1;
  color: #768088;
  font-size: 0.89em;
  font-weight: 500;
  opacity: 0.8;
}
.product-wrapper .price .screen-reader-text { display: none; }
.product-wrapper .content-wrapper.price-filled > .price { margin-bottom: 4px; }
@media (min-width: 992px) {
  .product-wrapper .product-title { font-size: 15px; }
  .product-wrapper .price { font-size: 15px; }
}

/* Price / add-to-cart switcher (product-type3/6/7/list*.php): price by default,
   "ADD TO CART" slides in on hover */
.product-wrapper .product-content-switcher {
  position: relative;
  overflow: hidden;
  height: 21px;
  margin-bottom: 5px;
}
.product-wrapper .switcher-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  min-height: 21px;
}
/* only the types whose switcher holds both the button and the price slide */
.product-type-6 .product-content-switcher .switcher-wrapper,
.product-type-7 .product-content-switcher .switcher-wrapper,
.product-type-10 .product-content-switcher .switcher-wrapper {
  gap: 0;
  height: 21px;
  margin: 0;
  font-size: 14px;
  transform: translateY(-100%);
  transition: transform 0.35s cubic-bezier(0.17, 0.62, 0.44, 0.99);
}
/* custom/productHover.js measures the first row and sets --olv-switcher-height */
.product-type-6 .product-content-switcher.is-measured,
.product-type-7 .product-content-switcher.is-measured,
.product-type-10 .product-content-switcher.is-measured,
.product-type-6 .product-content-switcher.is-measured .switcher-wrapper,
.product-type-7 .product-content-switcher.is-measured .switcher-wrapper,
.product-type-10 .product-content-switcher.is-measured .switcher-wrapper {
  height: var(--olv-switcher-height, 21px);
}
.product-wrapper .switcher-wrapper > .price {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
}
.product-wrapper.centered .switcher-wrapper { justify-content: center; }
.product-wrapper .switcher-wrapper > .button,
.product-wrapper .switcher-wrapper .product-buttons { order: -1; }
.product-wrapper .switcher-wrapper > .button {
  display: inline-flex;
  align-items: center;
  column-gap: 6px;
  position: relative;
  height: 21px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 21px;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.product-wrapper .switcher-wrapper > .button:hover { color: var(--olv-primary); }
.product-wrapper .switcher-wrapper > .button i { display: none; }
.product-wrapper .switcher-wrapper .product-rating { margin-bottom: 0; }
@media (hover: hover) {
  .product-type-6:hover .switcher-wrapper,
  .product-type-7:hover .switcher-wrapper,
  .product-type-10:hover .switcher-wrapper { transform: translateY(0); }
}
.product.is-hover .product-type-6 .switcher-wrapper,
.product.is-hover .product-type-7 .switcher-wrapper,
.product.is-hover .product-type-10 .switcher-wrapper { transform: translateY(0); }

/* Add to cart button rows (includes/woocommerce/add-to-cart.php) */
.product-wrapper .product-buttons {
  display: flex;
  align-items: center;
  column-gap: 8px;
  margin-top: 10px;
}
.product-wrapper .product-cart-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  column-gap: 10px;
}
.product-wrapper .product-cart-wrapper .product-buttons { margin-top: 0; }
.product-wrapper .product-buttons .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  column-gap: 6px;
  flex: 1 1 auto;
  height: var(--olv-btn-h-sm);
  padding: 0 14px;
  border: 1px solid var(--olv-border-15);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--olv-transition), background-color var(--olv-transition), border-color var(--olv-transition);
}
.product-wrapper .product-buttons .button:hover,
.product-wrapper .product-buttons.primary-button .button {
  border-color: var(--olv-primary);
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.product-wrapper .product-buttons.primary-button .button:hover { filter: brightness(0.92); }
.product-wrapper .product-buttons.success-button .button {
  border-color: var(--olv-success);
  background-color: var(--olv-success);
  color: var(--olv-white);
}
.product-wrapper .product-buttons.success-button-light .button {
  border-color: transparent;
  background-color: rgba(47, 158, 68, 0.12);
  color: var(--olv-success);
}
.product-wrapper .product-buttons.only-icon .button {
  flex: 0 0 auto;
  width: var(--olv-btn-h-sm);
  padding: 0;
  border-radius: 50%;
  font-size: 0;
}
.product-wrapper .product-buttons.only-icon .button i { font-size: 18px; }
.product-wrapper .product-buttons .button i { font-size: 16px; }
.product-wrapper .product-buttons .quickview-button.outline {
  flex: 0 0 auto;
  border-color: var(--olv-border-15);
  background-color: var(--olv-white);
  color: var(--olv-text);
}
.product-wrapper .product-buttons .wishlist-button { flex: 0 0 auto; }

/* AJAX loading / added feedback shared by all loop add-to-cart links */
.product-wrapper .add_to_cart_button { position: relative; }
.product-wrapper .add_to_cart_button::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: -22px;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.product-wrapper .add_to_cart_button.loading::after {
  opacity: 1;
  animation: olv-spin 0.7s linear infinite;
}
.product-wrapper .product-buttons .add_to_cart_button.loading::after { right: 8px; }
.product-wrapper .product-buttons.only-icon .add_to_cart_button::after { right: 50%; margin-right: -9px; }
.product-wrapper .added_to_cart { display: none; }
@keyframes olv-spin { to { transform: rotate(360deg); } }

/* Quantity box variant (Customizer blonwe_quantity_box) */
.product-wrapper .quantity.ajax-quantity {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  height: var(--olv-btn-h-sm);
  border: 1px solid var(--olv-border-15);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
}
.product-wrapper .quantity .quantity-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 100%;
  font-size: 12px;
  cursor: pointer;
  user-select: none;
}
.product-wrapper .quantity .quantity-button:hover { color: var(--olv-primary); }
.product-wrapper .quantity .qty {
  width: 34px;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}
.product-wrapper .quantity .quantity-button.is-disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }
.product-wrapper .cart-with-quantity .quantity { display: none; }
.product-wrapper .product-in-cart .quantity { display: inline-flex; }
.product-wrapper .product-in-cart .add_to_cart_button:not(.loading) { display: none; }
.product-wrapper .product-buttons.updating { opacity: 0.6; pointer-events: none; }

/* --------------------------------------------------------------------------
   4. Footer details (blonwe_product_box_footer hook)
   -------------------------------------------------------------------------- */
.product-wrapper .product-inventory {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}
.product-wrapper .product-inventory.color-red { color: var(--olv-danger); }
.product-wrapper .product-inventory.color-green { color: var(--olv-success); }
.product-wrapper .product-inventory.outof-stock { color: var(--olv-text-light); }
.product-wrapper .product-delivery-time {
  display: inline-flex;
  align-items: center;
  column-gap: 4px;
  margin-top: 6px;
  color: var(--olv-text-muted);
  font-size: 12px;
}
.product-wrapper .product-delivery-time.fast-shipping {
  padding: 2px 8px;
  border: 1px solid var(--olv-border);
  border-radius: 3px;
}
.product-wrapper .sku_wrapper,
.product-wrapper .klb-product-brands,
.product-wrapper .klb-product-attributes {
  display: block;
  margin-top: 4px;
  color: var(--olv-text-muted);
  font-size: 12px;
}
.product-wrapper .sku_wrapper .sku { margin-left: 4px; color: var(--olv-text); }
.product-wrapper .product-alert-message {
  display: flex;
  align-items: center;
  column-gap: 8px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 3px;
  background-color: rgba(245, 159, 0, 0.12);
  font-size: 12px;
}
.product-wrapper .product-alert-message p { margin: 0; }
.product-wrapper .product-countdown { margin-top: 10px; font-size: 12px; }
.product-wrapper .product-countdown p { margin: 6px 0 0; color: var(--olv-text-muted); }

/* stock progress bar (olverin-core woocommerce-filter.php) */
.product-progress { margin-top: 10px; }
.product-progressbar {
  position: relative;
  overflow: hidden;
  height: 6px;
  border-radius: var(--olv-radius-round);
  background-color: var(--olv-border);
}
.product-progressbar.size-8 { height: 8px; }
.product-progressbar .progressbar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background-color: var(--olv-primary);
}
.product-progress-detail {
  margin-top: 6px;
  font-size: 12px;
  color: var(--olv-text-muted);
}
.product-progress .product-stock {
  display: flex;
  justify-content: space-between;
  column-gap: 10px;
}
.product-progress strong { margin-left: 3px; color: var(--olv-text); }
.product-progress p { margin: 6px 0 0; font-size: 12px; color: var(--olv-text-muted); }
.product-progress .product-pcs span { font-weight: 600; color: var(--olv-text); }

/* --------------------------------------------------------------------------
   5. Style variants — with-content-fade (type3, list2) / product-type-header.php
   -------------------------------------------------------------------------- */
.product-wrapper.with-content-fade .product-inner {
  height: 100%;
  overflow: hidden;
}
.product-wrapper.with-content-fade .product-footer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.35s ease, opacity var(--olv-transition);
}
.product-wrapper.with-content-fade .product-content-fade {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 40px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--olv-bg));
  pointer-events: none;
}
.product-wrapper.with-content-fade:hover .product-footer,
.product.is-hover .with-content-fade .product-footer { max-height: 300px; opacity: 1; }
.product-wrapper.with-content-fade:hover .product-content-fade,
.product.is-hover .with-content-fade .product-content-fade { opacity: 0; }
.product-wrapper .product-footer-details {
  padding-top: 10px;
  color: var(--olv-text-muted);
  font-size: 13px;
  line-height: 1.5;
}
.product-wrapper .product-footer-details p:last-child { margin-bottom: 0; }
.product-wrapper .product-details {
  margin: 8px 0 0;
  color: var(--olv-text-muted);
  font-size: 13px;
  line-height: 1.6;
}
.product-wrapper .product-details p:last-child { margin-bottom: 0; }
.product-wrapper .product-unit,
.product-wrapper .product-meta { font-size: 12px; color: var(--olv-text-muted); }

/* --------------------------------------------------------------------------
   6. List layouts — product-type-list.php, list2, list3, list-view, .list-style
   -------------------------------------------------------------------------- */
.products.list-column .product-inner,
.product-wrapper.product-type-list .product-inner,
.product-wrapper.product-type-list2 .product-inner,
.product-wrapper.product-type-list3 .product-inner {
  display: flex;
  align-items: flex-start;
  column-gap: 15px;
}
.products.list-column .thumbnail-wrapper,
.product-wrapper.product-type-list .thumbnail-wrapper,
.product-wrapper.product-type-list2 .thumbnail-wrapper,
.product-wrapper.product-type-list3 .thumbnail-wrapper {
  flex: 0 0 35%;
  max-width: 160px;
  margin-bottom: 0;
}
.products.list-column .content-wrapper,
.product-wrapper.product-type-list .content-wrapper,
.product-wrapper.product-type-list2 .content-wrapper,
.product-wrapper.product-type-list3 .content-wrapper { flex: 1 1 auto; min-width: 0; }
.product-wrapper.product-type-list .thumbnail-wrapper,
.product-wrapper.product-type-list2 .thumbnail-wrapper { flex-basis: 100px; max-width: 100px; }
.product-wrapper.product-type-list .product-title,
.product-wrapper.product-type-list2 .product-title { font-size: 14px; }
.product-wrapper.product-type-list2 .product-footer { margin-top: 10px; }
.products.list-column > .product { border-bottom: 1px solid var(--olv-border); padding-bottom: 30px; }
.products.list-column > .product:last-child { border-bottom: 0; }
@media (min-width: 768px) {
  .products.list-column .thumbnail-wrapper { flex-basis: 30%; max-width: 260px; }
  .products.list-column .product-inner { column-gap: 30px; }
  .products.list-column .product-title { font-size: 18px; }
  .products.list-column .product-footer-details { font-size: 14px; }
}
/* compact list rows (recently viewed, Elementor product list) */
.products.list-style { display: flex; flex-direction: column; row-gap: 20px; }
.products.list-style > .product,
.products.list-style > li { width: 100%; margin-bottom: 0; list-style: none; }
.products.list-style .product-inner { display: flex; align-items: center; column-gap: 15px; }
.products.list-style .thumbnail-wrapper { flex: 0 0 100px; margin-bottom: 0; }
.products.list-style.small-list-style .thumbnail-wrapper { flex-basis: 70px; }
.products.list-style .thumbnail-buttons,
.products.list-style .product-content-switcher .switcher-wrapper > .button { display: none; }
.products.list-style .content-wrapper { flex: 1 1 auto; min-width: 0; }
.products.list-style .product-title { font-size: 14px; }

/* --------------------------------------------------------------------------
   7. Quick view modal — includes/woocommerce.php blonwe_quick_view_callback()
   Opened by Magnific Popup; markup: .klb-quickview-product.white-popup
   -------------------------------------------------------------------------- */
/* custom/quick_ajax.js wraps the ajax html in .klb-quickview-popup.mfp-with-anim
   and opens it with mainClass "mfp-fade klb-quickview" */
.klb-quickview-popup {
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin: 20px auto;
}
.mfp-wrap.klb-quickview .mfp-container { padding: 0 10px; }
.mfp-wrap.klb-quickview .mfp-content { max-width: 1040px; }
.klb-quickview .mfp-with-anim {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.klb-quickview.mfp-ready .mfp-with-anim { opacity: 1; transform: translateY(0); }
.klb-quickview.mfp-removing .mfp-with-anim { opacity: 0; transform: translateY(16px); }
.klb-quickview-product {
  position: relative;
  width: 100%;
  padding: 24px 20px;
  border-radius: var(--olv-radius);
  background-color: var(--olv-white);
}
.klb-quickview-product .single-product-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px 40px;
}
.klb-quickview-product .product-header { grid-column: 1 / -1; }
.klb-quickview-product .product_title {
  margin: 0 0 8px;
  font-size: 24px;
  line-height: 1.25;
}
.klb-quickview-product .product-meta.top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 14px;
  font-size: 13px;
  color: var(--olv-text-muted);
}
.klb-quickview-product .woocommerce-product-rating { display: flex; align-items: center; column-gap: 8px; margin: 0; }
.klb-quickview-product .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
.klb-quickview-product .product-detail > .price {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: 14px;
  font-size: 22px;
  font-weight: 600;
}
.klb-quickview-product .product-detail > .price ins { color: var(--olv-danger); text-decoration: none; }
.klb-quickview-product .product-detail > .price del { order: -1; color: #768088; font-size: 0.8em; font-weight: 500; opacity: 0.8; }
.klb-quickview-product .woocommerce-product-details__short-description {
  margin-bottom: 20px;
  color: var(--olv-text-muted);
  font-size: 14px;
  line-height: 1.6;
}
.klb-quickview-product .product_meta {
  display: flex;
  flex-direction: column;
  row-gap: 4px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--olv-border);
  font-size: 13px;
  color: var(--olv-text-muted);
}
.klb-quickview-product .product_meta a { color: var(--olv-text); text-decoration: none; }
.klb-quickview-product .wishlist-button { margin-top: 14px; }
.klb-quickview-product .mfp-close,
.mfp-wrap .klb-quickview-popup button.mfp-close,
.mfp-wrap .klb-quickview-product button.mfp-close {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  border: 1px solid var(--olv-border);
  border-radius: 50%;
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 24px;
  line-height: 1;
  opacity: 1;
  cursor: pointer;
}
.mfp-wrap .klb-quickview-popup button.mfp-close:hover,
.mfp-wrap .klb-quickview-product button.mfp-close:hover { background-color: var(--olv-text); color: var(--olv-white); }
@media (min-width: 768px) {
  .klb-quickview-product { padding: 40px; }
  .klb-quickview-product .single-product-wrapper { grid-template-columns: 1fr 1fr; }
}

/* ---- 31-shop.css ---- */
/* ==========================================================================
   31-shop: WooCommerce archive pages (shop, category, search results)
   Templates: woocommerce/archive-product.php, includes/woocommerce/banner-type1.php,
   banner-type2.php, woocommerce/loop/orderby.php, olverin-core grid-list,
   load-more, recently-viewed, mobile-filter modules.
   Product cards and the .products grid live in 30-product-card.css; widget
   internals live in the widgets package; breadcrumb lives in the base package.
   Mobile first; desktop layout from 992px.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Page header (archive-product.php: .woocommerce-page-header)
   -------------------------------------------------------------------------- */
.woocommerce-page-header { position: relative; margin-bottom: 20px; }
.woocommerce-page-header .woocommerce-page-title { margin: 10px 0 0; font-size: 28px; line-height: 1.1; }
.woocommerce-page-header.with-banner .woocommerce-page-title { display: none; }
@media (min-width: 992px) {
  .woocommerce-page-header .woocommerce-page-title { font-size: 34px; }
}

/* --------------------------------------------------------------------------
   Shop banner (includes/woocommerce/banner-type1.php: .woocommerce-page-header .klb-banner)
   Scoped to the archive page header so the Elementor banner widgets (50-elementor-content.css)
   keep their own rules; title/excerpt sizes come from the font-, weight- and lh- helper classes.
   -------------------------------------------------------------------------- */
.woocommerce-page-header .klb-banner,
.woocommerce-page-header .klb-banner.w-40,
.woocommerce-page-header .klb-banner.w-50,
.woocommerce-page-header .klb-banner.w-60 {
  position: relative;
  width: 100% !important; /* .w-NN names the text column width; Bootstrap sets .w-50 { width: 50% !important } on the wrapper */
  overflow: hidden;
  border-radius: var(--olv-radius);
  color: var(--olv-text);
}
.woocommerce-page-header .klb-banner.light { color: var(--olv-white); }
.woocommerce-page-header .klb-banner .entry-wrapper {
  position: relative;
  z-index: 2;
  display: flex;
  width: 100%;
  padding: 44px 30px;
  align-items: center;
  justify-content: flex-start;
}
.woocommerce-page-header .klb-banner.align-start .entry-wrapper { align-items: flex-start; }
.woocommerce-page-header .klb-banner.align-end .entry-wrapper { align-items: flex-end; }
.woocommerce-page-header .klb-banner.justify-center .entry-wrapper { justify-content: center; text-align: center; }
.woocommerce-page-header .klb-banner.justify-end .entry-wrapper { justify-content: flex-end; }
.woocommerce-page-header .klb-banner .entry-inner { width: 90%; }
.woocommerce-page-header .klb-banner .entry-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
}
.woocommerce-page-header .klb-banner .entry-subtitle {
  margin: 0;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.woocommerce-page-header .klb-banner .entry-subtitle.color-green { color: var(--olv-success); }
.woocommerce-page-header .klb-banner .entry-body { margin-bottom: 10px; }
.woocommerce-page-header .klb-banner .entry-title { margin: 0 0 8px; }
.woocommerce-page-header .klb-banner .entry-excerpt { max-width: 420px; }
.woocommerce-page-header .klb-banner .entry-excerpt p { margin-bottom: 0; opacity: 0.7; }
.woocommerce-page-header .klb-banner .entry-footer { display: flex; align-items: center; }
.woocommerce-page-header .klb-banner .banner-price {
  display: flex;
  align-items: flex-end;
  font-size: 26px;
  line-height: 1;
}
.woocommerce-page-header .klb-banner .price-label {
  margin-right: 6px;
  font-size: 0.75em;
  line-height: 1;
  opacity: 0.7;
}
.woocommerce-page-header .klb-banner .banner-price .price {
  font-size: 1em;
  font-weight: 500;
  line-height: 1;
  color: inherit;
}
.woocommerce-page-header .klb-banner .entry-media {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.woocommerce-page-header .klb-banner .entry-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: middle;
}
.woocommerce-page-header .klb-banner .overlay-link {
  position: absolute;
  z-index: 8;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media (min-width: 576px) {
  .woocommerce-page-header .klb-banner .entry-body { margin-bottom: 20px; }
}
@media (min-width: 992px) {
  .woocommerce-page-header .klb-banner .entry-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    padding: 50px;
  }
  .woocommerce-page-header .klb-banner.w-50 .entry-inner { width: 50%; }
  .woocommerce-page-header .klb-banner.w-40 .entry-inner { width: 40%; }
  .woocommerce-page-header .klb-banner.w-60 .entry-inner { width: 60%; }
  .woocommerce-page-header .klb-banner .entry-media { position: relative; height: auto; }
  .woocommerce-page-header .klb-banner .entry-media img { position: static; height: auto; }
}

/* --------------------------------------------------------------------------
   Large page header (includes/woocommerce/banner-type2.php: .page-header)
   Not present in the demo; kept consistent with the banner above.
   -------------------------------------------------------------------------- */
.page-header.centered {
  position: relative;
  overflow: hidden;
  padding: 50px 0;
  text-align: center;
  color: var(--olv-text);
}
.page-header.centered.light { color: var(--olv-white); }
.page-header.centered.large { padding: 80px 0; }
.page-header.centered .page-header-inner {
  position: relative;
  z-index: 2;
  max-width: 640px;
  margin: 0 auto;
}
.page-header.centered .entry-subtitle {
  margin: 0 0 10px;
  font-family: var(--olv-font-heading);
  font-size: 14px;
  font-weight: 600;
}
.page-header.centered .entry-title { margin: 0 0 10px; font-size: 28px; line-height: 1.1; }
.page-header.centered .entry-description p { margin: 0; opacity: 0.7; }
.page-header-image {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.page-header-image img { width: 100%; height: 100%; object-fit: cover; }
.page-header-image.overlay-25::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(var(--olv-text-rgb), 0.25);
}
@media (min-width: 992px) {
  .page-header.centered .entry-title { font-size: 40px; }
}

/* --------------------------------------------------------------------------
   Shop toolbar (grid-list-view.php + loop/orderby.php: .before-shop-loop)
   -------------------------------------------------------------------------- */
.before-shop-loop {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--olv-border);
}
.before-shop-loop .filter-button { margin-right: auto; }
.before-shop-loop .filter-button a {
  display: inline-flex;
  align-items: center;
  line-height: 16px;
  color: inherit;
}
.before-shop-loop .filter-button i { margin-right: 4px; font-size: 18px; line-height: 18px; }
.before-shop-loop .filter-button span { font-weight: 500; }
.before-shop-loop .woocommerce-result-count {
  position: relative;
  margin: 0 auto 0 0;
  font-size: 12px;
  line-height: 18px;
  color: var(--olv-text-muted);
}
.before-shop-loop .sorting-products,
.before-shop-loop .per-page-products { position: relative; display: flex; align-items: center; }
.before-shop-loop .sorting-products > span,
.before-shop-loop .per-page-products > span {
  margin-right: 7px;
  font-size: 14px;
  font-weight: 500;
  line-height: 21px;
  opacity: 0.5;
}
.before-shop-loop .woocommerce-ordering { margin: 0; line-height: 24px; }
.before-shop-loop .woocommerce-ordering label { display: none; }
.before-shop-loop .woocommerce-ordering select {
  display: inline-flex;
  align-items: center;
  height: 21px;
  max-width: 130px;
  margin: 0;
  padding: 0 26px 0 0;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: transparent;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 3px) 50%;
  background-size: 18px 18px;
  font-size: 14px;
  font-weight: 500;
  line-height: 21px;
  letter-spacing: -0.01em;
  color: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.before-shop-loop .sorting-products + .per-page-products { margin-left: 20px; padding-left: 20px; }
.before-shop-loop .sorting-products + .per-page-products::before,
.before-shop-loop .product-views-buttons::before {
  content: "";
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 1px;
  background-color: var(--olv-border);
}
.before-shop-loop .product-views-buttons {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-left: 15px;
  padding-left: 15px;
}
.before-shop-loop .product-views-buttons::before { top: 5px; bottom: 5px; }
.before-shop-loop .product-views-buttons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--olv-radius-form);
  font-size: 18px;
  color: inherit;
  transition: background-color var(--olv-transition);
}
.before-shop-loop .product-views-buttons a:hover,
.before-shop-loop .product-views-buttons a.active { background-color: var(--olv-bg-gray); }
@media (min-width: 992px) {
  .before-shop-loop .filter-button { display: none; }
}

/* Full-width layout: filters in a dropdown (grid-list-view.php) */
.before-shop-loop .filters-wide-button { position: relative; margin-right: auto; }
.before-shop-loop .filters-wide-button .dropdown-toggle {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 14px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  font-size: 14px;
  font-weight: 500;
  color: inherit;
}
.before-shop-loop .filters-wide-button .filter-holder {
  width: 100%;
  min-width: 280px;
  margin-top: 10px;
  padding: 25px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-bg);
  box-shadow: var(--olv-shadow-md);
}
.before-shop-loop .filters-wide-button .filter-holder-inner { display: flex; flex-wrap: wrap; gap: 30px; }
.before-shop-loop .filters-wide-button .filter-holder-inner .widget { flex: 1 1 200px; margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Archive layout (archive-product.php: .shop-wrapper, columns)
   -------------------------------------------------------------------------- */
.shop-wrapper.content-wrapper { display: flex; flex-wrap: wrap; }
.shop-wrapper .primary-column { position: relative; width: 100%; max-width: 100%; }
@media (min-width: 992px) {
  .shop-wrapper.content-wrapper { margin-right: -15px; margin-left: -15px; }
  .shop-wrapper.sidebar-left { flex-direction: row-reverse; }
  .shop-wrapper .primary-column { flex: 0 0 calc(100% - 300px); max-width: calc(100% - 300px); padding: 0 15px 0 30px; }
  .shop-wrapper .primary-column::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background-color: var(--olv-border);
  }
  .shop-wrapper.sidebar-right .primary-column { padding: 0 30px 0 15px; }
  .shop-wrapper.sidebar-right .primary-column::before { right: 0; left: auto; }
  .shop-wrapper.no-sidebar .primary-column,
  .shop-wrapper .primary-column.col-lg-12 { flex: 0 0 100%; max-width: 100%; padding: 0 15px; }
  .shop-wrapper.no-border .primary-column::before,
  .shop-wrapper .primary-column.col-lg-12::before { display: none; }
  .shop-wrapper .sidebar-column { flex: 0 0 300px; max-width: 300px; padding: 0 30px 0 15px; }
  .shop-wrapper.sidebar-right .sidebar-column { padding: 0 15px 0 30px; }
  .shop-wrapper .sidebar-column.hide-desktop { display: none; }
}

/* --------------------------------------------------------------------------
   Sidebar container (archive-product.php: #sidebar.sidebar-column)
   Desktop: in-flow column, sticky via theia; below 992px: off-canvas drawer.
   Widget internals belong to the widgets package; only spacing here.
   -------------------------------------------------------------------------- */
.sidebar-column .filter-sidebar-body .widget { position: relative; margin-bottom: 20px; }
.sidebar-column .filter-sidebar-body .widget:last-child { margin-bottom: 0; }
@media (min-width: 992px) {
  .sidebar-column .filter-sidebar-header { display: none; }
  .sidebar-column .filter-sidebar-body .widget { margin-bottom: 40px; }
  .sidebar-column.sticky .theiaStickySidebar { will-change: transform; }
}
@media (max-width: 991.98px) {
  .sidebar-column.filtered-sidebar {
    position: fixed;
    z-index: var(--olv-z-drawer);
    top: 0;
    left: 0;
    width: 90%;
    max-width: 680px;
    height: 100%;
    min-height: 1px;
    padding: 0;
    background-color: var(--olv-bg);
    transform: translateX(-100%);
    transition: transform 0.35s ease;
  }
  .sidebar-column.filtered-sidebar,
  .sidebar-column.filtered-sidebar .theiaStickySidebar { display: flex; flex-direction: column; overflow: hidden; }
  .sidebar-column.filtered-sidebar .theiaStickySidebar { flex: 1 1 auto; height: 100%; }
  .sidebar-column.filtered-sidebar .filter-sidebar-header {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px 15px;
  }
  .sidebar-column.filtered-sidebar .filter-sidebar-header .entry-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
  }
  .sidebar-column.filtered-sidebar .site-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-right: -10px;
    overflow: hidden;
    cursor: pointer;
  }
  .sidebar-column.filtered-sidebar .site-close svg { width: 14px; height: 14px; fill: currentColor; }
  .sidebar-column.filtered-sidebar .site-scroll {
    position: relative;
    flex: 1 1 auto;
    overflow: hidden auto;
    padding: 0 20px;
  }
  .sidebar-column.filtered-sidebar .filter-sidebar-body { padding-bottom: 100px; font-size: 13px; line-height: 1.5; }
  /* Open state: class toggled by assets/js/custom/sidebarfilter.js */
  .sidebar-column.filtered-sidebar.active,
  .filter-sidebar-open .sidebar-column.filtered-sidebar { transform: translateX(0); box-shadow: var(--olv-shadow-lg); }
}
.mobile-filter-overlay {
  position: fixed;
  z-index: 90;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--olv-text);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--olv-transition), visibility var(--olv-transition);
}
.mobile-filter-overlay.active,
.filter-sidebar-open .mobile-filter-overlay { z-index: calc(var(--olv-z-drawer) - 1); opacity: 0.5; visibility: visible; }
@media (min-width: 992px) {
  .mobile-filter-overlay { display: none; }
}

/* --------------------------------------------------------------------------
   Pagination, load more, infinite scroll (loop/pagination.php, load-more.php)
   -------------------------------------------------------------------------- */
.primary-column .woocommerce-pagination { margin-top: 40px; }
.woocommerce-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce-pagination ul.page-numbers li { margin: 0; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-bg-gray);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: inherit;
  transition: background-color var(--olv-transition), color var(--olv-transition);
}
.woocommerce-pagination .page-numbers a:hover { background-color: var(--olv-border); }
.woocommerce-pagination .page-numbers span.current { background-color: var(--olv-primary); color: var(--olv-white); }
.woocommerce-pagination .page-numbers a.prev,
.woocommerce-pagination .page-numbers a.next { background-color: transparent; font-size: 18px; }
.woocommerce-pagination .page-numbers .dots { width: auto; background-color: transparent; }
.woocommerce-pagination.klb-load-more .button {
  width: auto;
  min-width: 160px;
  height: var(--olv-btn-h);
  padding: 0 var(--olv-btn-px);
  cursor: pointer;
}
.woocommerce-pagination.klb-load-more .button.loading { opacity: 0.6; pointer-events: none; }
.woocommerce-pagination.klb-load-more .no-more-products { font-size: 14px; opacity: 0.6; }

/* --------------------------------------------------------------------------
   Empty results (loop/no-products-found.php: .empty-content)
   -------------------------------------------------------------------------- */
.primary-column .empty-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 60px 20px;
  text-align: center;
}
.empty-content svg { margin-bottom: 20px; }
.empty-content .fill-slate-100 { fill: var(--olv-bg-gray); }
.empty-content .fill-slate-50 { fill: var(--olv-bg); }
.empty-content .stroke-slate-300 { stroke: var(--olv-border-strong); }
.empty-content .entry-title { margin: 0 0 8px; font-size: 22px; }
.empty-content .entry-description p { margin: 0; opacity: 0.7; }
.empty-content .woocommerce-info {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

/* --------------------------------------------------------------------------
   Category / archive description (blonwe_after_main_shop hook)
   -------------------------------------------------------------------------- */
.site-content .term-description,
.site-content .page-description {
  margin: 30px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--olv-text-muted);
}
.site-content .term-description p:last-child,
.site-content .page-description p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Recently viewed items (recently-viewed.php: .klb-module.recently-viewed)
   -------------------------------------------------------------------------- */
.klb-module.recently-viewed { margin-top: 20px; }
.klb-module.recently-viewed .module-header { margin-bottom: 15px; }
.klb-module.recently-viewed .module-header-inner { display: flex; flex-wrap: wrap; align-items: center; }
.klb-module.recently-viewed .module-header .entry-title {
  position: relative;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
@media (min-width: 992px) {
  .klb-module.recently-viewed { margin-top: 30px; }
  .klb-module.recently-viewed .module-header { margin-bottom: 20px; }
  .klb-module.recently-viewed .module-header .entry-title { font-size: 20px; }
}

/* --------------------------------------------------------------------------
   Ajax filter loading state (includes/pjax/js/AjaxFilter.js)
   -------------------------------------------------------------------------- */
.primary-column { transition: opacity var(--olv-transition); }
.pjax-loading .primary-column,
.primary-column.loading { opacity: 0.4; pointer-events: none; }
.pjax-loading .primary-column::after,
.primary-column.loading::after {
  content: "";
  position: absolute;
  z-index: 5;
  top: 120px;
  left: 50%;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border: 3px solid var(--olv-border);
  border-top-color: var(--olv-primary);
  border-radius: 50%;
  animation: olv-shop-spin 0.8s linear infinite;
}
@keyframes olv-shop-spin {
  to { transform: rotate(360deg); }
}

/* ---- 32-single-product.css ---- */
/* ==========================================================================
   Olverin theme: single product page
   woocommerce/single-product.php, woocommerce/content-single-product.php,
   includes/woocommerce/single-type/single-type.php (types 1-5)
   Measured against the "product" specs at 1440 / 768 / 375.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Layout wrapper and columns  (content-single-product.php)
   -------------------------------------------------------------------------- */
.single-product-wrapper {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}
.single-product-wrapper > .column {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}
.single-product-wrapper .product-gallery { margin-bottom: 30px; }
.single-product-wrapper .product-content { margin-top: 40px; }
.single-product-wrapper .product-header { margin-bottom: 20px; }

@media (min-width: 992px) {
  .single-product-wrapper .product-gallery {
    flex: 1 0 0%;
    padding-right: 30px;
  }
  .single-product-wrapper .product-detail { width: 46%; }
  /* style-5: gallery left, summary right, summary sticks while the gallery scrolls */
  .single-product-wrapper.style-5 .product-detail-inner {
    position: sticky;
    top: calc(var(--olv-header-main-h) + 100px);
  }
  /* style-3 / style-4: a side column next to the summary (single-type.php) */
  .single-product-wrapper .product-detail.with-side {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
  }
  .single-product-wrapper .product-detail.with-side .product-detail-inner { flex: 1 1 0; min-width: 0; }
  .single-product-wrapper .product-detail.with-side .product-detail-side { width: 270px; flex-shrink: 0; }
  .single-product-wrapper .product-detail.for-sidebar { width: 54%; }
  .single-product-wrapper.style-3 .product-gallery,
  .single-product-wrapper.style-4 .product-gallery { max-width: 42%; }
  .single-product-wrapper.style-1 .product-gallery { max-width: 54%; }
}
@media (min-width: 1200px) {
  .single-product-wrapper .product-detail { width: 40%; }
  .single-product-wrapper .product-detail.for-sidebar { width: 58%; }
}

/* --------------------------------------------------------------------------
   2. Gallery  (woocommerce/single-product/product-image.php)
   -------------------------------------------------------------------------- */
.woocommerce-product-gallery {
  position: relative;
  width: 100%;
}
.woocommerce-product-gallery img {
  display: block;
  width: 100%;
  height: auto;
}
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image { position: relative; }
.woocommerce-product-gallery__image a { display: block; }
/* no slider script active: keep the first image only, the rest are reachable through the lightbox */
.woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image + .woocommerce-product-gallery__image { display: none; }
.woocommerce-product-gallery .flex-viewport {
  position: relative;
  overflow: hidden;
}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image { float: left; }

/* sale badge over the main image */
.woocommerce-product-gallery .product-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 9;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.woocommerce-product-gallery .product-badges .badge {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 58px;
  height: 58px;
  padding: 5px 7px;
  border-radius: 50%;
  background-color: var(--olv-danger);
  color: var(--olv-white);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.woocommerce-product-gallery .product-badges .badge.new { background-color: var(--olv-info); }
.woocommerce-product-gallery .product-badges .badge.hot { background-color: var(--olv-warning); }

/* lightbox trigger written by the core gallery script */
.woocommerce-product-gallery__trigger {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 9;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-sm);
  color: var(--olv-text);
  font-size: 0;
  text-indent: -9999px;
  overflow: hidden;
}
.woocommerce-product-gallery__trigger::before {
  content: "";
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M21 21l-6-6M10 7v6M7 10h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M21 21l-6-6M10 7v6M7 10h6'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.woocommerce-product-gallery__trigger:hover { background-color: var(--olv-text); color: var(--olv-white); }

/* video / 360 buttons placed by the core modules under the main image */
.product-gallery .product-video-button,
.product-gallery .klb-product360-btn {
  position: absolute;
  bottom: 12px;
  left: 12px;
  z-index: 9;
}
.product-gallery .product-video-button a,
.product-gallery .klb-product360-btn a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--olv-radius-round);
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-sm);
  color: var(--olv-text);
  font-size: 13px;
  font-weight: 600;
}
.product-gallery .product-video-button a:hover,
.product-gallery .klb-product360-btn a:hover { background-color: var(--olv-text); color: var(--olv-white); }
.product-gallery .klb-product360-btn { left: auto; right: 12px; }

/* 2.1 thumbnails (built by assets/js/custom/flex-thumbs.js)  --------------- */
.klb-flexslider-thumbnail { position: relative; }
.klb-flexslider-thumbnail .flex-viewport { overflow: hidden; }
.flex-control-thumbs {
  display: flex;
  flex-wrap: nowrap;
  margin: 15px 0 0;
  padding: 0;
  list-style: none;
}
.flex-control-thumbs li {
  flex-shrink: 0;
  width: calc((100% - 15px) / 4);
  margin-right: 5px;
}
.flex-control-thumbs li:last-child { margin-right: 0; }
.flex-control-thumbs li img {
  padding: 4px;
  border: 1px solid #dfe2e6;
  cursor: pointer;
  transition: border-color var(--olv-transition);
}
.flex-control-thumbs li img:hover,
.flex-control-thumbs li img.flex-active { border-color: var(--olv-text); }
@media (min-width: 768px) {
  .flex-control-thumbs li { width: calc((100% - 25px) / 6); }
}
@media (min-width: 992px) {
  .flex-control-thumbs li { width: calc((100% - 35px) / 8); }
  .woocommerce-product-gallery--columns-4 .flex-control-thumbs li { width: calc((100% - 15px) / 4); }
  .woocommerce-product-gallery--columns-5 .flex-control-thumbs li { width: calc((100% - 20px) / 5); }
  .woocommerce-product-gallery--columns-6 .flex-control-thumbs li { width: calc((100% - 25px) / 6); }
}

/* thumbnail slider arrows: hidden until hover, disabled ends stay hidden */
.klb-flexslider-thumbnail .flex-direction-nav {
  margin: 0;
  padding: 0;
  list-style: none;
}
.klb-flexslider-thumbnail .flex-direction-nav li {
  position: absolute;
  top: 15px;
  bottom: 0;
}
.klb-flexslider-thumbnail .flex-nav-prev { left: 0; }
.klb-flexslider-thumbnail .flex-nav-next { right: 0; }
.klb-flexslider-thumbnail .flex-direction-nav a {
  position: absolute;
  top: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
  opacity: 0;
  transition: opacity var(--olv-transition);
}
.klb-flexslider-thumbnail .flex-nav-prev a { left: 0; }
.klb-flexslider-thumbnail .flex-nav-next a { right: 0; }
.klb-flexslider-thumbnail:hover .flex-direction-nav a { opacity: 1; }
.klb-flexslider-thumbnail .flex-direction-nav a.flex-disabled { opacity: 0; z-index: -1; cursor: default; }
.klb-flexslider-thumbnail .slick-nav {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-white);
  box-shadow: var(--olv-shadow-sm);
  color: var(--olv-text);
  cursor: pointer;
}
.klb-flexslider-thumbnail .slick-nav svg { width: 12px; height: 12px; }

/* 2.2 vertical thumbnails (blonwe_single_gallery_type = vertical) ---------- */
@media (min-width: 768px) {
  .product-gallery.vertical-thumbnails .woocommerce-product-gallery {
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: 15px;
  }
  .product-gallery.vertical-thumbnails .woocommerce-product-gallery > .flex-viewport,
  .product-gallery.vertical-thumbnails .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
    flex: 1 1 0;
    min-width: 0;
  }
  .product-gallery.vertical-thumbnails .klb-flexslider-thumbnail { width: 90px; flex-shrink: 0; }
  .product-gallery.vertical-thumbnails .flex-control-thumbs {
    flex-direction: column;
    margin-top: 0;
  }
  .product-gallery.vertical-thumbnails .flex-control-thumbs li {
    width: 100%;
    margin: 0 0 5px;
  }
  .product-gallery.vertical-thumbnails .flex-direction-nav li {
    top: auto;
    right: 0;
    left: 0;
    bottom: auto;
    height: 28px;
  }
  .product-gallery.vertical-thumbnails .flex-nav-prev { top: 0; }
  .product-gallery.vertical-thumbnails .flex-nav-next { bottom: 0; }
  .product-gallery.vertical-thumbnails .flex-direction-nav a {
    top: 0;
    right: 0;
    left: 0;
    width: auto;
    transform: none;
  }
  .product-gallery.vertical-thumbnails .slick-nav svg { transform: rotate(90deg); }
}

/* --------------------------------------------------------------------------
   3. Product summary  (product-detail-inner)
   -------------------------------------------------------------------------- */
.product-detail-inner > .product-stock { display: none; } /* duplicate stock line printed by WooCommerce; the wrapper below is the one shown */

/* 3.1 title + top meta (single-type.php header side / header top) */
.single-product-wrapper .product_title {
  margin: 0 0 15px;
  font-family: var(--olv-font-heading);
  font-size: calc(1.375rem + 1.5vw);
  font-weight: var(--olv-heading-weight);
  line-height: 1.2;
  letter-spacing: var(--olv-heading-tracking);
}
@media (min-width: 1200px) {
  .single-product-wrapper .product_title { font-size: 32px; }
}
.single-product-wrapper .product-meta.top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eceef0;
  line-height: 16px;
}
.single-product-wrapper .product-meta.top > * { position: relative; }
.single-product-wrapper .product-meta.top > * + *::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -8px;
  width: 1px;
  height: 15px;
  transform: translateY(-50%);
  background-color: #e6e8eb;
}
.product-detail-inner .product-rating,
.product-header .product-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.product-detail-inner .product-rating .star-rating,
.product-header .product-rating .star-rating { font-size: 14px; }
.product-detail-inner .rating-count,
.product-header .rating-count {
  margin-left: 6px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
.product-detail-inner .rating-count a { color: inherit; }
.product-detail-inner .rating-count a:hover { color: var(--olv-primary); }
.product-detail-inner .sold-by { font-size: 13px; }

/* 3.2 price (woocommerce/single-product/price.php) */
.product-detail-inner .product-price,
.product-detail-side .product-price {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: 20px 0 10px;
}
.product-detail-inner .product-price .price,
.product-detail-side .product-price .price {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.1;
  color: var(--olv-text);
}
.product-detail-inner .product-price .price del,
.product-detail-side .product-price .price del {
  color: #768088;
  font-size: 0.75em;
  line-height: 1.2;
  opacity: 0.5;
}
.product-detail-inner .product-price .price ins,
.product-detail-side .product-price .price ins {
  color: var(--olv-danger);
  text-decoration: none;
}
@media (max-width: 767.98px) {
  .product-detail-inner .product-price .price { font-size: 24px; }
}

/* 3.3 stock (includes/woocommerce.php blonwe_single_product_stock, single-product/stock.php) */
.product-inventory-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 15px 0;
}
.product-inventory-wrapper .product-stock,
.product-detail-side .product-stock {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 1px;
  background-color: rgba(64, 192, 87, 0.1);
  color: #40c057;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}
.product-inventory-wrapper .product-stock.out-of-stock,
.product-detail-side .product-stock.out-of-stock {
  background-color: rgba(229, 62, 62, 0.1);
  color: var(--olv-danger);
}
.product-inventory-wrapper .product-stock.available-on-backorder {
  background-color: rgba(245, 159, 0, 0.12);
  color: var(--olv-warning);
}
.product-inventory-wrapper:empty { display: none; }

/* 3.4 short description */
.product-detail-inner .woocommerce-product-details__short-description {
  margin-bottom: 25px;
  color: #4f575e;
  font-size: 14px;
  line-height: 1.5;
}
.product-detail-inner .woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }
.product-detail-inner .woocommerce-product-details__short-description ul { padding-left: 18px; }

/* 3.5 add to cart form (woocommerce single-product/add-to-cart/*.php, includes/woocommerce/add-to-cart.php) */
.product-detail-inner form.cart,
.product-detail-side form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.single-product form.cart .quantity {
  position: relative;
  display: flex;
  width: 106px;
  height: var(--olv-btn-h);
  padding: 0 32px;
  border: 1px solid #dfe2e6;
  border-radius: var(--olv-radius-form);
  box-shadow: 0 1px 2px rgba(27, 31, 34, 0.04);
  background-color: var(--olv-input-bg);
}
.single-product form.cart .quantity .qty {
  width: 40px;
  height: 100%;
  padding: 1px 0;
  border: 0;
  border-radius: var(--olv-radius-form);
  background: transparent;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
.single-product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product form.cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product form.cart .quantity-button {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 32px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}
.single-product form.cart .quantity-button.minus { left: 0; }
.single-product form.cart .quantity-button.plus { right: 0; }
.single-product form.cart .quantity-button:hover { color: var(--olv-primary); }
.single-product form.cart .single_add_to_cart_button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: var(--olv-btn-h);
  padding: 0 34px;
  border: 0;
  border-radius: var(--olv-radius-form);
  font-size: var(--olv-btn-font);
  font-weight: var(--olv-btn-weight);
  letter-spacing: -0.01em;
  white-space: nowrap;
  transition: color 0.15s ease, background-color 0.15s ease;
}
.single-product form.cart .single_add_to_cart_button.disabled,
.single-product form.cart .single_add_to_cart_button:disabled { opacity: 0.5; cursor: not-allowed; }
/* buy now (olverin-core buy-now.php) */
.single-product form.cart .buy_now_button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: var(--olv-btn-h);
  padding: 0 28px;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: var(--olv-btn-font);
  font-weight: var(--olv-btn-weight);
  white-space: nowrap;
  transition: color 0.15s ease, background-color 0.15s ease;
}
.single-product form.cart .buy_now_button:hover { background-color: var(--olv-text); color: var(--olv-white); }
/* mobile: quantity and buttons share one row, the button takes the remaining width */
@media (max-width: 991.98px) {
  .single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; }
  .single-product form.cart .buy_now_button { flex: 1 1 100%; }
}

/* 3.5.1 variable products (WooCommerce variable.php + swatches module for the inputs) */
.single-product form.cart .variations {
  width: 100%;
  margin: 0 0 15px;
  border: 0;
  border-collapse: collapse;
}
.single-product form.cart .variations th,
.single-product form.cart .variations td {
  padding: 0;
  border: 0;
  vertical-align: middle;
  text-align: left;
}
.single-product form.cart .variations tr { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 15px; }
.single-product form.cart .variations tr:last-child { margin-bottom: 0; }
.single-product form.cart .variations th.label { width: 100%; font-size: 14px; font-weight: 600; }
.single-product form.cart .variations td.value { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; }
.single-product form.cart .variations select {
  height: var(--olv-input-h);
  padding: 0 34px 0 14px;
  border: 1px solid var(--olv-input-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-input-bg);
  font-size: 14px;
  min-width: 180px;
}
.single-product form.cart .variations .reset_variations {
  font-size: 13px;
  color: var(--olv-text-light);
  text-decoration: underline;
}
.single-product form.cart .variations .reset_variations:hover { color: var(--olv-primary); }
.single-product form.cart .single_variation_wrap { width: 100%; }
.single-product form.cart .woocommerce-variation {
  margin-bottom: 15px;
}
.single-product form.cart .woocommerce-variation-price .price {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  font-size: 24px;
  font-weight: 600;
}
.single-product form.cart .woocommerce-variation-price .price del { font-size: 0.75em; color: #768088; opacity: 0.5; }
.single-product form.cart .woocommerce-variation-price .price ins { color: var(--olv-danger); text-decoration: none; }
.single-product form.cart .woocommerce-variation-description p:last-child { margin-bottom: 0; }
.single-product form.cart .woocommerce-variation-availability .stock {
  display: inline-flex;
  padding: 4px 10px;
  border-radius: 1px;
  background-color: rgba(64, 192, 87, 0.1);
  color: #40c057;
  font-size: 13px;
  font-weight: 600;
}
.single-product form.cart .woocommerce-variation-availability .stock.out-of-stock { background-color: rgba(229, 62, 62, 0.1); color: var(--olv-danger); }
.single-product form.cart .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.single-product form.cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: 0.5; pointer-events: none; }

/* 3.5.2 grouped products (single-product/add-to-cart/grouped.php) */
.single-product form.cart.grouped_form { display: block; }
.single-product form.cart .group_table {
  width: 100%;
  margin-bottom: 20px;
  border-collapse: collapse;
}
.single-product form.cart .group_table td {
  padding: 12px 10px 12px 0;
  border-bottom: 1px solid var(--olv-border);
  vertical-align: middle;
  font-size: 14px;
}
.single-product form.cart .group_table tr:first-child td { border-top: 1px solid var(--olv-border); }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__thumbnail { width: 70px; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__thumbnail img { display: block; width: 60px; height: auto; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__quantity { width: 130px; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__label { font-weight: 500; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__label a { color: inherit; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__label a:hover { color: var(--olv-primary); }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__price { text-align: right; font-weight: 600; white-space: nowrap; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__price del { font-weight: 400; color: #768088; opacity: 0.6; margin-right: 4px; }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__price ins { text-decoration: none; color: var(--olv-danger); }
.single-product form.cart .group_table .woocommerce-grouped-product-list-item__price .stock { display: block; font-size: 12px; font-weight: 500; color: #40c057; }
.single-product form.cart .group_table .button { height: var(--olv-btn-h-sm); padding: 0 14px; font-size: 13px; }

/* 3.6 wishlist / compare text links (olverin-core wishlist + compare modules) */
.product-detail-inner .wishlist-button,
.product-detail-inner .compare-button,
.product-detail-side .wishlist-button {
  position: relative;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 10px;
  margin-right: 20px;
  margin-bottom: 15px;
  font-size: 14px;
  line-height: 1.5;
}
.product-detail-inner .wishlist-button a,
.product-detail-inner .compare-button a,
.product-detail-side .wishlist-button a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--olv-text);
  font-weight: 600;
  cursor: pointer;
}
.product-detail-inner .wishlist-button a::before,
.product-detail-inner .compare-button a::before,
.product-detail-side .wishlist-button a::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 12.572l-7.5 7.428l-7.5-7.428a5 5 0 1 1 7.5-6.566a5 5 0 1 1 7.5 6.572'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 12.572l-7.5 7.428l-7.5-7.428a5 5 0 1 1 7.5-6.566a5 5 0 1 1 7.5 6.572'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transition: color var(--olv-transition);
}
.product-detail-inner .compare-button a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-8 4 16 3-8h4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-8 4 16 3-8h4'/%3E%3C/svg%3E");
}
.product-detail-inner .wishlist-button a:hover,
.product-detail-inner .compare-button a:hover,
.product-detail-inner .wishlist-button a.added { color: var(--olv-primary); }
.product-detail-inner .wishlist-button a.added::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 20.5l-1.1-1C5.4 14.5 2 11.4 2 7.6 2 4.5 4.4 2 7.5 2c1.7 0 3.4.8 4.5 2.1C13.1 2.8 14.8 2 16.5 2 19.6 2 22 4.5 22 7.6c0 3.8-3.4 6.9-8.9 11.9z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 20.5l-1.1-1C5.4 14.5 2 11.4 2 7.6 2 4.5 4.4 2 7.5 2c1.7 0 3.4.8 4.5 2.1C13.1 2.8 14.8 2 16.5 2 19.6 2 22 4.5 22 7.6c0 3.8-3.4 6.9-8.9 11.9z'/%3E%3C/svg%3E");
}

/* 3.7 checklist (olverin-core init.php blonwe_single_product_checklist) */
.product-detail-inner .product-checklist {
  position: relative;
  margin-bottom: 15px;
  padding-top: 20px;
  border-top: 1px solid #eceef0;
}
.product-detail-inner .product-checklist ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.product-detail-inner .product-checklist li {
  position: relative;
  padding: 3px 0 3px 18px;
  font-size: 14px;
  line-height: 1.5;
}
.product-detail-inner .product-checklist li::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 12px;
  height: 12px;
  background-color: #29843b;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.5 18.3 3.6 12.4l1.8-1.8 4.1 4.1 9.1-9.1 1.8 1.8z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.5 18.3 3.6 12.4l1.8-1.8 4.1 4.1 9.1-9.1 1.8 1.8z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* 3.8 delivery / return info boxes (theme mods printed under the form) */
.product-detail-inner .product-info-boxes,
.product-detail-inner .single-shipping-message { margin-bottom: 15px; }
.product-detail-inner .info-box {
  display: flex;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius);
  font-size: 13px;
  line-height: 1.5;
}
.product-detail-inner .info-box + .info-box { border-top: 0; }
.product-detail-inner .info-box i { flex-shrink: 0; font-size: 22px; color: var(--olv-primary); }
.product-detail-inner .info-box strong { display: block; font-size: 14px; }

/* 3.9 bottom meta (woocommerce/single-product/meta.php) */
.single-product-wrapper .product-meta.bottom {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 15px;
  padding-top: 20px;
  border-top: 1px solid #eceef0;
  font-size: 13px;
  line-height: 1;
}
.single-product-wrapper .product-meta.bottom > * {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.single-product-wrapper .product-meta.bottom > * > span:first-child { opacity: 0.6; }
.single-product-wrapper .product-meta.bottom span.sku { font-weight: 500; opacity: 1; }
.single-product-wrapper .product-meta.bottom a { color: inherit; font-weight: 500; }
.single-product-wrapper .product-meta.bottom a:hover { color: var(--olv-primary); }
.single-product-wrapper .product-meta.bottom:empty { display: none; }

/* 3.10 share links (.product-share.entry-social, includes/social share) */
.product-share { margin-top: 20px; }
.product-share .site-social ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.product-share .site-social li { width: 32px; height: 32px; }
.product-share .site-social li a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--olv-text);
  font-size: 14px;
  transition: var(--olv-transition);
}
.product-share .site-social li a:hover { background-color: currentColor; }
.product-share .site-social li a:hover i { color: var(--olv-white); }
.product-share .site-social a.facebook { color: #1877f2; }
.product-share .site-social a.twitter { color: #1da1f2; }
.product-share .site-social a.pinterest { color: #e60023; }
.product-share .site-social a.linkedin { color: #0077b5; }
.product-share .site-social a.reddit { color: #ff4500; }
.product-share .site-social a.whatsapp { color: #25d366; }
.product-share .site-social a.telegram { color: #229ed9; }
.product-share .site-social a.email { color: var(--olv-text); }

/* 3.11 side column for type 3 (price + cart) and type 4 (recent views + banner) */
.product-detail-side .detail-side-inner {
  padding: 20px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius);
  margin-bottom: 15px;
}
.product-detail-side .detail-side-inner .product-price { margin-top: 0; }
.product-detail-side .detail-side-inner form.cart { margin-bottom: 0; }
.product-detail-side .detail-side-inner form.cart .single_add_to_cart_button { flex: 1 1 auto; padding: 0 18px; }
.product-detail-side .text-widget img { display: block; width: 100%; height: auto; }
@media (max-width: 991.98px) {
  .product-detail-side { margin-bottom: 20px; }
}

/* ---- 32b-single-product-content.css ---- */
/* ==========================================================================
   Olverin theme: single product page, part 2
   Tabs, reviews, related/upsell modules and the small-screen rules for
   woocommerce/single-product-reviews.php and single-product/related.php.
   ========================================================================== */

/* --------------------------------------------------------------------------
   4. Tabs  (WooCommerce single-product/tabs/tabs.php)
   -------------------------------------------------------------------------- */
.woocommerce-tabs .wc-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 15px;
  margin: 0 0 20px;
  padding: 0;
  border-bottom: 1px solid #e6e8eb;
  list-style: none;
}
.woocommerce-tabs .wc-tabs li { position: relative; }
.woocommerce-tabs .wc-tabs li a {
  display: inline-flex;
  align-items: center;
  padding: 7px 0 13px;
  color: #adb5bd;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  transition: color var(--olv-transition);
}
.woocommerce-tabs .wc-tabs li a:hover,
.woocommerce-tabs .wc-tabs li.active a { color: var(--olv-text); }
@media (min-width: 992px) {
  .woocommerce-tabs .wc-tabs { gap: 25px; }
  .woocommerce-tabs .wc-tabs li a { font-size: 16px; }
}
.woocommerce-tabs .panel { display: none; }
.woocommerce-tabs .panel.active { display: block; }
.woocommerce-tabs .panel > h2:first-child { display: none; } /* tab headers already name the panel */
.woocommerce-tabs .panel > :last-child { margin-bottom: 0; }
.woocommerce-tabs .panel.entry-content { font-size: 16px; line-height: 1.5; }
/* no script: show every panel stacked with its own heading */
.no-js .woocommerce-tabs .panel { display: block; margin-bottom: 30px; }
.no-js .woocommerce-tabs .panel > h2:first-child { display: block; }

/* 4.1 additional information (single-product/tabs/additional-information.php) */
.woocommerce-product-attributes {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  font-size: 14px;
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
  padding: 12px 15px;
  border: 1px solid var(--olv-border);
  text-align: left;
  vertical-align: top;
}
.woocommerce-product-attributes th {
  width: 25%;
  background-color: var(--olv-bg-gray);
  font-weight: 600;
}
.woocommerce-product-attributes td p { margin: 0; }

/* 4.2 reviews (woocommerce/single-product-reviews.php) */
.woocommerce-Reviews { display: flex; flex-wrap: wrap; gap: 40px; }
.woocommerce-Reviews #comments,
.woocommerce-Reviews #review_form_wrapper { width: 100%; }
@media (min-width: 992px) {
  .woocommerce-Reviews #comments { flex: 1 1 0; min-width: 0; }
  .woocommerce-Reviews #review_form_wrapper { width: 40%; }
}
.woocommerce-Reviews .clear { flex-basis: 100%; height: 0; }
.woocommerce-Reviews-title {
  margin: 0 0 20px;
  font-size: 20px;
}
.woocommerce-Reviews .commentlist {
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce-Reviews .commentlist li { margin-bottom: 25px; }
.woocommerce-Reviews .comment_container {
  display: flex;
  gap: 15px;
}
.woocommerce-Reviews .comment_container > img,
.woocommerce-Reviews .comment_container .avatar {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
}
.woocommerce-Reviews .comment-text { flex: 1 1 0; min-width: 0; }
.woocommerce-Reviews .comment-text .star-rating { margin-bottom: 8px; font-size: 13px; }
.woocommerce-Reviews .comment-text .meta {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--olv-text-light);
}
.woocommerce-Reviews .comment-text .meta .woocommerce-review__author {
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 600;
}
.woocommerce-Reviews .comment-text .description { font-size: 14px; line-height: 1.6; }
.woocommerce-Reviews .comment-text .description p:last-child { margin-bottom: 0; }
.woocommerce-Reviews .woocommerce-noreviews,
.woocommerce-Reviews .woocommerce-verification-required { font-size: 14px; color: var(--olv-text-muted); }
.woocommerce-Reviews .woocommerce-pagination ul {
  display: flex;
  gap: 6px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.woocommerce-Reviews .woocommerce-pagination a,
.woocommerce-Reviews .woocommerce-pagination span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  font-size: 13px;
}
.woocommerce-Reviews .woocommerce-pagination .current { background-color: var(--olv-text); color: var(--olv-white); }

/* review form */
.woocommerce-Reviews .comment-reply-title {
  display: block;
  margin-bottom: 15px;
  font-size: 18px;
  font-weight: 600;
}
.woocommerce-Reviews .comment-reply-title small { margin-left: 10px; font-size: 13px; font-weight: 400; }
.woocommerce-Reviews .comment-form { display: flex; flex-wrap: wrap; gap: 15px; }
.woocommerce-Reviews .comment-form > p,
.woocommerce-Reviews .comment-form > div { width: 100%; margin: 0; }
.woocommerce-Reviews .comment-form .comment-notes { font-size: 13px; color: var(--olv-text-muted); }
.woocommerce-Reviews .comment-form label {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
}
.woocommerce-Reviews .comment-form .required { color: var(--olv-danger); }
.woocommerce-Reviews .comment-form input[type="text"],
.woocommerce-Reviews .comment-form input[type="email"],
.woocommerce-Reviews .comment-form textarea,
.woocommerce-Reviews .comment-form select {
  width: 100%;
  padding: 0 14px;
  border: 1px solid var(--olv-input-border);
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-input-bg);
  font-size: 14px;
  height: var(--olv-input-h);
}
.woocommerce-Reviews .comment-form textarea { height: auto; min-height: 140px; padding: 12px 14px; resize: vertical; }
.woocommerce-Reviews .comment-form select { max-width: 200px; }
.woocommerce-Reviews .comment-form .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
}
.woocommerce-Reviews .comment-form .comment-form-cookies-consent input { margin-top: 3px; }
.woocommerce-Reviews .comment-form .comment-form-cookies-consent label { margin: 0; font-weight: 400; }
.woocommerce-Reviews .comment-form .form-submit { margin-top: 5px; }
.woocommerce-Reviews .comment-form .submit {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: var(--olv-btn-h);
  padding: 0 34px;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-text);
  color: var(--olv-white);
  font-size: var(--olv-btn-font);
  font-weight: var(--olv-btn-weight);
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.woocommerce-Reviews .comment-form .submit:hover { background-color: var(--olv-primary); }
@media (min-width: 768px) {
  .woocommerce-Reviews .comment-form .comment-form-author,
  .woocommerce-Reviews .comment-form .comment-form-email { width: calc(50% - 8px); }
}

/* --------------------------------------------------------------------------
   5. Related / upsell modules (single-product/related.php, up-sells.php)
   -------------------------------------------------------------------------- */
.single-product-wrapper .klb-module.related,
.single-product-wrapper .klb-module.upsells {
  position: relative;
  margin-top: 30px;
}
.single-product-wrapper .klb-module .module-header { margin-bottom: 15px; }
.single-product-wrapper .klb-module .module-header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.single-product-wrapper .klb-module .module-header .entry-title {
  position: relative;
  margin: 0;
  font-family: var(--olv-font-heading);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
@media (min-width: 992px) {
  .single-product-wrapper .klb-module.related,
  .single-product-wrapper .klb-module.upsells { margin-top: 60px; }
  .single-product-wrapper .klb-module .module-header { margin-bottom: 20px; }
  .single-product-wrapper .klb-module .module-header .entry-title { font-size: 20px; }
}

/* --------------------------------------------------------------------------
   6. Mobile / tablet
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
  .single-product-wrapper .product-content { margin-top: 40px; }
  .single-product-wrapper .product-header .product_title { font-size: calc(1.375rem + 1.5vw); }
  /* when the Customizer pins the cart form to the bottom (blonwe_mobile_single_sticky_cart)
     keep the checklist below the form from touching it */
  .single .product-type-simple form.cart .quantity { flex-shrink: 0; }
  .single .product-type-simple form.cart .single_add_to_cart_button { min-width: 0; }
}
@media (max-width: 575.98px) {
  .single-product-wrapper .product_title { font-size: calc(1.375rem + 1.5vw); }
  .single-product form.cart .single_add_to_cart_button { padding: 0 20px; }
  .woocommerce-Reviews .comment_container > img,
  .woocommerce-Reviews .comment_container .avatar { width: 46px; height: 46px; }
}

/* ---- 33-woocommerce-pages.css ---- */
/* ==========================================================================
   Olverin theme: WooCommerce pages
   Cart, checkout, order received, my account, lost password, wishlist page,
   compare page. Authored by Olverin Ventures from the theme markup and the
   measured reference (specs cart|checkout|myaccount|wishlist|compare).
   Generic notices, buttons, inputs, .form-row and .quantity come from the
   base partials; this file only scopes them where the page differs.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared two-column wrapper (cart/cart.php, checkout/form-checkout.php)
   -------------------------------------------------------------------------- */
.cart-wrapper { display: flex; flex-wrap: wrap; gap: 20px; }
.woocommerce > .cart-wrapper { margin-top: 20px; }
.cart-wrapper > .woocommerce-cart-form,
.cart-wrapper > .col2-set,
.cart-wrapper > .cart-collaterals,
.cart-wrapper > .order-review-wrapper { width: 100%; flex-shrink: 0; }
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { float: none; width: 100%; max-width: 100%; }
@media (min-width: 992px) {
  .cart-wrapper { gap: 40px; }
  .woocommerce > .cart-wrapper { margin-top: 40px; }
  .cart-wrapper > .woocommerce-cart-form,
  .cart-wrapper > .col2-set { width: auto; flex: 1 0 0; }
  .cart-wrapper > .cart-collaterals,
  .cart-wrapper > .order-review-wrapper { width: 340px; }
}

/* Page notices inside these pages (base owns the generic look) */
.cart-wrapper .woocommerce-notices-wrapper:not(:empty),
.checkout-wrapper .woocommerce-NoticeGroup { width: 100%; margin-bottom: 20px; }

/* --------------------------------------------------------------------------
   Free shipping progress bar (olverin-core shipping-progress-bar, cart page +
   checkout location). .warning while below the threshold, .success once met.
   -------------------------------------------------------------------------- */
.cart-wrapper .klb-free-shipping {
  position: relative; margin-bottom: 5px; padding: 15px;
  border: 1px dashed rgba(var(--olv-primary-rgb), 0.45); background-color: rgba(var(--olv-primary-rgb), 0.06);
}
.cart-wrapper .klb-free-shipping.warning { border-color: #fca1a1; background-color: #fff5f5; }
.cart-wrapper .klb-free-shipping.success { border-color: rgba(47, 158, 68, 0.45); background-color: rgba(47, 158, 68, 0.07); }
.cart-wrapper .shipping-notice { margin: 0 0 10px; font-size: 14px; line-height: 1.5; }
.cart-wrapper .shipping-notice i { display: inline-block; margin-right: 8px; font-size: 17px; vertical-align: -3px; }
.cart-wrapper .shipping-notice .amount { color: var(--olv-danger); font-weight: 600; }
.cart-wrapper .klb-free-shipping.success .shipping-notice .amount { color: var(--olv-success); }
.cart-wrapper .shipping-progress { position: relative; overflow: hidden; height: 6px; border-radius: 12px; background-color: #ffe0e0; }
.cart-wrapper .klb-free-shipping.success .shipping-progress { background-color: rgba(47, 158, 68, 0.2); }
.cart-wrapper .shipping-progress span { position: absolute; top: 0; left: 0; height: 100%; max-width: 100%; border-radius: 12px; background-color: var(--olv-danger); transition: width 0.4s ease; }
.cart-wrapper .klb-free-shipping.success .shipping-progress span { background-color: var(--olv-success); }
@media (min-width: 992px) {
  .cart-wrapper .klb-free-shipping { margin-bottom: 20px; padding: 20px; }
}

/* --------------------------------------------------------------------------
   Shop tables (Bootstrap .table restyle for every WooCommerce table)
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table {
  width: 100%; max-width: 100%; margin-bottom: 16px; border: 0; border-collapse: collapse;
  font-size: 15px; line-height: 1.5; color: var(--olv-text); vertical-align: middle;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 12px; border: 0; border-bottom: 1px solid var(--olv-border); background: none; box-shadow: none; vertical-align: middle; text-align: left; }
.woocommerce table.shop_table thead th { font-weight: 600; vertical-align: middle; }
.woocommerce table.shop_table tbody th { font-weight: 500; }
.woocommerce table.shop_table tr:last-child > td,
.woocommerce table.shop_table tr:last-child > th { border-bottom-width: 1px; }
.woocommerce table.shop_table .product-thumbnail { padding-left: 0; padding-right: 0; }
.woocommerce table.shop_table .product-thumbnail img,
.woocommerce table.shop_table .klbwl-item--image img { display: block; width: 46px; height: auto; max-width: none; }
.woocommerce table.shop_table td.product-name { font-weight: 500; }
.woocommerce table.shop_table td.product-name a { color: var(--olv-text); text-decoration: underline; text-decoration-color: rgba(var(--olv-text-rgb), 0.3); transition: text-decoration-color var(--olv-transition); }
.woocommerce table.shop_table td.product-name a:hover { text-decoration-color: currentColor; }
.woocommerce table.shop_table .variation { display: grid; grid-template-columns: auto 1fr; gap: 0 6px; margin: 4px 0 0; font-size: 13px; color: var(--olv-text-muted); }
.woocommerce table.shop_table .variation p { margin: 0; }
.woocommerce table.shop_table .product-quantity .quantity { margin: 0; }
.woocommerce table.shop_table .product-remove { width: 41px; padding: 5px; }
.woocommerce table.shop_table a.remove,
.woocommerce table.shop_table .klbwl-item--remove span {
  display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
  border-radius: 50%; background-color: var(--olv-danger); color: var(--olv-white); font-size: 8px; line-height: 1; cursor: pointer;
  transition: background-color var(--olv-transition);
}
.woocommerce table.shop_table a.remove:hover,
.woocommerce table.shop_table .klbwl-item--remove span:hover { background-color: var(--olv-text); color: var(--olv-white); }
.woocommerce table.shop_table a.remove i,
.woocommerce table.shop_table .klbwl-item--remove i { font-size: 8px; }
/* cart.php uses <i class="klbth-icon-cancel">, a class no icon sheet defines: draw the cross ourselves */
.woocommerce table.shop_table a.remove .klbth-icon-cancel::before { content: "\00d7"; font-style: normal; font-size: 13px; line-height: 1; }
@media (min-width: 992px) {
  .woocommerce table.shop_table .product-thumbnail img,
  .woocommerce table.shop_table .klbwl-item--image img { width: 66px; }
}

/* --------------------------------------------------------------------------
   Cart table (cart/cart.php)
   -------------------------------------------------------------------------- */
.woocommerce-cart-form__contents tbody tr { position: relative; }
.woocommerce-cart-form__contents thead th.product-name { font-weight: 500; }
.woocommerce-cart-form__contents td.actions { padding-left: 0; padding-right: 0; border-top: 1px solid var(--olv-border); }
.woocommerce-cart-form__contents .actions-wrapper { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce-cart-form__contents .coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; width: 100%; }
.woocommerce-cart-form__contents .coupon label { width: 100%; margin: 0 0 5px; font-size: 13px; line-height: 1.5; }
.woocommerce-cart-form__contents .coupon .input-text { width: 100%; height: 46px; }
.woocommerce-cart-form__contents .coupon .button { width: 100%; height: 46px; justify-content: center; border: 0; background-color: #15aabf; color: var(--olv-white); }
.woocommerce-cart-form__contents .coupon .button:hover { background-color: var(--olv-text); color: var(--olv-white); }
.woocommerce-cart-form__contents .actions .button[name="update_cart"] { display: none; }
.woocommerce-cart-form__contents .actions .empty-cart-button { flex: 1 0 0; margin-top: 10px; justify-content: center; }
@media (max-width: 991.98px) {
  .woocommerce-cart-form__contents th.product-price,
  .woocommerce-cart-form__contents td.product-price,
  .woocommerce-cart-form__contents th.product-subtotal,
  .woocommerce-cart-form__contents td.product-subtotal { display: none; }
  .woocommerce-cart-form__contents thead th.product-name,
  .woocommerce-cart-form__contents td.product-name { font-size: 14px; }
  .woocommerce-cart-form__contents th.product-remove { display: none; }
  .woocommerce-cart-form__contents td.product-remove { position: absolute; top: 0; left: 0; width: 28px; border: 0; }
  .woocommerce-cart-form__contents .actions .empty-cart-button { width: 100%; }
}
@media (min-width: 768px) {
  .woocommerce-cart-form__contents .coupon { width: auto; flex: 1 0 0; }
  .woocommerce-cart-form__contents .coupon label { width: auto; margin: 0 5px 0 0; }
  .woocommerce-cart-form__contents .coupon .input-text { flex: 1; max-width: 320px; height: 42px; }
  .woocommerce-cart-form__contents .coupon .button { width: auto; height: 42px; }
  .woocommerce-cart-form__contents .actions .empty-cart-button { flex: 0 0 auto; margin-top: 0; }
}
@media (min-width: 992px) {
  .woocommerce-cart-form__contents .coupon { padding-right: 20px; }
  .woocommerce-cart-form__contents .coupon .input-text { height: 42px; }
  .woocommerce-cart-form__contents .actions .empty-cart-button { margin-left: auto; }
}

/* Cart totals (cart/cart-totals.php) */
.cart-collaterals .cart_totals h2 { margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--olv-border); font-size: 18px; line-height: 1.2; }
.cart-collaterals table.shop_table { margin-bottom: 0; font-size: 14px; }
.cart-collaterals table.shop_table th { padding: 12px 12px 12px 0; font-weight: 400; line-height: 1; }
.cart-collaterals table.shop_table td { padding: 12px 0 12px 12px; line-height: 1; text-align: right; }
.cart-collaterals .order-total th { font-weight: 500; }
.cart-collaterals .order-total td { color: var(--olv-danger); font-size: 20px; font-weight: 600; }
.cart-collaterals .order-total td,
.cart-collaterals .order-total th { border-bottom: 0; }
.cart-collaterals .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; text-align: left; }
.cart-collaterals .woocommerce-shipping-methods li { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px; line-height: 1.4; }
.cart-collaterals .woocommerce-shipping-methods label { margin: 0; font-size: 14px; }
.cart-collaterals .woocommerce-shipping-destination { margin: 6px 0 0; font-size: 13px; color: var(--olv-text-muted); text-align: left; }
.cart-collaterals .shipping-calculator-button { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 500; text-decoration: underline; }
.cart-collaterals .shipping-calculator-form { margin-top: 12px; text-align: left; }
.cart-collaterals .shipping-calculator-form .form-row { margin-bottom: 10px; }
.cart-collaterals .shipping-calculator-form .button { width: 100%; justify-content: center; }
.cart-collaterals .wc-proceed-to-checkout { margin-top: 15px; }
.cart-collaterals .checkout-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: var(--olv-btn-h); }
.cart-collaterals .cross-sells { width: 100%; margin-top: 40px; }
.cart-collaterals .cross-sells > h2 { margin-bottom: 20px; font-size: 22px; }
@media (min-width: 992px) {
  .cart-collaterals .cart_totals { padding: 35px; background-color: #f8f9fa; }
}

/* Empty cart (cart/cart-empty.php, also wishlist/compare no-result) */
.cart-empty-page { max-width: 760px; margin: 40px auto; text-align: center; }
.cart-empty-page .empty-icon { display: inline-flex; align-items: flex-end; justify-content: center; width: 160px; height: 160px; font-size: 112px; line-height: 1.5; color: var(--olv-text); }
.cart-empty-page .empty-icon svg { width: 160px; height: auto; fill: currentColor; }
.cart-empty-page .cart-empty,
.cart-empty-page .woocommerce-info {
  margin: 0 0 20px; padding: 0; border: 0; background: none; box-shadow: none;
  color: var(--olv-danger); font-size: 18px; font-weight: 700; line-height: 1.5; text-transform: uppercase; text-align: center;
}
.cart-empty-page .woocommerce-info::before { display: none; }
.cart-empty-page .return-to-shop { margin-bottom: 16px; }
.cart-empty-page .return-to-shop .button { background-color: #e6e8eb; color: var(--olv-text); }
.cart-empty-page .return-to-shop .button:hover { background-color: var(--olv-text); color: var(--olv-white); }

/* --------------------------------------------------------------------------
   Checkout (checkout/form-checkout.php, form-coupon.php, form-login.php)
   -------------------------------------------------------------------------- */
.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle { position: relative; margin-bottom: 30px; padding: 20px 20px 20px 35px; background-color: var(--olv-bg-gray); font-size: 14px; line-height: 1.5; }
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; color: inherit; }
.woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
.woocommerce-form-coupon-toggle .showcoupon,
.woocommerce-form-login-toggle .showlogin { color: var(--olv-primary); font-weight: 500; text-decoration: underline; }
.woocommerce form.checkout_coupon,
.woocommerce-checkout .woocommerce > form.woocommerce-form-login { margin-bottom: 30px; padding: 20px; border: 1px solid var(--olv-border); }
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce form.checkout_coupon > p { margin: 0; }
.woocommerce form.checkout_coupon .form-row-first { flex: 1 1 200px; }
.woocommerce form.checkout_coupon .form-row-last { flex: 0 0 auto; }
.woocommerce form.checkout_coupon .form-row-last .button { height: 42px; border: 0; background-color: #e6e8eb; color: var(--olv-text); }
.woocommerce form.checkout_coupon .form-row-last .button:hover { background-color: var(--olv-text); color: var(--olv-white); }
.woocommerce form.checkout_coupon .clear { display: none; }
.woocommerce-checkout .woocommerce-form-login .form-row-first,
.woocommerce-checkout .woocommerce-form-login .form-row-last { width: 100%; }

/* Customer details */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading { margin: 0 0 10px; font-size: 18px; line-height: 1.2; }
.woocommerce-shipping-fields h3 label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: inherit; cursor: pointer; }
.woocommerce-shipping-fields h3 input { margin: 0; }
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-account-fields { display: flex; flex-wrap: wrap; margin: 0 -10px; }
.woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-shipping-fields__field-wrapper > .form-row,
.woocommerce-additional-fields__field-wrapper > .form-row,
.woocommerce-account-fields > .form-row { width: 100%; padding: 0 10px; flex-shrink: 0; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper > .input-text,
.woocommerce-checkout .form-row .woocommerce-input-wrapper > .select2-container { width: 100%; }
.woocommerce-checkout .form-row.notes textarea { min-height: 150px; padding: 12px; line-height: 1.5; resize: vertical; }
.woocommerce-additional-fields { margin-top: 30px; }
.woocommerce-shipping-fields .shipping_address { margin-top: 10px; }
.woocommerce-checkout .create-account { width: 100%; padding: 0 10px; }
.woocommerce-checkout .create-account label { display: inline-flex; align-items: center; gap: 8px; }
.woocommerce-checkout .woocommerce-account-fields { margin-top: 10px; }
@media (min-width: 576px) {
  .woocommerce-billing-fields__field-wrapper > .form-row-first,
  .woocommerce-billing-fields__field-wrapper > .form-row-last,
  .woocommerce-shipping-fields__field-wrapper > .form-row-first,
  .woocommerce-shipping-fields__field-wrapper > .form-row-last { width: 50%; }
}
@media (min-width: 992px) {
  .woocommerce-billing-fields h3,
  .woocommerce-shipping-fields h3,
  .woocommerce-additional-fields h3,
  #order_review_heading { font-size: 20px; }
}

/* Order review (checkout/review-order.php) */
.woocommerce-checkout-review-order-table { margin-bottom: 20px; font-size: 14px; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 12px 0; }
.woocommerce-checkout-review-order-table thead th { font-weight: 600; }
.woocommerce-checkout-review-order-table .product-name { max-width: 50%; padding-right: 15px; font-weight: 400; }
.woocommerce-checkout-review-order-table .product-name .product-quantity { font-weight: 600; }
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table tfoot td { padding-left: 12px; text-align: right; }
.woocommerce-checkout-review-order-table tfoot th { font-weight: 500; }
.woocommerce-checkout-review-order-table .order-total td { color: var(--olv-danger); font-size: 20px; font-weight: 600; line-height: 1.5; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; text-align: left; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods label { margin: 0; font-size: 14px; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li:last-child { margin-bottom: 0; }
.woocommerce-checkout-review-order-table .woocommerce-remove-coupon { margin-left: 4px; color: var(--olv-danger); font-size: 12px; }

/* Payment (checkout/payment.php) */
.woocommerce-checkout-payment .wc_payment_methods { margin: 0 0 16px; padding: 0; list-style: none; }
.woocommerce-checkout-payment .wc_payment_method { display: flex; flex-wrap: wrap; padding: 12px 0; border-bottom: 1px solid var(--olv-border); }
.woocommerce-checkout-payment .wc_payment_method > label { display: flex; align-items: center; gap: 8px; width: 100%; margin: 0; font-size: 14px; font-weight: 500; cursor: pointer; }
.woocommerce-checkout-payment .wc_payment_method > label img { max-height: 24px; margin-left: auto; }
.woocommerce-checkout-payment .wc_payment_method > input[type="radio"] { margin: 3px 0 0; flex-shrink: 0; }
.woocommerce-checkout-payment .wc_payment_method > input[type="radio"] + label { width: calc(100% - 25px); }
.woocommerce-checkout-payment .payment_box { position: relative; width: 100%; margin-top: 12px; padding: 14px 16px; background-color: var(--olv-bg-gray); font-size: 13px; line-height: 1.5; }
.woocommerce-checkout-payment .payment_box::before { content: ""; position: absolute; top: -6px; left: 18px; width: 12px; height: 12px; background-color: var(--olv-bg-gray); transform: rotate(45deg); }
.woocommerce-checkout-payment .payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout-payment .wc_payment_methods > li > .woocommerce-info { margin: 0; width: 100%; }
.woocommerce-checkout-payment .place-order { display: flex; flex-wrap: wrap; width: 100%; margin: 0; padding: 0; }
.woocommerce-terms-and-conditions-wrapper { width: 100%; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text { font-size: 12px; line-height: 1.5; color: var(--olv-text-muted); }
.woocommerce-terms-and-conditions-wrapper .form-row { margin-bottom: 16px; }
.woocommerce-terms-and-conditions-wrapper .checkbox { position: relative; display: block; margin: 0 0 5px; padding-left: 25px; font-size: 13px; line-height: 1.5; }
.woocommerce-terms-and-conditions-wrapper .checkbox input { position: absolute; top: 1px; left: 0; margin: 0; }
.woocommerce-terms-and-conditions-wrapper .checkbox .woocommerce-terms-and-conditions-link { color: var(--olv-info); font-weight: 600; }
.woocommerce-terms-and-conditions { margin-bottom: 16px; padding: 16px; border: 1px solid var(--olv-border); font-size: 13px; }
.woocommerce-checkout-payment #place_order { width: 100%; height: 50px; justify-content: center; }
.woocommerce-checkout .blockUI.blockOverlay { background-color: rgba(255, 255, 255, 0.6); }

/* --------------------------------------------------------------------------
   Order received (checkout/thankyou.php) and order details
   -------------------------------------------------------------------------- */
.woocommerce-order { margin-top: 20px; }
.woocommerce-order > p,
.woocommerce-thankyou-order-received { margin-bottom: 20px; font-size: 18px; font-weight: 500; }
.woocommerce-thankyou-order-failed { color: var(--olv-danger); }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; margin: 0 0 30px; padding: 0; list-style: none; border: 1px solid var(--olv-border); }
.woocommerce-order-overview li { flex: 1 1 140px; padding: 14px 18px; border-right: 1px solid var(--olv-border); border-bottom: 1px solid var(--olv-border); font-size: 12px; line-height: 1.4; color: var(--olv-text-muted); text-transform: uppercase; letter-spacing: 0.03em; }
.woocommerce-order-overview li strong { display: block; margin-top: 4px; color: var(--olv-text); font-size: 15px; text-transform: none; letter-spacing: 0; }
.woocommerce-order-overview li:last-child { border-right: 0; }
.woocommerce-order-details,
.woocommerce-customer-details { margin-bottom: 30px; }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details > h2 { margin: 0 0 15px; font-size: 20px; }
.woocommerce-table--order-details tfoot th { font-weight: 500; }
.woocommerce-table--order-details tfoot td,
.woocommerce-table--order-details .product-total { text-align: right; }
.woocommerce-table--order-details .wc-item-meta { margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--olv-text-muted); }
.woocommerce-table--order-details .wc-item-meta p { display: inline; margin: 0; }
.woocommerce-customer-details address,
.woocommerce-Address address { margin: 0; padding: 20px; background-color: var(--olv-bg-gray); font-style: normal; font-size: 14px; line-height: 1.7; }
.woocommerce-customer-details--phone,
.woocommerce-customer-details--email { margin: 8px 0 0; }
.woocommerce-columns--addresses { display: flex; flex-wrap: wrap; gap: 20px; }
.woocommerce-columns--addresses .woocommerce-column { flex: 1 1 260px; }
.woocommerce-order-pay #order_review .woocommerce-checkout-payment { margin-top: 20px; }

/* --------------------------------------------------------------------------
   My account: login / register (myaccount/form-login.php)
   -------------------------------------------------------------------------- */
.my-account-page .woocommerce > h2,
.woocommerce #customer_login h2 { margin: 0 0 8px; font-size: 18px; font-weight: 500; line-height: 1.2; }
.woocommerce-form-login .lost-password { margin-top: 0; }
.woocommerce-form-login .lost-password .form-row { margin-bottom: 16px; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; margin-bottom: 14px; font-size: 13px; }
.woocommerce-form-login__rememberme input { margin: 0 8px 0 0; }
.woocommerce-LostPassword { margin-bottom: 16px; }
.woocommerce-LostPassword a { color: var(--olv-primary); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-LostPassword a:hover { color: var(--olv-text); }
.woocommerce-form-login__submit,
.woocommerce-form-register__submit { height: 44px; }
.woocommerce #customer_login.col2-set { display: flex; flex-wrap: wrap; gap: 30px; }
.woocommerce #customer_login .col-1,
.woocommerce #customer_login .col-2 { width: 100%; }
.woocommerce-form-register > p:first-of-type { margin-bottom: 16px; }
.woocommerce-privacy-policy-text { font-size: 13px; }
@media (min-width: 992px) {
  .woocommerce #customer_login.col2-set { gap: 40px; }
  .woocommerce #customer_login .col-1,
  .woocommerce #customer_login .col-2 { width: calc(50% - 20px); }
}
/* Tabbed variant (Customizer "logintab") */
.site-login { max-width: 520px; margin: 40px auto; }
.site-login .login-page-tab { display: flex; margin: 0 0 30px; padding: 0; list-style: none; border-bottom: 1px solid var(--olv-border); }
.site-login .login-page-tab li { flex: 1; text-align: center; }
.site-login .login-page-tab a { display: block; margin-bottom: -1px; padding: 12px 0; border-bottom: 2px solid transparent; font-size: 16px; font-weight: 600; color: var(--olv-text-muted); }
.site-login .login-page-tab a.active { border-bottom-color: var(--olv-primary); color: var(--olv-text); }
.site-login .site-login-overflow { overflow: hidden; }
.site-login .login-form-container { display: flex; width: 200%; transition: transform 0.4s ease; }
.site-login .login-form-container > div { width: 50%; padding: 0 1px; }
.site-login.no-register .login-form-container { width: 100%; }
.site-login.no-register .login-form-container > div { width: 100%; }
.site-login .login-form-container.register-active { transform: translateX(-50%); }
.site-login .login-form-container > div > p:first-child { margin-bottom: 20px; color: var(--olv-text-muted); }
.site-login .woocommerce-form-login__submit,
.site-login .woocommerce-form-register__submit { width: 100%; justify-content: center; }

/* Lost password (myaccount/form-lost-password.php, form-reset-password.php) */
.woocommerce-ResetPassword { max-width: 560px; }
.woocommerce-ResetPassword > p:first-child { margin-bottom: 20px; }
.woocommerce-ResetPassword .form-row-first { width: 100%; }
.woocommerce-ResetPassword .woocommerce-Button { height: 44px; }

/* --------------------------------------------------------------------------
   My account: dashboard (myaccount/my-account.php, navigation.php)
   -------------------------------------------------------------------------- */
.my-account-wrapper { display: flex; flex-wrap: wrap; gap: 30px; }
.my-account-navigation { width: 100%; flex-shrink: 0; }
.woocommerce-MyAccount-content { width: 100%; min-width: 0; flex: 1 1 0; }
.woocommerce-MyAccount-navigation { padding: 25px; background-color: var(--olv-bg-gray); }
.woocommerce-MyAccount-navigation .user-detail { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--olv-border); }
.woocommerce-MyAccount-navigation .user-avatar { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; flex-shrink: 0; border-radius: 50%; background-color: var(--olv-primary); color: var(--olv-white); font-size: 16px; font-weight: 600; text-transform: uppercase; }
.woocommerce-MyAccount-navigation .user-info { min-width: 0; }
.woocommerce-MyAccount-navigation .user-info span { display: block; font-size: 12px; color: var(--olv-text-muted); }
.woocommerce-MyAccount-navigation .user-info .entry-name { margin: 2px 0 0; font-size: 17px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.woocommerce-MyAccount-navigation .user-menu-button { display: none; margin-left: auto; font-size: 20px; cursor: pointer; }
.woocommerce-MyAccount-navigation-menu ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation-menu li a { display: block; padding: 9px 0; font-size: 15px; font-weight: 500; color: var(--olv-text); transition: color var(--olv-transition); }
.woocommerce-MyAccount-navigation-menu li a:hover,
.woocommerce-MyAccount-navigation-menu li.is-active a { color: var(--olv-primary); }
.woocommerce-MyAccount-navigation-menu li.is-active a { font-weight: 600; }
.woocommerce-MyAccount-navigation-menu li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--olv-border); }
.woocommerce-MyAccount-content > p:first-child,
.woocommerce-MyAccount-content .woocommerce-notices-wrapper + p { margin-bottom: 16px; }
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 { margin: 0 0 15px; font-size: 20px; }
.woocommerce-MyAccount-content fieldset { margin: 25px 0 0; padding: 0; border: 0; }
.woocommerce-MyAccount-content legend { margin-bottom: 15px; font-size: 18px; font-weight: 600; }
.woocommerce-MyAccount-content .woocommerce-Button { height: 44px; }
@media (max-width: 767.98px) {
  .woocommerce-MyAccount-navigation .user-menu-button { display: block; }
  .woocommerce-MyAccount-navigation .user-detail { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
  .woocommerce-MyAccount-navigation-menu { display: none; padding-top: 20px; }
  .woocommerce-MyAccount-navigation.active .woocommerce-MyAccount-navigation-menu,
  .woocommerce-MyAccount-navigation.menu-open .woocommerce-MyAccount-navigation-menu { display: block; }
}
@media (min-width: 992px) {
  .my-account-wrapper { gap: 40px; }
  .my-account-navigation { width: 300px; }
  .woocommerce-MyAccount-content { width: auto; }
  .woocommerce-MyAccount-navigation { padding: 30px; }
}

/* Orders table (myaccount/orders.php) */
.woocommerce-orders-table { font-size: 14px; }
.woocommerce-orders-table__cell-order-number a { font-weight: 600; color: var(--olv-primary); }
.woocommerce-orders-table__cell-order-actions { text-align: right; }
.woocommerce-orders-table__cell-order-actions .button { height: 34px; margin-left: 4px; padding: 0 12px; font-size: 13px; }
.woocommerce-pagination--without-numbers { display: flex; gap: 10px; margin-top: 20px; }
.woocommerce-MyAccount-content .woocommerce-message .button,
.woocommerce-MyAccount-content .woocommerce-info .button { margin-left: auto; }

/* Addresses (myaccount/my-address.php, form-edit-address.php) */
.woocommerce-Addresses { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 15px; }
.woocommerce-Addresses .woocommerce-Address { width: 100%; flex: 1 1 260px; }
.woocommerce-Addresses .col-1,
.woocommerce-Addresses .col-2 { width: auto; }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.woocommerce-Address-title h2,
.woocommerce-Address-title h3 { margin: 0; font-size: 18px; }
.woocommerce-Address-title .edit { font-size: 13px; font-weight: 500; text-decoration: underline; }
.woocommerce-address-fields__field-wrapper { display: flex; flex-wrap: wrap; margin: 0 -10px; }
.woocommerce-address-fields__field-wrapper > .form-row { width: 100%; padding: 0 10px; flex-shrink: 0; }
.woocommerce-address-fields .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-address-fields .woocommerce-input-wrapper > .input-text,
.woocommerce-address-fields .woocommerce-input-wrapper > .select2-container { width: 100%; }
@media (min-width: 576px) {
  .woocommerce-address-fields__field-wrapper > .form-row-first,
  .woocommerce-address-fields__field-wrapper > .form-row-last { width: 50%; }
}
/* Account details (myaccount/form-edit-account.php) */
.woocommerce-EditAccountForm .form-row-first,
.woocommerce-EditAccountForm .form-row-last { width: 100%; }
.woocommerce-EditAccountForm .form-row > span:not(.password-input) { display: block; margin-top: 4px; font-size: 12px; color: var(--olv-text-muted); }
@media (min-width: 576px) {
  .woocommerce-EditAccountForm { display: flex; flex-wrap: wrap; gap: 0 20px; }
  .woocommerce-EditAccountForm > * { width: 100%; }
  .woocommerce-EditAccountForm .form-row-first,
  .woocommerce-EditAccountForm .form-row-last { width: calc(50% - 10px); }
}

/* --------------------------------------------------------------------------
   Wishlist page (olverin-core wishlist shortcode [klbwl_list])
   -------------------------------------------------------------------------- */
.klbwl-list table.shop_table { font-size: 14px; }
.klbwl-list table.shop_table thead th.product-thumbnail,
.klbwl-list table.shop_table thead th.product-remove { width: 1%; }
.klbwl-list .klbwl-item--image { padding-left: 0; }
.klbwl-list .klbwl-item--image a { display: block; }
.klbwl-list .klbwl-item--name { font-weight: 500; }
.klbwl-list .klbwl-item--name a { color: var(--olv-text); }
.klbwl-list .klbwl-item--name a:hover { color: var(--olv-primary); }
.klbwl-list .klbwl-item--price .price { font-weight: 600; }
.klbwl-list .klbwl-item--price del { margin-right: 4px; font-weight: 400; opacity: 0.55; }
.klbwl-list .klbwl-item--date { white-space: nowrap; color: var(--olv-text-muted); }
.klbwl-list .klbwl-item--stock .stock { margin: 0; font-size: 13px; font-weight: 500; }
.klbwl-list .klbwl-item--stock .in-stock { color: var(--olv-success); }
.klbwl-list .klbwl-item--stock .out-of-stock { color: var(--olv-danger); }
.klbwl-list .klbwl-item--addtocart .button { height: 38px; padding: 0 16px; font-size: 14px; white-space: nowrap; }
.klbwl-list .klbwl-item--addtocart .added_to_cart { display: block; margin-top: 6px; font-size: 12px; text-decoration: underline; }
.klbwl-list .klbwl-item--remove { width: 41px; padding: 5px; text-align: right; }
.klbwl-list .klbwl-item.removing { opacity: 0.4; pointer-events: none; }
.klbwl-list .klbwl-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 15px; margin-top: 30px; }
.klbwl-list .klbwl-actions .site-social { display: flex; align-items: center; gap: 12px; }
.klbwl-list .klbwl-actions .social-label { font-size: 14px; font-weight: 500; }
.klbwl-list .klbwl-actions ul { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.klbwl-list .klbwl-actions ul a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background-color: var(--olv-bg-gray); color: var(--olv-text); font-size: 15px; transition: background-color var(--olv-transition), color var(--olv-transition); }
.klbwl-list .klbwl-actions ul a:hover { background-color: var(--olv-primary); color: var(--olv-white); }
.klbwl-list .klbwl-no-result + .klbwl-actions { display: none; }
@media (max-width: 767.98px) {
  .klbwl-list table.shop_table { display: block; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
  .klbwl-list .klbwl-item--date { display: none; }
  .klbwl-list th.product-date { display: none; }
}

/* --------------------------------------------------------------------------
   Compare page (olverin-core compare shortcode: .klbcp-list / .klbcp_table)
   Horizontal comparison table, first (label) column stays sticky on scroll.
   -------------------------------------------------------------------------- */
.klbcp-list { margin-top: 20px; }
.klbcp-list .klbcp-table-wrapper,
.klbcp-list table.klbcp_table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.klbcp-list table.klbcp_table { margin-bottom: 0; border: 1px solid var(--olv-border); border-collapse: separate; border-spacing: 0; font-size: 14px; }
.klbcp-list table.klbcp_table tbody { display: table; width: 100%; min-width: 100%; }
.klbcp-list table.klbcp_table td { min-width: 220px; padding: 20px; border-right: 1px solid var(--olv-border); border-bottom: 1px solid var(--olv-border); text-align: center; vertical-align: top; }
.klbcp-list table.klbcp_table td:last-child { border-right: 0; }
.klbcp-list table.klbcp_table tr:last-child td { border-bottom: 0; }
.klbcp-list table.klbcp_table td.td-label { position: sticky; left: 0; z-index: 1; width: 160px; min-width: 160px; background-color: var(--olv-bg-gray); font-weight: 600; text-align: left; }
.klbcp-list table.klbcp_table tr.product-even td { background-color: rgba(var(--olv-text-rgb), 0.02); }
.klbcp-list table.klbcp_table tr.product-even td.td-label { background-color: #f1f3f5; }
.klbcp-list table.klbcp_table tr.tr-hide { display: none; }
.klbcp-list table.klbcp_table .product-image a { display: block; }
.klbcp-list table.klbcp_table .product-image img { display: block; width: 100%; max-width: 220px; height: auto; margin: 0 auto; }
.klbcp-list table.klbcp_table .product-name td { font-weight: 500; }
.klbcp-list table.klbcp_table .product-name a { color: var(--olv-text); }
.klbcp-list table.klbcp_table .product-name a:hover { color: var(--olv-primary); }
.klbcp-list table.klbcp_table .product-price .price { font-weight: 600; }
.klbcp-list table.klbcp_table .product-price del { margin-right: 4px; font-weight: 400; opacity: 0.55; }
.klbcp-list table.klbcp_table .star-rating { margin: 0 auto; }
.klbcp-list table.klbcp_table .stock { margin: 0; font-weight: 500; }
.klbcp-list table.klbcp_table .in-stock { color: var(--olv-success); }
.klbcp-list table.klbcp_table .out-of-stock { color: var(--olv-danger); }
.klbcp-list table.klbcp_table .product-add_to_cart .button { height: 40px; padding: 0 18px; }
.klbcp-list table.klbcp_table .added_to_cart { display: block; margin-top: 6px; font-size: 12px; text-decoration: underline; }
.klbcp-list .klbcp-remove { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 500; color: var(--olv-danger); cursor: pointer; }
.klbcp-list .klbcp-remove:hover { color: var(--olv-text); }
.klbcp-list .klbcp-remove i { font-size: 11px; }
.klbcp-list .td-placeholder { background-color: var(--olv-bg-gray); }
@media (max-width: 767.98px) {
  .klbcp-list table.klbcp_table td { min-width: 180px; padding: 15px; }
  .klbcp-list table.klbcp_table td.td-label { width: 110px; min-width: 110px; }
}

/* ---- 40-blog.css ---- */
/* ==========================================================================
   Olverin theme: blog archive, static pages, search and 404
   Authored by Olverin Ventures for the OlverinEcom theme.
   Templates: index.php, archive.php, search.php, post-format/content*.php,
   post-format/pagination.php, sidebar.php, searchform.php, page.php, 404.php.
   Single-post rules live in assets/css/blog-single.css. Measured at 1440
   (content column 937px, sidebar 297px) and 375 (345px column).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Layout: index.php / archive.php / search.php / single.php
   .klb-blog.page-inner > .container > .row.content-wrapper.sidebar-right
   -------------------------------------------------------------------------- */
.content-wrapper {
  --bs-gutter-x: 24px;
}
.content-wrapper > .primary-column,
.content-wrapper > .sidebar-column {
  position: relative;
  min-height: 1px;
}
.content-wrapper > .sidebar-column {
  margin-top: 40px;
}
.content-wrapper.sidebar-left > .sidebar-column {
  order: 2;
}
@media (min-width: 992px) {
  .content-wrapper {
    --bs-gutter-x: 30px;
  }
  .content-wrapper > .sidebar-column {
    margin-top: 0;
  }
  .content-wrapper.sidebar-right > .primary-column {
    padding-right: 30px;
  }
  .content-wrapper.sidebar-left > .primary-column {
    padding-left: 30px;
  }
  .content-wrapper.sidebar-left > .sidebar-column {
    order: 0;
  }
}

/* Sticky sidebar (theia-sticky-sidebar wraps the widgets in .theiaStickySidebar) */
.sidebar-column .theiaStickySidebar {
  padding-bottom: 1px;
}
.sidebar-column .theiaStickySidebar::after {
  content: "";
  display: table;
  clear: both;
}

/* --------------------------------------------------------------------------
   Archive title: archive.php / search.php (h2.search-title)
   -------------------------------------------------------------------------- */
.search-title {
  margin-bottom: 30px;
  font-size: 26px;
}
@media (min-width: 992px) {
  .search-title {
    margin-bottom: 40px;
    font-size: 36px;
  }
}

/* --------------------------------------------------------------------------
   Post list: post-format/content.php (.blog-posts.large-style > article.post)
   -------------------------------------------------------------------------- */
.blog-posts {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.blog-posts > .klb-article {
  position: relative;
  width: 100%;
  margin-bottom: 20px;
}
.blog-posts > h2 {
  width: 100%;
}
.klb-article .entry-media {
  position: relative;
  margin-bottom: 10px;
}
.klb-article .entry-media a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--olv-radius);
}
.klb-article .entry-media img {
  display: block;
  width: 100%;
  height: auto;
}
.klb-article .entry-media iframe {
  display: block;
  width: 100%;
  min-height: 240px;
}

/* Category label */
.klb-article .entry-category {
  margin-bottom: 7px;
  line-height: 24px;
}
.klb-article .entry-category a {
  display: inline-flex;
  align-items: center;
  color: var(--olv-primary);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.klb-article .entry-category a:hover {
  color: var(--olv-text);
}

/* Title (Crimson Text 36px on desktop, ~28px on phones) */
.klb-article .entry-title {
  margin-bottom: 10px;
  font-size: 28px;
  line-height: 1.2;
}
.klb-article .entry-title a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: text-decoration-color 0.1s ease, color 0.15s ease;
}
.klb-article .entry-title a:hover {
  text-decoration-color: currentColor;
}

/* Meta row: date, tags, featured flag separated by bullets */
.klb-article .entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.klb-article .entry-meta > * {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 1;
}
.klb-article .entry-meta > *::before {
  content: "\2022";
  position: relative;
  top: -1px;
  display: block;
  margin: 0 9px;
  font-size: 14px;
  color: var(--olv-text);
}
.klb-article .entry-meta > *:first-child::before {
  display: none;
}
.klb-article .entry-meta a {
  color: inherit;
}
.klb-article .entry-meta a:hover {
  color: var(--olv-primary);
}
.klb-article .entry-meta .sticky-post i {
  margin-right: 4px;
  font-size: 12px;
}

/* Excerpt + read more (the excerpt_more filter in functions.php) */
.klb-article .entry-excerpt {
  color: #768088;
  font-size: 14px;
  line-height: 1.5;
}
.klb-article .entry-excerpt p {
  margin-bottom: 16px;
}
.klb-article .entry-excerpt p:last-child {
  margin-bottom: 0;
}
.klb-readmore.button {
  display: inline-flex;
  align-items: center;
  height: 42px;
  min-height: 42px;
  margin-top: 0;
  padding: 0 18px;
  border: 0;
  border-radius: var(--olv-radius-form);
  background-color: #e6e8eb;
  color: var(--olv-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 42px;
  letter-spacing: -0.01em;
}
.klb-readmore.button .btn {
  min-height: 0;
  padding: 0;
  border: 1px solid transparent;
  background: none;
  color: inherit;
  font-size: 14px;
  line-height: 1.45;
}
.klb-readmore.button .btn i {
  display: none;
}
.klb-readmore.button:hover {
  background-color: var(--olv-text);
  color: var(--olv-white);
}

@media (min-width: 992px) {
  .blog-posts > .klb-article {
    margin-bottom: 60px;
  }
  .klb-article .entry-title {
    margin-bottom: 15px;
    font-size: 36px;
  }
  .klb-article .entry-meta {
    margin-bottom: 20px;
  }
  .klb-article .entry-excerpt {
    font-size: 15px;
  }
}

/* Grid layout (Customizer "grid": .blog-posts.grid-style.grid-N) */
.blog-posts.grid-style {
  margin-right: -15px;
  margin-left: -15px;
}
.blog-posts.grid-style > .klb-article {
  padding-right: 15px;
  padding-left: 15px;
}
.blog-posts.grid-style .entry-title {
  font-size: 22px;
}
@media (min-width: 576px) {
  .blog-posts.grid-style > .klb-article {
    width: 50%;
  }
}
@media (min-width: 992px) {
  .blog-posts.grid-style > .klb-article {
    margin-bottom: 40px;
  }
  .blog-posts.grid-style.grid-3 > .klb-article {
    width: 33.3333%;
  }
  .blog-posts.grid-style.grid-4 > .klb-article {
    width: 25%;
  }
  .blog-posts.grid-style .entry-title {
    font-size: 24px;
  }
}

/* Post formats: post-format/content-gallery.php, content-video.php, content-audio.php */
.klb-article figure.entry-media {
  margin: 0 0 10px;
}
.klb-article .entry-media.embed-responsive {
  position: relative;
  display: block;
  padding-top: 56.25%;
  overflow: hidden;
}
.klb-article .entry-media.embed-responsive iframe,
.klb-article .entry-media.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.klb-article .blog-gallery {
  position: relative;
  overflow: hidden;
}
.klb-article .blog-gallery a {
  display: block;
}
.klb-article .blog-gallery .slick-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background-color: var(--olv-white);
  color: var(--olv-text);
  transform: translateY(-50%);
  box-shadow: var(--olv-shadow-sm);
  cursor: pointer;
}
.klb-article .blog-gallery .slick-prev {
  left: 15px;
}
.klb-article .blog-gallery .slick-next {
  right: 15px;
}
.klb-article .entry-media .mejs-container {
  width: 100% !important;
}

/* Paged posts inside content (wp_link_pages) */
.klb-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 20px 0;
  font-size: 13px;
  font-weight: 600;
}
.klb-pagination a,
.klb-pagination .post-page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
}
.klb-pagination .post-page-numbers.current,
.klb-pagination a:hover {
  border-color: var(--olv-primary);
  background-color: var(--olv-primary);
  color: var(--olv-white);
}

/* --------------------------------------------------------------------------
   Pagination: post-format/pagination.php (.site-pagination > ul.page-numbers)
   -------------------------------------------------------------------------- */
.site-pagination {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 10px;
}
.site-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-pagination .page-numbers li {
  display: block;
}
.site-pagination a.page-numbers,
.site-pagination span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid var(--olv-border-15);
  border-radius: var(--olv-radius-form);
  color: var(--olv-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
.site-pagination a.page-numbers:hover {
  border-color: var(--olv-text);
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.site-pagination span.page-numbers.current {
  border-color: var(--olv-primary);
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.site-pagination span.page-numbers.dots {
  border-color: transparent;
}
.site-pagination .page-numbers.prev i,
.site-pagination .page-numbers.next i {
  font-size: 11px;
}
@media (min-width: 992px) {
  .site-pagination {
    justify-content: flex-start;
    margin-top: 0;
  }
}

/* --------------------------------------------------------------------------
   Search form: searchform.php (.search_form > form.search-form)
   -------------------------------------------------------------------------- */
.search_form .search-form {
  position: relative;
  display: flex;
  width: 100%;
}
.search_form .search-form .form_control {
  width: 100%;
  padding-right: 46px;
}
.search_form .search-form button {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: var(--olv-input-h);
  padding: 0;
  border: 0;
  background: none;
  color: var(--olv-text);
  font-size: 16px;
  cursor: pointer;
  transition: color var(--olv-transition);
}
.search_form .search-form button:hover {
  color: var(--olv-primary);
}
.widget .search_form {
  margin: 0;
}

/* --------------------------------------------------------------------------
   Static page: page.php (.klb-page.page-content.section)
   `.page-content` is also the #page wrapper class; undo the flex column here.
   -------------------------------------------------------------------------- */
.empty-klb {
  display: block;
  height: 0;
}
.klb-page.page-content {
  display: block;
  min-height: 0;
  padding: 20px 0 40px;
}
.klb-page .klb-page-title {
  margin-bottom: 20px;
  font-size: 32px;
  line-height: 1.2;
}
.klb-page .klb-post {
  font-size: 15px;
  line-height: 1.6;
}
.klb-page .klb-post > *:last-child {
  margin-bottom: 0;
}
.klb-page .single-post {
  margin-top: 40px;
}
@media (min-width: 992px) {
  .klb-page.page-content {
    padding: 40px 0 60px;
  }
  .klb-page .klb-page-title {
    margin-bottom: 30px;
    font-size: 42px;
  }
  .klb-page .klb-post {
    font-size: 16px;
  }
}

/* --------------------------------------------------------------------------
   404: 404.php (.site-content.page-error > .page-inner > .page-not-found)
   -------------------------------------------------------------------------- */
.site-content.page-error > .page-inner {
  margin: 0;
}
.page-not-found {
  padding: 60px 0 80px;
  text-align: center;
}
.page-not-found img {
  display: inline-block;
  width: 100%;
  max-width: 300px;
  margin-bottom: 30px;
}
.page-not-found .entry-title {
  margin-bottom: 8px;
  font-size: 32px;
  line-height: 1.2;
}
.page-not-found .entry-description {
  max-width: 640px;
  margin: 0 auto 30px;
  color: #768088;
  font-size: 15px;
  line-height: 1.5;
}
.page-not-found .entry-description p:last-child {
  margin-bottom: 0;
}
.page-not-found .btn {
  min-height: var(--olv-btn-h);
  padding: 6px 24px;
  font-size: 15px;
  line-height: 1;
}
@media (min-width: 992px) {
  .page-not-found {
    padding: 140px 0 180px;
  }
  .page-not-found img {
    max-width: 420px;
    margin-bottom: 60px;
  }
  .page-not-found .entry-title {
    font-size: 54px;
  }
  .page-not-found .entry-description {
    max-width: none;
    margin-bottom: 40px;
    font-size: 18px;
  }
}

/* --------------------------------------------------------------------------
   Search results without posts (search.php / index.php "No Posts Found")
   -------------------------------------------------------------------------- */
.blog-posts > h2:only-child {
  padding: 40px 0;
  font-size: 22px;
  opacity: 0.7;
}

/* ---- 50-elementor-content.css ---- */
/* ==========================================================================
   Olverin theme: Elementor content widgets (part A)
   Authored by Olverin Ventures from the widget markup in
   olverin-core/elementor/widgets/*.php and measurements of the intended look.
   Buttons (.btn/.button), utility helpers (font-*, weight-*, mb-*, color-*),
   .overlay-link and .entry-media basics live in 02-buttons-forms.css and
   03-utilities-layout.css; product carousels/tabs/category boxes live in
   51-elementor-products.css. This file owns the shared slider/module base.
   Breakpoints: mobile first; md = 992px (theme "min-1200" helpers switch at 1200).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Elementor generic overrides (section width = theme container 1360 / 25+15)
   -------------------------------------------------------------------------- */
.elementor .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: var(--olv-container);
  padding-right: 25px;
  padding-left: 25px;
}
@media (max-width: 767.98px) {
  .elementor .elementor-section.elementor-section-boxed > .elementor-container {
    padding-right: 0;
    padding-left: 0;
  }
}
.elementor-widget-heading .elementor-heading-title {
  margin: 0;
  font-family: var(--olv-font-heading);
  font-weight: var(--olv-heading-weight);
  letter-spacing: var(--olv-heading-tracking);
}
.elementor-widget-text-editor { line-height: var(--olv-line-height); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol { padding-left: 2rem; }
.elementor-widget-text-editor li { margin-bottom: 0; }
.elementor-widget-divider { --divider-color: #e6e8eb; --divider-border-width: 1px; }
.elementor-widget-divider .elementor-divider { padding-top: 15px; padding-bottom: 15px; }
.elementor-widget-divider .elementor-divider-separator { border-color: var(--divider-color); }
.elementor-widget-image img { max-width: 100%; height: auto; vertical-align: middle; }
.elementor-widget-social-icons .elementor-social-icon {
  background-color: var(--olv-bg-gray);
  transition: background-color var(--olv-transition), color var(--olv-transition);
}
.elementor-widget-social-icons .elementor-social-icon i,
.elementor-widget-social-icons .elementor-social-icon svg { color: var(--olv-text); fill: var(--olv-text); }
.elementor-widget-social-icons .elementor-social-icon:hover { background-color: var(--olv-primary); }
.elementor-widget-social-icons .elementor-social-icon:hover i,
.elementor-widget-social-icons .elementor-social-icon:hover svg { color: var(--olv-white); fill: var(--olv-white); }

/* Accordion (FAQ page): 1px bordered items, 15/20 padding, kit colors kept */
.elementor-accordion .elementor-accordion-item {
  border: 1px solid #d5d8dc;
  background-color: var(--olv-white);
}
.elementor-accordion .elementor-accordion-item + .elementor-accordion-item { border-top: 0; }
.elementor-accordion .elementor-tab-title {
  margin: 0;
  padding: 15px 20px;
  font-family: var(--olv-font-heading);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.elementor-accordion .elementor-tab-title .elementor-accordion-title { font-weight: 600; }
.elementor-accordion .elementor-tab-title .elementor-accordion-icon { width: 1em; margin-top: -2px; }
.elementor-accordion .elementor-tab-content {
  padding: 15px 20px;
  border-top: 1px solid #d5d8dc;
  line-height: var(--olv-line-height);
}
.elementor-accordion .elementor-tab-content p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Shared slider base: .klb-slider-wrapper / .klb-loader / slick skin
   (used by every carousel widget; commerce package reuses it)
   -------------------------------------------------------------------------- */
.klb-slider-wrapper { position: relative; z-index: 1; }
.klb-loader-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  transition: opacity 0.1s ease, visibility 0.1s ease;
}
.klb-loader {
  display: inline-block;
  width: 38px;
  height: 38px;
  border: 2px solid transparent;
  border-top-color: var(--olv-primary);
  border-right-color: var(--olv-primary);
  border-radius: var(--olv-radius-round);
  animation: olv-spin 0.8s linear infinite;
}
.klb-loader[data-size="md"] { width: 30px; height: 30px; }
.klb-loader[data-border="sm"] { border-width: 1px; }
.slider-loaded .klb-loader-wrapper { opacity: 0; visibility: hidden; }
.klb-slider-wrapper:has(.slick-initialized) .klb-loader-wrapper { opacity: 0; visibility: hidden; }
.klb-slider-wrapper .klb-slider { opacity: 0; transition: opacity 0.4s ease; }
.klb-slider-wrapper .klb-slider.slick-initialized,
.slider-loaded .klb-slider { opacity: 1; }
.klb-slider-wrapper .klb-slider:not(.slick-initialized) .slider-item:not(:first-child) { display: none; }
.klb-slider .slick-track { display: flex; align-items: stretch; }
.klb-slider .slider-item { min-height: 1px; }
.klb-slider.align-start .slick-track { align-items: flex-start; }
@keyframes olv-spin { to { transform: rotate(360deg); } }

/* Gutters: negative margin on the list, half gutter padding on the items */
.klb-slider.gutter-2 .slick-list { margin: 0 -1px; }
.klb-slider.gutter-2 .slider-item { padding: 0 1px; }
.klb-slider.gutter-5 .slick-list { margin: 0 -2.5px; }
.klb-slider.gutter-5 .slider-item { padding: 0 2.5px; }
.klb-slider.gutter-10 .slick-list { margin: 0 -5px; }
.klb-slider.gutter-10 .slider-item { padding: 0 5px; }
.klb-slider.gutter-15 .slick-list { margin: 0 -7.5px; }
.klb-slider.gutter-15 .slider-item { padding: 0 7.5px; }
.klb-slider.gutter-20 .slick-list { margin: 0 -10px; }
.klb-slider.gutter-20 .slider-item { padding: 0 10px; }
.klb-slider.gutter-25 .slick-list { margin: 0 -12.5px; }
.klb-slider.gutter-25 .slider-item { padding: 0 12.5px; }
.klb-slider.gutter-30 .slick-list { margin: 0 -15px; }
.klb-slider.gutter-30 .slider-item { padding: 0 15px; }
@media (min-width: 992px) {
  .klb-slider.gutter-15 .slick-list { margin: 0 -15px; }
  .klb-slider.gutter-15 .slider-item { padding: 0 15px; }
  .klb-slider.gutter-20 .slick-list { margin: 0 -20px; }
  .klb-slider.gutter-20 .slider-item { padding: 0 20px; }
  .klb-slider.gutter-25 .slick-list { margin: 0 -25px; }
  .klb-slider.gutter-25 .slider-item { padding: 0 25px; }
  .klb-slider.gutter-30 .slick-list { margin: 0 -30px; }
  .klb-slider.gutter-30 .slider-item { padding: 0 30px; }
}

/* Arrows: 48px round white buttons with a 1px border, centered vertically */
.klb-slider .slick-arrow {
  position: absolute;
  top: calc(50% - 25px);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: content-box;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #dfe2e6;
  border-radius: 50%;
  background-color: var(--olv-white);
  color: var(--olv-text);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: transform 0.35s ease, opacity 0.15s ease, color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.klb-slider .slick-arrow svg {
  position: relative;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  vertical-align: middle;
}
.klb-slider .slick-arrow i { font-size: 18px; line-height: 1; }
.klb-slider .slick-prev { left: 15px; }
.klb-slider .slick-next { right: 15px; }
.klb-slider .slick-prev svg { left: -1px; }
.klb-slider .slick-next svg { left: 1px; }
.klb-slider .slick-arrow:hover {
  border-color: var(--olv-primary);
  background-color: var(--olv-primary);
  color: var(--olv-white);
}
.klb-slider .slick-arrow.slick-disabled { opacity: 0.4; pointer-events: none; }
.klb-slider.arrows-dark .slick-arrow { border-color: var(--olv-text); background-color: var(--olv-text); color: var(--olv-white); }
.klb-slider.arrows-white-shadow .slick-arrow { border-color: transparent; box-shadow: var(--olv-shadow-md); }
.klb-slider.arrows-style-1 .slick-arrow { width: 40px; height: 40px; top: calc(50% - 21px); }
.klb-slider.hidden-arrows .slick-arrow { opacity: 0; }
.klb-slider.hidden-arrows .slick-prev { transform: translateX(-5px); }
.klb-slider.hidden-arrows .slick-next { transform: translateX(5px); }
.klb-slider-wrapper:hover .klb-slider.hidden-arrows .slick-arrow { opacity: 1; transform: none; }
.klb-slider-wrapper:hover .klb-slider.hidden-arrows .slick-arrow.slick-disabled { opacity: 0.4; }
@media (min-width: 992px) {
  .klb-slider.full-width .slick-prev { left: 30px; }
  .klb-slider.full-width .slick-next { right: 30px; }
  .klb-slider.carousel-style .slick-prev { left: -25px; }
  .klb-slider.carousel-style .slick-next { right: -25px; }
}
@media (max-width: 767.98px) {
  .klb-slider.carousel-style .slick-arrow { display: none; }
}

/* Dots: 8px circles, primary when active, 6px apart */
.klb-slider .slick-dots {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.klb-slider .slick-dots li {
  display: flex;
  align-items: center;
  width: 8px;
  height: 8px;
  margin: 0;
}
.klb-slider .slick-dots li button {
  display: block;
  box-sizing: content-box;
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #dfe2e6;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.klb-slider .slick-dots li.slick-active button { background-color: var(--olv-primary); }
@media (min-width: 992px) {
  .klb-slider .slick-dots { margin-top: 30px; }
  /* full-width hero: dots float over the image in a translucent pill */
  .klb-slider.full-width .slick-dots {
    position: absolute;
    bottom: 30px;
    left: 50%;
    margin: 0;
    padding: 6px 8px;
    border-radius: 20px;
    background-color: rgba(var(--olv-text-rgb), 0.3);
    transform: translateX(-50%);
  }
  .klb-slider.full-width .slick-dots li button { background-color: rgba(255, 255, 255, 0.3); }
  .klb-slider.full-width .slick-dots li.slick-active button { background-color: var(--olv-white); }
}

/* --------------------------------------------------------------------------
   Module header (custom-title type4/type6, latest-blog, image-points, ...)
   -------------------------------------------------------------------------- */
.klb-module { position: relative; }
.klb-module .module-header { margin-bottom: 20px; }
.klb-module .module-header.extra-space { margin-bottom: 15px; }
.klb-module .module-header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
}
.klb-module .module-header-inner .column { min-width: 0; }
.klb-module .module-header-inner .button-column { margin-left: auto; }
.klb-module .module-header .entry-title { position: relative; margin: 0; }
.klb-module .module-header .entry-title.default-size { font-size: 20px; }
.klb-module .module-header .entry-subtitle { margin: 0; }
.klb-module .module-header .entry-excerpt { margin-top: 8px; font-size: 14px; line-height: 1.5; }
.klb-module .module-header .entry-excerpt p { margin: 0; opacity: 0.7; }
.klb-module .module-header.centered { text-align: center; }
.klb-module .module-header.centered .module-header-inner {
  flex-direction: column;
  justify-content: center;
  gap: 0;
}
.klb-module .module-header.centered .entry-title { font-weight: 500; }
.klb-module .module-header.centered .entry-excerpt { max-width: 560px; margin-right: auto; margin-left: auto; }
.klb-module .module-header .btn.link { white-space: nowrap; }
@media (max-width: 767.98px) {
  .klb-module .module-header.centered .entry-title { font-size: 18px; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .klb-module .module-header.centered .entry-title { font-size: 20px; }
}
@media (min-width: 992px) {
  .klb-module .module-header.extra-space { margin-bottom: 30px; }
}
.klb-separator { border-top: 1px solid var(--olv-border); }

/* --------------------------------------------------------------------------
   Banners: .klb-banner (banner-box, banner-box2, banner-box3, home-slider)
   Markup: .entry-wrapper > .entry-inner > .entry-heading / .entry-body /
   .entry-footer, then .entry-media(.overlay) img and a.overlay-link
   -------------------------------------------------------------------------- */
.klb-banner {
  position: relative;
  overflow: hidden;
  vertical-align: top;
}
.klb-banner .entry-media { position: relative; z-index: 0; }
.klb-banner .entry-media img {
  display: block;
  width: 100%;
  height: auto;
}
.klb-banner .entry-media.overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background-color: rgba(0, 0, 0, 0.2);
}
.klb-banner .entry-wrapper {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 44px 30px;
}
.klb-banner .entry-inner { width: 90%; }
.klb-banner.light { color: var(--olv-white); }
.klb-banner.dark { color: var(--olv-text); }
.klb-banner.align-top .entry-wrapper,
.klb-banner.align-start .entry-wrapper { align-items: flex-start; }
.klb-banner.align-bottom .entry-wrapper,
.klb-banner.align-end .entry-wrapper { align-items: flex-end; }
.klb-banner.justify-center .entry-wrapper { justify-content: center; text-align: center; }
.klb-banner.justify-end .entry-wrapper { justify-content: flex-end; text-align: right; }
.klb-banner .entry-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
}
.klb-banner.justify-center .entry-heading { justify-content: center; }
.klb-banner .entry-heading .entry-subtitle {
  margin: 0;
  font-size: 14px;
  line-height: 1.2;
}
.klb-banner .entry-body { margin-bottom: 10px; }
.klb-banner .entry-body .entry-title {
  margin-bottom: 8px;
  line-height: 1.2;
}
.klb-banner .entry-excerpt { max-width: 420px; line-height: 1.5; }
/* sizes below the helpers' 1200px switch (font-md-* classes take over above) */
@media (max-width: 1199.98px) {
  .klb-banner .entry-body .entry-title { font-size: 22px; line-height: 1.1; }
  .klb-banner .entry-excerpt { font-size: 14px; }
}
.klb-banner.justify-center .entry-excerpt { margin-right: auto; margin-left: auto; }
.klb-banner .entry-excerpt p { margin-bottom: 1rem; opacity: 0.7; }
.klb-banner .entry-excerpt p:last-child { margin-bottom: 0; }
.klb-banner .entry-excerpt.not-opacity p { opacity: 1; }
.klb-banner .entry-excerpt.max-width-none { max-width: none; }
.klb-banner .entry-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 15px;
}
.klb-banner.justify-center .entry-footer { justify-content: center; }
.klb-banner .entry-discount {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 8px;
  border-radius: var(--olv-radius-form);
  color: var(--olv-white);
  font-size: 12px;
  font-weight: 600;
}
.klb-banner .entry-discount.background-red { background-color: var(--olv-danger); }
.klb-banner .entry-subtitle.badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: var(--olv-radius-form);
  color: var(--olv-white);
  font-size: 12px;
}
.klb-banner .entry-subtitle.badge.background-red { background-color: var(--olv-danger); }
.klb-banner .entry-subtitle.badge.background-primary-light { background-color: var(--olv-primary-soft); color: var(--olv-primary); }
.klb-banner .entry-subtitle.background-secondary { background-color: #e6e8eb; color: var(--olv-text); }
.klb-banner .entry-count-text { font-size: 13px; font-weight: 500; }
.klb-banner .entry-count-text .count { margin-right: 4px; font-weight: 700; }

/* Small banners (below 992 the image sits behind the text) */
.klb-banner.inner-style .entry-media,
.klb-banner.for-slider .entry-media {
  position: absolute;
  inset: 0;
}
.klb-banner.inner-style .entry-media img,
.klb-banner.for-slider .entry-media img {
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
}
.klb-banner.small-size .entry-footer .btn.radius-rounded {
  height: 30px;
  padding: 0 10px 0 12px;
  font-size: 12px;
  line-height: 30px;
}
@media (max-width: 991.98px) {
  .klb-banner.custom-height { height: auto !important; }
}
@media (min-width: 768px) {
  .klb-banner .entry-body { margin-bottom: 20px; }
  .klb-banner.small-size .entry-footer .btn.radius-rounded {
    height: 35px;
    padding: 0 10px 0 14px;
    font-size: 13px;
    line-height: 35px;
  }
}
@media (min-width: 992px) {
  .klb-banner.inner-style .entry-media { position: relative; inset: auto; }
  .klb-banner.inner-style .entry-media img { position: static; height: auto; }
  .klb-banner.inner-style .entry-wrapper {
    position: absolute;
    inset: 0;
    padding: 40px;
  }
  .klb-banner.space-30 .entry-wrapper { padding: 30px; }
  .klb-banner.space-40 .entry-wrapper { padding: 40px; }
  .klb-banner.space-50 .entry-wrapper { padding: 50px; }
  .klb-banner.space-60 .entry-wrapper { padding: 60px 70px; }
  .klb-banner.w-50 .entry-inner { width: 50%; }
  .klb-banner.w-60 .entry-inner { width: 60%; }
  .klb-banner.w-70 .entry-inner { width: 70%; }
  .klb-banner.w-80 .entry-inner { width: 80%; }
  .klb-banner.w-90 .entry-inner { width: 90%; }
}

/* Outer-style banner (banner-box3): text block under the image */
.klb-banner.outer-style { overflow: visible; }
.klb-banner.outer-style .entry-media { position: relative; overflow: hidden; }
.klb-banner.outer-style .media-content {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 2;
}
.klb-banner.outer-style .media-content .entry-title { margin: 0; font-size: 16px; }
.klb-banner.outer-style .entry-wrapper { position: relative; padding: 20px 0 0; }
.klb-banner.outer-style .entry-inner { width: 100%; }
@media (min-width: 992px) {
  .klb-banner.outer-style .entry-wrapper { position: relative; inset: auto; padding: 20px 0 0; }
}

/* Text banner with image column (banner-box3 type: .banner-text) */
.klb-banner.banner-text { overflow: visible; padding: 30px; }
.klb-banner.banner-text .entry-wrapper {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 30px;
  padding: 0;
}
.klb-banner.banner-text .banner-column { flex: 1 1 260px; }
.klb-banner.banner-text .text-wrapper .entry-title { margin-bottom: 8px; font-size: 24px; }
.klb-banner.banner-text .entry-caption p { margin: 0; opacity: 0.7; }
.klb-banner.banner-text .simple-image { text-align: center; }
.klb-banner.banner-text .simple-image img { max-width: 100%; height: auto; }
.klb-banner.banner-text .button-wrapper { display: flex; justify-content: flex-end; }
@media (min-width: 992px) {
  .klb-banner.banner-text .entry-wrapper { position: relative; inset: auto; padding: 0; }
  .klb-banner.banner-text .banner-column { flex: 0 0 auto; width: 40%; }
  .klb-banner.banner-text .banner-column:nth-child(2) { width: 30%; }
  .klb-banner.banner-text .banner-column:nth-child(3) { width: auto; flex: 1; }
}

/* Hover block (banner-box3 type6): copy sits on the image, more text on hover */
.hover-block { position: relative; overflow: hidden; }
.hover-block .entry-media img { display: block; width: 100%; height: auto; }
.hover-block .entry-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  padding: 30px;
  color: var(--olv-white);
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0) 60%);
}
.hover-block .entry-header .entry-subtitle { margin: 0 0 6px; }
.hover-block .entry-header .entry-title { margin: 0; }
.hover-block .hidden-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}
.hover-block .hidden-content p { margin: 0; }
.hover-block:hover .hidden-content { max-height: 200px; opacity: 1; }

/* Banner price block (banner-box types with a price) */
.banner-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
}
.banner-price .price-label { font-size: 13px; opacity: 0.7; }
.banner-price .price { font-size: 26px; font-weight: 600; color: var(--olv-primary); }
.banner-price.size-sm .price { font-size: 20px; }
.banner-price.bolded .price,
.banner-price.weight-700 .price { font-weight: 700; }
.banner-price .price.filled {
  padding: 4px 10px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary);
  color: var(--olv-white);
  font-size: 16px;
}
.banner-area { position: relative; }
.entry-decorative { position: absolute; z-index: 3; pointer-events: none; }
.entry-decorative img { display: block; max-width: 100%; height: auto; }
.image-decoration { position: absolute; top: 0; right: 0; bottom: 0; z-index: 0; height: 100%; }
.image-decoration svg { height: 100%; width: auto; }

/* Gradient glass banner (banner-box4) */
.custom-background { position: relative; }
.custom-background.padding .container { position: relative; }
.glasses-banner-slider {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 30px;
}
.glasses-banner-slider + .glasses-banner-slider { margin-top: 40px; }
.glasses-banner-slider.reverse { flex-direction: row-reverse; }
.glasses-banner-slider .image-content,
.glasses-banner-slider .text-content { flex: 1 1 300px; min-width: 0; }
.glasses-banner-slider .image-content img,
.glasses-banner-slider .image-content video { display: block; width: 100%; height: auto; border-radius: 10px; }
.glasses-banner-slider .text-content .entry-title { margin-bottom: 10px; }

/* --------------------------------------------------------------------------
   Home slider (widgets/home-slider/*.php): .module-slider > .klb-slider
   .slider-style > .slider-item > .klb-banner.for-slider
   -------------------------------------------------------------------------- */
.module-slider { position: relative; }
.module-slider .module-body { position: relative; z-index: 1; }
.klb-banner.for-slider .entry-wrapper {
  justify-content: center;
  padding: 44px 30px;
}
.klb-banner.for-slider .entry-heading { margin-bottom: 10px; }
.klb-banner.for-slider .entry-body { margin-bottom: 10px; }
.klb-banner.for-slider .entry-body .entry-title { margin-bottom: 8px; line-height: 1.2; }
.klb-banner.for-slider .entry-excerpt { max-width: 640px; }
.klb-banner.for-slider .entry-excerpt.large { line-height: 1.5; }
@media (max-width: 1199.98px) {
  .klb-banner.for-slider .entry-body .entry-title { font-size: 30px; }
  .klb-banner.for-slider .entry-excerpt.large { font-size: 14px; }
}
.klb-banner.for-slider .entry-extra-image { margin-top: 20px; }
.klb-banner.for-slider .entry-extra-image img { max-width: 100%; height: auto; }
.klb-banner.grid-style .entry-wrapper { position: relative; }
@media (min-width: 768px) {
  .klb-banner.for-slider .entry-wrapper { padding: 60px 70px; }
  .klb-banner.for-slider .entry-inner { width: 60%; }
  .klb-banner.for-slider .entry-heading { margin-bottom: 15px; }
  .klb-banner.for-slider .entry-body { margin-bottom: 30px; }
  .klb-banner.for-slider .entry-body .entry-title { margin-bottom: 15px; }
}
@media (min-width: 992px) {
  .klb-banner.for-slider .entry-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
  }
  .klb-banner.for-slider .entry-media { position: absolute; inset: 0; }
  .klb-banner.for-slider .entry-media img { position: absolute; height: 100%; }
  .klb-banner.for-slider .entry-heading .entry-subtitle { font-size: 16px; line-height: 1; }
  .klb-banner.for-slider.align-center .entry-inner { position: relative; top: -40px; }
  .klb-banner.for-slider .entry-inner { width: 90%; }
  .klb-banner.for-slider.w-50 .entry-inner { width: 50%; }
  .klb-banner.for-slider.w-60 .entry-inner { width: 60%; }
  .klb-banner.for-slider.w-80 .entry-inner { width: 80%; }
}

/* --------------------------------------------------------------------------
   Coupon text banner (blonwe-text-banner.php): .klb-coupon-banner
   -------------------------------------------------------------------------- */
.klb-coupon-banner .klb-coupon-inner {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
  padding: 15px;
  background-color: var(--olv-bg-gray);
  color: var(--olv-text);
  text-align: center;
  text-decoration: none;
}
.klb-coupon-banner .entry-title {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  color: inherit;
}
.klb-coupon-banner .entry-title strong { font-weight: 700; text-decoration: underline; }
.klb-coupon-banner .klb-coupon-code {
  padding: 7px 12px;
  border: 1px dashed currentColor;
  font-weight: 600;
}
.klb-coupon-banner p { margin: 0; font-size: 14px; }
.klb-coupon-banner.red-light .klb-coupon-inner { background-color: #ffebeb; color: var(--olv-danger); }
.klb-coupon-banner.red-light p { color: #c11a1a; }
@media (min-width: 992px) {
  .klb-coupon-banner .klb-coupon-inner {
    flex-direction: row;
    justify-content: center;
    padding: 20px 15px;
    line-height: 16px;
    text-align: left;
  }
  .klb-coupon-banner .entry-title { margin-bottom: 0; font-size: 18px; }
  .klb-coupon-banner .klb-coupon-code { line-height: 16px; }
  .klb-coupon-banner p { line-height: 14px; }
}

/* --------------------------------------------------------------------------
   Text grid (blonwe-text-grid.php): .klb-banner-box and .klb-press-comment
   -------------------------------------------------------------------------- */
.klb-banner-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background-color: var(--olv-bg-gray);
}
.klb-banner-box > .column { flex: 0 0 100%; width: 100%; }
.klb-banner-box .banner-box-image img { display: block; width: 100%; height: auto; }
.klb-banner-box .banner-box-content { padding: 20px; text-align: center; }
.klb-banner-box .text-inner { max-width: 460px; margin: 0 auto; }
.klb-banner-box .text-inner .entry-subtitle,
.klb-video-box .text-inner .entry-subtitle {
  margin-bottom: 8px;
  color: var(--olv-primary);
  font-size: 20px;
  line-height: 1.2;
}
.klb-banner-box .text-inner .entry-title { margin-bottom: 8px; line-height: 1.2; }
@media (max-width: 1199.98px) {
  .klb-banner-box .text-inner .entry-title { font-size: 26px; }
}
.klb-banner-box .text-inner .entry-description,
.klb-video-box .text-inner .entry-description { margin-bottom: 40px; }
@media (min-width: 768px) {
  .klb-banner-box > .column { flex-basis: 50%; width: 50%; }
  .klb-banner-box .banner-box-content { padding: 60px; }
  .klb-banner-box .text-inner .entry-title { margin-bottom: 20px; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .klb-banner-box .text-inner .entry-title { font-size: 28px; }
}

.klb-press-comment .press-box { margin-bottom: 30px; text-align: center; }
.klb-press-comment .press-logo { position: relative; margin-bottom: 20px; }
.klb-press-comment .press-logo img {
  display: inline-block;
  max-width: 100%;
  max-height: 62px;
  height: auto;
  vertical-align: middle;
}
.klb-press-comment .press-logo img.light {
  position: absolute;
  top: 0;
  left: 50%;
  opacity: 0;
  transform: translateX(-50%);
}
.klb-press-comment .press-comment p { margin-bottom: 1rem; }

/* --------------------------------------------------------------------------
   Video box (blonwe-video-box.php): 16:9 media behind centered white copy
   -------------------------------------------------------------------------- */
.klb-video-box { position: relative; overflow: hidden; background-color: var(--olv-white); }
.klb-video-box .klb-video-content {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
.klb-video-box .klb-video-content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background-color: rgba(0, 0, 0, 0.2);
}
.klb-video-box .klb-video-content video,
.klb-video-box .klb-video-content iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}
.klb-video-box .klb-text-content {
  position: relative;
  z-index: 2;
  padding: 25px;
  color: var(--olv-white);
  text-align: center;
}
.klb-video-box .text-inner { max-width: 560px; margin: 0 auto; }
.klb-video-box .text-inner .entry-subtitle { color: var(--olv-white); }
.klb-video-box .text-inner .entry-title { margin-bottom: 8px; line-height: 1.2; }
@media (max-width: 1199.98px) {
  .klb-video-box .text-inner .entry-title { font-size: 32px; }
}
.klb-video-box .text-inner .entry-description { max-width: 480px; margin-right: auto; margin-left: auto; }
@media (min-width: 768px) {
  .klb-video-box .text-inner .entry-title { margin-bottom: 20px; line-height: 1.1; }
}
@media (min-width: 992px) {
  .klb-video-box .klb-text-content { padding: 120px 25px; }
  .klb-video-box .text-inner .entry-description { font-size: 18px; line-height: 1.5; }
}

/* --------------------------------------------------------------------------
   Page banner (blonwe-page-banner.php): .page-header
   -------------------------------------------------------------------------- */
.elementor-widget-blonwe-page-banner .page-header {
  position: relative;
  padding: 20px 0;
  background-color: #f1f3f5;
}
.elementor-widget-blonwe-page-banner .page-header-inner {
  position: relative;
  z-index: 2;
  padding: 30px 0;
}
.elementor-widget-blonwe-page-banner .page-header .entry-title { margin: 0; font-size: 32px; }
.elementor-widget-blonwe-page-banner .page-header .entry-subtitle { margin-bottom: 8px; font-size: 15px; line-height: 1.2; }
.elementor-widget-blonwe-page-banner .page-header .entry-description { margin-top: 7px; }
.elementor-widget-blonwe-page-banner .page-header .entry-description p { margin: 0; }
.elementor-widget-blonwe-page-banner .page-header.centered { text-align: center; }
.elementor-widget-blonwe-page-banner .page-header.centered .entry-description { max-width: 576px; margin-right: auto; margin-left: auto; }
.elementor-widget-blonwe-page-banner .page-header.large .page-header-inner { padding: 50px 0; }
.elementor-widget-blonwe-page-banner .page-header.large .entry-title { font-size: 36px; }
.elementor-widget-blonwe-page-banner .page-header.light { color: var(--olv-white); }
.elementor-widget-blonwe-page-banner .page-header-image {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}
.elementor-widget-blonwe-page-banner .page-header-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.elementor-widget-blonwe-page-banner .page-header-image.overlay-25::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background-color: rgba(var(--olv-text-rgb), 0.25);
}
@media (min-width: 992px) {
  .elementor-widget-blonwe-page-banner .page-header .entry-title { font-size: 42px; }
  .elementor-widget-blonwe-page-banner .page-header.large .page-header-inner { padding: 80px 0; }
  .elementor-widget-blonwe-page-banner .page-header.large .entry-title { font-size: 56px; }
}

/* --------------------------------------------------------------------------
   Text blocks (blonwe-text-block.php, blonwe-custom-title.php)
   -------------------------------------------------------------------------- */
.klb-count-block { text-align: center; }
.klb-count-block .entry-title { margin-bottom: 8px; font-size: 32px; }
.klb-count-block .entry-description { font-size: 14px; line-height: 1.5; }
.klb-count-block .entry-description p { margin-bottom: 0; }
.klb-text-block .entry-subtitle { margin-bottom: 8px; font-size: 15px; line-height: 1.2; }
.klb-text-block .entry-title { margin-bottom: 8px; }
.klb-text-block .entry-title:not([class*="font-"]) { font-size: 32px; }
.klb-text-block .entry-description { line-height: 1.5; }
.klb-text-block.check-style .entry-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-family: var(--olv-font-body);
}
.klb-text-block.check-style .entry-title::before {
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--olv-success);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23000'/%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.8' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23000'/%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.8' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.klb-text-block.check-style .entry-description { padding-left: 24px; opacity: 0.7; }
.max-text-block { max-width: 720px; }
.text-center.max-text-block { margin-right: auto; margin-left: auto; }
.text-block .entry-subtitle { margin-bottom: 8px; }
.text-block .entry-title { margin-bottom: 8px; }
.text-block .entry-footer { margin-top: 10px; }
.text-block .text-decoration { z-index: -1; opacity: 0.6; }
.text-block .text-decoration img { max-width: 100%; height: auto; }
.text-block .entry-subtitle.bordered-badge,
.text-block .entry-subtitle.bordered-badge-white {
  align-items: center;
  padding: 6px 12px;
  border: 1px solid var(--olv-border-strong);
  border-radius: 5px;
  font-family: var(--olv-font-body);
  font-weight: 500;
  line-height: 1;
}
.text-block .entry-subtitle.bordered-badge-white { border-color: rgba(255, 255, 255, 0.4); color: var(--olv-white); }
.text-gradiend-dark,
.text-gradiend-gray {
  background: linear-gradient(90deg, var(--olv-text) 0%, rgba(var(--olv-text-rgb), 0.6) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.text-gradiend-gray { background-image: linear-gradient(90deg, #768088 0%, #c4c9ce 100%); }

/* --------------------------------------------------------------------------
   Icon box (blonwe-icon-box.php): .module-iconbox
   -------------------------------------------------------------------------- */
.module-iconbox .module-body {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.module-iconbox .iconbox-icon {
  flex-shrink: 0;
  width: 68px;
  color: var(--olv-primary);
  font-size: 42px;
  line-height: 1.5;
}
.module-iconbox .iconbox-icon i,
.module-iconbox .iconbox-icon svg { font-size: 42px; width: 1em; height: 1em; line-height: 1; vertical-align: middle; }
.module-iconbox .iconbox-icon img { display: block; max-width: 56px; height: auto; }
.module-iconbox .iconbox-content { flex: 1; min-width: 0; }
.module-iconbox .iconbox-content .entry-title { margin-bottom: 2px; font-size: 15px; }
.module-iconbox .iconbox-content p { margin: 0; font-size: 13px; line-height: 1.5; opacity: 0.6; }
.module-iconbox .iconbox-content .button.link { margin-top: 8px; font-size: 13px; }
.module-iconbox.style-2 .module-body { flex-direction: column; align-items: flex-start; }
.module-iconbox.style-2 .iconbox-icon { margin-bottom: 12px; }
.module-iconbox.colored .iconbox-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  margin-right: 15px;
  border-radius: 50%;
  background-color: var(--olv-primary-soft);
}
.module-iconbox.with-image .iconbox-icon { width: auto; margin-right: 15px; }
.module-iconbox.with-image .iconbox-content p { opacity: 0.8; }
.module-iconbox.dark-style { padding: 25px; border-radius: var(--olv-radius); background-color: var(--olv-text); color: var(--olv-white); }
.module-iconbox.dark-style .iconbox-icon { color: var(--olv-white); }

/* --------------------------------------------------------------------------
   Address boxes (blonwe-address-box.php, blonwe-address-box2.php)
   -------------------------------------------------------------------------- */
.klb-address-detail { display: flex; flex-wrap: wrap; }
.klb-address-detail .address-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  margin-right: 20px;
}
.klb-address-detail .address-icon.number {
  width: 34px;
  height: 34px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}
.klb-address-detail .address-icon i { font-size: 28px; line-height: 1; }
.klb-address-detail .address-icon.color-red { color: var(--olv-danger); }
.klb-address-detail .address-detail { flex: 1 0 0; min-width: 0; }
.klb-address-detail .address-country { font-size: 12px; font-weight: 600; line-height: 1.5; }
.klb-address-detail .address-title { margin-bottom: 5px; font-size: 18px; line-height: 1.5; }
.klb-address-detail p.address { margin-bottom: 1rem; font-size: 14px; line-height: 1.5; }
.klb-address-detail p.phone { margin-bottom: 0; font-weight: 500; }
.klb-address-detail p.phone a { color: inherit; font-weight: 500; }
.klb-address-detail a.email {
  display: inline-flex;
  align-items: center;
  padding-bottom: 1px;
  border-bottom: 1px solid currentColor;
  color: #228be6;
  font-size: 14px;
  line-height: 21px;
}
.klb-address-detail a.email:hover { color: var(--olv-primary); }
.klb-address-detail.style-2 .address-title { margin-bottom: 10px; font-size: 20px; }
.klb-address-detail.style-3 .address-icon { width: 48px; height: 48px; }

.shop-block.style-2 { display: flex; flex-wrap: wrap; gap: 20px; }
.shop-block.style-2 .shop-cover { flex: 0 0 100%; overflow: hidden; border-radius: var(--olv-radius); }
.shop-block.style-2 .shop-cover img { display: block; width: 100%; height: auto; }
.shop-block.style-2 .shop-content { flex: 1; min-width: 0; }
.shop-block.style-2 .shop-content ul { margin: 20px 0 0; padding: 0; list-style: none; }
.shop-block.style-2 .shop-content li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; font-size: 14px; }
.shop-block.style-2 .shop-content li i,
.shop-block.style-2 .shop-content li svg { flex-shrink: 0; width: 1em; height: 1em; margin-top: 3px; font-size: 16px; color: var(--olv-primary); }
.shop-block.style-2 .shop-content li a { color: inherit; }
.shop-block.style-2 .shop-content li a:hover { color: var(--olv-primary); }
@media (min-width: 576px) {
  .shop-block.style-2 .shop-cover { flex-basis: 40%; }
}

/* --------------------------------------------------------------------------
   Contact form (blonwe-contact-form-7.php): .klb-contact-form + CF7 markup
   -------------------------------------------------------------------------- */
.klb-contact-form .form-header { margin-bottom: 40px; }
.klb-contact-form .form-header .entry-title { margin-bottom: 5px; font-size: 28px; }
.klb-contact-form .form-header .entry-description p:last-child { margin-bottom: 0; }
.klb-contact-form .wpcf7 p { margin-bottom: 1rem; }
.klb-contact-form .wpcf7 label {
  position: relative;
  display: block;
  margin-bottom: 5px;
  font-size: 13px;
  line-height: 1.5;
}
.klb-contact-form .wpcf7-form-control-wrap { display: block; position: relative; }
.klb-contact-form .wpcf7-form-control:not(.wpcf7-submit) {
  width: 100%;
  height: var(--olv-input-h);
  padding: 0 12px;
  border: 1px solid #f1f3f5;
  border-radius: var(--olv-radius-form);
  background-color: #f1f3f5;
  font-size: 15px;
  font-weight: 500;
  transition: border-color var(--olv-transition), background-color var(--olv-transition);
}
.klb-contact-form .wpcf7-form-control:not(.wpcf7-submit):focus {
  outline: 0;
  border-color: var(--olv-input-border);
  background-color: var(--olv-white);
}
.klb-contact-form .wpcf7-textarea { height: auto; min-height: 150px; padding: 12px; resize: vertical; }
.klb-contact-form .wpcf7-submit { min-width: 140px; }
.klb-contact-form .wpcf7-not-valid-tip { margin-top: 4px; color: var(--olv-danger); font-size: 12px; }
.klb-contact-form .wpcf7-response-output {
  margin: 1rem 0 0;
  padding: 10px 12px;
  border: 1px solid var(--olv-border);
  font-size: 14px;
}
.klb-contact-form .wpcf7-spinner { margin: 0 12px; }

/* --------------------------------------------------------------------------
   Lists and menus (blonwe-icon-list.php, blonwe-text-list.php,
   blonwe-sidebar-menu.php)
   -------------------------------------------------------------------------- */
.klb-iconlist ul { margin: 0; padding: 0; list-style: none; }
.klb-iconlist li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.klb-iconlist li:last-child { margin-bottom: 0; }
.klb-iconlist .icon { flex-shrink: 0; margin-top: 2px; color: var(--olv-primary); font-size: 20px; line-height: 1; }
.klb-iconlist .icon svg { width: 1em; height: 1em; }
.klb-iconlist .text p { margin: 0; }

.elementor-widget-blonwe-text-list .sub-menu { display: block; position: static; }
.elementor-widget-blonwe-text-list .mega-grouped-label {
  margin-bottom: 12px;
  font-family: var(--olv-font-heading);
  font-size: 16px;
  font-weight: 600;
}
.elementor-widget-blonwe-text-list .sub-menu-list { margin: 0; padding: 0; list-style: none; }
.elementor-widget-blonwe-text-list .sub-menu-list li { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 14px; }
.elementor-widget-blonwe-text-list .sub-menu-list li i,
.elementor-widget-blonwe-text-list .sub-menu-list li svg { width: 1em; height: 1em; font-size: 16px; color: var(--olv-text-light); }
.elementor-widget-blonwe-text-list .sub-menu-list a { color: var(--olv-text-muted); }
.elementor-widget-blonwe-text-list .sub-menu-list a:hover { color: var(--olv-primary); }

.klb-categories-list ul { margin: 0; padding: 0; list-style: none; }
.klb-categories-list li { border-bottom: 1px solid var(--olv-border); }
.klb-categories-list li:last-child { border-bottom: 0; }
.klb-categories-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  color: var(--olv-text);
  font-size: 14px;
  font-weight: 500;
}
.klb-categories-list li a:hover { color: var(--olv-primary); }
.klb-categories-list li a i { font-size: 18px; color: var(--olv-text-light); }
.klb-categories-list .sub-menu { margin: 0 0 8px 28px; padding: 0; list-style: none; }
.klb-categories-list .sub-menu li { border: 0; }
.klb-categories-list .sub-menu li a { padding: 5px 0; font-size: 13px; font-weight: 400; color: var(--olv-text-muted); }

/* --------------------------------------------------------------------------
   Button widget (blonwe-button.php)
   -------------------------------------------------------------------------- */
.blonwe-button { display: inline-block; }
.blonwe-button .blonwe-btn.is-block { display: flex; width: 100%; }
.blonwe-button.has-icon .blonwe-btn i,
.blonwe-button.has-icon .blonwe-btn svg { width: 1em; height: 1em; }

/* --------------------------------------------------------------------------
   Carousels of text and logos (blonwe-text-carousel.php, blonwe-client-carousel.php)
   -------------------------------------------------------------------------- */
.klb-category-block.style-9 { position: relative; text-align: center; }
.klb-category-block.style-9 .category-thumbnail { position: relative; overflow: visible; }
.klb-category-block.style-9 .category-thumbnail svg {
  display: block;
  width: 100%;
  height: auto;
  transition: transform var(--olv-transition);
}
.klb-category-block.style-9 .category-detail {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15%;
}
.klb-category-block.style-9 .category-detail .entry-title { margin: 0; font-size: 18px; line-height: 1.3; }
.klb-category-block.style-9:hover .category-thumbnail svg { transform: rotate(8deg); }

.module-logofolio .logo-block {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
  padding: 10px;
}
.module-logofolio .logo-block img {
  max-width: 100%;
  max-height: 60px;
  height: auto;
  opacity: 0.6;
  transition: opacity var(--olv-transition);
}
.module-logofolio .logo-block a:hover img { opacity: 1; }

/* --------------------------------------------------------------------------
   Countdown (blonwe-counter.php, coupon cards)
   -------------------------------------------------------------------------- */
.klb-countdown-wrapper { display: inline-block; }
.klb-countdown { display: flex; align-items: center; gap: 4px; }
.klb-countdown .count-item { min-width: 40px; text-align: center; }
.klb-countdown .count { font-size: 24px; font-weight: 600; line-height: 1.2; }
.klb-countdown .count-label { font-size: 11px; font-weight: 500; line-height: 1.2; opacity: 0.6; }
.klb-countdown > span { padding-bottom: 12px; font-weight: 600; opacity: 0.4; }
.klb-countdown.size-md .count { font-size: 32px; }
.klb-countdown.size-md .count-item { min-width: 54px; }
.klb-countdown.size-lg .count { font-size: 48px; }
.klb-countdown.size-lg .count-item { min-width: 72px; }
.klb-countdown.size-lg > span { font-size: 24px; }
.klb-countdown.size-xs .count { font-size: 14px; }
.klb-countdown.size-xs .count-item { min-width: 22px; }
.klb-countdown.style-minimal .count-label { text-transform: uppercase; letter-spacing: 0.05em; }
.klb-countdown.style-mini { gap: 2px; }
.klb-countdown.style-mini .count-item { display: flex; align-items: baseline; gap: 2px; min-width: 0; }
.klb-countdown.style-mini .count-label { opacity: 1; }
.klb-countdown.style-mini > span { padding-bottom: 0; }
.klb-countdown.filled .count-item {
  padding: 6px 8px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-text);
  color: var(--olv-white);
}
.klb-countdown.filled.opacity-primary .count-item { background-color: var(--olv-primary-soft); color: var(--olv-primary); }
.klb-countdown.filled.radius .count-item { border-radius: 8px; }
.klb-countdown.filled .count-label { opacity: 0.8; }
.klb-text-notification { margin-bottom: 15px; padding: 10px 15px; border-radius: var(--olv-radius-form); }
.klb-text-notification p { margin: 0; }
.klb-text-notification.background-primary-light { background-color: var(--olv-primary-soft); }
.klb-countodnw-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 40px;
}
.klb-countodnw-banner > .column { flex: 1 1 260px; min-width: 0; }
.klb-countodnw-banner > .column:last-child { flex: 0 0 auto; }
.klb-countodnw-banner .entry-title { margin-bottom: 12px; font-size: 24px; }
.klb-countodnw-banner .entry-description p { margin: 0; }
.custom-color-row { position: relative; }
.custom-color-row.custom-gradient-green { background: linear-gradient(120deg, #e6f4ea 0%, #c9e8d3 100%); }

/* --------------------------------------------------------------------------
   Testimonial (blonwe-testimonial-box.php), audio (blonwe-audio-box.php)
   -------------------------------------------------------------------------- */
.klb-comment-text .entry-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}
.klb-comment-text .entry-rating .stars { display: inline-flex; gap: 2px; color: var(--olv-star); font-size: 14px; }
.klb-comment-text .entry-rating span { font-size: 13px; opacity: 0.7; }
.klb-comment-text .entry-comment { font-size: 15px; line-height: 1.6; }
.klb-comment-text .entry-comment p:last-child { margin-bottom: 0; }
.klb-comment-text .enty-author { margin: 15px 0 0; font-size: 15px; }

.klb-audio-player .audio-playlist ul { margin: 20px 0 0; padding: 0; list-style: none; }
.klb-audio-player .audio-playlist li {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid var(--olv-border);
  cursor: pointer;
  transition: color var(--olv-transition);
}
.klb-audio-player .audio-playlist li:hover,
.klb-audio-player .audio-playlist li.active,
.klb-audio-player .audio-playlist li.playing { color: var(--olv-primary); }
.klb-audio-player .audio-cover { flex-shrink: 0; width: 50px; height: 50px; overflow: hidden; border-radius: 4px; }
.klb-audio-player .audio-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.klb-audio-player .audio-detail { flex: 1; min-width: 0; }
.klb-audio-player .audio-title { margin: 0 0 2px; font-size: 15px; }
.klb-audio-player .audio-time { font-size: 13px; opacity: 0.6; }
.klb-audio-player .mejs-container.klb-player,
.klb-audio-player .mejs-container.klb-player .mejs-controls { background: var(--olv-text); border-radius: var(--olv-radius-form); }

/* --------------------------------------------------------------------------
   Image widgets (blonwe-image-animation.php, blonwe-image-points.php,
   blonwe-image-search-box.php, blonwe-home-image.php, blonwe-image-box.php)
   -------------------------------------------------------------------------- */
.z-2 { position: relative; z-index: 2; }
.z-2 .entry-media img { display: block; max-width: 100%; height: auto; }
.animation-float-bob-y { animation: olv-float-y 3s ease-in-out infinite; }
.animation-float-bob-x { animation: olv-float-x 3s ease-in-out infinite; }
@keyframes olv-float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes olv-float-x { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(12px); } }

.product-tick .module-body .entry-media { position: relative; }
.product-tick .module-body .entry-media img { display: block; width: 100%; height: auto; }
.product-tick .ring { position: absolute; z-index: 2; width: 20px; height: 20px; }
.product-tick .ringring {
  position: absolute;
  inset: -8px;
  border: 2px solid var(--olv-primary);
  border-radius: 50%;
  opacity: 0;
  animation: olv-pulse 1.6s ease-out infinite;
}
.product-tick button.circle {
  display: block;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 3px solid var(--olv-white);
  border-radius: 50%;
  background-color: var(--olv-primary);
  box-shadow: var(--olv-shadow-sm);
  cursor: pointer;
}
@keyframes olv-pulse { 0% { transform: scale(0.6); opacity: 0.8; } 100% { transform: scale(1.4); opacity: 0; } }
.ring-tooltip .tooltip-inner { font-size: 12px; }

.content-search .search-holder { position: relative; }
.content-search .search-form { display: flex; gap: 8px; }
.content-search .search-input { flex: 1; min-width: 0; height: var(--olv-btn-h); }
.content-search .search-form .btn { flex-shrink: 0; height: var(--olv-btn-h); }
.entry-decorative.min-1024 { display: none; }
@media (min-width: 1024px) {
  .entry-decorative.min-1024 { display: block; }
}
.sale-stamp {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  color: var(--olv-white);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
}
.sale-stamp p { margin: 0; }
.sale-stamp.background-secondary { background-color: var(--olv-text); }
.entry-media.image-block img { display: block; width: 100%; height: auto; }

.custom-background.custom-image { background-position: center; background-size: cover; }
.custom-background.background-cover { background-position: center; background-size: cover; }
.custom-background.padding-fix { padding: 30px; }
.custom-background .relative { position: relative; }
.custom-background .overflow { overflow: hidden; }
.custom-background .theme-radius { border-radius: var(--olv-radius); }
.custom-background .entry-media img { display: block; max-width: 100%; height: auto; }
.custom-background .col img { max-width: 100%; height: auto; }
.custom-background .entry-subtitle.badge {
  display: inline-flex;
  padding: 6px 10px;
  border-radius: var(--olv-radius-form);
  color: var(--olv-white);
  line-height: 1;
}
.custom-background .entry-subtitle.background-orange { background-color: var(--olv-warning); }
@media (min-width: 992px) {
  .custom-background.padding-fix { padding: 60px; }
}

.product-promotion.list-style .product-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 30px; }
.product-promotion.list-style .thumbnail-wrapper { flex: 1 1 260px; }
.product-promotion.list-style .thumbnail-wrapper img { display: block; width: 100%; height: auto; }
.product-promotion.list-style .content-wrapper { flex: 1 1 260px; }
.product-promotion.list-style .product-badge {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 8px;
  border-radius: var(--olv-radius-form);
  background-color: var(--olv-primary-soft);
  color: var(--olv-primary);
  font-size: 12px;
  font-weight: 600;
}
.product-promotion.list-style .product-title { margin-bottom: 10px; font-size: 24px; }
.product-promotion.list-style .entry-footer { margin-top: 20px; }
.klb-promo-box {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius);
  background-color: var(--olv-white);
}
.klb-promo-box .promo-content { padding: 30px 20px; }
.klb-promo-box .promo-content .entry-title { margin-bottom: 8px; }
.klb-promo-box .promo-content .entry-description { margin-bottom: 10px; }
.klb-promo-box .promo-image { margin-top: auto; text-align: center; }
.klb-promo-box .promo-image img { max-width: 100%; height: auto; vertical-align: middle; }
.klb-promo-box.style-2 .promo-image { order: -1; margin-top: 0; }
.klb-promo-box.style-2 .promo-image.bordered-bottom { border-bottom: 1px solid var(--olv-border); }

/* --------------------------------------------------------------------------
   Latest blog (blonwe-latest-blog.php): .module-posts .blog-posts.grid-style
   -------------------------------------------------------------------------- */
.module-posts .blog-posts.grid-style {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
.module-posts .blog-posts .post { position: relative; }
.module-posts .blog-posts .entry-media { overflow: hidden; border-radius: var(--olv-radius); }
.module-posts .blog-posts .entry-media img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}
.module-posts .blog-posts .post:hover .entry-media img { transform: scale(1.04); }
.module-posts .blog-posts .entry-wrapper { padding-top: 15px; }
.module-posts .blog-posts .entry-category { margin-bottom: 6px; font-size: 12px; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; }
.module-posts .blog-posts .entry-category a { color: var(--olv-primary); }
.module-posts .blog-posts .entry-title { margin-bottom: 8px; font-size: 18px; }
.module-posts .blog-posts .entry-title a:hover { color: var(--olv-primary); }
.module-posts .blog-posts .entry-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; color: var(--olv-text-muted); }
.module-posts .blog-posts .entry-meta a { color: inherit; }
.module-posts .blog-posts .entry-meta .author { font-weight: 500; }
.module-posts .blog-posts .col-12 { grid-column: 1 / -1; }
@media (min-width: 576px) {
  .module-posts .blog-posts.grid-style { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .module-posts .blog-posts.grid-2 { grid-template-columns: repeat(2, 1fr); }
  .module-posts .blog-posts.grid-3 { grid-template-columns: repeat(3, 1fr); }
  .module-posts .blog-posts.grid-4 { grid-template-columns: repeat(4, 1fr); }
  .module-posts .blog-posts.grid-5 { grid-template-columns: repeat(5, 1fr); }
}

/* --------------------------------------------------------------------------
   Coupon carousel (blonwe-coupon-carousel.php): coupon cards + modal
   -------------------------------------------------------------------------- */
.product-wrapper.style-10 .price-block { margin-bottom: 12px; }
.product-wrapper.style-10 .price-block .badge {
  display: inline-block;
  padding: 5px 8px;
  border-radius: var(--olv-radius-form);
  font-size: 12px;
  font-weight: 600;
}
.product-wrapper.style-10 .badge.background-green-light { background-color: rgba(47, 158, 68, 0.12); color: var(--olv-success); }
.product-wrapper.style-10 .product-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 15px; }
.product-wrapper.style-10 .product-buttons .klb-countdown-wrapper { font-size: 13px; }
.klb-coupon-modal {
  position: relative;
  max-width: 520px;
  margin: 20px auto;
  padding: 0;
  overflow: hidden;
  border-radius: var(--olv-radius);
  background-color: var(--olv-white);
}
.klb-coupon-modal .klb-coupon-inner { display: flex; flex-wrap: wrap; }
.klb-coupon-modal .store-thumbnail { flex: 0 0 100%; text-align: center; }
.klb-coupon-modal .store-thumbnail img { max-width: 100%; height: auto; vertical-align: middle; }
.klb-coupon-modal .store-content { flex: 1; padding: 30px; }
.klb-coupon-modal .store-name { margin-bottom: 8px; font-size: 20px; }
.klb-coupon-modal .coupon-code { margin-top: 20px; }
.klb-coupon-modal .coupon-code .code {
  display: inline-block;
  padding: 10px 16px;
  border: 1px dashed var(--olv-primary);
  border-radius: var(--olv-radius-form);
  color: var(--olv-primary);
  font-weight: 700;
  letter-spacing: 0.05em;
  user-select: all;
}
@media (min-width: 576px) {
  .klb-coupon-modal .store-thumbnail { flex-basis: 40%; }
  .klb-coupon-modal .store-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
}

/* ---- 51-elementor-products.css ---- */
/* ==========================================================================
   Olverin theme: Elementor commerce widgets (olverin-core/elementor/widgets)
   Module wrappers, product carousels/grids/lists, tab pills, category boxes,
   category/product banners, deals, special product, brands, product search,
   vendor boxes and the shared countdown skin. Product card internals
   (.product-wrapper.product-type-N) live in 30-product-card.css; the slider
   base (.klb-slider, arrows, dots, gutters, loader) and .module-header live in
   50-elementor-content.css. Only module-level layout is written here.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Module wrappers (product-carousel2, product-grid, product-tab-*, banners)
   -------------------------------------------------------------------------- */
.klb-module.module-carousel,
.klb-module.module-products-grid,
.klb-module.products-column { position: relative; }
.module-products-grid .grid-wrapper { display: flex; flex-wrap: wrap; gap: 30px; }
.module-products-grid .grid-wrapper > .module-column { flex: 1 1 100%; min-width: 0; }
.module-products-grid .grid-wrapper.bordered { gap: 0; border: 1px solid var(--olv-border); border-radius: var(--olv-radius); }
.module-products-grid .grid-wrapper.bordered > .module-column + .module-column { border-top: 1px solid var(--olv-border); }
@media (min-width: 992px) {
  .module-products-grid .grid-wrapper > .module-column { flex: 1 1 0; }
  .module-products-grid .grid-wrapper.bordered > .module-column + .module-column {
    border-top: 0;
    border-left: 1px solid var(--olv-border);
  }
}

/* Bordered carousel (content type "bordered"): grid lines between slides */
.klb-slider.products.bordered { border: 1px solid var(--olv-border); border-radius: var(--olv-radius); }
.klb-slider.products.bordered .slider-item { padding: 0; border-right: 1px solid var(--olv-border); }
.klb-slider.products.bordered .slider-item:last-child { border-right: 0; }
.klb-slider.products.align-start .slick-track { align-items: flex-start; }
.klb-slider.products .slider-item > .product { height: 100%; }
.module-carousel.hot .klb-slider.products.bordered,
.module-carousel.hot-product .klb-slider.products.bordered { border-color: var(--olv-primary); }

/* --------------------------------------------------------------------------
   Tab pills (product-tab-carousel / tab-grid / tab-grid2 / tab-list)
   -------------------------------------------------------------------------- */
.module-header-inner .sub-column { flex: 1 1 auto; min-width: 0; }
.module-header-tab ul {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}
.module-header-tab ul::-webkit-scrollbar { display: none; }
.module-header-tab .tab-item { flex: 0 0 auto; }
.module-header-tab .tab-link {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 16px;
  border: 1px solid var(--olv-border-15);
  border-radius: var(--olv-radius-round);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  color: var(--olv-text-muted);
  white-space: nowrap;
  transition: color var(--olv-transition), background-color var(--olv-transition), border-color var(--olv-transition);
}
.module-header-tab .tab-link:hover { color: var(--olv-text); border-color: var(--olv-text); }
.module-header-tab .tab-item.active .tab-link { color: var(--olv-white); background-color: var(--olv-text); border-color: var(--olv-text); }
.module-header.centered .module-header-tab ul { justify-content: center; }
.module-header.centered .sub-column { margin-top: 12px; }
@media (min-width: 768px) {
  .module-header-inner .sub-column { padding: 0 20px; }
  .module-header.centered .sub-column { flex-basis: 100%; padding: 0; }
}
.module-header .module-header-counter { display: flex; align-items: center; }

/* Tab loading state (content is swapped by ajax) */
.klb-products-tab { position: relative; min-height: 60px; }
.klb-products-tab.loading .klb-slider,
.klb-products-tab.loading .products { opacity: 0.4; pointer-events: none; }

/* Tab grid style-6: grid column + list column (blonwe-product-tab-grid.php) */
.module-products-grid.style-6 .module-column .products.list-style { display: block; }
@media (min-width: 992px) {
  .module-products-grid.style-6 .grid-wrapper > .module-column { flex: 2 1 0; }
  .module-products-grid.style-6 .grid-wrapper > .module-column + .module-column { flex: 1 1 0; }
}
/* Tab list (blonwe-product-tab-list.php) */
.module-products-grid.type-list.style-11 .products.list-style { display: flex; flex-wrap: wrap; gap: 0 30px; }
.module-products-grid.type-list.style-11 .products.list-style > .product { flex: 1 1 100%; }
@media (min-width: 992px) {
  .module-products-grid.type-list.style-11 .products.list-style.column-3 > .product { flex-basis: calc(33.333% - 20px); }
}

/* Product grid wrappers (blonwe-product-grid.php) */
.custom-product-block { padding: 20px; border-radius: var(--olv-radius); background-color: var(--olv-bg); }
.custom-product-block.bordered { border: 1px solid var(--olv-border); }
.custom-product-block.shadowed { box-shadow: var(--olv-shadow-md); }
.custom-product-block.small { padding: 15px; }

/* --------------------------------------------------------------------------
   Product list widget rows (blonwe-product-list.php, custom markup)
   -------------------------------------------------------------------------- */
.products.for-widgets .product-wrapper .product-inner,
.products.for-fashion .product-wrapper.style-4 .product-inner { display: flex; align-items: center; gap: 15px; }
.products.for-widgets .product-wrapper .thumbnail-wrapper,
.products.for-fashion .product-wrapper.style-4 .thumbnail-wrapper { flex: 0 0 80px; max-width: 80px; }
.products.for-fashion .product-wrapper.style-4 .thumbnail-wrapper { flex-basis: 110px; max-width: 110px; }
.products.for-widgets .product-wrapper .content-wrapper,
.products.for-fashion .product-wrapper.style-4 .content-wrapper { flex: 1 1 0; min-width: 0; }
.products.for-widgets .product-title,
.products.for-fashion .product-title {
  margin: 0 0 4px;
  font-family: var(--olv-font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}
.products.for-widgets .product-title a,
.products.for-fashion .product-title a { color: var(--olv-text); }
.products.for-widgets .product-rating,
.products.for-fashion .product-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; font-size: 12px; }
.products.for-widgets .price,
.products.for-fashion .price { display: block; font-size: 15px; font-weight: 600; }
.products.for-widgets .product-countdown,
.products.for-fashion .product-countdown { margin-top: 8px; }
.products.for-widgets .product-countdown p,
.products.for-fashion .product-countdown p { margin: 4px 0 0; font-size: 12px; color: var(--olv-text-light); }

/* --------------------------------------------------------------------------
   Product carousel with text block (blonwe-product-carousel3.php)
   -------------------------------------------------------------------------- */
.custom-block-area {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  padding: 30px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius);
}
.custom-block-area .custom-block-text { flex: 1 1 100%; }
.custom-block-area .custom-carousel { flex: 1 1 100%; min-width: 0; }
.custom-block-area .entry-subtitle { margin: 0 0 6px; text-transform: uppercase; letter-spacing: 0.04em; }
.custom-block-area .entry-title { margin: 0 0 10px; }
.custom-block-area .entry-description p { margin: 0; }
.custom-block-area .entry-footer { margin-top: 16px; }
.custom-carousel .slider-item img { display: block; width: 100%; height: auto; }
@media (min-width: 992px) {
  .custom-block-area .custom-block-text { flex: 0 0 260px; }
  .custom-block-area .custom-carousel { flex: 1 1 0; }
}

/* --------------------------------------------------------------------------
   Category boxes (blonwe-product-categories.php / product-categories2.php)
   -------------------------------------------------------------------------- */
.klb-category-block { position: relative; font-size: 14px; line-height: 1.5; }
.klb-category-block .overlay-link { position: absolute; inset: 0; z-index: 8; }
.klb-category-block .category-thumbnail img { display: block; width: 100%; height: auto; transition: transform 0.5s ease; }
.klb-category-block .category-thumbnail.rounded,
.klb-category-block .category-thumbnail.rounded img { border-radius: 50%; }
.klb-category-block .entry-title {
  margin: 0;
  font-family: var(--olv-font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}
.klb-category-block .category-count { margin-top: 2px; font-size: 13px; color: var(--olv-text-light); }
.klb-category-block:hover .category-thumbnail img { transform: scale(1.04); }

/* style-5 (cosmetics home "Our Categories"): square image, name pill at the bottom */
.klb-category-block.style-5 { overflow: hidden; }
.klb-category-block.style-5 .category-thumbnail { aspect-ratio: 1 / 1; overflow: hidden; }
.klb-category-block.style-5 .category-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.klb-category-block.style-5 .category-detail {
  position: absolute;
  right: 0;
  bottom: 15px;
  left: 0;
  z-index: 2;
  text-align: center;
}
.klb-category-block.style-5 .entry-title {
  display: inline-flex;
  align-items: center;
  margin: 10px 0 8px;
  padding: 5px 10px;
  border: 1px solid var(--olv-text);
  background-color: var(--olv-white);
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--olv-text);
}

/* style-2 / style-4 / style-6 / style-7 / style-8: image above a centered caption */
.klb-category-block.style-2,
.klb-category-block.style-4,
.klb-category-block.style-6,
.klb-category-block.style-7,
.klb-category-block.style-8 { text-align: center; }
.klb-category-block.style-2 .category-thumbnail,
.klb-category-block.style-4 .category-thumbnail,
.klb-category-block.style-6 .category-thumbnail,
.klb-category-block.style-7 .category-thumbnail,
.klb-category-block.style-8 .category-thumbnail { overflow: hidden; margin: 0 auto 12px; border-radius: var(--olv-radius); }
.klb-category-block.style-2 .category-thumbnail,
.klb-category-block.style-6 .category-thumbnail { max-width: 160px; border-radius: 50%; }
.klb-category-block.style-2 .category-thumbnail img,
.klb-category-block.style-6 .category-thumbnail img { border-radius: 50%; aspect-ratio: 1 / 1; object-fit: cover; }
.klb-category-block.style-4 { padding: 20px 15px; border: 1px solid var(--olv-border); border-radius: var(--olv-radius); }
.klb-category-block.style-4 .category-thumbnail { max-width: 120px; }
.klb-category-block.style-8 { padding: 15px; background-color: var(--olv-bg-gray); border-radius: var(--olv-radius); }
.klb-category-block.style-7 .category-thumbnail { aspect-ratio: 1 / 1; }
.klb-category-block.style-7 .category-thumbnail img { height: 100%; object-fit: cover; }
.klb-slider.category-bordered .slider-item { padding: 0; }
.klb-slider.category-bordered .slider-item + .slider-item .klb-category-block { border-left: 0; }

/* style-1: text left, thumbnail right, with sub-category links */
.klb-category-block.style-1 {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 20px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius);
}
.klb-category-block.style-1 .category-detail { flex: 1 1 0; min-width: 0; }
.klb-category-block.style-1 .category-thumbnail { flex: 0 0 90px; }
.klb-category-block.style-1 ul { margin: 6px 0 0; padding: 0; list-style: none; font-size: 13px; }
.klb-category-block.style-1 li a { color: var(--olv-text-muted); }
.klb-category-block.style-1 li a:hover { color: var(--olv-primary); }

/* style-3 (categories widget grid): large image, name, count, child list, "All" link */
.klb-product-category { margin-bottom: 30px; }
.klb-category-block.style-3 .category-thumbnail { overflow: hidden; margin-bottom: 15px; border-radius: var(--olv-radius); }
.klb-category-block.style-3 .entry-title { font-size: 18px; }
.klb-category-block.style-3 .sub-categories { margin: 10px 0 12px; padding: 0; list-style: none; }
.klb-category-block.style-3 .sub-categories li { margin-bottom: 4px; }
.klb-category-block.style-3 .sub-categories a { color: var(--olv-text-muted); }
.klb-category-block.style-3 .sub-categories a:hover { color: var(--olv-primary); }
.klb-category-block.style-3 .btn.link { position: relative; z-index: 9; }

/* --------------------------------------------------------------------------
   Category banner (blonwe-category-banner.php): counts + sub-category nav
   -------------------------------------------------------------------------- */
.klb-banner .entry-count-text {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.klb-banner .entry-count-text .count { font-size: 18px; font-weight: 700; }
.klb-banner .sub-categories ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
}
.klb-banner .sub-categories a { position: relative; z-index: 9; color: inherit; opacity: 0.8; }
.klb-banner .sub-categories a:hover { opacity: 1; text-decoration: underline; }

/* --------------------------------------------------------------------------
   Category banner 2 / product banner (module-products-grid.style-3 / .style-2)
   -------------------------------------------------------------------------- */
.module-products-grid .banner-area { position: relative; height: 100%; }
.module-products-grid .banner-area .klb-banner { height: 100%; }
.module-products-grid.style-3 .column-child.list-items { padding: 25px; }
.grid-list-menu ul { margin: 0; padding: 0; list-style: none; }
.grid-list-menu li { margin-bottom: 8px; font-size: 14px; }
.grid-list-menu a { color: var(--olv-text-muted); }
.grid-list-menu a:hover { color: var(--olv-primary); }
.grid-list-button { margin-top: 15px; }
.banner-price { display: flex; align-items: center; gap: 8px; }
.banner-price .price-label { font-size: 13px; color: inherit; opacity: 0.7; }
.banner-price .price { font-size: 22px; font-weight: 700; color: var(--olv-primary); }
.banner-price.size-sm .price { font-size: 18px; }
@media (min-width: 992px) {
  .module-products-grid.style-2 .grid-wrapper > .module-column:first-child,
  .module-products-grid.style-3 .grid-wrapper > .module-column:first-child { flex: 0 0 300px; }
  .module-products-grid.style-3 .grid-wrapper > .module-column:first-child { display: flex; flex-direction: column; }
  .module-products-grid.style-3 .column-child.banner-area { flex: 1 1 auto; }
}

/* --------------------------------------------------------------------------
   Deals of the day (blonwe-deals-product.php: module-products-grid.style-9)
   -------------------------------------------------------------------------- */
.module-products-grid.style-9 .center { padding: 25px; border: 1px solid var(--olv-border); border-radius: var(--olv-radius); }
.module-products-grid.style-9 .products { display: flex; flex-wrap: wrap; gap: 30px; }
.module-products-grid.style-9 .products > .product { flex: 1 1 100%; min-width: 0; }
.module-products-grid.style-9 .product-wrapper.style-5 .product-inner { display: flex; flex-wrap: wrap; gap: 25px; }
.module-products-grid.style-9 .product-wrapper.style-5 .thumbnail-wrapper { position: relative; flex: 1 1 240px; max-width: 360px; }
.module-products-grid.style-9 .product-wrapper.style-5 .thumbnail-wrapper img { display: block; width: 100%; height: auto; }
.module-products-grid.style-9 .product-wrapper.style-5 .content-wrapper { flex: 1 1 260px; min-width: 0; }
.module-products-grid.style-9 .product-wrapper.style-5 .product-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 12px; }
.module-products-grid.style-9 .product-wrapper.style-5 .product-title { margin: 0 0 10px; font-family: var(--olv-font-heading); font-size: 22px; line-height: 1.25; }
.module-products-grid.style-9 .product-wrapper.style-5 .product-title a { color: var(--olv-text); }
.module-products-grid.style-9 .product-wrapper.style-5 .price { display: block; margin-bottom: 15px; font-size: 20px; font-weight: 600; }
.module-products-grid.style-9 .product-wrapper.style-5 .product-progress { margin-bottom: 15px; }
.product-checklist { margin-top: 15px; font-size: 14px; color: var(--olv-text-muted); }
.product-checklist ul { margin: 0; padding: 0; list-style: none; }
.product-checklist li { position: relative; margin-bottom: 6px; padding-left: 22px; }
.product-checklist li::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--olv-success);
  border-bottom: 2px solid var(--olv-success);
  transform: rotate(-45deg);
}
.product-message.color-danger { margin-top: 8px; font-size: 13px; font-weight: 500; color: var(--olv-danger); }
@media (min-width: 992px) {
  .module-products-grid.style-9 .products > .product { flex: 1 1 calc(50% - 15px); }
}

/* --------------------------------------------------------------------------
   Special product (special-product/*.php)
   -------------------------------------------------------------------------- */
.klb-special-product .featured-product { height: 100%; padding: 25px; border: 2px solid var(--olv-primary); border-radius: var(--olv-radius); }
.product-hot-header { margin-bottom: 20px; text-align: center; }
.product-hot-header .entry-title { margin: 0 0 4px; font-size: 22px; }
.product-hot-header .entry-description p { margin: 0; font-size: 14px; color: var(--olv-text-light); }
.product-hot-header .product-countdown { display: flex; justify-content: center; margin-top: 15px; }
.klb-special-product .product-wrapper.style-3 .thumbnail-wrapper { position: relative; margin-bottom: 20px; }
.klb-special-product .product-wrapper.style-3 .thumbnail-wrapper img { display: block; width: 100%; height: auto; }
.klb-special-product .product-wrapper.style-3 .content-wrapper { text-align: center; }
.klb-special-product .product-wrapper.style-3 .product-rating { display: flex; justify-content: center; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 12px; }
.klb-special-product .product-wrapper.style-3 .product-title { margin: 0 0 8px; font-family: var(--olv-font-heading); font-size: 20px; line-height: 1.3; }
.klb-special-product .product-wrapper.style-3 .product-title a { color: var(--olv-text); }
.klb-special-product .product-wrapper.style-3 .price { display: block; margin-bottom: 15px; font-size: 20px; font-weight: 600; }

.module-hot-product { border: 2px solid var(--olv-primary); border-radius: var(--olv-radius); }
.module-hot-product .hot-product-title { padding: 12px 20px; background-color: var(--olv-primary); color: var(--olv-white); }
.module-hot-product .hot-product-title .entry-title { margin: 0; font-family: var(--olv-font-body); font-size: 15px; font-weight: 600; color: inherit; }
.module-hot-product .module-body { padding: 20px; }
.products.large-list .product-wrapper.style-2 .product-inner { display: flex; flex-wrap: wrap; gap: 20px; }
.products.large-list .product-wrapper.style-2 .thumbnail-wrapper { position: relative; flex: 1 1 200px; max-width: 300px; }
.products.large-list .product-wrapper.style-2 .thumbnail-wrapper img { display: block; width: 100%; height: auto; }
.products.large-list .product-wrapper.style-2 .content-wrapper { flex: 1 1 220px; min-width: 0; }
.products.large-list .product-wrapper.style-2 .product-title { margin: 0 0 8px; font-family: var(--olv-font-heading); font-size: 20px; line-height: 1.3; }
.products.large-list .product-wrapper.style-2 .product-title a { color: var(--olv-text); }
.products.large-list .product-wrapper.style-2 .product-meta { margin-bottom: 6px; font-size: 13px; color: var(--olv-text-light); }
.products.large-list .product-wrapper.style-2 .price { display: block; margin-bottom: 15px; font-size: 20px; font-weight: 600; }
.products.large-list .product-countdown { margin-top: 15px; }
.products.large-list .product-countdown p { margin: 6px 0 0; font-size: 12px; color: var(--olv-text-light); }

/* --------------------------------------------------------------------------
   Countdown skin (shared: header notification, deals, carousel2 header,
   product-list rows, special product)
   -------------------------------------------------------------------------- */
.klb-countdown-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.klb-countdown {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}
.klb-countdown .count-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  padding: 0 4px;
  border: 1px solid transparent;
  border-radius: var(--olv-radius);
}
.klb-countdown .count-item + .count-item,
.klb-countdown .count-item + span,
.klb-countdown span + .count-item { margin-left: 4px; }
.klb-countdown .count-label { margin-left: 4px; font-size: 0.85em; opacity: 0.5; }
.klb-countdown > span { opacity: 0.4; }
.klb-countdown.filled .count-item { height: 25px; background-color: rgba(var(--olv-text-rgb), 0.1); }
.klb-countdown.outline .count-item { height: 25px; border-color: var(--olv-border-15); }
.klb-countdown.radius .count-item { border-radius: 3px; }
.klb-countdown.red .count-item { background-color: var(--olv-primary); color: var(--olv-white); }
.klb-countdown.red .count-label,
.klb-countdown.red > span { opacity: 0.7; }
.klb-countdown.size-xs { font-size: 12px; }
.klb-countdown.size-xs .count-item { min-width: 26px; height: 22px; }
.klb-countdown.size-md { font-size: 18px; }
.klb-countdown.size-md .count-item { min-width: 44px; height: 40px; padding: 0 8px; }
.klb-countdown.separate-second .count-item:last-child { margin-left: 8px; }
.klb-countdown.separate-second .sep-s { display: none; }

/* --------------------------------------------------------------------------
   Brands index (blonwe-product-brands.php)
   -------------------------------------------------------------------------- */
.klb-brand-section { --brand-cols: 4; }
.klb-brand-section .product-header { margin-bottom: 25px; }
.klb-brand-section .product-header .entry-title { margin: 0 0 12px; }
.klb-brand-section__nav { display: flex; flex-wrap: wrap; gap: 4px; }
.klb-brand-section__nav a,
.klb-brand-section__nav span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 6px;
  border: 1px solid var(--olv-border);
  border-radius: var(--olv-radius-form);
  font-size: 13px;
  font-weight: 600;
  color: var(--olv-text);
}
.klb-brand-section__nav a:hover { color: var(--olv-white); background-color: var(--olv-text); border-color: var(--olv-text); }
.klb-brand-section__nav .disabled { color: var(--olv-text-light); opacity: 0.5; }
.brand-group { padding: 20px 0; border-top: 1px solid var(--olv-border); }
.brand-group .brand-letter { margin: 0 0 12px; font-size: 24px; color: var(--olv-primary); }
.brand-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.brand-item { font-size: 14px; }
.brand-item a { color: var(--olv-text); }
.brand-item a:hover { color: var(--olv-primary); }
.brand-item .brand-count { margin-left: 4px; font-size: 12px; color: var(--olv-text-light); }
@media (min-width: 768px) { .brand-list { grid-template-columns: repeat(var(--brand-cols), minmax(0, 1fr)); } }

/* --------------------------------------------------------------------------
   Product search form (blonwe-product-search.php)
   -------------------------------------------------------------------------- */
.klb-custom-form { padding: 30px; border-radius: var(--olv-radius); background-color: var(--olv-bg-gray); }
.klb-custom-form .custom-form-header { margin-bottom: 20px; }
.klb-custom-form .custom-form-header .entry-title { margin: 0 0 6px; }
.klb-custom-form .entry-description p { margin: 0; color: var(--olv-text-muted); }
.service-search-form { display: flex; flex-wrap: wrap; gap: 10px; }
.service-search-form .form-column { flex: 1 1 200px; min-width: 0; }
.service-search-form .form-column.button-column { flex: 0 0 auto; }
.service-search-form .theme-select,
.service-search-form .select2-container { width: 100%; }
.service-search-form .btn { height: var(--olv-input-h); }
@media (min-width: 992px) { .klb-custom-form { padding: 40px; } }

/* --------------------------------------------------------------------------
   Vendor store boxes (blonwe-vendor-carousel.php / vendor-carousel2.php)
   -------------------------------------------------------------------------- */
.klb-storebox { height: 100%; border: 1px solid var(--olv-border); border-radius: var(--olv-radius); background-color: var(--olv-bg); }
.klb-storebox > a { display: block; height: 100%; padding: 20px; color: var(--olv-text); }
.klb-storebox .store-detail { display: flex; align-items: center; gap: 12px; }
.klb-storebox .store-avatar { flex: 0 0 56px; width: 56px; height: 56px; overflow: hidden; border-radius: 50%; }
.klb-storebox .store-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.klb-storebox .store-info { flex: 1 1 0; min-width: 0; }
.klb-storebox .store-name { font-size: 15px; font-weight: 600; line-height: 1.3; }
.klb-storebox .store-caption {
  display: inline-block;
  margin-top: 3px;
  padding: 2px 6px;
  border-radius: 2px;
  background-color: var(--olv-primary-soft);
  font-size: 11px;
  font-weight: 600;
  color: var(--olv-primary);
}
.klb-storebox .store-rating { display: flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 12px; color: var(--olv-text-light); }
.klb-storebox .store-rating i { color: var(--olv-star); }
.klb-storebox .store-rating p { margin: 0; }
.klb-storebox .store-products { display: flex; gap: 10px; margin-top: 15px; }
.klb-storebox .store-products .column { flex: 1 1 0; min-width: 0; }
.klb-storebox .store-products .column:first-child { flex: 2 1 0; }
.klb-storebox .store-products .child-column + .child-column { margin-top: 10px; }
.klb-storebox .product-item img { display: block; width: 100%; height: auto; border-radius: var(--olv-radius); }
.klb-storebox .product-price { margin-top: 4px; font-size: 13px; font-weight: 600; }
.klb-storebox .product-count { display: flex; align-items: center; justify-content: center; background-color: var(--olv-bg-gray); }
.klb-storebox .store-total-product { font-size: 18px; font-weight: 700; }
.klb-storebox.style-2 .store-products .column:first-child { flex: 1 1 0; }
.klb-storebox.style-3 .store-detail { flex-direction: column; align-items: flex-start; }
.klb-storebox.style-3 .store-avatar { width: 70px; height: 70px; flex-basis: 70px; border-radius: var(--olv-radius); }
.klb-storebox.style-3 .store-description { margin: 6px 0 10px; font-size: 14px; color: var(--olv-text-muted); }
