/*
Theme Name: RugMaster
Theme URI: https://feris.ir
Author: Farzad Roozbahani
Author URI: https://feris.ir
Description: Custom high-performance WooCommerce theme for RugMaster.com.au — Persian rug e-commerce.
Version: RV391
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
WC requires at least: 7.0
License: Proprietary
Text Domain: rugmaster
*/

/* ================================================================
   FONTS — Self-hosted (Oswald + Nunito)
   ================================================================ */
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}

/* ================================================================
   CSS VARIABLES — EXACT rugmaster.com.au palette
   Primary:   #e02b20  (from et-divi-dynamic CSS, 16 occurrences)
   Gold:      #c99872  (button hover)
   Dark:      #222222  (footer bg)
   Body:      Helvetica,Arial,Lucida,sans-serif
   ================================================================ */
:root {
  --red:        #e02b20;
  --red-hover:  #c4241a;
  --gold:       #c99872;
  --gold-hover: #b5845e;
  --dark:       #222222;
  --dark2:      #333333;
  --mid:        #666666;
  --light:      #f4f4f4;
  --white:      #ffffff;
  --border:     #dddddd;
  --shadow:     0 2px 10px rgba(0,0,0,.08);

  --f-body:    Helvetica, Arial, Lucida, sans-serif;
  --f-heading: 'Nunito', Helvetica, Arial, Lucida, sans-serif;
  --f-btn:     'Oswald', Helvetica, Arial, Lucida, sans-serif;

  --wrap: 1080px;
  --hh: 70px;
}

/* ================================================================
   BASE RESET
   ================================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--dark2);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, select, textarea { font-family: inherit; font-size: 14px; }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--f-heading);
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

/* ================================================================
   LAYOUT
   ================================================================ */
.rm-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 30px;
  box-sizing: border-box;
}
/* Header wrap: full width */
#rm-header .rm-wrap {
  max-width: 100%;
  padding: 0 24px;
}

/* ================================================================
   BUTTONS — exact Divi style from rugmaster.com.au
   Letter-spacing: 3px, Oswald, uppercase, border-radius: 0
   ================================================================ */
.rm-btn, .rm-btn-outline {
  display: inline-block;
  font-family: var(--f-btn);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: .3em 1em;
  border: 2px solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background .25s, border-color .25s, color .25s;
  white-space: nowrap;
  line-height: 1.6;
}
.rm-btn {
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}
.rm-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--white);
}
.rm-btn-outline {
  background: transparent;
  border-color: var(--dark);
  color: var(--dark);
}
.rm-btn-outline:hover {
  background: var(--dark);
  color: var(--white);
}
.rm-btn-white {
  background: transparent;
  border-color: var(--white);
  color: var(--white);
}
.rm-btn-white:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--white);
}

/* ================================================================
   TOP BAR — red background like rugmaster.com.au
   ================================================================ */
#rm-topbar {
  background: var(--red);
  color: var(--white);
  font-size: 11px;
  padding: 5px 0;
  text-align: center;
  position: relative;
  z-index: 100001;
  overflow: hidden;
}
@media (max-width: 768px) {
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}
#rm-topbar .rm-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}
#rm-topbar .rm-topbar-inner > * { min-width: 0; }
@media(max-width:480px){
  #rm-topbar .rm-topbar-inner { gap: 4px; justify-content: center; }
  #rm-topbar { font-size: 10px; padding: 4px 0; }
  #rm-topbar .rm-topbar-inner > * { font-size: 10px; }
}
#rm-topbar .rm-topbar-links {
  display: flex;
  gap: 16px;
  align-items: center;
}
#rm-topbar a {
  color: var(--white);
  opacity: .9;
  font-size: 11px;
}
#rm-topbar a:hover { opacity: 1; text-decoration: underline; }
#rm-topbar .rm-topbar-center {
  font-size: 11px;
  flex: 1;
  text-align: center;
}
#rm-topbar .rm-topbar-right {
  display: flex;
  gap: 16px;
  align-items: center;
}

/* ================================================================
   MAIN HEADER
   ================================================================ */
#rm-header {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: var(--white);
  box-shadow: 0 1px 0 rgba(0,0,0,.1);
  /* Anchor for mega panel absolute positioning */
}
#rm-header .rm-header-inner {
  display: flex;
  align-items: center;
  height: var(--hh);
  gap: 0;
}
#rm-header .rm-header-inner > .rm-logo {
  flex-shrink: 0;
  margin-right: 24px;
}
#rm-header .rm-header-inner > #rm-nav {
  flex: 1;
  display: flex;
  justify-content: center;
  overflow: visible;
  min-width: 0;
}
#rm-header .rm-header-inner > .rm-header-icons {
  flex-shrink: 0;
  margin-left: 24px;
  display: flex;
  align-items: center;
  gap: 2px;
}
/* True center: nav takes full width, logo+icons overlay */

/* Logo */
.rm-logo { flex-shrink: 0; }
.rm-logo img { height: 55px; width: auto; }
.rm-logo-text {
  font-family: var(--f-heading);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--red);
}

/* Primary Nav */
#rm-nav {
  display: flex;
  justify-content: center;
  overflow: visible;
  position: static;
}
#rm-nav > ul {
  display: flex;
  align-items: center;
  gap: 0;
}
#rm-nav > ul > li { position: relative; }
#rm-nav > ul > li.mega-parent { position: relative; }
#rm-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 14px;
  height: var(--hh);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--dark2);
  border-bottom: 3px solid transparent;
  transition: color .2s, border-color .2s;
}
#rm-nav > ul > li > a:hover,
#rm-nav > ul > li.current-menu-item > a,
#rm-nav > ul > li.current-menu-ancestor > a {
  color: var(--red);
  border-bottom-color: var(--red);
}
/* Dropdown arrow */
#rm-nav > ul > li > a .rm-arrow {
  font-size: 10px;
  margin-top: 1px;
  transition: transform .2s;
}
#rm-nav > ul > li:hover > a .rm-arrow { transform: rotate(180deg); }

/* Header Icons */
.rm-header-icons {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rm-header-icon {
  display: flex;
  align-items: center;
  padding: 8px;
  color: var(--dark2);
  border-radius: 3px;
  position: relative;
  transition: color .2s;
}
.rm-header-icon:hover { color: var(--red); }
.rm-header-icon svg { width: 20px; height: 20px; }
.rm-cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--red);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  box-sizing: border-box;
  line-height: 1;
  border: 1.5px solid #fff;
  pointer-events: none;
}
.rm-hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  cursor: pointer;
  flex-shrink: 0;
  min-width: 38px;
}
.rm-hamburger span {
  display: block; width: 22px; height: 2px;
  background: var(--dark2);
  transition: all .3s;
}

/* ================================================================
   MEGA MENU — 5 columns, light grey bg (as in screenshot 1)
   ================================================================ */
.rm-mega-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: min(900px, 95vw);
  background: #f0f0f0;
  border-top: 3px solid var(--red);
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  z-index: 9998;
  padding: 30px 30px 36px;
  overflow: hidden;
  margin-top: 0;
}
/* Hover bridge: fills any sub-pixel gap */
#rm-nav > ul > li.mega-parent {
  padding-bottom: 0;
}
#rm-nav > ul > li.mega-parent > a {
  /* Extend clickable area to panel edge */
  margin-bottom: 0;
}

/* Keep mega-parent li as positioning context */
/* When panel is open, extend li down to meet panel */



.rm-mega-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 20px;
  width: 100%;
}
.rm-mega-col > h4 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--dark2);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 14px;
  text-transform: none;
  letter-spacing: 0;
}
.rm-mega-col ul { display: flex; flex-direction: column; gap: 10px; }
.rm-mega-col ul li a {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--dark2);
  transition: color .2s;
}
.rm-mega-col ul li a:hover { color: var(--red); }

/* Regular dropdown */
.rm-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--white);
  border-top: 3px solid var(--red);
  box-shadow: 0 5px 15px rgba(0,0,0,.1);
  z-index: 9999;
  padding: 8px 0;
}
#rm-nav > ul > li:not(.mega-parent):hover .rm-dropdown { display: block; }
.rm-dropdown a {
  display: block;
  padding: 8px 20px;
  font-size: 13px;
  color: var(--dark2);
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background .15s, color .15s;
}
.rm-dropdown a:hover { background: var(--light); color: var(--red); }

/* Mobile menu */
#rm-mobile-menu {
  display: none;
  background: var(--white);
  border-top: 1px solid var(--border);
  padding: 8px 0;
  overflow: visible;
}
#rm-mobile-menu.active, #rm-mobile-menu[style*='display: block'], #rm-mobile-menu[style*='display:block'] { display: block !important; }
#rm-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
#rm-mobile-menu > ul > li { border-bottom: 1px solid rgba(0,0,0,.05); overflow: visible; }
#rm-mobile-menu ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 20px;
  font-size: 14px;
  color: var(--dark2);
  text-decoration: none;
  transition: color .15s, background .15s;
}
#rm-mobile-menu ul li a:hover { color: var(--red); background: var(--light); }
/* Sub-menu accordion — JS controls display via inline style */
#rm-mobile-menu ul .sub-menu {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
  border-top: 1px solid var(--border);
  background: #f5f0ea;
}
#rm-mobile-menu ul .sub-menu li a {
  display: block;
  padding: 10px 20px;
  font-size: 13px;
  color: var(--mid);
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.04);
}
#rm-mobile-menu ul .sub-menu li a {
  font-size: 13px;
  color: var(--mid);
}
#rm-mobile-menu ul .sub-menu li a:hover { color: var(--red); }
/* Nested depth 2 */
#rm-mobile-menu ul .sub-menu .sub-menu li a {
  font-size: 12px;
  color: #999;
}
/* Toggle button */
.rm-acc-btn {
  /* position set by JS - no absolute here */
  flex: 0 0 44px;
  width: 44px;
  background: none; border: none;
  border-left: 1px solid rgba(0,0,0,.06);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #aaa;
  font-size: 16px;
  transition: transform .22s, color .15s, background .15s;
  padding: 0;
}
.rm-acc-btn:hover { color: var(--red); background: rgba(224,43,32,.04); }
/* Toggle arrow */
/* .rm-mob-arrow deprecated - using .rm-acc-btn */
.rm-mob-arrow { display: none; }

/* ================================================================
   HERO SECTION — full-width bg image + overlay
   ================================================================ */
#rm-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rm-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.23); /* exact value from CSS */
}
.rm-hero-content {
  position: relative;
  z-index: 2;
  color: var(--white);
  padding: 60px 20px;
  max-width: 700px;
}
.rm-hero-content h1,
.rm-hero-content h2.rm-hero-title {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 700;
  margin-bottom: 16px;
  text-shadow: .08em .08em 0 rgba(0,0,0,.4);
}
.rm-hero-content .rm-hero-sub {
  font-family: var(--f-heading);
  font-weight: 600;
  font-size: clamp(1rem, 2.5vw, 1.4rem);
  line-height: 1.9;
  margin-bottom: 28px;
  text-shadow: .08em .08em 0 rgba(0,0,0,.4);
}
/* Scroll indicator */
.rm-hero-scroll {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--white);
  animation: bounce 2s infinite;
  cursor: pointer;
}
.rm-hero-scroll svg { width: 32px; height: 32px; }
@keyframes bounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

/* ================================================================
   FREE SHIPPING BAR — red bg, white text
   ================================================================ */
#rm-shipping-bar {
  background: var(--red);
  color: var(--white);
  text-align: center;
  padding: 12px 20px;
  font-family: var(--f-btn);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* ================================================================
   CAMPAIGN BANNER (optional, shown when active)
   ================================================================ */
#rm-campaign-banner { position: relative; }
#rm-campaign-banner img { width: 100%; display: block; }
#rm-campaign-banner a { display: block; }
#rm-campaign-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  position: sticky;
  bottom: 0;
  z-index: 9000;
}
#rm-campaign-bar .rm-coupon {
  background: rgba(255,255,255,.2);
  padding: 3px 12px;
  border-radius: 3px;
  font-family: monospace;
  font-size: 15px;
  cursor: pointer;
  border: 1px dashed rgba(255,255,255,.6);
}
#rm-campaign-bar .rm-bar-close {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  opacity: .7;
}
#rm-campaign-bar .rm-bar-close:hover { opacity: 1; }

/* ================================================================
   CATEGORY CARDS — 3 columns, square, no radius (exact from site)
   ================================================================ */
#rm-categories {
  padding: 40px 0;
  background: var(--white);
}
.rm-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.rm-cat-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--dark);
  cursor: pointer;
}
.rm-cat-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.rm-cat-card:hover img { transform: scale(1.05); }
.rm-cat-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.28);
  transition: background .3s;
}
.rm-cat-card:hover .rm-cat-label { background: rgba(0,0,0,.42); }
.rm-cat-label span {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: clamp(1rem, 2.5vw, 1.6rem);
  font-weight: 700;
  text-align: center;
  padding: 10px;
  line-height: 1.3;
  text-shadow: 1px 1px 4px rgba(0,0,0,.6);
}

/* ================================================================
   PRODUCT GRID — "New Items"
   ================================================================ */
#rm-new-items {
  padding: 40px 0;
  background: var(--white);
}
.rm-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.rm-section-head h2 {
  font-family: var(--f-heading);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--dark);
}
.rm-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
/* Product Card */
.rm-product-card {
  background: var(--white);
  border: 1px solid var(--border);
  position: relative;
  transition: box-shadow .2s;
  display: flex;
  flex-direction: column;
}
.rm-product-card:hover { box-shadow: var(--shadow); }
.rm-product-thumb {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--light);
}
.rm-product-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .3s, opacity .3s;
}
.rm-product-card:hover .rm-product-thumb img { transform: scale(1.04); }
.rm-product-thumb-hover { position: absolute; inset: 0; opacity: 0; }
.rm-product-card:hover .rm-product-thumb-hover,
.rm-product-card.rm-touch-preview .rm-product-thumb-hover { opacity: 1; }
.rm-product-card:hover .rm-product-thumb-main,
.rm-product-card.rm-touch-preview .rm-product-thumb-main { opacity: 0; }
.rm-product-card.rm-touch-preview .rm-product-thumb img { transform: scale(1.04); }
.rm-product-badges { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; gap: 4px; z-index: 5; }
.rm-discount-badge-wrap {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rm-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--white);
}
.rm-badge-sale { background: var(--red); }
.rm-badge-new  { background: var(--gold); }
.rm-badge-hot  { background: var(--dark); }
.rm-discount-badge {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-family: var(--f-btn);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 2px 8px;
  z-index: 5;
}
.rm-product-info {
  padding: 12px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.rm-product-info h3 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--dark2);
  margin-bottom: 6px;
  line-height: 1.4;
  flex: 1 1 auto;
  min-height: 0;
}
/* Price: fixed just above button */
.rm-product-info .rm-product-price {
  flex: 0 0 auto;
  margin-top: auto;
  margin-bottom: 8px;
}
.rm-product-info .rm-atc-btn {
  flex: 0 0 auto;
}
.rm-product-info h3 a:hover { color: var(--red); }
.rm-product-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 10px;
}
.rm-product-price del {
  font-size: 12px;
  font-weight: 400;
  color: var(--mid);
  margin-right: 6px;
}
.rm-product-price ins {
  text-decoration: none;
  color: var(--red);
}
.rm-product-offer {
  font-size: 11px;
  color: var(--red);
  font-weight: 600;
  margin-bottom: 8px;
}
.rm-product-price { margin-bottom: auto; }
.rm-atc-btn {
  display: block;
  width: 100%;
  padding: 8px;
  font-family: var(--f-btn);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-align: center;
  background: var(--atc-bg, var(--red));
  color: var(--white);
  border: 2px solid var(--atc-bg, var(--red));
  border-radius: 0;
  transition: background .2s, border-color .2s;
}
.rm-atc-btn:hover {
  background: var(--atc-hover, var(--gold));
  border-color: var(--atc-hover, var(--gold));
}

/* ================================================================
   ABOUT SECTION — grey bg, 2-col text|image
   ================================================================ */
#rm-about {
  background: var(--light);
  padding: 60px 0;
}
.rm-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}
.rm-about-text .rm-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--mid);
  margin-bottom: 8px;
}
.rm-about-text h2 {
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin-bottom: 16px;
  text-transform: uppercase;
}
.rm-about-text p { color: var(--mid); margin-bottom: 14px; }
.rm-about-buttons { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.rm-about-image { position: relative; }
.rm-about-image img { width: 100%; object-fit: cover; }

/* ================================================================
   GOOGLE REVIEWS
   ================================================================ */
#rm-reviews {
  background: var(--white);
  padding: 50px 0;
  text-align: center;
}
#rm-reviews h2 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--dark2);
  margin-bottom: 24px;
}
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 24px;
}
.rm-reviews-score {
  font-size: 2rem;
  font-weight: 700;
  color: var(--dark);
}
.rm-reviews-stars { color: #f5a623; font-size: 1.2rem; }
.rm-reviews-powered { font-size: 11px; color: var(--mid); }
.rm-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 20px;
  text-align: left;
}
.rm-review-card {
  background: var(--white);
  border: 1px solid var(--border);
  padding: 18px;
  position: relative;
}
.rm-review-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.rm-review-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px;
  flex-shrink: 0;
}
.rm-review-name { font-weight: 700; font-size: 13px; }
.rm-review-date { font-size: 11px; color: var(--mid); }
.rm-review-stars { color: #f5a623; font-size: 13px; margin-bottom: 6px; }
.rm-review-text { font-size: 13px; color: var(--mid); line-height: 1.6; height: 80px; overflow-y: auto; }
.rm-review-google { position: absolute; top: 14px; right: 14px; }
.rm-review-google svg { width: 16px; height: 16px; }

/* ================================================================
   BLOG SECTION
   ================================================================ */
#rm-blog {
  padding: 50px 0;
  background: var(--white);
}
#rm-blog h2 {
  text-align: center;
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 24px;
}
.rm-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.rm-blog-card { border: 1px solid var(--border); }
.rm-blog-thumb {
  position: relative;
  overflow: hidden;
}
.rm-blog-thumb img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform .3s;
}
.rm-blog-card:hover .rm-blog-thumb img { transform: scale(1.04); }
.rm-blog-body { padding: 16px; }
.rm-blog-date { font-size: 11px; color: var(--mid); margin-bottom: 6px; }
.rm-blog-body h3 { font-size: 14px; margin-bottom: 8px; }
.rm-blog-body h3 a:hover { color: var(--red); }
.rm-blog-body p { font-size: 13px; color: var(--mid); margin-bottom: 12px; }

/* Blog Featured (single full-width) */
.rm-blog-featured {
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.rm-blog-featured img {
  width: 100%;
  height: 400px;
  object-fit: cover;
}
.rm-blog-featured-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  color: var(--white);
}
.rm-blog-featured-overlay h3 {
  color: var(--white);
  font-size: clamp(1.1rem, 2.5vw, 1.6rem);
  margin-bottom: 12px;
}
.rm-blog-featured-overlay p { font-size: 14px; margin-bottom: 16px; max-width: 600px; }

/* ================================================================
   FOOTER — dark bg #222
   ================================================================ */
#rm-footer {
  background: var(--dark);
  color: rgba(255,255,255,.7);
  padding: 50px 0 30px;
  overflow: visible;
}
.rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
.rm-footer-col h4 {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.rm-footer-col p { font-size: 13px; line-height: 1.7; margin-bottom: 10px; }
.rm-footer-col ul { list-style: none; margin: 0; padding: 0; }
.rm-footer-col ul li a {
  font-size: 13px;
  color: rgba(255,255,255,.7);
  transition: color .2s;
}
.rm-footer-col ul li > a:not(.rm-review-badge-btn)::before { content: "\0000bb\0020"; }
.rm-footer-col ul li.rm-fi { list-style: none !important; }
.rm-footer-col ul li.rm-fi::before,
.rm-footer-col ul li.rm-fi > *::before,
.rm-footer-col ul li.rm-fi a::before { content: none !important; }
.rm-footer-social a::before { content: none !important; }
.rm-footer-col ul li a:hover { color: var(--white); }
.rm-footer-logo img { height: 50px; filter: brightness(0) invert(1); margin-bottom: 12px; }
.rm-footer-logo .rm-logo-text { color: var(--white); font-size: 1.3rem; }
.rm-footer-social { display: flex; gap: 10px; margin-top: 14px; }
.rm-footer-social a {
  width: 32px; height: 32px;
  background: rgba(255,255,255,.1);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  transition: background .2s;
}
.rm-footer-social a:hover { background: var(--red); }
.rm-footer-contact { font-size: 13px; line-height: 2; }
.rm-footer-contact a { color: rgba(255,255,255,.7); }
.rm-footer-contact a:hover { color: var(--white); }
/* Map & Payments in footer */
.rm-footer-map iframe { width: 100%; height: 130px; border: 0; margin-bottom: 12px; }
.rm-footer-payments img { max-height: 36px; }
.rm-footer-trustpilot { margin-top: 8px; }
/* Bottom bar */
.rm-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
}
.rm-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.rm-footer-bottom-left { opacity: .6; font-size: 13px; flex: 1; min-width: 0; }
.rm-footer-bottom-center { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rm-footer-bottom-links { display: flex; gap: 20px; flex: 1; justify-content: flex-end; }
.rm-footer-bottom-links a { color: rgba(255,255,255,.6); font-size: 13px; text-decoration: none; }
.rm-footer-bottom-links a:hover { color: var(--white); }

/* ================================================================
   TRUST BAR (above footer)
   ================================================================ */
#rm-trust-bar {
  background: var(--dark2);
  color: rgba(255,255,255,.85);
  padding: 14px 0;
  overflow: visible;
  position: relative;
  z-index: 1;
}
.rm-trust-items {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 24px;
}
.rm-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.rm-trust-item svg { width: 20px; height: 20px; flex-shrink: 0; }

/* ================================================================
   WOOCOMMERCE PAGES
   ================================================================ */
/* Shop Layout */
.rm-shop-wrapper {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 30px;
  padding: 40px 0;
}
.rm-shop-wrapper.no-sidebar { grid-template-columns: 1fr; }
.rm-sidebar { /* Widget sidebar */ }
.rm-sidebar .widget { margin-bottom: 24px; }
.rm-sidebar .widget-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--red);
  margin-bottom: 14px;
}
/* Breadcrumb */
.rm-breadcrumb {
  padding: 12px 0;
  font-size: 13px;
  color: var(--mid);
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.rm-breadcrumb a { color: var(--mid); }
.rm-breadcrumb a:hover { color: var(--red); }
.rm-breadcrumb span { margin: 0 6px; }
/* Single Product */
.rm-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding: 40px 0;
}
.rm-product-gallery-main { position: relative; overflow: hidden; }
.rm-product-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.rm-product-gallery-thumbs { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.rm-product-gallery-thumbs img {
  width: 70px; height: 70px;
  object-fit: cover;
  border: 2px solid transparent;
  cursor: pointer;
}
.rm-product-gallery-thumbs img.active { border-color: var(--red); }
.rm-product-summary h1 { font-size: 1.5rem; margin-bottom: 8px; }
.rm-product-summary .rm-price { font-size: 1.4rem; font-weight: 700; color: var(--dark); margin-bottom: 16px; }
.rm-product-summary .rm-price del { font-size: 1rem; font-weight: 400; color: var(--mid); margin-right: 8px; }
.rm-product-summary .rm-price ins { text-decoration: none; color: var(--red); }
.rm-atc-group { display: flex; gap: 10px; margin-bottom: 20px; align-items: center; }
.rm-qty { width: 60px; padding: 8px; border: 1px solid var(--border); text-align: center; font-size: 16px; }
.rm-product-tabs { margin-top: 30px; }
.rm-tabs-nav { display: flex; border-bottom: 2px solid var(--border); margin-bottom: 20px; }
.rm-tabs-nav a {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mid);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .2s;
}
.rm-tabs-nav a.active { color: var(--red); border-bottom-color: var(--red); }
/* Cart / Checkout */
.rm-cart-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.rm-cart-table th, .rm-cart-table td {
  padding: 12px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
  text-align: left;
}
.rm-cart-table th { font-weight: 700; background: var(--light); }

/* ================================================================
   CONTACT FORM
   ================================================================ */
.rm-contact-form { max-width: 600px; margin: 0 auto; }
.rm-form-group { margin-bottom: 16px; }
.rm-form-group label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.rm-form-group input,
.rm-form-group textarea,
.rm-form-group select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 0;
  font-size: 14px;
  transition: border-color .2s;
}
.rm-form-group input:focus,
.rm-form-group textarea:focus { outline: none; border-color: var(--red); }
.rm-form-group textarea { min-height: 130px; resize: vertical; }
.rm-form-success { background: #d4edda; color: #155724; padding: 12px 16px; border: 1px solid #c3e6cb; margin-bottom: 16px; }
.rm-form-error { background: #f8d7da; color: #721c24; padding: 12px 16px; border: 1px solid #f5c6cb; margin-bottom: 16px; }

/* ================================================================
   GENERIC PAGE
   ================================================================ */
.rm-page-content { padding: 50px 0; }
.rm-page-content h1 { margin-bottom: 20px; font-size: 1.8rem; }
.rm-page-content p { color: var(--mid); margin-bottom: 14px; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
  .rm-products-grid { grid-template-columns: repeat(3, 1fr); }
  .rm-mega-panel { width: 700px; }
  .rm-mega-grid { grid-template-columns: repeat(3, 1fr); }
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
  .rm-shop-wrapper { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  :root { --hh: 60px; }
  #rm-header .rm-wrap { padding: 0 !important; }
  #rm-header .rm-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
    overflow: hidden;
  }
  #rm-header .rm-header-inner > .rm-logo {
    min-width: unset;
    flex: 0 0 auto;
    max-width: 50%;
    overflow: hidden;
    margin-right: 0;
    padding-left: 4px;
  }
  #rm-header .rm-header-inner #rm-nav { display: none; }
  #rm-header .rm-header-inner { display:flex; grid-template-columns:unset; overflow:hidden; }
  #rm-header .rm-header-inner > .rm-logo { flex:0 1 auto; justify-self:unset; max-width:calc(100vw - 160px); overflow:hidden; }
  #rm-header .rm-header-inner > .rm-header-icons { flex-shrink:0; justify-self:unset; }
  .rm-hamburger { display:flex; flex-shrink:0; }
  #rm-header .rm-header-inner .rm-header-icons {
    flex-shrink: 0;
    gap: 2px;
    padding-right: 4px;
  }
  .rm-hamburger {
    display: flex;
    flex-shrink: 0;
    padding: 4px;
    min-width: 34px;
  }
  .rm-products-grid { grid-template-columns: repeat(2, 1fr); }
  .rm-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .rm-about-grid { grid-template-columns: 1fr; }
  .rm-about-image { order: -1; }
  .rm-reviews-grid { grid-template-columns: 1fr; }
  .rm-blog-grid { grid-template-columns: 1fr; }
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
  .rm-product-layout { grid-template-columns: 1fr; }
  .rm-footer-bottom { flex-direction: column; text-align: center; }
  .rm-topbar-right { display: none; }  /* hide right side on very small screens */
  /* mega panel hidden via #rm-nav display:none */
}
@media (max-width: 480px) {
  .rm-products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .rm-cat-grid { grid-template-columns: 1fr; }
  .rm-wrap { padding: 0 16px; box-sizing: border-box; max-width: 100%; }
}

/* ================================================================
   UTILITY
   ================================================================ */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}
.text-center { text-align: center; }
.text-red { color: var(--red); }
.text-gold { color: var(--gold); }
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

/* ================================================================
   WP ADMIN BAR OFFSET
   ================================================================ */
.admin-bar #rm-topbar { top: 32px; }
.admin-bar #rm-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar #rm-topbar { top: 46px; }
  .admin-bar #rm-header { top: 46px; }
}

/* ================================================================

/* ================================================================
   HEADER — fix logo left, nav center, icons right
   ================================================================ */

#rm-nav > ul { display: flex; align-items: stretch; gap: 0; }
#rm-nav > ul > li { position: relative; display: flex; align-items: stretch; }
#rm-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 14px;
  height: var(--hh);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--dark2);
  border-bottom: 3px solid transparent;
  white-space: nowrap;   /* ← prevent 2-line nav items */
  line-height: 1;
}
#rm-nav > ul > li > a:hover,
#rm-nav > ul > li.current-menu-item > a,
#rm-nav > ul > li.current-menu-ancestor > a {
  color: var(--red);
  border-bottom-color: var(--red);
}
.rm-header-icons { display: flex; align-items: center; gap: 2px; margin-left: 0; }

/* mega panel: see main block above */

.rm-mega-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0 20px;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 30px;
}
.rm-mega-col { min-width: 0; }
.rm-mega-col h4 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--dark);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 10px;
  white-space: nowrap;
}
.rm-mega-col h4 a { color: var(--dark); }
.rm-mega-col h4 a:hover { color: var(--red); }
.rm-mega-links { display: flex; flex-direction: column; gap: 7px; }
.rm-mega-links li a {
  font-size: 12px;
  color: var(--dark2);
  transition: color .15s;
  display: block;
}
.rm-mega-links li a:hover { color: var(--red); }

/* Regular dropdown (non-mega items with children) */
.rm-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: var(--white);
  border-top: 3px solid var(--red);
  box-shadow: 0 5px 15px rgba(0,0,0,.1);
  z-index: 9999;
  padding: 6px 0;
}
#rm-nav > ul > li:not(.mega-parent):hover .rm-dropdown { display: block; }
.rm-dropdown li a {
  display: block;
  padding: 7px 18px;
  font-size: 13px;
  color: var(--dark2);
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background .15s, color .15s;
}
.rm-dropdown li a:hover { background: var(--light); color: var(--red); }

/* ================================================================
   HERO SLIDER
   ================================================================ */
#rm-hero { min-height: 600px !important; }
.rm-hero-slider {
  position: relative;
  width: 100%;
  min-height: 600px;
  overflow: hidden;
}
.rm-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity .8s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rm-hero-slide.active { opacity: 1; z-index: 1; }
.rm-hero-slide .rm-hero-overlay { position: absolute; inset: 0; }
.rm-hero-slide .rm-hero-content { position: relative; z-index: 2; color: var(--white); padding: 60px 20px; max-width: 700px; }
.rm-hero-dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: 8px; }
.rm-hero-dots button { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.5); border: 2px solid rgba(255,255,255,.8); padding: 0; transition: background .3s; position: relative; }
.rm-hero-dots button::after { content: ''; position: absolute; inset: -15px; }
.rm-hero-dots button.active { background: var(--white); }
.rm-hero-prev, .rm-hero-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; background: rgba(0,0,0,.35); color: var(--white); border: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; cursor: pointer; transition: background .2s; }
.rm-hero-prev { left: 16px; }
.rm-hero-next { right: 16px; }
@media(max-width:768px){
  .rm-hero-prev, .rm-hero-next { top: 53%; }
}
.rm-hero-prev:hover, .rm-hero-next:hover { background: rgba(0,0,0,.65); }

/* ================================================================
   PRODUCT SLIDER
   ================================================================ */
.rm-product-slider-wrap { overflow: hidden; }
.rm-product-slider { display: flex; gap: 20px; transition: transform .4s ease; }
.rm-product-slider .rm-product-card { flex: 0 0 calc(25% - 15px); min-width: calc(25% - 15px); }
.rm-slider-btn { position: absolute; top: 40%; transform: translateY(-50%); background: var(--white); border: 1px solid var(--border); color: var(--dark2); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 5; box-shadow: 0 2px 8px rgba(0,0,0,.1); transition: background .2s, color .2s; font-size: 18px; }
.rm-slider-btn:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.rm-slider-prev { left: -18px; }
.rm-slider-next { right: -18px; }

/* ================================================================
   SEARCH OVERLAY
   ================================================================ */
#rm-search-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.7); z-index: 99999; align-items: flex-start; justify-content: center; padding-top: 100px; }
#rm-search-overlay.open { display: flex; }
.rm-search-box { background: var(--white); width: 100%; max-width: 640px; padding: 28px; position: relative; animation: rmSlideDown .25s ease; }
@keyframes rmSlideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.rm-search-box .rm-search-row { display: flex; border: 2px solid var(--border); }
.rm-search-box .rm-search-row:focus-within { border-color: var(--red); }
.rm-search-box select { border: none; border-right: 1px solid var(--border); padding: 0 12px; font-size: 13px; background: var(--light); outline: none; cursor: pointer; }
.rm-search-box input[type=text] { flex: 1; border: none; padding: 12px 14px; font-size: 15px; outline: none; }
.rm-search-box button[type=submit] { background: var(--red); color: var(--white); border: none; padding: 0 18px; font-family: var(--f-btn); font-size: 14px; cursor: pointer; transition: background .2s; }
.rm-search-box button[type=submit]:hover { background: var(--gold); }
.rm-search-close { position: absolute; top: 10px; right: 10px; background: none; border: none; font-size: 22px; cursor: pointer; color: var(--mid); line-height: 1; }
.rm-search-hints { margin-top: 14px; font-size: 12px; color: var(--mid); }
.rm-search-hints a { color: var(--red); }

/* ================================================================
   SHOP SEARCH + FILTERS
   ================================================================ */
.rm-shop-search { background: var(--light); padding: 16px 20px; margin-bottom: 20px; border: 1px solid var(--border); }
.rm-shop-search-row { display: flex; border: 2px solid var(--border); background: var(--white); max-width: 700px; margin: 0 auto; }
.rm-shop-search-row input { flex: 1; border: none; padding: 11px 16px; font-size: 14px; outline: none; }
.rm-shop-search-row button { background: var(--red); color: var(--white); border: none; padding: 0 22px; font-family: var(--f-btn); letter-spacing: 2px; text-transform: uppercase; font-size: 12px; cursor: pointer; transition: background .2s; }
.rm-shop-search-row button:hover { background: var(--gold); }
#rm-filters { background: var(--white); border: 1px solid var(--border); padding: 16px 20px; margin-bottom: 20px; }
#rm-filters h3 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0; padding-bottom: 0; border-bottom: none; display: flex; justify-content: space-between; align-items: center; cursor: pointer; border-bottom: 2px solid var(--red); padding-bottom: 8px; margin-bottom: 12px; }
#rm-filters h3 .rm-filter-toggle { font-size: 11px; color: var(--mid); font-weight: 400; text-transform: none; letter-spacing: 0; }
.rm-filter-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.rm-filter-group label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--mid); margin-bottom: 5px; }
.rm-filter-group select { width: 100%; padding: 7px 10px; border: 1px solid var(--border); font-size: 13px; background: var(--white); cursor: pointer; }
.rm-filter-group select:focus { outline: none; border-color: var(--red); }
.rm-price-range { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rm-price-range input { width: 75px; padding: 7px 8px; border: 1px solid var(--border); font-size: 13px; text-align: center; }
.rm-filter-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.rm-filter-tag { background: var(--light); border: 1px solid var(--border); padding: 3px 8px; font-size: 12px; display: flex; align-items: center; gap: 5px; }
.rm-filter-tag button { background: none; border: none; color: var(--mid); font-size: 14px; cursor: pointer; line-height: 1; padding: 0; }
.rm-filter-tag button:hover { color: var(--red); }

/* AJAX loading overlay on grid */
#rm-products-grid.rm-loading { opacity: .5; pointer-events: none; }
.rm-grid-spinner { text-align: center; padding: 20px; }

/* ================================================================
   LOAD MORE
   ================================================================ */
#rm-load-more-wrap { text-align: center; padding: 30px 0; }
.rm-load-more-btn { display: inline-block; padding: .4em 2em; font-family: var(--f-btn); font-size: 14px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; background: var(--white); color: var(--dark); border: 2px solid var(--dark); cursor: pointer; transition: all .25s; }
.rm-load-more-btn:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.rm-load-more-btn:disabled { opacity: .5; cursor: wait; }
.rm-loading-spinner { display: inline-block; width: 18px; height: 18px; border: 2px solid var(--border); border-top-color: var(--red); border-radius: 50%; animation: rmSpin .7s linear infinite; vertical-align: middle; margin-right: 8px; }
@keyframes rmSpin { to { transform: rotate(360deg); } }

/* Out of stock badge — overrides sale/new */
.rm-badge-oos { background: #888 !important; }

/* ================================================================
   SINGLE PRODUCT
   ================================================================ */
.rm-single-product { padding: 30px 0 60px; }
.rm-product-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
/* gallery CSS replaced - see below */
.rm-product-summary h1 { font-size: 1.5rem; margin-bottom: 10px; }
.rm-summary-price { font-size: 1.4rem; font-weight: 700; color: var(--dark); margin-bottom: 6px; }
.rm-summary-price del { font-size: 1rem; color: var(--mid); margin-right: 8px; font-weight: 400; }
.rm-summary-price ins { text-decoration: none; color: var(--red); }
.rm-afterpay-msg { font-size: 13px; color: var(--mid); margin-bottom: 12px; }
.rm-summary-short-desc { font-size: 14px; color: var(--mid); margin-bottom: 14px; border-bottom: 1px solid var(--border); padding-bottom: 14px; line-height: 1.7; }
.rm-summary-short-desc p { margin: 0 0 8px; }
.rm-summary-short-desc p:last-child { margin-bottom: 0; }
.rm-stock-badge { display: inline-block; padding: 3px 12px; font-size: 12px; font-weight: 700; margin-bottom: 14px; }
.rm-stock-badge.in-stock { background: #d4edda; color: #155724; }
.rm-stock-badge.out-stock { background: #f8d7da; color: #721c24; }
.rm-cart-form { display: flex; gap: 10px; margin-bottom: 18px; align-items: center; flex-wrap: wrap; }
.rm-qty-wrap { display: flex; border: 1px solid var(--border); }
.rm-qty-btn { width: 36px; height: 44px; border: none; background: var(--light); font-size: 20px; cursor: pointer; line-height: 1; }
.rm-qty-btn:hover { background: var(--border); }
.rm-qty-input { width: 52px; border: none; border-left: 1px solid var(--border); border-right: 1px solid var(--border); text-align: center; font-size: 15px; }
.rm-product-trust { display: flex; gap: 12px; flex-wrap: wrap; padding: 12px; background: var(--light); margin-top: 14px; font-size: 12px; color: var(--mid); }
.rm-product-trust-item { display: flex; align-items: center; gap: 5px; }
.rm-product-meta { font-size: 13px; color: var(--mid); line-height: 2; border-top: 1px solid var(--border); padding-top: 14px; margin-top: 10px; }
.rm-product-meta strong { color: var(--dark2); }
.rm-product-meta a:hover { color: var(--red); }
.rm-tabs-wrap { margin-top: 40px; }
.rm-tabs-nav { display: flex; border-bottom: 2px solid var(--border); margin-bottom: 20px; }
.rm-tabs-nav a { padding: 10px 24px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--mid); border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; transition: color .2s; }
.rm-tabs-nav a.active { color: var(--red); border-bottom-color: var(--red); }
.rm-tab-panel { display: none; line-height: 1.8; color: var(--mid); font-size: 14px; }
.rm-tab-panel.active { display: block; }

/* ================================================================
   TOPBAR MENU (right side)
   ================================================================ */
#rm-topbar .rm-topbar-menu { margin-left: auto; }
#rm-topbar .rm-topbar-nav,
#rm-topbar .rm-topbar-nav ul { display: flex; gap: 0; align-items: center; list-style: none; margin: 0; padding: 0; }
#rm-topbar .rm-topbar-nav li a,
#rm-topbar .rm-topbar-nav > li > a {
  color: rgba(255,255,255,.9); font-size: 11px; padding: 0 9px;
  border-right: 1px solid rgba(255,255,255,.25); display: block; line-height: 1;
}
#rm-topbar .rm-topbar-nav li:last-child a { border-right: none; }
#rm-topbar .rm-topbar-nav li a:hover { color: #fff; }
#rm-topbar .rm-topbar-inline,
#rm-topbar .rm-topbar-inline ul { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
#rm-topbar .rm-topbar-inline li a { color: rgba(255,255,255,.9); font-size: 11px; padding: 0 8px; border-right: 1px solid rgba(255,255,255,.2); }
#rm-topbar .rm-topbar-inline li:last-child a { border-right: none; }

/* ================================================================
   BLOG PAGE
   ================================================================ */
.rm-blog-showcase { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-bottom: 40px; }
.rm-blog-showcase .rm-blog-card { border: 1px solid var(--border); }
.rm-blog-showcase .rm-blog-thumb img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
  .rm-product-slider .rm-product-card { flex: 0 0 calc(33.333% - 14px); min-width: calc(33.333% - 14px); }
  .rm-mega-inner { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
  :root { --hh: 60px; }
  #rm-header .rm-wrap { padding: 0 !important; }
  #rm-header .rm-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
    overflow: hidden;
  }
  #rm-header .rm-header-inner > .rm-logo {
    min-width: unset;
    flex: 0 0 auto;
    max-width: 50%;
    overflow: hidden;
    margin-right: 0;
    padding-left: 4px;
  }
  #rm-header .rm-header-inner #rm-nav { display: none; }
  #rm-header .rm-header-inner .rm-header-icons {
    flex-shrink: 0;
    gap: 2px;
    padding-right: 4px;
  }
  .rm-hamburger {
    display: flex;
    flex-shrink: 0;
    padding: 4px;
    min-width: 34px;
  }
  #rm-header .rm-header-inner { grid-template-columns: auto 1fr auto; }
  .rm-product-slider .rm-product-card { flex: 0 0 calc(50% - 10px); min-width: calc(50% - 10px); }
  .rm-filter-grid { grid-template-columns: 1fr 1fr; }
  #rm-hero, .rm-hero-slider { min-height: 420px !important; }
  .rm-product-layout { grid-template-columns: 1fr; }
  .rm-blog-showcase { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .rm-product-slider .rm-product-card { flex: 0 0 100%; min-width: 100%; }
  .rm-wrap { padding: 0 16px; box-sizing: border-box; max-width: 100%; }
}

/* ================================================================
   FOOTER 5-COLUMN RESPONSIVE
   ================================================================ */
.rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
@media(max-width:1100px){
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
}
@media(max-width:768px){
    /* Global: prevent horizontal scroll */
    html, body { overflow-x: hidden !important; max-width: 100vw; }
    #rm-header { overflow: hidden; }
    #rm-nav { overflow: visible; }
    /* mega panel hidden via #rm-nav display:none */
    * { box-sizing: border-box; }
    /* Layout */
    .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
    .rm-cat-grid { grid-template-columns: 1fr !important; }
    .rm-about-grid { grid-template-columns: 1fr !important; }
    .rm-single-grid { grid-template-columns: 1fr !important; }
    .rm-shop-wrapper { grid-template-columns: 1fr !important; }
    .rm-sidebar { display: none; }
    /* Header */
    .rm-hamburger { display: flex !important; }
    #rm-nav { display: none !important; }
    /* mega panel hidden via #rm-nav display:none */
    .rm-topbar-menu { display: flex; gap: 8px; font-size: 11px; }
  .rm-topbar-menu a { font-size: 10px; padding: 0 4px; }
  .rm-topbar-left { font-size: 10px; flex-shrink: 0; }
    /* Wrap padding */
    .rm-wrap { padding: 0 16px; }
    /* Product sliders: 2 visible on mobile */
    .rm-product-slider { gap: 12px !important; }
    .rm-product-slider .rm-product-card { flex: 0 0 calc(50% - 6px) !important; min-width: calc(50% - 6px) !important; }
    /* Extra section sliders: 2 visible */
    [id^="rmsl-"] .rm-product-card,
    [id^="rmes-"] .rm-product-card { flex: 0 0 calc(50% - 6px) !important; min-width: calc(50% - 6px) !important; }
    /* Shop landing */
    .rm-shop-landing-wrap,
    .rm-shop-landing-wrap > div,
    .rm-shop-landing-wrap .rm-wrap { padding-left: 16px !important; padding-right: 16px !important; }
    /* Category grid in shop landing */
    .rm-shop-landing-wrap [style*="grid-template-columns"] { grid-template-columns: repeat(2,1fr) !important; }
    /* Section slider prev/next buttons */
    .rm-slider-prev { left: 0 !important; }
    .rm-slider-next { right: 0 !important; }
    /* Reviews layout */
    .rm-rev-wrap { grid-template-columns: 1fr !important; }
    #rm-rev-slider > div { flex: 0 0 100% !important; min-width: 100% !important; }
    /* Section head flex */
    .rm-section-head { flex-wrap: wrap; gap: 10px; }
}
/* ═══════════════════════════════════════════
   SINGLE PRODUCT GALLERY — v2
   ═══════════════════════════════════════════ */

/* Wrapper: stage + zoom result side by side */
.rm-gal-wrap {
  position: relative;
  display: block; /* not flex - zoom-result absolute needs simple parent */
}

/* Stage: the visible image area.
   aspect-ratio reserves the box's height BEFORE any image has loaded
   (avoids the old bug where height was purely auto/content-driven,
   causing the page to visibly jump as each image finished loading).
   The 1/1 here is only a fallback for the very first paint — the PHP
   template sets an inline aspect-ratio matching the FIRST image's own
   real proportions, and JS (goTo()) updates it to match whichever
   image is active as you browse the gallery, so a square photo, a
   portrait rug, and a long hallway-runner photo each get their own
   correctly-shaped box instead of all being force-cropped to a square. */
.rm-gal-stage {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 1 / 1;
  overflow: hidden !important; /* guarantees nothing (image or zoom overlay) can ever visually bleed past this box into the thumbnail row below, regardless of what's rendered inside */
  background: var(--light);
  cursor: crosshair;
  flex-shrink: 0;
  transition: aspect-ratio .3s ease;
}

/* All images stacked in the same box; object-fit:contain is now just
   a safety net (the box matches each image's real ratio, so there's
   normally no letterboxing needed) rather than doing the heavy
   lifting. Crossfade + slight scale between slides ("morph cut")
   instead of an abrupt display:none/block swap. */
.rm-gal-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  opacity: 0;
  visibility: hidden;
  transform: scale(.97);
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
  z-index: 1;
}

/* Active image: visible */
.rm-gal-img.rm-gal-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  pointer-events: auto;
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear 0s;
  z-index: 2;
}

/* Loading spinner — shown only while the newly-active slide's image
   hasn't finished loading yet (goTo() in JS toggles the .show class). */
.rm-gal-spin {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  z-index: 6;
}
.rm-gal-spin.show { opacity: 1; }
.rm-gal-spin span {
  width: 34px; height: 34px;
  border: 3px solid rgba(0,0,0,.12);
  border-top-color: var(--red);
  border-radius: 50%;
  animation: rm-spin .7s linear infinite;
}
@keyframes rm-spin { to { transform: rotate(360deg); } }

/* Prev / Next arrows */
.rm-gal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 15;   /* above zoom overlay (z-index:8) */
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.90);
  border: none;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  opacity: 0;
  transition: opacity .2s, background .15s;
  padding: 0;
  color: var(--dark);
}
/* Expanded invisible hit-area — the visual circle stays 38px, but the
   actual clickable/tappable region is considerably larger (roughly
   68px), well above the ~44px minimum recommended touch target, so
   prev/next are easy to hit without needing a bigger-looking button. */
.rm-gal-arrow::after {
  content: '';
  position: absolute;
  inset: -15px;
}
.rm-gal-stage:hover .rm-gal-arrow { opacity: 1; }
.rm-gal-arrow:hover { background: #fff; }
.rm-gal-prev { left: 10px; }
.rm-gal-next { right: 10px; }

/* Counter badge */
.rm-gal-counter {
  position: absolute;
  bottom: 10px;
  right: 10px;
  z-index: 10;
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 11px;
  font-family: var(--f-body);
  padding: 3px 9px;
  border-radius: 100px;
  pointer-events: none;
}

/* Zoom result box */
/* .rm-zoom-result removed — using inline overlay */

/* Thumbnails */
.rm-gal-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-top: 10px;
  width: 100%;
  box-sizing: border-box;
}
.rm-gal-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color .15s, opacity .15s;
  opacity: .75;
}
.rm-gal-thumb.rm-gal-active,
.rm-gal-thumb:hover { border-color: var(--red); opacity: 1; }

/* Lightbox */
#rm-lb {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.9);
  z-index: 99999;
  align-items: center;
  justify-content: center;
}
#rm-lb-inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 92vw;
}
#rm-lb-img {
  max-width: 80vw;
  max-height: 88vh;
  object-fit: contain;
  display: block;
  box-shadow: 0 8px 40px rgba(0,0,0,.5);
}
#rm-lb-close {
  position: fixed;
  top: 18px; right: 22px;
  background: none; border: none;
  color: #fff; font-size: 28px;
  cursor: pointer; line-height: 1; z-index: 2;
}
#rm-lb-p, #rm-lb-n {
  background: rgba(255,255,255,.15);
  border: none; color: #fff;
  font-size: 36px; width: 50px; height: 50px;
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .15s;
}
#rm-lb-p:hover, #rm-lb-n:hover { background: rgba(255,255,255,.28); }

/* Prose (description, care) */
.rm-prose { font-size: 14px; line-height: 1.75; color: var(--dark2); }
.rm-prose p   { margin: 0 0 1em; }
.rm-prose h1,.rm-prose h2,.rm-prose h3,.rm-prose h4 { font-family: var(--f-btn); margin: 1.4em 0 .5em; color: var(--dark); }
.rm-prose ul,.rm-prose ol { padding-left: 22px; margin: 0 0 1em; }
.rm-prose li  { margin-bottom: .4em; }
.rm-prose a   { color: var(--red); text-decoration: underline; }
.rm-prose strong { font-weight: 700; }

/* Spec table */
.rm-spec-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rm-spec-table th { padding: 9px 14px; border: 1px solid var(--border); background: var(--light); text-align: left; width: 38%; font-weight: 700; }
.rm-spec-table td { padding: 9px 14px; border: 1px solid var(--border); }
.rm-spec-table tr:nth-child(even) td { background: #faf8f5; }

/* Mobile: hide zoom on small screens */
@media(max-width:899px){
  /* Always show arrows on mobile */
  .rm-gal-arrow { opacity: 1 !important; background: rgba(255,255,255,.85) !important; }
  .rm-gal-stage { cursor: zoom-in; }
}


/* ── Reviews in single product tab ── */
#rm-tab-reviews .commentlist { list-style: none; margin: 0; padding: 0; }
#rm-tab-reviews .commentlist li.review {
  display: flex; gap: 16px; padding: 20px 0;
  border-bottom: 1px solid var(--border);
}
#rm-tab-reviews .commentlist li.review:last-child { border-bottom: none; }
#rm-tab-reviews .comment-text { flex: 1; }
#rm-tab-reviews .star-rating { color: #f59e0b; font-size: 14px; margin-bottom: 6px; }
#rm-tab-reviews .woocommerce-review__author { font-weight: 700; color: var(--dark); font-size: 14px; }
#rm-tab-reviews .woocommerce-review__dash { display: none; }
#rm-tab-reviews .woocommerce-review__published-date { font-size: 11px; color: var(--mid); margin-left: 8px; }
#rm-tab-reviews .description p { font-size: 14px; line-height: 1.7; color: #555; margin: 8px 0 0; }
#rm-tab-reviews .woocommerce-review__gravatar img { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--border); }
/* Review form */
#review_form_wrapper { margin-top: 28px; padding-top: 24px; border-top: 2px solid var(--border); }
#review_form_wrapper h3 { font-family: var(--f-btn); font-size: .9rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 16px; }
#review_form .stars a { color: #f59e0b; font-size: 20px; text-decoration: none; }
#review_form p { margin-bottom: 12px; }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
  width: 100%; padding: 9px 12px;
  border: 1.5px solid var(--border); border-radius: 4px;
  font-family: var(--f-heading); font-size: 13px;
  transition: border-color .15s;
}
#review_form input:focus, #review_form textarea:focus {
  border-color: var(--red); outline: none;
  box-shadow: 0 0 0 3px rgba(224,43,32,.08);
}
#review_form textarea { min-height: 100px; resize: vertical; }
#review_form #submit {
  background: var(--red); color: #fff; border: none;
  padding: 10px 28px; font-family: var(--f-btn);
  font-size: 12px; font-weight: 600; letter-spacing: 2px;
  text-transform: uppercase; cursor: pointer; border-radius: 4px;
}
#review_form #submit:hover { background: #c0241a; }


/* ── Add to Cart mini dialog ── */
#rm-atc-dialog {
  position: fixed !important;
  top: 80px !important;
  bottom: auto !important;
  left: auto !important;
  right: -400px !important;
  width: min(340px, calc(100vw - 32px)) !important;
  max-width: 340px !important;
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.18) !important;
  z-index: 999999 !important;
  overflow: hidden !important;
  transition: right .35s cubic-bezier(.4,0,.2,1) !important;
}
#rm-atc-dialog.rm-atc-open {
  right: 16px !important;
  bottom: auto !important;
}
#rm-atc-dialog .rm-atc-header {
  background: var(--dark);
  color: #fff;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-btn);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
#rm-atc-dialog .rm-atc-close {
  margin-left: auto;
  background: none;
  border: none;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
#rm-atc-dialog .rm-atc-body {
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
#rm-atc-dialog .rm-atc-img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  background: var(--light);
  display: block;
}
#rm-atc-dialog .rm-atc-img[src=""],
#rm-atc-dialog .rm-atc-img:not([src]) { display: none; }
#rm-atc-dialog .rm-atc-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 4px;
  line-height: 1.3;
}
#rm-atc-dialog .rm-atc-price { font-size: 13px; color: var(--red); font-weight: 700; }
#rm-atc-dialog .rm-atc-footer {
  padding: 10px 14px;
  display: flex;
  gap: 8px;
  border-top: 1px solid var(--border);
}
#rm-atc-dialog .rm-atc-footer a {
  flex: 1;
  text-align: center;
  padding: 8px;
  font-family: var(--f-btn);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
}
#rm-atc-dialog .rm-atc-view { background: var(--light); color: var(--dark); border: 1px solid var(--border); }
#rm-atc-dialog .rm-atc-checkout { background: var(--red); color: #fff; }


/* ================================================================
   ADVANCED FILTER BAR
   ================================================================ */
.rm-filter-bar {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-bottom: 24px;
}
.rm-filter-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 0 4px;
}
.rm-filter-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--mid);
  padding: 0 12px;
  border-right: 1px solid var(--border);
  height: 44px;
  flex-shrink: 0;
}
.rm-filter-groups {
  display: flex;
  flex-wrap: wrap;
  flex: 1;
}
.rm-filter-group {
  position: relative;
}
.rm-filter-group-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  border-right: 1px solid var(--border);
  padding: 0 14px;
  height: 44px;
  font-family: var(--f-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--dark);
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.rm-filter-group-btn:hover,
.rm-filter-active .rm-filter-group-btn { background: var(--light); color: var(--red); }
.rm-fg-arrow { transition: transform .2s; flex-shrink: 0; }
.rm-filter-group.rm-fg-open .rm-fg-arrow { transform: rotate(180deg); }

/* Dropdown */
.rm-filter-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.15);
  z-index: 9999;
  padding: 8px 0;
  max-height: 300px;
  overflow-y: auto;
}
.rm-filter-group.rm-fg-open .rm-filter-dropdown { display: block; }

.rm-filter-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 13px;
  color: var(--dark);
  cursor: pointer;
  transition: background .1s;
}
.rm-filter-option:hover { background: var(--light); }
.rm-filter-option input[type="checkbox"] { accent-color: var(--red); flex-shrink: 0; }
.rm-fo-count { color: var(--mid); font-size: 11px; margin-left: auto; }
.rm-fo-active { font-weight: 700; color: var(--red); }
.rm-fo-active .rm-fo-count { color: var(--red); }

/* Active group indicator */
.rm-filter-active .rm-filter-group-btn {
  color: var(--red);
}

/* Clear button */
.rm-filter-clear {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
  padding: 0 14px;
  background: none;
  border: none;
  border-left: 1px solid var(--border);
  height: 44px;
  font-family: var(--f-heading);
  font-size: 12px;
  font-weight: 600;
  color: var(--mid);
  cursor: pointer;
  transition: color .15s;
  white-space: nowrap;
}
.rm-filter-clear:hover { color: var(--red); }

/* Results count */
.rm-filter-count {
  font-size: 13px;
  color: var(--mid);
  margin-bottom: 16px;
}
.rm-filter-count strong { color: var(--dark); }

/* Loading overlay */
.rm-filter-loading {
  opacity: .5;
  pointer-events: none;
  transition: opacity .2s;
}

@media(max-width:768px){
  .rm-filter-label { display: none; }
  .rm-filter-group-btn { font-size: 12px; padding: 0 10px; height: 40px; white-space: nowrap; }
  .rm-filter-groups {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;  /* allow dropdown to show */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;  /* prevent clipping */
  }
  .rm-filter-groups::-webkit-scrollbar { display: none; }
  .rm-filter-bar { overflow: visible; }  /* ensure bar doesn't clip */
  .rm-filter-inner { overflow: visible; }
  .rm-filter-dropdown {
    position: fixed;
    left: 8px;
    right: 8px;
    top: auto;
    width: auto;
    min-width: unset;
    max-height: 50vh;
    overflow-y: auto;
    z-index: 9999;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
  }
}

/* Range slider */
.rm-range-input {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: transparent;
}
.rm-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--red);
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
  pointer-events: all !important;
}
.rm-range-input::-moz-range-thumb {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--red);
  cursor: pointer;
  border: 2px solid #fff;
  pointer-events: all !important;
}

/* ================================================================
   SINGLE BLOG POST
   ================================================================ */
.rm-blog-wrap { padding: 40px 0 60px; }

.rm-blog-single {
  max-width: 860px;
  margin: 0 auto;
}

/* ── Post header ── */
.rm-post-header { margin-bottom: 24px; }
.rm-post-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rm-post-cat-tag {
  background: var(--red);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 3px;
  text-decoration: none;
}
.rm-post-cat-tag-sm { font-size: 10px; padding: 2px 8px; }
.rm-post-cat-tag:hover { opacity: .85; }
.rm-post-title { font-size: clamp(1.5rem,3vw,2rem); line-height: 1.25; margin: 0 0 14px; }
.rm-post-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--mid);
  flex-wrap: wrap;
}
.rm-post-meta svg { flex-shrink: 0; }
.rm-post-meta .rm-post-cat-tag { font-size: 10px; padding: 2px 8px; }
.rm-meta-sep { color: var(--border); }

/* Featured image */
.rm-post-thumb {
  margin-bottom: 28px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.rm-post-featured-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  object-position: center top;
  display: block;
}
@media(max-width:768px){
  .rm-post-featured-img { height: 220px; }
}

/* ── TOC ── */
.rm-toc {
  background: var(--light);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: 6px;
  margin-bottom: 28px;
  overflow: hidden;
}
.rm-toc-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 700;
  font-size: 13px;
  user-select: none;
}
.rm-toc-header:hover { background: rgba(0,0,0,.03); }
.rm-toc-header .rm-toc-arrow { margin-left: auto; transition: transform .2s; }
.rm-toc.rm-toc-open .rm-toc-arrow { transform: rotate(180deg); }
.rm-toc-list {
  display: none;
  margin: 0;
  padding: 8px 16px 14px 28px;
  list-style: decimal;
}
.rm-toc.rm-toc-open .rm-toc-list { display: block; }
.rm-toc-list li { margin: 5px 0; font-size: 13px; }
.rm-toc-list a { color: var(--dark2); text-decoration: none; }
.rm-toc-list a:hover { color: var(--red); }
.rm-toc-h3 { padding-left: 12px; font-size: 12px; }
.rm-toc-h4 { padding-left: 24px; font-size: 11px; }

/* ── Post body ── */
.rm-post-body {
  font-size: 15px;
  line-height: 1.8;
  color: #333;
}
.rm-post-body h2 { font-size: 1.3rem; margin: 32px 0 14px; border-bottom: 2px solid var(--light); padding-bottom: 8px; }
.rm-post-body h3 { font-size: 1.1rem; margin: 24px 0 10px; }
.rm-post-body p { margin: 0 0 16px; }
.rm-post-body img { max-width: 100%; border-radius: 6px; }
.rm-post-body a { color: var(--red); }
.rm-post-body ul, .rm-post-body ol { padding-left: 24px; margin-bottom: 16px; }
.rm-post-body li { margin-bottom: 6px; }
.rm-post-body blockquote {
  border-left: 3px solid var(--red);
  margin: 20px 0;
  padding: 12px 20px;
  background: var(--light);
  border-radius: 0 6px 6px 0;
  font-style: italic;
}

/* ── Promo block ── */
.rm-post-promo {
  margin: 32px 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
}
.rm-promo-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
}
.rm-promo-img { width: 110px; height: 110px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.rm-promo-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--mid); margin-bottom: 6px; }
.rm-promo-title { font-weight: 700; font-size: 1rem; margin-bottom: 4px; color: var(--dark); }
.rm-promo-price { color: var(--dark); font-weight: 700; margin-bottom: 12px; font-size:.95rem; }
.rm-promo-desc { font-size: 13px; color: var(--mid); margin-bottom: 10px; }
.rm-promo-btn {
  display: inline-block;
  background: var(--dark);
  color: #fff !important;
  padding: 8px 20px;
  border-radius: 4px;
  font-family: var(--f-btn);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background .2s;
}
.rm-promo-btn:hover { background: var(--red) !important; color: #fff !important; }

/* ── Post footer ── */
.rm-post-cats-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 32px 0 16px;
  padding: 16px 0;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--mid);
}
.rm-post-cats-footer a { color: var(--dark2); text-decoration: none; font-weight: 600; }
.rm-post-cats-footer a:hover { color: var(--red); }

.rm-post-sources {
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 16px 20px;
  margin: 16px 0 32px;
}
.rm-post-sources h4 {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  margin: 0 0 10px;
  color: var(--mid);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rm-post-sources ul { margin: 0; padding-left: 18px; }
.rm-post-sources li { font-size: 13px; margin-bottom: 4px; }
.rm-post-sources a { color: var(--red); text-decoration: none; }
.rm-post-sources a:hover { text-decoration: underline; }

/* ── Comments ── */
.rm-post-comments { margin-top: 48px; padding-top: 36px; border-top: 2px solid var(--light); }

/* Comment list */
.rm-post-comments .comments-title {
  font-family: var(--f-heading);
  font-size: 1.1rem;
  margin: 0 0 24px;
}
.rm-post-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.rm-post-comments .comment {
  padding: 20px 0;
  border-bottom: 1px solid var(--light);
}
.rm-post-comments .comment-body { display: flex; gap: 14px; }
.rm-post-comments .comment-author img {
  width: 44px; height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--border);
}
.rm-post-comments .comment-content { flex: 1; }
.rm-post-comments .comment-meta { margin-bottom: 6px; }
.rm-post-comments .comment-author .fn {
  font-weight: 700;
  font-size: 14px;
  font-style: normal;
  color: var(--dark);
}
.rm-post-comments .comment-metadata {
  font-size: 12px;
  color: var(--mid);
  margin-top: 2px;
}
.rm-post-comments .comment-metadata a { color: var(--mid); text-decoration: none; }
.rm-post-comments .comment-content p { font-size: 14px; line-height: 1.7; margin: 8px 0; color: #444; }
.rm-post-comments .reply { margin-top: 8px; }
.rm-post-comments .reply a {
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rm-post-comments .children {
  list-style: none;
  padding-left: 58px;
  margin: 0;
  border-left: 2px solid var(--border);
  margin-left: 22px;
}

/* Comment form */
.rm-post-comments #respond {
  margin-top: 36px;
  background: var(--light);
  border-radius: 10px;
  padding: 24px;
}
.rm-post-comments #respond h3 {
  font-size: 1rem;
  margin: 0 0 20px;
  font-family: var(--f-heading);
}
.rm-post-comments .comment-form p { margin-bottom: 14px; }
.rm-post-comments .comment-form label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mid);
  margin-bottom: 5px;
}
.rm-post-comments .comment-form input[type="text"],
.rm-post-comments .comment-form input[type="email"],
.rm-post-comments .comment-form input[type="url"],
.rm-post-comments .comment-form textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: var(--f-heading);
  font-size: 14px;
  background: #fff;
  transition: border-color .2s;
  box-sizing: border-box;
}
.rm-post-comments .comment-form input:focus,
.rm-post-comments .comment-form textarea:focus {
  outline: none;
  border-color: var(--red);
}
.rm-post-comments .comment-form textarea { min-height: 120px; resize: vertical; }
.rm-post-comments .comment-form-comment { margin-bottom: 14px; }
.rm-post-comments .form-submit input[type="submit"] {
  background: var(--red);
  color: #fff;
  border: none;
  padding: 10px 24px;
  border-radius: 4px;
  font-family: var(--f-btn);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
}
.rm-post-comments .form-submit input[type="submit"]:hover { background: var(--dark); }

/* ── Sidebar ── */



.rm-blog-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.rm-blog-card-img { display: block; aspect-ratio: 16/9; overflow: hidden; }
.rm-blog-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.rm-blog-card:hover .rm-blog-card-img img { transform: scale(1.04); }
.rm-blog-card-placeholder { width: 100%; height: 100%; background: var(--light); }
.rm-blog-card-body { padding: 14px; }
.rm-blog-card-body h4 { font-size: .9rem; margin: 8px 0 6px; line-height: 1.4; }
.rm-blog-card-body h4 a { color: var(--dark); text-decoration: none; }
.rm-blog-card-body h4 a:hover { color: var(--red); }
.rm-blog-card-body p { font-size: 12px; color: var(--mid); margin: 0 0 8px; line-height: 1.5; }
.rm-blog-date { font-size: 11px; color: var(--mid); }

@media(max-width:900px){
  .rm-blog-layout { grid-template-columns: 1fr; }
  .rm-blog-sidebar { position: static; }
  .rm-toc-sticky { display: none; }
  .rm-related-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px){
  .rm-related-grid { grid-template-columns: 1fr; }
  .rm-promo-inner { flex-direction: column; }
}

/* ================================================================
   ABOUT US PAGE
   ================================================================ */
.rm-about-hero {
  position: relative;
  background: var(--dark) center/cover no-repeat;
  min-height: 480px;
  display: flex;
  align-items: center;
}
.rm-about-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}
.rm-about-hero-inner { position: relative; z-index: 1; padding: 60px 0; }
.rm-about-hero-content { max-width: 680px; color: #fff; }
.rm-about-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .75;
  margin-bottom: 12px;
}
.rm-about-hero-content h1 { font-size: clamp(1.6rem,3vw,2.4rem); margin-bottom: 16px; }
.rm-about-hero-content p { font-size: 15px; line-height: 1.8; opacity: .9; margin-bottom: 24px; }

/* Values strip */
.rm-about-values {
  background: var(--light);
  padding: 36px 0;
  border-bottom: 1px solid var(--border);
}
.rm-about-values .rm-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 24px;
  text-align: center;
}
.rm-value-item { padding: 8px; }
.rm-value-icon { font-size: 2rem; margin-bottom: 8px; }
.rm-value-title { font-weight: 700; font-size: 13px; margin-bottom: 4px; color: var(--dark); }
.rm-value-desc { font-size: 12px; color: var(--mid); line-height: 1.5; }

/* Story */
.rm-about-story { padding: 60px 0; }
.rm-about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.rm-story-full { grid-column: 1/-1; max-width: 760px; margin: 0 auto; }
.rm-about-story-img img { width: 100%; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,.12); }
.rm-about-story-text h2 { font-size: 1.6rem; margin-bottom: 16px; }
.rm-about-story-text p { font-size: 15px; line-height: 1.8; color: #444; margin-bottom: 14px; }

@media(max-width:768px){
  .rm-about-story-grid { grid-template-columns: 1fr; }
  .rm-about-hero { min-height: 340px; }
}

/* ================================================================
   CONTACT US PAGE
   ================================================================ */
.rm-contact-wrap { padding: 50px 0 60px; }
.rm-contact-header { text-align: center; margin-bottom: 40px; }
.rm-contact-header h1 { font-size: clamp(1.6rem,3vw,2.2rem); margin-bottom: 10px; }
.rm-contact-header p { color: var(--mid); font-size: 15px; max-width: 500px; margin: 0 auto; }

.rm-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  align-items: start;
}
/* Info always col1, Form always col2 on desktop */
.rm-contact-info      { order: 1; }
.rm-contact-form-wrap { order: 2; }

@media (max-width: 768px) {
  .rm-contact-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  /* Mobile: info(1) → form(2), map is outside grid so always last */
  .rm-contact-info      { order: 1; padding: 0 16px; }
  .rm-contact-form-wrap { order: 2; margin: 0 16px; }
  .rm-contact-map-full  { margin-left: 16px; margin-right: 16px; }
}
/* Map full-width below grid - always last */
.rm-contact-map-full {
  margin-top: 32px;
}
.rm-contact-map-full iframe {
  width: 100%;
  height: 380px;
  border: 0;
  border-radius: 8px;
  display: block;
}

/* Info */
.rm-contact-item {
  display: flex;
  gap: 14px;
  margin-bottom: 24px;
  align-items: flex-start;
}
.rm-contact-icon {
  width: 42px;
  height: 42px;
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--red);
}
.rm-contact-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mid);
  margin-bottom: 3px;
}
.rm-contact-item a { color: var(--dark); text-decoration: none; font-size: 14px; font-weight: 600; }
.rm-contact-item a:hover { color: var(--red); }
.rm-contact-item span { font-size: 14px; line-height: 1.6; }
.rm-contact-map { margin-top: 8px; border-radius: 8px; overflow: hidden; }

/* Form */
.rm-contact-form-wrap {
  background: var(--light);
  border-radius: 12px;
  padding: 32px;
}
.rm-cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rm-cf-field { margin-bottom: 18px; }
.rm-cf-field label { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--mid); margin-bottom: 6px; }
.rm-cf-field label span { color: var(--red); }
.rm-cf-field input, .rm-cf-field textarea, .rm-cf-field select {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: var(--f-heading);
  font-size: 14px;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .2s;
}
.rm-cf-field select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 38px;
  cursor: pointer;
  color: var(--dark);
}
.rm-cf-field input:focus, .rm-cf-field textarea:focus, .rm-cf-field select:focus { outline: none; border-color: var(--red); }
.rm-cf-field textarea { resize: vertical; min-height: 140px; }
.rm-contact-form .rm-btn { display: inline-flex; align-items: center; gap: 8px; }
.rm-contact-success { text-align: center; padding: 40px 20px; }
.rm-contact-success h3 { font-size: 1.2rem; margin: 12px 0 6px; }
.rm-contact-success p { color: var(--mid); }
.rm-contact-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; padding: 10px 14px; border-radius: 6px; font-size: 13px; margin-bottom: 16px; }

@media(max-width:768px){
  .rm-contact-grid { grid-template-columns: 1fr; }
  .rm-cf-row { grid-template-columns: 1fr; }
  .rm-contact-form-wrap { padding: 20px; }
}
/* ── Nav responsive breakpoints ── */
@media(max-width:1400px){
  #rm-nav > ul > li > a { padding: 0 10px; font-size: 12px; letter-spacing: 0; }
}
@media(max-width:1200px){
  #rm-nav > ul > li > a { padding: 0 7px; font-size: 11px; }
  #rm-header .rm-header-inner > .rm-logo { margin-right: 12px; }
  #rm-header .rm-header-inner > .rm-header-icons { margin-left: 12px; gap: 1px; }
}
@media(max-width:1024px){
  #rm-nav > ul > li > a { padding: 0 5px; font-size: 10.5px; }
  #rm-header .rm-header-inner > .rm-logo img { height: 40px !important; }
  .rm-header-icon { width: 32px !important; height: 32px !important; }
}

/* ================================================================
   REVIEWS SLIDER
   ================================================================ */
.rm-reviews-section { padding: 50px 0; background: var(--light); }
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.rm-rating-badge { display: flex; align-items: center; gap: 12px; }
.rm-rating-score { font-size: 2rem; font-weight: 700; line-height: 1; }
.rm-rating-stars { display: flex; gap: 2px; margin: 4px 0; }
.rm-rating-count { font-size: 12px; color: var(--mid); }

.rm-reviews-slider-wrap { position: relative; }
.rm-reviews-slider { display: flex; gap: 20px; transition: transform .4s ease; }
.rm-review-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px;
  flex: 0 0 calc(33.333% - 14px);
}
.rm-review-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rm-review-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--red); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 16px; flex-shrink: 0;
}
.rm-review-name { font-weight: 700; font-size: 14px; }
.rm-review-date { font-size: 11px; color: var(--mid); }
.rm-review-stars { display: flex; gap: 2px; margin-bottom: 10px; }
.rm-review-text {
  font-size: 13px;
  line-height: 1.6;
  color: #444;
  margin: 0;
  height: 80px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,.15) transparent;
}
.rm-review-text::-webkit-scrollbar { width: 3px; }
.rm-review-text::-webkit-scrollbar-track { background: transparent; }
.rm-review-text::-webkit-scrollbar-thumb { background: rgba(0,0,0,.2); border-radius: 2px; }
.rm-review-text.expanded { overflow-y: auto; }
/* Scroll indicator */
.rm-review-scroll-hint {
  display: none;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--red);
  font-weight: 600;
  cursor: default;
  user-select: none;
  opacity: .75;
}
.rm-review-scroll-hint.visible { display: flex; }
.rm-review-scroll-hint svg { flex-shrink: 0; }
.rm-review-more {
  display: none;
  margin-top: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.rm-rev-prev, .rm-rev-next {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: #fff; border: 1px solid var(--border);
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; cursor: pointer; border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  z-index: 5; color: var(--dark);
}
.rm-rev-prev { left: -18px; }
.rm-rev-next { right: -18px; }
.rm-rev-prev:hover, .rm-rev-next:hover { background: var(--red); color: #fff; border-color: var(--red); }

/* ── Comment section ── */
.rm-post-comments { margin-top: 48px; padding-top: 36px; border-top: 2px solid var(--light); }
.rm-post-comments .comments-title { font-family: var(--f-heading); font-size: 1.1rem; margin: 0 0 24px; }
.rm-post-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.rm-post-comments .comment { margin-bottom: 0; }
.rm-post-comments .comment-body {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--light);
}
.rm-post-comments .comment-author {
  flex-shrink: 0;
}
.rm-post-comments .comment-author img {
  width: 48px; height: 48px;
  border-radius: 50%; object-fit: cover;
  border: 2px solid var(--border);
  display: block;
}
.rm-post-comments .comment-content-wrap { flex: 1; min-width: 0; }
.rm-post-comments .comment-top {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.rm-post-comments .fn {
  font-weight: 700; font-size: 14px;
  font-style: normal; color: var(--dark);
}
.rm-post-comments .comment-metadata {
  font-size: 12px; color: var(--mid);
}
.rm-post-comments .comment-metadata a { color: var(--mid); text-decoration: none; }
.rm-post-comments .comment-content p {
  font-size: 14px; line-height: 1.7;
  margin: 0 0 10px; color: #444;
}
.rm-post-comments .reply {
  margin-top: 4px;
}
.rm-post-comments .reply a {
  font-size: 11px; font-weight: 700;
  color: var(--red); text-decoration: none;
  text-transform: uppercase; letter-spacing: .5px;
  display: inline-flex; align-items: center; gap: 4px;
}
.rm-post-comments .reply a::before {
  content: "\0021a9";
  font-size: 13px;
}
.rm-post-comments .children {
  list-style: none;
  padding-left: 64px;
  margin: 0;
}
.rm-post-comments .children .comment-body {
  background: var(--light);
  padding: 14px 16px;
  border-radius: 8px;
  border: none;
  margin-bottom: 10px;
}

/* ================================================================
   OWL CAROUSEL CUSTOMIZATION
   ================================================================ */
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
  width: 36px; height: 36px;
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 50%;
  color: var(--dark) !important;
  font-size: 20px !important;
  line-height: 34px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  transition: background .2s, color .2s;
}
.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover {
  background: var(--red) !important;
  color: #fff !important;
  border-color: var(--red) !important;
}
.owl-carousel .owl-dots .owl-dot span {
  background: var(--border);
  width: 8px; height: 8px;
  border-radius: 4px;
  transition: all .2s;
}
.owl-carousel .owl-dots .owl-dot.active span {
  background: var(--red);
  width: 20px;
}
/* Reviews owl */
.rm-reviews-owl { padding: 0 40px; }
.rm-reviews-owl .owl-nav { position: static; }
.rm-reviews-owl .owl-nav button.owl-prev { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.rm-reviews-owl .owl-nav button.owl-next { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.rm-reviews-slider-wrap { position: relative; }
.rm-reviews-owl .owl-dots { margin-top: 16px; }

/* ================================================================
   OWL CAROUSEL LAYOUT
   ================================================================ */
.owl-carousel { position: relative; }

/* Equal height items */
.owl-carousel .owl-stage { display: flex; align-items: stretch; }
.owl-carousel .owl-item { display: flex; align-items: stretch; flex: 1; }
.owl-carousel .owl-item > * { flex: 1; min-width: 0; }

/* Product cards: same height, ATC at bottom */
.owl-carousel .rm-product-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
  box-sizing: border-box;
}
.owl-carousel .rm-product-card .rm-product-thumb {
  flex-shrink: 0;
}
.owl-carousel .rm-product-card .rm-product-info {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.owl-carousel .rm-product-card .rm-product-info h3 {
  flex: 1;
}
.owl-carousel .rm-product-card .rm-product-price {
  flex-shrink: 0;
  margin-bottom: 8px;
}
.owl-carousel .rm-product-card .rm-atc-btn {
  flex-shrink: 0;
  margin-top: auto;
}

/* Blog cards equal height */
.owl-carousel .rm-blog-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
}
.owl-carousel .rm-blog-card .rm-blog-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.owl-carousel .rm-blog-card .rm-blog-body h3 { flex: 1; }

/* Review cards equal height */
.owl-carousel .rm-review-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
}

/* Nav: wrapper has side padding so buttons sit outside cards */
.rm-products-owl,
.rm-shop-prod-owl,
.rm-blog-owl,
.rm-single-blog-owl {
  padding: 0 40px;
}
/* Extra sliders - dynamic class names */
[class*="rm-extra-owl-"] { padding: 0 40px; }
.owl-carousel .owl-nav {
  position: absolute;
  top: 0; bottom: 60px; /* above info section */
  left: 0; right: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.owl-carousel .owl-nav button { pointer-events: all; }
.owl-carousel .owl-nav button.owl-prev { margin-left: 0; }
.owl-carousel .owl-nav button.owl-next { margin-right: 0; }

/* Reviews: nav fully outside via wrapper padding */
.rm-reviews-slider-wrap { padding: 0 48px; }
.rm-reviews-owl { padding: 0; }
.rm-reviews-owl .owl-nav {
  top: 0; bottom: 0;
  align-items: center;
}

/* Blog hero: nav outside image */
.rm-blog-hero-owl { padding: 0 48px; }
.rm-blog-hero-owl .owl-nav {
  top: 0; bottom: 0;
  align-items: center;
}
.rm-blog-hero-owl .owl-nav button.owl-prev { margin-left: 0; }
.rm-blog-hero-owl .owl-nav button.owl-next { margin-right: 0; }

/* Dots */
.owl-carousel .owl-dots { margin-top: 16px; text-align: center; }

/* ================================================================
   PLATFORM REVIEW BADGES (Google + Trustpilot)
   ================================================================ */
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.rm-platform-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 24px;
  min-width: 150px;
  text-align: center;
  text-decoration: none;
  color: var(--dark);
  transition: box-shadow .2s, transform .2s;
  cursor: pointer;
}
.rm-platform-badge:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  transform: translateY(-2px);
  text-decoration: none;
  color: var(--dark);
}
.rm-pb-logo {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}
.rm-pb-name {
  font-weight: 700;
  font-size: 15px;
  color: var(--dark);
}
.rm-pb-score {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 4px;
  color: var(--dark);
}
.rm-pb-stars {
  display: flex;
  gap: 2px;
  justify-content: center;
  margin-bottom: 4px;
}
.rm-pb-count {
  font-size: 12px;
  color: var(--mid);
  margin-bottom: 6px;
}
.rm-pb-cta {
  font-size: 11px;
  font-weight: 700;
  color: var(--red);
  letter-spacing: .3px;
}
.rm-tp-badge .rm-pb-cta { color: #00b67a; }

/* ── Footer review badge buttons ── */
.rm-review-badge-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .3px;
  text-decoration: none !important;
  margin-bottom: 8px;
  margin-top: 8px;
  transition: opacity .2s;
  white-space: nowrap;
  height: 38px;
  max-width: 100%;
  box-sizing: border-box;
}
.rm-review-badge-btn:hover { opacity: .85; text-decoration: none !important; }
.rm-review-badge-btn svg { flex-shrink: 0; display: block; }
.rm-review-badge-btn span { white-space: nowrap; }
.rm-google-btn { background: #fff; color: #333 !important; border: 1px solid #e0e0e0; }
.rm-tp-btn { background: #00b67a; color: #fff !important; }

/* ================================================================
   FOOTER RESPONSIVE
   ================================================================ */
@media (max-width: 900px) {
  .rm-footer-grid {
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 24px !important;
  }
  .rm-footer-col:first-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .rm-footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
  }
  .rm-footer-col:first-child { grid-column: 1 / -1; }
  .rm-footer-col:last-child  { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .rm-footer-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .rm-footer-col:first-child,
  .rm-footer-col:last-child { grid-column: auto; }
  .rm-footer-col h4 { font-size: 12px; }
  #rm-footer { padding: 28px 16px 0; }
}

/* Bottom bar mobile */
@media (max-width: 768px) {
  .rm-footer-bottom {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    text-align: center;
  }
  .rm-footer-bottom-links {
    justify-content: center !important;
    flex-wrap: wrap;
    gap: 12px !important;
  }
  .rm-footer-bottom-center { justify-content: center; }
}

/* Badge mobile */
@media (max-width: 480px) {
  .rm-review-badge-btn {
    font-size: 11px;
    padding: 0 12px;
  }
}

/* Trust bar mobile */
@media (max-width: 768px) {
  
}
@media (max-width: 480px) {
  
}

/* Badges side by side on mobile, stacked on desktop */
@media (max-width: 768px) {
  .rm-footer-col ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px 0;
  }
  .rm-footer-col ul li {
    flex: 0 0 100%;
  }
  .rm-footer-col ul li.rm-fi-badge {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 8px;
  }
  .rm-footer-col ul li.rm-fi-badge .rm-review-badge-btn {
    display: flex !important;
    white-space: nowrap;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 11px;
    padding: 0 10px;
  }
}

/* ── Product cards wider on mobile ── */
@media (max-width: 600px) {
  .rm-product-card { border-radius: 6px; }
  .rm-product-info { padding: 8px 8px; }
  .rm-product-info h3 { font-size: 12px; line-height: 1.4; }
  .rm-product-price { font-size: 13px; margin-bottom: 6px; }
  .rm-atc-btn { font-size: 11px; padding: 8px 2px; letter-spacing: 1px; }
  /* Owl: minimal gap between cards, minimal side padding */
  .rm-products-owl,
  [class*="rm-extra-owl-"],
  .rm-shop-prod-owl { padding: 0 24px !important; }
  .rm-products-owl .owl-stage,
  [class*="rm-extra-owl-"] .owl-stage,
  .rm-shop-prod-owl .owl-stage { gap: 6px; }
  .owl-carousel.rm-products-owl .owl-item,
  .owl-carousel.rm-shop-prod-owl .owl-item,
  .owl-carousel[class*="rm-extra-owl-"] .owl-item { padding: 0 3px; }
  /* Override owl margin */
  .rm-products-owl .owl-stage,
  .rm-shop-prod-owl .owl-stage { gap: 0; }
  /* Product grid: tighter gap */
  .rm-products-grid { gap: 8px !important; }
}

/* ── Gallery zoom button ── */
.rm-gal-zoom-btn {
  position: absolute;
  top: 48px;
  right: 12px;
  bottom: auto;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 20;
  transition: background .2s, transform .2s;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.rm-gal-zoom-btn:hover {
  background: #fff;
  transform: scale(1.1);
}

/* ── Lightbox ── */
#rm-lb {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
}
#rm-lb.active { display: flex; }
#rm-lb-img {
  max-width: 92vw;
  max-height: 90vh;
  object-fit: contain;
  display: block;
  border-radius: 4px;
  box-shadow: 0 8px 48px rgba(0,0,0,.5);
  cursor: zoom-out;
}
#rm-lb-close {
  position: fixed;
  top: 16px; right: 20px;
  background: none;
  border: none;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
  z-index: 10;
  line-height: 1;
  opacity: .8;
  transition: opacity .2s;
}
#rm-lb-close:hover { opacity: 1; }
#rm-lb-prev, #rm-lb-next {
  position: fixed;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  font-size: 28px;
  width: 44px; height: 60px;
  cursor: pointer;
  z-index: 10;
  border-radius: 4px;
  transition: background .2s;
}
#rm-lb-prev:hover, #rm-lb-next:hover { background: rgba(255,255,255,.3); }
#rm-lb-prev { left: 10px; }
#rm-lb-next { right: 10px; }
#rm-lb-counter {
  position: fixed;
  bottom: 16px; left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.7);
  font-size: 13px;
}

@keyframes rm-spin {
  to { transform: rotate(360deg); }
}
#rm-lb-img {
  transition: opacity .25s ease, transform .25s ease;
  cursor: zoom-in;
}
#rm-lb-img[style*="opacity: 0"] { transform: scale(.97); }
/* Trust bar: desktop/mobile separation + mobile overflow fix */
.rm-trust-mobile { display: none; }
.rm-trust-desktop { display: flex; }
@media (max-width: 768px) {
  .rm-trust-desktop { display: none; }
  .rm-trust-mobile  { display: flex; }
}
/* Fix mobile overflow - items don't get cut off */
@media (max-width: 768px) {
  

}

/* Top bar desktop/mobile separation */
.rm-topbar-mobile { display: none !important; }
.rm-topbar-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-topbar-desktop { display: none !important; }
  .rm-topbar-mobile  { display: flex !important; }
  /* Mobile: items don't overflow */
  .rm-topbar-mobile .rm-topbar-nav {
    display: flex;
    gap: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .rm-topbar-mobile .rm-topbar-nav li {
    flex: 0 0 auto;
  }
  .rm-topbar-mobile .rm-topbar-nav li a {
    padding: 0 10px;
    white-space: nowrap;
    font-size: 11px;
  }
}

/* Top bar: desktop/mobile nav */
.rm-topbar-nav-mobile { display: none !important; }
.rm-topbar-nav-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile  { display: flex !important; }
  /* Fix overflow */
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
  .rm-topbar-nav-mobile .rm-topbar-nav { overflow: hidden; }
  .rm-topbar-nav-mobile .rm-topbar-nav li a { white-space: nowrap; font-size: 11px; }
}

/* Trust bar: desktop/mobile */
.rm-trust-mobile { display: none !important; }
.rm-trust-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-trust-desktop { display: none !important; }
  .rm-trust-mobile  { display: flex !important; }
  .rm-trust-mobile .rm-trust-item { flex: 1 1 0; min-width: 0; }

}

/* Top bar desktop/mobile nav */
.rm-topbar-nav-mobile { display: none !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile  { display: flex !important; }
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}

/* Top bar nav desktop/mobile */
.rm-topbar-nav-mobile { display: none !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile { display: flex !important; }
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}
/* Trust bar desktop/mobile */
.rm-tb-show-mobile { display: none !important; }
.rm-tb-show-desktop { display: block; }

/* Desktop trust items */
.rm-tb-show-desktop .rm-trust-items {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 24px;
  padding: 0;
}
.rm-tb-show-desktop .rm-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  white-space: nowrap;
}

/* Mobile: infinite marquee */
@media (max-width: 768px) {
  .rm-tb-show-desktop { display: none !important; }
  .rm-tb-show-mobile { display: block !important; }
  .rm-trust-marquee-wrap {
    overflow: hidden;
    width: 100%;
  }
  #rm-tbm-track {
    display: flex;
    align-items: center;
  }
  .rm-tm-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 20px;
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 12px;
  }
  .rm-tm-item span { white-space: nowrap; }
  .rm-tm-item svg { width: 16px; height: 16px; flex-shrink: 0; }
}

/* ================================================================
   FONTS — Self-hosted (Oswald + Nunito)
   ================================================================ */
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Oswald';
  src: url('assets/fonts/oswald-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Nunito';
  src: url('assets/fonts/nunito-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}

/* ================================================================
   CSS VARIABLES — EXACT rugmaster.com.au palette
   Primary:   #e02b20  (from et-divi-dynamic CSS, 16 occurrences)
   Gold:      #c99872  (button hover)
   Dark:      #222222  (footer bg)
   Body:      Helvetica,Arial,Lucida,sans-serif
   ================================================================ */
:root {
  --red:        #e02b20;
  --red-hover:  #c4241a;
  --gold:       #c99872;
  --gold-hover: #b5845e;
  --dark:       #222222;
  --dark2:      #333333;
  --mid:        #666666;
  --light:      #f4f4f4;
  --white:      #ffffff;
  --border:     #dddddd;
  --shadow:     0 2px 10px rgba(0,0,0,.08);

  --f-body:    Helvetica, Arial, Lucida, sans-serif;
  --f-heading: 'Nunito', Helvetica, Arial, Lucida, sans-serif;
  --f-btn:     'Oswald', Helvetica, Arial, Lucida, sans-serif;

  --wrap: 1080px;
  --hh: 70px;
}

/* ================================================================
   BASE RESET
   ================================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.7;
  color: var(--dark2);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, select, textarea { font-family: inherit; font-size: 14px; }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--f-heading);
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
}

/* ================================================================
   LAYOUT
   ================================================================ */
.rm-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 30px;
  box-sizing: border-box;
}
/* Header wrap: full width */
#rm-header .rm-wrap {
  max-width: 100%;
  padding: 0 24px;
}

/* ================================================================
   BUTTONS — exact Divi style from rugmaster.com.au
   Letter-spacing: 3px, Oswald, uppercase, border-radius: 0
   ================================================================ */
.rm-btn, .rm-btn-outline {
  display: inline-block;
  font-family: var(--f-btn);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: .3em 1em;
  border: 2px solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background .25s, border-color .25s, color .25s;
  white-space: nowrap;
  line-height: 1.6;
}
.rm-btn {
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}
.rm-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--white);
}
.rm-btn-outline {
  background: transparent;
  border-color: var(--dark);
  color: var(--dark);
}
.rm-btn-outline:hover {
  background: var(--dark);
  color: var(--white);
}
.rm-btn-white {
  background: transparent;
  border-color: var(--white);
  color: var(--white);
}
.rm-btn-white:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--white);
}

/* ================================================================
   TOP BAR — red background like rugmaster.com.au
   ================================================================ */
#rm-topbar {
  background: var(--red);
  color: var(--white);
  font-size: 11px;
  padding: 5px 0;
  text-align: center;
  position: relative;
  z-index: 100001;
  overflow: hidden;
}
@media (max-width: 768px) {
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}
#rm-topbar .rm-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}
#rm-topbar .rm-topbar-inner > * { min-width: 0; }
@media(max-width:480px){
  #rm-topbar .rm-topbar-inner { gap: 4px; justify-content: center; }
  #rm-topbar { font-size: 10px; padding: 4px 0; }
  #rm-topbar .rm-topbar-inner > * { font-size: 10px; }
}
#rm-topbar .rm-topbar-links {
  display: flex;
  gap: 16px;
  align-items: center;
}
#rm-topbar a {
  color: var(--white);
  opacity: .9;
  font-size: 11px;
}
#rm-topbar a:hover { opacity: 1; text-decoration: underline; }
#rm-topbar .rm-topbar-center {
  font-size: 11px;
  flex: 1;
  text-align: center;
}
#rm-topbar .rm-topbar-right {
  display: flex;
  gap: 16px;
  align-items: center;
}

/* ================================================================
   MAIN HEADER
   ================================================================ */
#rm-header {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: var(--white);
  box-shadow: 0 1px 0 rgba(0,0,0,.1);
  /* Anchor for mega panel absolute positioning */
}
#rm-header .rm-header-inner {
  display: flex;
  align-items: center;
  height: var(--hh);
  gap: 0;
}
#rm-header .rm-header-inner > .rm-logo {
  flex-shrink: 0;
  margin-right: 24px;
}
#rm-header .rm-header-inner > #rm-nav {
  flex: 1;
  display: flex;
  justify-content: center;
  overflow: visible;
  min-width: 0;
}
#rm-header .rm-header-inner > .rm-header-icons {
  flex-shrink: 0;
  margin-left: 24px;
  display: flex;
  align-items: center;
  gap: 2px;
}
/* True center: nav takes full width, logo+icons overlay */

/* Logo */
.rm-logo { flex-shrink: 0; }
.rm-logo img { height: 55px; width: auto; }
.rm-logo-text {
  font-family: var(--f-heading);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--red);
}

/* Primary Nav */
#rm-nav {
  display: flex;
  justify-content: center;
  overflow: visible;
  position: static;
}
#rm-nav > ul {
  display: flex;
  align-items: center;
  gap: 0;
}
#rm-nav > ul > li { position: relative; }
#rm-nav > ul > li.mega-parent { position: relative; }
#rm-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 14px;
  height: var(--hh);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--dark2);
  border-bottom: 3px solid transparent;
  transition: color .2s, border-color .2s;
}
#rm-nav > ul > li > a:hover,
#rm-nav > ul > li.current-menu-item > a,
#rm-nav > ul > li.current-menu-ancestor > a {
  color: var(--red);
  border-bottom-color: var(--red);
}
/* Dropdown arrow */
#rm-nav > ul > li > a .rm-arrow {
  font-size: 10px;
  margin-top: 1px;
  transition: transform .2s;
}
#rm-nav > ul > li:hover > a .rm-arrow { transform: rotate(180deg); }

/* Header Icons */
.rm-header-icons {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rm-header-icon {
  display: flex;
  align-items: center;
  padding: 8px;
  color: var(--dark2);
  border-radius: 3px;
  position: relative;
  transition: color .2s;
}
.rm-header-icon:hover { color: var(--red); }
.rm-header-icon svg { width: 20px; height: 20px; }
.rm-cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--red);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  box-sizing: border-box;
  line-height: 1;
  border: 1.5px solid #fff;
  pointer-events: none;
}
.rm-hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  cursor: pointer;
  flex-shrink: 0;
  min-width: 38px;
}
.rm-hamburger span {
  display: block; width: 22px; height: 2px;
  background: var(--dark2);
  transition: all .3s;
}

/* ================================================================
   MEGA MENU — 5 columns, light grey bg (as in screenshot 1)
   ================================================================ */
.rm-mega-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: min(900px, 95vw);
  background: #f0f0f0;
  border-top: 3px solid var(--red);
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  z-index: 9998;
  padding: 30px 30px 36px;
  overflow: hidden;
  margin-top: 0;
}
/* Hover bridge: fills any sub-pixel gap */
#rm-nav > ul > li.mega-parent {
  padding-bottom: 0;
}
#rm-nav > ul > li.mega-parent > a {
  /* Extend clickable area to panel edge */
  margin-bottom: 0;
}

/* Keep mega-parent li as positioning context */
/* When panel is open, extend li down to meet panel */



.rm-mega-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 20px;
  width: 100%;
}
.rm-mega-col > h4 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--dark2);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 14px;
  text-transform: none;
  letter-spacing: 0;
}
.rm-mega-col ul { display: flex; flex-direction: column; gap: 10px; }
.rm-mega-col ul li a {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--dark2);
  transition: color .2s;
}
.rm-mega-col ul li a:hover { color: var(--red); }

/* Regular dropdown */
.rm-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--white);
  border-top: 3px solid var(--red);
  box-shadow: 0 5px 15px rgba(0,0,0,.1);
  z-index: 9999;
  padding: 8px 0;
}
#rm-nav > ul > li:not(.mega-parent):hover .rm-dropdown { display: block; }
.rm-dropdown a {
  display: block;
  padding: 8px 20px;
  font-size: 13px;
  color: var(--dark2);
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background .15s, color .15s;
}
.rm-dropdown a:hover { background: var(--light); color: var(--red); }

/* Mobile menu */
#rm-mobile-menu {
  display: none;
  background: var(--white);
  border-top: 1px solid var(--border);
  padding: 8px 0;
  overflow: visible;
}
#rm-mobile-menu.active, #rm-mobile-menu[style*='display: block'], #rm-mobile-menu[style*='display:block'] { display: block !important; }
#rm-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
#rm-mobile-menu > ul > li { border-bottom: 1px solid rgba(0,0,0,.05); overflow: visible; }
#rm-mobile-menu ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 20px;
  font-size: 14px;
  color: var(--dark2);
  text-decoration: none;
  transition: color .15s, background .15s;
}
#rm-mobile-menu ul li a:hover { color: var(--red); background: var(--light); }
/* Sub-menu accordion — JS controls display via inline style */
#rm-mobile-menu ul .sub-menu {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
  border-top: 1px solid var(--border);
  background: #f5f0ea;
}
#rm-mobile-menu ul .sub-menu li a {
  display: block;
  padding: 10px 20px;
  font-size: 13px;
  color: var(--mid);
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.04);
}
#rm-mobile-menu ul .sub-menu li a {
  font-size: 13px;
  color: var(--mid);
}
#rm-mobile-menu ul .sub-menu li a:hover { color: var(--red); }
/* Nested depth 2 */
#rm-mobile-menu ul .sub-menu .sub-menu li a {
  font-size: 12px;
  color: #999;
}
/* Toggle button */
.rm-acc-btn {
  /* position set by JS - no absolute here */
  flex: 0 0 44px;
  width: 44px;
  background: none; border: none;
  border-left: 1px solid rgba(0,0,0,.06);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #aaa;
  font-size: 16px;
  transition: transform .22s, color .15s, background .15s;
  padding: 0;
}
.rm-acc-btn:hover { color: var(--red); background: rgba(224,43,32,.04); }
/* Toggle arrow */
/* .rm-mob-arrow deprecated - using .rm-acc-btn */
.rm-mob-arrow { display: none; }

/* ================================================================
   HERO SECTION — full-width bg image + overlay
   ================================================================ */
#rm-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rm-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.23); /* exact value from CSS */
}
.rm-hero-content {
  position: relative;
  z-index: 2;
  color: var(--white);
  padding: 60px 20px;
  max-width: 700px;
}
.rm-hero-content h1,
.rm-hero-content h2.rm-hero-title {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 700;
  margin-bottom: 16px;
  text-shadow: .08em .08em 0 rgba(0,0,0,.4);
}
.rm-hero-content .rm-hero-sub {
  font-family: var(--f-heading);
  font-weight: 600;
  font-size: clamp(1rem, 2.5vw, 1.4rem);
  line-height: 1.9;
  margin-bottom: 28px;
  text-shadow: .08em .08em 0 rgba(0,0,0,.4);
}
/* Scroll indicator */
.rm-hero-scroll {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--white);
  animation: bounce 2s infinite;
  cursor: pointer;
}
.rm-hero-scroll svg { width: 32px; height: 32px; }
@keyframes bounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

/* ================================================================
   FREE SHIPPING BAR — red bg, white text
   ================================================================ */
#rm-shipping-bar {
  background: var(--red);
  color: var(--white);
  text-align: center;
  padding: 12px 20px;
  font-family: var(--f-btn);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* ================================================================
   CAMPAIGN BANNER (optional, shown when active)
   ================================================================ */
#rm-campaign-banner { position: relative; }
#rm-campaign-banner img { width: 100%; display: block; }
#rm-campaign-banner a { display: block; }
#rm-campaign-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  position: sticky;
  bottom: 0;
  z-index: 9000;
}
#rm-campaign-bar .rm-coupon {
  background: rgba(255,255,255,.2);
  padding: 3px 12px;
  border-radius: 3px;
  font-family: monospace;
  font-size: 15px;
  cursor: pointer;
  border: 1px dashed rgba(255,255,255,.6);
}
#rm-campaign-bar .rm-bar-close {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  opacity: .7;
}
#rm-campaign-bar .rm-bar-close:hover { opacity: 1; }

/* ================================================================
   CATEGORY CARDS — 3 columns, square, no radius (exact from site)
   ================================================================ */
#rm-categories {
  padding: 40px 0;
  background: var(--white);
}
.rm-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.rm-cat-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--dark);
  cursor: pointer;
}
.rm-cat-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.rm-cat-card:hover img { transform: scale(1.05); }
.rm-cat-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.28);
  transition: background .3s;
}
.rm-cat-card:hover .rm-cat-label { background: rgba(0,0,0,.42); }
.rm-cat-label span {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: clamp(1rem, 2.5vw, 1.6rem);
  font-weight: 700;
  text-align: center;
  padding: 10px;
  line-height: 1.3;
  text-shadow: 1px 1px 4px rgba(0,0,0,.6);
}

/* ================================================================
   PRODUCT GRID — "New Items"
   ================================================================ */
#rm-new-items {
  padding: 40px 0;
  background: var(--white);
}
.rm-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.rm-section-head h2 {
  font-family: var(--f-heading);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--dark);
}
.rm-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
/* Product Card */
.rm-product-card {
  background: var(--white);
  border: 1px solid var(--border);
  position: relative;
  transition: box-shadow .2s;
  display: flex;
  flex-direction: column;
}
.rm-product-card:hover { box-shadow: var(--shadow); }
.rm-product-thumb {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--light);
}
.rm-product-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .3s, opacity .3s;
}
.rm-product-card:hover .rm-product-thumb img { transform: scale(1.04); }
.rm-product-thumb-hover { position: absolute; inset: 0; opacity: 0; }
.rm-product-card:hover .rm-product-thumb-hover,
.rm-product-card.rm-touch-preview .rm-product-thumb-hover { opacity: 1; }
.rm-product-card:hover .rm-product-thumb-main,
.rm-product-card.rm-touch-preview .rm-product-thumb-main { opacity: 0; }
.rm-product-card.rm-touch-preview .rm-product-thumb img { transform: scale(1.04); }
.rm-product-badges { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; gap: 4px; z-index: 5; }
.rm-discount-badge-wrap {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rm-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--white);
}
.rm-badge-sale { background: var(--red); }
.rm-badge-new  { background: var(--gold); }
.rm-badge-hot  { background: var(--dark); }
.rm-discount-badge {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-family: var(--f-btn);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 2px 8px;
  z-index: 5;
}
.rm-product-info {
  padding: 12px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.rm-product-info h3 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--dark2);
  margin-bottom: 6px;
  line-height: 1.4;
  flex: 1 1 auto;
  min-height: 0;
}
/* Price: fixed just above button */
.rm-product-info .rm-product-price {
  flex: 0 0 auto;
  margin-top: auto;
  margin-bottom: 8px;
}
.rm-product-info .rm-atc-btn {
  flex: 0 0 auto;
}
.rm-product-info h3 a:hover { color: var(--red); }
.rm-product-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 10px;
}
.rm-product-price del {
  font-size: 12px;
  font-weight: 400;
  color: var(--mid);
  margin-right: 6px;
}
.rm-product-price ins {
  text-decoration: none;
  color: var(--red);
}
.rm-product-offer {
  font-size: 11px;
  color: var(--red);
  font-weight: 600;
  margin-bottom: 8px;
}
.rm-product-price { margin-bottom: auto; }
.rm-atc-btn {
  display: block;
  width: 100%;
  padding: 8px;
  font-family: var(--f-btn);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-align: center;
  background: var(--atc-bg, var(--red));
  color: var(--white);
  border: 2px solid var(--atc-bg, var(--red));
  border-radius: 0;
  transition: background .2s, border-color .2s;
}
.rm-atc-btn:hover {
  background: var(--atc-hover, var(--gold));
  border-color: var(--atc-hover, var(--gold));
}

/* ================================================================
   ABOUT SECTION — grey bg, 2-col text|image
   ================================================================ */
#rm-about {
  background: var(--light);
  padding: 60px 0;
}
.rm-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}
.rm-about-text .rm-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--mid);
  margin-bottom: 8px;
}
.rm-about-text h2 {
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin-bottom: 16px;
  text-transform: uppercase;
}
.rm-about-text p { color: var(--mid); margin-bottom: 14px; }
.rm-about-buttons { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.rm-about-image { position: relative; }
.rm-about-image img { width: 100%; object-fit: cover; }

/* ================================================================
   GOOGLE REVIEWS
   ================================================================ */
#rm-reviews {
  background: var(--white);
  padding: 50px 0;
  text-align: center;
}
#rm-reviews h2 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--dark2);
  margin-bottom: 24px;
}
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 24px;
}
.rm-reviews-score {
  font-size: 2rem;
  font-weight: 700;
  color: var(--dark);
}
.rm-reviews-stars { color: #f5a623; font-size: 1.2rem; }
.rm-reviews-powered { font-size: 11px; color: var(--mid); }
.rm-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 20px;
  text-align: left;
}
.rm-review-card {
  background: var(--white);
  border: 1px solid var(--border);
  padding: 18px;
  position: relative;
}
.rm-review-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.rm-review-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px;
  flex-shrink: 0;
}
.rm-review-name { font-weight: 700; font-size: 13px; }
.rm-review-date { font-size: 11px; color: var(--mid); }
.rm-review-stars { color: #f5a623; font-size: 13px; margin-bottom: 6px; }
.rm-review-text { font-size: 13px; color: var(--mid); line-height: 1.6; height: 80px; overflow-y: auto; }
.rm-review-google { position: absolute; top: 14px; right: 14px; }
.rm-review-google svg { width: 16px; height: 16px; }

/* ================================================================
   BLOG SECTION
   ================================================================ */
#rm-blog {
  padding: 50px 0;
  background: var(--white);
}
#rm-blog h2 {
  text-align: center;
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 24px;
}
.rm-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.rm-blog-card { border: 1px solid var(--border); }
.rm-blog-thumb {
  position: relative;
  overflow: hidden;
}
.rm-blog-thumb img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform .3s;
}
.rm-blog-card:hover .rm-blog-thumb img { transform: scale(1.04); }
.rm-blog-body { padding: 16px; }
.rm-blog-date { font-size: 11px; color: var(--mid); margin-bottom: 6px; }
.rm-blog-body h3 { font-size: 14px; margin-bottom: 8px; }
.rm-blog-body h3 a:hover { color: var(--red); }
.rm-blog-body p { font-size: 13px; color: var(--mid); margin-bottom: 12px; }

/* Blog Featured (single full-width) */
.rm-blog-featured {
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.rm-blog-featured img {
  width: 100%;
  height: 400px;
  object-fit: cover;
}
.rm-blog-featured-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  color: var(--white);
}
.rm-blog-featured-overlay h3 {
  color: var(--white);
  font-size: clamp(1.1rem, 2.5vw, 1.6rem);
  margin-bottom: 12px;
}
.rm-blog-featured-overlay p { font-size: 14px; margin-bottom: 16px; max-width: 600px; }

/* ================================================================
   FOOTER — dark bg #222
   ================================================================ */
#rm-footer {
  background: var(--dark);
  color: rgba(255,255,255,.7);
  padding: 50px 0 30px;
  overflow: visible;
}
.rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
.rm-footer-col h4 {
  color: var(--white);
  font-family: var(--f-heading);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.rm-footer-col p { font-size: 13px; line-height: 1.7; margin-bottom: 10px; }
.rm-footer-col ul { list-style: none; margin: 0; padding: 0; }
.rm-footer-col ul li a {
  font-size: 13px;
  color: rgba(255,255,255,.7);
  transition: color .2s;
}
.rm-footer-col ul li > a:not(.rm-review-badge-btn)::before { content: "\0000bb\0020"; }
.rm-footer-col ul li.rm-fi { list-style: none !important; }
.rm-footer-col ul li.rm-fi::before,
.rm-footer-col ul li.rm-fi > *::before,
.rm-footer-col ul li.rm-fi a::before { content: none !important; }
.rm-footer-social a::before { content: none !important; }
.rm-footer-col ul li a:hover { color: var(--white); }
.rm-footer-logo img { height: 50px; filter: brightness(0) invert(1); margin-bottom: 12px; }
.rm-footer-logo .rm-logo-text { color: var(--white); font-size: 1.3rem; }
.rm-footer-social { display: flex; gap: 10px; margin-top: 14px; }
.rm-footer-social a {
  width: 32px; height: 32px;
  background: rgba(255,255,255,.1);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  transition: background .2s;
}
.rm-footer-social a:hover { background: var(--red); }
.rm-footer-contact { font-size: 13px; line-height: 2; }
.rm-footer-contact a { color: rgba(255,255,255,.7); }
.rm-footer-contact a:hover { color: var(--white); }
/* Map & Payments in footer */
.rm-footer-map iframe { width: 100%; height: 130px; border: 0; margin-bottom: 12px; }
.rm-footer-payments img { max-height: 36px; }
.rm-footer-trustpilot { margin-top: 8px; }
/* Bottom bar */
.rm-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
}
.rm-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.rm-footer-bottom-left { opacity: .6; font-size: 13px; flex: 1; min-width: 0; }
.rm-footer-bottom-center { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rm-footer-bottom-links { display: flex; gap: 20px; flex: 1; justify-content: flex-end; }
.rm-footer-bottom-links a { color: rgba(255,255,255,.6); font-size: 13px; text-decoration: none; }
.rm-footer-bottom-links a:hover { color: var(--white); }

/* ================================================================
   TRUST BAR (above footer)
   ================================================================ */
#rm-trust-bar {
  background: var(--dark2);
  color: rgba(255,255,255,.85);
  padding: 14px 0;
  overflow: visible;
  position: relative;
  z-index: 1;
}
.rm-trust-items {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 24px;
}
.rm-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.rm-trust-item svg { width: 20px; height: 20px; flex-shrink: 0; }

/* ================================================================
   WOOCOMMERCE PAGES
   ================================================================ */
/* Shop Layout */
.rm-shop-wrapper {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 30px;
  padding: 40px 0;
}
.rm-shop-wrapper.no-sidebar { grid-template-columns: 1fr; }
.rm-sidebar { /* Widget sidebar */ }
.rm-sidebar .widget { margin-bottom: 24px; }
.rm-sidebar .widget-title {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--red);
  margin-bottom: 14px;
}
/* Breadcrumb */
.rm-breadcrumb {
  padding: 12px 0;
  font-size: 13px;
  color: var(--mid);
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.rm-breadcrumb a { color: var(--mid); }
.rm-breadcrumb a:hover { color: var(--red); }
.rm-breadcrumb span { margin: 0 6px; }
/* Single Product */
.rm-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  padding: 40px 0;
}
.rm-product-gallery-main { position: relative; overflow: hidden; }
.rm-product-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.rm-product-gallery-thumbs { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.rm-product-gallery-thumbs img {
  width: 70px; height: 70px;
  object-fit: cover;
  border: 2px solid transparent;
  cursor: pointer;
}
.rm-product-gallery-thumbs img.active { border-color: var(--red); }
.rm-product-summary h1 { font-size: 1.5rem; margin-bottom: 8px; }
.rm-product-summary .rm-price { font-size: 1.4rem; font-weight: 700; color: var(--dark); margin-bottom: 16px; }
.rm-product-summary .rm-price del { font-size: 1rem; font-weight: 400; color: var(--mid); margin-right: 8px; }
.rm-product-summary .rm-price ins { text-decoration: none; color: var(--red); }
.rm-atc-group { display: flex; gap: 10px; margin-bottom: 20px; align-items: center; }
.rm-qty { width: 60px; padding: 8px; border: 1px solid var(--border); text-align: center; font-size: 16px; }
.rm-product-tabs { margin-top: 30px; }
.rm-tabs-nav { display: flex; border-bottom: 2px solid var(--border); margin-bottom: 20px; }
.rm-tabs-nav a {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mid);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .2s;
}
.rm-tabs-nav a.active { color: var(--red); border-bottom-color: var(--red); }
/* Cart / Checkout */
.rm-cart-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.rm-cart-table th, .rm-cart-table td {
  padding: 12px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
  text-align: left;
}
.rm-cart-table th { font-weight: 700; background: var(--light); }

/* ================================================================
   CONTACT FORM
   ================================================================ */
.rm-contact-form { max-width: 600px; margin: 0 auto; }
.rm-form-group { margin-bottom: 16px; }
.rm-form-group label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.rm-form-group input,
.rm-form-group textarea,
.rm-form-group select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 0;
  font-size: 14px;
  transition: border-color .2s;
}
.rm-form-group input:focus,
.rm-form-group textarea:focus { outline: none; border-color: var(--red); }
.rm-form-group textarea { min-height: 130px; resize: vertical; }
.rm-form-success { background: #d4edda; color: #155724; padding: 12px 16px; border: 1px solid #c3e6cb; margin-bottom: 16px; }
.rm-form-error { background: #f8d7da; color: #721c24; padding: 12px 16px; border: 1px solid #f5c6cb; margin-bottom: 16px; }

/* ================================================================
   GENERIC PAGE
   ================================================================ */
.rm-page-content { padding: 50px 0; }
.rm-page-content h1 { margin-bottom: 20px; font-size: 1.8rem; }
.rm-page-content p { color: var(--mid); margin-bottom: 14px; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
  .rm-products-grid { grid-template-columns: repeat(3, 1fr); }
  .rm-mega-panel { width: 700px; }
  .rm-mega-grid { grid-template-columns: repeat(3, 1fr); }
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
  .rm-shop-wrapper { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  :root { --hh: 60px; }
  #rm-header .rm-wrap { padding: 0 !important; }
  #rm-header .rm-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
    overflow: hidden;
  }
  #rm-header .rm-header-inner > .rm-logo {
    min-width: unset;
    flex: 0 0 auto;
    max-width: 50%;
    overflow: hidden;
    margin-right: 0;
    padding-left: 4px;
  }
  #rm-header .rm-header-inner #rm-nav { display: none; }
  #rm-header .rm-header-inner { display:flex; grid-template-columns:unset; overflow:hidden; }
  #rm-header .rm-header-inner > .rm-logo { flex:0 1 auto; justify-self:unset; max-width:calc(100vw - 160px); overflow:hidden; }
  #rm-header .rm-header-inner > .rm-header-icons { flex-shrink:0; justify-self:unset; }
  .rm-hamburger { display:flex; flex-shrink:0; }
  #rm-header .rm-header-inner .rm-header-icons {
    flex-shrink: 0;
    gap: 2px;
    padding-right: 4px;
  }
  .rm-hamburger {
    display: flex;
    flex-shrink: 0;
    padding: 4px;
    min-width: 34px;
  }
  .rm-products-grid { grid-template-columns: repeat(2, 1fr); }
  .rm-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .rm-about-grid { grid-template-columns: 1fr; }
  .rm-about-image { order: -1; }
  .rm-reviews-grid { grid-template-columns: 1fr; }
  .rm-blog-grid { grid-template-columns: 1fr; }
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
  .rm-product-layout { grid-template-columns: 1fr; }
  .rm-footer-bottom { flex-direction: column; text-align: center; }
  .rm-topbar-right { display: none; }  /* hide right side on very small screens */
  /* mega panel hidden via #rm-nav display:none */
}
@media (max-width: 480px) {
  .rm-products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .rm-cat-grid { grid-template-columns: 1fr; }
  .rm-wrap { padding: 0 16px; box-sizing: border-box; max-width: 100%; }
}

/* ================================================================
   UTILITY
   ================================================================ */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}
.text-center { text-align: center; }
.text-red { color: var(--red); }
.text-gold { color: var(--gold); }
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

/* ================================================================
   WP ADMIN BAR OFFSET
   ================================================================ */
.admin-bar #rm-topbar { top: 32px; }
.admin-bar #rm-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar #rm-topbar { top: 46px; }
  .admin-bar #rm-header { top: 46px; }
}

/* ================================================================

/* ================================================================
   HEADER — fix logo left, nav center, icons right
   ================================================================ */

#rm-nav > ul { display: flex; align-items: stretch; gap: 0; }
#rm-nav > ul > li { position: relative; display: flex; align-items: stretch; }
#rm-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 14px;
  height: var(--hh);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--dark2);
  border-bottom: 3px solid transparent;
  white-space: nowrap;   /* ← prevent 2-line nav items */
  line-height: 1;
}
#rm-nav > ul > li > a:hover,
#rm-nav > ul > li.current-menu-item > a,
#rm-nav > ul > li.current-menu-ancestor > a {
  color: var(--red);
  border-bottom-color: var(--red);
}
.rm-header-icons { display: flex; align-items: center; gap: 2px; margin-left: 0; }

/* mega panel: see main block above */

.rm-mega-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0 20px;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 30px;
}
.rm-mega-col { min-width: 0; }
.rm-mega-col h4 {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--dark);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 10px;
  white-space: nowrap;
}
.rm-mega-col h4 a { color: var(--dark); }
.rm-mega-col h4 a:hover { color: var(--red); }
.rm-mega-links { display: flex; flex-direction: column; gap: 7px; }
.rm-mega-links li a {
  font-size: 12px;
  color: var(--dark2);
  transition: color .15s;
  display: block;
}
.rm-mega-links li a:hover { color: var(--red); }

/* Regular dropdown (non-mega items with children) */
.rm-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: var(--white);
  border-top: 3px solid var(--red);
  box-shadow: 0 5px 15px rgba(0,0,0,.1);
  z-index: 9999;
  padding: 6px 0;
}
#rm-nav > ul > li:not(.mega-parent):hover .rm-dropdown { display: block; }
.rm-dropdown li a {
  display: block;
  padding: 7px 18px;
  font-size: 13px;
  color: var(--dark2);
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background .15s, color .15s;
}
.rm-dropdown li a:hover { background: var(--light); color: var(--red); }

/* ================================================================
   HERO SLIDER
   ================================================================ */
#rm-hero { min-height: 600px !important; }
.rm-hero-slider {
  position: relative;
  width: 100%;
  min-height: 600px;
  overflow: hidden;
}
.rm-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity .8s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rm-hero-slide.active { opacity: 1; z-index: 1; }
.rm-hero-slide .rm-hero-overlay { position: absolute; inset: 0; }
.rm-hero-slide .rm-hero-content { position: relative; z-index: 2; color: var(--white); padding: 60px 20px; max-width: 700px; }
.rm-hero-dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: 8px; }
.rm-hero-dots button { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.5); border: 2px solid rgba(255,255,255,.8); padding: 0; transition: background .3s; position: relative; }
.rm-hero-dots button::after { content: ''; position: absolute; inset: -15px; }
.rm-hero-dots button.active { background: var(--white); }
.rm-hero-prev, .rm-hero-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; background: rgba(0,0,0,.35); color: var(--white); border: none; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; cursor: pointer; transition: background .2s; }
.rm-hero-prev { left: 16px; }
.rm-hero-next { right: 16px; }
@media(max-width:768px){
  .rm-hero-prev, .rm-hero-next { top: 53%; }
}
.rm-hero-prev:hover, .rm-hero-next:hover { background: rgba(0,0,0,.65); }

/* ================================================================
   PRODUCT SLIDER
   ================================================================ */
.rm-product-slider-wrap { overflow: hidden; }
.rm-product-slider { display: flex; gap: 20px; transition: transform .4s ease; }
.rm-product-slider .rm-product-card { flex: 0 0 calc(25% - 15px); min-width: calc(25% - 15px); }
.rm-slider-btn { position: absolute; top: 40%; transform: translateY(-50%); background: var(--white); border: 1px solid var(--border); color: var(--dark2); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 5; box-shadow: 0 2px 8px rgba(0,0,0,.1); transition: background .2s, color .2s; font-size: 18px; }
.rm-slider-btn:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.rm-slider-prev { left: -18px; }
.rm-slider-next { right: -18px; }

/* ================================================================
   SEARCH OVERLAY
   ================================================================ */
#rm-search-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.7); z-index: 99999; align-items: flex-start; justify-content: center; padding-top: 100px; }
#rm-search-overlay.open { display: flex; }
.rm-search-box { background: var(--white); width: 100%; max-width: 640px; padding: 28px; position: relative; animation: rmSlideDown .25s ease; }
@keyframes rmSlideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.rm-search-box .rm-search-row { display: flex; border: 2px solid var(--border); }
.rm-search-box .rm-search-row:focus-within { border-color: var(--red); }
.rm-search-box select { border: none; border-right: 1px solid var(--border); padding: 0 12px; font-size: 13px; background: var(--light); outline: none; cursor: pointer; }
.rm-search-box input[type=text] { flex: 1; border: none; padding: 12px 14px; font-size: 15px; outline: none; }
.rm-search-box button[type=submit] { background: var(--red); color: var(--white); border: none; padding: 0 18px; font-family: var(--f-btn); font-size: 14px; cursor: pointer; transition: background .2s; }
.rm-search-box button[type=submit]:hover { background: var(--gold); }
.rm-search-close { position: absolute; top: 10px; right: 10px; background: none; border: none; font-size: 22px; cursor: pointer; color: var(--mid); line-height: 1; }
.rm-search-hints { margin-top: 14px; font-size: 12px; color: var(--mid); }
.rm-search-hints a { color: var(--red); }

/* ================================================================
   SHOP SEARCH + FILTERS
   ================================================================ */
.rm-shop-search { background: var(--light); padding: 16px 20px; margin-bottom: 20px; border: 1px solid var(--border); }
.rm-shop-search-row { display: flex; border: 2px solid var(--border); background: var(--white); max-width: 700px; margin: 0 auto; }
.rm-shop-search-row input { flex: 1; border: none; padding: 11px 16px; font-size: 14px; outline: none; }
.rm-shop-search-row button { background: var(--red); color: var(--white); border: none; padding: 0 22px; font-family: var(--f-btn); letter-spacing: 2px; text-transform: uppercase; font-size: 12px; cursor: pointer; transition: background .2s; }
.rm-shop-search-row button:hover { background: var(--gold); }
#rm-filters { background: var(--white); border: 1px solid var(--border); padding: 16px 20px; margin-bottom: 20px; }
#rm-filters h3 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0; padding-bottom: 0; border-bottom: none; display: flex; justify-content: space-between; align-items: center; cursor: pointer; border-bottom: 2px solid var(--red); padding-bottom: 8px; margin-bottom: 12px; }
#rm-filters h3 .rm-filter-toggle { font-size: 11px; color: var(--mid); font-weight: 400; text-transform: none; letter-spacing: 0; }
.rm-filter-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.rm-filter-group label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--mid); margin-bottom: 5px; }
.rm-filter-group select { width: 100%; padding: 7px 10px; border: 1px solid var(--border); font-size: 13px; background: var(--white); cursor: pointer; }
.rm-filter-group select:focus { outline: none; border-color: var(--red); }
.rm-price-range { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rm-price-range input { width: 75px; padding: 7px 8px; border: 1px solid var(--border); font-size: 13px; text-align: center; }
.rm-filter-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.rm-filter-tag { background: var(--light); border: 1px solid var(--border); padding: 3px 8px; font-size: 12px; display: flex; align-items: center; gap: 5px; }
.rm-filter-tag button { background: none; border: none; color: var(--mid); font-size: 14px; cursor: pointer; line-height: 1; padding: 0; }
.rm-filter-tag button:hover { color: var(--red); }

/* AJAX loading overlay on grid */
#rm-products-grid.rm-loading { opacity: .5; pointer-events: none; }
.rm-grid-spinner { text-align: center; padding: 20px; }

/* ================================================================
   LOAD MORE
   ================================================================ */
#rm-load-more-wrap { text-align: center; padding: 30px 0; }
.rm-load-more-btn { display: inline-block; padding: .4em 2em; font-family: var(--f-btn); font-size: 14px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; background: var(--white); color: var(--dark); border: 2px solid var(--dark); cursor: pointer; transition: all .25s; }
.rm-load-more-btn:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.rm-load-more-btn:disabled { opacity: .5; cursor: wait; }
.rm-loading-spinner { display: inline-block; width: 18px; height: 18px; border: 2px solid var(--border); border-top-color: var(--red); border-radius: 50%; animation: rmSpin .7s linear infinite; vertical-align: middle; margin-right: 8px; }
@keyframes rmSpin { to { transform: rotate(360deg); } }

/* Out of stock badge — overrides sale/new */
.rm-badge-oos { background: #888 !important; }

/* ================================================================
   SINGLE PRODUCT
   ================================================================ */
.rm-single-product { padding: 30px 0 60px; }
.rm-product-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
/* gallery CSS replaced - see below */
.rm-product-summary h1 { font-size: 1.5rem; margin-bottom: 10px; }
.rm-summary-price { font-size: 1.4rem; font-weight: 700; color: var(--dark); margin-bottom: 6px; }
.rm-summary-price del { font-size: 1rem; color: var(--mid); margin-right: 8px; font-weight: 400; }
.rm-summary-price ins { text-decoration: none; color: var(--red); }
.rm-afterpay-msg { font-size: 13px; color: var(--mid); margin-bottom: 12px; }
.rm-summary-short-desc { font-size: 14px; color: var(--mid); margin-bottom: 14px; border-bottom: 1px solid var(--border); padding-bottom: 14px; line-height: 1.7; }
.rm-summary-short-desc p { margin: 0 0 8px; }
.rm-summary-short-desc p:last-child { margin-bottom: 0; }
.rm-stock-badge { display: inline-block; padding: 3px 12px; font-size: 12px; font-weight: 700; margin-bottom: 14px; }
.rm-stock-badge.in-stock { background: #d4edda; color: #155724; }
.rm-stock-badge.out-stock { background: #f8d7da; color: #721c24; }
.rm-cart-form { display: flex; gap: 10px; margin-bottom: 18px; align-items: center; flex-wrap: wrap; }
.rm-qty-wrap { display: flex; border: 1px solid var(--border); }
.rm-qty-btn { width: 36px; height: 44px; border: none; background: var(--light); font-size: 20px; cursor: pointer; line-height: 1; }
.rm-qty-btn:hover { background: var(--border); }
.rm-qty-input { width: 52px; border: none; border-left: 1px solid var(--border); border-right: 1px solid var(--border); text-align: center; font-size: 15px; }
.rm-product-trust { display: flex; gap: 12px; flex-wrap: wrap; padding: 12px; background: var(--light); margin-top: 14px; font-size: 12px; color: var(--mid); }
.rm-product-trust-item { display: flex; align-items: center; gap: 5px; }
.rm-product-meta { font-size: 13px; color: var(--mid); line-height: 2; border-top: 1px solid var(--border); padding-top: 14px; margin-top: 10px; }
.rm-product-meta strong { color: var(--dark2); }
.rm-product-meta a:hover { color: var(--red); }
.rm-tabs-wrap { margin-top: 40px; }
.rm-tabs-nav { display: flex; border-bottom: 2px solid var(--border); margin-bottom: 20px; }
.rm-tabs-nav a { padding: 10px 24px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--mid); border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; transition: color .2s; }
.rm-tabs-nav a.active { color: var(--red); border-bottom-color: var(--red); }
.rm-tab-panel { display: none; line-height: 1.8; color: var(--mid); font-size: 14px; }
.rm-tab-panel.active { display: block; }

/* ================================================================
   TOPBAR MENU (right side)
   ================================================================ */
#rm-topbar .rm-topbar-menu { margin-left: auto; }
#rm-topbar .rm-topbar-nav,
#rm-topbar .rm-topbar-nav ul { display: flex; gap: 0; align-items: center; list-style: none; margin: 0; padding: 0; }
#rm-topbar .rm-topbar-nav li a,
#rm-topbar .rm-topbar-nav > li > a {
  color: rgba(255,255,255,.9); font-size: 11px; padding: 0 9px;
  border-right: 1px solid rgba(255,255,255,.25); display: block; line-height: 1;
}
#rm-topbar .rm-topbar-nav li:last-child a { border-right: none; }
#rm-topbar .rm-topbar-nav li a:hover { color: #fff; }
#rm-topbar .rm-topbar-inline,
#rm-topbar .rm-topbar-inline ul { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
#rm-topbar .rm-topbar-inline li a { color: rgba(255,255,255,.9); font-size: 11px; padding: 0 8px; border-right: 1px solid rgba(255,255,255,.2); }
#rm-topbar .rm-topbar-inline li:last-child a { border-right: none; }

/* ================================================================
   BLOG PAGE
   ================================================================ */
.rm-blog-showcase { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-bottom: 40px; }
.rm-blog-showcase .rm-blog-card { border: 1px solid var(--border); }
.rm-blog-showcase .rm-blog-thumb img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 1024px) {
  .rm-product-slider .rm-product-card { flex: 0 0 calc(33.333% - 14px); min-width: calc(33.333% - 14px); }
  .rm-mega-inner { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
  :root { --hh: 60px; }
  #rm-header .rm-wrap { padding: 0 !important; }
  #rm-header .rm-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px;
    overflow: hidden;
  }
  #rm-header .rm-header-inner > .rm-logo {
    min-width: unset;
    flex: 0 0 auto;
    max-width: 50%;
    overflow: hidden;
    margin-right: 0;
    padding-left: 4px;
  }
  #rm-header .rm-header-inner #rm-nav { display: none; }
  #rm-header .rm-header-inner .rm-header-icons {
    flex-shrink: 0;
    gap: 2px;
    padding-right: 4px;
  }
  .rm-hamburger {
    display: flex;
    flex-shrink: 0;
    padding: 4px;
    min-width: 34px;
  }
  #rm-header .rm-header-inner { grid-template-columns: auto 1fr auto; }
  .rm-product-slider .rm-product-card { flex: 0 0 calc(50% - 10px); min-width: calc(50% - 10px); }
  .rm-filter-grid { grid-template-columns: 1fr 1fr; }
  #rm-hero, .rm-hero-slider { min-height: 420px !important; }
  .rm-product-layout { grid-template-columns: 1fr; }
  .rm-blog-showcase { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .rm-product-slider .rm-product-card { flex: 0 0 100%; min-width: 100%; }
  .rm-wrap { padding: 0 16px; box-sizing: border-box; max-width: 100%; }
}

/* ================================================================
   FOOTER 5-COLUMN RESPONSIVE
   ================================================================ */
.rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
@media(max-width:1100px){
  .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
}
@media(max-width:768px){
    /* Global: prevent horizontal scroll */
    html, body { overflow-x: hidden !important; max-width: 100vw; }
    #rm-header { overflow: hidden; }
    #rm-nav { overflow: visible; }
    /* mega panel hidden via #rm-nav display:none */
    * { box-sizing: border-box; }
    /* Layout */
    .rm-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
  gap: 32px;
}
    .rm-cat-grid { grid-template-columns: 1fr !important; }
    .rm-about-grid { grid-template-columns: 1fr !important; }
    .rm-single-grid { grid-template-columns: 1fr !important; }
    .rm-shop-wrapper { grid-template-columns: 1fr !important; }
    .rm-sidebar { display: none; }
    /* Header */
    .rm-hamburger { display: flex !important; }
    #rm-nav { display: none !important; }
    /* mega panel hidden via #rm-nav display:none */
    .rm-topbar-menu { display: flex; gap: 8px; font-size: 11px; }
  .rm-topbar-menu a { font-size: 10px; padding: 0 4px; }
  .rm-topbar-left { font-size: 10px; flex-shrink: 0; }
    /* Wrap padding */
    .rm-wrap { padding: 0 16px; }
    /* Product sliders: 2 visible on mobile */
    .rm-product-slider { gap: 12px !important; }
    .rm-product-slider .rm-product-card { flex: 0 0 calc(50% - 6px) !important; min-width: calc(50% - 6px) !important; }
    /* Extra section sliders: 2 visible */
    [id^="rmsl-"] .rm-product-card,
    [id^="rmes-"] .rm-product-card { flex: 0 0 calc(50% - 6px) !important; min-width: calc(50% - 6px) !important; }
    /* Shop landing */
    .rm-shop-landing-wrap,
    .rm-shop-landing-wrap > div,
    .rm-shop-landing-wrap .rm-wrap { padding-left: 16px !important; padding-right: 16px !important; }
    /* Category grid in shop landing */
    .rm-shop-landing-wrap [style*="grid-template-columns"] { grid-template-columns: repeat(2,1fr) !important; }
    /* Section slider prev/next buttons */
    .rm-slider-prev { left: 0 !important; }
    .rm-slider-next { right: 0 !important; }
    /* Reviews layout */
    .rm-rev-wrap { grid-template-columns: 1fr !important; }
    #rm-rev-slider > div { flex: 0 0 100% !important; min-width: 100% !important; }
    /* Section head flex */
    .rm-section-head { flex-wrap: wrap; gap: 10px; }
}
/* ═══════════════════════════════════════════
   SINGLE PRODUCT GALLERY — v2
   ═══════════════════════════════════════════ */

/* Wrapper: stage + zoom result side by side */
.rm-gal-wrap {
  position: relative;
  display: block; /* not flex - zoom-result absolute needs simple parent */
}

/* Stage: the visible image area.
   aspect-ratio reserves the box's height BEFORE any image has loaded
   (avoids the old bug where height was purely auto/content-driven,
   causing the page to visibly jump as each image finished loading).
   The 1/1 here is only a fallback for the very first paint — the PHP
   template sets an inline aspect-ratio matching the FIRST image's own
   real proportions, and JS (goTo()) updates it to match whichever
   image is active as you browse the gallery, so a square photo, a
   portrait rug, and a long hallway-runner photo each get their own
   correctly-shaped box instead of all being force-cropped to a square. */
.rm-gal-stage {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 1 / 1;
  overflow: hidden !important; /* guarantees nothing (image or zoom overlay) can ever visually bleed past this box into the thumbnail row below, regardless of what's rendered inside */
  background: var(--light);
  cursor: crosshair;
  flex-shrink: 0;
  transition: aspect-ratio .3s ease;
}

/* All images stacked in the same box; object-fit:contain is now just
   a safety net (the box matches each image's real ratio, so there's
   normally no letterboxing needed) rather than doing the heavy
   lifting. Crossfade + slight scale between slides ("morph cut")
   instead of an abrupt display:none/block swap. */
.rm-gal-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  opacity: 0;
  visibility: hidden;
  transform: scale(.97);
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
  z-index: 1;
}

/* Active image: visible */
.rm-gal-img.rm-gal-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  pointer-events: auto;
  transition: opacity .35s ease, transform .35s ease, visibility 0s linear 0s;
  z-index: 2;
}

/* Loading spinner — shown only while the newly-active slide's image
   hasn't finished loading yet (goTo() in JS toggles the .show class). */
.rm-gal-spin {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
  z-index: 6;
}
.rm-gal-spin.show { opacity: 1; }
.rm-gal-spin span {
  width: 34px; height: 34px;
  border: 3px solid rgba(0,0,0,.12);
  border-top-color: var(--red);
  border-radius: 50%;
  animation: rm-spin .7s linear infinite;
}
@keyframes rm-spin { to { transform: rotate(360deg); } }

/* Prev / Next arrows */
.rm-gal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 15;   /* above zoom overlay (z-index:8) */
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.90);
  border: none;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  opacity: 0;
  transition: opacity .2s, background .15s;
  padding: 0;
  color: var(--dark);
}
/* Expanded invisible hit-area — the visual circle stays 38px, but the
   actual clickable/tappable region is considerably larger (roughly
   68px), well above the ~44px minimum recommended touch target, so
   prev/next are easy to hit without needing a bigger-looking button. */
.rm-gal-arrow::after {
  content: '';
  position: absolute;
  inset: -15px;
}
.rm-gal-stage:hover .rm-gal-arrow { opacity: 1; }
.rm-gal-arrow:hover { background: #fff; }
.rm-gal-prev { left: 10px; }
.rm-gal-next { right: 10px; }

/* Counter badge */
.rm-gal-counter {
  position: absolute;
  bottom: 10px;
  right: 10px;
  z-index: 10;
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 11px;
  font-family: var(--f-body);
  padding: 3px 9px;
  border-radius: 100px;
  pointer-events: none;
}

/* Zoom result box */
/* .rm-zoom-result removed — using inline overlay */

/* Thumbnails */
.rm-gal-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-top: 10px;
  width: 100%;
  box-sizing: border-box;
}
.rm-gal-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color .15s, opacity .15s;
  opacity: .75;
}
.rm-gal-thumb.rm-gal-active,
.rm-gal-thumb:hover { border-color: var(--red); opacity: 1; }

/* Lightbox */
#rm-lb {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.9);
  z-index: 99999;
  align-items: center;
  justify-content: center;
}
#rm-lb-inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 92vw;
}
#rm-lb-img {
  max-width: 80vw;
  max-height: 88vh;
  object-fit: contain;
  display: block;
  box-shadow: 0 8px 40px rgba(0,0,0,.5);
}
#rm-lb-close {
  position: fixed;
  top: 18px; right: 22px;
  background: none; border: none;
  color: #fff; font-size: 28px;
  cursor: pointer; line-height: 1; z-index: 2;
}
#rm-lb-p, #rm-lb-n {
  background: rgba(255,255,255,.15);
  border: none; color: #fff;
  font-size: 36px; width: 50px; height: 50px;
  border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .15s;
}
#rm-lb-p:hover, #rm-lb-n:hover { background: rgba(255,255,255,.28); }

/* Prose (description, care) */
.rm-prose { font-size: 14px; line-height: 1.75; color: var(--dark2); }
.rm-prose p   { margin: 0 0 1em; }
.rm-prose h1,.rm-prose h2,.rm-prose h3,.rm-prose h4 { font-family: var(--f-btn); margin: 1.4em 0 .5em; color: var(--dark); }
.rm-prose ul,.rm-prose ol { padding-left: 22px; margin: 0 0 1em; }
.rm-prose li  { margin-bottom: .4em; }
.rm-prose a   { color: var(--red); text-decoration: underline; }
.rm-prose strong { font-weight: 700; }

/* Spec table */
.rm-spec-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rm-spec-table th { padding: 9px 14px; border: 1px solid var(--border); background: var(--light); text-align: left; width: 38%; font-weight: 700; }
.rm-spec-table td { padding: 9px 14px; border: 1px solid var(--border); }
.rm-spec-table tr:nth-child(even) td { background: #faf8f5; }

/* Mobile: hide zoom on small screens */
@media(max-width:899px){
  /* Always show arrows on mobile */
  .rm-gal-arrow { opacity: 1 !important; background: rgba(255,255,255,.85) !important; }
  .rm-gal-stage { cursor: zoom-in; }
}


/* ── Reviews in single product tab ── */
#rm-tab-reviews .commentlist { list-style: none; margin: 0; padding: 0; }
#rm-tab-reviews .commentlist li.review {
  display: flex; gap: 16px; padding: 20px 0;
  border-bottom: 1px solid var(--border);
}
#rm-tab-reviews .commentlist li.review:last-child { border-bottom: none; }
#rm-tab-reviews .comment-text { flex: 1; }
#rm-tab-reviews .star-rating { color: #f59e0b; font-size: 14px; margin-bottom: 6px; }
#rm-tab-reviews .woocommerce-review__author { font-weight: 700; color: var(--dark); font-size: 14px; }
#rm-tab-reviews .woocommerce-review__dash { display: none; }
#rm-tab-reviews .woocommerce-review__published-date { font-size: 11px; color: var(--mid); margin-left: 8px; }
#rm-tab-reviews .description p { font-size: 14px; line-height: 1.7; color: #555; margin: 8px 0 0; }
#rm-tab-reviews .woocommerce-review__gravatar img { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--border); }
/* Review form */
#review_form_wrapper { margin-top: 28px; padding-top: 24px; border-top: 2px solid var(--border); }
#review_form_wrapper h3 { font-family: var(--f-btn); font-size: .9rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 16px; }
#review_form .stars a { color: #f59e0b; font-size: 20px; text-decoration: none; }
#review_form p { margin-bottom: 12px; }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
  width: 100%; padding: 9px 12px;
  border: 1.5px solid var(--border); border-radius: 4px;
  font-family: var(--f-heading); font-size: 13px;
  transition: border-color .15s;
}
#review_form input:focus, #review_form textarea:focus {
  border-color: var(--red); outline: none;
  box-shadow: 0 0 0 3px rgba(224,43,32,.08);
}
#review_form textarea { min-height: 100px; resize: vertical; }
#review_form #submit {
  background: var(--red); color: #fff; border: none;
  padding: 10px 28px; font-family: var(--f-btn);
  font-size: 12px; font-weight: 600; letter-spacing: 2px;
  text-transform: uppercase; cursor: pointer; border-radius: 4px;
}
#review_form #submit:hover { background: #c0241a; }


/* ── Add to Cart mini dialog ── */
#rm-atc-dialog {
  position: fixed !important;
  top: 80px !important;
  bottom: auto !important;
  left: auto !important;
  right: -400px !important;
  width: min(340px, calc(100vw - 32px)) !important;
  max-width: 340px !important;
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.18) !important;
  z-index: 999999 !important;
  overflow: hidden !important;
  transition: right .35s cubic-bezier(.4,0,.2,1) !important;
}
#rm-atc-dialog.rm-atc-open {
  right: 16px !important;
  bottom: auto !important;
}
#rm-atc-dialog .rm-atc-header {
  background: var(--dark);
  color: #fff;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-btn);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
#rm-atc-dialog .rm-atc-close {
  margin-left: auto;
  background: none;
  border: none;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
#rm-atc-dialog .rm-atc-body {
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
#rm-atc-dialog .rm-atc-img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  background: var(--light);
  display: block;
}
#rm-atc-dialog .rm-atc-img[src=""],
#rm-atc-dialog .rm-atc-img:not([src]) { display: none; }
#rm-atc-dialog .rm-atc-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 4px;
  line-height: 1.3;
}
#rm-atc-dialog .rm-atc-price { font-size: 13px; color: var(--red); font-weight: 700; }
#rm-atc-dialog .rm-atc-footer {
  padding: 10px 14px;
  display: flex;
  gap: 8px;
  border-top: 1px solid var(--border);
}
#rm-atc-dialog .rm-atc-footer a {
  flex: 1;
  text-align: center;
  padding: 8px;
  font-family: var(--f-btn);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
}
#rm-atc-dialog .rm-atc-view { background: var(--light); color: var(--dark); border: 1px solid var(--border); }
#rm-atc-dialog .rm-atc-checkout { background: var(--red); color: #fff; }


/* ================================================================
   ADVANCED FILTER BAR
   ================================================================ */
.rm-filter-bar {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-bottom: 24px;
}
.rm-filter-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  padding: 0 4px;
}
.rm-filter-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--mid);
  padding: 0 12px;
  border-right: 1px solid var(--border);
  height: 44px;
  flex-shrink: 0;
}
.rm-filter-groups {
  display: flex;
  flex-wrap: wrap;
  flex: 1;
}
.rm-filter-group {
  position: relative;
}
.rm-filter-group-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  border-right: 1px solid var(--border);
  padding: 0 14px;
  height: 44px;
  font-family: var(--f-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--dark);
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.rm-filter-group-btn:hover,
.rm-filter-active .rm-filter-group-btn { background: var(--light); color: var(--red); }
.rm-fg-arrow { transition: transform .2s; flex-shrink: 0; }
.rm-filter-group.rm-fg-open .rm-fg-arrow { transform: rotate(180deg); }

/* Dropdown */
.rm-filter-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.15);
  z-index: 9999;
  padding: 8px 0;
  max-height: 300px;
  overflow-y: auto;
}
.rm-filter-group.rm-fg-open .rm-filter-dropdown { display: block; }

.rm-filter-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  font-size: 13px;
  color: var(--dark);
  cursor: pointer;
  transition: background .1s;
}
.rm-filter-option:hover { background: var(--light); }
.rm-filter-option input[type="checkbox"] { accent-color: var(--red); flex-shrink: 0; }
.rm-fo-count { color: var(--mid); font-size: 11px; margin-left: auto; }
.rm-fo-active { font-weight: 700; color: var(--red); }
.rm-fo-active .rm-fo-count { color: var(--red); }

/* Active group indicator */
.rm-filter-active .rm-filter-group-btn {
  color: var(--red);
}

/* Clear button */
.rm-filter-clear {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
  padding: 0 14px;
  background: none;
  border: none;
  border-left: 1px solid var(--border);
  height: 44px;
  font-family: var(--f-heading);
  font-size: 12px;
  font-weight: 600;
  color: var(--mid);
  cursor: pointer;
  transition: color .15s;
  white-space: nowrap;
}
.rm-filter-clear:hover { color: var(--red); }

/* Results count */
.rm-filter-count {
  font-size: 13px;
  color: var(--mid);
  margin-bottom: 16px;
}
.rm-filter-count strong { color: var(--dark); }

/* Loading overlay */
.rm-filter-loading {
  opacity: .5;
  pointer-events: none;
  transition: opacity .2s;
}

@media(max-width:768px){
  .rm-filter-label { display: none; }
  .rm-filter-group-btn { font-size: 12px; padding: 0 10px; height: 40px; white-space: nowrap; }
  .rm-filter-groups {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;  /* allow dropdown to show */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;  /* prevent clipping */
  }
  .rm-filter-groups::-webkit-scrollbar { display: none; }
  .rm-filter-bar { overflow: visible; }  /* ensure bar doesn't clip */
  .rm-filter-inner { overflow: visible; }
  .rm-filter-dropdown {
    position: fixed;
    left: 8px;
    right: 8px;
    top: auto;
    width: auto;
    min-width: unset;
    max-height: 50vh;
    overflow-y: auto;
    z-index: 9999;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
  }
}

/* Range slider */
.rm-range-input {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: transparent;
}
.rm-range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--red);
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
  pointer-events: all !important;
}
.rm-range-input::-moz-range-thumb {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--red);
  cursor: pointer;
  border: 2px solid #fff;
  pointer-events: all !important;
}

/* ================================================================
   SINGLE BLOG POST
   ================================================================ */
.rm-blog-wrap { padding: 40px 0 60px; }

.rm-blog-single {
  max-width: 860px;
  margin: 0 auto;
}

/* ── Post header ── */
.rm-post-header { margin-bottom: 24px; }
.rm-post-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rm-post-cat-tag {
  background: var(--red);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 3px;
  text-decoration: none;
}
.rm-post-cat-tag-sm { font-size: 10px; padding: 2px 8px; }
.rm-post-cat-tag:hover { opacity: .85; }
.rm-post-title { font-size: clamp(1.5rem,3vw,2rem); line-height: 1.25; margin: 0 0 14px; }
.rm-post-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--mid);
  flex-wrap: wrap;
}
.rm-post-meta svg { flex-shrink: 0; }
.rm-post-meta .rm-post-cat-tag { font-size: 10px; padding: 2px 8px; }
.rm-meta-sep { color: var(--border); }

/* Featured image */
.rm-post-thumb {
  margin-bottom: 28px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.rm-post-featured-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  object-position: center top;
  display: block;
}
@media(max-width:768px){
  .rm-post-featured-img { height: 220px; }
}

/* ── TOC ── */
.rm-toc {
  background: var(--light);
  border: 1px solid var(--border);
  border-left: 3px solid var(--red);
  border-radius: 6px;
  margin-bottom: 28px;
  overflow: hidden;
}
.rm-toc-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 700;
  font-size: 13px;
  user-select: none;
}
.rm-toc-header:hover { background: rgba(0,0,0,.03); }
.rm-toc-header .rm-toc-arrow { margin-left: auto; transition: transform .2s; }
.rm-toc.rm-toc-open .rm-toc-arrow { transform: rotate(180deg); }
.rm-toc-list {
  display: none;
  margin: 0;
  padding: 8px 16px 14px 28px;
  list-style: decimal;
}
.rm-toc.rm-toc-open .rm-toc-list { display: block; }
.rm-toc-list li { margin: 5px 0; font-size: 13px; }
.rm-toc-list a { color: var(--dark2); text-decoration: none; }
.rm-toc-list a:hover { color: var(--red); }
.rm-toc-h3 { padding-left: 12px; font-size: 12px; }
.rm-toc-h4 { padding-left: 24px; font-size: 11px; }

/* ── Post body ── */
.rm-post-body {
  font-size: 15px;
  line-height: 1.8;
  color: #333;
}
.rm-post-body h2 { font-size: 1.3rem; margin: 32px 0 14px; border-bottom: 2px solid var(--light); padding-bottom: 8px; }
.rm-post-body h3 { font-size: 1.1rem; margin: 24px 0 10px; }
.rm-post-body p { margin: 0 0 16px; }
.rm-post-body img { max-width: 100%; border-radius: 6px; }
.rm-post-body a { color: var(--red); }
.rm-post-body ul, .rm-post-body ol { padding-left: 24px; margin-bottom: 16px; }
.rm-post-body li { margin-bottom: 6px; }
.rm-post-body blockquote {
  border-left: 3px solid var(--red);
  margin: 20px 0;
  padding: 12px 20px;
  background: var(--light);
  border-radius: 0 6px 6px 0;
  font-style: italic;
}

/* ── Promo block ── */
.rm-post-promo {
  margin: 32px 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
}
.rm-promo-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
}
.rm-promo-img { width: 110px; height: 110px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.rm-promo-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--mid); margin-bottom: 6px; }
.rm-promo-title { font-weight: 700; font-size: 1rem; margin-bottom: 4px; color: var(--dark); }
.rm-promo-price { color: var(--dark); font-weight: 700; margin-bottom: 12px; font-size:.95rem; }
.rm-promo-desc { font-size: 13px; color: var(--mid); margin-bottom: 10px; }
.rm-promo-btn {
  display: inline-block;
  background: var(--dark);
  color: #fff !important;
  padding: 8px 20px;
  border-radius: 4px;
  font-family: var(--f-btn);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background .2s;
}
.rm-promo-btn:hover { background: var(--red) !important; color: #fff !important; }

/* ── Post footer ── */
.rm-post-cats-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 32px 0 16px;
  padding: 16px 0;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--mid);
}
.rm-post-cats-footer a { color: var(--dark2); text-decoration: none; font-weight: 600; }
.rm-post-cats-footer a:hover { color: var(--red); }

.rm-post-sources {
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 16px 20px;
  margin: 16px 0 32px;
}
.rm-post-sources h4 {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  margin: 0 0 10px;
  color: var(--mid);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rm-post-sources ul { margin: 0; padding-left: 18px; }
.rm-post-sources li { font-size: 13px; margin-bottom: 4px; }
.rm-post-sources a { color: var(--red); text-decoration: none; }
.rm-post-sources a:hover { text-decoration: underline; }

/* ── Comments ── */
.rm-post-comments { margin-top: 48px; padding-top: 36px; border-top: 2px solid var(--light); }

/* Comment list */
.rm-post-comments .comments-title {
  font-family: var(--f-heading);
  font-size: 1.1rem;
  margin: 0 0 24px;
}
.rm-post-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.rm-post-comments .comment {
  padding: 20px 0;
  border-bottom: 1px solid var(--light);
}
.rm-post-comments .comment-body { display: flex; gap: 14px; }
.rm-post-comments .comment-author img {
  width: 44px; height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--border);
}
.rm-post-comments .comment-content { flex: 1; }
.rm-post-comments .comment-meta { margin-bottom: 6px; }
.rm-post-comments .comment-author .fn {
  font-weight: 700;
  font-size: 14px;
  font-style: normal;
  color: var(--dark);
}
.rm-post-comments .comment-metadata {
  font-size: 12px;
  color: var(--mid);
  margin-top: 2px;
}
.rm-post-comments .comment-metadata a { color: var(--mid); text-decoration: none; }
.rm-post-comments .comment-content p { font-size: 14px; line-height: 1.7; margin: 8px 0; color: #444; }
.rm-post-comments .reply { margin-top: 8px; }
.rm-post-comments .reply a {
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rm-post-comments .children {
  list-style: none;
  padding-left: 58px;
  margin: 0;
  border-left: 2px solid var(--border);
  margin-left: 22px;
}

/* Comment form */
.rm-post-comments #respond {
  margin-top: 36px;
  background: var(--light);
  border-radius: 10px;
  padding: 24px;
}
.rm-post-comments #respond h3 {
  font-size: 1rem;
  margin: 0 0 20px;
  font-family: var(--f-heading);
}
.rm-post-comments .comment-form p { margin-bottom: 14px; }
.rm-post-comments .comment-form label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mid);
  margin-bottom: 5px;
}
.rm-post-comments .comment-form input[type="text"],
.rm-post-comments .comment-form input[type="email"],
.rm-post-comments .comment-form input[type="url"],
.rm-post-comments .comment-form textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: var(--f-heading);
  font-size: 14px;
  background: #fff;
  transition: border-color .2s;
  box-sizing: border-box;
}
.rm-post-comments .comment-form input:focus,
.rm-post-comments .comment-form textarea:focus {
  outline: none;
  border-color: var(--red);
}
.rm-post-comments .comment-form textarea { min-height: 120px; resize: vertical; }
.rm-post-comments .comment-form-comment { margin-bottom: 14px; }
.rm-post-comments .form-submit input[type="submit"] {
  background: var(--red);
  color: #fff;
  border: none;
  padding: 10px 24px;
  border-radius: 4px;
  font-family: var(--f-btn);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
}
.rm-post-comments .form-submit input[type="submit"]:hover { background: var(--dark); }

/* ── Sidebar ── */



.rm-blog-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.rm-blog-card-img { display: block; aspect-ratio: 16/9; overflow: hidden; }
.rm-blog-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.rm-blog-card:hover .rm-blog-card-img img { transform: scale(1.04); }
.rm-blog-card-placeholder { width: 100%; height: 100%; background: var(--light); }
.rm-blog-card-body { padding: 14px; }
.rm-blog-card-body h4 { font-size: .9rem; margin: 8px 0 6px; line-height: 1.4; }
.rm-blog-card-body h4 a { color: var(--dark); text-decoration: none; }
.rm-blog-card-body h4 a:hover { color: var(--red); }
.rm-blog-card-body p { font-size: 12px; color: var(--mid); margin: 0 0 8px; line-height: 1.5; }
.rm-blog-date { font-size: 11px; color: var(--mid); }

@media(max-width:900px){
  .rm-blog-layout { grid-template-columns: 1fr; }
  .rm-blog-sidebar { position: static; }
  .rm-toc-sticky { display: none; }
  .rm-related-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px){
  .rm-related-grid { grid-template-columns: 1fr; }
  .rm-promo-inner { flex-direction: column; }
}

/* ================================================================
   ABOUT US PAGE
   ================================================================ */
.rm-about-hero {
  position: relative;
  background: var(--dark) center/cover no-repeat;
  min-height: 480px;
  display: flex;
  align-items: center;
}
.rm-about-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}
.rm-about-hero-inner { position: relative; z-index: 1; padding: 60px 0; }
.rm-about-hero-content { max-width: 680px; color: #fff; }
.rm-about-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  opacity: .75;
  margin-bottom: 12px;
}
.rm-about-hero-content h1 { font-size: clamp(1.6rem,3vw,2.4rem); margin-bottom: 16px; }
.rm-about-hero-content p { font-size: 15px; line-height: 1.8; opacity: .9; margin-bottom: 24px; }

/* Values strip */
.rm-about-values {
  background: var(--light);
  padding: 36px 0;
  border-bottom: 1px solid var(--border);
}
.rm-about-values .rm-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 24px;
  text-align: center;
}
.rm-value-item { padding: 8px; }
.rm-value-icon { font-size: 2rem; margin-bottom: 8px; }
.rm-value-title { font-weight: 700; font-size: 13px; margin-bottom: 4px; color: var(--dark); }
.rm-value-desc { font-size: 12px; color: var(--mid); line-height: 1.5; }

/* Story */
.rm-about-story { padding: 60px 0; }
.rm-about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.rm-story-full { grid-column: 1/-1; max-width: 760px; margin: 0 auto; }
.rm-about-story-img img { width: 100%; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,.12); }
.rm-about-story-text h2 { font-size: 1.6rem; margin-bottom: 16px; }
.rm-about-story-text p { font-size: 15px; line-height: 1.8; color: #444; margin-bottom: 14px; }

@media(max-width:768px){
  .rm-about-story-grid { grid-template-columns: 1fr; }
  .rm-about-hero { min-height: 340px; }
}

/* ================================================================
   CONTACT US PAGE
   ================================================================ */
.rm-contact-wrap { padding: 50px 0 60px; }
.rm-contact-header { text-align: center; margin-bottom: 40px; }
.rm-contact-header h1 { font-size: clamp(1.6rem,3vw,2.2rem); margin-bottom: 10px; }
.rm-contact-header p { color: var(--mid); font-size: 15px; max-width: 500px; margin: 0 auto; }

.rm-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  align-items: start;
}
/* Info always col1, Form always col2 on desktop */
.rm-contact-info      { order: 1; }
.rm-contact-form-wrap { order: 2; }

@media (max-width: 768px) {
  .rm-contact-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  /* Mobile: info(1) → form(2), map is outside grid so always last */
  .rm-contact-info      { order: 1; padding: 0 16px; }
  .rm-contact-form-wrap { order: 2; margin: 0 16px; }
  .rm-contact-map-full  { margin-left: 16px; margin-right: 16px; }
}
/* Map full-width below grid - always last */
.rm-contact-map-full {
  margin-top: 32px;
}
.rm-contact-map-full iframe {
  width: 100%;
  height: 380px;
  border: 0;
  border-radius: 8px;
  display: block;
}

/* Info */
.rm-contact-item {
  display: flex;
  gap: 14px;
  margin-bottom: 24px;
  align-items: flex-start;
}
.rm-contact-icon {
  width: 42px;
  height: 42px;
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--red);
}
.rm-contact-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mid);
  margin-bottom: 3px;
}
.rm-contact-item a { color: var(--dark); text-decoration: none; font-size: 14px; font-weight: 600; }
.rm-contact-item a:hover { color: var(--red); }
.rm-contact-item span { font-size: 14px; line-height: 1.6; }
.rm-contact-map { margin-top: 8px; border-radius: 8px; overflow: hidden; }

/* Form */
.rm-contact-form-wrap {
  background: var(--light);
  border-radius: 12px;
  padding: 32px;
}
.rm-cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rm-cf-field { margin-bottom: 18px; }
.rm-cf-field label { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--mid); margin-bottom: 6px; }
.rm-cf-field label span { color: var(--red); }
.rm-cf-field input, .rm-cf-field textarea, .rm-cf-field select {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: var(--f-heading);
  font-size: 14px;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .2s;
}
.rm-cf-field select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 38px;
  cursor: pointer;
  color: var(--dark);
}
.rm-cf-field input:focus, .rm-cf-field textarea:focus, .rm-cf-field select:focus { outline: none; border-color: var(--red); }
.rm-cf-field textarea { resize: vertical; min-height: 140px; }
.rm-contact-form .rm-btn { display: inline-flex; align-items: center; gap: 8px; }
.rm-contact-success { text-align: center; padding: 40px 20px; }
.rm-contact-success h3 { font-size: 1.2rem; margin: 12px 0 6px; }
.rm-contact-success p { color: var(--mid); }
.rm-contact-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; padding: 10px 14px; border-radius: 6px; font-size: 13px; margin-bottom: 16px; }

@media(max-width:768px){
  .rm-contact-grid { grid-template-columns: 1fr; }
  .rm-cf-row { grid-template-columns: 1fr; }
  .rm-contact-form-wrap { padding: 20px; }
}
/* ── Nav responsive breakpoints ── */
@media(max-width:1400px){
  #rm-nav > ul > li > a { padding: 0 10px; font-size: 12px; letter-spacing: 0; }
}
@media(max-width:1200px){
  #rm-nav > ul > li > a { padding: 0 7px; font-size: 11px; }
  #rm-header .rm-header-inner > .rm-logo { margin-right: 12px; }
  #rm-header .rm-header-inner > .rm-header-icons { margin-left: 12px; gap: 1px; }
}
@media(max-width:1024px){
  #rm-nav > ul > li > a { padding: 0 5px; font-size: 10.5px; }
  #rm-header .rm-header-inner > .rm-logo img { height: 40px !important; }
  .rm-header-icon { width: 32px !important; height: 32px !important; }
}

/* ================================================================
   REVIEWS SLIDER
   ================================================================ */
.rm-reviews-section { padding: 50px 0; background: var(--light); }
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.rm-rating-badge { display: flex; align-items: center; gap: 12px; }
.rm-rating-score { font-size: 2rem; font-weight: 700; line-height: 1; }
.rm-rating-stars { display: flex; gap: 2px; margin: 4px 0; }
.rm-rating-count { font-size: 12px; color: var(--mid); }

.rm-reviews-slider-wrap { position: relative; }
.rm-reviews-slider { display: flex; gap: 20px; transition: transform .4s ease; }
.rm-review-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px;
  flex: 0 0 calc(33.333% - 14px);
}
.rm-review-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rm-review-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--red); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 16px; flex-shrink: 0;
}
.rm-review-name { font-weight: 700; font-size: 14px; }
.rm-review-date { font-size: 11px; color: var(--mid); }
.rm-review-stars { display: flex; gap: 2px; margin-bottom: 10px; }
.rm-review-text {
  font-size: 13px;
  line-height: 1.6;
  color: #444;
  margin: 0;
  height: 80px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,.15) transparent;
}
.rm-review-text::-webkit-scrollbar { width: 3px; }
.rm-review-text::-webkit-scrollbar-track { background: transparent; }
.rm-review-text::-webkit-scrollbar-thumb { background: rgba(0,0,0,.2); border-radius: 2px; }
.rm-review-text.expanded { overflow-y: auto; }
/* Scroll indicator */
.rm-review-scroll-hint {
  display: none;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--red);
  font-weight: 600;
  cursor: default;
  user-select: none;
  opacity: .75;
}
.rm-review-scroll-hint.visible { display: flex; }
.rm-review-scroll-hint svg { flex-shrink: 0; }
.rm-review-more {
  display: none;
  margin-top: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.rm-rev-prev, .rm-rev-next {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: #fff; border: 1px solid var(--border);
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; cursor: pointer; border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  z-index: 5; color: var(--dark);
}
.rm-rev-prev { left: -18px; }
.rm-rev-next { right: -18px; }
.rm-rev-prev:hover, .rm-rev-next:hover { background: var(--red); color: #fff; border-color: var(--red); }

/* ── Comment section ── */
.rm-post-comments { margin-top: 48px; padding-top: 36px; border-top: 2px solid var(--light); }
.rm-post-comments .comments-title { font-family: var(--f-heading); font-size: 1.1rem; margin: 0 0 24px; }
.rm-post-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.rm-post-comments .comment { margin-bottom: 0; }
.rm-post-comments .comment-body {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--light);
}
.rm-post-comments .comment-author {
  flex-shrink: 0;
}
.rm-post-comments .comment-author img {
  width: 48px; height: 48px;
  border-radius: 50%; object-fit: cover;
  border: 2px solid var(--border);
  display: block;
}
.rm-post-comments .comment-content-wrap { flex: 1; min-width: 0; }
.rm-post-comments .comment-top {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.rm-post-comments .fn {
  font-weight: 700; font-size: 14px;
  font-style: normal; color: var(--dark);
}
.rm-post-comments .comment-metadata {
  font-size: 12px; color: var(--mid);
}
.rm-post-comments .comment-metadata a { color: var(--mid); text-decoration: none; }
.rm-post-comments .comment-content p {
  font-size: 14px; line-height: 1.7;
  margin: 0 0 10px; color: #444;
}
.rm-post-comments .reply {
  margin-top: 4px;
}
.rm-post-comments .reply a {
  font-size: 11px; font-weight: 700;
  color: var(--red); text-decoration: none;
  text-transform: uppercase; letter-spacing: .5px;
  display: inline-flex; align-items: center; gap: 4px;
}
.rm-post-comments .reply a::before {
  content: "\0021a9";
  font-size: 13px;
}
.rm-post-comments .children {
  list-style: none;
  padding-left: 64px;
  margin: 0;
}
.rm-post-comments .children .comment-body {
  background: var(--light);
  padding: 14px 16px;
  border-radius: 8px;
  border: none;
  margin-bottom: 10px;
}

/* ================================================================
   OWL CAROUSEL CUSTOMIZATION
   ================================================================ */
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
  width: 36px; height: 36px;
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 50%;
  color: var(--dark) !important;
  font-size: 20px !important;
  line-height: 34px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  transition: background .2s, color .2s;
}
.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover {
  background: var(--red) !important;
  color: #fff !important;
  border-color: var(--red) !important;
}
.owl-carousel .owl-dots .owl-dot span {
  background: var(--border);
  width: 8px; height: 8px;
  border-radius: 4px;
  transition: all .2s;
}
.owl-carousel .owl-dots .owl-dot.active span {
  background: var(--red);
  width: 20px;
}
/* Reviews owl */
.rm-reviews-owl { padding: 0 40px; }
.rm-reviews-owl .owl-nav { position: static; }
.rm-reviews-owl .owl-nav button.owl-prev { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.rm-reviews-owl .owl-nav button.owl-next { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.rm-reviews-slider-wrap { position: relative; }
.rm-reviews-owl .owl-dots { margin-top: 16px; }

/* ================================================================
   OWL CAROUSEL LAYOUT
   ================================================================ */
.owl-carousel { position: relative; }

/* Equal height items */
.owl-carousel .owl-stage { display: flex; align-items: stretch; }
.owl-carousel .owl-item { display: flex; align-items: stretch; flex: 1; }
.owl-carousel .owl-item > * { flex: 1; min-width: 0; }

/* Product cards: same height, ATC at bottom */
.owl-carousel .rm-product-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
  box-sizing: border-box;
}
.owl-carousel .rm-product-card .rm-product-thumb {
  flex-shrink: 0;
}
.owl-carousel .rm-product-card .rm-product-info {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.owl-carousel .rm-product-card .rm-product-info h3 {
  flex: 1;
}
.owl-carousel .rm-product-card .rm-product-price {
  flex-shrink: 0;
  margin-bottom: 8px;
}
.owl-carousel .rm-product-card .rm-atc-btn {
  flex-shrink: 0;
  margin-top: auto;
}

/* Blog cards equal height */
.owl-carousel .rm-blog-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
}
.owl-carousel .rm-blog-card .rm-blog-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.owl-carousel .rm-blog-card .rm-blog-body h3 { flex: 1; }

/* Review cards equal height */
.owl-carousel .rm-review-card {
  display: flex !important;
  flex-direction: column;
  height: 100% !important;
}

/* Nav: wrapper has side padding so buttons sit outside cards */
.rm-products-owl,
.rm-shop-prod-owl,
.rm-blog-owl,
.rm-single-blog-owl {
  padding: 0 40px;
}
/* Extra sliders - dynamic class names */
[class*="rm-extra-owl-"] { padding: 0 40px; }
.owl-carousel .owl-nav {
  position: absolute;
  top: 0; bottom: 60px; /* above info section */
  left: 0; right: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.owl-carousel .owl-nav button { pointer-events: all; }
.owl-carousel .owl-nav button.owl-prev { margin-left: 0; }
.owl-carousel .owl-nav button.owl-next { margin-right: 0; }

/* Reviews: nav fully outside via wrapper padding */
.rm-reviews-slider-wrap { padding: 0 48px; }
.rm-reviews-owl { padding: 0; }
.rm-reviews-owl .owl-nav {
  top: 0; bottom: 0;
  align-items: center;
}

/* Blog hero: nav outside image */
.rm-blog-hero-owl { padding: 0 48px; }
.rm-blog-hero-owl .owl-nav {
  top: 0; bottom: 0;
  align-items: center;
}
.rm-blog-hero-owl .owl-nav button.owl-prev { margin-left: 0; }
.rm-blog-hero-owl .owl-nav button.owl-next { margin-right: 0; }

/* Dots */
.owl-carousel .owl-dots { margin-top: 16px; text-align: center; }

/* ================================================================
   PLATFORM REVIEW BADGES (Google + Trustpilot)
   ================================================================ */
.rm-reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.rm-platform-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 24px;
  min-width: 150px;
  text-align: center;
  text-decoration: none;
  color: var(--dark);
  transition: box-shadow .2s, transform .2s;
  cursor: pointer;
}
.rm-platform-badge:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  transform: translateY(-2px);
  text-decoration: none;
  color: var(--dark);
}
.rm-pb-logo {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}
.rm-pb-name {
  font-weight: 700;
  font-size: 15px;
  color: var(--dark);
}
.rm-pb-score {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 4px;
  color: var(--dark);
}
.rm-pb-stars {
  display: flex;
  gap: 2px;
  justify-content: center;
  margin-bottom: 4px;
}
.rm-pb-count {
  font-size: 12px;
  color: var(--mid);
  margin-bottom: 6px;
}
.rm-pb-cta {
  font-size: 11px;
  font-weight: 700;
  color: var(--red);
  letter-spacing: .3px;
}
.rm-tp-badge .rm-pb-cta { color: #00b67a; }

/* ── Footer review badge buttons ── */
.rm-review-badge-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .3px;
  text-decoration: none !important;
  margin-bottom: 8px;
  margin-top: 8px;
  transition: opacity .2s;
  white-space: nowrap;
  height: 38px;
  max-width: 100%;
  box-sizing: border-box;
}
.rm-review-badge-btn:hover { opacity: .85; text-decoration: none !important; }
.rm-review-badge-btn svg { flex-shrink: 0; display: block; }
.rm-review-badge-btn span { white-space: nowrap; }
.rm-google-btn { background: #fff; color: #333 !important; border: 1px solid #e0e0e0; }
.rm-tp-btn { background: #00b67a; color: #fff !important; }

/* ================================================================
   FOOTER RESPONSIVE
   ================================================================ */
@media (max-width: 900px) {
  .rm-footer-grid {
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 24px !important;
  }
  .rm-footer-col:first-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .rm-footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
  }
  .rm-footer-col:first-child { grid-column: 1 / -1; }
  .rm-footer-col:last-child  { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .rm-footer-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .rm-footer-col:first-child,
  .rm-footer-col:last-child { grid-column: auto; }
  .rm-footer-col h4 { font-size: 12px; }
  #rm-footer { padding: 28px 16px 0; }
}

/* Bottom bar mobile */
@media (max-width: 768px) {
  .rm-footer-bottom {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    text-align: center;
  }
  .rm-footer-bottom-links {
    justify-content: center !important;
    flex-wrap: wrap;
    gap: 12px !important;
  }
  .rm-footer-bottom-center { justify-content: center; }
}

/* Badge mobile */
@media (max-width: 480px) {
  .rm-review-badge-btn {
    font-size: 11px;
    padding: 0 12px;
  }
}

/* Trust bar mobile */
@media (max-width: 768px) {
  
}
@media (max-width: 480px) {
  
}

/* Badges side by side on mobile, stacked on desktop */
@media (max-width: 768px) {
  .rm-footer-col ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px 0;
  }
  .rm-footer-col ul li {
    flex: 0 0 100%;
  }
  .rm-footer-col ul li.rm-fi-badge {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 8px;
  }
  .rm-footer-col ul li.rm-fi-badge .rm-review-badge-btn {
    display: flex !important;
    white-space: nowrap;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 11px;
    padding: 0 10px;
  }
}

/* ── Product cards wider on mobile ── */
@media (max-width: 600px) {
  .rm-product-card { border-radius: 6px; }
  .rm-product-info { padding: 8px 8px; }
  .rm-product-info h3 { font-size: 12px; line-height: 1.4; }
  .rm-product-price { font-size: 13px; margin-bottom: 6px; }
  .rm-atc-btn { font-size: 11px; padding: 8px 2px; letter-spacing: 1px; }
  /* Owl: minimal gap between cards, minimal side padding */
  .rm-products-owl,
  [class*="rm-extra-owl-"],
  .rm-shop-prod-owl { padding: 0 24px !important; }
  .rm-products-owl .owl-stage,
  [class*="rm-extra-owl-"] .owl-stage,
  .rm-shop-prod-owl .owl-stage { gap: 6px; }
  .owl-carousel.rm-products-owl .owl-item,
  .owl-carousel.rm-shop-prod-owl .owl-item,
  .owl-carousel[class*="rm-extra-owl-"] .owl-item { padding: 0 3px; }
  /* Override owl margin */
  .rm-products-owl .owl-stage,
  .rm-shop-prod-owl .owl-stage { gap: 0; }
  /* Product grid: tighter gap */
  .rm-products-grid { gap: 8px !important; }
}

/* ── Gallery zoom button ── */
.rm-gal-zoom-btn {
  position: absolute;
  top: 48px;
  right: 12px;
  bottom: auto;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 20;
  transition: background .2s, transform .2s;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.rm-gal-zoom-btn:hover {
  background: #fff;
  transform: scale(1.1);
}

/* ── Lightbox ── */
#rm-lb {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
}
#rm-lb.active { display: flex; }
#rm-lb-img {
  max-width: 92vw;
  max-height: 90vh;
  object-fit: contain;
  display: block;
  border-radius: 4px;
  box-shadow: 0 8px 48px rgba(0,0,0,.5);
  cursor: zoom-out;
}
#rm-lb-close {
  position: fixed;
  top: 16px; right: 20px;
  background: none;
  border: none;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
  z-index: 10;
  line-height: 1;
  opacity: .8;
  transition: opacity .2s;
}
#rm-lb-close:hover { opacity: 1; }
#rm-lb-prev, #rm-lb-next {
  position: fixed;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  font-size: 28px;
  width: 44px; height: 60px;
  cursor: pointer;
  z-index: 10;
  border-radius: 4px;
  transition: background .2s;
}
#rm-lb-prev:hover, #rm-lb-next:hover { background: rgba(255,255,255,.3); }
#rm-lb-prev { left: 10px; }
#rm-lb-next { right: 10px; }
#rm-lb-counter {
  position: fixed;
  bottom: 16px; left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.7);
  font-size: 13px;
}

@keyframes rm-spin {
  to { transform: rotate(360deg); }
}
#rm-lb-img {
  transition: opacity .25s ease, transform .25s ease;
  cursor: zoom-in;
}
#rm-lb-img[style*="opacity: 0"] { transform: scale(.97); }
/* Trust bar: desktop/mobile separation + mobile overflow fix */
.rm-trust-mobile { display: none; }
.rm-trust-desktop { display: flex; }
@media (max-width: 768px) {
  .rm-trust-desktop { display: none; }
  .rm-trust-mobile  { display: flex; }
}
/* Fix mobile overflow - items don't get cut off */
@media (max-width: 768px) {
  

}

/* Top bar desktop/mobile separation */
.rm-topbar-mobile { display: none !important; }
.rm-topbar-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-topbar-desktop { display: none !important; }
  .rm-topbar-mobile  { display: flex !important; }
  /* Mobile: items don't overflow */
  .rm-topbar-mobile .rm-topbar-nav {
    display: flex;
    gap: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .rm-topbar-mobile .rm-topbar-nav li {
    flex: 0 0 auto;
  }
  .rm-topbar-mobile .rm-topbar-nav li a {
    padding: 0 10px;
    white-space: nowrap;
    font-size: 11px;
  }
}

/* Top bar: desktop/mobile nav */
.rm-topbar-nav-mobile { display: none !important; }
.rm-topbar-nav-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile  { display: flex !important; }
  /* Fix overflow */
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
  .rm-topbar-nav-mobile .rm-topbar-nav { overflow: hidden; }
  .rm-topbar-nav-mobile .rm-topbar-nav li a { white-space: nowrap; font-size: 11px; }
}

/* Trust bar: desktop/mobile */
.rm-trust-mobile { display: none !important; }
.rm-trust-desktop { display: flex !important; }
@media (max-width: 768px) {
  .rm-trust-desktop { display: none !important; }
  .rm-trust-mobile  { display: flex !important; }
  .rm-trust-mobile .rm-trust-item { flex: 1 1 0; min-width: 0; }

}

/* Top bar desktop/mobile nav */
.rm-topbar-nav-mobile { display: none !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile  { display: flex !important; }
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}

/* Top bar nav desktop/mobile */
.rm-topbar-nav-mobile { display: none !important; }
@media (max-width: 768px) {
  .rm-topbar-nav-desktop { display: none !important; }
  .rm-topbar-nav-mobile { display: flex !important; }
  #rm-topbar { overflow: visible; }
  #rm-topbar .rm-wrap { padding-right: 12px; }
}
/* Trust bar desktop/mobile */
.rm-tb-show-mobile { display: none !important; }
@media (max-width: 768px) {
  .rm-tb-show-desktop { display: none !important; }
  .rm-tb-show-mobile {
    display: flex !important;
    justify-content: center;
    gap: 0;
  }
  .rm-tb-show-mobile .rm-trust-item {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 6px;
    justify-content: center;
  }
  .rm-tb-show-mobile .rm-trust-item {
    flex: 1 1 0;
    justify-content: center;
    min-width: 0;
  }
  .rm-tb-show-mobile .rm-trust-item span {
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    max-width: 80px;
  }
  .rm-tb-show-mobile .rm-trust-item svg {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
  }
}

/* Hide ATC buttons on listing pages + related products, not on main single product */
body.rm-hide-atc:not(.single-product) .rm-atc-btn { display: none !important; }
body.rm-hide-atc:not(.single-product) .rm-product-info { padding-bottom: 12px; }
body.rm-hide-atc .rm-related .rm-atc-btn { display: none !important; }
body.rm-hide-atc .rm-related .rm-product-info { padding-bottom: 12px; }

/* ATC added state color */
.rm-atc-btn.added,
.rm-atc-btn[disabled].added,
.rm-atc-btn.rm-added {
  background: var(--atc-added, #8B6914) !important;
  border-color: var(--atc-added, #8B6914) !important;
  color: #fff !important;
}

/* Tab nav mobile - scrollable */
@media (max-width: 768px) {
  .rm-tabs-nav {
    overflow-x: auto;
    overflow-y: visible;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .rm-tabs-nav::-webkit-scrollbar { display: none; }
  .rm-tabs-nav a {
    font-size: 12px !important;
    padding: 10px 10px !important;
    letter-spacing: 0.2px !important;
    white-space: nowrap;
    flex-shrink: 0;
  }
}

/* ── Our Categories Grid ── */
.rm-catg-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
/* 4 items → 4 cols, 3 items → 3 cols */
.rm-catg-grid[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
.rm-catg-grid[data-count="4"] { grid-template-columns: repeat(4, 1fr); }
/* 5 → 5 cols, 6 → 6, etc — auto */

@media (max-width: 900px) {
  .rm-catg-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 480px) {
  .rm-catg-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ================================================================
   ABOUT US PAGE
   ================================================================ */

/* Stats Bar */
.rm-about-stats {
  background: var(--dark);
  padding: 32px 0;
}
.rm-about-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  text-align: center;
}
.rm-about-stat {
  padding: 16px;
  border-right: 1px solid rgba(255,255,255,.1);
}
.rm-about-stat:last-child { border-right: none; }
.rm-about-stat-num {
  font-size: 2rem;
  font-weight: 800;
  color: var(--red);
  font-family: var(--f-heading);
  line-height: 1;
  margin-bottom: 6px;
}
.rm-about-stat-label {
  font-size: 12px;
  color: rgba(255,255,255,.7);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Story */
.rm-about-story {
  padding: 70px 0;
  background: var(--white);
}

/* Why Us */
.rm-about-values {
  padding: 60px 0;
  background: var(--light);
}
.rm-about-values-title {
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 40px;
  color: var(--dark);
}
.rm-about-values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.rm-about-value-card {
  background: var(--white);
  border-radius: 10px;
  padding: 28px 20px;
  text-align: center;
  border: 1px solid var(--border);
  transition: box-shadow .2s, transform .2s;
}
.rm-about-value-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
  transform: translateY(-3px);
}
.rm-about-value-icon {
  font-size: 2.4rem;
  margin-bottom: 12px;
}
.rm-about-value-card h3 {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--dark);
}
.rm-about-value-card p {
  font-size: 13px;
  color: var(--mid);
  margin: 0;
  line-height: 1.6;
}

/* Process */
.rm-about-process {
  padding: 60px 0;
  background: var(--white);
}
.rm-about-section-title {
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 40px;
  color: var(--dark);
}
.rm-about-process-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}
.rm-about-step {
  flex: 1;
  min-width: 200px;
  max-width: 260px;
  text-align: center;
  padding: 28px 20px;
  border: 2px solid var(--border);
  border-radius: 10px;
}
.rm-about-step-num {
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--red);
  opacity: .2;
  font-family: var(--f-heading);
  line-height: 1;
  margin-bottom: 12px;
}
.rm-about-step h3 {
  font-size: 1rem;
  margin-bottom: 8px;
  color: var(--dark);
}
.rm-about-step p {
  font-size: 13px;
  color: var(--mid);
  margin: 0;
  line-height: 1.6;
}
.rm-about-step-arrow {
  font-size: 2rem;
  color: var(--red);
  opacity: .4;
  flex-shrink: 0;
}

/* CTA */
.rm-about-cta {
  padding: 70px 0;
  background: var(--dark);
  color: #fff;
}
.rm-about-cta h2 {
  font-size: 2rem;
  color: #fff;
  margin-bottom: 12px;
}
.rm-about-cta p {
  color: rgba(255,255,255,.7);
  font-size: 1rem;
  margin: 0;
}
.rm-btn-outline {
  background: transparent !important;
  border: 2px solid rgba(255,255,255,.5) !important;
  color: #fff !important;
}
.rm-btn-outline:hover {
  border-color: #fff !important;
  background: rgba(255,255,255,.1) !important;
}

/* Mobile */
@media (max-width: 768px) {
  .rm-about-stats-grid { grid-template-columns: repeat(2,1fr); }
  .rm-about-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .rm-about-values-grid { grid-template-columns: repeat(2,1fr); }
  .rm-about-process-steps { flex-direction: column; align-items: stretch; }
  .rm-about-step-arrow { transform: rotate(90deg); align-self: center; }
  .rm-about-step { max-width: 100%; }
}

/* ── Sticky ATC Bar ── */
#rm-sticky-atc {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: #fff;
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 16px rgba(0,0,0,.1);
  padding: 0;
  display: none;
  box-sizing: border-box;
  width: 100%;
}
.rm-sticky-atc-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  box-sizing: border-box;
  width: 100%;
}
.rm-sticky-atc-img {
  width: 42px;
  height: 42px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.rm-sticky-atc-info {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.rm-sticky-atc-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rm-sticky-atc-price {
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  margin-top: 1px;
}
.rm-sticky-atc-btn {
  flex-shrink: 0;
  width: auto !important;
  padding: 9px 14px !important;
  font-size: 11px !important;
  letter-spacing: 1px !important;
  white-space: nowrap;
  min-width: unset !important;
  margin-right: 0 !important;
}
@media (min-width: 900px) {
  #rm-sticky-atc { display: none !important; }
}

/* ── Recently Viewed ── */
#rm-recently-viewed {
  background: var(--white);
}
#rm-recently-viewed h2 {
  color: var(--dark);
}

/* ── Show More Button Pulse ── */
.rm-pulse-btn {
  background: var(--red) !important;
  color: #fff !important;
  border: none !important;
  padding: 14px 48px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  border-radius: 4px !important;
  cursor: pointer;
  text-transform: uppercase;
  animation: rm-pulse-scale 1.2s ease-in-out infinite;
}
.rm-pulse-btn:hover {
  background: var(--red-hover) !important;
  transform: scale(1.06) !important;
}
@keyframes rm-pulse-scale {
  0%   { transform: scale(1);    box-shadow: 0 0 0 0 rgba(224,43,32,.6); }
  60%  { transform: scale(1.05); box-shadow: 0 0 0 14px rgba(224,43,32,0); }
  100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(224,43,32,0); }
}

/* ================================================================
   ABOUT US v2 (RV305) — hero title, intro card, lifestyle, dark story
   ================================================================ */
.rm-about-hero-center { justify-content: center; text-align: center; }
.rm-about-hero-title {
  font-size: clamp(2rem, 5vw, 3.4rem);
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0;
}

/* Intro: white card + media */
.rm-about-intro { background: #ececec; padding: 70px 0; }
.rm-about-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 40px;
  align-items: stretch;
}
.rm-about-intro-card {
  background: #fff;
  padding: 44px 40px;
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.rm-about-intro-card .rm-about-eyebrow { color: var(--mid); opacity: 1; }
.rm-about-intro-card h2 {
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 18px;
}
.rm-about-intro-card p { font-size: 14px; line-height: 1.9; color: #555; margin-bottom: 16px; text-align: justify; }
.rm-about-intro-card a:not(.rm-btn):not(.rm-btn-gold) { color: var(--gold); text-decoration: underline; }
.rm-about-intro-card a:not(.rm-btn):not(.rm-btn-gold):hover { color: var(--gold-hover); }
.rm-btn-gold { background: var(--gold); border-color: var(--gold); color: #fff; letter-spacing: 2px; text-transform: uppercase; align-self: flex-start; }
.rm-btn-gold:hover { background: var(--gold-hover); border-color: var(--gold-hover); color: #fff; }
.rm-about-intro-media { min-height: 320px; display: flex; }
.rm-about-intro-media img,
.rm-about-intro-media video { width: 100%; height: 100%; display: block; border-radius: 4px; object-fit: cover; }
.rm-about-video-embed { position: relative; width: 100%; height: 100%; background: #000; border-radius: 4px; overflow: hidden; }
.rm-about-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Lifestyle big title */
.rm-about-lifestyle { padding: 80px 0; text-align: center; }
.rm-about-lifestyle h2 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  text-transform: uppercase;
  letter-spacing: 1px;
  max-width: 620px;
  margin: 0 auto;
  line-height: 1.4;
}

/* Our Story dark theme */
.rm-story-themed { padding: 70px 0; }
.rm-story-themed .rm-about-story-heading {
  text-align: center;
  font-size: clamp(1.5rem, 3vw, 2rem);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 40px;
}
.rm-story-themed .rm-about-story-text p { color: inherit; opacity: .92; }
.rm-story-themed .rm-about-story-img img { box-shadow: 0 6px 28px rgba(0,0,0,.4); }

@media (max-width: 768px) {
  .rm-about-intro { padding: 40px 0; }
  .rm-about-intro-grid { grid-template-columns: 1fr; gap: 24px; }
  .rm-about-intro-card { padding: 28px 20px; }
  .rm-about-intro-media { min-height: 220px; }
  .rm-about-lifestyle { padding: 48px 0; }
  .rm-story-themed .rm-about-story-heading { margin-bottom: 24px; }
}

/* ================================================================
   IN-HOME TRIALS PAGE (RV310)
   ================================================================ */

/* Dark variant of the Intro card+media block (Description section) */
.rm-about-intro--dark { padding: 70px 0; }
.rm-about-intro-grid--reverse { grid-template-columns: 1.1fr 1fr; }
.rm-about-intro-card--dark {
  background: rgba(255,255,255,.04);
  box-shadow: none;
  border: 1px solid rgba(255,255,255,.1);
}
.rm-about-intro-card--dark p { color: inherit; }
.rm-about-intro-card--dark .rm-ht-richtext a { color: var(--gold); text-decoration: underline; }
.rm-about-intro-card--dark .rm-ht-richtext a:hover { color: var(--gold-hover); }
.rm-ht-note { font-size: 12px; color: var(--mid); font-style: italic; margin-top: -6px; }

/* Contact section — reuses .rm-contact-grid / .rm-contact-info / .rm-contact-form-wrap
   (same classes and look as the Contact Us page); only the section wrapper + title are new */
.rm-ht-contact { padding: 70px 0 80px; background: var(--light); }
.rm-ht-contact-title {
  text-align: center;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 40px;
}
#rm-ht-form-msg:empty { display: none; }

@media (max-width: 768px) {
  .rm-about-intro-grid--reverse { grid-template-columns: 1fr; }
  .rm-about-intro--dark { padding: 40px 0; }
  .rm-ht-contact { padding: 40px 0 50px; }
  .rm-ht-contact-title { margin-bottom: 24px; }
}

/* ================================================================
   RUG WASH & REPAIR PAGE (RV316)
   ================================================================ */
#rm-rwr-form-msg:empty { display: none; }

/* Services — distinctive two-column icon list section */
.rm-rwr-services { padding: 70px 0; }
.rm-rwr-services-title {
  text-align: center;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  max-width: 780px;
  margin: 0 auto 44px;
  line-height: 1.4;
}
.rm-rwr-services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.rm-rwr-services-col {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 10px;
  padding: 32px;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
}
.rm-rwr-services-col h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 20px;
  color: var(--red);
}
.rm-rwr-services-icon { font-size: 1.4rem; }
.rm-rwr-services-col ul { list-style: none; margin: 0; padding: 0; }
.rm-rwr-services-col li {
  position: relative;
  padding: 10px 0 10px 30px;
  font-size: 14px;
  line-height: 1.6;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.rm-rwr-services-col li:last-child { border-bottom: none; }
.rm-rwr-services-col li::before {
  content: "\002713";
  position: absolute;
  left: 0;
  top: 10px;
  width: 20px;
  height: 20px;
  background: var(--gold);
  color: #fff;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Quote — eye-catching background image banner */
.rm-rwr-quote {
  position: relative;
  background: #1a1a1a center/cover no-repeat;
  padding: 90px 0;
}
.rm-rwr-quote-overlay {
  position: absolute;
  inset: 0;
  opacity: .82;
}
.rm-rwr-quote-card {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}
.rm-rwr-quote-card h2 {
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  margin-bottom: 20px;
}
.rm-rwr-quote-card .rm-ht-richtext p { font-size: 15px; line-height: 1.9; margin-bottom: 14px; }
.rm-rwr-quote-card .rm-ht-richtext a { color: var(--gold); text-decoration: underline; }
.rm-rwr-quote-card .rm-btn { margin-top: 20px; }

@media (max-width: 768px) {
  .rm-rwr-services { padding: 40px 0; }
  .rm-rwr-services-grid { grid-template-columns: 1fr; gap: 20px; }
  .rm-rwr-services-col { padding: 24px 20px; }
  .rm-rwr-quote { padding: 56px 0; }
}

/* Owl Carousel dots: the visible dot is a tiny inner <span>; pad the
   actual clickable <button class="owl-dot"> so the tap target meets
   accessibility touch-target size guidance without changing how it looks. */
.owl-dot { padding: 12px !important; margin: -12px !important; }

/* ================================================================
   SHOP BY DESIGN / SHOP BY CITY (RV333) — minimal underline tabs +
   image-card grid, styled after the reference (Ruggable-style) layout.
   ================================================================ */
.rm-shopcats { padding: 40px 0 50px; background: #fff; }
.rm-shopcats-tabs {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-bottom: 8px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.rm-shopcats-tab {
  background: none;
  border: none;
  font-family: var(--f-btn);
  font-size: 13px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--mid);
  cursor: pointer;
  padding: 4px 2px 14px;
  position: relative;
  transition: color .2s;
}
.rm-shopcats-tab:hover { color: var(--dark); }
.rm-shopcats-tab.active { color: var(--dark); font-weight: 700; }
.rm-shopcats-tab.active::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -15px;
  height: 2px;
  background: var(--gold);
}
.rm-shopcats-panel { display: none; }
.rm-shopcats-panel.active { display: block; }
.rm-shopcats-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 28px 22px;
  padding-top: 36px;
}
.rm-shopcats-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}
.rm-shopcats-card-img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
  background: var(--light);
  margin-bottom: 14px;
}
.rm-shopcats-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.rm-shopcats-card:hover .rm-shopcats-card-img img { transform: scale(1.05); }
.rm-shopcats-card-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--red);
  opacity: .3;
}
.rm-shopcats-card-label {
  font-family: var(--f-btn);
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--dark2);
  text-align: center;
  transition: color .15s;
}
.rm-shopcats-card:hover .rm-shopcats-card-label { color: var(--red); }

@media (max-width: 992px) {
  .rm-shopcats-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .rm-shopcats { padding: 28px 0 36px; }
  .rm-shopcats-tabs { gap: 20px; }
  .rm-shopcats-tab { font-size: 11px; letter-spacing: 1.5px; }
  .rm-shopcats-grid { grid-template-columns: repeat(2, 1fr); gap: 20px 14px; padding-top: 26px; }
  .rm-shopcats-card-label { font-size: 10.5px; }
}


/* Sticky Bottom Bar close (X) button — on mobile, move to the bar's
   top-right corner instead of vertically centered on the right edge,
   since that position sits under the Tidio chat bubble (which can't be
   repositioned) and becomes unreachable. Desktop position unchanged. */
@media (max-width: 767px) {
  #rm-bar-x {
    top: 4px !important;
    right: 6px !important;
    transform: none !important;
    font-size: 20px !important;
  }
}

/* ================================================================
   SEO CONTENT BLOCK (homepage) — RV362, redesigned for longer-form
   content (eyebrow + title + intro + several H3 sub-sections + CTA)
   ================================================================ */
#rm-seo-content {
  padding: 64px 0;
  background: var(--white);
}
.rm-seo-content-inner {
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
}
#rm-seo-content .rm-eyebrow {
  display: block;
  font-family: var(--f-btn);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}
#rm-seo-content h2 {
  font-size: clamp(1.6rem, 3vw, 2.15rem);
  margin-bottom: 18px;
  position: relative;
  display: inline-block;
  padding-bottom: 18px;
}
#rm-seo-content h2::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 50px; height: 3px;
  background: var(--red);
}
.rm-seo-intro {
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--dark2);
  max-width: 640px;
  margin: 0 auto;
}
.rm-seo-more {
  margin-top: 44px;
  text-align: left;
  position: relative;
  max-height: 280px;
  overflow: hidden;
  transition: max-height .45s ease;
}
.rm-seo-more::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 90px;
  background: linear-gradient(to bottom, rgba(255,255,255,0), var(--white));
  pointer-events: none;
  transition: opacity .3s;
}
.rm-seo-more.open { max-height: 3000px; }
.rm-seo-more.open::after { opacity: 0; }
#rm-seo-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 18px auto 0;
  background: none;
  border: none;
  font-family: var(--f-btn);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--red);
  cursor: pointer;
  padding: 6px 0;
}
#rm-seo-toggle:hover { color: var(--gold); }
#rm-seo-toggle svg { transition: transform .25s; }
#rm-seo-toggle.open svg { transform: rotate(180deg); }
#rm-seo-toggle .rm-seo-toggle-less { display: none; }
#rm-seo-toggle.open .rm-seo-toggle-more { display: none; }
#rm-seo-toggle.open .rm-seo-toggle-less { display: inline; }

/* Body: single readable column, each H3 sub-section auto-numbered and
   visually separated by a top divider — reads cleanly at any length,
   from 2 sub-sections up to 5+, without depending on a fixed column
   count matching the number of sections. */
.rm-seo-content-body {
  font-size: 15px;
  line-height: 1.85;
  color: var(--dark2);
  counter-reset: rm-seo-section;
}
.rm-seo-content-body h3 {
  counter-increment: rm-seo-section;
  font-size: 1.15rem;
  color: var(--dark);
  margin: 0 0 12px;
  padding-top: 34px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.rm-seo-content-body h3::before {
  content: counter(rm-seo-section, decimal-leading-zero);
  flex-shrink: 0;
  font-family: var(--f-btn);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--red);
  letter-spacing: 1px;
}
.rm-seo-content-body h3:first-child { padding-top: 0; border-top: none; }
.rm-seo-content-body p { margin: 0 0 1em; }
.rm-seo-content-body p:last-of-type { margin-bottom: 0; }
.rm-seo-content-body a {
  color: var(--red);
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid rgba(224,43,32,.35);
  transition: color .2s, border-color .2s;
}
.rm-seo-content-body a:hover { color: var(--gold); border-color: var(--gold); }

.rm-seo-cta {
  margin-top: 38px;
  padding: 32px 34px;
  background: var(--light);
  border-radius: 6px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.rm-seo-cta::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--red), var(--gold));
}
.rm-seo-cta h3 { margin: 0 0 10px; font-size: 1.25rem; color: var(--dark); }
.rm-seo-cta p { font-size: 14.5px; color: var(--mid); line-height: 1.75; margin: 0 auto 20px; max-width: 520px; }
.rm-seo-cta-btn {
  display: inline-block;
  font-family: var(--f-btn);
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 12px 32px;
  background: var(--red);
  color: #fff;
  border: 2px solid var(--red);
  text-decoration: none;
  transition: all .25s;
}
.rm-seo-cta-btn:hover { background: var(--gold); border-color: var(--gold); }

/* ================================================================
   SERVICES (2 cards, homepage) — RV356
   ================================================================ */
#rm-services {
  padding: 56px 0;
  background: var(--light);
}
.rm-services-title {
  text-align: center;
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  margin-bottom: 36px;
  position: relative;
  display: block;
  padding-bottom: 16px;
}
.rm-services-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 50px; height: 3px;
  background: var(--red);
}
.rm-services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  max-width: 820px;
  margin: 0 auto;
}
.rm-service-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  text-align: left;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
  transition: box-shadow .25s, transform .25s;
}
.rm-service-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,.09); transform: translateY(-4px); }
.rm-service-card-img {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
}
.rm-service-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rm-service-card-icon {
  width: 100%;
  aspect-ratio: 16/10;
  background: var(--light);
  display: flex; align-items: center; justify-content: center;
}
.rm-service-card-icon span {
  width: 58px; height: 58px;
  border-radius: 50%;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  color: var(--red);
  box-shadow: 0 3px 10px rgba(0,0,0,.08);
}
.rm-service-card-body { padding: 22px 24px 24px; }
.rm-service-card h3 {
  font-size: 1.1rem;
  margin-bottom: 8px;
  color: var(--dark);
}
.rm-service-card p {
  font-size: 13.5px;
  color: var(--mid);
  line-height: 1.65;
  margin: 0 0 16px;
}
.rm-service-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--f-btn);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--red);
  text-decoration: none;
}
.rm-service-card-btn::after { content: "\2192"; transition: transform .2s; }
.rm-service-card-btn:hover { color: var(--gold); }
.rm-service-card-btn:hover::after { transform: translateX(3px); }

@media (max-width: 640px) {
  #rm-seo-content, #rm-services { padding: 40px 0; }
  .rm-seo-content-body h3 { padding-top: 26px; margin-bottom: 10px; gap: 10px; }
  .rm-seo-cta { padding: 26px 22px; }
  .rm-services-grid { grid-template-columns: 1fr; max-width: 360px; gap: 18px; }
}

/* Suppress the Tidio chat widget while the product-image lightbox is
   open — Tidio renders with an extremely high z-index of its own that
   would otherwise sit on top of the lightbox's prev/next controls and
   make them unreachable. body.rm-lb-open is toggled by the lightbox's
   own open/close JS in woocommerce/single-product.php. Covers the
   launcher bubble and, if present, an already-open chat panel; the
   widget reappears normally the moment the lightbox closes. */
body.rm-lb-open #button[data-testid="widgetButton"],
body.rm-lb-open .grid-layout.widget-position-right.sidebar-position-right,
body.rm-lb-open [id^="tidio-chat"],
body.rm-lb-open iframe[title*="chat" i] {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* iOS Safari has a well-known, longstanding bug where
   background-attachment:fixed inside a scrolling/absolutely-positioned
   container renders the image incorrectly zoomed-in/blurry/glitched
   (it's not a real parallax there — iOS effectively re-scales the
   background against the viewport in a broken way). Disabling the
   fixed attachment on touch devices/small screens falls back to a
   normal scrolling background image — loses the parallax effect on
   mobile, but renders correctly, which matters far more than the
   effect itself on a small screen anyway. !important is required
   since the parallax div uses an inline style. */
@media (hover: none), (max-width: 900px) {
  .rm-parallax-bg { background-attachment: scroll !important; }
}

/* ==========================================================================
   MOBILE SPACING FIXES
   ========================================================================== */

/* The Afterpay widget renders directly above the stock badge with nothing
   between them, so on a narrow screen the two sit flush and read as one
   block. Desktop has enough width that it isn't noticeable; this only
   applies where it actually matters. */
@media (max-width: 767px) {
  .rm-stock-badge {
    margin-top: 14px;
  }
}

/* Give the footer's last row room underneath. On phones with a gesture
   bar the very bottom of the viewport sits under the system navigation,
   so links pinned there are awkward to tap and easy to mis-hit.
   env(safe-area-inset-bottom) reserves exactly the height that device
   claims, and falls back to 0 on hardware that has no such area, so
   nothing gains an unexplained gap. The 40px is the baseline breathing
   room; the inset is added on top only where the device needs it. */
@media (max-width: 900px) {
  .rm-footer-bottom {
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px));
  }
}

/* iOS text inflation.
   Safari on iOS quietly enlarges text inside blocks it decides are main
   content. Chrome on Android doesn't, which is why the sticky bar came
   out noticeably taller on iPhone from identical CSS — the bigger text
   wrapped onto more lines. Pinning the adjustment to 100% makes both
   render the size actually specified. */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Keep the sticky bar compact on phones — it's a banner, not a section,
   and every extra line it wraps to is content pushed off screen. */
@media (max-width: 767px) {
  #rm-sticky-bar {
    padding: 8px 40px 8px 14px !important;  /* right side clears the × button */
    gap: 7px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  #rm-bar-code {
    font-size: 14px !important;
    padding: 2px 10px !important;
    letter-spacing: 1px !important;
  }
  #rm-bar-copy-btn {
    padding: 3px 12px !important;
    font-size: 11px !important;
  }
}
