/* ==========================================================================
   Revup storefront overrides
   Loaded after the ported Autima theme CSS so these rules take precedence.
   Palette mirrors the theme settings: skin #fed700, headings #3e444a.
   ========================================================================== */
:root {
  --rv-yellow: #ecfe54;
  --rv-yellow-dark: #f0c400;
  --rv-yellow-ink: #b58900;
  --rv-dark: #3e444a;
  --rv-ink: #242424;
  --rv-body: #6b7178;
  --rv-muted: #9aa0a6;
  --rv-border: #e6e8eb;
  --rv-soft: #f6f7f9;
  --rv-radius: 6px;
  --rv-shadow: 0 8px 30px rgba(20, 21, 27, 0.1);
  --rv-shadow-sm: 0 3px 12px rgba(20, 21, 27, 0.08);
}

body {
  font-family: "Open Sans", "FiraGO", "Helvetica Neue", Arial, sans-serif;
  color: var(--rv-body);
  background: #fff;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Lato", "FiraGO", "Open Sans", sans-serif;
  color: var(--rv-dark);
}
a {
  color: var(--rv-dark);
  text-decoration: none;
}
a:hover {
  color: var(--rv-yellow-ink);
}
img {
  max-width: 100%;
}
.rv-main {
  display: block;
  min-height: 50vh;
}
.container {
  max-width: 1200px;
}

/* ------- Buttons ---------------------------------------------------------- */
.rv-btn-primary,
.rv-btn-dark,
.rv-btn-outline,
.btn.rv-btn-primary,
.btn.rv-btn-dark,
.btn.rv-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 24px;
  border-radius: var(--rv-radius);
  border: 2px solid transparent;
  font:
    700 13px/1 "Lato",
    sans-serif;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.rv-btn-primary,
.btn.rv-btn-primary {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-btn-primary:hover,
.btn.rv-btn-primary:hover {
  background: var(--rv-ink);
  color: #fff;
}
.rv-btn-dark,
.btn.rv-btn-dark {
  background: var(--rv-ink);
  color: #fff;
}
.rv-btn-dark:hover,
.btn.rv-btn-dark:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-btn-outline,
.btn.rv-btn-outline {
  background: transparent;
  border-color: var(--rv-dark);
  color: var(--rv-dark);
}
.rv-btn-outline:hover,
.btn.rv-btn-outline:hover {
  background: var(--rv-dark);
  color: #fff;
}
.rv-btn-primary:disabled,
.rv-btn-dark:disabled,
.btn.rv-btn-primary:disabled,
.btn.rv-btn-dark:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* ==========================================================================
   Header
   ========================================================================== */
.rv-header {
  position: relative;
  z-index: 40;
  background: #fff;
}
.rv-announce {
  background: #fff;
  color: var(--rv-dark);
  font-size: 13px;
  border-bottom: 1px solid var(--rv-border);
}
.rv-announce .container {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 9px 30px;
}
.rv-announce b {
  color: var(--rv-ink);
}
.rv-announce a {
  color: var(--rv-ink);
  text-decoration: underline;
  margin-left: 4px;
}
.rv-announce-close {
  position: absolute;
  right: 12px;
  background: none;
  border: 0;
  color: #bbb;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.rv-announce-close:hover {
  color: #fff;
}

.rv-topbar {
  background: var(--rv-yellow);
  font-size: 13px;
}
.rv-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.rv-social {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 4px;
}
.rv-social a {
  display: inline-flex;
  width: 30px;
  height: 34px;
  align-items: center;
  justify-content: center;
  color: var(--rv-body);
}
.rv-social a:hover {
  color: var(--rv-yellow-ink);
}
.rv-topbar-links {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-topbar-links > li {
  position: relative;
}
.rv-topbar-links > li > button {
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--rv-body);
  padding: 9px 14px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rv-topbar-links > li > button:hover {
  color: var(--rv-ink);
}

/* Shared dropdown */
.rv-has-dropdown {
  position: relative;
}
.rv-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 190px;
  background: #fff;
  box-shadow: var(--rv-shadow);
  border-radius: 0 0 6px 6px;
  padding: 8px 0;
  list-style: none;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all 0.18s ease;
  z-index: 60;
}
.rv-has-dropdown:hover > .rv-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.rv-dropdown li a,
.rv-dropdown li button {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 8px 18px;
  font-size: 13px;
  color: #4a4f55;
}
.rv-dropdown li a:hover,
.rv-dropdown li button:hover {
  background: var(--rv-soft);
  color: var(--rv-yellow-ink);
}
.rv-topbar-links .rv-dropdown {
  right: 0;
  left: auto;
}

/* Main header row */
.rv-header-main {
  background: var(--rv-yellow);
}
.rv-header-main-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 18px 0;
}
.rv-burger {
  display: none;
  background: none;
  border: 0;
  font-size: 22px;
  color: var(--rv-ink);
  cursor: pointer;
}

.rv-logo {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.rv-logo img {
  display: block;
  height: 38px;
  width: auto;
}
.rv-logo--footer img {
  height: 42px;
}

.rv-search {
  flex: 1 1 auto;
  display: flex;
  align-items: stretch;
  max-width: 640px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--rv-radius);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 2px rgba(20, 21, 27, 0.06);
}
.rv-search-cat {
  border: 0;
  border-right: 1px solid var(--rv-border);
  background: var(--rv-soft);
  padding: 0 14px;
  font-size: 13px;
  color: var(--rv-dark);
  max-width: 170px;
  cursor: pointer;
}
.rv-search-input {
  border: 0;
  flex: 1 1 auto;
  padding: 11px 14px;
  font-size: 14px;
  outline: none;
  min-width: 60px;
}
.rv-search-btn {
  border: 0;
  background: var(--rv-dark);
  color: #fff;
  padding: 0 20px;
  cursor: pointer;
  font-size: 16px;
}
.rv-search-btn:hover {
  background: var(--rv-ink);
  color: #fff;
}

.rv-header-actions {
  display: flex;
  align-items: center;
  gap: 22px;
}
.rv-icon-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--rv-ink);
}
.rv-icon-link > i {
  font-size: 24px;
}
.rv-icon-text {
  font-size: 12px;
  font-weight: 600;
}
.rv-badge,
.rv-cart-count {
  position: absolute;
  top: -8px;
  left: 16px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--rv-yellow);
  color: var(--rv-ink);
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.rv-cart-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  position: relative;
  color: var(--rv-ink);
}
.rv-cart-toggle > i {
  font-size: 24px;
}
.rv-cart-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.rv-cart-text small {
  font-size: 11px;
  color: var(--rv-muted);
}
.rv-cart-text b {
  font-size: 14px;
}
.rv-cart-dropdown {
  right: 0;
  left: auto;
  width: 320px;
  padding: 16px;
}
.rv-cart-empty {
  color: var(--rv-muted);
  text-align: center;
  margin: 10px 0;
}
.rv-cart-lines {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  max-height: 280px;
  overflow: auto;
}
.rv-cart-lines li {
  display: flex;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--rv-border);
}
.rv-cart-lines img {
  width: 54px;
  height: 54px;
  object-fit: contain;
  border: 1px solid var(--rv-border);
  border-radius: 4px;
}
.rv-cart-line-info {
  display: flex;
  flex-direction: column;
  font-size: 13px;
}
.rv-cart-line-info a {
  color: var(--rv-dark);
  font-weight: 600;
}
.rv-cart-line-info span {
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-cart-foot {
  display: flex;
  justify-content: space-between;
  font-weight: 700;
  padding: 8px 0;
}
.rv-cart-actions {
  display: flex;
  gap: 8px;
}
.rv-cart-actions .btn {
  flex: 1;
  padding: 9px 10px;
  font-size: 12px;
}

/* Nav bar */
.rv-nav {
  background: #fff;
  border-bottom: 1px solid var(--rv-border);
  position: relative;
  z-index: 30;
}
.rv-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rv-menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-menu > li {
  position: relative;
}
.rv-menu > li > a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 14px 16px;
  color: var(--rv-ink);
  font:
    700 13px/1 "Lato",
    sans-serif;
  text-transform: uppercase;
}
.rv-menu > li > a i {
  font-size: 11px;
}
.rv-menu > li:hover > a {
  background: rgba(0, 0, 0, 0.08);
}
.rv-submenu {
  min-width: 210px;
  /* The Categories submenu is backend-driven and runs to dozens of entries,
     so cap it and scroll the overflow instead of spilling past the viewport. */
  max-height: 70vh;
  overflow-y: auto;
}
.rv-submenu::-webkit-scrollbar {
  width: 8px;
}
.rv-submenu::-webkit-scrollbar-thumb {
  background: var(--rv-border);
  border-radius: 8px;
}
.rv-menu li.rv-has-dropdown:hover > .rv-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.rv-nav-hotline {
  font-size: 13px;
  color: var(--rv-ink);
}
.rv-nav-hotline b {
  font-weight: 800;
}

/* Active garage vehicle, kept visible below the main navigation on every page. */
.rv-selected-vehicle {
  background: #fff9d9;
  border-bottom: 1px solid #f0dfa0;
  color: var(--rv-dark);
}
.rv-selected-vehicle-inner {
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.rv-selected-vehicle-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-selected-vehicle-copy {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 7px;
}
.rv-selected-vehicle-copy > span {
  color: var(--rv-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.rv-selected-vehicle-copy > strong {
  color: var(--rv-ink);
  font-size: 14px;
  white-space: nowrap;
}
.rv-selected-vehicle-copy > small {
  color: var(--rv-body);
  font-size: 12px;
  margin-left: 4px;
}
.rv-selected-vehicle-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.rv-selected-vehicle-actions a,
.rv-selected-vehicle-actions button {
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: var(--rv-dark);
  cursor: pointer;
  font:
    700 12px/1 "Lato",
    sans-serif;
  padding: 7px 9px;
  text-transform: uppercase;
}
.rv-selected-vehicle-actions a {
  background: var(--rv-yellow);
}
.rv-selected-vehicle-actions a:hover,
.rv-selected-vehicle-actions button:hover {
  background: var(--rv-ink);
  color: #fff;
}

/* Mobile drawer */
.rv-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: 0.25s;
  z-index: 998;
}
.rv-drawer-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}
.rv-drawer {
  position: fixed;
  top: 0;
  left: 0;
  width: 300px;
  max-width: 86vw;
  height: 100%;
  background: #fff;
  transform: translateX(-100%);
  transition: transform 0.28s ease;
  z-index: 999;
  display: flex;
  flex-direction: column;
}
.rv-drawer.is-open {
  transform: translateX(0);
}
.rv-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  background: var(--rv-yellow);
  font-weight: 800;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-drawer-head button {
  background: none;
  border: 0;
  font-size: 24px;
  cursor: pointer;
  line-height: 1;
}
.rv-drawer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1;
}
.rv-drawer-menu > li {
  border-bottom: 1px solid var(--rv-border);
}
.rv-drawer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rv-drawer-row a {
  flex: 1;
  padding: 13px 18px;
  color: var(--rv-dark);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 13px;
}
.rv-drawer-expand {
  background: none;
  border: 0;
  padding: 13px 18px;
  cursor: pointer;
  color: var(--rv-muted);
}
.rv-drawer-sub {
  list-style: none;
  margin: 0;
  padding: 0 0 8px;
  background: var(--rv-soft);
}
.rv-drawer-sub a {
  display: block;
  padding: 9px 30px;
  font-size: 13px;
  color: #555;
}
.rv-drawer-foot {
  padding: 16px 18px;
  border-top: 1px solid var(--rv-border);
}
.rv-drawer-foot a {
  color: var(--rv-dark);
  font-weight: 600;
}

/* ==========================================================================
   Section title
   ========================================================================== */
.rv-section-title {
  position: relative;
  display: flex;
  align-items: center;
  margin: 0 0 24px;
  border-bottom: 2px solid var(--rv-border);
  padding-bottom: 12px;
}
.rv-section-title h2 {
  font-size: 22px;
  font-weight: 800;
  margin: 0;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 12px;
}
.rv-section-title h2:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -14px;
  width: 60px;
  height: 3px;
  background: var(--rv-yellow);
}
.rv-section-more {
  margin-left: auto;
  font-size: 13px;
  font-weight: 700;
  color: var(--rv-dark);
  text-transform: uppercase;
}
.rv-section-more:hover {
  color: var(--rv-yellow-ink);
}

/* Home section spacing */
.rv-services,
.rv-tabs,
.rv-categories,
.rv-collection-carousel,
.rv-adbanner,
.rv-brands,
.rv-testimonials,
.rv-blog {
  padding: 42px 0;
}
.rv-collection-carousel.rv-has-bg {
  background: var(--rv-soft);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.rv-hero {
  padding: 24px 0;
}
.rv-dept {
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  height: 100%;
  /* Head stays put; the list below scrolls so a long category list never
     stretches the hero row. */
  display: flex;
  flex-direction: column;
}
.rv-dept-head {
  background: var(--rv-ink);
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 14px;
  padding: 15px 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-dept-list {
  list-style: none;
  margin: 0;
  padding: 6px 0;
  /* Cap to roughly the hero height (min-height 380 minus the head) and scroll
     the overflow, so the full category list stays accessible without dragging
     the row down. flex + min-height:0 lets it also fill a taller hero. */
  flex: 1 1 auto;
  min-height: 0;
  max-height: 330px;
  overflow-y: auto;
}
.rv-dept-list::-webkit-scrollbar {
  width: 8px;
}
.rv-dept-list::-webkit-scrollbar-thumb {
  background: var(--rv-border);
  border-radius: 8px;
}
.rv-dept-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  color: #4a4f55;
  font-size: 14px;
}
.rv-dept-list a i {
  width: 20px;
  text-align: center;
  color: var(--rv-yellow-ink);
}
.rv-dept-list a:hover {
  background: var(--rv-soft);
  color: var(--rv-ink);
  padding-left: 22px;
}
.rv-hero-slider {
  border-radius: 8px;
  overflow: hidden;
  height: 100%;
}
.rv-slide {
  min-height: 380px;
  height: 100%;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
}
.rv-slide-content {
  padding: 0 8%;
  max-width: 60%;
}
.rv-slide-heading {
  font-size: 20px;
  font-weight: 700;
  color: var(--rv-dark);
  margin: 0;
}
.rv-slide-subheading {
  font-size: 40px;
  font-weight: 900;
  color: var(--rv-ink);
  margin: 6px 0;
  line-height: 1.1;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-slide-desc {
  font-size: 18px;
  color: var(--rv-body);
  margin-bottom: 20px;
}
.rv-hero-slider .swiper-button-next,
.rv-hero-slider .swiper-button-prev {
  opacity: 0;
  transition: 0.2s;
}
.rv-hero-slider:hover .swiper-button-next,
.rv-hero-slider:hover .swiper-button-prev {
  opacity: 1;
}

/* ==========================================================================
   Services
   ========================================================================== */
.rv-services {
  padding: 30px 0;
}
.rv-services-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 22px;
}
.rv-service {
  flex: 1 1 200px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 6px 10px;
  border-right: 1px solid var(--rv-border);
}
.rv-service:last-child {
  border-right: 0;
}
.rv-service > i {
  font-size: 34px;
  color: var(--rv-yellow-ink);
}
.rv-service-text h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
}
.rv-service-text p {
  margin: 2px 0 0;
  font-size: 12.5px;
  color: var(--rv-muted);
}

/* ==========================================================================
   Featured categories
   ========================================================================== */
.rv-category-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 18px 10px;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  margin-bottom: 24px;
  transition: 0.2s;
  background: #fff;
}
.rv-category-card:hover {
  box-shadow: var(--rv-shadow-sm);
  border-color: transparent;
  transform: translateY(-3px);
}
/* Bootstrap's floated columns snag on taller neighbours (long Georgian names
   wrap to 2-3 lines) and leave holes in the grid. A wrapping flex row keeps
   every row aligned and gives all cards in a row the same height. */
.rv-categories .row {
  display: flex;
  flex-wrap: wrap;
}
.rv-categories .row::before,
.rv-categories .row::after {
  display: none;
}
.rv-categories .row > [class*='col-'] {
  display: flex;
  margin-bottom: 24px;
}
.rv-categories .rv-category-card {
  flex: 1 1 auto;
  width: 100%;
  margin-bottom: 0;
}
.rv-category-img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--rv-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.rv-category-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rv-category-name {
  font-weight: 700;
  color: var(--rv-ink);
  font-size: 14px;
}
.rv-category-shop {
  font-size: 12px;
  color: var(--rv-yellow-ink);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   Tabs (home)
   ========================================================================== */
.rv-tabs-head {
  flex-wrap: wrap;
  gap: 10px;
}
.rv-tabs-nav {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 0 auto;
  padding: 0;
}
.rv-tabs-nav button {
  background: none;
  border: 0;
  cursor: pointer;
  font:
    700 13px "Lato",
    sans-serif;
  text-transform: uppercase;
  color: var(--rv-muted);
  padding: 6px 12px;
  border-radius: 4px;
}
.rv-tabs-nav button.is-active,
.rv-tabs-nav button:hover {
  color: var(--rv-ink);
  background: var(--rv-yellow);
}

/* ==========================================================================
   Product card (grid + carousel)
   ========================================================================== */
.product-thumb {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  transition:
    box-shadow 0.2s,
    border-color 0.2s,
    transform 0.2s;
}
.product-thumb:hover {
  box-shadow: var(--rv-shadow);
  border-color: transparent;
}
.product-layout {
  height: 100%;
}
.product-thumb .item,
.product-thumb .item-inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
}
.caption-top {
  padding: 16px 16px 6px;
  order: 0;
}
.caption-top .product-name {
  font-size: 14px;
  margin: 0 0 3px;
  line-height: 1.35;
  min-height: 38px;
  font-weight: 700;
}
.caption-top .product-name a {
  color: var(--rv-ink);
}
.caption-top .product-name a:hover {
  color: var(--rv-yellow-ink);
}
.manufacture-product {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--rv-dark);
}
.manufacture-product a {
  color: var(--rv-dark);
}
/* The base theme keeps the brand hidden (opacity: 0) until the card is
   hovered in grid view, and renders it in a faint grey. Make the manufacturer
   name always visible and prominent so shoppers can see it at a glance. */
.grid-style .item-inner .caption-top .manufacture-product {
  opacity: 1;
  margin-bottom: 6px;
}
/* Brand shown as a Revup-yellow pill. */
.item-inner .caption-top .manufacture-product a {
  display: inline-block;
  max-width: 100%;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--rv-yellow);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.4px;
  line-height: 1.4;
  color: var(--rv-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: top;
  transition: background 0.2s ease, color 0.2s ease;
}
.item-inner .caption-top .manufacture-product a:hover {
  background: var(--rv-ink);
  color: #fff;
}
.images-container {
  position: relative;
  padding: 4px 16px 8px;
}
.product-image {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  background: #fff;
}
.product-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 6px;
}
.images-container .img-r {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.item-inner:hover .images-container .img-r {
  opacity: 1;
}
.box-label {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.label-product {
  border-radius: 3px;
  font:
    700 11px/1 "Lato",
    sans-serif;
  padding: 5px 8px;
  color: #fff;
  text-transform: uppercase;
}
.label-product span {
  display: inline;
}
.label_new {
  background: #2ecc71;
}
/* NEW / USED condition tag on top of product photos */
.rv-condition {
  letter-spacing: 0.04em;
}
.rv-condition-new {
  background: #2ecc71;
  color: #fff;
}
.rv-condition-used {
  background: var(--rv-dark);
  color: #fff;
}
.rv-gallery-main > .rv-condition,
.rv-condition-wrap > .rv-condition {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
  font-size: 12px;
  padding: 6px 10px;
}
.rv-condition-wrap {
  position: relative;
}
.label_sale {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.l_sold {
  background: var(--rv-muted);
}

/* Action links */
.item-inner .images-container .action-links {
  position: absolute;
  top: 14px;
  right: 20px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(10px);
  transition: 0.25s;
  z-index: 4;
}
.item-inner:hover .images-container .action-links {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}
.item-inner .action-links button {
  display: block;
  width: 38px;
  height: 38px;
  line-height: 38px;
  margin-bottom: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: var(--rv-shadow-sm);
  color: var(--rv-dark);
  cursor: pointer;
  text-align: center;
}
.item-inner .action-links button span {
  display: none;
}
.item-inner .action-links button:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.item-inner .action-links button.btn-wishlist.is-active {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.item-inner .action-links button:before,
.item-inner button.btn-quickview:before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-size: 15px !important;
}
.item-inner button.btn-quickview:before {
  content: "\f002" !important;
}
.item-inner .action-links button.btn-wishlist:before {
  content: "\f004" !important;
}
.item-inner .action-links button.btn-compare:before {
  content: "\f06e" !important;
}

/* Caption / price / cart */
.item-inner .caption {
  padding: 4px 16px 16px;
  margin-top: auto;
  text-align: center;
  background: transparent;
}
.item-inner .caption .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ratings {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 6px;
  min-height: 18px;
}
.rv-review-count {
  font-size: 12px;
  color: var(--rv-muted);
}
.price-box {
  margin-bottom: 8px;
}
.price-box p {
  display: inline-block;
  margin: 0;
}
.price-box .price {
  font-size: 17px;
  font-weight: 800;
  color: var(--rv-ink);
  font-family: "Lato", "FiraGO", sans-serif;
}
.price-box .special-price .price {
  color: #e4573d;
}
.price-box .old-price {
  margin-left: 6px;
}
.price-box .old-price .price {
  font-size: 13px;
  font-weight: 400;
  color: var(--rv-muted);
  text-decoration: line-through;
}
.item-inner .caption .inner .btn-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 4px;
  background: var(--rv-soft);
  color: var(--rv-ink);
  border: 0;
  padding: 10px 14px;
  border-radius: var(--rv-radius);
  font:
    700 12.5px "Lato",
    sans-serif;
  text-transform: uppercase;
  cursor: pointer;
  transition: 0.2s;
}
.item-inner .caption .inner .btn-cart span {
  display: inline;
}
.item-inner .caption .inner .btn-cart:before {
  content: "\f07a";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 13px;
}
.item-inner .caption .inner .btn-cart:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}
.item-inner .caption .inner .btn-cart.disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Countdown on cards / product */
.box-countdown {
  margin-top: 10px;
}
.box-countdown .text-hurryup {
  font-size: 12px;
  color: var(--rv-muted);
  margin: 0 0 4px;
}
.rv-countdown {
  display: flex;
  gap: 6px;
  justify-content: center;
}
.rv-countdown-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--rv-ink);
  color: #fff;
  border-radius: 4px;
  padding: 5px 7px;
  min-width: 38px;
}
.rv-countdown-cell b {
  font-size: 15px;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-countdown-cell small {
  font-size: 9px;
  text-transform: uppercase;
  color: var(--rv-yellow);
}

/* Grid layout */
.rv-product-grid.row {
  display: flex;
  flex-wrap: wrap;
}
.rv-product-grid > [class*="col-"] {
  display: flex;
  margin-bottom: 24px;
}
.rv-empty {
  padding: 40px 0;
  text-align: center;
  color: var(--rv-muted);
}

/* List view */
.rv-product-grid.rv-list .item-inner {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-areas: "img top" "img desc" "img cap";
  gap: 2px 26px;
  padding: 18px;
}
.rv-list .images-container {
  grid-area: img;
  padding: 0;
}
.rv-list .caption-top {
  grid-area: top;
  padding: 0;
}
.rv-list .caption-top .product-name {
  min-height: 0;
  font-size: 17px;
}
.rv-list .rv-card-desc {
  grid-area: desc;
  color: var(--rv-body);
  font-size: 13.5px;
  margin: 8px 0;
  line-height: 1.6;
}
.rv-list .caption {
  grid-area: cap;
  padding: 0;
  text-align: left;
  margin-top: 6px;
}
.rv-list .caption .inner {
  align-items: flex-start;
}
.rv-list .ratings {
  justify-content: flex-start;
}
.rv-list .item-inner .caption .inner .btn-cart {
  width: auto;
  padding: 10px 22px;
}

/* Carousel */
.rv-product-carousel {
  padding: 6px 0 44px;
}
.rv-product-carousel .swiper-slide {
  height: auto;
  display: flex;
  padding: 8px;
}
.rv-product-carousel .product-layout {
  width: 100%;
}
.swiper-button-next,
.swiper-button-prev {
  color: var(--rv-ink) !important;
  background: #fff;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  box-shadow: var(--rv-shadow-sm);
}
.swiper-button-next:after,
.swiper-button-prev:after {
  font-size: 15px !important;
  font-weight: 800;
}
.swiper-pagination-bullet-active {
  background: var(--rv-yellow-ink) !important;
}

/* ==========================================================================
   Ad banners
   ========================================================================== */
.rv-adbanner-card {
  position: relative;
  min-height: 220px;
  border-radius: 8px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}
.rv-adbanner-card:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.92),
    rgba(255, 255, 255, 0.2)
  );
}
.rv-adbanner-body {
  position: relative;
  padding: 30px;
}
.rv-adbanner-heading {
  font-size: 15px;
  color: var(--rv-body);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.rv-adbanner-desc {
  font-size: 26px;
  font-weight: 900;
  color: var(--rv-ink);
  margin: 6px 0 14px;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-adbanner-link {
  font-weight: 800;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--rv-ink);
  border-bottom: 2px solid var(--rv-yellow);
  padding-bottom: 3px;
}

/* ==========================================================================
   Brands
   ========================================================================== */
.rv-brands {
  border-top: 1px solid var(--rv-border);
  border-bottom: 1px solid var(--rv-border);
}
.rv-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 70px;
  filter: grayscale(1);
  opacity: 0.65;
  transition: 0.2s;
}
.rv-brand:hover {
  filter: none;
  opacity: 1;
}

/* ==========================================================================
   Testimonials
   ========================================================================== */
.rv-testimonial {
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 26px;
  margin: 4px;
  height: calc(100% - 8px);
}
.rv-testimonial-body {
  font-style: italic;
  color: var(--rv-body);
  line-height: 1.7;
  margin: 0 0 18px;
}
.rv-testimonial-author {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
}
.rv-testimonial-author img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
}
.rv-testimonial-author h4 {
  margin: 0;
  font-size: 15px;
}
.rv-testimonial-author span {
  color: var(--rv-yellow-ink);
  font-size: 13px;
}
.rv-testimonials .swiper {
  padding-bottom: 44px;
}

/* ==========================================================================
   Blog
   ========================================================================== */
.rv-blog-card {
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 24px;
  height: calc(100% - 24px);
}
.rv-blog-img {
  display: block;
  position: relative;
}
.rv-blog-img img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}
.rv-blog-date {
  position: absolute;
  left: 12px;
  bottom: 12px;
  background: var(--rv-yellow);
  color: var(--rv-ink);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
}
.rv-blog-title {
  font-size: 15px;
  margin: 14px 14px 8px;
  line-height: 1.4;
}
.rv-blog-title a {
  color: var(--rv-ink);
}
.rv-blog-title a:hover {
  color: var(--rv-yellow-ink);
}
.rv-blog-excerpt {
  color: var(--rv-body);
  font-size: 13px;
  margin: 0 14px 12px;
  line-height: 1.6;
}
.rv-blog-more {
  display: inline-block;
  margin: 0 14px 16px;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  color: var(--rv-ink);
}
.rv-blog-more:hover {
  color: var(--rv-yellow-ink);
}

/* ==========================================================================
   Breadcrumb + generic page bits
   ========================================================================== */
.rv-breadcrumb {
  background: var(--rv-soft);
  border-bottom: 1px solid var(--rv-border);
}
.rv-breadcrumb ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 12px 0;
  font-size: 13px;
}
.rv-breadcrumb li:not(:first-child):before {
  content: "/";
  margin-right: 8px;
  color: var(--rv-muted);
}
.rv-breadcrumb a {
  color: var(--rv-body);
}
.rv-breadcrumb li.is-active span {
  color: var(--rv-ink);
  font-weight: 600;
}
.rv-page-title {
  font-size: 28px;
  font-weight: 800;
  margin: 26px 0 18px;
}
.rv-page-lead {
  color: var(--rv-body);
  margin: -8px 0 24px;
  font-size: 15px;
}
.rv-page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ==========================================================================
   Collection page
   ========================================================================== */
.rv-collection-hero {
  background-size: cover;
  background-position: center;
  position: relative;
}
.rv-collection-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.94),
    rgba(255, 255, 255, 0.55)
  );
}
.rv-collection-hero .container {
  position: relative;
  padding: 40px 15px;
}
.rv-collection-hero h1 {
  font-size: 30px;
  font-weight: 900;
  margin: 0 0 6px;
}
.rv-collection-hero p {
  color: var(--rv-body);
  max-width: 640px;
  margin: 0;
}
.rv-collection-body {
  padding: 30px 0 50px;
}
.rv-filter {
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 16px 18px;
  margin-bottom: 20px;
}
.rv-filter-title {
  font-size: 15px;
  font-weight: 800;
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--rv-border);
  text-transform: uppercase;
}
.rv-filter-cats,
.rv-filter-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-filter-cats li a {
  display: block;
  padding: 6px 0;
  color: var(--rv-body);
  font-size: 14px;
  /* The theme's global `a { transition: all 300ms }` made the hover feel laggy
     (and font-weight can't animate); fade only the colour, quickly. */
  transition: color 0.15s ease;
}
.rv-filter-cats li.is-active a,
.rv-filter-cats li a:hover {
  color: var(--rv-yellow-ink);
}
.rv-filter-cats li.is-active a {
  font-weight: 600;
}
.rv-filter-list li {
  padding: 5px 0;
}
/* Long, searchable lists (real categories / brands) scroll instead of growing. */
.rv-filter-search + ul {
  max-height: 260px;
  overflow-y: auto;
}
.rv-filter-list label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--rv-body);
  cursor: pointer;
}
.rv-filter-list label em {
  color: var(--rv-muted);
  font-style: normal;
  margin-left: auto;
  font-size: 12px;
}
.rv-filter-stock {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  cursor: pointer;
}
.rv-sidebar-promo {
  border-radius: 8px;
  overflow: hidden;
  min-height: 320px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  position: relative;
}
.rv-sidebar-promo:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.55), transparent);
}
.rv-sidebar-promo > div {
  position: relative;
  padding: 20px;
  color: #fff;
}
.rv-sidebar-promo span {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 12px;
}
.rv-sidebar-promo b {
  display: block;
  font-size: 24px;
  font-weight: 900;
  margin: 4px 0 12px;
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.rv-toolbar-left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.rv-view-toggle button {
  background: none;
  border: 1px solid var(--rv-border);
  width: 34px;
  height: 34px;
  border-radius: 4px;
  cursor: pointer;
  color: var(--rv-muted);
  margin-right: 4px;
}
.rv-view-toggle button.is-active {
  background: var(--rv-ink);
  color: #fff;
  border-color: var(--rv-ink);
}
.rv-result-count {
  font-size: 13px;
  color: var(--rv-muted);
}
.rv-toolbar-right label {
  font-size: 13px;
  color: var(--rv-muted);
  display: flex;
  align-items: center;
  gap: 8px;
}
.rv-toolbar-right select {
  border: 1px solid var(--rv-border);
  border-radius: 4px;
  padding: 7px 10px;
  font-size: 13px;
}
.rv-pagination {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-top: 30px;
}
.rv-pagination button {
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--rv-border);
  background: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 700;
  color: var(--rv-dark);
}
.rv-pagination button.is-active {
  background: var(--rv-yellow);
  border-color: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-pagination button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ==========================================================================
   Product detail
   ========================================================================== */
.rv-product-main {
  padding: 30px 0;
}
.rv-gallery-main {
  position: relative;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.rv-gallery-main img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
  padding: 20px;
}
.rv-gallery-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: #e4573d;
  color: #fff;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 4px;
  z-index: 2;
}
.rv-gallery-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.rv-gallery-thumb {
  width: 74px;
  height: 74px;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
  padding: 0;
}
.rv-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}
.rv-gallery-thumb.is-active {
  border-color: var(--rv-yellow);
}
.rv-product-title {
  font-size: 26px;
  font-weight: 800;
  margin: 0 0 10px;
}
.rv-product-subline {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rv-border);
}
.rv-product-subline .ratings {
  justify-content: flex-start;
  margin: 0;
}
.rv-product-vendor {
  font-size: 13px;
  color: var(--rv-muted);
}
.rv-product-price {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 16px;
}
.rv-product-price .price-box .price {
  font-size: 28px;
}
.rv-stock {
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rv-stock.is-in {
  color: #27ae60;
}
.rv-stock.is-out {
  color: #e4573d;
}
.rv-product-summary {
  color: var(--rv-body);
  line-height: 1.7;
  margin-bottom: 18px;
}
.rv-product-buy {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 18px 0;
}
.rv-wish {
  padding: 11px 14px;
}
.rv-wish.is-active {
  background: var(--rv-yellow);
  border-color: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-product-meta {
  list-style: none;
  margin: 18px 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--rv-border);
  font-size: 13.5px;
}
.rv-product-meta li {
  margin-bottom: 7px;
  color: var(--rv-body);
}
.rv-product-meta li span {
  color: var(--rv-ink);
  font-weight: 700;
  margin-right: 6px;
}
.rv-product-share {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}
.rv-product-share span {
  font-weight: 700;
  font-size: 13px;
}
.rv-product-share a {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--rv-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--rv-dark);
}
.rv-product-share a:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}

.rv-product-tabs {
  padding: 20px 0 40px;
}
.rv-tabs-bar {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 -1px;
  padding: 0;
  border-bottom: 2px solid var(--rv-border);
}
.rv-tabs-bar button {
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  padding: 12px 18px;
  font:
    700 14px "Lato",
    sans-serif;
  text-transform: uppercase;
  color: var(--rv-muted);
  cursor: pointer;
}
.rv-tabs-bar button.is-active {
  color: var(--rv-ink);
  border-bottom-color: var(--rv-yellow);
}
.rv-tabs-panel {
  padding: 24px 4px;
  color: var(--rv-body);
  line-height: 1.8;
}
/* Seller-written plain text: keep its line breaks, wrap long words/URLs. */
.rv-tab-desc p,
.rv-qv-desc,
.rv-card-desc,
.rv-product-short-desc {
  white-space: pre-line;
  overflow-wrap: anywhere;
}
/* Description shown beside the gallery, between the price and the buy row. */
.rv-product-short-desc {
  margin: 0 0 18px;
  color: var(--rv-body);
  line-height: 1.7;
  /* Long texts are cut here; the Description tab below has the full text. */
  display: -webkit-box;
  -webkit-line-clamp: 8;
  line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rv-card-desc {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rv-tab-desc ul {
  margin: 14px 0 0;
  padding-left: 18px;
}
.rv-tab-desc li {
  margin-bottom: 6px;
}
.rv-spec-table {
  width: 100%;
  border-collapse: collapse;
}
.rv-spec-table th,
.rv-spec-table td {
  text-align: left;
  padding: 11px 14px;
  border: 1px solid var(--rv-border);
  font-size: 14px;
}
.rv-spec-table th {
  background: var(--rv-soft);
  width: 220px;
  color: var(--rv-ink);
}
.rv-reviews-summary {
  margin-bottom: 20px;
}
.rv-reviews-score {
  display: flex;
  align-items: center;
  gap: 12px;
}
.rv-reviews-score b {
  font-size: 40px;
  font-family: "Lato", "FiraGO", sans-serif;
  color: var(--rv-ink);
}
.rv-review {
  border-top: 1px solid var(--rv-border);
  padding: 16px 0;
}
.rv-review h5 {
  margin: 8px 0 4px;
  color: var(--rv-ink);
}
.rv-review-form {
  margin-top: 20px;
}
.rv-review-form textarea,
.rv-comment-form textarea,
.rv-contact-form textarea,
.rv-contact-form input,
.rv-comment-form input,
.rv-details-form input,
.rv-auth-card input,
.rv-search-page-form input,
.rv-filter-search,
.rv-coupon input {
  width: 100%;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  padding: 11px 14px;
  font-size: 14px;
  font-family: inherit;
  margin-bottom: 12px;
}
.rv-review-form textarea:focus,
.rv-contact-form input:focus,
.rv-contact-form textarea:focus,
.rv-auth-card input:focus {
  outline: none;
  border-color: var(--rv-yellow);
}

/* ==========================================================================
   Cart
   ========================================================================== */
.rv-cart-container {
  padding-bottom: 50px;
}
.rv-cart-empty-state {
  text-align: center;
  padding: 70px 0;
}
.rv-cart-empty-state > i {
  font-size: 60px;
  color: var(--rv-border);
  margin-bottom: 18px;
}
.rv-cart-empty-state h2 {
  margin: 0 0 8px;
}
.rv-cart-empty-state p {
  color: var(--rv-muted);
  margin-bottom: 20px;
}
.rv-cart-table {
  width: 100%;
  border-collapse: collapse;
}
.rv-cart-table thead th {
  text-align: left;
  padding: 12px;
  border-bottom: 2px solid var(--rv-border);
  font-size: 12px;
  text-transform: uppercase;
  color: var(--rv-muted);
}
.rv-cart-table td {
  padding: 16px 12px;
  border-bottom: 1px solid var(--rv-border);
  vertical-align: middle;
}
.rv-cart-col-product {
  display: flex;
  align-items: center;
  gap: 14px;
}
.rv-cart-thumb img {
  width: 70px;
  height: 70px;
  object-fit: contain;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
}
.rv-cart-line-meta {
  display: flex;
  flex-direction: column;
}
.rv-cart-line-meta a {
  font-weight: 700;
  color: var(--rv-ink);
}
.rv-cart-line-meta small {
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-cart-line-total {
  font-weight: 800;
  color: var(--rv-ink);
}
.rv-cart-remove {
  background: none;
  border: 0;
  color: var(--rv-muted);
  font-size: 18px;
  cursor: pointer;
}
.rv-cart-remove:hover {
  color: #e4573d;
}
.rv-cart-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0;
  flex-wrap: wrap;
}
.rv-coupon {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.rv-coupon input {
  margin: 0;
  max-width: 260px;
}
.rv-coupon-error {
  color: #e4573d;
  font-size: 13px;
}
.rv-coupon-ok {
  color: #27ae60;
  font-size: 13px;
}
.rv-cart-summary {
  background: var(--rv-soft);
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 22px;
  position: sticky;
  top: 20px;
}
.rv-cart-summary h3 {
  margin: 0 0 16px;
}
.rv-cart-summary-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  color: var(--rv-body);
}
.rv-cart-discount strong {
  color: #27ae60;
}
.rv-cart-summary-total {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  margin-top: 6px;
  border-top: 2px solid var(--rv-border);
  font-size: 18px;
  font-weight: 800;
  color: var(--rv-ink);
}
.rv-cart-ship-hint {
  font-size: 12.5px;
  color: var(--rv-muted);
  margin: 6px 0 14px;
}
.rv-cart-ship-hint.rv-ok {
  color: #27ae60;
}
.rv-checkout {
  width: 100%;
}
.rv-checkout-note {
  font-size: 12.5px;
  color: var(--rv-muted);
  margin-top: 12px;
}
.rv-cart-trust {
  text-align: center;
  font-size: 12px;
  color: var(--rv-muted);
  margin-top: 14px;
}

/* ==========================================================================
   Options + quantity
   ========================================================================== */
.rv-options {
  margin: 6px 0 14px;
}
.rv-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.rv-option-label {
  font-weight: 700;
  color: var(--rv-ink);
  min-width: 70px;
}
.rv-option-values {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.rv-option-value {
  border: 1px solid var(--rv-border);
  background: #fff;
  border-radius: 5px;
  padding: 8px 14px;
  cursor: pointer;
  font-size: 13px;
  color: var(--rv-dark);
}
.rv-option-value.is-selected {
  border-color: var(--rv-ink);
  background: var(--rv-ink);
  color: #fff;
}
.rv-option-value:hover {
  border-color: var(--rv-ink);
}
.rv-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  overflow: hidden;
}
.rv-qty-btn {
  width: 38px;
  height: 42px;
  background: var(--rv-soft);
  border: 0;
  font-size: 18px;
  cursor: pointer;
  color: var(--rv-dark);
}
.rv-qty-btn:hover {
  background: var(--rv-yellow);
}
.rv-qty-input {
  width: 48px;
  height: 42px;
  border: 0;
  border-left: 1px solid var(--rv-border);
  border-right: 1px solid var(--rv-border);
  text-align: center;
  font-size: 14px;
  -moz-appearance: textfield;
}
.rv-qty-input::-webkit-outer-spin-button,
.rv-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ==========================================================================
   Quick view modal
   ========================================================================== */
.rv-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(20, 21, 27, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
  animation: rvfade 0.2s ease;
}
@keyframes rvfade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.rv-modal {
  background: #fff;
  border-radius: 10px;
  max-width: 900px;
  width: 100%;
  max-height: 90vh;
  overflow: auto;
  position: relative;
  padding: 28px;
}
.rv-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: none;
  border: 0;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--rv-muted);
}
.rv-modal-close:hover {
  color: var(--rv-ink);
}
.rv-qv {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.rv-qv-main {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
}
.rv-qv-thumbs {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.rv-qv-thumb {
  width: 60px;
  height: 60px;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
  padding: 0;
}
.rv-qv-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 3px;
}
.rv-qv-thumb.is-active {
  border-color: var(--rv-yellow);
}
.rv-qv-title {
  font-size: 22px;
  margin: 0 0 8px;
}
.rv-qv-title a {
  color: var(--rv-ink);
}
.rv-qv-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
.rv-qv-meta .ratings {
  margin: 0;
}
.rv-qv-vendor {
  font-size: 13px;
  color: var(--rv-muted);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* Make the manufacturer stand out in the Quick View popup with an on-brand
   yellow badge instead of the faint grey inline text. */
.rv-qv-vendor strong {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--rv-dark);
  background: var(--rv-yellow);
  padding: 2px 8px;
  border-radius: 3px;
}
.rv-qv-desc {
  color: var(--rv-body);
  line-height: 1.7;
  margin: 12px 0;
  font-size: 14px;
}
.rv-qv-sku {
  font-size: 12.5px;
  color: var(--rv-muted);
}
.rv-qv-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0;
  flex-wrap: wrap;
}
.rv-qv-wishlist.is-active {
  background: var(--rv-yellow);
  border-color: var(--rv-yellow);
  color: var(--rv-ink);
}
.rv-qv-details {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--rv-ink);
  border-bottom: 2px solid var(--rv-yellow);
  padding-bottom: 3px;
}

/* ==========================================================================
   Collections list / tiles
   ========================================================================== */
.rv-collections-list {
  padding-bottom: 50px;
}
.rv-collection-tile {
  display: block;
  text-align: center;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 24px;
  background: #fff;
  transition: 0.2s;
}
.rv-collection-tile:hover {
  box-shadow: var(--rv-shadow-sm);
  transform: translateY(-3px);
}
.rv-collection-tile img {
  width: 100%;
  height: 150px;
  box-sizing: border-box;
  object-fit: contain;
  padding: 8px;
  background: var(--rv-soft);
}
.rv-collection-tile h3 {
  font-size: 16px;
  margin: 12px 0 2px;
  color: var(--rv-ink);
}
.rv-collection-tile span {
  display: block;
  color: var(--rv-muted);
  font-size: 12.5px;
  margin-bottom: 14px;
}
/* Wrapping flex row instead of floats: titles of different length (Georgian
   names wrap) no longer leave holes in the grid. */
.rv-collections-list .row {
  display: flex;
  flex-wrap: wrap;
}
.rv-collections-list .row::before,
.rv-collections-list .row::after {
  display: none;
}
.rv-collections-list .row > [class*='col-'] {
  display: flex;
  margin-bottom: 24px;
}
.rv-collections-list .rv-collection-tile {
  flex: 1 1 auto;
  width: 100%;
  margin-bottom: 0;
}

/* ==========================================================================
   Blog page + widgets
   ========================================================================== */
.rv-blog-page,
.rv-article-page {
  padding-bottom: 50px;
}
.rv-blog-list {
  padding-top: 26px;
}
.rv-blog-post {
  display: flex;
  gap: 20px;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 24px;
  background: #fff;
}
.rv-blog-post-img {
  flex: 0 0 260px;
}
.rv-blog-post-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 200px;
}
.rv-blog-post-body {
  padding: 20px 20px 20px 0;
}
.rv-blog-meta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--rv-muted);
  margin-bottom: 10px;
}
.rv-blog-post-body h2 {
  font-size: 20px;
  margin: 0 0 10px;
}
.rv-blog-post-body h2 a {
  color: var(--rv-ink);
}
.rv-blog-post-body p {
  color: var(--rv-body);
  line-height: 1.7;
  margin-bottom: 14px;
}
.rv-blog-sidebar {
  padding-top: 26px;
}
.rv-widget {
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 18px;
  margin-bottom: 22px;
}
.rv-widget h4 {
  margin: 0 0 14px;
  font-size: 15px;
  text-transform: uppercase;
}
.rv-widget-posts {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-widget-posts li {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
}
.rv-widget-thumb img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 6px;
}
.rv-widget-posts a {
  color: var(--rv-ink);
  font-weight: 600;
  font-size: 13.5px;
}
.rv-widget-posts small {
  display: block;
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-widget-cats {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-widget-cats li a {
  display: block;
  padding: 7px 0;
  border-bottom: 1px solid var(--rv-border);
  color: var(--rv-body);
  font-size: 14px;
}
.rv-widget-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rv-tag {
  display: inline-block;
  background: var(--rv-soft);
  color: var(--rv-dark);
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 12.5px;
}
.rv-tag:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}

/* Article */
.rv-article {
  padding-top: 26px;
}
.rv-article-hero {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 18px;
}
.rv-article-title {
  font-size: 30px;
  margin: 6px 0 16px;
}
.rv-article p {
  color: var(--rv-body);
  line-height: 1.8;
  margin-bottom: 16px;
}
.rv-article-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding: 18px 0;
  border-top: 1px solid var(--rv-border);
  border-bottom: 1px solid var(--rv-border);
  margin: 24px 0;
}
.rv-article-tags {
  display: flex;
  gap: 8px;
}
.rv-comments {
  margin-top: 24px;
}
.rv-comment-form {
  margin-top: 14px;
}
.rv-article-more {
  margin-top: 40px;
}
.rv-article-more h3 {
  margin-bottom: 18px;
}

/* ==========================================================================
   About / Contact / FAQ
   ========================================================================== */
.rv-about-hero,
.rv-contact-hero {
  background-size: cover;
  background-position: center;
  position: relative;
}
.rv-about-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.92),
    rgba(255, 255, 255, 0.4)
  );
}
.rv-about-hero .container {
  position: relative;
  padding: 56px 15px;
}
.rv-about-hero h1 {
  font-size: 34px;
  font-weight: 900;
  margin: 0 0 6px;
}
.rv-about-body {
  padding: 40px 0 50px;
}
.rv-about-body h2 {
  margin-top: 0;
}
.rv-about-img {
  border-radius: 8px;
  width: 100%;
}
.rv-about-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  background: var(--rv-ink);
  border-radius: 10px;
  padding: 30px;
  margin: 40px 0;
}
.rv-about-stat {
  flex: 1 1 150px;
  text-align: center;
  color: #fff;
}
.rv-about-stat b {
  display: block;
  font-size: 34px;
  color: var(--rv-yellow);
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-about-stat span {
  font-size: 13px;
  color: #cfd2d6;
}
.rv-about-values-title {
  text-align: center;
  margin: 30px 0;
}
.rv-value-card {
  text-align: center;
  padding: 26px 18px;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  margin-bottom: 24px;
  height: calc(100% - 24px);
}
.rv-value-card > i {
  font-size: 34px;
  color: var(--rv-yellow-ink);
  margin-bottom: 12px;
}
.rv-value-card h4 {
  margin: 0 0 8px;
}
.rv-value-card p {
  color: var(--rv-body);
  font-size: 13.5px;
  margin: 0;
}

.rv-contact-page {
  padding-bottom: 50px;
}
.rv-contact-info {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 30px;
}
.rv-contact-card {
  flex: 1 1 220px;
  text-align: center;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 24px;
}
.rv-contact-card > i {
  font-size: 28px;
  color: var(--rv-yellow-ink);
  margin-bottom: 10px;
}
.rv-contact-card h4 {
  margin: 0 0 6px;
}
.rv-contact-card p {
  margin: 2px 0;
  color: var(--rv-body);
  font-size: 14px;
}
.rv-contact-form textarea {
  resize: vertical;
}
.rv-contact-map {
  width: 100%;
  border-radius: 8px;
}
.rv-contact-success {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #eafaf0;
  border: 1px solid #bfe8cf;
  border-radius: 8px;
  padding: 24px;
}
.rv-contact-success > i {
  color: #27ae60;
  font-size: 30px;
}

.rv-faq-page {
  padding-bottom: 50px;
}
.rv-faq-group {
  margin-bottom: 30px;
}
.rv-faq-group h3 {
  margin: 0 0 14px;
}
.rv-accordion-item {
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  margin-bottom: 10px;
  overflow: hidden;
}
.rv-accordion-head {
  width: 100%;
  text-align: left;
  background: #fff;
  border: 0;
  padding: 15px 18px;
  font-size: 15px;
  font-weight: 700;
  color: var(--rv-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rv-accordion-item.is-open .rv-accordion-head {
  background: var(--rv-yellow);
}
.rv-accordion-body {
  padding: 14px 18px;
  color: var(--rv-body);
  line-height: 1.7;
  border-top: 1px solid var(--rv-border);
}

/* ==========================================================================
   Account / auth
   ========================================================================== */
.rv-account-page,
.rv-account-auth {
  padding-bottom: 50px;
}
.rv-account-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  overflow: hidden;
}
.rv-account-nav li {
  border-bottom: 1px solid var(--rv-border);
}
.rv-account-nav a,
.rv-account-nav button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  padding: 13px 18px;
  cursor: pointer;
  color: var(--rv-dark);
  font-size: 14px;
}
.rv-account-nav button.is-active {
  background: var(--rv-yellow);
  color: var(--rv-ink);
  font-weight: 700;
}
.rv-account-nav a:hover,
.rv-account-nav button:hover {
  background: var(--rv-soft);
}
.rv-account-panel {
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 26px;
}
.rv-account-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 18px;
}
.rv-account-card {
  flex: 1 1 140px;
  text-align: center;
  background: var(--rv-soft);
  border-radius: 8px;
  padding: 22px;
}
.rv-account-card b {
  display: block;
  font-size: 30px;
  color: var(--rv-ink);
  font-family: "Lato", "FiraGO", sans-serif;
}
.rv-account-card span {
  color: var(--rv-muted);
  font-size: 13px;
}
.rv-orders-table {
  width: 100%;
  border-collapse: collapse;
}
.rv-orders-table th,
.rv-orders-table td {
  text-align: left;
  padding: 12px;
  border-bottom: 1px solid var(--rv-border);
  font-size: 14px;
}
.rv-order-status {
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
}
.rv-status-delivered {
  background: #eafaf0;
  color: #27ae60;
}
.rv-status-shipped {
  background: #eef4ff;
  color: #2f6fdb;
}
.rv-status-processing {
  background: #fff6e0;
  color: #b58900;
}
.rv-address-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.rv-address-card {
  flex: 1 1 240px;
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 20px;
}
.rv-address-card p {
  margin: 2px 0;
  color: var(--rv-body);
}
.rv-address-card .btn {
  margin-top: 12px;
}
.rv-details-form label,
.rv-auth-card label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--rv-ink);
  margin-bottom: 14px;
}
.rv-details-form input,
.rv-auth-card input {
  margin-top: 6px;
}
.rv-auth-row {
  padding-top: 26px;
}
.rv-auth-card {
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 28px;
  margin-bottom: 24px;
}
.rv-auth-card h2 {
  margin-top: 0;
}
.rv-auth-single {
  max-width: 560px;
  margin: 26px auto 0;
}
.rv-auth-alt {
  background: var(--rv-soft);
}
.rv-auth-row-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  font-size: 13px;
}
.rv-auth-remember {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rv-auth-foot {
  margin-top: 16px;
  font-size: 14px;
}
.rv-auth-error,
.rv-auth-success {
  border-radius: 6px;
  padding: 10px 14px;
  margin: 0 0 16px;
  font-size: 14px;
}
.rv-auth-error {
  background: #fdecea;
  border: 1px solid #f5c2c0;
  color: #b3261e;
}
.rv-auth-success {
  background: #e7f6ec;
  border: 1px solid #b7e3c6;
  color: #1b7a3d;
}
.rv-vin-form {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.rv-vin-form label {
  flex: 1 1 240px;
  margin-bottom: 0;
}
.rv-vin-form .btn {
  flex: 0 0 auto;
}
.rv-garage-empty {
  color: var(--rv-body);
}
.rv-garage-vin {
  font-size: 12px;
  color: var(--rv-body);
  word-break: break-all;
}
.rv-garage-card {
  position: relative;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.rv-garage-card.is-selected {
  border-color: var(--rv-yellow-dark);
  box-shadow: inset 4px 0 0 var(--rv-yellow);
}
.rv-garage-card h4 {
  margin-top: 0;
  padding-right: 84px;
}
.rv-garage-selected-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 20px;
  background: var(--rv-yellow);
  color: var(--rv-ink);
  font-size: 11px;
  font-weight: 800;
  padding: 5px 9px;
  text-transform: uppercase;
}
.rv-garage-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.rv-address-card .rv-garage-actions .btn {
  margin-top: 0;
  padding: 9px 14px;
  font-size: 11px;
}
.rv-garage-actions .btn:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

/* Search page */
.rv-search-page {
  padding-bottom: 50px;
}
.rv-search-page-form {
  display: flex;
  gap: 10px;
  max-width: 620px;
  margin-bottom: 18px;
}
.rv-search-page-form input {
  margin: 0;
}
.rv-search-summary {
  color: var(--rv-body);
  margin-bottom: 20px;
}
.rv-search-summary button {
  background: none;
  border: 0;
  padding: 0;
  margin-left: 6px;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.rv-footer {
  margin-top: 40px;
}
.rv-footer-top {
  background: var(--rv-yellow);
}
.rv-footer-top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 0;
  flex-wrap: wrap;
}
.rv-footer-reco h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
}
.rv-footer-reco p {
  margin: 4px 0 0;
  color: #6a5b00;
}
.rv-footer-top-actions {
  display: flex;
  align-items: center;
  gap: 26px;
}
.rv-footer-social {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 10px;
}
.rv-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.25);
  color: var(--rv-ink);
  font-size: 15px;
  transition: 0.2s;
}
.rv-footer-social a:hover {
  background: var(--rv-ink);
  color: var(--rv-yellow);
  border-color: var(--rv-ink);
}
.rv-footer-main {
  background: #fff;
  color: var(--rv-body);
  padding: 50px 0 30px;
  border-top: 1px solid var(--rv-border);
}
.rv-footer-about {
  line-height: 1.7;
  font-size: 13.5px;
  margin: 16px 0;
}
.rv-footer-contact {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-footer-contact li {
  margin-bottom: 10px;
  font-size: 13.5px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.rv-footer-contact li i {
  color: var(--rv-yellow);
  margin-top: 3px;
}
.rv-footer-heading {
  color: var(--rv-ink);
  font-size: 16px;
  margin: 0 0 18px;
}
.rv-footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-footer-links li {
  margin-bottom: 10px;
}
.rv-footer-links a {
  color: var(--rv-body);
  font-size: 13.5px;
}
.rv-footer-links a:hover {
  color: var(--rv-dark);
  padding-left: 4px;
}
.rv-footer-newsletter-copy {
  font-size: 13.5px;
  line-height: 1.7;
  margin-bottom: 14px;
}
.rv-footer-payments {
  display: flex;
  gap: 10px;
  font-size: 30px;
  color: #6c6c6c;
  margin-top: 16px;
}
.rv-footer-bottom {
  background: var(--rv-soft);
  color: var(--rv-muted);
  border-top: 1px solid var(--rv-border);
}
.rv-footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  font-size: 13px;
  flex-wrap: wrap;
  gap: 8px;
}
.rv-footer-legal {
  list-style: none;
  display: flex;
  gap: 18px;
  margin: 0;
  padding: 0;
}
.rv-footer-legal a {
  color: var(--rv-body);
}
.rv-footer-legal a:hover {
  color: var(--rv-dark);
}

/* Newsletter */
.rv-newsletter-field {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  overflow: hidden;
}
.rv-newsletter-field > i {
  padding: 0 14px;
  color: var(--rv-muted);
}
.rv-newsletter-field input {
  flex: 1;
  border: 0;
  padding: 12px 8px;
  font-size: 14px;
  outline: none;
}
.rv-newsletter-field .rv-btn-primary {
  border-radius: 0;
}
.rv-newsletter-done {
  color: var(--rv-yellow);
  font-size: 13px;
  margin-top: 10px;
}

/* ==========================================================================
   Toast + back-to-top
   ========================================================================== */
.rv-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 20px);
  background: var(--rv-ink);
  color: #fff;
  padding: 13px 22px;
  border-radius: 30px;
  font-weight: 600;
  font-size: 14px;
  box-shadow: var(--rv-shadow);
  opacity: 0;
  visibility: hidden;
  transition: 0.25s;
  z-index: 1100;
  display: flex;
  align-items: center;
  gap: 10px;
}
.rv-toast.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.rv-toast i {
  color: var(--rv-yellow);
}
.rv-back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: var(--rv-ink);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: 0.25s;
  z-index: 900;
}
.rv-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
}
.rv-back-to-top:hover {
  background: var(--rv-yellow);
  color: var(--rv-ink);
}

/* ==========================================================================
   Ported theme product cards ship a fixed pixel width; force them to fill their
   Bootstrap grid column / carousel slide instead, so they never overflow their
   column. (This fixed-width was causing ~27px of horizontal scroll and the
   white strip on the right on mobile.)
   ========================================================================== */
.product-layout.grid-style,
.product-thumb {
  width: 100%;
  max-width: 100%;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 991px) {
  /* Belt-and-suspenders: never let a stray element create a horizontal scroll /
     white strip on phones. `clip` (not `hidden`) keeps position:sticky working
     and doesn't spawn a scroll container. */
  .rv-app {
    overflow-x: clip;
  }
  .rv-topbar {
    display: none;
  }
  .rv-burger {
    display: inline-block;
  }
  .rv-nav {
    display: none;
  }
  .rv-selected-vehicle-inner {
    padding: 8px 15px;
  }
  .rv-selected-vehicle-copy > small {
    display: none;
  }
  .rv-header-main-inner {
    flex-wrap: wrap;
    gap: 14px;
    /* The base rule zeroes the container's side padding; restore a gutter on
       phones so the search bar and cart/wishlist badges never sit flush with
       (or past) the screen edge. */
    padding-left: 15px;
    padding-right: 15px;
  }
  .rv-logo {
    margin-right: auto;
  }
  /* Trim the wordmark on phones so burger + logo + wishlist/cart share one row
     and only the search bar drops to its own line. */
  .rv-logo img {
    height: 30px;
  }
  .rv-search {
    order: 3;
    flex-basis: 100%;
    max-width: none;
  }
  .rv-icon-text,
  .rv-cart-text {
    display: none;
  }
  .rv-dept-col {
    display: none;
  }
  .rv-nav-hotline {
    display: none;
  }
}
@media (max-width: 767px) {
  .rv-qv {
    grid-template-columns: 1fr;
  }
  .rv-blog-post {
    flex-direction: column;
  }
  .rv-blog-post-img {
    flex-basis: auto;
  }
  .rv-blog-post-body {
    padding: 20px;
  }
  .rv-slide-content {
    max-width: 100%;
  }
  .rv-slide-subheading {
    font-size: 28px;
  }
  .rv-cart-table thead {
    display: none;
  }
  .rv-cart-table td {
    display: block;
    text-align: right;
    border: 0;
    padding: 8px 0;
  }
  .rv-cart-table tr {
    display: block;
    border-bottom: 1px solid var(--rv-border);
    padding: 12px 0;
  }
  .rv-cart-col-product {
    justify-content: flex-start;
  }
  .rv-cart-table td[data-label]:before {
    content: attr(data-label);
    float: left;
    font-weight: 700;
    color: var(--rv-ink);
  }
  .rv-page-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  /* Stack the "Recommendations" band and let the CTA + social icons wrap so the
     row (button + 5 social icons, ~416px) never overflows a phone. */
  .rv-footer-top-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding-left: 15px;
    padding-right: 15px;
  }
  .rv-footer-top-actions {
    flex-wrap: wrap;
    width: 100%;
  }
}
@media (max-width: 600px) {
  .rv-selected-vehicle-copy {
    display: block;
    overflow: hidden;
  }
  .rv-selected-vehicle-copy > span {
    display: block;
    margin-bottom: 1px;
  }
  .rv-selected-vehicle-copy > strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .rv-selected-vehicle-actions {
    gap: 2px;
  }
  .rv-selected-vehicle-actions a,
  .rv-selected-vehicle-actions button {
    padding: 7px 6px;
    font-size: 10px;
  }
  .rv-product-grid.rv-list .item-inner {
    grid-template-columns: 1fr;
    grid-template-areas: "top" "img" "desc" "cap";
  }
  .rv-service {
    flex-basis: 100%;
    border-right: 0;
    border-bottom: 1px solid var(--rv-border);
    padding-bottom: 12px;
  }
}

/* ---------- My Orders ---------- */
.rv-orders {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 18px;
}
.rv-order-card {
  border: 1px solid var(--rv-border);
  border-radius: 8px;
  padding: 18px;
}
.rv-order-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.rv-order-head small {
  display: block;
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-order-status {
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  background: #fff4d6;
  color: #8a5a00;
}
.rv-order-status-readyforpickup,
.rv-order-status-waitingforcourier {
  background: #e3efff;
  color: #1556c0;
}
.rv-order-status-assigned,
.rv-order-status-pickup,
.rv-order-status-ontheway {
  background: #ece6ff;
  color: #5a35b8;
}
.rv-order-status-delivered {
  background: #e7f6ec;
  color: #1b7a3d;
}
.rv-order-status-cancelled,
.rv-order-status-deliveryfailed {
  background: #fdecea;
  color: #b3261e;
}
.rv-order-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rv-order-items li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--rv-border);
}
.rv-order-items img,
.rv-order-noimg {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  object-fit: cover;
  border-radius: 6px;
  background: var(--rv-soft);
}
.rv-order-item-title {
  flex: 1;
  min-width: 0;
}
.rv-order-item-title small {
  display: block;
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-order-item-qty {
  color: var(--rv-muted);
  font-size: 13px;
}
.rv-order-item-price {
  min-width: 80px;
  text-align: right;
  font-weight: 700;
}
.rv-order-total {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid var(--rv-border);
  padding-top: 12px;
  margin-top: 4px;
}

/* ---------- Order delivery + status timeline ---------- */
.rv-order-fee {
  display: flex;
  justify-content: space-between;
  color: var(--rv-body);
  padding: 8px 0 4px;
  border-top: 1px solid var(--rv-border);
}
.rv-order-fee + .rv-order-total {
  border-top: 0;
  padding-top: 4px;
  margin-top: 0;
}
.rv-order-delivery {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--rv-body);
}
.rv-order-timeline {
  list-style: none;
  margin: 16px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--rv-border);
}
.rv-order-step {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 10px;
  padding: 0 0 14px 24px;
  color: var(--rv-muted);
}
.rv-order-step:last-child {
  padding-bottom: 0;
}
.rv-order-step::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 14px;
  bottom: -2px;
  width: 2px;
  background: var(--rv-border);
}
.rv-order-step:last-child::before {
  display: none;
}
.rv-order-step.is-done::before {
  background: #1b7a3d;
}
.rv-order-step-dot {
  position: absolute;
  left: 0;
  top: 4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid var(--rv-border);
  background: #fff;
}
.rv-order-step.is-done .rv-order-step-dot {
  border-color: #1b7a3d;
  background: #1b7a3d;
}
.rv-order-step.is-current .rv-order-step-dot {
  box-shadow: 0 0 0 4px rgba(27, 122, 61, 0.2);
}
.rv-order-step.is-done {
  color: var(--rv-ink);
}
.rv-order-step.is-current .rv-order-step-label {
  font-weight: 700;
}
.rv-order-step.is-failed .rv-order-step-dot {
  border-color: #b3261e;
  background: #b3261e;
}
.rv-order-step.is-failed {
  color: #b3261e;
}
.rv-order-step small {
  font-size: 12px;
  color: var(--rv-muted);
}

/* ---------- Checkout delivery address (rv-cart-summary) ---------- */
.rv-cart-delivery-sub {
  padding: 2px 0 2px 12px;
  font-size: 12.5px;
  color: var(--rv-muted);
}
.rv-cart-delivery {
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rv-border);
}
.rv-cart-delivery h4 {
  margin: 0 0 10px;
  font-size: 15px;
}
.rv-cart-delivery .rv-cart-ship-hint {
  margin: 0;
}
.rv-address-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 8px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.rv-address-option:hover {
  border-color: var(--rv-yellow-dark);
}
.rv-address-option.is-selected {
  border-color: var(--rv-yellow-dark);
  box-shadow: inset 4px 0 0 var(--rv-yellow);
}
.rv-address-option input {
  width: auto;
  margin: 4px 0 0;
  flex: 0 0 auto;
}
.rv-address-option-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--rv-body);
}
.rv-address-option-body b {
  color: var(--rv-ink);
  font-size: 14px;
}
.rv-address-option-body small {
  color: var(--rv-muted);
  font-size: 12px;
}
.rv-delivery-option {
  align-items: center;
}
.rv-delivery-option .rv-address-option-body {
  flex: 1 1 auto;
}
.rv-delivery-option input {
  margin: 0;
}
.rv-delivery-logo {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  object-fit: contain;
  border-radius: 6px;
}
.rv-delivery-price {
  flex: 0 0 auto;
  color: var(--rv-ink);
  font-size: 14px;
}
.rv-delivery-seller-name {
  margin: 8px 0 6px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--rv-muted);
}
.rv-address-add-link {
  width: 100%;
  margin-top: 2px;
}
.rv-address-add {
  margin-top: 20px;
}

/* ---------- Address form / map picker ---------- */
.rv-address-modal {
  max-width: 640px;
}
.rv-address-modal h3 {
  margin: 0 0 16px;
}
.rv-pin-picker {
  margin-bottom: 14px;
}
.rv-pin-search {
  display: flex;
  gap: 8px;
}
.rv-pin-search input {
  flex: 1;
  min-width: 0;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--rv-border);
  border-radius: 6px;
  background: #fff;
}
.rv-pin-search .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.rv-address-map {
  height: 240px;
  margin-top: 8px;
  border-radius: 6px;
  border: 1px solid var(--rv-border);
}
.rv-address-hint {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--rv-muted);
}
.rv-address-pinned {
  margin: -6px 0 14px;
  font-size: 13px;
  color: #1b7a3d;
}
.rv-address-form label small {
  font-weight: 400;
  color: var(--rv-muted);
}
.rv-address-form input[type="text"],
.rv-address-form input[type="number"] {
  width: 100%;
  box-sizing: border-box;
}
.rv-address-form .rv-address-default {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}
.rv-address-form .rv-address-default input {
  width: auto;
  margin: 0;
}
.rv-address-form .rv-garage-actions .btn {
  margin-top: 0;
}

/* Google Places suggestions must sit above the checkout modal (z-index 1000). */
.pac-container {
  z-index: 1100;
}

/* ------------------------------------------------------------------ */
/* Georgian (Mkhedruli) typography                                     */
/* Lato / Open Sans have no Georgian glyphs, so every stack above falls */
/* back to "FiraGO" per glyph (Latin/Cyrillic keep their own fonts).   */
/* Georgian has no real uppercase: text-transform would turn it into   */
/* Mtavruli capitals, which are hard to read in UI text, so it is      */
/* disabled for ka.                                                    */
/* ------------------------------------------------------------------ */
html:lang(ka) body,
html:lang(ka) input,
html:lang(ka) select,
html:lang(ka) textarea,
html:lang(ka) button {
  font-family: "Open Sans", "FiraGO", "Helvetica Neue", Arial, sans-serif;
}
html:lang(ka) h1,
html:lang(ka) h2,
html:lang(ka) h3,
html:lang(ka) h4,
html:lang(ka) h5,
html:lang(ka) h6 {
  font-family: "Lato", "FiraGO", sans-serif;
  line-height: 1.35;
}
html:lang(ka) body *:not(i):not(.fa):not(.fas):not(.far):not(.fab) {
  text-transform: none !important;
  letter-spacing: normal !important;
}
