/* ==========================================================================
   Red Stitch Boutique - main storefront stylesheet

   Loaded by layouts/storefront-home.blade.php, so it serves storefront/home,
   storefront/product/show and every other page that extends that layout.
   Page stylesheets (redstitch-product.css, ...) load after this file and
   override it, so the specificity of these selectors is part of their contract.

   Rule order follows the original load order: home, bridge, forms, chatbot,
   custom. Media queries stay next to the rules they adjust, because moving them
   can change which equal-specificity rule wins. Generic selectors are scoped
   with :where(body.rs-home), which adds no specificity.

   Contents
     1. Design tokens
     2. Reset and base
     3. Home and shared components
     4. Functional layer: counts, search, alerts, toasts, virtual try-on
     5. Shared form states
     6. Chatbot
     7. Layout utilities, home price cards, product page helpers
     8. Listing pages (shop, search, category)
     9. Product page
     10. Ratings and reviews (product page, reviews page)
     11. Cart, checkout and order confirmation
     12. Profile page
     13. Orders page
     14. Wishlist page
     15. About page (also used by the contact page)
     16. Contact page
     17. Product cards: Virtual Try-On button at the bottom
     18. Testimonials carousel: 3 cards desktop, 2 tablet, 1 mobile
     19. Home showcase cards (Freshly Arrived / Best Sellers)
     20. Order details page
   ========================================================================== */

/* ==========================================================================
   1. Design tokens
   ========================================================================== */
:root {
  --crimson: #A51C30;
  --rs-star: #008146;
  --crimson-d: #8a1729;
  --paper: #FDFBF7;
  --ink: #1A1A1A;
  --gold: #E6B88A;
  --grey: #4A4A4A;
  --maxw: 1500px;
  --font: 'Manrope',ui-sans-serif,system-ui,sans-serif;
}

body.rs-home {
  --fs-cream: #fffdfc;
  --fs-border: rgba(0,0,0,.08);
  --fs-accent-soft: #fdeff2;
  --fs-muted: #4A4A4A;
  --fs-ink: #1A1A1A;
  --fs-soft: #fff5f6;
  --fs-accent: #A51C30;
  --fs-radius: 12px;
  --fs-radius-sm: 8px;
  --fs-serif: Manrope, sans-serif;
}


/* ==========================================================================
   2. Reset and base
   ========================================================================== */
:where(body.rs-home) *,
:where(body.rs-home) *::before,
:where(body.rs-home) *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

:where(body.rs-home) input[type="checkbox"] {
  width: auto !important;
}

body.rs-home {
  box-sizing: border-box;
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.rs-home *,
body.rs-home *::before,
body.rs-home *::after {
  box-sizing: border-box;
}

:where(body.rs-home) :where(.rs-header,.rs-hero,.rs-services,.rs-about,.rs-collections,.rs-products,.rs-testi,.rs-price,.rs-footer) ul {
  list-style: none;
}

:where(body.rs-home) :where(.rs-header,.rs-hero,.rs-services,.rs-about,.rs-collections,.rs-products,.rs-testi,.rs-price,.rs-footer,.rs-float) a {
  color: inherit;
  text-decoration: none;
}

:where(body.rs-home) :where(.rs-header,.rs-hero,.rs-services,.rs-about,.rs-collections,.rs-products,.rs-testi,.rs-price,.rs-footer) img {
  display: block;
  max-width: 100%;
}


/* ==========================================================================
   3. Home and shared components
   ========================================================================== */
.rs-container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 16px;
}

@media (min-width: 768px) {
  .rs-container {
    padding: 0 32px;
  }
}

.rs-eyebrow {
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--crimson);
  font-weight: 600;
  margin-bottom: 12px;
}

.rs-h2 {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--ink);
}

@media (min-width: 768px) {
  .rs-h2 {
    font-size: 48px;
  }
}

.rs-para {
  font-size: 15px;
  color: var(--grey);
  line-height: 1.8;
  margin-bottom: 20px;
  max-width: 440px;
}

@media (min-width: 768px) {
  .rs-para {
    font-size: 16px;
  }
}

.rs-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 500;
  padding: 14px 20px;
  border-radius: 999px;
  transition: .2s;
  cursor: pointer;
  border: none;
}

button.rs-btn {
  line-height: 19px;
}

.rs-btn-red {
  background: var(--crimson);
  color: #fff;
}

.rs-btn-red:hover {
  background: var(--crimson-d);
}

.rs-btn-ghost {
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.4);
  color: #fff;
}

.rs-btn-ghost:hover {
  background: #fff;
  color: var(--ink);
}

.rs-arrow {
  font-size: 16px;
  line-height: 22px;
}

.rs-section-head {
  text-align: center;
  padding-top: 64px;
  padding-bottom: 8px;
}

@media (min-width: 768px) {
  .rs-section-head {
    padding-top: 80px;
  }
}

.rs-section-head .rs-h2 {
  margin-top: 0;
}

/* --- HEADER --- */
.rs-header {
  position: sticky;
  top: 0;
  z-index: 50;
}

.rs-promo {
  background: var(--ink);
  color: #fff;
  text-align: center;
  font-size: 12px;
  letter-spacing: .02em;
  padding: 8px 16px;
}

@media (min-width: 768px) {
  .rs-promo {
    font-size: 13px;
  }
}

.rs-promo-accent {
  color: var(--gold);
  font-weight: 500;
}

.rs-promo-link {
  text-decoration: underline;
  margin-left: 6px;
  font-weight: 600;
}

.rs-bar {
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.05);
}

.rs-bar-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}

@media (min-width: 768px) {
  .rs-bar-inner {
    padding: 0 32px;
    padding-top: 16px;
    padding-bottom: 16px;
  }
}

.rs-spacer {
  flex: 1;
}

.rs-logo {
  height: 48px;
  width: auto;
}

@media (min-width: 768px) {
  .rs-logo {
    height: 56px;
  }
}

.rs-logo-sm {
  height: 32px;
}

.rs-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
  justify-content: flex-end;
}

.rs-icon-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: color .2s;
}

.rs-icon-btn:hover {
  color: var(--crimson);
}

.rs-ic {
  width: 20px;
  height: 20px;
}

.rs-menu-btn .rs-ic {
  width: 24px;
  height: 24px;
}

.rs-hide-sm {
  display: none;
}

@media (min-width: 640px) {
  .rs-hide-sm {
    display: flex;
  }
}

.rs-menu-btn {
  display: flex;
}

@media (min-width: 1024px) {
  .rs-menu-btn {
    display: none;
  }
}

/* --- nav --- */
.rs-nav {
  display: none;
  position: relative;
  border-top: 1px solid rgba(0,0,0,.05);
}

@media (min-width: 1024px) {
  .rs-nav {
    display: block;
  }
}

.rs-nav>ul {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 12px 32px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  list-style: none;
}

@media (min-width: 1024px) {
  .rs-nav>ul {
    gap: 2px 20px;
  }
}

.rs-nav>ul>li {
  position: relative;
  flex-shrink: 0;
}

.rs-nav>ul>li>a {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink);
  padding: 8px 0;
  transition: color .2s;
}

@media (min-width: 1367px) {
  .rs-nav>ul>li>a {
    font-size: 15px;
  }
}

.rs-nav>ul>li>a:hover {
  color: var(--crimson);
}

.rs-chev {
  width: 12px;
  height: 12px;
  margin-top: 2px;
  flex-shrink: 0;
}

.rs-nav>ul>li.rs-has-mega {
  position: static;
}

.rs-mega {
  position: absolute;
  left: 50%;
  top: 100%;
  z-index: 5;
  margin-top: -12px;
  padding-top: 24px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(8px);
  transition: opacity .3s ease,transform .3s ease,visibility .3s ease;
}

.rs-nav>ul>li.rs-has-mega:hover>.rs-mega,
.rs-nav>ul>li.rs-has-mega:focus-within>.rs-mega {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.rs-mega-inner {
  width: max-content;
  min-width: 300px;
  max-width: min(760px, calc(100vw - 32px));
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 3px solid var(--crimson);
  box-shadow: 0 30px 70px -34px rgba(26,26,26,.45);
  border-radius: 0 0 10px 10px;
  line-height: 1.5;
}

.rs-mega-tag {
  margin: 0;
  padding: 11px 24px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--crimson);
  font-weight: 600;
  background: var(--paper);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.rs-mega-cols {
  display: flex;
}

.rs-mega-cols>div {
  flex: 1 1 auto;
  min-width: 150px;
  max-width: 280px;
  padding: 18px 24px 20px;
}

.rs-mega-cols>div+div {
  border-left: 1px solid rgba(0,0,0,.06);
}

.rs-mega-h {
  margin: 0 0 12px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--ink);
  font-weight: 700;
}

.rs-mega-h::after {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  margin-top: 7px;
  background: var(--gold);
}

.rs-mega-links {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  /* About eight links, and less on short screens, before the list scrolls. */
  max-height: max(110px, min(224px, calc(100vh - 340px)));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.rs-mega-links li {
  margin: 0;
}

.rs-mega-links a {
  display: block;
  padding: 4px 8px 4px 0;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 500;
  color: var(--grey);
  transition: color .2s, transform .2s;
}

.rs-mega-links a:hover,
.rs-mega-links a:focus-visible {
  color: var(--crimson);
  transform: translateX(3px);
}

/* Theme scrollbar for the menus: appears only when the content overflows. */
.rs-mega-links::-webkit-scrollbar,
.rs-drawer-sub::-webkit-scrollbar,
.rs-drawer-body::-webkit-scrollbar,
.vto-dialog::-webkit-scrollbar,
.rs-select-list::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

.rs-mega-links::-webkit-scrollbar-track,
.rs-drawer-sub::-webkit-scrollbar-track,
.rs-drawer-body::-webkit-scrollbar-track,
.vto-dialog::-webkit-scrollbar-track,
.rs-select-list::-webkit-scrollbar-track {
  background: var(--paper);
  border-radius: 999px;
}

.rs-mega-links::-webkit-scrollbar-thumb,
.rs-drawer-sub::-webkit-scrollbar-thumb,
.rs-drawer-body::-webkit-scrollbar-thumb,
.vto-dialog::-webkit-scrollbar-thumb,
.rs-select-list::-webkit-scrollbar-thumb {
  background: var(--crimson);
  border-radius: 999px;
}

.rs-mega-links::-webkit-scrollbar-thumb:hover,
.rs-drawer-sub::-webkit-scrollbar-thumb:hover,
.rs-drawer-body::-webkit-scrollbar-thumb:hover,
.vto-dialog::-webkit-scrollbar-thumb:hover {
  background: var(--crimson-d);
}

@supports not selector(::-webkit-scrollbar) {
  .rs-mega-links,
  .rs-drawer-sub,
  .rs-drawer-body,
  .vto-dialog,
  .rs-select-list {
    scrollbar-width: thin;
    scrollbar-color: var(--crimson) var(--paper);
  }
}

/* --- drawer --- */
.rs-drawer {
  position: fixed;
  inset: 0;
  z-index: 60;
  visibility: hidden;
}

.rs-drawer.open {
  visibility: visible;
}

.rs-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.4);
  opacity: 0;
  transition: .3s;
}

.rs-drawer.open .rs-drawer-overlay {
  opacity: 1;
}

.rs-drawer-panel {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 86%;
  max-width: 380px;
  background: var(--paper);
  box-shadow: -20px 0 60px rgba(0,0,0,.2);
  transform: translateX(100%);
  transition: transform .3s;
  display: flex;
  flex-direction: column;
}

.rs-drawer.open .rs-drawer-panel {
  transform: translateX(0);
}

.rs-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid rgba(0,0,0,.1);
}

.rs-drawer-body {
  padding: 16px;
  overflow-y: auto;
  flex: 1;
}

.rs-drawer-group {
  border-bottom: 1px solid rgba(0,0,0,.05);
}

.rs-drawer-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  font-size: 15px;
  font-weight: 500;
  font-family: inherit;
  color: var(--ink);
  background: none;
  border: none;
  cursor: pointer;
}

.rs-drawer-toggle .rs-chev {
  width: 16px;
  height: 16px;
  margin-top: 0;
  transition: transform .3s;
}

.rs-drawer-toggle.open .rs-chev {
  transform: rotate(180deg);
}

.rs-drawer-sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease;
}

.rs-drawer-sub.open {
  max-height: min(55vh, 420px);
  overflow-y: auto;
}

.rs-drawer-sub>div {
  margin-bottom: 14px;
}

.rs-drawer-col-h {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--crimson);
  font-weight: 600;
  margin-bottom: 6px;
}

.rs-drawer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rs-drawer-links a {
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--grey);
  background: #fff;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 999px;
}

.rs-drawer-links a:hover {
  color: var(--crimson);
  border-color: var(--crimson);
}

.rs-drawer-link {
  display: block;
  padding: 12px 0;
  font-size: 15px;
  font-weight: 600;
}

/* --- HERO --- */
.rs-hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--ink);
}

.rs-hero-stage {
  position: relative;
  height: 78vh;
  min-height: 520px;
  max-height: 940px;
}

.rs-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.rs-slide.active {
  opacity: 1;
}

.rs-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.rs-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,rgba(0,0,0,.55),rgba(0,0,0,.2),transparent);
}

.rs-hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  padding-bottom: 64px;
}

.rs-hero-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 16px;
  width: 100%;
}

@media (min-width: 768px) {
  .rs-hero-inner {
    padding: 0 32px;
  }
}

.rs-hero-text {
  max-width: 560px;
  color: #fff;
}

.rs-hero-eyebrow {
  font-size: 12px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
  font-weight: 600;
}

@media (min-width: 768px) {
  .rs-hero-eyebrow {
    font-size: 13px;
  }
}

.rs-hero-title {
  font-size: 36px;
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 20px;
}

@media (min-width: 768px) {
  .rs-hero-title {
    font-size: 60px;
  }
}

@media (min-width: 1024px) {
  .rs-hero-title {
    font-size: 72px;
  }
}

.rs-hero-sub {
  font-size: 14px;
  color: rgba(255,255,255,.85);
  max-width: 420px;
  margin-bottom: 32px;
  line-height: 1.6;
}

@media (min-width: 768px) {
  .rs-hero-sub {
    font-size: 18px;
  }
}

.rs-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.rs-hero-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
}

.rs-dot {
  height: 6px;
  width: 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.5);
  border: none;
  cursor: pointer;
  transition: .3s;
}

.rs-dot.active {
  width: 32px;
  background: #fff;
}

/* --- SERVICES --- */
.rs-services {
  background: #fff;
  border-top: 1px solid #E8E8E8;
  border-bottom: 1px solid #E8E8E8;
}

.rs-services-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 24px;
  padding: 32px 16px;
}

@media (min-width: 1024px) {
  .rs-services-grid {
    grid-template-columns: repeat(4,1fr);
    gap: 32px;
    padding: 40px 32px;
  }
}

.rs-service {
  display: flex;
  align-items: center;
  gap: 16px;
}

.rs-service-ic {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: rgba(165,28,48,.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--crimson);
}

.rs-service-ic svg {
  width: 20px;
  height: 20px;
}

.rs-service h3 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}

.rs-service p {
  font-size: 13px;
  color: var(--grey);
  margin-top: 10px;
  line-height: 1.3;
}

/* --- ABOUT --- */
.rs-about {
  background: var(--paper);
}

.rs-about-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
  padding: 64px 16px;
}

@media (min-width: 768px) {
  .rs-about-grid {
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    padding: 112px 32px;
  }
}

.rs-about-text {
  order: 2;
}

@media (min-width: 768px) {
  .rs-about-text {
    order: 1;
  }
}

.rs-about-img {
  order: 1;
}

@media (min-width: 768px) {
  .rs-about-img {
    order: 2;
  }
}

.rs-about-frame {
  position: relative;
  aspect-ratio: 4/5;
  max-width: 448px;
  margin: 0 auto;
}

.rs-organic {
  border-radius: 46% 54% 50% 50% / 58% 48% 52% 42%;
}

.rs-organic-bg {
  position: absolute;
  inset: 0;
  background: rgba(165,28,48,.1);
  transform: translate(16px,16px);
}

.rs-organic-img {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  box-shadow: 0 30px 70px -34px rgba(26,26,26,.45);
}

.rs-organic-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rs-badge {
  position: absolute;
  bottom: -20px;
  left: -8px;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

@media (min-width: 768px) {
  .rs-badge {
    left: -24px;
  }
}

.rs-badge-num {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: var(--crimson);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 18px;
}

.rs-badge-t1 {
  font-size: 13px;
  font-weight: 600;
}

.rs-badge-t2 {
  font-size: 12px;
  color: var(--grey);
}

/* --- COLLECTIONS --- */
.rs-collections {
  background: #fff;
  scroll-margin-top: 88px; /* keeps the title clear of the sticky header on #collections links */
}

@media (min-width: 1024px) {
  .rs-collections {
    scroll-margin-top: 112px;
  }
}

.rs-cat-wrap {
  padding: 0 16px 64px;
}

@media (min-width: 768px) {
  .rs-cat-wrap {
    padding: 0 24px 96px;
  }
}

.rs-cat-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 12px;
  grid-auto-rows: 170px;
}

@media (min-width: 768px) {
  .rs-cat-grid {
    grid-template-columns: repeat(4,1fr);
    gap: 16px;
    grid-auto-rows: 300px;
  }
}

.rs-tile {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  grid-column: span 2;
  grid-row: span 2;
}

@media (min-width: 768px) {
  .rs-tile {
    grid-column: span 1;
    grid-row: span 1;
  }
}

.rs-tile.tall {
  grid-row: span 2;
}

.rs-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s;
}

.rs-tile:hover img {
  transform: scale(1.05);
}

.rs-tile-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 50%;
  background: linear-gradient(to top,rgba(0,0,0,.75),rgba(0,0,0,.35),transparent);
  pointer-events: none;
}

.rs-tile-name {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 16px 20px;
  z-index: 2;
}

@media (min-width: 768px) {
  .rs-tile-name {
    padding: 20px;
  }
}

.rs-tile-name h3 {
  color: #fff;
  font-weight: 800;
  font-size: 18px;
  line-height: 1.2;
}

@media (min-width: 768px) {
  .rs-tile-name h3 {
    font-size: 24px;
  }
}

.rs-tile-explore {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--gold);
  font-size: 14px;
  font-weight: 500;
  margin-top: 4px;
  opacity: 0;
  transition: opacity .3s;
}

.rs-tile:hover .rs-tile-explore {
  opacity: 1;
}

/* --- SHOWCASE --- */
.rs-products {
  background: var(--paper);
}

.rs-products button {
  font-family: inherit;
  cursor: pointer;
}

.rs-products-inner {
  padding: 64px 0;
}

@media (min-width: 768px) {
  .rs-products-inner {
    padding: 96px 0;
  }
}

.rs-showcase-head {
  text-align: center;
  margin-bottom: 40px;
}

@media (min-width: 768px) {
  .rs-showcase-head {
    margin-bottom: 56px;
  }
}

.rs-products .rs-eyebrow {
  font-weight: 500;
}

.rs-products .rs-h2 {
  font-weight: 700;
  line-height: 1.15;
}

.rs-products-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}

@media (min-width: 768px) {
  .rs-products-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .rs-products-grid {
    gap: 40px;
  }
}

.rs-products-left-img {
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 30px 70px -34px rgba(26,26,26,.45);
}

.rs-products-left img {
  width: 100%;
  height: 100%;
  max-height: 760px;
  object-fit: cover;
}

@media (min-width: 768px) {
  .rs-products-left {
    position: sticky;
    top: 160px;
    align-self: start;
    z-index: 1;
  }
}

.rs-products-right {
  min-width: 0;
}

.rs-tabs-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .rs-tabs-wrap {
    margin-bottom: 32px;
  }
}

.rs-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 999px;
  padding: 4px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}

.rs-tab {
  padding: 10px 13px;
  border-radius: 999px;
  font-size: 15px;
  line-height: 18px;
  font-weight: 600;
  background: none;
  border: none;
  color: var(--ink);
  transition: all .2s;
}

@media (min-width: 768px) {
  .rs-tab {
    padding: 10px 21px;
  }
}

.rs-tab:hover {
  color: var(--crimson);
}

.rs-tab.active {
  background: var(--crimson);
  color: #fff;
}

.rs-product-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 16px;
}

@media (min-width: 768px) {
  .rs-product-grid {
    gap: 20px;
  }
}

.rs-pcard .rs-pcard-img {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: var(--paper);
}

.rs-pcard img {
  aspect-ratio: 3/4;
  width: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}

.rs-pcard:hover img {
  transform: scale(1.05);
}

.rs-tryon {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
}

.rs-wish {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  border: none;
  padding: 0;
  transition: all .2s;
}

.rs-wish:hover {
  background: #fff;
}

.rs-wish.active {
  color: var(--crimson);
}

.rs-wish.active svg {
  fill: var(--crimson);
}

.rs-showcase-ic {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

.rs-showcase-ic-4 {
  width: 16px;
  height: 16px;
}

.rs-pcard-info {
  padding-top: 12px;
  text-align: center;
}

.rs-pcard-cat {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--crimson);
  font-weight: 500;
}

.rs-pcard-name {
  font-size: 14px;
  color: var(--ink);
  margin-top: 4px;
  line-height: 1.3;
  text-align: center;
  min-height: 42px;
}

.rs-products .rs-pcard-info .rs-pcard-name {
  min-height: 0;
}

@media (min-width: 768px) {
  .rs-pcard-name {
    font-size: 15px;
  }
}

.rs-stars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  margin-top: 6px;
}

.rs-stars svg {
  width: 12px;
  height: 12px;
  color: rgba(0,0,0,.1);
  fill: rgba(0,0,0,.1);
}

.rs-stars svg.on {
  color: var(--crimson);
  fill: currentColor;
}

.rs-price {
  text-align: center;
  margin-top: 8px;
}

.rs-pcard .rs-price {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 8px;
}

.rs-pcard .rs-price .mrp {
  color: #9a9a9a;
  text-decoration: line-through;
  font-size: 13px;
}

.rs-pcard .rs-price .now {
  color: var(--crimson);
  font-weight: 600;
  font-size: 15px;
  margin-left: 0;
}

.rs-products-cta {
  text-align: center;
  margin-top: 48px;
}

.rs-btn-outline {
  border: 1px solid rgba(26,26,26,.25);
  color: var(--ink);
  background: transparent;
}

.rs-btn-outline:hover {
  background: var(--ink);
  color: #fff;
}

/* --- TESTIMONIALS --- */
.rs-testi {
  background: #fff;
}

.rs-testi-track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  margin: 0 -16px;
  padding-left: 16px;
  padding-right: 16px;
}

.rs-testi-track::-webkit-scrollbar {
  display: none;
}

.rs-testi {
  scrollbar-width: none;
}

.rs-tcard {
  scroll-snap-align: start;
  flex-shrink: 0;
  width: 100%;
  background: var(--paper);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 16px;
  padding: 28px;
  display: flex;
  flex-direction: column;
}

.rs-tcard .quote {
  width: 32px;
  height: 32px;
  display: block;
  color: rgba(165,28,48,.3);
  margin-bottom: 16px;
}

.rs-tcard .stars {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-bottom: 16px;
}

.rs-tcard .stars svg {
  width: 16px;
  height: 16px;
  display: block;
}

.rs-tcard .star-fill {
  color: var(--rs-star);
  fill: currentColor;
}

.rs-tcard .star-empty {
  color: rgba(0,0,0,.1);
  fill: rgba(0,0,0,.1);
}

.rs-tcard p.body {
  font-size: 15px;
  color: var(--grey);
  line-height: 1.8;
  flex: 1;
  font-style: italic;
}

@media (min-width: 768px) {
  .rs-tcard p.body {
    font-size: 16px;
  }
}

.rs-tcard .who {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(0,0,0,.05);
}

.rs-tcard .who img,
.rs-tcard .who .rs-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.rs-tcard .who .rs-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(165,28,48,.08);
  color: var(--crimson);
  font-size: 16px;
  font-weight: 600;
}

.rs-tcard .who .n {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}

.rs-tcard .who .c {
  font-size: 12px;
  color: var(--grey);
}

.rs-testi-controls {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
}

.rs-round-btn {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.15);
  background: #fff;
  color: var(--ink);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .2s;
}

.rs-round-btn:hover {
  background: var(--crimson);
  color: #fff;
  border-color: var(--crimson);
}

/* --- PRICE --- */
.rs-price {
  background: var(--paper);
}

.rs-price-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
  padding: 64px 16px;
}

@media (min-width: 768px) {
  .rs-price-grid {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    padding: 96px 32px;
  }
}

.rs-price-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (min-width: 768px) {
  .rs-price-cards {
    gap: 20px;
  }
}

/* --- FOOTER --- */
.rs-footer {
  background: var(--ink);
  color: #fff;
}

.rs-footer-inner {
  padding: 64px 16px 32px;
}

@media (min-width: 768px) {
  .rs-footer-inner {
    padding: 80px 32px 32px;
  }
}

.rs-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}

@media (min-width: 768px) {
  .rs-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .rs-footer-grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 48px;
  }
}

.rs-footer-logo {
  height: 44px;
  width: auto;
  filter: brightness(0) invert(1);
  margin-bottom: 20px;
}

.rs-footer-desc {
  font-size: 16px;
  color: #fff;
  line-height: 1.8;
  max-width: 420px;
  margin-bottom: 24px;
}

.rs-social {
  display: flex;
  gap: 12px;
}

.rs-social a {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: var(--crimson);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .2s;
}

.rs-social a:hover {
  background: var(--crimson-d);
}

.rs-social svg {
  width: 16px;
  height: 16px;
  color: #fff;
  fill: currentColor;
}

.rs-footer-col h4 {
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 600;
  margin-bottom: 20px;
  color: #fff;
}

.rs-footer-col ul li {
  margin-bottom: 12px;
}

.rs-footer-col ul a {
  font-size: 16px;
  color: #fff;
  transition: .2s;
}

.rs-footer-col ul a:hover {
  color: var(--gold);
}

.rs-contact-list li {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
  font-size: 16px;
  color: #fff;
  line-height: 1.3;
}

.rs-contact-list a {
  color: #fff;
}

.rs-contact-list a:hover {
  color: var(--gold);
}

.rs-ci {
  color: var(--gold);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 1.3em;
}

.rs-ci svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rs-footer-bottom {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media (min-width: 640px) {
  .rs-footer-bottom {
    flex-direction: row;
  }
}

.rs-footer-bottom p {
  font-size: 12px;
  color: rgba(255,255,255,.5);
}

.rs-footer-legal {
  display: flex;
  gap: 20px;
  font-size: 12px;
  color: rgba(255,255,255,.5);
}

.rs-footer-legal a:hover {
  color: #fff;
}

/* --- FLOATING BUTTONS --- */
.rs-float {
  position: fixed;
  z-index: 50;
  bottom: 16px;
  right: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

@media (min-width: 768px) {
  .rs-float {
    bottom: 24px;
    right: 24px;
  }
}

.rs-float-btn {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
  transition: transform .2s;
  cursor: pointer;
  border: none;
}

@media (min-width: 768px) {
  .rs-float-btn {
    width: 56px;
    height: 56px;
  }
}

.rs-float-btn:hover {
  transform: scale(1.05);
}

.rs-wa {
  background: #25D366;
  color: #fff;
}

.rs-wa svg {
  width: 26px;
  height: 26px;
}

@media (min-width: 768px) {
  .rs-wa svg {
    width: 30px;
    height: 30px;
  }
}


/* ==========================================================================
   4. Functional layer: counts, search, alerts, toasts, virtual try-on
   ========================================================================== */
/* --- Header counts and search --- */
.rs-icon-btn {
  position: relative;
}

.rs-count {
  position: absolute;
  top: -7px;
  right: -9px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--crimson);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.rs-count[hidden] {
  display: none !important;
}

.rs-search-panel {
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.06);
  padding: 4px 16px 16px;
}

.rs-search-panel[hidden] {
  display: none !important;
}

.rs-search-form {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  gap: 8px;
}

.rs-search-form input {
  flex: 1;
  min-width: 0;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  padding: 12px 18px;
  font: inherit;
  color: var(--ink);
  background: var(--paper);
  outline: none;
}

.rs-search-form input:focus {
  border-color: var(--crimson);
}

.rs-search-form .rs-btn {
  flex-shrink: 0;
}

/* --- Hero copy and active navigation --- */
.rs-hero-copy {
  display: none;
}

.rs-hero-copy.active {
  display: block;
}

.rs-nav > ul > li > a.active,
.rs-nav > ul > li > a[aria-current="page"] {
  color: var(--crimson);
}

.rs-drawer-link[aria-current="page"] {
  color: var(--crimson);
}

/* --- Alerts --- */
.rs-alerts {
  padding-top: 16px;
  padding-bottom: 4px;
}

.rs-alerts:not(:has(.alert)) {
  display: none;
}

:where(body.rs-home) .alert {
  border-radius: 12px;
  padding: 14px 16px;
  margin: 0 0 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  font-size: 15px;
}

:where(body.rs-home) .alert ul {
  margin: 0;
  padding-left: 1.1rem;
}

:where(body.rs-home) .alert-success {
  border-color: #c9e6d2;
  background: #f3fbf5;
  color: #245c38;
}

:where(body.rs-home) .alert-error {
  border-color: #f0c9c9;
  background: #fff5f5;
  color: #8b2e2e;
}

@media (max-width: 767px) {
  .rs-cat-grid .rs-tile {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
  }
  .rs-search-form {
    flex-direction: column;
  }
  .rs-search-form .rs-btn {
    justify-content: center;
  }
}

/* --- Product grid and try-on button --- */
.rs-product-grid[hidden] {
  display: none !important;
}

.rs-pcard-img > a {
  display: block;
  line-height: 0;
}

body.rs-home button.btn-store.rs-tryon {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  max-width: none;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(165,28,48,.3);
  color: var(--crimson);
  font-size: 13px;
  font-weight: 600;
  line-height: 13.2px;
  padding: 6px 4px;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
  cursor: pointer;
  text-align: left;
  transition: all .2s;
}

body.rs-home button.btn-store.rs-tryon::before {
  content: "";
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M21 17v2a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3Cline x1='7' x2='17' y1='12' y2='12'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M21 17v2a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3Cline x1='7' x2='17' y1='12' y2='12'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.rs-home button.btn-store.rs-tryon:hover {
  background: var(--crimson);
  color: #fff;
  border-color: var(--crimson);
}

/* --- Empty state --- */
.rs-empty {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--grey);
  padding: 28px 8px;
}

/* --- Floating actions --- */
body.rs-home .rs-float {
  bottom: 16px;
  right: 16px;
  z-index: 90;
}

@media (min-width: 768px) {
  body.rs-home .rs-float {
    bottom: 24px;
    right: 24px;
  }
}

/* --- Toasts --- */
:where(body.rs-home) .toast-stack {
  position: fixed;
  left: 1rem;
  bottom: 5.5rem;
  z-index: 80;
  display: grid;
  gap: 0.6rem;
  width: min(360px, calc(100% - 2rem));
}

:where(body.rs-home) .toast {
  background: var(--ink);
  color: #fff;
  padding: 0.9rem 1.05rem;
  border-radius: 12px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
  box-shadow: 0 14px 34px rgba(26,26,26,.18);
  font-size: 0.92rem;
}

:where(body.rs-home) .toast.show {
  opacity: 1;
  transform: translateY(0);
}

:where(body.rs-home) .toast-error {
  background: #8b2e2e;
}

/* --- Store buttons --- */
body.rs-home .btn-store {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--crimson);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 12px 15px;
  font-weight: 600;
  font-size: calc(13.3333px + 2px);
  line-height: 15px;
  cursor: pointer;
}

body.rs-home .btn-store.secondary {
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(0,0,0,.15);
}

body.rs-home .btn-store:disabled {
  opacity: .55;
  cursor: not-allowed;
}

body.vto-open,
body.nav-open {
  overflow: hidden;
}

/* --- Virtual try-on --- */
.vto-modal {
  position: fixed;
  inset: 0;
  /* Above the cookie banner, which would otherwise cover the buttons. */
  z-index: 1315;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.vto-modal[hidden] {
  display: none !important;
}

.vto-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.vto-dialog {
  position: relative;
  width: min(480px, calc(100vw - 2rem));
  max-height: min(94dvh, 780px);
  overflow: auto;
  overscroll-behavior: contain;
  background: #fff;
  border-top: 4px solid var(--crimson);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
}

.vto-dialog:focus {
  outline: none;
}

.vto-dialog.is-moved {
  position: fixed;
  z-index: 1;
}

.vto-dialog.is-dragging {
  user-select: none;
  cursor: grabbing;
}

.vto-header {
  position: relative;
  padding: 16px 44px 0;
}

.vto-header .rs-visitor-header {
  margin: 0;
}

.vto-header .rs-visitor-logo {
  height: 52px;
  margin-bottom: 6px;
  pointer-events: none;
}

.vto-header .rs-visitor-title {
  font-size: 20px;
}

.vto-header .rs-visitor-title::after {
  margin-top: 8px;
}

.vto-header[data-vto-drag] {
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.vto-icon-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--grey);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: color .2s;
}

.vto-icon-btn:hover {
  color: var(--crimson);
}

.vto-icon-btn svg {
  width: 20px;
  height: 20px;
}

.vto-body {
  padding: 14px 28px 24px;
  display: grid;
  gap: 12px;
}

.vto-dress {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px;
  background: var(--paper);
  border: 1px solid var(--fs-border);
  border-radius: 8px;
}

.vto-dress img {
  flex-shrink: 0;
  width: 48px;
  height: 60px;
  object-fit: cover;
  border-radius: 6px;
  background: #fff;
}

.vto-dress span {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}

.vto-form,
.vto-form > [data-vto-step] {
  display: grid;
  gap: 12px;
}

.vto-upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 18px 16px;
  text-align: center;
  background: var(--paper);
  border: 1.5px dashed rgba(165,28,48,.35);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}

.vto-upload:hover,
.vto-upload:focus-within {
  background: var(--fs-soft);
  border-color: var(--crimson);
}

/* The real file input stays focusable; the pill below is its visible button. */
.vto-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.vto-upload .required-mark {
  display: none;
}

.vto-upload-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: var(--crimson);
  background: var(--fs-accent-soft);
  border-radius: 50%;
}

.vto-upload-icon svg {
  width: 20px;
  height: 20px;
}

.vto-upload-copy {
  display: grid;
  gap: 4px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--grey);
}

.vto-upload-copy strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}

.vto-upload-btn {
  background: #fff;
}

/* Once a photo is chosen the upload box shrinks so the preview has the room. */
.vto-upload:has(+ .vto-customer-preview:not([hidden])) {
  flex-direction: row;
  justify-content: space-between;
  padding: 8px 12px;
  text-align: left;
}

.vto-upload:has(+ .vto-customer-preview:not([hidden])) .vto-upload-icon,
.vto-upload:has(+ .vto-customer-preview:not([hidden])) .vto-upload-copy span {
  display: none;
}

.vto-customer-preview img,
.vto-result img {
  display: block;
  width: 100%;
  object-fit: contain;
  background: var(--paper);
  border: 1px solid var(--fs-border);
  border-radius: 8px;
}

.vto-customer-preview img {
  max-height: clamp(150px, calc(100dvh - 442px), 340px);
}

.vto-result img {
  max-height: clamp(220px, calc(100dvh - 338px), 460px);
}

.vto-hint,
.vto-loading p,
.vto-error p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--grey);
  text-align: center;
}

.vto-loading {
  justify-items: center;
  padding: 28px 8px;
}

.vto-form .btn-store {
  width: 100%;
  padding: 13px 20px;
  font-family: inherit;
  font-size: 14px;
}

.vto-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.vto-result .vto-actions::before {
  text-align: center;
}

.vto-error p {
  padding: 12px;
  color: var(--crimson);
  background: var(--fs-accent-soft);
  border-radius: 8px;
}

@media (max-width: 480px) {
  .vto-modal {
    padding: 8px;
  }

  .vto-dialog {
    width: calc(100vw - 16px);
  }

  .vto-header {
    padding-top: 12px;
  }

  .vto-header .rs-visitor-logo {
    height: 36px;
    margin-bottom: 4px;
  }

  .vto-header .rs-visitor-title {
    font-size: 17px;
  }

  .vto-body {
    padding: 12px 14px 16px;
  }

  .vto-upload {
    padding: 14px 12px;
  }

  .vto-customer-preview img {
    max-height: clamp(140px, calc(100dvh - 370px), 340px);
  }

  .vto-result img {
    max-height: clamp(200px, calc(100dvh - 300px), 440px);
  }
}

@media (max-height: 620px), (max-width: 767px) and (max-height: 700px) {
  .vto-header .rs-visitor-logo {
    display: none;
  }

  .vto-customer-preview img {
    max-height: clamp(130px, calc(100dvh - 366px), 340px);
  }

  .vto-result img {
    max-height: clamp(180px, calc(100dvh - 288px), 460px);
  }
}

@media (max-width: 360px) and (max-height: 700px) {
  .vto-customer-preview img {
    max-height: clamp(120px, calc(100dvh - 430px), 340px);
  }
}

/* Landscape phones: product and upload controls beside each other. */
@media (max-height: 480px) and (min-width: 560px) {
  .vto-dialog {
    width: min(720px, calc(100vw - 16px));
  }

  .vto-modal {
    padding: 8px;
  }

  .vto-body {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: start;
    padding: 10px 16px 14px;
  }

  .vto-customer-preview img {
    max-height: 100px;
  }

  .vto-result img {
    max-height: calc(100dvh - 186px);
  }
}

/* Desktop-only "open on mobile" notice (mobile-notice.js) */
.rs-mobile-notice { display: none; }
@media (pointer: fine) and (min-width: 641px) and (min-height: 501px) {
  .rs-mobile-notice {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 85;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 8px 8px 16px;
    border-radius: 999px;
    background: #1a1a1a;
    color: #fff;
    font-size: 13px;
    line-height: 18px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  }
  .rs-mobile-notice[hidden] { display: none; }
}
.rs-mobile-notice-close {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.rs-mobile-notice-close:hover { background: rgba(255, 255, 255, .16); }
.rs-mobile-notice-close svg { width: 16px; height: 16px; }

/* Full-screen zoom for try-on results (vto-image-zoom.js) */
.vto-zoom {
  position: fixed;
  inset: 0;
  z-index: 1400;
  background: #111;
}
.vto-zoom[hidden] { display: none !important; }
.vto-zoom-stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}
.vto-zoom-stage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}
.vto-zoom-btn {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  color: #1a1a1a;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.vto-zoom-btn svg { width: 22px; height: 22px; }
.vto-zoom-btn:disabled { opacity: .45; cursor: default; }
.vto-zoom-close { position: absolute; top: 12px; right: 12px; }
.vto-zoom-controls {
  position: absolute;
  left: 50%;
  bottom: 20px;
  display: flex;
  gap: 12px;
  transform: translateX(-50%);
}
/* Keep in step with zoomEnabled in vto-image-zoom.js */
@media (pointer: coarse), (max-width: 640px), (max-height: 500px) {
  [data-vto-result-image],
  .chatbot-msg-vto .chatbot-msg-image { cursor: zoom-in; }
  .vto-result .vto-actions::before,
  .chatbot-msg-vto:has(.chatbot-msg-image) .chatbot-msg-text::after {
    content: "Tap image to zoom";
    display: block;
    flex-basis: 100%;
    font-size: 0.8rem;
    font-style: italic;
    color: var(--grey);
  }
}


/* ==========================================================================
   5. Shared form states
   ========================================================================== */
.required-mark {
  color: #dc2626;
  font-weight: 700;
  margin-left: 0.2em;
  line-height: 1;
}

:where(body.rs-home) .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

:where(body.rs-home) [x-cloak] {
  display: none !important;
}

button.is-submitting,
input[type="submit"].is-submitting,
input[type="button"].is-submitting {
  cursor: wait;
  opacity: 0.85;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.form-spinner {
  width: 0.95em;
  height: 0.95em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 999px;
  display: inline-block;
  vertical-align: -0.1em;
  animation: form-spin 0.7s linear infinite;
  flex-shrink: 0;
}

.form-loading-text {
  line-height: 1;
}

@keyframes form-spin {
  to {
    transform: rotate(360deg);
  }
}

.password-req {
  margin-top: 0.7rem;
}

.password-req-title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1a1a1a;
}

.password-req-list {
  margin: 0;
  padding: 0.75rem 0.85rem;
  list-style: none;
  border: 1px solid var(--color-border, #f0dfe1);
  border-radius: 0.6rem;
  background: var(--color-sand, #fdf6f6);
}

.password-req-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8rem;
  line-height: 1.4;
  color: #1a1a1a;
}

.password-req-item + .password-req-item {
  margin-top: 0.32rem;
}

.password-req-item.is-met,
.password-req-item.is-unmet {
  color: #1a1a1a;
}

.password-req-icon {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.12rem;
  color: #a51c30;
}

.password-req-message {
  margin: 0.55rem 0 0;
  font-size: 0.8rem;
  line-height: 1.4;
  color: #be123c;
}

.password-field-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.375rem;
}

.password-control {
  position: relative;
}

.password-control .auth-input,
.password-control .form-control {
  padding-right: 2.75rem;
}

.password-control.has-icon .auth-input,
.password-control.has-icon .form-control {
  padding-left: 2.75rem;
}

.password-leading {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  padding-left: 0.9rem;
  color: #9a8a8a;
  pointer-events: none;
}

.password-toggle {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 0 0.75rem;
  border: 0;
  background: transparent;
  color: #9a8a8a;
  cursor: pointer;
}

.password-toggle:hover {
  color: #7a1f38;
}

.password-toggle svg {
  width: 1.25rem;
  height: 1.25rem;
}

.password-field-head .auth-label {
  margin-bottom: 0;
}

.password-suggest-trigger {
  flex-shrink: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: calc(0.75rem + 2px);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-accent, #e5989b);
  cursor: pointer;
}

.password-suggest-trigger:hover {
  text-decoration: underline;
}

.password-suggest {
  margin-top: 0.55rem;
  padding: 0.7rem 0.85rem;
  border: 1px dashed var(--color-border, #f0dfe1);
  border-radius: 0.6rem;
  background: var(--color-sand, #fdf6f6);
}

.password-suggest-label {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted, #8a7376);
}

.password-suggest-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.password-suggest-value {
  flex: 1;
  min-width: 0;
  padding: 0.4rem 0.55rem;
  border-radius: 0.4rem;
  background: #fff;
  border: 1px solid var(--color-border, #f0dfe1);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--color-ink, #2b2423);
  word-break: break-all;
  user-select: all;
}

.password-suggest-copy {
  flex-shrink: 0;
  border: 1px solid var(--color-accent, #e5989b);
  background: #fff;
  color: var(--color-ink, #2b2423);
  border-radius: 0.4rem;
  padding: 0.4rem 0.52rem;
  font-size: calc(0.72rem + 2px);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}

.password-suggest-copy:hover {
  background: var(--color-accent-soft, #fdeff2);
}

.password-suggest-copy.is-copied {
  border-color: #047857;
  color: #047857;
}


/* ==========================================================================
   6. Chatbot
   ========================================================================== */
.chatbot {
  position: relative;
  z-index: 90;
}

.chatbot-launcher {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  width: 3.6rem;
  height: 3.6rem;
  border: 0;
  border-radius: 999px;
  background: var(--fs-accent);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 16px 36px rgba(229, 152, 155, 0.35);
  display: grid;
  place-items: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  z-index: 91;
}

.chatbot-launcher:hover,
.chatbot-launcher:focus-visible {
  transform: translateY(-2px);
  background: var(--fs-accent-hover, #d4848c);
  box-shadow: 0 18px 40px rgba(229, 152, 155, 0.4);
}

.chatbot-launcher-icon {
  width: 1.55rem;
  height: 1.55rem;
}

.chatbot-launcher-close,
.chatbot.is-open .chatbot-launcher-open {
  display: none;
}

.chatbot.is-open .chatbot-launcher-close {
  display: block;
}

.chatbot-window {
  position: fixed;
  right: 1.25rem;
  bottom: 5.4rem;
  width: 400px;
  height: 600px;
  max-height: calc(100dvh - 7rem);
  display: flex;
  flex-direction: column;
  background: var(--fs-cream, #fffdfc);
  border: 1px solid var(--fs-border);
  border-radius: 0.7rem;
  box-shadow: 0 24px 60px rgba(43, 36, 35, 0.14);
  overflow: hidden;
  z-index: 91;
}

.chatbot-window[hidden] {
  display: none !important;
}

.chatbot-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1rem 0.85rem;
  background: linear-gradient(180deg, #fff, var(--fs-accent-soft, #fdeff2));
  border-bottom: 1px solid var(--fs-border);
}

.chatbot-kicker {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fs-muted);
}

.chatbot-header h2 {
  margin: 0.1rem 0 0;
  font-family: var(--fs-serif, "Playfair Display", Georgia, serif);
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.1;
}

.chatbot-header-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.chatbot-text-btn,
.chatbot-icon-btn {
  border: 1px solid var(--fs-border);
  background: #fff;
  color: var(--fs-muted);
  cursor: pointer;
}

.chatbot-text-btn {
  border-radius: 999px;
  padding: 0.35rem 0.45rem;
  font-size: calc(0.78rem + 2px);
  line-height: 16px;
  font-weight: 600;
}

.chatbot-icon-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
}

.chatbot-icon-btn svg {
  width: 1rem;
  height: 1rem;
}

.chatbot-text-btn:hover,
.chatbot-icon-btn:hover {
  color: var(--fs-accent);
  border-color: #efc4c8;
  background: var(--fs-accent-soft, #fdeff2);
}

.chatbot-messages {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 0.9rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  background: radial-gradient(circle at top right, rgba(229, 152, 155, 0.12), transparent 36%), var(--fs-cream, #fffdfc);
}

.chatbot-msg {
  max-width: 86%;
  padding: 0.7rem 0.85rem;
  border-radius: 0.7rem;
  font-size: 0.92rem;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

.chatbot-msg-user {
  align-self: flex-end;
  background: var(--fs-accent);
  color: #fff;
  border-bottom-right-radius: 0.35rem;
}

.chatbot-msg-assistant {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--fs-border);
  color: var(--fs-ink);
  border-bottom-left-radius: 0.35rem;
}

.chatbot-msg-error {
  background: #fff5f5;
  border-color: #f0c9c9;
  color: #8b2e2e;
}

.chatbot-msg-thinking {
  color: var(--fs-muted);
  font-style: italic;
}

.chatbot-msg-text {
  display: block;
}

.chatbot-msg-has-products {
  max-width: 100%;
}

.chatbot-products {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin-top: 0.7rem;
}

.chatbot-product {
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid var(--fs-border);
  border-radius: 0.45rem;
}

.chatbot-product.is-selected {
  border-color: var(--fs-accent);
}

.chatbot-product:hover {
  border-color: #efc4c8;
}

.chatbot-product-media {
  display: block;
  color: inherit;
  text-decoration: none;
}

.chatbot-product img {
  width: 100%;
  height: 7.5rem;
  object-fit: contain;
  object-position: center;
  display: block;
  background: #f7f0ed;
}

.chatbot-product-body {
  padding: 0.45rem 0.5rem 0.55rem;
}

.chatbot-product-name {
  display: block;
  margin: 0 0 0.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.25;
  color: inherit;
  text-decoration: none;
}

a.chatbot-product-name:hover {
  color: var(--fs-accent);
}

.chatbot-product-price {
  margin: 0;
  font-size: 0.75rem;
  color: var(--fs-accent);
}

.chatbot-product-meta,
.chatbot-product-sizes,
.chatbot-product-stock,
.chatbot-product-desc {
  margin: 0.18rem 0 0;
  font-size: 0.68rem;
  line-height: 1.3;
  color: var(--fs-muted);
}

.chatbot-product-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.chatbot-listing-link {
  display: inline-block;
  margin-top: 0.55rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--fs-accent);
  text-decoration: none;
}

.chatbot-listing-link:hover {
  text-decoration: underline;
}

.chatbot-product:has(.chatbot-last-tryon) {
  position: relative;
}

.chatbot-last-tryon {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 1px solid var(--fs-border);
  border-radius: 50%;
  background: #fff;
  color: var(--fs-accent);
  cursor: pointer;
}

.chatbot-last-tryon:hover {
  border-color: #efc4c8;
  background: var(--fs-accent-soft, #fdeff2);
}

.chatbot-last-tryon svg {
  width: 1.05rem;
  height: 1.05rem;
}

@media (max-width: 640px) {
  .chatbot-last-tryon {
    width: 2.25rem;
    height: 2.25rem;
  }
}

.chatbot-product-actions {
  margin-top: 0.45rem;
}

.chatbot-try-on,
.chatbot-show-more {
  border: 1px solid var(--fs-border);
  background: #fff;
  color: var(--fs-accent);
  font-weight: 600;
  cursor: pointer;
}

.chatbot-try-on {
  width: 100%;
  border-radius: 0.35rem;
  padding: 0.32rem 0.45rem;
  font-size: calc(0.72rem + 2px);
}

.chatbot-show-more {
  display: inline-block;
  margin-top: 0.55rem;
  margin-right: 0.5rem;
  border-radius: 999px;
  padding: 0.35rem 0.5rem;
  font-size: calc(0.78rem + 2px);
}

.chatbot-try-on:hover,
.chatbot-show-more:hover {
  border-color: #efc4c8;
  background: var(--fs-accent-soft, #fdeff2);
}

.chatbot-msg-vto .chatbot-msg-image {
  max-width: 100%;
  max-height: 16rem;
}

.chatbot-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0 0.9rem 0.75rem;
}

.chatbot-suggestions button {
  border: 1px solid var(--fs-border);
  background: #fff;
  color: var(--fs-ink);
  border-radius: 999px;
  padding: 0.38rem 0.4rem;
  font-size: calc(0.78rem + 2px);
  cursor: pointer;
}

.chatbot-suggestions button:hover:not(:disabled),
.chatbot-suggestions button:focus-visible {
  border-color: #efc4c8;
  background: var(--fs-accent-soft, #fdeff2);
  color: var(--fs-accent);
}

.chatbot-suggestions button:disabled,
.chatbot-form textarea:disabled,
.chatbot-send:disabled,
.chatbot-attach:disabled,
.chatbot-image-preview-actions button:disabled,
.chatbot-try-on:disabled,
.chatbot-show-more:disabled {
  cursor: wait;
  opacity: 0.7;
}

.chatbot-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem 0.9rem 0.9rem;
  border-top: 1px solid var(--fs-border);
  background: #fff;
}

.chatbot-form-row {
  display: flex;
  gap: 0.55rem;
  align-items: flex-end;
}

.chatbot-form textarea {
  flex: 1;
  resize: none;
  min-height: 2.6rem;
  max-height: 7rem;
  border: 1px solid var(--fs-border);
  border-radius: 0.35rem;
  padding: 0.65rem 0.8rem;
  font: inherit;
  background: #fff;
}

.chatbot-form textarea:focus {
  outline: 2px solid #efc4c8;
  outline-offset: 1px;
}

.chatbot-attach {
  width: 2.6rem;
  height: 2.6rem;
  flex-shrink: 0;
}

.chatbot-send {
  padding: 0.65rem 0.85rem;
  flex-shrink: 0;
}

/* Message field: attach, text and send share one rounded bar. No visible scrollbar; the field grows as you type. */
.chatbot-form-row {
  gap: 6px;
  padding: 5px;
  border: 1px solid var(--fs-border);
  border-radius: 25px;
  background: #fbf8f6;
  transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.chatbot-form-row:has(textarea:focus) {
  border-color: #d99aa4;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(165, 28, 48, .1);
}
.chatbot-form-row textarea {
  min-width: 0;
  min-height: 38px;
  max-height: 120px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  padding: 8px 4px;
  font-size: 15px;
  line-height: 22px;
  background: transparent;
  color: var(--fs-ink);
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.chatbot-form-row textarea::-webkit-scrollbar { display: none; }
.chatbot-form-row textarea:focus,
.chatbot-form-row textarea:focus-visible { outline: none; }
.chatbot-form-row textarea::placeholder {
  font-size: 14px;
  color: #8a8380;
  opacity: 1;
  white-space: nowrap;
}
.chatbot-form-row .chatbot-attach {
  width: 38px;
  height: 38px;
}
.chatbot-form-row .chatbot-attach:not(:hover) {
  border-color: transparent;
  background: transparent;
}
.chatbot-form-row .chatbot-send.btn-store {
  min-height: 38px;
  padding: 8px 16px;
  white-space: nowrap;
}
@media (max-width: 640px) {
  /* 16px stops iOS Safari zooming the page when the field is focused. */
  .chatbot-form-row textarea { font-size: 16px; }
}

.chatbot-image-preview {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.45rem 0.5rem;
  border: 1px solid var(--fs-border);
  border-radius: 0.45rem;
  background: var(--fs-accent-soft, #fdeff2);
}

.chatbot-image-preview[hidden] {
  display: none !important;
}

.chatbot-image-preview img {
  width: 3rem;
  height: 3rem;
  object-fit: cover;
  border-radius: 0.35rem;
  border: 1px solid var(--fs-border);
  background: #fff;
  flex-shrink: 0;
}

.chatbot-image-preview-meta {
  min-width: 0;
  flex: 1;
}

.chatbot-image-name {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--fs-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chatbot-image-preview-actions {
  display: flex;
  gap: 0.35rem;
  margin-top: 0.3rem;
}

.chatbot-form-error {
  margin: 0;
  font-size: 0.78rem;
  color: #8b2e2e;
}

.chatbot-form-error[hidden] {
  display: none !important;
}

.chatbot-msg-image {
  display: block;
  max-width: 10rem;
  max-height: 10rem;
  width: auto;
  height: auto;
  object-fit: cover;
  border-radius: 0.35rem;
  margin-bottom: 0.45rem;
}

.chatbot-msg-user .chatbot-msg-image {
  border: 1px solid rgba(255, 255, 255, 0.35);
}

@media (max-width: 640px) {
  .chatbot-launcher {
    right: 1rem;
    bottom: 1rem;
  }
  .chatbot-window {
    inset: 0;
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    right: 0;
    bottom: 0;
  }
}

/* --- Storefront launcher and window overrides --- */
body.rs-home .chatbot-launcher {
  width: 48px;
  height: 48px;
  right: 16px;
  bottom: 76px;
  background: #A51C30;
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
}

body.rs-home .chatbot-launcher:hover,
body.rs-home .chatbot-launcher:focus-visible {
  transform: scale(1.05);
  background: #8a1729;
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
}

body.rs-home .chatbot-launcher-open {
  width: 26px;
  height: 26px;
}

@media (min-width: 768px) {
  body.rs-home .chatbot-launcher-open {
    width: 30px;
    height: 30px;
  }
}

body.rs-home .chatbot-window {
  right: 16px;
  bottom: 136px;
  border-radius: 16px;
}

/* The launcher now sits above WhatsApp, so the window opens above the launcher.
   At 640px and below the window stays full screen. */
@media (min-width: 641px) {
  body.rs-home .chatbot-window {
    /* Space kept clear for the sticky header above and the launcher below. */
    --chatbot-top-space: 150px;
    --chatbot-bottom-space: 136px;
    bottom: var(--chatbot-bottom-space);
    width: clamp(340px, 32vw, 400px);
    max-height: calc(100dvh - var(--chatbot-top-space) - var(--chatbot-bottom-space));
  }
}

@media (min-width: 768px) {
  body.rs-home .chatbot-window {
    --chatbot-bottom-space: 160px;
    right: 24px;
  }
  body.rs-home .chatbot-launcher {
    width: 56px;
    height: 56px;
    right: 24px;
    bottom: 92px;
  }
}

/* The header is taller once the desktop menu row shows. */
@media (min-width: 1024px) {
  body.rs-home .chatbot-window {
    --chatbot-top-space: 196px;
  }
}

/* Shorter screens: open beside the launcher instead of above it, to keep a usable height. */
@media (min-width: 641px) and (max-height: 959px) {
  body.rs-home .chatbot-window {
    --chatbot-bottom-space: 16px;
    right: 76px;
  }
}

@media (min-width: 768px) and (max-height: 959px) {
  body.rs-home .chatbot-window {
    --chatbot-bottom-space: 24px;
    right: 96px;
  }
}

/* --- Phones: full-screen chat fitted to the visible area (chatbot.js sets the variables) --- */
@media (max-width: 640px), (max-height: 500px) {
  body:has(.chatbot.is-open) { overflow: hidden; }
  body.rs-home .chatbot-window {
    top: var(--chatbot-viewport-top, 0);
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: var(--chatbot-viewport-height, 100dvh);
    max-height: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .chatbot-header { padding: 0.5rem 0.75rem; }
  .chatbot-header h2 { font-size: 1.15rem; white-space: nowrap; }
  .chatbot-header-actions { flex-shrink: 0; }
  .chatbot-header-actions .chatbot-text-btn { min-height: 40px; padding: 0.35rem 0.75rem; white-space: nowrap; }
  .chatbot-header-actions .chatbot-icon-btn { width: 40px; height: 40px; }
  .chatbot-messages { padding: 0.75rem 0.6rem; overscroll-behavior: contain; }
  .chatbot-msg-has-products { width: 100%; padding: 0.6rem 0.5rem; }
  .chatbot-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chatbot-product img { height: auto; aspect-ratio: 3 / 4; }
  .chatbot-product-name, .chatbot-product-price { font-size: 0.85rem; }
  .chatbot-product-meta, .chatbot-product-sizes, .chatbot-product-stock, .chatbot-product-desc { font-size: 0.75rem; }
  .chatbot-try-on, .chatbot-show-more { min-height: 40px; font-size: 0.85rem; }
  .chatbot-form { padding: 0.5rem 0.6rem 0.6rem; }
}
@media (max-height: 500px) and (min-width: 641px) {
  .chatbot-products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* --- Style Assistant label: appears above the launcher on a 5s loop --- */
.chatbot-launcher-label {
  position: absolute;
  right: 0;
  bottom: calc(100% + 11px);
  padding: 7px 14px;
  border: 1px solid rgba(165, 28, 48, 0.18);
  border-radius: 999px;
  background: linear-gradient(105deg, #fff 40%, #fbe3e7 50%, #fff 60%) 120% 0 / 300% 100% #fff;
  box-shadow: 0 8px 22px rgba(43, 36, 35, 0.18);
  color: #A51C30;
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transform-origin: calc(100% - 22px) 100%;
  display: grid;
  animation:
    chatbot-label-show 65s ease-in-out infinite,
    chatbot-label-shimmer 5s ease-in-out infinite;
}

/* Phrases share one grid cell and take turns, 5s each. */
.chatbot-launcher-phrase {
  grid-area: 1 / 1;
  text-align: center;
  opacity: 0;
  animation: chatbot-phrase-swap 15s ease-in-out infinite;
}

.chatbot-launcher-phrase:nth-child(2) {
  animation-delay: 5s;
}

.chatbot-launcher-phrase:nth-child(3) {
  animation-delay: 10s;
}

/* Tail pointing down at the launcher. */
.chatbot-launcher-label::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: -5px;
  width: 9px;
  height: 9px;
  background: #fff;
  border-right: 1px solid rgba(165, 28, 48, 0.18);
  border-bottom: 1px solid rgba(165, 28, 48, 0.18);
  transform: rotate(45deg);
}

/* Ring that ripples out of the launcher as the label appears. */
.chatbot-launcher::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  animation: chatbot-launcher-ring 5s ease-out infinite;
}

.chatbot-launcher-spark {
  transform-box: fill-box;
  transform-origin: center;
  animation: chatbot-spark-twinkle 5s ease-in-out infinite;
}

.chatbot.is-open .chatbot-launcher-label,
.chatbot.is-open .chatbot-launcher::before {
  display: none;
}

.chatbot-launcher:hover .chatbot-launcher-label,
.chatbot-launcher:focus-visible .chatbot-launcher-label {
  opacity: 1;
  transform: none;
  animation: none;
}

/* On screen for 60s, then hidden for 5s before the next round. */
@keyframes chatbot-label-show {
  0% { opacity: 0; transform: translateY(8px) scale(0.86); }
  0.8% { opacity: 1; transform: translateY(-2px) scale(1.03); }
  1.2%, 92.3% { opacity: 1; transform: none; }
  93%, 100% { opacity: 0; transform: translateY(-5px); }
}

@keyframes chatbot-label-shimmer {
  0%, 10% { background-position: 120% 0; }
  45%, 100% { background-position: -20% 0; }
}

@keyframes chatbot-phrase-swap {
  0% { opacity: 0; transform: translateY(6px); }
  3%, 30% { opacity: 1; transform: none; }
  33.33%, 100% { opacity: 0; transform: translateY(-6px); }
}

@keyframes chatbot-launcher-ring {
  0% { box-shadow: 0 0 0 0 rgba(165, 28, 48, 0.45); }
  22%, 100% { box-shadow: 0 0 0 14px rgba(165, 28, 48, 0); }
}

@keyframes chatbot-spark-twinkle {
  0%, 22%, 100% { transform: none; opacity: 1; }
  8% { transform: scale(1.45) rotate(45deg); opacity: 0.75; }
}

@keyframes chatbot-label-fade {
  0%, 93%, 100% { opacity: 0; }
  0.8%, 92.3% { opacity: 1; }
}

@keyframes chatbot-phrase-fade {
  0%, 33.33%, 100% { opacity: 0; }
  3%, 30% { opacity: 1; }
}

/* Reduced motion: same timing and wording, using plain fades. */
@media (prefers-reduced-motion: reduce) {
  .chatbot-launcher-label {
    animation: chatbot-label-fade 65s linear infinite;
  }

  .chatbot-launcher-phrase {
    animation-name: chatbot-phrase-fade;
  }

  .chatbot-launcher::before,
  .chatbot-launcher-spark {
    animation: none;
  }
}


/* ==========================================================================
   7. Layout utilities, home price cards, product page helpers
   ========================================================================== */
.appx-eyebrow-gap {
  margin-bottom: 16px;
}

.appx-heading-gap {
  margin-bottom: 20px;
}

.appx-paragraph-gap {
  margin-bottom: 32px;
}

.appx-section-header {
  margin-bottom: 50px;
}

.appx-padding-0 {
  padding: 0;
}

.appx-section-padding {
  padding: 100px 32px;
}

:where(body.rs-home) .max-width-section {
  max-width: 1500px;
  margin-inline: auto;
}

:where(body.rs-home) .text-align-start {
  text-align: start;
}

.appx-text-color {
  color: #fff;
}

/* --- Home Page --- */
/* --- Price tier cards --- */
.appx-price-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

/* --- Individual card --- */
.appx-ptier {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 24px 32px;
  overflow: hidden;
  background: var(--crimson);
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  border-radius: 16px;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

/* --- Card hover --- */
.appx-ptier:hover {
  background: var(--crimson-d);
  transform: translateY(-4px);
}

/* --- Price heading --- */
.appx-ptier h3 {
  margin: 0 0 7px;
  color: #ffffff;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.3;
}

/* --- Description --- */
.appx-ptier-note {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 1.5;
}

/* --- Style count --- */
.appx-ptier-count {
  margin: 0;
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

/* --- Bottom-right circular arrow --- */
.appx-ptier-arrow {
  position: absolute;
  right: 20px;
  bottom: 18px;
  display: flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.10);
  color: #ffffff;
  transition: transform 0.35s ease, background-color 0.3s ease, border-color 0.3s ease;
}

/* --- Arrow SVG --- */
.appx-ptier-arrow svg {
  display: block;
  width: 17px;
  height: 17px;
  transition: transform 0.35s ease;
}

/* --- Rotate arrow on hover --- */
.appx-ptier:hover .appx-ptier-arrow svg {
  transform: rotate(-45deg);
}

/* --- Highlight arrow circle on hover --- */
.appx-ptier:hover .appx-ptier-arrow {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.7);
}

/* --- Keyboard accessibility --- */
.appx-ptier:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}

/* --- Left cards: higher --- */
.appx-ptier:nth-child(odd) {
  transform: translateY(0);
}

/* --- Right cards: lower --- */
.appx-ptier:nth-child(even) {
  transform: translateY(22px);
}

/* --- About Us --- */
:where(body.rs-home) .max-height-500px {
  max-height: 500px;
}

.appx-breadcrumb {
  background-color: transparent;
  padding-top: 0;
  padding-bottom: 20px;
}

/* --- Product Details Page --- */
.appx-flex-column-product-sub {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.appx-flex-column-product-main {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

:where(body.rs-home) .gap-10px {
  gap: 10px;
}

.app-button-two-column {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 10px;
}

.appx-pink-outline-button {
  color: #fff !important;
  border: 1px solid var(--crimson) !important;
  background-color: var(--crimson) !important;
  box-shadow: 0 8px 22px rgba(165,28,48,.45) !important;
}

.appx-pink-outline-button:hover {
  background-color: var(--crimson-d) !important;
  border-color: var(--crimson-d) !important;
  color: #fff !important;
}

@media (max-width: 991px) {
  .appx-section-padding {
    padding: 64px 16px;
  }
}

/* --- Tablet and mobile --- */
@media (max-width: 767px) {
  .appx-price-cards {
    gap: 12px;
  }
  .appx-ptier {
    min-height: 190px;
    padding: 28px 12px 48px;
    border-radius: 13px;
  }
  .appx-ptier h3 {
    font-size: 19px;
  }
  .appx-ptier-note {
    font-size: 12px;
  }
  .appx-ptier-arrow {
    right: 12px;
    bottom: 12px;
    width: 30px;
    height: 30px;
  }
  .appx-ptier-arrow svg {
    width: 15px;
    height: 15px;
  }
  .text-center-767px {
    text-align: center;
  }
  .margin-auto-767px {
    margin-inline: auto;
  }
  .appx-section-header {
    margin-bottom: 30px;
  }
  .appx-eyebrow-gap {
    margin-bottom: 8px;
  }
  .appx-paragraph-gap {
    margin-bottom: 18px;
  }
  .appx-grid-single-colmn-767px {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .appx-grid-single-colmn-575px {
    grid-template-columns: 1fr;
  }
}

/* --- Small mobile screens --- */
@media (max-width: 420px) {
  .appx-price-cards {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .appx-ptier {
    min-height: 175px;
  }
  .appx-ptier:nth-child(even) {
    transform: translateY(0px);
  }
}

/* --- Respect reduced motion preferences --- */
@media (prefers-reduced-motion: reduce) {
  .appx-ptier,
  .appx-ptier-arrow,
  .appx-ptier-arrow svg {
    transition: none;
  }
}

/* ==========================================================================
   8. Listing pages (shop, search, category)

   Page sections 8 onward used to be separate files loaded after everything above,
   so they stay at the end of this file, in this order.
   The wishlist page also has a .rs-listing element but never loaded these rules,
   so it is excluded. Breadcrumbs are shared with other pages, so they are scoped
   to listing pages. :where() adds no specificity in either case.
   ========================================================================== */
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb { background: #fff; padding: 16px 0 0; }
@media (min-width: 768px) { :where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb { padding: 20px 0 0; } }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
}
@media (min-width: 768px) { :where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list { font-size: 12px; gap: 8px 12px; } }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list li { min-width: 0; color: var(--grey); }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  color: rgba(26, 26, 26, .28);
}
@media (min-width: 768px) { :where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list li:not(:last-child)::after { margin-left: 12px; } }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list a { color: var(--grey); text-decoration: none; transition: color .2s; }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list a:hover { color: var(--crimson); }
:where(body:has(.rs-listing:not(.rs-wishlist-page))) .rs-crumb-list [aria-current="page"] { color: var(--ink); font-weight: 700; letter-spacing: .1em; }

.rs-listing:where(:not(.rs-wishlist-page)) { background: #fff; padding: 14px 0 28px; }
@media (min-width: 768px) { .rs-listing:where(:not(.rs-wishlist-page)) { padding: 18px 0 36px; } }
.rs-listing:where(:not(.rs-wishlist-page)) h1,
.rs-listing:where(:not(.rs-wishlist-page)) h3,
.rs-listing:where(:not(.rs-wishlist-page)) p { margin: 0; }
.rs-listing:where(:not(.rs-wishlist-page)) button,
.rs-listing:where(:not(.rs-wishlist-page)) input,
.rs-listing:where(:not(.rs-wishlist-page)) select { font-family: var(--font); }
:where(.rs-listing:not(.rs-wishlist-page)) .rs-listing-head { text-align: center; padding: 2px 0 18px; }
@media (min-width: 768px) { :where(.rs-listing:not(.rs-wishlist-page)) .rs-listing-head { padding: 4px 0 22px; } }
:where(.rs-listing:not(.rs-wishlist-page)) .rs-listing-head h1 {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--ink);
}
@media (min-width: 768px) { :where(.rs-listing:not(.rs-wishlist-page)) .rs-listing-head h1 { font-size: 48px; } }
.rs-listing-query {
  margin-top: 8px;
  color: var(--grey);
  font-size: 14px;
  letter-spacing: .02em;
}

.rs-listing:where(:not(.rs-wishlist-page)) .rs-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px 0;
  border-top: 1px solid #E8E8E8;
  border-bottom: 1px solid #E8E8E8;
  margin-bottom: 24px;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  padding: 0;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  transition: color .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-tool-btn:hover { color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-tool-btn .rs-ic { width: 18px; height: 18px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-show-filters { display: inline-flex; }
@media (min-width: 1024px) { .rs-listing:where(:not(.rs-wishlist-page)) .rs-show-filters { display: none; } }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-result-count {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--grey);
  margin-left: auto;
}
@media (min-width: 1024px) { .rs-listing:where(:not(.rs-wishlist-page)) .rs-result-count { margin: 0 auto; } }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-tool-right { display: flex; align-items: center; gap: 20px; margin-left: auto; }
@media (min-width: 1024px) { .rs-listing:where(:not(.rs-wishlist-page)) .rs-tool-right { margin-left: 0; } }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-sort { display: flex; align-items: center; gap: 8px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-sort-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--grey);
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-sort-select {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  background-color: #fff;
  border: 1px solid #E8E8E8;
  border-radius: 999px;
  padding: 8px 30px 8px 14px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  max-width: 100%;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-sort-select:focus { outline: none; border-color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-view { display: flex; align-items: center; gap: 4px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-view-btn {
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: 1px solid #E8E8E8;
  background: #fff;
  color: #9a9a9a;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-view-btn svg { width: 16px; height: 16px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-view-btn.active { color: var(--ink); border-color: var(--ink); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-view-btn:hover { color: var(--crimson); border-color: var(--crimson); }

.rs-listing:where(:not(.rs-wishlist-page)) .rs-listing-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: start;
}
@media (min-width: 1024px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-listing-body { grid-template-columns: 240px 1fr; gap: 40px; }
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-listing-body.filters-hidden { grid-template-columns: 1fr; }
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-filters { display: none; }
@media (min-width: 1024px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-listing-body:not(.filters-hidden) .rs-filters {
    display: block;
    position: sticky;
    top: var(--rs-listing-sticky, 190px);
  }
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-listing-body.filters-hidden .rs-filters { display: none; }
.rs-fdrawer-body .rs-filters { display: block !important; position: static !important; }

.rs-listing:where(:not(.rs-wishlist-page)) .rs-fgroup { border-bottom: 1px solid #E8E8E8; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fhead {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 0;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
  transition: color .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fhead:hover { color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fhead-ic { font-size: 16px; line-height: 1; color: var(--crimson); transition: transform .3s; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fgroup.open .rs-fhead-ic { transform: rotate(180deg); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fbody { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fgroup.open .rs-fbody { grid-template-rows: 1fr; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-finner { overflow: hidden; min-height: 0; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcontent { padding: 0 0 18px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fopt,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcolor {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  cursor: pointer;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fopt input,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcolor input {
  appearance: none;
  -webkit-appearance: none;
  width: 16px !important; /* Beats the global checkbox width: auto !important, which collapses appearance: none inputs. */
  height: 16px;
  margin: 0;
  border: 1px solid #999;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fopt input:checked,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcolor input:checked { background: var(--crimson); border-color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fopt input:checked::after,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcolor input:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  box-sizing: border-box;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -60%) rotate(45deg);
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fopt span,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fcolor span { font-size: 13px; color: var(--ink); line-height: 1.4; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fswatch {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, .15);
  flex-shrink: 0;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-frange { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-frange input {
  width: 88px;
  font-size: 13px;
  border: 1px solid #E8E8E8;
  border-radius: 6px;
  padding: 7px 10px;
  outline: none;
  color: var(--ink);
  background: #fff;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-frange input:focus { border-color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-frange span { font-size: 12px; color: #9a9a9a; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-filter-apply { width: 100%; justify-content: center; margin: 16px 0 8px; }
@media (min-width: 1024px) {
  .rs-listing:where(:not(.rs-wishlist-page)).is-ready .rs-filter-apply {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer { position: fixed; inset: 0; z-index: 65; visibility: hidden; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer.open { visibility: visible; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .4); opacity: 0; transition: .3s; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer.open .rs-fdrawer-overlay { opacity: 1; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer-panel {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 86%;
  max-width: 340px;
  background: #fff;
  box-shadow: 20px 0 60px rgba(0, 0, 0, .2);
  transform: translateX(-100%);
  transition: transform .3s;
  display: flex;
  flex-direction: column;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer.open .rs-fdrawer-panel { transform: translateX(0); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid #E8E8E8;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer-head h3 {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-fdrawer-body { padding: 0 20px 20px; overflow-y: auto; flex: 1; }
body.rs-filter-open { overflow: hidden; }

.rs-listing:where(:not(.rs-wishlist-page)) .rs-grid-wrap { min-width: 0; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (min-width: 640px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 1024px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-product-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard {
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .06);
  display: flex;
  flex-direction: column;
  min-width: 0;
  transition: box-shadow .3s, transform .3s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard:hover { box-shadow: 0 18px 44px rgba(0, 0, 0, .1); transform: translateY(-3px); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-price { background: transparent; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-name { font-weight: 500; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-name a { color: inherit; text-decoration: none; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-name a:hover { color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-stars span { color: #ddd; font-size: 14px; line-height: 1; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-stars span.on { color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-wish {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .95);
  border: 1px solid rgba(0, 0, 0, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
  padding: 0;
  transition: .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-wish:hover { color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-wish.active { color: var(--crimson); border-color: rgba(165, 28, 48, .4); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-wish svg { width: 17px; height: 17px; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard-wish.active svg { fill: currentColor; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--ink);
  color: #fff;
  font-size: 15px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 13px 16px;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .25s, transform .25s, background .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc svg { width: 16px; height: 16px; flex-shrink: 0; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc .rs-btn-label { min-width: 0; }
@media (max-width: 639px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard { padding: 8px; }
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc {
    left: 8px;
    right: 8px;
    gap: 4px;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 15px;
    letter-spacing: 0;
  }
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc svg { width: 14px; height: 14px; }
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-pcard:hover .rs-card-atc,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc:focus-visible { opacity: 1; transform: none; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc:hover,
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc.added { background: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc:disabled { cursor: not-allowed; background: #6b6b6b; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc:disabled:hover { background: #6b6b6b; }
@media (hover: none), (max-width: 1023px) {
  .rs-listing:where(:not(.rs-wishlist-page)) .rs-card-atc { opacity: 1; transform: none; }
}
body.rs-home .rs-listing:where(:not(.rs-wishlist-page)) button.btn-store.rs-tryon { z-index: 2; max-width: calc(100% - 54px); }
@media (max-width: 520px) {
  body.rs-home .rs-listing:where(:not(.rs-wishlist-page)) button.btn-store.rs-tryon {
    font-size: 12px;
    line-height: 12px;
    padding: 5px 2px;
    gap: 4px;
  }
}

.rs-listing:where(:not(.rs-wishlist-page)) .rs-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  padding: 36px 0 8px;
}
.rs-listing:where(:not(.rs-wishlist-page)) .rs-page-btn {
  min-width: 40px;
  height: 40px;
  padding: 0 9px;
  border-radius: 8px;
  border: 1px solid #E8E8E8;
  background: #fff;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: .2s;
}
.rs-listing:where(:not(.rs-wishlist-page)) a.rs-page-btn:hover { border-color: var(--crimson); color: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-page-btn.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-page-btn.is-disabled { opacity: .4; cursor: not-allowed; }
.rs-listing:where(:not(.rs-wishlist-page)) .rs-page-ellipsis { color: #9a9a9a; padding: 0 4px; font-size: 13px; }

.rs-listing:where(:not(.rs-wishlist-page)) .empty-state { text-align: center; padding: 48px 16px 32px; }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state h3 { font-size: 22px; font-weight: 700; color: var(--ink); }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state p { margin-top: 8px; color: var(--grey); line-height: 1.6; }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state .btn-store { margin-top: 18px; text-decoration: none; }

/* Ethnic empty state: gold double frame, jaali lattice and mandala */
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state.rs-empty-ethnic {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(40px, 6vw, 72px) clamp(28px, 5vw, 64px);
  border: 1px solid var(--gold);
  background-color: var(--paper);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44' fill='none' stroke='%23E6B88A' stroke-opacity='.28'%3E%3Cpath d='M22 2 42 22 22 42 2 22z'/%3E%3Cpath d='M22 15 29 22 22 29 15 22z'/%3E%3C/svg%3E");
}
.rs-empty-ethnic::before,
.rs-empty-ethnic::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.rs-empty-ethnic::before { inset: 10px; border: 1px solid var(--gold); }
.rs-empty-ethnic::after {
  inset: 3px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='%23A51C30' d='M7 0l7 7-7 7-7-7z'/%3E%3C/svg%3E") left top / 14px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='%23A51C30' d='M7 0l7 7-7 7-7-7z'/%3E%3C/svg%3E") right top / 14px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='%23A51C30' d='M7 0l7 7-7 7-7-7z'/%3E%3C/svg%3E") left bottom / 14px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='%23A51C30' d='M7 0l7 7-7 7-7-7z'/%3E%3C/svg%3E") right bottom / 14px no-repeat;
}
.rs-empty-ethnic-motif { order: -1; width: clamp(96px, 14vw, 128px); height: auto; margin-bottom: 22px; }
.rs-empty-ethnic-motif .petal { stroke: var(--crimson); stroke-width: 1.1; fill: var(--paper); }
.rs-empty-ethnic-motif .petal-inner { fill: var(--gold); }
.rs-empty-ethnic-motif .dot { fill: var(--crimson); }
.rs-empty-ethnic-motif .ring { stroke: var(--gold); stroke-width: 1; }
.rs-empty-ethnic-motif .center { fill: var(--crimson); }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state.rs-empty-ethnic h3 { letter-spacing: .01em; }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state.rs-empty-ethnic h3::after {
  content: "";
  display: block;
  width: 120px;
  height: 9px;
  margin: 14px auto 0;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='%23A51C30' d='M7 0l7 7-7 7-7-7z'/%3E%3C/svg%3E") center / 9px no-repeat,
    linear-gradient(90deg, transparent, var(--gold) 45%, var(--gold) 55%, transparent) center / 100% 1px no-repeat;
}
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state.rs-empty-ethnic p { margin-top: 14px; max-width: 420px; }
.rs-listing:where(:not(.rs-wishlist-page)) .empty-state.rs-empty-ethnic .btn-store { margin-top: 24px; }

/* ==========================================================================
   9. Product page

   .modal, .rs-crumb and .rs-toast are also used on other pages, so those selectors
   are scoped to the product page with :where(), which adds no specificity.
   ========================================================================== */
body.rs-home:has(.rs-pdp) { overflow-x: clip; }

.rs-pdp,
.rs-maylike,
:where(body:has(.rs-pdp)) .rs-crumb { font-family: var(--font); }
.rs-pdp button,
.rs-pdp input,
.rs-pdp select,
.rs-pdp textarea,
.rs-maylike button { font-family: inherit; }
.rs-pdp h1,
.rs-pdp h2,
.rs-pdp h3,
.rs-pdp p,
.rs-pdp ul,
.rs-maylike h2,
.rs-maylike h3,
.rs-maylike p { margin: 0; }
.rs-pdp img,
.rs-maylike img { display: block; max-width: 100%; }
.rs-pdp a,
.rs-maylike a { color: inherit; }
:where(body:has(.rs-pdp)) .rs-crumb a,
.rs-maylike .rs-pcard-name a,
.rs-pdp-accords a { text-decoration: none; }
.rs-pdp .sr-only,
.rs-maylike .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rs-pdp { background: #fff; padding: 24px 0 0; }
@media (min-width: 768px) { .rs-pdp { padding: 40px 0 0; } }
.rs-pdp-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; width: 100%; }
.rs-pdp-gallery,
.rs-pdp-info,
.rs-maylike-grid > * { min-width: 0; }
@media (min-width: 1024px) {
  .rs-pdp-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 56px; align-items: start; }
}

:where(body:has(.rs-pdp)) .rs-crumb { background: #fff; padding: 16px 0 0; }
@media (min-width: 768px) { :where(body:has(.rs-pdp)) .rs-crumb { padding: 20px 0 0; } }
:where(body:has(.rs-pdp)) .rs-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
}
@media (min-width: 768px) { :where(body:has(.rs-pdp)) .rs-crumb-list { font-size: 12px; gap: 8px 12px; } }
:where(body:has(.rs-pdp)) .rs-crumb-list li { min-width: 0; max-width: 100%; color: var(--grey); overflow-wrap: break-word; }
:where(body:has(.rs-pdp)) .rs-crumb-list li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  color: rgba(26, 26, 26, .28);
}
@media (min-width: 768px) { :where(body:has(.rs-pdp)) .rs-crumb-list li:not(:last-child)::after { margin-left: 12px; } }
:where(body:has(.rs-pdp)) .rs-crumb-list a { color: var(--grey); transition: color .2s; }
:where(body:has(.rs-pdp)) .rs-crumb-list a:hover { color: var(--crimson); }
:where(body:has(.rs-pdp)) .rs-crumb-list [aria-current="page"] { color: var(--ink); font-weight: 700; letter-spacing: .1em; }

.rs-pdp-gallery { display: flex; flex-direction: column; gap: 12px; align-items: stretch; width: 100%; max-width: 100%; }
.rs-pdp-main { position: relative; flex: 0 0 auto; width: 100%; max-width: 100%; min-width: 0; background: transparent; border-radius: 10px; overflow: hidden; }
.rs-pdp-main img { width: 100%; max-width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; transition: opacity .25s ease, transform .2s ease; }
.rs-pdp-main img.fade { opacity: 0; }
.rs-pdp-main.is-zoomed img { cursor: grab; touch-action: none; user-select: none; }
.rs-pdp-main.is-dragging img { cursor: grabbing; transition: opacity .25s ease; }
.rs-pdp-zoom {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 999px;
}
.rs-pdp-zoom .rs-icon-btn { width: 36px; height: 36px; }
.rs-pdp-zoom .rs-icon-btn:disabled { color: var(--ink); opacity: .35; cursor: default; }
@media (min-width: 1024px) {
  .rs-pdp-gallery { flex-direction: row; align-items: flex-start; gap: 45px; position: sticky; top: 190px; }
  .rs-pdp-main { flex: 0 1 auto; width: min(calc(100% - 129px), calc(100vh - 200px)); aspect-ratio: 1 / 1; }
  .rs-pdp-gallery.is-single .rs-pdp-main { width: min(100%, calc(100vh - 200px)); }
  .rs-pdp-main img { width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover;}
}

.rs-pdp-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; width: 100%; }
@media (min-width: 640px) { .rs-pdp-thumbs { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; } }
@media (min-width: 1024px) {
  .rs-pdp-thumbs {
    display: flex;
    flex-direction: column;
    flex: 0 0 84px;
    width: 84px;
    gap: 10px;
    max-height: calc(100vh - 240px);
    overflow-y: auto;
    scrollbar-width: none;
  }
  .rs-pdp-thumbs::-webkit-scrollbar { display: none; }
}
.rs-pdp-thumb {
  position: relative;
  min-width: 0;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, .1);
  background: var(--paper);
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 1 / 1;
  transition: .2s;
}
.rs-pdp-thumb[hidden] { display: none !important; }
@media (min-width: 1024px) { .rs-pdp-thumb { height: auto; flex-shrink: 0; } }
.rs-pdp-thumb img { width: 100%; max-width: 100%; height: 100%; min-width: 0; object-fit: cover; }
.rs-pdp-thumb:hover { border-color: var(--crimson); }
.rs-pdp-thumb.active { border-color: var(--crimson); box-shadow: 0 0 0 1px var(--crimson); }
.rs-pdp-thumb-more {
  position: absolute;
  inset: 0;
  background: rgba(26, 26, 26, .6);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rs-pdp-thumb-more[hidden] { display: none !important; }

.rs-pdp-info { max-width: 620px; }
@media (max-width: 1023px) { .rs-pdp-info { max-width: none; } }
.rs-pdp-form { margin: 0; }
.rs-pdp-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 24px; }
.rs-pdp-icons { display: flex; align-items: center; gap: 2px; }
.rs-pdp-wish-icon.active { color: var(--crimson); }
.rs-pdp-wish-icon.active svg path { fill: currentColor; }
.rs-pdp-cat { font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--grey); font-weight: 600; }
.rs-pdp-name { font-size: 24px; font-weight: 800; line-height: 1.2; margin: 10px 0 12px; max-width: 100%; white-space: normal; overflow-wrap: break-word; }
.rs-pdp-desc { max-width: 100%; }
@media (min-width: 768px) { .rs-pdp-name { font-size: 32px; } }
.rs-pdp-desc { font-size: 15px; color: var(--grey); line-height: 1.8; margin-bottom: 22px; }
.rs-pdp-rating-jump {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 4px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
}
.rs-pdp-rating-score {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}
.rs-pdp-rating-star {
  width: 14px;
  height: 14px;
  display: block;
  flex: 0 0 auto;
  color: var(--rs-star);
}
.rs-pdp-rating-sep {
  width: 1px;
  height: 14px;
  margin: 0 2px;
  background: #c8c8c8;
  flex: 0 0 auto;
}
.rs-pdp-rating-count {
  font-size: 15px;
  font-weight: 500;
  color: #7c7c7c;
}
.rs-pdp-rating-jump:hover .rs-pdp-rating-count { color: #333; }
.rs-pdp-rating-jump:focus-visible {
  outline: 2px solid var(--crimson);
  outline-offset: 4px;
  border-radius: 2px;
}
.rs-pdp-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; }
.rs-pdp-mrp { font-size: 16px; color: #9a9a9a; text-decoration: line-through; }
.rs-pdp-now { font-size: 24px; font-weight: 800; color: var(--crimson); }
@media (min-width: 768px) { .rs-pdp-now { font-size: 28px; } }
.rs-pdp-off {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(165, 28, 48, .1);
  color: var(--crimson);
}
.rs-pdp-tax { font-size: 12px; color: #9a9a9a; margin-top: 6px; }
/* Title block spacing. Each margin adds to the 5px gap of .appx-flex-column-product-main. */
.rs-pdp .rs-pdp-icons { gap: 14px; }
.rs-pdp .rs-pdp-name { margin-top: 9px; }
.rs-pdp .rs-pdp-rating-jump { margin-top: 7px; }
.rs-pdp .rs-pdp-desc { margin-top: 7px; }
.rs-pdp .rs-pdp-price { margin-top: 13px; }
.rs-pdp-block { margin-top: 26px; }
.rs-pdp-label { font-size: 12px; text-transform: uppercase; letter-spacing: .18em; font-weight: 700; margin-bottom: 12px; }
.rs-pdp-label span { font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: none; color: var(--grey); margin-left: 2px; }
.rs-pdp-colors { display: flex; gap: 12px; flex-wrap: wrap; }
.rs-pdp-color {
  width: 52px;
  height: 64px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, .12);
  background: var(--paper);
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  transition: .2s;
}
.rs-pdp-color img { width: 100%; height: 100%; object-fit: cover; }
.rs-pdp-color:hover { border-color: var(--crimson); }
.rs-pdp-color.active { border-color: var(--crimson); box-shadow: 0 0 0 2px rgba(165, 28, 48, .25); }
.rs-pdp-sizes { display: flex; flex-wrap: wrap; gap: 10px; }
.rs-pdp-size {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
  padding: 12px 26px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(0, 0, 0, .18);
  cursor: pointer;
}
span.rs-pdp-size { display: inline-flex; background: var(--ink); color: #fff; border-color: var(--ink); cursor: default; }
.rs-pdp .size-option {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  line-height: 15.6px;
}
.rs-pdp .size-option.is-selected { background: var(--ink); color: #fff; border-color: var(--ink); }
.rs-pdp .size-option.is-oos,
.rs-pdp .size-option:disabled {
  background: #fff;
  color: #9a9a9a;
  border-color: rgba(0, 0, 0, .12);
  cursor: not-allowed;
}
.rs-pdp .size-option.is-oos .size-option-label,
.rs-pdp .size-option:disabled .size-option-label { text-decoration: line-through; }
.rs-pdp .size-option-stock { font-size: 12px; line-height: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.rs-pdp .size-picker.is-invalid { outline: 2px solid rgba(165, 28, 48, .45); outline-offset: 4px; border-radius: 16px; }
.rs-pdp .size-option[hidden] { display: none !important; }
.rs-pdp-note { font-size: 13px; color: var(--grey); line-height: 1.7; margin-top: 10px; }
.rs-pdp .size-picker-hint { color: var(--crimson); }
.rs-pdp .size-picker-hint[hidden] { display: none !important; }

.rs-pdp-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.rs-pdp-actions svg,
.rs-pdp-buy-row svg { width: 18px; height: 18px; flex-shrink: 0; }
.rs-pdp .rs-pdp-add,
.rs-pdp .rs-pdp-buy,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon {
  justify-content: center;
  width: 100%;
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: 0;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: none;
  backdrop-filter: none;
}
.rs-pdp .rs-pdp-add {
  padding: 17px 27px;
  background: #fff;
  border: 1px solid var(--ink);
  color: var(--ink);
}
.rs-pdp .rs-pdp-add:hover:not(:disabled) { background: var(--ink); color: #fff; }
.rs-pdp .rs-pdp-buy,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon {
  position: static;
  max-width: none;
  padding: 16px 28px;
  background: #fff;
  border: 1px solid var(--ink);
  color: var(--ink);
  text-align: center;
}
.rs-pdp .rs-pdp-buy:hover:not(:disabled),
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.rs-pdp .rs-pdp-buy {
  background: var(--ink);
  color: #fff;
}
.rs-pdp .rs-pdp-buy:hover:not(:disabled) {
  background: var(--grey);
  border-color: var(--grey);
}
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M4 9V5h4M16 5h4v4M20 15v4h-4M8 19H4v-4'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M4 9V5h4M16 5h4v4M20 15v4h-4M8 19H4v-4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.rs-pdp .rs-pdp-add:disabled,
.rs-pdp .rs-pdp-buy:disabled { opacity: .55; cursor: not-allowed; }

.rs-pdp-qty-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 22px; }
.rs-pdp-qty { display: inline-flex; align-items: center; border: 1px solid rgba(0, 0, 0, .18); border-radius: 999px; overflow: hidden; }
.rs-pdp-qty button {
  width: 44px;
  height: 46px;
  background: #fff;
  border: none;
  font-size: 18px;
  line-height: 1;
  color: var(--ink);
  cursor: pointer;
  transition: .2s;
}
.rs-pdp-qty button:hover:not(:disabled) { color: var(--crimson); }
.rs-pdp-qty button:disabled { color: #b5b5b5; cursor: not-allowed; }
.rs-pdp-qty input {
  width: 42px;
  min-width: 42px;
  height: 46px;
  border: none;
  background: transparent;
  text-align: center;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  padding: 0;
  -moz-appearance: textfield;
}
.rs-pdp-qty input::-webkit-outer-spin-button,
.rs-pdp-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rs-pdp-qty input:focus { outline: none; }
.rs-pdp-stock { font-size: 13px; color: var(--grey); }

/* Add to Cart / Buy now share the quantity row, and drop below it when the column is too narrow. */
.rs-pdp-qty-row { gap: 12px; }
.rs-pdp-qty-row .rs-pdp-qty { flex: 0 0 auto; }
.rs-pdp-qty-row .rs-pdp-stock { order: 3; flex: 0 0 100%; }
.rs-pdp-qty-row .rs-pdp-stock:empty { display: none; }
.rs-pdp-buy-row { flex: 1 1 320px; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rs-pdp-buy-row .rs-pdp-add,
.rs-pdp-buy-row .rs-pdp-buy { min-height: 48px; padding: 0 16px; white-space: nowrap; }
@media (max-width: 380px) {
  .rs-pdp-buy-row .rs-pdp-add,
  .rs-pdp-buy-row .rs-pdp-buy { padding: 0 10px; font-size: 14px; gap: 6px; }
}

.rs-pdp-divider { border: none; border-top: 1px solid #E8E8E8; margin: 32px 0 0; }

.rs-acc { border-bottom: 1px solid #E8E8E8; }
.rs-acc-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink);
  transition: .2s;
}
.rs-acc-head:hover { color: var(--crimson); }
.rs-acc-ic { font-size: 18px; line-height: 1; color: var(--crimson); transition: transform .3s; }
.rs-acc.open .rs-acc-ic { transform: rotate(45deg); }
.rs-acc-body { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.rs-acc.is-open .rs-acc-body { max-height: none; }
.rs-acc-inner { padding: 0 0 22px; font-size: 14px; color: var(--grey); line-height: 1.9; }
.rs-acc-inner ul { list-style: none; padding: 0; }
.rs-acc-inner li { position: relative; padding-left: 16px; margin-bottom: 8px; }
.rs-acc-inner li::before { content: "•"; position: absolute; left: 0; color: var(--crimson); }
.rs-acc-inner a { color: var(--crimson); }
.rs-acc-inner a:hover { text-decoration: underline; }

.rs-pdp-review p { margin: 0 0 14px; }
.rs-review-form { display: grid; gap: 14px; margin-bottom: 22px; }
.rs-review-form h3 { font-size: 16px; font-weight: 700; color: var(--ink); }
.rs-review-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; color: var(--ink); }
.rs-review-form input,
.rs-review-form select,
.rs-review-form textarea {
  width: 100%;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
}
.rs-review-form textarea { resize: vertical; }
.rs-review-form .rs-btn { width: auto; padding: 12px 15px; }
.rs-review-list { display: grid; gap: 16px; }
.rs-review { padding-bottom: 16px; border-bottom: 1px solid #E8E8E8; }
.rs-review:last-child { border-bottom: 0; padding-bottom: 0; }
.rs-review strong { color: var(--ink); }
.rs-review-stars { display: block; color: var(--crimson); letter-spacing: .08em; margin-top: 4px; }
.rs-review-title { color: var(--ink); font-weight: 600; margin-top: 6px; }
.rs-review p { margin: 6px 0 0; }
.rs-review-empty { margin: 0; }

.rs-maylike { background: var(--paper); margin-top: 56px; }
@media (min-width: 768px) { .rs-maylike { margin-top: 88px; } }
.rs-maylike-inner { padding-bottom: 64px; }
@media (min-width: 768px) { .rs-maylike-inner { padding-bottom: 96px; } }
.rs-maylike .rs-h2 { margin: 0; }
.rs-maylike-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
@media (min-width: 1024px) { .rs-maylike-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; } }
.rs-maylike .rs-price { background: transparent; }
.rs-maylike .rs-pcard {
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .06);
  display: flex;
  flex-direction: column;
  min-width: 0;
  transition: box-shadow .3s, transform .3s;
}
.rs-maylike .rs-pcard:hover { box-shadow: 0 18px 44px rgba(0, 0, 0, .1); transform: translateY(-3px); }
.rs-maylike .rs-pcard-cat { margin-top: 12px; text-align: center; font-weight: 600; }
.rs-maylike .rs-pcard-name { font-weight: 500; }
.rs-maylike .rs-pcard-name a:hover { color: var(--crimson); }
.rs-maylike .rs-stars span { color: #ddd; font-size: 14px; line-height: 1; }
.rs-maylike .rs-stars span.on { color: var(--crimson); }
.rs-maylike .rs-pcard-wish {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .95);
  border: 1px solid rgba(0, 0, 0, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
  padding: 0;
  transition: .2s;
}
.rs-maylike .rs-pcard-wish:hover { color: var(--crimson); }
.rs-maylike .rs-pcard-wish.active { color: var(--crimson); border-color: rgba(165, 28, 48, .4); }
.rs-maylike .rs-pcard-wish svg { width: 17px; height: 17px; }
.rs-maylike .rs-pcard-wish.active svg { fill: currentColor; }
.rs-maylike .rs-card-atc {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--ink);
  color: #fff;
  font-size: 15px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 13px 16px;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .25s, transform .25s, background .2s;
}
.rs-maylike .rs-card-atc svg { width: 16px; height: 16px; flex-shrink: 0; }
.rs-maylike .rs-pcard:hover .rs-card-atc,
.rs-maylike .rs-card-atc:focus-visible { opacity: 1; transform: none; }
.rs-maylike .rs-card-atc:hover,
.rs-maylike .rs-card-atc.added { background: var(--crimson); }
.rs-maylike .rs-card-atc:disabled { cursor: not-allowed; background: #6b6b6b; }
.rs-maylike .rs-card-atc:disabled:hover { background: #6b6b6b; }
@media (hover: none), (max-width: 1023px) { .rs-maylike .rs-card-atc { opacity: 1; transform: none; } }
body.rs-home .rs-maylike button.btn-store.rs-tryon { z-index: 2; max-width: calc(100% - 54px); }

:where(body:has(.rs-pdp)) .rs-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translate(-50%, 16px);
  background: var(--ink);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
  opacity: 0;
  pointer-events: none;
  transition: .3s;
  z-index: 70;
}
:where(body:has(.rs-pdp)) .rs-toast.show { opacity: 1; transform: translate(-50%, 0); }

.rs-size-chart-link {
  display: inline-flex;
  margin-top: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--crimson);
  font-family: inherit;
  font-size: 15px;
  line-height: 18px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.rs-size-chart-link:hover { color: var(--crimson-d); }
.rs-pdp-sizes + .rs-size-chart-link,
.rs-pdp-note + .rs-size-chart-link { margin-top: 12px; }

/* Size Chart sits on the "Size" label row, right-aligned. */
.rs-pdp-block:has(> .rs-size-chart-link) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}
.rs-pdp-block:has(> .rs-size-chart-link) > * { grid-column: 1 / -1; }
.rs-pdp-block:has(> .rs-size-chart-link) > .rs-pdp-label {
  grid-column: 1;
  align-self: baseline;
}
.rs-pdp-block:has(> .rs-size-chart-link) > .rs-size-chart-link {
  grid-column: 2;
  grid-row: 1;
  align-self: baseline;
  margin-top: 0;
}

/* Bootstrap 5 modal behavior for the size chart. Full Bootstrap CSS is not loaded, so the storefront theme stays intact. */
:where(body:has(.rs-pdp)) .modal {
  position: fixed;
  inset: 0;
  z-index: 1055;
  display: none;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
:where(body:has(.rs-pdp)) .modal.fade { opacity: 0; transition: opacity .15s linear; }
:where(body:has(.rs-pdp)) .modal.show { opacity: 1; }
:where(body:has(.rs-pdp)) .modal-dialog {
  position: relative;
  width: auto;
  margin: .5rem;
  pointer-events: none;
}
:where(body:has(.rs-pdp)) .modal.fade .modal-dialog {
  transition: transform .3s ease-out;
  transform: translateY(-40px);
}
:where(body:has(.rs-pdp)) .modal.show .modal-dialog { transform: none; }
:where(body:has(.rs-pdp)) .modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}
:where(body:has(.rs-pdp)) .modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background: #fff;
  outline: 0;
}
:where(body:has(.rs-pdp)) .modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1050;
  width: 100vw;
  height: 100vh;
  background: #000;
}
:where(body:has(.rs-pdp)) .modal-backdrop.fade { opacity: 0; transition: opacity .15s linear; }
:where(body:has(.rs-pdp)) .modal-backdrop.show { opacity: .45; }
body.modal-open:where(:has(.rs-pdp)) { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  :where(body:has(.rs-pdp)) .modal.fade,
  :where(body:has(.rs-pdp)) .modal.fade .modal-dialog,
  :where(body:has(.rs-pdp)) .modal-backdrop.fade { transition: none; }
}

.rs-size-modal .modal-dialog {
  width: min(760px, calc(100% - 32px));
  max-width: 760px;
  margin: 1.75rem auto;
}
.rs-size-modal .modal-dialog-centered { min-height: calc(100% - 3.5rem); }
.rs-size-modal .modal-content {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .22);
  padding: 36px 28px 32px;
}
.rs-size-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #f6f3f0;
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.rs-size-modal-close:hover { background: #efe8e3; }
.rs-size-modal-kicker {
  margin: 0;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--grey);
}
.rs-size-modal-heading {
  margin: 10px 0 0;
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
}
.rs-size-table-wrap {
  overflow-x: auto;
  margin-top: 24px;
  -webkit-overflow-scrolling: touch;
}
.rs-size-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: 14px;
}
.rs-size-table th,
.rs-size-table td {
  border: 1px solid #eadfd6;
  padding: 12px 14px;
  text-align: center;
  white-space: nowrap;
}
.rs-size-table th {
  background: #faf6f3;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rs-size-table th .rs-size-unit {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
}
.rs-size-table tbody tr:nth-child(even) td { background: #fffdfb; }
@media (max-width: 640px) {
  .rs-size-modal .modal-content { padding: 32px 16px 20px; }
  .rs-size-modal-heading { font-size: 22px; }
}


/* ==========================================================================
   10. Ratings and reviews (product page, reviews page)
   ========================================================================== */
/* Ratings accordion uses the same .rs-acc chrome as Product Details. */
.rs-pdp-ratings-body { padding: 0 0 22px; }
#reviews { scroll-margin-top: 128px; }
@media (min-width: 768px) {
  #reviews { scroll-margin-top: 156px; }
}
.rs-pdp .pdp-rate-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  color: #388e3c;
  font-weight: 700;
}
.rs-pdp .pdp-rate-score strong { font-size: 22px; line-height: 1; }
.rs-pdp .pdp-rate-star { font-size: 16px; }
.rs-pdp .pdp-rate-word { font-size: 16px; }
.rs-pdp .pdp-rate-based {
  margin: 4px 0 0;
  font-size: 13px;
  color: #878787;
}
.rs-pdp .pdp-rate-verified { color: #878787; }
.rs-pdp .pdp-rate-photos {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  margin-top: 14px;
}
.rs-pdp .pdp-rate-photos img {
  width: 72px;
  height: 88px;
  object-fit: cover;
  border-radius: 6px;
  flex: 0 0 auto;
  background: #f5f5f5;
}
.rs-pdp .pdp-rate-loved {
  margin: 16px 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: #212121;
}
.rs-pdp .pdp-rate-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-pdp .pdp-rate-chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 16px;
  background: #f0f5ff;
  color: #212121;
  font-size: 13px;
  font-weight: 500;
}
.rs-pdp .pdp-rate-chip:hover { background: #e3edff; }
.rs-pdp .pdp-rate-carousel {
  position: relative;
  margin-top: 16px;
  min-width: 0;
}
.rs-pdp .pdp-rate-track {
  display: flex;
  gap: 12px;
  min-width: 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.rs-pdp .pdp-rate-track::-webkit-scrollbar { display: none; }
.rs-pdp .pdp-rate-card {
  flex: 0 0 calc((100% - 12px) / 2 + 6px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  border: 1px solid #e8e8e8;
  border-radius: 4px;
  padding: 12px 14px 12px;
  min-width: 0;
  background: #fff;
}
@media (prefers-reduced-motion: reduce) {
  .rs-pdp .pdp-rate-track { scroll-behavior: auto; }
}
.rs-pdp .pdp-rate-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.rs-pdp .pdp-rate-card-score {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  color: #212121;
  font-size: 14px;
  font-weight: 600;
}
.rs-pdp .pdp-rate-card-score b {
  flex: 0 0 auto;
  color: #388e3c;
  font-weight: 700;
}
.rs-pdp .pdp-rate-card-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.rs-pdp .pdp-rate-card-top time { flex: 0 0 auto; color: #878787; font-size: 12px; white-space: nowrap; }
.rs-pdp .pdp-rate-card-copy {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.45;
  color: #212121;
}
.rs-pdp .pdp-rate-card-copy.is-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rs-pdp .pdp-rate-more {
  border: 0;
  background: none;
  padding: 0;
  margin-top: 2px;
  color: #2874f0;
  font-size: 15px;
  line-height: 18px;
  font-weight: 600;
  cursor: pointer;
}
.rs-pdp .pdp-rate-card-photos {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  overflow-x: auto;
}
.rs-pdp .pdp-rate-card-photos a {
  display: block;
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 6px;
  background: #f5f5f5;
}
.rs-pdp .pdp-rate-card-photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rs-pdp .pdp-rate-card-name {
  margin: 12px 0 0;
  font-size: 14px;
  font-weight: 500;
  color: #212121;
}
.rs-pdp .pdp-rate-card-buyer {
  margin: 2px 0 0;
  font-size: 12px;
  color: #878787;
}
.rs-pdp .pdp-rate-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid #eee;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .16);
  color: #212121;
  cursor: pointer;
  transform: translateY(-50%);
}
.rs-pdp .pdp-rate-prev { left: 6px; }
.rs-pdp .pdp-rate-next { right: 6px; }
.rs-pdp .pdp-rate-nav svg { width: 18px; height: 18px; display: block; }
.rs-pdp .pdp-rate-nav:hover:not(:disabled) { color: #000; }
.rs-pdp .pdp-rate-nav:focus-visible {
  outline: 2px solid #212121;
  outline-offset: 2px;
}
.rs-pdp .pdp-rate-nav:disabled { display: none; }
.rs-pdp #reviews:has(+ .pdp-rate-all) { border-bottom: 0; }
.rs-pdp .pdp-rate-all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 14px 0 16px;
  border-bottom: 1px solid #E8E8E8;
  color: #212121;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
.rs-pdp .pdp-rate-all:hover { color: #2874f0; }
.rs-pdp .rs-ratings-form { margin-top: 16px; padding-top: 14px; border-top: 1px solid #f0f0f0; }
.rs-pdp .rs-ratings-form > p { margin: 0; color: var(--grey); font-size: 14px; line-height: 1.6; }
.rs-pdp .rs-ratings-form > p a { color: var(--crimson); }

/* Ratings and reviews. Scoped so the shared header and footer keep their own styles. */

.rs-review-ui {
  font-family: var(--font);
  color: var(--ink);
}
.rs-review-ui h1,
.rs-review-ui h2,
.rs-review-ui h3,
.rs-review-ui p { margin: 0; }
.rs-review-ui a { color: inherit; text-decoration: none; }
.rs-review-ui button,
.rs-review-ui input,
.rs-review-ui select,
.rs-review-ui textarea { font-family: inherit; }
.rs-review-ui img { display: block; max-width: 100%; }
.rs-review-ui .row.align-items-start { align-items: flex-start; }

.rs-ratings,
#write-review { scroll-margin-top: 180px; }
.rs-ratings { padding: 48px 0 24px; }
@media (min-width: 768px) { .rs-ratings { padding: 72px 0 32px; } }
.rs-ratings-head { margin-bottom: 28px; }
.rs-ratings-head .rs-eyebrow { margin-bottom: 8px; }
.rs-ratings-head .rs-h2 span,
.review-page-heading .rs-h2 span { color: var(--crimson); }

.rs-review-ui .rating-summary {
  border: 1px solid #eee4dd;
  border-radius: 12px;
  padding: 18px;
  background: #fff;
}
.rs-review-ui .rating-summary-top {
  text-align: center;
  padding: 2px 0 15px;
  border-bottom: 1px solid #eee9e4;
}
.rs-review-ui .rating-big {
  font-size: 38px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.05em;
}
.rs-review-ui .rating-outof { font-size: 13px; color: #8a8a8a; margin-left: 3px; }
.rs-review-ui .summary-stars { color: var(--rs-star); font-size: 18px; letter-spacing: 3px; margin: 6px 0 4px; }
.rs-review-ui .summary-stars i,
.rs-review-ui .stars-inline i,
.rs-review-ui .review-stars i { font-style: normal; color: #dedbd5; }
.rs-review-ui .rating-summary-top p { font-size: 11px; color: #777; }
.rs-review-ui .rating-summary-top p strong { color: var(--ink); }
.rs-review-ui .rating-bars { display: flex; flex-direction: column; gap: 11px; margin: 15px 0 13px; }
.rs-review-ui .rating-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 22px;
  gap: 8px;
  align-items: center;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  text-align: left;
  color: #5c5c5c;
  font-size: 11px;
}
.rs-review-ui .rating-row > span:first-child { white-space: nowrap; }
.rs-review-ui .rating-row > span b { color: var(--rs-star); }
.rs-review-ui .rating-row small { font-size: 10px; text-align: right; color: #777; }
.rs-review-ui .rating-track { height: 6px; border-radius: 8px; background: #f0eeeb; overflow: hidden; }
.rs-review-ui .rating-track i { display: block; height: 100%; border-radius: 8px; background: #c69a5c; }
.rs-review-ui .rating-row:hover .rating-track,
.rs-review-ui .rating-row.active .rating-track { outline: 2px solid #dfc6a1; outline-offset: 2px; }
.rs-review-ui .rating-row.active > span:first-child { color: var(--crimson); font-weight: 800; }
.rs-review-ui .clear-filter,
.rs-review-ui .show-all-reviews {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #e4d8cf;
  border-radius: 7px;
  background: #fff;
  padding: 9px 11px;
  color: var(--crimson);
  font-size: 11px;
  font-weight: 700;
}
.rs-review-ui .clear-filter:hover,
.rs-review-ui .show-all-reviews:hover { background: var(--paper); }
.rs-ratings .show-all-reviews {
  width: auto;
  min-width: 220px;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  padding: 12px 22px;
  font-size: 13px;
}
.rs-ratings-more { display: flex; justify-content: center; margin-top: 18px; }

.rs-review-ui .customer-photos { margin-bottom: 22px; }
.rs-review-ui .customer-photos h3,
.rs-review-ui .review-topics h3 {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 12px;
  color: var(--ink);
}
.rs-review-ui .customer-photos-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.rs-review-ui .customer-photos-row img {
  width: 74px;
  height: 96px;
  object-fit: cover;
  border-radius: 8px;
  flex: 0 0 auto;
  background: var(--paper);
}
.rs-review-ui .topic-list { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-review-ui .topic-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #e4d8cf;
  border-radius: 999px;
  padding: 8px 14px;
  background: #fff;
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
}
.rs-review-ui .topic-chip span { color: var(--crimson); font-size: 12px; }
.rs-review-ui .topic-chip:hover { border-color: var(--crimson); color: var(--crimson); background: #fff8f8; }

.rs-ratings .pdp-review-list { margin-top: 28px; }
.rs-review-ui .review-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 0 13px;
  border-bottom: 1px solid #e9e5e1;
}
.rs-review-ui .review-list-head h2 { font-size: 17px; font-weight: 800; line-height: 1.3; }
.rs-review-ui .review-list-head h2 span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: 2px;
  min-width: 21px;
  height: 21px;
  margin-left: 4px;
  padding: 0 5px;
  border-radius: 20px;
  background: var(--paper);
  color: var(--crimson);
  font-size: 10px;
}
.rs-review-ui .review-list-head p { font-size: 10px; color: #777; margin-top: 3px; }
.rs-review-ui .customer-review { padding: 17px 1px 15px; border-bottom: 1px solid #eee9e4; min-width: 0; }
.rs-review-ui .customer-review-top { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rs-review-ui .reviewer-avatar {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  flex: 0 0 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0dfe0;
  color: #7c2231;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .02em;
  overflow: hidden;
}
.rs-review-ui .avatar-rose { background: #eadfdc; color: #85594e; }
.rs-review-ui .avatar-gold { background: #f1e7d1; color: #82622b; }
.rs-review-ui .reviewer-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rs-review-ui .reviewer-detail { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rs-review-ui .reviewer-detail strong { font-size: 12px; }
.rs-review-ui .reviewer-detail > span { font-size: 10px; color: #858585; }
.rs-review-ui .verified-label {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 4px;
  color: #59806b;
  font-size: 9px;
  white-space: nowrap;
}
.rs-review-ui .verified-label > span {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e4f0e8;
  color: #35724d;
  font-weight: 800;
  font-size: 9px;
}
.rs-review-ui .review-card-rating { display: flex; align-items: center; gap: 7px; margin-top: 11px; }
.rs-review-ui .review-stars { font-size: 12px; letter-spacing: 1px; color: var(--rs-star); }
.rs-review-ui .review-rating-badge {
  font-size: 9px;
  color: #74634e;
  background: #f6f0e5;
  padding: 3px 5px;
  border-radius: 4px;
  font-weight: 800;
}
.rs-review-ui .customer-review h3 { font-size: 13px; line-height: 1.4; margin: 7px 0 4px; font-weight: 800; }
.rs-review-ui .review-copy { font-size: 12px; color: #626262; line-height: 1.65; max-width: 760px; }
.rs-review-ui .review-photo-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.rs-review-ui .review-photo-grid a {
  display: block;
  width: 84px;
  height: 84px;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid #eadfd8;
  background: #f4ece6;
}
.rs-review-ui .review-photo-grid img { width: 100%; height: 100%; object-fit: cover; }
.rs-review-ui .review-card-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 11px; color: #999; font-size: 10px; }
.rs-review-empty { margin: 18px 0 0; color: var(--grey); font-size: 14px; }

.rs-ratings-form { margin-top: 36px; padding-top: 28px; border-top: 1px solid #eee4dd; }
.rs-ratings-form > p { color: var(--grey); font-size: 14px; line-height: 1.7; }
.rs-ratings-form > p a { color: var(--crimson); }
.rs-ratings-form > p a:hover { text-decoration: underline; }

.review-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  padding-top: 20px;
  padding-bottom: 16px;
  font-size: 11px;
  color: #777;
}
.review-breadcrumb a:hover { color: var(--crimson); }
.review-breadcrumb strong { color: var(--ink); font-weight: 700; }
.review-page { padding-bottom: 64px; }
.review-page-heading { padding: 12px 0 22px; }
.review-page-heading .rs-eyebrow { margin-bottom: 8px; }
.review-page-heading .rs-h2 { font-size: 30px; line-height: 1.15; }
.review-intro { font-size: 13px; color: var(--grey); margin-top: 8px; line-height: 1.6; }

.rs-review-ui .review-product {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: var(--paper);
  border: 1px solid #eae3dc;
  border-radius: 12px;
  margin-bottom: 24px;
}
.rs-review-ui .review-product-photo,
.rs-review-ui .review-product-art {
  height: 86px;
  width: 74px;
  border-radius: 6px;
  object-fit: cover;
}
.rs-review-ui .review-product-art {
  position: relative;
  overflow: hidden;
  background: linear-gradient(115deg, #651326 0%, #a51c30 34%, #7d1026 56%, #bd4756 76%, #6d1426 100%);
  box-shadow: inset 7px 0 #d8a269, inset -7px 0 #d8a269;
}
.rs-review-ui .review-product-art::before {
  content: "";
  position: absolute;
  inset: 7px 12px;
  border: 1px solid #eac48e8a;
}
.rs-review-ui .product-art-motif { position: absolute; top: 18px; left: 29px; color: #f0d3a0; font-size: 17px; }
.rs-review-ui .product-art-line { position: absolute; left: 0; right: 0; bottom: 19px; height: 4px; background: #e6b88a; }
.rs-review-ui .product-art-caption {
  position: absolute;
  bottom: 5px;
  left: 0;
  right: 0;
  color: #fff8e9;
  font-family: Georgia, serif;
  font-size: 5px;
  letter-spacing: .16em;
  text-align: center;
}
.rs-review-ui .review-kicker { font-size: 9px; letter-spacing: .18em; color: var(--crimson); font-weight: 800; text-transform: uppercase; }
.rs-review-ui .review-product-info h2 { font-size: 16px; line-height: 1.35; margin: 5px 0; color: var(--ink); }
.rs-review-ui .review-product-info p { font-size: 11px; color: #777; margin-bottom: 8px; }
.rs-review-ui .product-rating-line { display: flex; align-items: center; gap: 7px; font-size: 11px; }
.rs-review-ui .stars-inline { color: var(--rs-star); letter-spacing: 1px; font-size: 13px; }
.rs-review-ui .product-rating-line strong { font-size: 12px; }
.rs-review-ui .muted { color: #858585; }
.rs-review-ui .review-product-price {
  padding-left: 20px;
  border-left: 1px solid #e7ded4;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 112px;
}
.rs-review-ui .review-product-price span { font-size: 10px; color: #777; }
.rs-review-ui .review-product-price strong { font-size: 18px; }
.rs-review-ui .review-product-price s { display: block; font-size: 12px; font-weight: 500; color: #9a9a9a; }
.rs-review-ui .review-product-price a { font-size: 10px; color: var(--crimson); font-weight: 700; margin-top: 2px; }

.rs-review-ui .review-list-panel { min-width: 0; }
.rs-review-ui .review-sort { display: flex; align-items: center; gap: 7px; color: #777; font-size: 10px; white-space: nowrap; position: relative; }
.rs-review-ui .review-sort select {
  font: 600 11px var(--font);
  color: var(--ink);
  padding: 8px 24px 8px 10px;
  background: #fff;
  border: 1px solid #e4ded9;
  border-radius: 7px;
  max-width: 145px;
}
.rs-review-ui .sort-apply {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.rs-review-ui .review-list-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 13px;
  font-size: 10px;
  color: #999;
}
.rs-review-ui .text-link { display: inline-flex; align-items: center; gap: 5px; color: var(--crimson); font-size: 11px; font-weight: 700; }
.rs-review-ui .text-link:hover { text-decoration: underline; }
.rs-review-ui .no-reviews {
  padding: 35px 12px;
  text-align: center;
  border: 1px dashed #e4d8cf;
  border-radius: 10px;
  margin-top: 14px;
  color: #777;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  font-size: 12px;
}
.rs-review-ui .no-reviews > span { font-size: 26px; color: var(--rs-star); }
.rs-review-ui .no-reviews a { color: var(--crimson); font-size: 11px; font-weight: 700; }

.rs-reviews .rs-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  padding: 18px 0 8px;
}
.rs-reviews .rs-page-btn {
  min-width: 40px;
  height: 40px;
  padding: 0 9px;
  border-radius: 8px;
  border: 1px solid #E8E8E8;
  background: #fff;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.rs-reviews a.rs-page-btn:hover { border-color: var(--crimson); color: var(--crimson); }
.rs-reviews .rs-page-btn.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.rs-reviews .rs-page-btn.is-disabled { opacity: .4; }
.rs-reviews .rs-page-ellipsis { color: #9a9a9a; padding: 0 4px; font-size: 13px; }

@media (max-width: 991.98px) {
  .rs-review-ui .rating-summary-top {
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    justify-content: start;
    gap: 10px;
    text-align: left;
    padding-bottom: 10px;
  }
  .rs-review-ui .rating-big { font-size: 30px; }
  .rs-review-ui .summary-stars { font-size: 15px; letter-spacing: 1px; margin: 0; }
  .rs-review-ui .rating-summary-top p { grid-column: 1 / -1; }
  .rs-review-ui .rating-bars { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 12px; }
}

@media (max-width: 767px) {
  .review-page { padding-bottom: 40px; }
  .review-breadcrumb { padding-top: 14px; padding-bottom: 12px; font-size: 10px; }
  .review-page-heading .rs-h2 { font-size: 29px; }
  .rs-review-ui .review-product { grid-template-columns: 62px minmax(0, 1fr); gap: 12px; padding: 12px; }
  .rs-review-ui .review-product-photo,
  .rs-review-ui .review-product-art { width: 62px; height: 78px; }
  .rs-review-ui .review-product-info h2 { font-size: 14px; }
  .rs-review-ui .review-product-price {
    grid-column: 2;
    border: 0;
    border-top: 1px solid #e6ded6;
    padding: 9px 0 0;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 4px 10px;
    min-width: 0;
  }
  .rs-review-ui .review-product-price span { grid-column: 1; }
  .rs-review-ui .review-product-price strong { grid-column: 2; grid-row: 1 / 3; font-size: 16px; }
  .rs-review-ui .review-product-price a { grid-column: 1; }
  .rs-review-ui .review-list-head { align-items: flex-start; flex-direction: column; }
  .rs-review-ui .review-sort { align-self: flex-end; }
  .rs-review-ui .review-sort select { max-width: 170px; }
  .rs-review-ui .review-list-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 380px) {
  .rs-review-ui .rating-bars { grid-template-columns: 1fr; }
  .rs-review-ui .review-product { grid-template-columns: 54px minmax(0, 1fr); }
  .rs-review-ui .review-product-photo,
  .rs-review-ui .review-product-art { width: 54px; height: 72px; }
}


/* ==========================================================================
   11. Cart, checkout and order confirmation

   Every selector is rooted at .rs-checkout, so no extra page scoping is needed.
   These pages load Bootstrap grid and utilities after this file. The selectors
   here out-rank Bootstrap's single-class rules, so they still win.
   ========================================================================== */
.rs-checkout {
  --checkout-border: #eadfd8;
  --checkout-muted: #766c68;
  --checkout-soft: #fbf5f0;
  --checkout-shadow: 0 16px 45px rgba(56, 27, 23, 0.07);
  color: var(--ink);
  font-family: var(--font);
}

.rs-checkout h1,
.rs-checkout h2,
.rs-checkout h3,
.rs-checkout p { margin: 0; }

.rs-checkout a { color: inherit; text-decoration: none; }
.rs-checkout button,
.rs-checkout input,
.rs-checkout select,
.rs-checkout textarea { font-family: inherit; }
.rs-checkout img { display: block; max-width: 100%; }
.rs-checkout [hidden] { display: none !important; }

.rs-checkout .checkout-main {
  max-width: 1320px;
  margin: 0 auto;
  padding: 34px 22px 80px;
}

.rs-checkout .checkout-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}

.rs-checkout .checkout-intro h1 {
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.rs-checkout .checkout-intro h1 span { color: var(--crimson); }

.rs-checkout .checkout-intro p.sub {
  font-size: 14px;
  color: var(--checkout-muted);
  margin-top: 9px;
}

.rs-checkout .secure-note {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #5d7464;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.rs-checkout .secure-note svg { width: 17px; height: 17px; }

.rs-checkout .checkout-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--checkout-soft);
  border: 1px solid var(--checkout-border);
  border-radius: 14px;
  padding: 14px 18px;
  margin-bottom: 28px;
  gap: 6px;
}

.rs-checkout .checkout-step {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  color: #a39892;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: none;
  border: 0;
  cursor: default;
  text-decoration: none;
}

.rs-checkout .checkout-step .step-no {
  width: 28px;
  height: 28px;
  border: 1px solid #d9cbc2;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 11px;
  background: #fff;
  flex: 0 0 28px;
}

.rs-checkout .checkout-step.done,
.rs-checkout .checkout-step.current { color: var(--crimson); }

.rs-checkout .checkout-step.done .step-no,
.rs-checkout .checkout-step.current .step-no {
  background: var(--crimson);
  border-color: var(--crimson);
  color: #fff;
}

.rs-checkout a.checkout-step.done { cursor: pointer; }

.rs-checkout .checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: 26px;
  align-items: start;
}

.rs-checkout .checkout-layout.confirmed { grid-template-columns: minmax(0, 1fr); }

.rs-checkout .checkout-panel,
.rs-checkout .summary-card {
  border: 1px solid var(--checkout-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--checkout-shadow);
}

.rs-checkout .checkout-panel { padding: 26px; min-height: 380px; }

.rs-checkout .panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
}

.rs-checkout .panel-heading h2,
.rs-checkout .checkout-block h2 {
  font-size: 23px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.025em;
}


.rs-checkout .panel-heading p {
  font-size: 13px;
  color: var(--checkout-muted);
  margin-top: 6px;
  line-height: 1.55;
}

.rs-checkout .panel-kicker {
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--crimson);
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.rs-checkout .count-accent { color: var(--crimson); }

.rs-checkout .panel-heading-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.rs-checkout .panel-heading-actions form { margin: 0; }

.rs-checkout .text-action {
  border: 0;
  background: none;
  color: var(--crimson);
  font: 700 14px/17px var(--font);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 0;
}

.rs-checkout .cart-lines { display: flex; flex-direction: column; }

.rs-checkout .cart-line {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid #f0e9e4;
  align-items: center;
}

.rs-checkout .cart-line:first-child { padding-top: 0; }
.rs-checkout .cart-line:last-child { border-bottom: 0; }

.rs-checkout .cart-photo {
  width: 104px;
  height: 126px;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(145deg, #f2e3dc, #f7f1e9);
  position: relative;
}

.rs-checkout .cart-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.rs-checkout .cart-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(90, 54, 40, 0.07);
  border-radius: 10px;
  pointer-events: none;
}

.rs-checkout .cart-copy { min-width: 0; }

.rs-checkout .cart-brand {
  font-size: 9px;
  letter-spacing: 0.17em;
  color: var(--crimson);
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 7px;
}

.rs-checkout .cart-copy h3 {
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
  margin-bottom: 7px;
}

.rs-checkout .cart-copy h3 a:hover { color: var(--crimson); }

.rs-checkout .cart-variant {
  font-size: 12px;
  color: var(--checkout-muted);
  line-height: 1.5;
}

.rs-checkout .cart-price-line {
  display: flex;
  align-items: baseline;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.rs-checkout .cart-price-line strong { font-size: 15px; font-weight: 800; }
.rs-checkout .cart-price-line del { font-size: 12px; color: #a49a94; }
.rs-checkout .cart-price-line .save { font-size: 10px; color: #477554; font-weight: 800; }

.rs-checkout .cart-controls {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 13px;
}

.rs-checkout .qty-control {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--checkout-border);
  border-radius: 30px;
  overflow: hidden;
  height: 31px;
  background: #fff;
}

.rs-checkout .qty-control button {
  width: 29px;
  height: 29px;
  border: 0;
  background: #fff;
  color: var(--ink);
  font-size: 16px;
  cursor: pointer;
  line-height: 1;
}

.rs-checkout .qty-control button:hover { color: var(--crimson); background: var(--checkout-soft); }

.rs-checkout .qty-control input[data-cart-qty] {
  width: 32px;
  min-width: 25px;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  padding: 0;
  height: 29px;
  -moz-appearance: textfield;
  appearance: textfield;
}

.rs-checkout .qty-control input[data-cart-qty]::-webkit-outer-spin-button,
.rs-checkout .qty-control input[data-cart-qty]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.rs-checkout .qty-control:has(input:disabled) button {
  pointer-events: none;
  opacity: 0.55;
}

.rs-checkout .remove-item {
  border: 0;
  background: none;
  color: #9d8f88;
  font-size: 13px;
  line-height: 15px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}

.rs-checkout .remove-item:hover { color: var(--crimson); }

.rs-checkout .line-total {
  text-align: right;
  white-space: nowrap;
  align-self: start;
  padding-top: 5px;
}

.rs-checkout .line-total small {
  display: block;
  font-size: 9px;
  color: var(--checkout-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 7px;
}

.rs-checkout .line-total strong { font-size: 15px; font-weight: 800; }

.rs-checkout .cart-assurance {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 17px;
  margin-top: 8px;
  border-top: 1px solid #f0e9e4;
}

.rs-checkout .assurance-chip {
  display: flex;
  gap: 7px;
  align-items: center;
  background: #faf7f3;
  border-radius: 30px;
  padding: 8px 11px;
  color: #665b55;
  font-size: 10px;
  font-weight: 700;
}

.rs-checkout .assurance-chip span { color: var(--crimson); font-size: 13px; }

.rs-checkout .coupon-box {
  margin-top: 22px;
  background: #fdf9f5;
  border: 1px dashed #d9b8a8;
  border-radius: 13px;
  padding: 17px;
}

.rs-checkout .coupon-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.rs-checkout .coupon-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #f4e6df;
  color: var(--crimson);
  display: grid;
  place-items: center;
  font-size: 17px;
  flex: 0 0 34px;
}

.rs-checkout .coupon-head strong { font-size: 13px; font-weight: 800; }

.rs-checkout .coupon-head small {
  display: block;
  color: var(--checkout-muted);
  font-size: 10px;
  margin-top: 3px;
}

.rs-checkout .coupon-entry { display: flex; gap: 8px; }

.rs-checkout .coupon-entry input {
  min-width: 0;
  flex: 1;
  border: 1px solid var(--checkout-border);
  border-radius: 8px;
  background: #fff;
  padding: 11px 12px;
  font: 600 12px var(--font);
  text-transform: uppercase;
  outline: none;
  color: var(--ink);
}

.rs-checkout .coupon-entry input:focus { border-color: var(--crimson); }

.rs-checkout .coupon-entry button,
.rs-checkout .coupon-use,
.rs-checkout .coupon-remove {
  border: 0;
  border-radius: 8px;
  background: var(--crimson);
  color: #fff;
  padding: 0 15px;
  font: 800 13px/15px var(--font);
  letter-spacing: 0;
  cursor: pointer;
  white-space: nowrap;
}

.rs-checkout .coupon-entry button:hover,
.rs-checkout .coupon-use:hover { background: var(--crimson-d); }

.rs-checkout .coupon-use:disabled,
.rs-checkout .coupon-remove:disabled {
  background: #f4e6df;
  color: var(--crimson);
  cursor: default;
}

.rs-checkout .coupon-remove {
  background: #fff;
  color: var(--crimson);
  border: 1px solid var(--crimson);
  min-height: 36px;
  padding: 0 11px;
}

.rs-checkout .coupon-message {
  font-size: 11px;
  margin-top: 9px;
  min-height: 15px;
  color: #477554;
  font-weight: 700;
}

.rs-checkout .checkout-coupon-applied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1px solid #eadbd2;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 12px;
}

.rs-checkout .checkout-coupon-applied-label {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--checkout-muted);
  font-weight: 800;
}

.rs-checkout .checkout-coupon-applied-code {
  margin-top: 4px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--crimson);
}

.rs-checkout .checkout-coupon-applied-save {
  margin-top: 3px;
  font-size: 12px;
  font-weight: 700;
  color: #477554;
}

.rs-checkout .checkout-coupons-kicker {
  margin-top: 4px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--crimson);
}

.rs-checkout .checkout-coupons-hint {
  margin-top: 4px;
  font-size: 11px;
  color: var(--checkout-muted);
}

.rs-checkout .checkout-coupon-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}

.rs-checkout .checkout-coupon-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1px solid #eadbd2;
  border-radius: 10px;
  padding: 12px;
}

.rs-checkout .checkout-coupon-card.is-applied {
  border-color: var(--crimson);
  background: #fffaf7;
}

.rs-checkout .checkout-coupon-code {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--crimson);
}

.rs-checkout .checkout-coupon-offer,
.rs-checkout .checkout-coupon-save {
  margin-top: 3px;
  font-size: 11px;
  color: var(--checkout-muted);
}

.rs-checkout .checkout-coupon-save { color: #477554; font-weight: 700; }

.rs-checkout .checkout-coupon-meta {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
  color: var(--checkout-muted);
  font-size: 10px;
  line-height: 1.45;
}

.rs-checkout .checkout-coupon-manual { margin-top: 12px; }

.rs-checkout .summary-card {
  padding: 22px;
  position: sticky;
  top: 108px;
}

.rs-checkout .summary-card h3 {
  font-size: 16px;
  font-weight: 800;
  padding-bottom: 15px;
  border-bottom: 1px solid #f0e9e4;
}

.rs-checkout .summary-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 0;
  border-bottom: 1px solid #f0e9e4;
}

.rs-checkout .summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  color: var(--checkout-muted);
}

.rs-checkout .summary-row strong {
  font-size: 12px;
  color: var(--ink);
  font-weight: 800;
  white-space: nowrap;
}

.rs-checkout .summary-row.discount strong { color: #477554; }

.rs-checkout .summary-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 17px 0 5px;
}

.rs-checkout .summary-total span { font-size: 13px; font-weight: 800; }

.rs-checkout .summary-total strong {
  font-size: 23px;
  color: var(--crimson);
  font-weight: 800;
}

.rs-checkout .summary-tax {
  font-size: 10px;
  color: #a0948e;
  margin-top: 3px;
}

.rs-checkout .summary-cta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 18px;
}

.rs-checkout .summary-cta .rs-btn {
  justify-content: center;
  width: 100%;
  font-size: 14px;
  padding: 14px 16px;
}

.rs-checkout .back-link {
  border: 0;
  background: none;
  color: var(--checkout-muted);
  font: 700 11px var(--font);
  cursor: pointer;
  padding: 8px;
  text-align: center;
  text-decoration: none;
}

.rs-checkout .summary-secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #738174;
  font-size: 10px;
  font-weight: 700;
  margin-top: 14px;
}

.rs-checkout .summary-secure span { font-size: 14px; }

.rs-checkout .empty-cart { text-align: center; padding: 46px 18px; }

.rs-checkout .empty-cart .empty-icon {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background: #f8eee8;
  color: var(--crimson);
  display: grid;
  place-items: center;
  margin: 0 auto 17px;
  font-size: 28px;
}

.rs-checkout .empty-cart h3 { font-size: 20px; margin-bottom: 8px; font-weight: 800; }

.rs-checkout .empty-cart p {
  font-size: 13px;
  color: var(--checkout-muted);
  margin-bottom: 20px;
}

.rs-checkout .empty-cart .rs-btn { justify-content: center; }

.rs-checkout .address-choice {
  border: 1px solid var(--checkout-border);
  border-radius: 12px;
  padding: 17px;
  display: flex;
  gap: 13px;
  align-items: flex-start;
  margin-bottom: 12px;
  cursor: pointer;
  transition: 0.2s;
}

.rs-checkout .address-choice:has(input:checked),
.rs-checkout .address-choice.selected {
  border-color: var(--crimson);
  background: #fffaf7;
  box-shadow: 0 0 0 2px rgba(165, 28, 48, 0.06);
}

.rs-checkout .address-choice input { accent-color: var(--crimson); margin-top: 3px; }
.rs-checkout .address-choice .address-detail { flex: 1; min-width: 0; }

.rs-checkout .address-choice strong {
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 5px;
  flex-wrap: wrap;
}

.rs-checkout .address-choice p {
  font-size: 12px;
  color: var(--checkout-muted);
  line-height: 1.65;
}

.rs-checkout .address-tag {
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: #f1e4dd;
  color: var(--crimson);
  border-radius: 4px;
  padding: 4px 6px;
}

.rs-checkout .address-form-wrap {
  margin-top: 6px;
  padding-top: 18px;
  border-top: 1px solid #f0e9e4;
}

.rs-checkout .checkout-block { margin-top: 26px; }

.rs-checkout .checkout-block .panel-heading { margin-bottom: 14px; }

.rs-checkout .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.rs-checkout .form-row { display: contents; }

.rs-checkout .form-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}

.rs-checkout .form-field.full { grid-column: 1 / -1; }

.rs-checkout .form-field label {
  font-size: 11px;
  font-weight: 800;
  color: #514943;
}

.rs-checkout .form-field input,
.rs-checkout .form-field select,
.rs-checkout .form-field textarea {
  width: 100%;
  border: 1px solid #e5d9d1;
  border-radius: 8px;
  background: #fff;
  padding: 12px 13px;
  color: var(--ink);
  font: 500 12px var(--font);
  outline: none;
  min-height: 43px;
}

.rs-checkout .form-field textarea { min-height: 76px; resize: vertical; }

.rs-checkout .form-field input:focus,
.rs-checkout .form-field select:focus,
.rs-checkout .form-field textarea:focus {
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px rgba(165, 28, 48, 0.06);
}

.rs-checkout .form-field input[readonly] {
  background: #fbf7f4;
  color: var(--ink);
}

.rs-checkout .form-field input::placeholder { color: #b1a7a1; }

.rs-checkout .field-hint { font-size: 10px; color: #938780; margin-top: 9px; }

.rs-checkout .form-error {
  font-size: 11px;
  color: var(--crimson);
  margin-top: 0;
  display: none;
  font-weight: 700;
}

.rs-checkout .form-error.show { display: block; }

.rs-checkout .save-address {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  color: var(--checkout-muted);
  margin-top: 15px;
}

.rs-checkout .save-address input { accent-color: var(--crimson); margin-top: 1px; }

.rs-checkout .delivery-option {
  display: flex;
  align-items: center;
  gap: 13px;
  border: 1px solid var(--checkout-border);
  border-radius: 12px;
  padding: 17px;
  margin-bottom: 12px;
}

.rs-checkout .delivery-option.selected {
  border-color: var(--crimson);
  background: #fffaf7;
}

.rs-checkout .delivery-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f7ece6;
  color: var(--crimson);
  font-size: 18px;
  flex: 0 0 38px;
}

.rs-checkout .delivery-copy { flex: 1; min-width: 0; }
.rs-checkout .delivery-copy strong { font-size: 13px; display: block; margin-bottom: 4px; }
.rs-checkout .delivery-copy small { font-size: 11px; color: var(--checkout-muted); }
.rs-checkout .delivery-cost { font-size: 12px; font-weight: 800; white-space: nowrap; }

.rs-checkout .delivery-note {
  margin-top: 17px;
  padding: 13px 15px;
  background: #f9f6f1;
  border-radius: 9px;
  color: #74675f;
  font-size: 11px;
  line-height: 1.6;
}

.rs-checkout .payment-method {
  display: block;
  border: 1px solid var(--checkout-border);
  border-radius: 11px;
  margin-bottom: 10px;
  overflow: hidden;
  cursor: pointer;
}

.rs-checkout .payment-method:has(input:checked) {
  border-color: var(--crimson);
  box-shadow: 0 0 0 2px rgba(165, 28, 48, 0.05);
}

.rs-checkout .payment-method-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
}

.rs-checkout .payment-method-head input { accent-color: var(--crimson); }

.rs-checkout .payment-method-icon {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: #f8eee8;
  color: var(--crimson);
  display: grid;
  place-items: center;
  font-size: 16px;
  font-weight: 800;
  flex: 0 0 36px;
}

.rs-checkout .payment-method-copy { flex: 1; min-width: 0; }
.rs-checkout .payment-method-copy strong { font-size: 12px; display: block; }

.rs-checkout .payment-method-copy small {
  font-size: 10px;
  color: var(--checkout-muted);
  display: block;
  margin-top: 3px;
}

.rs-checkout .payment-method-body {
  padding: 0 16px 16px 64px;
  display: none;
}

.rs-checkout .payment-method:has(input:checked) .payment-method-body { display: block; }

.rs-checkout .payment-method-body p {
  font-size: 11px;
  color: var(--checkout-muted);
  line-height: 1.6;
}

.rs-checkout .checkout-review-list { display: flex; flex-direction: column; }

.rs-checkout .checkout-review-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f0e9e4;
}

.rs-checkout .checkout-review-item:last-child { border-bottom: 0; }

.rs-checkout .checkout-review-thumb {
  width: 48px;
  height: 58px;
  border-radius: 7px;
  background: linear-gradient(145deg, #f2e3dc, #f7f1e9);
  overflow: hidden;
  flex: 0 0 48px;
}

.rs-checkout .checkout-review-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rs-checkout .checkout-review-copy {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
  min-width: 0;
}

.rs-checkout .checkout-review-copy strong { font-size: 11px; line-height: 1.35; }
.rs-checkout .checkout-review-copy small { font-size: 9px; color: var(--checkout-muted); }
.rs-checkout .checkout-review-item > b { font-size: 11px; white-space: nowrap; }

.rs-checkout .confirmation-panel { text-align: center; padding: 25px 20px 28px; }

.rs-checkout .confirm-check {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #e9f3eb;
  color: #3f8050;
  display: grid;
  place-items: center;
  margin: 0 auto 18px;
  font-size: 32px;
  box-shadow: 0 0 0 8px #f4f8f4;
}

.rs-checkout .confirmation-panel .rs-eyebrow { margin-bottom: 9px; }

.rs-checkout .confirmation-panel h2 {
  font-size: 30px;
  line-height: 1.15;
  margin-bottom: 8px;
  font-weight: 800;
}

.rs-checkout .confirmation-panel > p {
  font-size: 13px;
  color: var(--checkout-muted);
  line-height: 1.65;
  max-width: 520px;
  margin: 0 auto;
}

.rs-checkout .confirm-order-number {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 18px auto 22px;
  background: #fbf5f0;
  border: 1px solid var(--checkout-border);
  border-radius: 30px;
  padding: 9px 16px;
  font-size: 11px;
  font-weight: 800;
  color: var(--crimson);
}

.rs-checkout .confirm-details {
  max-width: 570px;
  margin: 0 auto 22px;
  background: #fff;
  border: 1px solid var(--checkout-border);
  border-radius: 12px;
  text-align: left;
  padding: 17px;
}

.rs-checkout .confirm-detail-row {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 8px 0;
  border-bottom: 1px solid #f2ece7;
  font-size: 11px;
}

.rs-checkout .confirm-detail-row:last-child { border: 0; }
.rs-checkout .confirm-detail-row span { color: var(--checkout-muted); }
.rs-checkout .confirm-detail-row strong { text-align: right; }

.rs-checkout .confirm-detail-row.total strong {
  color: var(--crimson);
  font-size: 15px;
}

.rs-checkout .confirm-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.rs-checkout .confirm-actions .rs-btn { justify-content: center; }

.rs-checkout .rs-btn-line {
  background: #fff;
  color: var(--crimson);
  border: 1px solid var(--crimson);
}

.rs-checkout .rs-btn-line:hover { background: var(--crimson); color: #fff; }

.rs-checkout .checkout-footer-note {
  text-align: center;
  color: #9b918c;
  font-size: 10px;
  margin-top: 22px;
}

.rs-checkout .checkout-footer-note a {
  color: var(--crimson);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Keep the order summary readable beside the site's floating actions. */
body:has(.rs-checkout) .rs-float,
body:has(.rs-checkout) .chatbot {
  display: none;
}

@media (max-width: 900px) {
  .rs-checkout .checkout-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; }
  .rs-checkout .checkout-main { padding-left: 18px; padding-right: 18px; }
  .rs-checkout .checkout-panel { padding: 21px; }
  .rs-checkout .summary-card { padding: 18px; }
  .rs-checkout .form-grid { grid-template-columns: 1fr; }
  .rs-checkout .form-field.full { grid-column: auto; }
}

@media (max-width: 760px) {
  .rs-checkout .checkout-main { padding-top: 24px; }
  .rs-checkout .checkout-layout { grid-template-columns: 1fr; }
  .rs-checkout .summary-card { position: static; }
  .rs-checkout .checkout-intro { align-items: flex-start; }
  .rs-checkout .secure-note { display: none; }
  .rs-checkout .checkout-steps { padding: 12px 7px; gap: 0; }
  .rs-checkout .checkout-step {
    flex-direction: column;
    gap: 5px;
    font-size: 8px;
    letter-spacing: 0;
  }
  .rs-checkout .checkout-step .step-no { width: 25px; height: 25px; flex-basis: 25px; }
  .rs-checkout .summary-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 15px;
  }
  .rs-checkout .summary-card h3,
  .rs-checkout .summary-cta,
  .rs-checkout .summary-secure { grid-column: 1 / -1; }
  .rs-checkout .summary-items { border-bottom: 0; padding-bottom: 0; }
  .rs-checkout .summary-total {
    align-items: flex-end;
    flex-direction: column;
    justify-content: center;
    padding: 10px 0;
  }
  .rs-checkout .summary-tax { display: none; }
  .rs-checkout .summary-cta { margin-top: 12px; }
  .rs-checkout .cart-line { grid-template-columns: 82px minmax(0, 1fr); gap: 13px; }
  .rs-checkout .cart-photo { width: 82px; height: 105px; }
  .rs-checkout .line-total { grid-column: 2; text-align: left; padding-top: 0; }
  .rs-checkout .line-total small { display: none; }
  .rs-checkout .cart-copy h3 { font-size: 13px; }
  .rs-checkout .form-grid { gap: 12px; }
}

@media (max-width: 480px) {
  .rs-checkout .checkout-main { padding: 20px 12px 50px; }
  .rs-checkout .checkout-intro { margin-bottom: 19px; }
  .rs-checkout .checkout-intro h1 { font-size: 29px; }
  .rs-checkout .checkout-intro p.sub { font-size: 12px; }
  .rs-checkout .checkout-panel { padding: 16px; border-radius: 13px; }
  .rs-checkout .panel-heading { flex-direction: column; }
  .rs-checkout .panel-heading-actions { align-items: flex-start; }
  .rs-checkout .panel-heading h2,
  .rs-checkout .checkout-block h2 { font-size: 20px; }
  .rs-checkout .cart-line { gap: 11px; padding: 15px 0; }
  .rs-checkout .cart-controls { gap: 10px; }
  .rs-checkout .cart-assurance { gap: 7px; }
  .rs-checkout .assurance-chip { font-size: 9px; padding: 7px 9px; }
  .rs-checkout .coupon-box { padding: 13px; }
  .rs-checkout .coupon-entry { flex-direction: column; }
  .rs-checkout .coupon-entry button { min-height: 40px; }
  .rs-checkout .checkout-coupon-card,
  .rs-checkout .checkout-coupon-applied { flex-direction: column; align-items: flex-start; }
  .rs-checkout .summary-card { padding: 15px; border-radius: 13px; }
  .rs-checkout .summary-card h3 { font-size: 14px; }
  .rs-checkout .summary-row,
  .rs-checkout .summary-row strong { font-size: 10px; }
  .rs-checkout .summary-total strong { font-size: 19px; }
  .rs-checkout .form-grid { grid-template-columns: 1fr; }
  .rs-checkout .form-field.full { grid-column: auto; }
  .rs-checkout .address-choice { padding: 13px; }
  .rs-checkout .delivery-option { padding: 13px; gap: 9px; }
  .rs-checkout .delivery-icon { width: 33px; height: 33px; flex-basis: 33px; }
  .rs-checkout .payment-method-body { padding-left: 16px; }
  .rs-checkout .confirmation-panel { padding: 20px 8px; }
  .rs-checkout .confirmation-panel h2 { font-size: 25px; }
  .rs-checkout .checkout-review-item { gap: 9px; }
  .rs-checkout .checkout-review-copy strong { font-size: 10px; }
}

.rs-checkout .panel-heading h2.review-title { font-size: 17px; }


/* ==========================================================================
   12. Profile page

   The .modal rules are also used by name on other pages, so they are scoped to
   the profile page with :where(), which adds no specificity.
   ========================================================================== */
.rs-profile-shell {
  background: #fff;
  color: var(--ink);
}
.rs-profile-shell h1,
.rs-profile-shell h2,
.rs-profile-shell h3,
.rs-profile-shell p,
.rs-profile-shell ol,
.rs-profile-shell ul {
  margin: 0;
}
.rs-profile-shell a {
  color: inherit;
  text-decoration: none;
}
.rs-profile-shell button,
.rs-profile-shell input,
.rs-profile-shell select {
  font-family: var(--font);
}
.rs-profile-shell [hidden] {
  display: none !important;
}

.rs-profile-shell .rs-crumb {
  background: #fff;
  padding: 16px 0 0;
}
@media (min-width: 768px) {
  .rs-profile-shell .rs-crumb { padding: 20px 0 0; }
}
.rs-profile-shell .rs-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .rs-profile-shell .rs-crumb-list { font-size: 12px; gap: 8px 12px; }
}
.rs-profile-shell .rs-crumb-list li { min-width: 0; color: var(--grey); }
.rs-profile-shell .rs-crumb-list li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  color: rgba(26, 26, 26, .28);
}
@media (min-width: 768px) {
  .rs-profile-shell .rs-crumb-list li:not(:last-child)::after { margin-left: 12px; }
}
.rs-profile-shell .rs-crumb-list a { color: var(--grey); transition: color .2s; }
.rs-profile-shell .rs-crumb-list a:hover { color: var(--crimson); }
.rs-profile-shell .rs-crumb-list [aria-current="page"] {
  color: var(--ink);
  font-weight: 700;
  letter-spacing: .1em;
}

.rs-profile-shell .rs-profile-page {
  background: #fff;
  padding: 12px 0 72px;
  min-height: 56vh;
}
@media (min-width: 768px) {
  .rs-profile-shell .rs-profile-page { padding: 18px 0 96px; }
}
.rs-profile-shell .rs-profile-heading { padding: 16px 0 24px; text-align: left; }
.rs-profile-shell .rs-profile-heading .rs-eyebrow { margin-bottom: 9px; }
.rs-profile-shell .rs-profile-heading .rs-h2 { font-size: 32px; }
@media (min-width: 768px) {
  .rs-profile-shell .rs-profile-heading .rs-h2 { font-size: 40px; }
}
.rs-profile-shell .rs-profile-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: start;
}
@media (min-width: 980px) {
  .rs-profile-shell .rs-profile-layout {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 28px;
  }
}
.rs-profile-shell .rs-account-sidebar {
  background: #fff;
  border: 1px solid #ece8e4;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(26, 26, 26, .045);
}
.rs-profile-shell .rs-account-user {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 20px;
  background: linear-gradient(135deg, #fdf7f2, #fff);
}
.rs-profile-shell .rs-account-avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--crimson);
  color: #fff;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .04em;
  flex: 0 0 auto;
  overflow: hidden;
}
.rs-profile-shell .rs-account-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rs-profile-shell .rs-account-user-name {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.4;
}
.rs-profile-shell .rs-account-user-email {
  font-size: 11px;
  color: #888;
  margin-top: 3px;
  overflow-wrap: anywhere;
}
.rs-profile-shell .rs-account-nav { padding: 8px; }
.rs-profile-shell .rs-logout-form { display: contents; }
.rs-profile-shell .rs-account-nav a,
.rs-profile-shell .rs-account-nav button {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  padding: 12px 13px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #555;
  font: 700 12px/1.3 var(--font);
  text-align: left;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.rs-profile-shell .rs-account-nav a:hover,
.rs-profile-shell .rs-account-nav button:hover { background: #fbf3f1; color: var(--crimson); }
.rs-profile-shell .rs-account-nav a.active { background: #f8e9eb; color: var(--crimson); }
.rs-profile-shell .rs-account-nav svg { width: 17px; height: 17px; flex: 0 0 auto; }
.rs-profile-shell .rs-account-nav .nav-count {
  margin-left: auto;
  font-size: 10px;
  color: #999;
  font-weight: 700;
}
.rs-profile-shell .rs-account-nav .nav-divider { height: 1px; background: #eee; margin: 7px 8px; }
.rs-profile-shell .rs-account-help {
  margin: 8px 16px 16px;
  padding: 13px;
  border-radius: 9px;
  background: var(--paper);
  font-size: 11px;
  color: #777;
  line-height: 1.6;
}
.rs-profile-shell .rs-account-help a {
  display: inline-block;
  margin-top: 5px;
  color: var(--crimson);
  font-weight: 800;
}
.rs-profile-shell .rs-profile-main { min-width: 0; }
.rs-profile-shell .rs-profile-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 21px 22px;
  margin-bottom: 18px;
  border-radius: 14px;
  background: var(--ink);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.rs-profile-shell .rs-profile-welcome::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(230, 184, 138, .24);
  border-radius: 50%;
  right: -68px;
  top: -105px;
  box-shadow: 0 0 0 22px rgba(230, 184, 138, .05), 0 0 0 46px rgba(230, 184, 138, .035);
}
.rs-profile-shell .rs-profile-welcome-copy { position: relative; z-index: 1; min-width: 0; }
.rs-profile-shell .rs-profile-welcome .eyebrow {
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 800;
  margin-bottom: 7px;
}
.rs-profile-shell .rs-profile-welcome h2 { font-size: 20px; font-weight: 800; line-height: 1.3; }
.rs-profile-shell .rs-profile-welcome p:last-child {
  font-size: 11px;
  color: rgba(255, 255, 255, .7);
  margin-top: 5px;
}
.rs-profile-shell .rs-member-pill {
  position: relative;
  z-index: 1;
  white-space: nowrap;
  border: 1px solid rgba(230, 184, 138, .55);
  color: var(--gold);
  border-radius: 999px;
  padding: 8px 11px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.rs-profile-shell .rs-profile-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  margin-bottom: 18px;
}
.rs-profile-shell .rs-profile-stat {
  border: 1px solid #eee;
  border-radius: 11px;
  padding: 15px 16px;
  background: #fff;
  min-width: 0;
}
.rs-profile-shell .rs-profile-stat .stat-label {
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #888;
  font-weight: 800;
}
.rs-profile-shell .rs-profile-stat strong {
  display: block;
  margin-top: 6px;
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.rs-profile-shell .rs-profile-stat a {
  display: inline-block;
  margin-top: 5px;
  font-size: 10px;
  font-weight: 800;
  color: var(--crimson);
}
.rs-profile-shell .rs-profile-card {
  border: 1px solid #ece8e4;
  border-radius: 13px;
  background: #fff;
  margin-bottom: 17px;
  box-shadow: 0 7px 22px rgba(26, 26, 26, .035);
}
.rs-profile-shell .rs-profile-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 17px 19px;
  border-bottom: 1px solid #eee;
}
.rs-profile-shell .rs-profile-card-title {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--ink);
}
.rs-profile-shell .rs-profile-card-sub { font-size: 10px; color: #999; margin-top: 4px; }
.rs-profile-shell .rs-profile-card-body { padding: 19px; }
.rs-profile-shell .rs-profile-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 4px;
  background: #fff;
  border: 1px solid #e5dadd;
  border-radius: 999px;
  color: var(--crimson);
  font: 700 12px/14px var(--font);
  cursor: pointer;
  transition: .2s;
}
.rs-profile-shell a.rs-profile-edit-btn:hover,
.rs-profile-shell .rs-profile-edit-btn:hover { background: #fbf1f2; border-color: #d7aeb5; }
.rs-profile-shell .rs-profile-edit-btn svg { width: 13px; height: 13px; }
.rs-profile-shell .rs-profile-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px 16px;
}
.rs-profile-shell .rs-profile-field { min-width: 0; }
.rs-profile-shell .rs-profile-field label {
  display: block;
  margin-bottom: 7px;
  font-size: 9px;
  font-weight: 800;
  color: #777;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.rs-profile-shell .rs-profile-field input,
.rs-profile-shell .rs-profile-field select {
  width: 100%;
  height: 42px;
  border: 1px solid #e9e5e1;
  border-radius: 7px;
  padding: 0 12px;
  background: #faf9f7;
  color: var(--ink);
  font: 600 12px var(--font);
  outline: none;
  transition: border .2s, background .2s;
}
.rs-profile-shell .rs-profile-field input:disabled,
.rs-profile-shell .rs-profile-field select:disabled {
  background: #faf9f7;
  color: #555;
  border-color: #eee;
  opacity: 1;
}
.rs-profile-shell .rs-profile-field input:not(:disabled),
.rs-profile-shell .rs-profile-field select:not(:disabled) {
  background: #fff;
  border-color: #c98c97;
}
.rs-profile-shell .rs-profile-field input:focus,
.rs-profile-shell .rs-profile-field select:focus {
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px rgba(165, 28, 48, .08);
}
.rs-profile-shell .rs-profile-field input.is-invalid,
.rs-profile-shell .rs-password-fields input.is-invalid {
  border-color: var(--crimson);
}
.rs-profile-shell .rs-field-error {
  margin-top: 6px;
  color: var(--crimson);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}
.rs-profile-shell .rs-field-note,
.rs-profile-shell .rs-field-success {
  margin-top: 7px;
  font-size: 11px;
  line-height: 1.5;
  color: #777;
}
.rs-profile-shell .rs-field-success { color: #27834A; font-weight: 700; }
.rs-profile-shell button.rs-text-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--crimson);
  font: 800 13px/15px var(--font);
  cursor: pointer;
}
.rs-profile-shell .required-mark { color: var(--crimson); font-size: 11px; }
.rs-profile-shell .rs-profile-form-actions {
  display: none;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #eee;
}
.rs-profile-shell .rs-profile-form.is-editing .rs-profile-form-actions { display: flex; }
.rs-profile-shell .rs-profile-cancel,
.rs-profile-shell .rs-profile-save,
.rs-profile-shell .rs-profile-danger {
  height: 38px;
  padding: 0 12px;
  border-radius: 999px;
  font: 700 13px/15px var(--font);
  cursor: pointer;
}
.rs-profile-shell .rs-profile-cancel {
  border: 1px solid #e7e1de;
  background: #fff;
  color: #555;
}
.rs-profile-shell .rs-profile-save,
.rs-profile-shell .rs-profile-danger {
  border: 0;
  padding: 0 11px;
  background: var(--crimson);
  color: #fff;
  font-weight: 800;
}
.rs-profile-shell .rs-profile-save:hover,
.rs-profile-shell .rs-profile-danger:hover { background: var(--crimson-d); }
.rs-profile-shell .rs-profile-bottom-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 17px;
}
@media (min-width: 650px) {
  .rs-profile-shell .rs-profile-bottom-grid { grid-template-columns: 1.1fr .9fr; }
}
.rs-profile-shell .rs-address-card { display: flex; gap: 12px; align-items: flex-start; }
.rs-profile-shell .rs-address-icon {
  width: 35px;
  height: 35px;
  border-radius: 9px;
  background: #f8ebed;
  color: var(--crimson);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.rs-profile-shell .rs-address-icon svg { width: 17px; height: 17px; }
.rs-profile-shell .rs-address-label { font-size: 11px; font-weight: 800; color: var(--ink); }
.rs-profile-shell .rs-address-badge {
  display: inline-block;
  margin-left: 7px;
  padding: 3px 6px;
  border-radius: 4px;
  background: #f8ebed;
  color: var(--crimson);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.rs-profile-shell .rs-address-text {
  font-size: 11px;
  color: #777;
  line-height: 1.7;
  margin-top: 7px;
}
.rs-profile-shell .rs-address-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 13px 0 0 47px; }
.rs-profile-shell #delivery-addresses { grid-column: 1 / -1; scroll-margin-top: 140px; }
.rs-profile-shell .rs-address-list { display: flex; flex-direction: column; gap: 12px; }
.rs-profile-shell .rs-address-item {
  border: 1px solid #e9e5e1;
  border-radius: 12px;
  padding: 14px;
}
.rs-profile-shell .rs-address-item.is-default {
  border-color: #e4b7be;
  background: #fffafa;
}
.rs-profile-shell .rs-address-item-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin: 12px 0 0 47px;
}
.rs-profile-shell .rs-address-item-actions form { margin: 0; }
.rs-profile-shell .rs-address-empty { font-size: 12px; color: #777; line-height: 1.6; }
.rs-profile-shell .rs-text-link { font-size: 12px; color: var(--crimson); font-weight: 800; }
.rs-profile-shell .rs-pref-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f0eeec;
}
.rs-profile-shell .rs-pref-row:last-child { border-bottom: 0; padding-bottom: 0; }
.rs-profile-shell .rs-pref-copy { min-width: 0; }
.rs-profile-shell .rs-pref-copy strong { display: block; font-size: 11px; font-weight: 800; color: var(--ink); }
.rs-profile-shell .rs-pref-copy span { display: block; margin-top: 3px; font-size: 9px; color: #999; line-height: 1.4; }
.rs-profile-shell .rs-switch {
  width: 37px;
  height: 21px;
  border: 0;
  border-radius: 999px;
  background: #d9d6d3;
  padding: 3px;
  cursor: pointer;
  flex: 0 0 auto;
  transition: background .2s;
}
.rs-profile-shell .rs-switch::after {
  content: "";
  display: block;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .16);
  transition: transform .2s;
}
.rs-profile-shell .rs-switch[aria-checked="true"] { background: var(--crimson); }
.rs-profile-shell .rs-switch[aria-checked="true"]::after { transform: translateX(16px); }
.rs-profile-shell .rs-security-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.rs-profile-shell .rs-security-row + .rs-security-row {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #f0eeec;
}
.rs-profile-shell .rs-security-row p { font-size: 10px; color: #999; margin-top: 4px; }
.rs-profile-shell .rs-security-row strong { font-size: 11px; }
.rs-profile-shell .rs-profile-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.rs-profile-shell .rs-profile-modal.open { display: flex; }
.rs-profile-shell .rs-profile-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 12, 13, .55);
  backdrop-filter: blur(3px);
}
.rs-profile-shell .rs-profile-modal-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 430px);
  max-height: min(92vh, 680px);
  overflow: auto;
  background: #fff;
  border-radius: 15px;
  padding: 22px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .25);
}
.rs-profile-shell .rs-profile-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}
.rs-profile-shell .rs-profile-modal-head h3 { font-size: 16px; font-weight: 800; }
.rs-profile-shell .rs-profile-modal-close {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: #f5f2ef;
  font-size: 17px;
  cursor: pointer;
  flex: 0 0 auto;
}
.rs-profile-shell .rs-password-fields { display: grid; gap: 13px; }
.rs-profile-shell .rs-password-fields label,
.rs-profile-shell .rs-delete-copy {
  display: block;
  margin-bottom: 6px;
  font-size: 10px;
  font-weight: 800;
  color: #777;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.rs-profile-shell .rs-delete-copy {
  margin-bottom: 14px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.6;
  color: #666;
}
.rs-profile-shell .rs-password-fields input {
  width: 100%;
  height: 42px;
  border: 1px solid #e9e5e1;
  border-radius: 7px;
  padding: 0 12px;
  font: 600 12px var(--font);
  outline: none;
  background: #fff;
  color: var(--ink);
}
.rs-profile-shell .rs-password-fields input:focus { border-color: var(--crimson); }
.rs-profile-shell .rs-password-note {
  font-size: 10px;
  color: #999;
  line-height: 1.6;
  margin: 12px 0 10px;
}
.rs-profile-shell .rs-password-rules {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 6px;
}
.rs-profile-shell .rs-password-rules li {
  position: relative;
  padding-left: 16px;
  font-size: 11px;
  color: #888;
  line-height: 1.4;
}
.rs-profile-shell .rs-password-rules li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid #ccc;
}
.rs-profile-shell .rs-password-rules li.is-met { color: #27834A; }
.rs-profile-shell .rs-password-rules li.is-met::before { background: #27834A; border-color: #27834A; }
.rs-profile-shell .rs-modal-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.rs-profile-shell .rs-profile-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 120;
  max-width: calc(100% - 96px);
  transform: translate(-50%, 16px);
  opacity: 0;
  pointer-events: none;
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  padding: 11px 19px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
  transition: .25s;
}
.rs-profile-shell .rs-profile-toast.show { opacity: 1; transform: translate(-50%, 0); }
.rs-profile-shell #security,
.rs-profile-shell #profileForm { scroll-margin-top: 140px; }

@media (max-width: 640px) {
  .rs-profile-shell .rs-profile-heading { padding: 10px 0 18px; }
  .rs-profile-shell .rs-profile-heading .rs-h2 { font-size: 29px; }
  .rs-profile-shell .rs-profile-welcome {
    align-items: flex-start;
    padding: 18px;
    flex-direction: column;
    gap: 12px;
  }
  .rs-profile-shell .rs-member-pill { white-space: normal; }
  .rs-profile-shell .rs-profile-stats { gap: 8px; }
  .rs-profile-shell .rs-profile-stat { padding: 12px 10px; }
  .rs-profile-shell .rs-profile-stat strong { font-size: 18px; }
  .rs-profile-shell .rs-profile-stat .stat-label { font-size: 8px; letter-spacing: .07em; }
  .rs-profile-shell .rs-profile-form-grid { grid-template-columns: 1fr; gap: 13px; }
  .rs-profile-shell .rs-profile-card-head { padding: 15px; }
  .rs-profile-shell .rs-profile-card-body { padding: 15px; }
  .rs-profile-shell .rs-account-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3px;
  }
  .rs-profile-shell .rs-account-nav a,
  .rs-profile-shell .rs-account-nav button {
    font-size: 10px;
    padding: 10px 8px;
    gap: 7px;
  }
  .rs-profile-shell .rs-account-nav .nav-divider { display: none; }
  .rs-profile-shell .rs-account-help { display: none; }
  .rs-profile-shell .rs-profile-card { margin-bottom: 13px; }
  .rs-profile-shell .rs-address-actions,
  .rs-profile-shell .rs-address-item-actions { margin-left: 0; }
  .rs-profile-shell .rs-address-form-grid { grid-template-columns: 1fr; }
  .rs-profile-shell .rs-security-row { align-items: flex-start; }
}
@media (max-width: 380px) {
  .rs-profile-shell .rs-profile-stat a { font-size: 9px; }
  .rs-profile-shell .rs-profile-welcome h2 { font-size: 18px; }
}
:where(body:has(.rs-profile-shell)) .modal {
  position: fixed;
  inset: 0;
  z-index: 140;
  display: none;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
:where(body:has(.rs-profile-shell)) .modal.show { display: block; }
:where(body:has(.rs-profile-shell)) .modal.fade { opacity: 0; transition: opacity .15s linear; }
:where(body:has(.rs-profile-shell)) .modal.fade.show { opacity: 1; }
:where(body:has(.rs-profile-shell)) .modal-dialog {
  position: relative;
  width: auto;
  max-width: 640px;
  margin: 1.75rem auto;
  pointer-events: none;
}
:where(body:has(.rs-profile-shell)) .modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 3.5rem);
}
:where(body:has(.rs-profile-shell)) .modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background: #fff;
  border: 0;
  border-radius: 15px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .25);
  outline: 0;
}
:where(body:has(.rs-profile-shell)) .modal-header,
:where(body:has(.rs-profile-shell)) .modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 22px;
}
:where(body:has(.rs-profile-shell)) .modal-header { border-bottom: 1px solid #f0eeec; }
:where(body:has(.rs-profile-shell)) .modal-footer { justify-content: flex-end; border-top: 1px solid #f0eeec; }
:where(body:has(.rs-profile-shell)) .modal-title { font-size: 16px; font-weight: 800; color: var(--ink); }
:where(body:has(.rs-profile-shell)) .modal-body { padding: 18px 22px; }
:where(body:has(.rs-profile-shell)) .modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 130;
  background: rgba(16, 12, 13, .55);
}
:where(body:has(.rs-profile-shell)) .modal-backdrop.fade { opacity: 0; }
:where(body:has(.rs-profile-shell)) .modal-backdrop.show { opacity: 1; }
body.modal-open:where(:has(.rs-profile-shell)) { overflow: hidden; }
#addressModal .rs-address-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}
#addressModal .rs-address-span { grid-column: 1 / -1; }
#addressModal label {
  display: block;
  margin-bottom: 6px;
  font-size: 10px;
  font-weight: 800;
  color: #777;
  text-transform: uppercase;
  letter-spacing: .1em;
}
#addressModal .form-control,
#addressModal .form-select {
  display: block;
  width: 100%;
  height: 42px;
  border: 1px solid #e9e5e1;
  border-radius: 7px;
  padding: 0 12px;
  font: 600 12px var(--font);
  color: var(--ink);
  background: #fff;
  outline: none;
}
#addressModal .form-control:focus,
#addressModal .form-select:focus { border-color: var(--crimson); }
#addressModal .form-control.is-invalid,
#addressModal .form-select.is-invalid { border-color: var(--crimson); }
#addressModal .rs-field-error {
  margin-top: 6px;
  color: var(--crimson);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}
#addressModal .rs-address-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
#addressModal .rs-profile-cancel,
#addressModal .rs-profile-save {
  height: 38px;
  border-radius: 999px;
  padding: 0 11px;
  font: 800 13px/15px var(--font);
  cursor: pointer;
}
#addressModal .rs-profile-cancel {
  border: 1px solid #e9e5e1;
  background: #fff;
  color: var(--ink);
}
#addressModal .rs-profile-save {
  border: 0;
  background: var(--crimson);
  color: #fff;
}
#addressModal .rs-profile-save:hover { background: var(--crimson-d); }
#addressModal .rs-profile-modal-close {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: #f5f2ef;
  font-size: 17px;
  cursor: pointer;
}
@media (max-width: 640px) {
  #addressModal .rs-address-form-grid { grid-template-columns: 1fr; }
  :where(body:has(.rs-profile-shell)) .modal-dialog { margin: 1rem 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .rs-profile-shell *,
  .rs-profile-shell *::before,
  .rs-profile-shell *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* ==========================================================================
   13. Orders page

   The body-level modal rules also match other pages, so they are scoped to the
   orders page with :where(), which adds no specificity.
   ========================================================================== */
.rs-orders [hidden] { display: none !important; }
.rs-orders h1,
.rs-orders h2,
.rs-orders h3,
.rs-orders p { margin: 0; }
.rs-orders button,
.rs-orders input,
.rs-orders textarea { font-family: inherit; }
.rs-orders img { display: block; max-width: 100%; }

.rs-orders .orders-hero {
  background: linear-gradient(110deg, #fbf3ed 0%, #fff 58%, #f8eee8 100%);
  border-bottom: 1px solid #1a1a1a0c;
  position: relative;
  overflow: hidden;
}
.rs-orders .orders-hero:after {
  content: "";
  position: absolute;
  width: 330px;
  height: 330px;
  border: 1px solid #a51c3012;
  border-radius: 50%;
  right: 7%;
  top: -205px;
  box-shadow: 0 0 0 26px #a51c3008, 0 0 0 54px #a51c3005;
  pointer-events: none;
}
.rs-orders .orders-hero-inner {
  position: relative;
  z-index: 1;
  min-height: 245px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding-top: 44px;
  padding-bottom: 44px;
}
.rs-orders .orders-hero .rs-h2 {
  font-size: clamp(38px, 5vw, 62px);
  letter-spacing: -.055em;
}
.rs-orders .orders-hero .rs-h2 span {
  color: var(--crimson);
  font-family: Georgia, serif;
  font-style: italic;
  font-weight: 500;
}
.rs-orders .orders-hero .rs-para { margin: 16px 0 0; max-width: 520px; }
.rs-orders .order-hero-mark {
  width: 150px;
  height: 150px;
  flex: 0 0 150px;
  border: 1px solid #a51c3040;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--crimson);
  position: relative;
  transform: rotate(-8deg);
}
.rs-orders .order-hero-mark:before,
.rs-orders .order-hero-mark:after {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid #a51c3024;
  border-radius: 50%;
}
.rs-orders .order-hero-mark:after { inset: -8px; border-style: dashed; opacity: .6; }
.rs-orders .order-hero-mark span { font: italic 80px/1 Georgia, serif; }
.rs-orders .order-hero-mark i { font-size: 7px; font-style: normal; letter-spacing: .2em; margin-top: 8px; }

.rs-orders .orders-page {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  gap: 42px;
  padding-top: 48px;
  padding-bottom: 72px;
  align-items: start;
}
.rs-orders .account-side {
  border: 1px solid #a51c3012;
  box-shadow: 0 12px 34px #3a20100a;
  border-radius: 12px;
  padding: 20px;
  background: linear-gradient(180deg, #fff 0%, #fdfbf7 100%);
}
.rs-orders .account-welcome {
  display: flex;
  gap: 12px;
  align-items: center;
  padding-bottom: 19px;
  border-bottom: 1px solid #1a1a1a12;
}
.rs-orders .avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f2e1d7;
  color: var(--crimson);
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 800;
  flex-shrink: 0;
  box-shadow: 0 0 0 5px #a51c3010;
}
.rs-orders .account-welcome div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rs-orders .account-welcome small { font-size: 9px; letter-spacing: .16em; color: var(--crimson); font-weight: 800; }
.rs-orders .account-welcome strong { font-size: 14px; overflow-wrap: anywhere; }
.rs-orders .account-welcome div > span { font-size: 10px; color: #777; overflow-wrap: anywhere; }
.rs-orders .account-links { padding: 14px 0 20px; display: grid; gap: 4px; }
.rs-orders .account-links a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 12px 10px;
  border-radius: 7px;
  color: #555;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s, color .2s, transform .2s;
}
.rs-orders .account-links a:hover { background: #fbf1ed; color: var(--crimson); transform: translateX(2px); }
.rs-orders .account-links a.selected { background: #f9eeeb; color: var(--crimson); }
.rs-orders .account-links a span {
  margin-left: auto;
  font-size: 10px;
  background: #fff;
  border: 1px solid #a51c3022;
  padding: 2px 7px;
  border-radius: 30px;
}
.rs-orders .account-help { background: #fff; padding: 16px; border-radius: 8px; border: 1px solid #a51c3010; }
.rs-orders .help-icon { display: block; color: var(--crimson); font-size: 20px; margin-bottom: 8px; }
.rs-orders .account-help strong { font-size: 12px; }
.rs-orders .account-help p { font-size: 11px; color: #686868; line-height: 1.7; margin: 7px 0 12px; }
.rs-orders .account-help a,
.rs-orders .text-link { font-size: 11px; font-weight: 800; color: var(--crimson); text-decoration: none; }
.rs-orders .orders-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.rs-orders .orders-heading h2 { font-size: 27px; letter-spacing: -.045em; }
.rs-orders .orders-heading p { font-size: 12px; color: #777; margin-top: 7px; }
.rs-orders .text-link { white-space: nowrap; }
.rs-orders .text-link span { font-size: 16px; margin-left: 5px; }

.rs-orders .orders-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #e9e1dc;
  margin-bottom: 18px;
}
.rs-orders .order-tabs { display: flex; gap: 20px; overflow-x: auto; scrollbar-width: none; }
.rs-orders .order-tabs::-webkit-scrollbar { display: none; }
.rs-orders .order-tab {
  white-space: nowrap;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 0 0 14px;
  color: #777;
  font: 600 13px/15px var(--font);
  cursor: pointer;
  transition: color .2s, border-color .2s;
}
.rs-orders .order-tab.active { border-bottom-color: var(--crimson); color: var(--crimson); font-weight: 800; }
.rs-orders .order-tab span {
  display: inline-grid;
  place-items: center;
  margin-left: 4px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 50%;
  background: #f4e8e3;
  font-size: 9px;
}
.rs-orders .order-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
  padding: 8px 10px;
  border: 1px solid #1a1a1a1b;
  border-radius: 30px;
  min-width: 155px;
  background: #fff;
  box-shadow: 0 3px 12px #24100608;
  transition: border .2s, box-shadow .2s;
}
.rs-orders .order-search span { font-size: 21px; color: #777; line-height: 1; }
.rs-orders .order-search input { border: 0; outline: 0; width: 100%; min-width: 0; font: 12px var(--font); background: transparent; }
.rs-orders .order-search:focus-within { border-color: var(--crimson); box-shadow: 0 0 0 3px #a51c3010; }

.rs-orders .orders-list { display: grid; gap: 18px; }
.rs-orders .order-card {
  border: 1px solid #eae1dc;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px #24100608;
  transition: box-shadow .22s, transform .22s;
}
.rs-orders .order-card:hover { box-shadow: 0 14px 32px #24100610; transform: translateY(-2px); }
.rs-orders .order-card[hidden] { display: none !important; }
.rs-orders .order-card-top {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: linear-gradient(90deg, #fdf8f3, #fffdfa);
  border-bottom: 1px solid #1a1a1a0c;
}
.rs-orders .order-card-top > div { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; min-width: 0; }
.rs-orders a.order-id { color: inherit; text-decoration: none; }
.rs-orders .order-id { font-size: 10px; color: #777; letter-spacing: .08em; }
.rs-orders .order-id strong { color: var(--ink); font-size: 12px; letter-spacing: .02em; }
.rs-orders a.order-id:hover strong { color: var(--crimson); }
.rs-orders .order-date { font-size: 10px; color: #777; border-left: 1px solid #ddd; padding-left: 13px; }
.rs-orders .status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 30px;
  padding: 7px 11px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.rs-orders .status-pill i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.rs-orders .status-shipped { color: #8b5a12; background: #fff2d9; }
.rs-orders .status-delivered { color: #27734b; background: #e7f5eb; }
.rs-orders .status-processing { color: #8a4c9d; background: #f6eafb; }
.rs-orders .status-cancelled { color: #a33131; background: #fcebea; }
.rs-orders .status-closed { color: #6b625c; background: #f3eeea; }

.rs-orders .order-product {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 18px 20px 8px;
}
.rs-orders .order-product + .order-product {
  padding-top: 16px;
  border-top: 1px solid #1a1a1a0c;
}
.rs-orders .product-art {
  height: 104px;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: #f4e9e2;
  box-shadow: inset 0 0 0 1px #1a1a1a0a;
}
.rs-orders .product-art:before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid #ffffff8a;
  z-index: 1;
  pointer-events: none;
}
.rs-orders .product-art img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.rs-orders .order-card:hover .product-art img { transform: scale(1.045); }
.rs-orders .product-info { min-width: 0; }
.rs-orders .product-category { font-size: 8px; letter-spacing: .15em; color: var(--crimson); font-weight: 800; }
.rs-orders .product-info h3 { font-size: 14px; line-height: 1.5; margin: 5px 0 4px; letter-spacing: -.02em; }
.rs-orders .product-info p { font-size: 11px; color: #777; margin-bottom: 8px; }
.rs-orders .product-info p span { padding: 0 3px; }
.rs-orders .product-info > strong { font-size: 14px; color: var(--ink); }
.rs-orders .product-info > small { display: block; margin-top: 9px; color: #777; font-size: 10px; line-height: 1.5; }
.rs-orders .product-info > small b { color: #333; }
.rs-orders .product-total { text-align: right; align-self: center; padding-left: 10px; border-left: 1px solid #eee6e1; }
.rs-orders .product-total small,
.rs-orders .product-total span { display: block; font-size: 8px; letter-spacing: .08em; color: #888; }
.rs-orders .product-total strong { display: block; font-size: 15px; margin: 6px 0; }
.rs-orders .product-total span { letter-spacing: 0; }

.rs-orders .order-track { padding: 6px 20px 16px; }
.rs-orders .track-summary { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.rs-orders .track-thumb {
  width: 54px;
  height: 54px;
  border-radius: 8px;
  object-fit: cover;
  background: #f4e9e2;
  flex-shrink: 0;
  display: block;
}
.rs-orders .track-delivery { margin: 0 0 6px; font-size: 13px; line-height: 1.4; color: #6f6762; font-weight: 500; }
.rs-orders .track-return { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; font-size: 12px; color: #6f6762; }
.rs-orders .window-closed {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 30px;
  background: #f4efec;
  border: 1px solid #e3d6cf;
  color: #6d625c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rs-orders .return-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 30px;
  padding: 4px 9px;
  background: #f9eeeb;
  color: var(--crimson);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .03em;
}
.rs-orders .return-pill.approved,
.rs-orders .return-pill.received { background: #e7f5eb; color: #27734b; }
.rs-orders .return-pill.rejected { background: #fcebea; color: #a33131; }
.rs-orders .return-pill.refunded { background: #f3eeea; color: #6b625c; }
.rs-orders .order-progress { display: flex; align-items: flex-start; padding: 0 6px; }
.rs-orders .progress-step { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 68px; color: #b0a8a3; }
.rs-orders .progress-step > span {
  width: 28px;
  height: 28px;
  border: 1.5px solid #ddd4ce;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 700;
  background: #f3f1ef;
  color: #a39b96;
}
.rs-orders .progress-step > span svg { width: 14px; height: 14px; display: block; }
.rs-orders .progress-step small { font-size: 12px; font-weight: 600; white-space: nowrap; color: #b0a8a3; }
.rs-orders .progress-step.done,
.rs-orders .progress-step.current { color: var(--crimson); }
.rs-orders .progress-step.done small,
.rs-orders .progress-step.current small { color: var(--crimson); }
.rs-orders .progress-step.done > span { background: var(--crimson); color: #fff; border-color: var(--crimson); }
.rs-orders .progress-step.current > span { background: #fff; color: var(--crimson); border: 1.5px solid var(--crimson); box-shadow: 0 0 0 4px #a51c3014; }
.rs-orders .progress-line { height: 2px; background: #e4ddd8; flex: 1; margin: 13px 6px 0; }
.rs-orders .progress-line.done { background: var(--crimson); }
.rs-orders .order-card-bottom {
  border-top: 1px solid #1a1a1a0c;
  padding: 15px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fffdfb;
}
.rs-orders .delivery-note { font-size: 10px; color: #777; }
.rs-orders .order-actions { display: flex; gap: 8px; align-items: center; }
.rs-orders .btn-outline,
.rs-orders a.btn-outline {
  background: #fff;
  border: 1px solid #dfd5cf;
  color: var(--ink);
  padding: 10px 9px;
  border-radius: 30px;
  font: 700 12px/14px var(--font);
  cursor: pointer;
  transition: .2s;
  white-space: nowrap;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.rs-orders .btn-outline:hover,
.rs-orders a.btn-outline:hover { border-color: var(--crimson); color: var(--crimson); }
.rs-orders a.action-btn { text-decoration: none; }
.rs-orders .action-btn { font: 700 12px/14px var(--font); padding: 11px 10px; white-space: nowrap; box-shadow: 0 5px 13px #a51c3024; }
.rs-orders .action-btn .rs-arrow { font-size: 13px; line-height: 18px; }

.rs-orders .orders-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 3px 4px; }
.rs-orders .orders-pagination[hidden],
.rs-orders .empty-state[hidden] { display: none !important; }
.rs-orders .pagination-summary { color: #837a75; font-size: 10px; }
.rs-orders .pagination-controls { display: flex; align-items: center; gap: 6px; }
.rs-orders .page-number,
.rs-orders .page-arrow {
  width: 31px;
  height: 31px;
  border: 1px solid #e8ded8;
  background: #fff;
  border-radius: 50%;
  color: #554b46;
  font: 700 12px var(--font);
  cursor: pointer;
  transition: .2s;
}
.rs-orders .page-number:hover,
.rs-orders .page-arrow:hover:not(:disabled) { border-color: var(--crimson); color: var(--crimson); }
.rs-orders .page-number.active { background: var(--crimson); border-color: var(--crimson); color: #fff; box-shadow: 0 4px 11px #a51c302c; }
.rs-orders .page-arrow { font-size: 20px; line-height: 1; }
.rs-orders .page-arrow:disabled { opacity: .35; cursor: not-allowed; }

.rs-orders .orders-footer-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 22px;
  padding: 17px;
  background: #fdf9f5;
  border: 1px solid #f1e8e2;
  border-radius: 6px;
}
.rs-orders .orders-footer-note > span { color: var(--crimson); }
.rs-orders .orders-footer-note p { font-size: 10px; line-height: 1.7; color: #666; }
.rs-orders .orders-footer-note a { color: var(--crimson); font-weight: 800; text-decoration: none; }
.rs-orders .empty-state { text-align: center; padding: 55px 20px; border: 1px dashed #d9ceca; border-radius: 8px; }
.rs-orders .empty-state > span { font-size: 32px; color: var(--crimson); }
.rs-orders .empty-state h3 { font-size: 18px; margin: 10px 0; }
.rs-orders .empty-state p { font-size: 12px; color: #777; margin-bottom: 18px; }
.rs-orders .empty-actions { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }

.rs-orders .modal-backdrop {
  position: fixed;
  z-index: 200;
  inset: 0;
  background: #1a1a1a80;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.rs-orders .modal-backdrop.open { display: flex; }
.rs-orders .order-modal {
  position: relative;
  background: #fff;
  width: min(100%, 480px);
  max-height: 85vh;
  overflow: auto;
  border-radius: 14px;
  padding: 30px;
  border: 1px solid #f1e5dd;
  box-shadow: 0 28px 90px #170b0b35;
  animation: rsOrderModalIn .2s ease;
}
.rs-orders .modal-close {
  position: absolute;
  right: 18px;
  top: 14px;
  background: none;
  border: 0;
  font-size: 27px;
  cursor: pointer;
  color: #777;
}
.rs-orders .order-modal .rs-eyebrow { font-size: 9px; }
.rs-orders .order-modal h2 { font-size: 24px; margin-bottom: 20px; }
.rs-orders .modal-done { margin-top: 22px; padding: 11px 20px; font: 700 13px/15px var(--font); box-shadow: 0 5px 14px #a51c3022; }
.rs-orders .modal-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.rs-orders .modal-detail { padding: 12px; background: #fdfaf7; border: 1px solid #f0e7e1; border-radius: 5px; }
.rs-orders .modal-detail small { display: block; font-size: 9px; color: #777; margin-bottom: 5px; letter-spacing: .08em; text-transform: uppercase; }
.rs-orders .modal-detail strong { font-size: 11px; overflow-wrap: anywhere; }
.rs-orders .modal-totals { display: grid; gap: 8px; margin-top: 14px; }
.rs-orders .modal-totals div { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; color: #666; }
.rs-orders .modal-totals .grand { color: var(--ink); font-weight: 800; padding-top: 8px; border-top: 1px solid #f0e7e1; }
.rs-orders .modal-items { display: grid; gap: 10px; margin-bottom: 16px; }
.rs-orders .modal-item { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.rs-orders .modal-item img { width: 54px; height: 68px; object-fit: cover; border-radius: 6px; background: #f4e9e2; }
.rs-orders .modal-item strong { display: block; font-size: 12px; }
.rs-orders .modal-item small { display: block; margin-top: 3px; color: #777; font-size: 10px; }
.rs-orders .modal-item b { font-size: 12px; }
.rs-orders .modal-order-link { display: inline-flex; margin-top: 16px; }
.rs-orders .tracking-timeline { border-left: 1px solid #e4d3cb; margin: 18px 0 0 8px; padding-left: 20px; display: grid; gap: 18px; }
.rs-orders .tracking-timeline div { position: relative; }
.rs-orders .tracking-timeline div:before {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #d5c6bf;
  left: -25px;
  top: 3px;
}
.rs-orders .tracking-timeline div.complete:before { background: var(--crimson); }
.rs-orders .tracking-timeline strong { font-size: 12px; display: block; }
.rs-orders .tracking-timeline small { font-size: 10px; color: #777; display: block; margin-top: 4px; }
.rs-orders .tracking-caption { font-size: 12px; color: #777; line-height: 1.7; }

.rs-orders .review-form { display: grid; gap: 15px; }
.rs-orders .review-form + .review-form { margin-top: 8px; padding-top: 18px; border-top: 1px solid #f0e7e1; }
.rs-orders .review-product-line {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px;
  background: #fdf8f3;
  border: 1px solid #f0e5dd;
  border-radius: 8px;
}
.rs-orders .review-product-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  background: #f5e5df;
  color: var(--crimson);
  border-radius: 50%;
  font-size: 15px;
  flex-shrink: 0;
}
.rs-orders .review-product-line strong { display: block; font-size: 11px; }
.rs-orders .review-product-line small { display: block; margin-top: 3px; font-size: 9px; color: #81756e; }
.rs-orders .rating-field { border: 0; padding: 0; margin: 0; }
.rs-orders .rating-field legend,
.rs-orders .review-label { font-size: 11px; font-weight: 800; margin-bottom: 8px; display: block; }
.rs-orders .rating-field legend span,
.rs-orders .review-label span { color: var(--crimson); }
.rs-orders .rating-stars { display: flex; gap: 5px; }
.rs-orders .rating-star {
  border: 0;
  background: #f4eee9;
  width: 35px;
  height: 35px;
  border-radius: 7px;
  color: #c9bdb5;
  font-size: 22px;
  cursor: pointer;
  transition: background .18s, color .18s, transform .18s;
}
.rs-orders .rating-star:hover { transform: translateY(-2px); color: var(--rs-star); }
.rs-orders .rating-star.selected { background: #e6f4ec; color: var(--rs-star); }
.rs-orders .rating-hint { display: block; margin-top: 6px; font-size: 9px; color: #8c8079; }
.rs-orders .review-label { margin: 0 0 -9px; }
.rs-orders .review-form textarea {
  width: 100%;
  resize: vertical;
  min-height: 94px;
  border: 1px solid #e5d9d1;
  border-radius: 8px;
  padding: 11px 12px;
  font: 11px/1.6 var(--font);
  color: var(--ink);
  outline: 0;
  background: #fff;
}
.rs-orders .review-form textarea:focus,
.rs-orders .review-form select:focus,
.rs-orders .review-form input[type="number"]:focus { border-color: var(--crimson); box-shadow: 0 0 0 3px #a51c3010; }
.rs-orders .review-form select,
.rs-orders .review-form input[type="number"] {
  width: 100%;
  border: 1px solid #e5d9d1;
  border-radius: 8px;
  padding: 11px 12px;
  font: 11px/1.6 var(--font);
  color: var(--ink);
  outline: 0;
  background: #fff;
}
.rs-return-modal.modal { position: fixed; inset: 0; z-index: 1055; overflow-y: auto; outline: 0; }
.rs-return-modal.modal:not(.show) { display: none; }
.rs-return-modal.modal.show { display: flex !important; align-items: center; justify-content: center; padding: 18px; }
.rs-return-modal .modal-dialog { width: min(100%, 480px); margin: 0; pointer-events: none; }
.rs-return-modal.show .modal-dialog { pointer-events: auto; }
.rs-return-modal .modal-content.order-modal { width: 100%; max-height: 85vh; }
body:where(:has(.rs-orders)) > .modal-backdrop { position: fixed; inset: 0; z-index: 1050; background: #1a1a1a; }
body:where(:has(.rs-orders)) > .modal-backdrop.fade { opacity: 0; }
body:where(:has(.rs-orders)) > .modal-backdrop.show { opacity: .5; }
body.modal-open:where(:has(.rs-orders)) { overflow: hidden; }
.rs-orders .review-form-message { min-height: 12px; color: var(--crimson); font-size: 9px; }
.rs-orders .review-upload {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border: 1px dashed #dccdc3;
  border-radius: 8px;
  background: #fffdfa;
}
.rs-orders .review-upload strong { display: block; font-size: 10px; }
.rs-orders .review-upload small { display: block; margin-top: 3px; color: #897d75; font-size: 9px; }
.rs-orders .upload-trigger {
  white-space: nowrap;
  padding: 8px 11px;
  border-radius: 30px;
  border: 1px solid #e0d4cd;
  color: var(--crimson);
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
  background: #fff;
}
.rs-orders .upload-trigger:hover { background: #fbf1ec; }
.rs-orders .review-preview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.rs-orders .review-preview-grid[hidden] { display: none; }
.rs-orders .review-preview-item {
  height: 76px;
  overflow: hidden;
  border-radius: 7px;
  background: #f4ece6;
  border: 1px solid #eadfd8;
}
.rs-orders .review-preview-item img { width: 100%; height: 100%; object-fit: cover; }
.rs-orders .review-submit { justify-content: center; width: 100%; padding: 12px 20px; font: 700 13px/18px var(--font); }

@keyframes rsOrderModalIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1050px) {
  .rs-orders .orders-page { grid-template-columns: 210px minmax(0, 1fr); gap: 24px; }
  .rs-orders .order-tabs { gap: 13px; width: 100%; }
  .rs-orders .orders-toolbar { align-items: flex-start; flex-direction: column-reverse; }
  .rs-orders .order-search { width: 100%; margin-bottom: 0; }
  .rs-orders .order-tab { padding-bottom: 12px; }
}
@media (max-width: 767px) {
  .rs-orders .orders-hero-inner { min-height: 0; padding-top: 35px; padding-bottom: 35px; }
  .rs-orders .orders-hero .rs-para { font-size: 13px; }
  .rs-orders .order-hero-mark { width: 90px; height: 90px; flex-basis: 90px; }
  .rs-orders .order-hero-mark span { font-size: 48px; }
  .rs-orders .order-hero-mark i { font-size: 5px; }
  .rs-orders .orders-page { grid-template-columns: 1fr; gap: 25px; padding-top: 25px; padding-bottom: 48px; }
  .rs-orders .account-side { padding: 14px; }
  .rs-orders .account-welcome { padding-bottom: 12px; }
  .rs-orders .account-links { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px 0 0; }
  .rs-orders .account-links a { padding: 10px 8px; font-size: 11px; }
  .rs-orders .account-help { display: none; }
  .rs-orders .orders-heading h2 { font-size: 22px; }
  .rs-orders .orders-heading p { font-size: 11px; }
  .rs-orders .orders-heading .text-link { font-size: 10px; }
  .rs-orders .order-tabs { gap: 18px; }
  .rs-orders .order-tab { font-size: 12px; }
  .rs-orders .order-card-top { padding: 12px; }
  .rs-orders .order-card-top > div { gap: 7px; }
  .rs-orders .order-date { border: 0; padding: 0; width: 100%; }
  .rs-orders .order-product { grid-template-columns: 82px minmax(0, 1fr); gap: 13px; padding: 14px; }
  .rs-orders .product-art { height: 102px; }
  .rs-orders .product-info h3 { font-size: 12px; }
  .rs-orders .product-total { grid-column: 2; border: 0; padding-left: 0; text-align: left; display: flex; gap: 8px; align-items: center; margin-top: -5px; }
  .rs-orders .product-total small,
  .rs-orders .product-total span { display: none; }
  .rs-orders .product-total strong { margin: 0; }
  .rs-orders .order-track { padding: 4px 14px 12px; }
  .rs-orders .order-progress { padding: 0; }
  .rs-orders .progress-step { min-width: 52px; }
  .rs-orders .progress-step small { font-size: 10px; }
  .rs-orders .progress-step > span { width: 24px; height: 24px; }
  .rs-orders .track-delivery { font-size: 12px; }
  .rs-orders .order-card-bottom { align-items: flex-start; flex-direction: column; padding: 12px; }
  .rs-orders .order-actions { width: 100%; justify-content: flex-end; }
  .rs-orders .delivery-note { line-height: 1.5; }
  .rs-orders .btn-outline,
  .rs-orders .action-btn,
  .rs-orders a.btn-outline { padding: 10px 5px; }
  .rs-orders .review-upload { align-items: flex-start; flex-direction: column; }
  .rs-orders .review-preview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-orders .order-modal { padding: 25px 20px; }
  .rs-orders .orders-footer-note { margin-top: 16px; }
  .rs-orders .orders-pagination { padding-top: 15px; }
  .rs-orders .order-card:hover { transform: none; }
}
@media (max-width: 420px) {
  .rs-orders .orders-hero-inner { gap: 10px; }
  .rs-orders .order-hero-mark { display: none; }
  .rs-orders .orders-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .rs-orders .order-tabs { gap: 13px; }
  .rs-orders .order-tab { font-size: 11px; }
  .rs-orders .order-card-top { align-items: flex-start; }
  .rs-orders .status-pill { font-size: 9px; }
  .rs-orders .product-info h3 { font-size: 11px; }
  .rs-orders .order-actions { gap: 6px; }
  .rs-orders .btn-outline,
  .rs-orders .action-btn,
  .rs-orders a.btn-outline { font-size: 11px; padding: 9px 4px; }
  .rs-orders .progress-step { min-width: 46px; }
  .rs-orders .progress-step small { font-size: 9px; }
  .rs-orders .progress-line { margin-left: 2px; margin-right: 2px; }
  .rs-orders .orders-pagination { align-items: flex-start; flex-direction: column; }
}


/* ==========================================================================
   14. Wishlist page

   .rs-toast and the header wishlist link also exist on other pages, so those
   selectors are scoped to this page with :where(), which adds no specificity.
   ========================================================================== */
.rs-wishlist-shell {
  background: #fff;
  color: var(--ink);
}
.rs-wishlist-shell p,
.rs-wishlist-shell h1,
.rs-wishlist-shell h2,
.rs-wishlist-shell ol,
.rs-wishlist-shell ul {
  margin: 0;
}
.rs-wishlist-shell button,
.rs-wishlist-shell select {
  font-family: var(--font);
}

body.rs-home:where(:has(.rs-wishlist-shell)) .rs-header a[aria-label="Wishlist"] {
  color: var(--crimson);
}

.rs-wishlist-shell .rs-crumb {
  background: #fff;
  padding: 16px 0 0;
}
@media (min-width: 768px) {
  .rs-wishlist-shell .rs-crumb { padding: 20px 0 0; }
}
.rs-wishlist-shell .rs-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .rs-wishlist-shell .rs-crumb-list { font-size: 12px; gap: 8px 12px; }
}
.rs-wishlist-shell .rs-crumb-list li { min-width: 0; color: var(--grey); }
.rs-wishlist-shell .rs-crumb-list li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  color: rgba(26, 26, 26, .28);
}
@media (min-width: 768px) {
  .rs-wishlist-shell .rs-crumb-list li:not(:last-child)::after { margin-left: 12px; }
}
.rs-wishlist-shell .rs-crumb-list a { color: var(--grey); transition: color .2s; }
.rs-wishlist-shell .rs-crumb-list a:hover { color: var(--crimson); }
.rs-wishlist-shell .rs-crumb-list [aria-current="page"] {
  color: var(--ink);
  font-weight: 700;
  letter-spacing: .1em;
}

.rs-wishlist-shell .rs-wishlist-page {
  padding: 14px 0 66px;
  background: #fff;
  min-height: 55vh;
}
@media (min-width: 768px) {
  .rs-wishlist-shell .rs-wishlist-page { padding: 20px 0 88px; }
}
.rs-wishlist-shell .rs-wishlist-head { text-align: center; padding: 16px 0 26px; }
.rs-wishlist-shell .rs-wishlist-head .rs-eyebrow { margin-bottom: 10px; }
.rs-wishlist-shell .rs-wishlist-head .rs-h2 { font-size: 32px; margin: 0; }
@media (min-width: 768px) {
  .rs-wishlist-shell .rs-wishlist-head .rs-h2 { font-size: 42px; }
}
.rs-wishlist-shell .rs-wishlist-subtitle {
  margin: 12px auto 0;
  color: #777;
  font-size: 14px;
  line-height: 1.7;
  max-width: 480px;
}

.rs-wishlist-shell .rs-wishlist-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 17px 0;
  margin-bottom: 24px;
  border-top: 1px solid #E8E8E8;
  border-bottom: 1px solid #E8E8E8;
}
.rs-wishlist-shell .rs-wishlist-toolbar[hidden],
.rs-wishlist-shell .rs-wishlist-grid[hidden],
.rs-wishlist-shell .rs-wishlist-empty[hidden] {
  display: none !important;
}
.rs-wishlist-shell .rs-wishlist-count-wrap { display: flex; flex-direction: column; gap: 4px; }
.rs-wishlist-shell .rs-wishlist-count {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink);
}
.rs-wishlist-shell .rs-wishlist-count-note { font-size: 11px; color: #888; }
.rs-wishlist-shell .rs-wishlist-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}
.rs-wishlist-shell .rs-wishlist-sort { display: flex; align-items: center; gap: 8px; }
.rs-wishlist-shell .rs-sort-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--grey);
  white-space: nowrap;
}
.rs-wishlist-shell .rs-sort-select {
  font-family: var(--font);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  background: #fff;
  border: 1px solid #E8E8E8;
  border-radius: 999px;
  padding: 8px 30px 8px 14px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.rs-wishlist-shell .rs-sort-select:focus { outline: none; border-color: var(--crimson); }
.rs-wishlist-shell .rs-view { display: flex; align-items: center; gap: 4px; }
.rs-wishlist-shell .rs-view-btn {
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: 1px solid #E8E8E8;
  background: #fff;
  color: #9a9a9a;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: .2s;
}
.rs-wishlist-shell .rs-view-btn svg { width: 16px; height: 16px; }
.rs-wishlist-shell .rs-view-btn.active { color: var(--ink); border-color: var(--ink); }
.rs-wishlist-shell .rs-view-btn:hover { color: var(--crimson); border-color: var(--crimson); }
.rs-wishlist-shell .rs-move-all {
  padding: 11px 12px;
  font-family: var(--font);
  font-size: 14px;
  line-height: 17px;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
}
.rs-wishlist-shell .rs-move-all svg { width: 16px; height: 16px; }
.rs-wishlist-shell .rs-move-all:disabled { opacity: .45; cursor: not-allowed; }

.rs-wishlist-shell .rs-wishlist-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (min-width: 640px) {
  .rs-wishlist-shell .rs-wishlist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (min-width: 1024px) {
  .rs-wishlist-shell .rs-wishlist-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
}
.rs-wishlist-shell .rs-wishlist-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) {
  .rs-wishlist-shell .rs-wishlist-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .rs-wishlist-shell .rs-wishlist-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.rs-wishlist-shell .rs-wishlist-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .06);
  display: flex;
  flex-direction: column;
  transition: box-shadow .3s, transform .3s;
}
.rs-wishlist-shell .rs-wishlist-card:hover {
  box-shadow: 0 18px 44px rgba(0, 0, 0, .1);
  transform: translateY(-3px);
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-img {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: 9px;
  overflow: hidden;
  background: var(--paper);
}
.rs-wishlist-shell .rs-wishlist-image-link { display: block; width: 100%; height: 100%; }
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-img img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  transition: transform .6s ease;
}
.rs-wishlist-shell .rs-wishlist-card:hover .rs-pcard-img img { transform: scale(1.045); }
.rs-wishlist-shell .rs-wishlist-tag {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 2;
  padding: 6px 9px;
  border-radius: 4px;
  background: rgba(255, 255, 255, .94);
  color: var(--crimson);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.rs-wishlist-shell .rs-wishlist-remove-form {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  margin: 0;
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-wish {
  position: static;
  width: 35px;
  height: 35px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .95);
  border: 1px solid rgba(165, 28, 48, .4);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  color: var(--crimson);
  transition: .2s;
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-wish:hover { color: var(--crimson-d); }
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-wish svg { width: 17px; height: 17px; fill: currentColor; }
.rs-wishlist-shell .rs-wishlist-card-info {
  padding: 0 2px 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-cat {
  margin-top: 13px;
  font-size: 9px;
  letter-spacing: .18em;
  text-align: center;
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-name {
  display: block;
  width: 100%;
  min-height: 40px;
  margin-top: 5px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  color: var(--ink);
  text-decoration: none;
}
.rs-wishlist-shell .rs-wishlist-card .rs-pcard-name:hover { color: var(--crimson); }
.rs-wishlist-shell .rs-wishlist-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 7px;
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
}
.rs-wishlist-shell .rs-rating-star { color: #C58B36; font-size: 13px; }
.rs-wishlist-shell .rs-rating-reviews { font-weight: 500; color: #999; }
.rs-wishlist-shell .rs-wishlist-card .rs-price {
  display: block;
  background: transparent;
  margin-top: 7px;
  padding: 0;
  line-height: 1.4;
  text-align: center;
}
.rs-wishlist-shell .rs-wishlist-card .rs-price .mrp {
  color: #9a9a9a;
  text-decoration: line-through;
  font-size: 11px;
}
.rs-wishlist-shell .rs-wishlist-card .rs-price .now {
  color: var(--crimson);
  font-weight: 600;
  font-size: 14px;
  margin-left: 5px;
}
.rs-wishlist-shell .rs-wishlist-discount {
  display: inline-block;
  margin-left: 5px;
  color: #27834A;
  font-size: 10px;
  font-weight: 800;
}
.rs-wishlist-shell .rs-wishlist-stock {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 7px;
  color: #398255;
  font-size: 10px;
  font-weight: 700;
}
.rs-wishlist-shell .rs-wishlist-stock span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #398255;
}
.rs-wishlist-shell .rs-wishlist-stock.low-stock { color: #B36B24; }
.rs-wishlist-shell .rs-wishlist-stock.low-stock span { background: #B36B24; }
.rs-wishlist-shell .rs-wishlist-stock.out-stock { color: #9a9a9a; }
.rs-wishlist-shell .rs-wishlist-stock.out-stock span { background: #9a9a9a; }
.rs-wishlist-shell .rs-wish-add {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  margin-top: 13px;
  padding: 10px 12px;
  border: 1px solid var(--crimson);
  border-radius: 999px;
  background: var(--crimson);
  color: #fff;
  font-family: var(--font);
  font-size: 13px;
  line-height: 15px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s;
}
.rs-wishlist-shell .rs-wishlist-card-info form { width: 100%; margin: 0; }
.rs-wishlist-shell .rs-wish-add svg { width: 16px; height: 16px; flex-shrink: 0; }
.rs-wishlist-shell .rs-wish-add:hover {
  background: var(--crimson-d);
  border-color: var(--crimson-d);
  color: #fff;
  transform: translateY(-1px);
}
.rs-wishlist-shell .rs-wish-add:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}
.rs-wishlist-shell .rs-wish-remove-text {
  margin-top: 9px;
  padding: 3px 3px;
  border: 0;
  background: transparent;
  color: #8A8582;
  font-family: var(--font);
  font-size: 12px;
  line-height: 14px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rs-wishlist-shell .rs-wish-remove-text:hover { color: var(--crimson); }

.rs-wishlist-shell .rs-wishlist-empty {
  padding: 60px 20px 70px;
  text-align: center;
  border: 1px solid #eee;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #FDFBF7);
}
.rs-wishlist-shell .rs-empty-heart {
  width: 66px;
  height: 66px;
  margin: 0 auto 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F8ECEE;
  color: var(--crimson);
}
.rs-wishlist-shell .rs-empty-heart svg { width: 30px; height: 30px; }
.rs-wishlist-shell .rs-wishlist-empty .rs-eyebrow { margin-bottom: 10px; }
.rs-wishlist-shell .rs-wishlist-empty h2 { font-size: 22px; font-weight: 800; line-height: 1.3; }
.rs-wishlist-shell .rs-wishlist-empty p:not(.rs-eyebrow) {
  margin: 10px auto 22px;
  color: #777;
  font-size: 13px;
  line-height: 1.7;
}
.rs-wishlist-shell .rs-wishlist-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 30px auto 0;
  padding: 14px 18px;
  border-radius: 8px;
  background: var(--paper);
  max-width: 760px;
  color: #777;
  text-align: center;
}
.rs-wishlist-shell .rs-wishlist-note-icon { font-size: 22px; color: var(--crimson); line-height: 1; }
.rs-wishlist-shell .rs-wishlist-note p { font-size: 11px; line-height: 1.6; }

:where(body:has(.rs-wishlist-shell)) .rs-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translate(-50%, 16px);
  background: var(--ink);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
  opacity: 0;
  pointer-events: none;
  transition: .3s;
  z-index: 70;
  max-width: calc(100% - 32px);
  text-align: center;
}
:where(body:has(.rs-wishlist-shell)) .rs-toast.show { opacity: 1; transform: translate(-50%, 0); }
:where(body:has(.rs-wishlist-shell)) .rs-toast.is-error { background: #8b2e2e; }

@media (max-width: 639px) {
  .rs-wishlist-shell .rs-wishlist-head { padding: 11px 0 22px; }
  .rs-wishlist-shell .rs-wishlist-toolbar { align-items: flex-start; }
  .rs-wishlist-shell .rs-wishlist-tools { width: 100%; justify-content: space-between; gap: 9px; }
  .rs-wishlist-shell .rs-wishlist-sort { flex: 1; min-width: 0; }
  .rs-wishlist-shell .rs-wishlist-sort .rs-sort-label { display: none; }
  .rs-wishlist-shell .rs-wishlist-sort .rs-sort-select { width: 100%; min-width: 0; }
  .rs-wishlist-shell .rs-wishlist-tools .rs-view { display: none; }
  .rs-wishlist-shell .rs-move-all { padding: 10px 6px; font-size: 12px; }
  .rs-wishlist-shell .rs-wishlist-note { align-items: flex-start; text-align: left; }
}
@media (max-width: 380px) {
  .rs-wishlist-shell .rs-wishlist-grid { gap: 11px; }
  .rs-wishlist-shell .rs-wishlist-card .rs-pcard-name { font-size: 12px; }
  .rs-wishlist-shell .rs-wishlist-card .rs-price .now { font-size: 12px; }
  .rs-wishlist-shell .rs-wishlist-discount { font-size: 9px; }
  .rs-wishlist-shell .rs-wish-add { font-size: 12px; padding: 9px 6px; }
}


/* ==========================================================================
   15. About page (also used by the contact page)

   Selectors that exist on other pages (breadcrumbs, header nav, section ids, html,
   [data-reveal]) are scoped to these two pages with :where(), which adds no specificity.
   ========================================================================== */
:where(.rs-about-page) :where(h1, h2, h3, h4, p, blockquote, cite, ol, ul) { margin: 0; }
:where(.rs-about-page a) { color: inherit; text-decoration: none; }
:where(.rs-about-page img) { display: block; max-width: 100%; }

:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb { background: #fff; padding: 16px 0 0; }
@media (min-width: 768px) { :where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb { padding: 20px 0 0; } }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
}
@media (min-width: 768px) { :where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list { font-size: 12px; gap: 8px 12px; } }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list li { min-width: 0; color: var(--grey); }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  color: rgba(26, 26, 26, .28);
}
@media (min-width: 768px) { :where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list li:not(:last-child)::after { margin-left: 12px; } }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list a { color: var(--grey); transition: color .2s; }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list a:hover { color: var(--crimson); }
:where(body:has(.rs-about-page, .rs-contact-page)) .rs-crumb-list [aria-current="page"] { color: var(--ink); font-weight: 700; letter-spacing: .1em; }

:where(body:has(.rs-about-page, .rs-contact-page)) .rs-nav a.active { color: var(--crimson); }

:where(body:has(.rs-about-page, .rs-contact-page)) #story, :where(body:has(.rs-about-page, .rs-contact-page)) #philosophy, :where(body:has(.rs-about-page, .rs-contact-page)) #craft, :where(body:has(.rs-about-page, .rs-contact-page)) #quality, :where(body:has(.rs-about-page, .rs-contact-page)) #contact { scroll-margin-top: 115px; }
@media (min-width: 768px) {
  :where(body:has(.rs-about-page, .rs-contact-page)) #story, :where(body:has(.rs-about-page, .rs-contact-page)) #philosophy, :where(body:has(.rs-about-page, .rs-contact-page)) #craft, :where(body:has(.rs-about-page, .rs-contact-page)) #quality, :where(body:has(.rs-about-page, .rs-contact-page)) #contact { scroll-margin-top: 190px; }
}
html:where(:has(.rs-about-page, .rs-contact-page)) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:where(:has(.rs-about-page, .rs-contact-page)) { scroll-behavior: auto; } }

.rs-about-page .rs-btn-outline {
  background: transparent;
  border: 1px solid rgba(26, 26, 26, .22);
  color: var(--ink);
}
.rs-about-page .rs-btn-outline:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.rs-ab-lead { font-size: 15px; color: var(--grey); line-height: 1.8; max-width: 640px; margin: 18px auto 0; }
@media (min-width: 768px) { .rs-ab-lead { font-size: 16px; } }
.rs-ab-body { font-size: 15px; color: var(--grey); line-height: 1.8; margin-top: 18px; }
@media (min-width: 768px) { .rs-ab-body { font-size: 16px; } }
.rs-ab-signature { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); font-weight: 700; margin-top: 26px; }
.rs-ab-textlink { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 14px; font-weight: 600; color: var(--crimson); transition: gap .2s, color .2s; }
.rs-ab-textlink:hover { gap: 14px; color: var(--crimson-d); }

.rs-ab-hero { position: relative; overflow: hidden; background: var(--ink); }
.rs-ab-hero-media { position: absolute; inset: 0; }
.rs-ab-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.rs-ab-hero-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 26, 26, .6), rgba(26, 26, 26, .38) 45%, rgba(26, 26, 26, .68)); }
.rs-ab-hero-inner { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; height: 62vh; min-height: 500px; max-height: 640px; }
.rs-ab-hero-text { max-width: 760px; width: 100%; color: #fff; padding: 32px 0; }
.rs-ab-hero-eyebrow { font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 18px; }
@media (min-width: 768px) { .rs-ab-hero-eyebrow { font-size: 12px; } }
.rs-ab-hero-title { font-size: 44px; font-weight: 800; line-height: 1; letter-spacing: -.01em; }
@media (min-width: 768px) { .rs-ab-hero-title { font-size: 68px; } }
@media (min-width: 1024px) { .rs-ab-hero-title { font-size: 82px; } }
.rs-ab-hero-rule { width: 56px; height: 1px; background: var(--gold); margin: 24px auto; }
.rs-ab-hero-sub { font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, .9); max-width: 540px; margin: 0 auto 30px; }
@media (min-width: 768px) { .rs-ab-hero-sub { font-size: 17px; } }
.rs-ab-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

.rs-about-page .rs-about .rs-about-grid { padding: 64px 0; }
@media (min-width: 768px) { .rs-about-page .rs-about .rs-about-grid { padding: 104px 0; } }
.rs-about-page .rs-about .rs-para { max-width: 520px; }
.rs-ab-first { margin-top: 22px; }

.rs-about-page .rs-about-img {
  position: relative;
  aspect-ratio: 4 / 5;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  justify-self: center;
}
.rs-about-page .rs-about-img .rs-organic { position: absolute; inset: 0; }
.rs-about-page .rs-organic-img { position: absolute; }

.rs-ab-stats { background: #fff; border-bottom: 1px solid #E8E8E8; }
.rs-ab-stats-inner { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .rs-ab-stats-inner { grid-template-columns: repeat(4, 1fr); } }
.rs-ab-stat { padding: 30px 12px; text-align: center; border-bottom: 1px solid #F0F0F0; }
.rs-ab-stat:nth-child(odd) { border-right: 1px solid #F0F0F0; }
.rs-ab-stat:nth-child(3), .rs-ab-stat:nth-child(4) { border-bottom: none; }
@media (min-width: 768px) {
  .rs-ab-stat { padding: 40px 12px; border-bottom: none; border-right: 1px solid #F0F0F0; }
  .rs-ab-stat:last-child { border-right: none; }
}
.rs-ab-stat-num { font-size: 28px; font-weight: 800; color: var(--crimson); letter-spacing: -.02em; line-height: 1; }
@media (min-width: 768px) { .rs-ab-stat-num { font-size: 40px; } }
.rs-ab-stat-lbl { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--grey); font-weight: 600; margin-top: 10px; line-height: 1.5; }
@media (min-width: 768px) { .rs-ab-stat-lbl { font-size: 11px; } }

.rs-ab-philo { background: var(--paper); padding: 64px 0; }
@media (min-width: 768px) { .rs-ab-philo { padding: 104px 0; } }
.rs-ab-philo-inner { text-align: center; max-width: 760px; margin: 0 auto; }
.rs-ab-pillars { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 44px; }
@media (min-width: 900px) { .rs-ab-pillars { grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 56px; } }
.rs-ab-pillar { background: #fff; border: 1px solid rgba(0, 0, 0, .06); border-radius: 16px; padding: 28px 24px; transition: border-color .25s, box-shadow .25s, transform .25s; }
.rs-ab-pillar:hover { border-color: rgba(165, 28, 48, .25); box-shadow: 0 24px 50px -34px rgba(26, 26, 26, .4); transform: translateY(-4px); }
.rs-ab-pillar-ic { width: 44px; height: 44px; border-radius: 999px; background: rgba(165, 28, 48, .08); color: var(--crimson); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.rs-ab-pillar-ic svg { width: 21px; height: 21px; }
.rs-ab-pillar h3 { font-size: 17px; font-weight: 700; margin-bottom: 10px; color: var(--ink); }
@media (min-width: 768px) { .rs-ab-pillar h3 { font-size: 18px; } }
.rs-ab-pillar p { font-size: 14px; line-height: 1.8; color: var(--grey); }

.rs-ab-craft { background: #fff; padding: 64px 0; }
@media (min-width: 768px) { .rs-ab-craft { padding: 104px 0; } }
.rs-ab-craft-grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
@media (min-width: 768px) { .rs-ab-craft-grid { grid-template-columns: 1fr 1fr; gap: 72px; } }
.rs-ab-steps { display: grid; gap: 22px; margin-top: 32px; }
.rs-ab-step { display: flex; gap: 16px; }
.rs-ab-step-n { font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--crimson); padding-top: 3px; min-width: 24px; }
.rs-ab-step h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
@media (min-width: 768px) { .rs-ab-step h4 { font-size: 16px; } }
.rs-ab-step p { font-size: 14px; line-height: 1.75; color: var(--grey); }
.rs-ab-craft-media { position: relative; }
.rs-ab-craft-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; box-shadow: 0 30px 70px -40px rgba(26, 26, 26, .5); }
.rs-ab-craft-tag { position: absolute; left: 16px; bottom: 16px; background: rgba(255, 255, 255, .95); color: var(--crimson); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 8px 14px; border-radius: 999px; }

.rs-ab-quality { background: var(--paper); padding: 64px 0; }
@media (min-width: 768px) { .rs-ab-quality { padding: 104px 0; } }
.rs-ab-quality-head { text-align: center; max-width: 720px; margin: 0 auto; }
.rs-ab-checks { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 40px; }
@media (min-width: 768px) { .rs-ab-checks { grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 52px; } }
.rs-ab-check { display: flex; gap: 14px; background: #fff; border: 1px solid rgba(0, 0, 0, .06); border-radius: 12px; padding: 22px; transition: border-color .25s; }
.rs-ab-check:hover { border-color: rgba(165, 28, 48, .25); }
.rs-ab-check-ic { flex-shrink: 0; color: var(--crimson); margin-top: 2px; }
.rs-ab-check-ic svg { width: 20px; height: 20px; }
.rs-ab-check h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.rs-ab-check p { font-size: 13.5px; line-height: 1.75; color: var(--grey); }

.rs-ab-quote { background: var(--crimson); color: #fff; padding: 64px 0; }
@media (min-width: 768px) { .rs-ab-quote { padding: 88px 0; } }
.rs-ab-quote-inner { max-width: 820px; text-align: center; margin: 0 auto; }
.rs-ab-quote-mark { display: block; font-size: 56px; line-height: .6; color: var(--gold); margin-bottom: 22px; }
.rs-ab-quote blockquote { font-size: 21px; font-weight: 500; line-height: 1.55; letter-spacing: -.01em; }
@media (min-width: 768px) { .rs-ab-quote blockquote { font-size: 30px; } }
.rs-ab-quote cite { display: block; margin-top: 26px; font-style: normal; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); font-weight: 600; }

.rs-ab-cta { background: #fff; padding: 72px 0; }
@media (min-width: 768px) { .rs-ab-cta { padding: 104px 0; } }
.rs-ab-cta .rs-container { text-align: center; max-width: 760px; margin: 0 auto; }
.rs-ab-cta-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 32px; }

body.rs-js:where(:has(.rs-about-page, .rs-contact-page)) [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
body.rs-js:where(:has(.rs-about-page, .rs-contact-page)) [data-reveal].in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  body.rs-js:where(:has(.rs-about-page, .rs-contact-page)) [data-reveal] { opacity: 1; transform: none; transition: none; }
}



/* ==========================================================================
   16. Contact page

   Class names such as .form-row are also used by other pages, so every rule here
   is scoped to the contact page with :where(), which adds no specificity.
   ========================================================================== */
.rs-contact-page :where(h1, h2, h3, p, ol, ul, label) { margin: 0; }
.rs-contact-page a:not(.rs-btn) { color: inherit; text-decoration: none; }
.rs-contact-page .required-mark { color: var(--crimson); }

.rs-contact-page .rs-ab-hero-sub { margin-bottom: 18px; }
.rs-contact-page .rs-ab-hero-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .03em;
  color: rgba(255, 255, 255, .82);
}
.rs-contact-page .rs-ab-hero-note-line {
  width: 34px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

:where(body:has(.rs-contact-page)) .contact-main {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(36px, 7vw, 100px);
  padding-top: 68px;
  padding-bottom: 76px;
  align-items: start;
}
:where(body:has(.rs-contact-page)) .contact-info { padding-top: 12px; }
:where(body:has(.rs-contact-page)) .contact-info .rs-h2 {
  font-size: 32px;
  line-height: 1.2;
  margin-bottom: 16px;
  max-width: 380px;
}
:where(body:has(.rs-contact-page)) .contact-info .rs-para { margin-bottom: 28px; }
:where(body:has(.rs-contact-page)) .contact-detail {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid #eee;
}
:where(body:has(.rs-contact-page)) .contact-icon {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(165, 28, 48, .07);
  color: var(--crimson);
  font-size: 20px;
}
:where(body:has(.rs-contact-page)) .contact-detail > span:last-child { display: flex; flex-direction: column; gap: 5px; }
:where(body:has(.rs-contact-page)) .contact-detail small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--crimson);
}
:where(body:has(.rs-contact-page)) .contact-detail strong { font-size: 15px; font-weight: 700; color: var(--ink); }
:where(body:has(.rs-contact-page)) .contact-detail em { font-size: 12px; color: var(--grey); font-style: normal; line-height: 1.6; }
:where(body:has(.rs-contact-page)) .contact-detail:hover strong { color: var(--crimson); }
:where(body:has(.rs-contact-page)) .contact-hours {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding: 16px;
  background: var(--paper);
  border-radius: 8px;
}
:where(body:has(.rs-contact-page)) .hours-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4c9a67;
  box-shadow: 0 0 0 4px rgba(76, 154, 103, .12);
  flex-shrink: 0;
}
:where(body:has(.rs-contact-page)) .contact-hours span:last-child { display: flex; flex-direction: column; gap: 4px; }
:where(body:has(.rs-contact-page)) .contact-hours strong { font-size: 12px; }
:where(body:has(.rs-contact-page)) .contact-hours small { font-size: 11px; color: var(--grey); }

:where(body:has(.rs-contact-page)) .contact-form-card {
  padding: 34px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(26, 26, 26, .06);
  scroll-margin-top: 130px;
}
:where(body:has(.rs-contact-page)) .form-heading { margin-bottom: 24px; }
:where(body:has(.rs-contact-page)) .form-heading .rs-eyebrow { margin-bottom: 8px; }
:where(body:has(.rs-contact-page)) .form-heading h2 { font-size: 26px; font-weight: 800; margin-bottom: 8px; }
:where(body:has(.rs-contact-page)) .form-heading > p:last-child { font-size: 13px; color: var(--grey); line-height: 1.7; }

:where(body:has(.rs-contact-page)) .contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 17px 16px;
}
:where(body:has(.rs-contact-page)) .contact-form > input[type="hidden"] { display: none; }
:where(body:has(.rs-contact-page)) .form-row { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
:where(body:has(.rs-contact-page)) .form-row-full,
:where(body:has(.rs-contact-page)) .contact-submit,
:where(body:has(.rs-contact-page)) .form-privacy,
:where(body:has(.rs-contact-page)) .form-status { grid-column: 1 / -1; }
:where(body:has(.rs-contact-page)) .form-row label { font-size: 12px; font-weight: 700; color: var(--ink); }
:where(body:has(.rs-contact-page)) .form-row label small { font-weight: 400; color: #888; }
:where(body:has(.rs-contact-page)) .form-row input,
:where(body:has(.rs-contact-page)) .form-row select,
:where(body:has(.rs-contact-page)) .form-row .rs-select-btn,
:where(body:has(.rs-contact-page)) .form-row textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #e5e2df;
  background: #fff;
  border-radius: 6px;
  padding: 12px 13px;
  font: 400 13px var(--font);
  color: var(--ink);
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
:where(body:has(.rs-contact-page)) .form-row textarea { resize: vertical; min-height: 105px; line-height: 1.6; }
:where(body:has(.rs-contact-page)) .form-row input:focus,
:where(body:has(.rs-contact-page)) .form-row select:focus,
:where(body:has(.rs-contact-page)) .form-row .rs-select-btn:focus,
:where(body:has(.rs-contact-page)) .form-row .rs-select-btn[aria-expanded="true"],
:where(body:has(.rs-contact-page)) .form-row textarea:focus {
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px rgba(165, 28, 48, .08);
}
/* Used as-is if the script below does not run. */
:where(body:has(.rs-contact-page)) .form-row select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A4A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 16px;
}
/* Themed dropdown (redstitch-contact.js); the real select stays in the form. */
.rs-select {
  position: relative;
}
.rs-select select {
  display: none;
}
:where(body:has(.rs-contact-page)) .form-row .rs-select-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 47px;
  line-height: normal;
  text-align: left;
  cursor: pointer;
}
.rs-select-btn:hover {
  border-color: var(--crimson);
}
.rs-select-btn.is-placeholder .rs-select-value {
  color: #aaa;
}
.rs-select-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rs-select-chev {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--grey);
  transition: transform .2s;
}
.rs-select-btn[aria-expanded="true"] .rs-select-chev {
  color: var(--crimson);
  transform: rotate(180deg);
}
.rs-select-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 20;
  max-height: 290px;
  margin: 0;
  padding: 6px;
  overflow-y: auto;
  overscroll-behavior: contain;
  list-style: none;
  background: #fff;
  border: 1px solid #eee;
  border-top: 3px solid var(--crimson);
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(26, 26, 26, .14);
}
.rs-select-list[hidden] {
  display: none;
}
.rs-select.opens-up .rs-select-list {
  top: auto;
  bottom: calc(100% + 6px);
}
.rs-select-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 38px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--ink);
  border-radius: 6px;
  cursor: pointer;
}
.rs-select-option[data-index="0"] {
  color: #888;
}
.rs-select-option.is-active {
  color: var(--crimson);
  background: var(--fs-soft);
}
.rs-select-option[aria-selected="true"] {
  font-weight: 600;
  color: var(--crimson);
}
.rs-select-option[aria-selected="true"]::after {
  content: "";
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* "Choose a topic" is a prompt, not a real choice. */
.rs-select-option[data-index="0"][aria-selected="true"] {
  font-weight: 400;
  color: #888;
}
.rs-select-option[data-index="0"][aria-selected="true"]::after {
  display: none;
}
:where(body:has(.rs-contact-page)) .form-row input::placeholder,
:where(body:has(.rs-contact-page)) .form-row textarea::placeholder { color: #aaa; }
:where(body:has(.rs-contact-page)) .form-row .invalid { border-color: var(--crimson); }
:where(body:has(.rs-contact-page)) .field-error { font-size: 12px; color: var(--crimson); line-height: 1.4; }
:where(body:has(.rs-contact-page)) .contact-submit { justify-content: center; width: 100%; margin-top: 2px; }
:where(body:has(.rs-contact-page)) .form-privacy {
  font-size: 10px;
  color: #999;
  line-height: 1.6;
  text-align: center;
  margin-top: -7px;
}
:where(body:has(.rs-contact-page)) .form-status {
  font-size: 12px;
  text-align: center;
  min-height: 16px;
}
:where(body:has(.rs-contact-page)) .form-status.is-success { color: #2f7d4a; }
:where(body:has(.rs-contact-page)) .form-status.is-error { color: var(--crimson); }

:where(body:has(.rs-contact-page)) .contact-bottom { background: var(--paper); border-top: 1px solid #eee; }
:where(body:has(.rs-contact-page)) .contact-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding-top: 42px;
  padding-bottom: 42px;
}
:where(body:has(.rs-contact-page)) .contact-bottom .rs-h2 { font-size: 28px; line-height: 1.2; }
:where(body:has(.rs-contact-page)) .contact-bottom .rs-eyebrow { margin-bottom: 10px; }

@media (min-width: 768px) {
  :where(body:has(.rs-contact-page)) .contact-form-card { scroll-margin-top: 200px; }
}

@media (max-width: 767px) {
  :where(body:has(.rs-contact-page)) .contact-main {
    grid-template-columns: 1fr;
    gap: 38px;
    padding-top: 42px;
    padding-bottom: 48px;
  }
  :where(body:has(.rs-contact-page)) .contact-info { padding-top: 0; }
  :where(body:has(.rs-contact-page)) .contact-info .rs-h2 { font-size: 28px; }
  :where(body:has(.rs-contact-page)) .contact-form-card { padding: 22px 18px; }
  :where(body:has(.rs-contact-page)) .form-heading h2 { font-size: 23px; }
  :where(body:has(.rs-contact-page)) .contact-bottom-inner {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 34px;
    padding-bottom: 34px;
  }
  :where(body:has(.rs-contact-page)) .contact-bottom .rs-h2 { font-size: 25px; }
  .rs-contact-page .rs-ab-hero-note { font-size: 11px; }
}

@media (max-width: 480px) {
  :where(body:has(.rs-contact-page)) .contact-form { grid-template-columns: 1fr; }
  :where(body:has(.rs-contact-page)) .form-row-full,
  :where(body:has(.rs-contact-page)) .contact-submit,
  :where(body:has(.rs-contact-page)) .form-privacy,
  :where(body:has(.rs-contact-page)) .form-status { grid-column: auto; }
}


/* ==========================================================================
   17. Product cards: Virtual Try-On button at the bottom

   Applies wherever the button is a direct child of .rs-pcard (listing, home and
   related products). Only position and size change, so its colours, icon and hover
   still come from the rules above. The element before the button takes the spare
   height, which keeps the buttons aligned along the bottom of each row.
   ========================================================================== */
.rs-pcard:has(> .rs-tryon) {
  display: flex;
  flex-direction: column;
}

.rs-pcard:has(> .rs-tryon) > :nth-last-child(2) {
  margin-bottom: auto;
}

body.rs-home .rs-pcard > button.btn-store.rs-tryon {
  position: static;
  justify-content: center;
  width: 100%;
  max-width: none;
  margin-top: 12px;
  padding: 9px 12px;
  text-align: center;
}


/* ==========================================================================
   18. Testimonials carousel: 3 cards desktop, 2 tablet, 1 mobile

   Card widths subtract the 24px gap of .rs-testi-track. The base .rs-tcard rule
   stays at 100%, which is the mobile view. scroll-padding keeps a snapped card
   lined up with the container instead of the track's padded edge.
   ========================================================================== */
.rs-testi .rs-testi-track {
  scroll-padding-inline: 16px;
}

@media (min-width: 992px) {
  .rs-testi .rs-tcard {
    width: calc((100% - 48px) / 3);
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .rs-testi .rs-tcard {
    width: calc((100% - 24px) / 2);
    padding: 32px;
  }
}


/* ==========================================================================
   19. Home showcase cards (Freshly Arrived / Best Sellers)

   The card from partials/product-card.blade.php, used on every page. .rs-edit-grid is
   the home showcase only: two cards per row where the column can hold them, one per
   row on small phones and on tablets, where the column is too narrow for two.
   ========================================================================== */
.rs-product-grid.rs-edit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.rs-edit-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 8px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 16px;
  box-shadow: 0 14px 34px -22px rgba(26,26,26,.35);
  transition: box-shadow .25s ease;
}

.rs-edit-card:hover {
  box-shadow: 0 22px 44px -22px rgba(26,26,26,.45);
}

.rs-edit-media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 2 / 3;
  border-radius: 12px;
  background: var(--paper);
  touch-action: pan-y;
}

.rs-edit-media-link {
  position: absolute;
  inset: 0;
  display: block;
}

.rs-edit-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .45s ease;
}

.rs-edit-slide.is-active {
  opacity: 1;
}

.rs-edit-dots {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 2px 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
}

.rs-edit-dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  padding: 0;
  border: 0;
  background: none;
}

.rs-edit-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(26,26,26,.3);
  transition: background .2s, transform .2s;
}

.rs-edit-dot:hover::before {
  background: rgba(26,26,26,.6);
}

.rs-edit-dot.is-active::before {
  background: var(--crimson);
  transform: scale(1.3);
}

.rs-edit-dot[hidden] {
  display: none;
}

.rs-edit-dot:focus-visible {
  outline: 2px solid var(--crimson);
  border-radius: 50%;
}

@media (pointer: coarse) {
  .rs-edit-dot {
    width: 22px;
    height: 22px;
  }
}

.rs-edit-badge {
  position: absolute;
  left: 0;
  bottom: 14px;
  z-index: 2;
  padding: 6px 18px 6px 10px;
  background: var(--crimson);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%);
  pointer-events: none;
}

.rs-edit-info {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 14px 6px 6px;
}

.rs-edit-cat {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--crimson);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.rs-edit-cat span {
  min-width: 0;
  text-align: center;
}

.rs-edit-cat::before,
.rs-edit-cat::after {
  content: "";
  flex: 1;
  min-width: 10px;
  height: 1px;
  background: rgba(26,26,26,.15);
}

.rs-edit-name {
  margin-top: 10px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}

.rs-edit-name a {
  color: inherit;
  text-decoration: none;
}

.rs-edit-name a:hover {
  color: var(--crimson);
}

/* The name's link stretches over the whole card. The image area and the buttons sit
   above it, so they keep their own actions. */
.rs-edit-card {
  position: relative;
}

.rs-edit-name a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.rs-edit-media {
  z-index: 2;
}

.rs-edit-info button,
.rs-edit-info .rs-wish-add {
  position: relative;
  z-index: 2;
}

.rs-edit-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  margin-top: 8px;
}

.rs-edit-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
}

.rs-edit-stars {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  width: 73px;
  height: 13px;
}

.rs-edit-stars-base,
.rs-edit-stars-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  gap: 2px;
  height: 13px;
  overflow: hidden;
}

.rs-edit-stars-base {
  width: 100%;
  color: rgba(0,0,0,.12);
}

.rs-edit-stars-fill {
  color: var(--rs-star);
}

.rs-edit-stars svg {
  flex: 0 0 13px;
  width: 13px;
  height: 13px;
  fill: currentColor;
}

.rs-edit-reviews {
  color: var(--grey);
  font-size: 12px;
  line-height: 1.3;
}

.rs-edit-price {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  margin-top: 10px;
  margin-bottom: 14px;
}

.rs-edit-mrp {
  color: #9a9a9a;
  font-size: 13px;
  text-decoration: line-through;
}

.rs-edit-now {
  color: var(--crimson);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.rs-edit-off {
  padding: 3px 6px;
  border-radius: 4px;
  background: #fdeff2;
  color: var(--crimson);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

/* Sizes on the product card. View only: choosing a size happens on the product page. */
.rs-edit-sizes {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: -4px;
  margin-bottom: 14px;
}

.rs-edit-sizes-label {
  flex-shrink: 0;
  color: var(--grey);
  font-size: 12px;
  font-weight: 500;
  line-height: 22px;
}

.rs-edit-sizes-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rs-edit-size {
  min-width: 22px;
  padding: 0 6px;
  border-radius: 4px;
  background: var(--paper);
  box-shadow: inset 0 0 0 1px rgba(26,26,26,.1);
  color: var(--ink);
  font-size: 11px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  text-transform: uppercase;
}

.rs-edit-size.is-oos {
  background: transparent;
  color: #9a9a9a;
  text-decoration: line-through;
}

.rs-edit-size-note {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* Shared Virtual Try-On button: product cards and the product page. */
body.rs-home .rs-edit-card button.rs-edit-tryon,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  max-width: none;
  margin-top: auto;
  padding: 10px 8px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--crimson) 0%, var(--crimson-d) 100%);
  box-shadow: 0 0 0 1px rgba(165,28,48,.35), 0 0 16px 3px rgba(165,28,48,.45);
  backdrop-filter: none;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  transition: box-shadow .45s ease, filter .45s ease;
}

body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon {
  position: relative;
  margin-top: 0;
}

body.rs-home .rs-edit-card button.rs-edit-tryon {
  position: relative;
  z-index: 2;
}

body.rs-home .rs-edit-card button.rs-edit-tryon::before,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon::before {
  content: "";
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M21 17v2a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3Ccircle cx='12' cy='9.5' r='3'/%3E%3Cpath d='M7 18c.8-2.5 2.6-3.5 5-3.5s4.200 1 5 3.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M21 17v2a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3Ccircle cx='12' cy='9.5' r='3'/%3E%3Cpath d='M7 18c.8-2.5 2.6-3.5 5-3.5s4.200 1 5 3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.rs-home .rs-edit-card button.rs-edit-tryon:hover,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:hover {
  border-color: #fff;
  background: linear-gradient(180deg, var(--crimson) 0%, var(--crimson-d) 100%);
  box-shadow: 0 0 0 1px rgba(165,28,48,.5), 0 0 22px 5px rgba(165,28,48,.55);
  color: #fff;
  filter: brightness(1.06);
}

body.rs-home .rs-edit-card button.rs-edit-tryon:focus-visible,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:focus-visible {
  outline: 2px solid var(--crimson);
  outline-offset: 2px;
}

/* Soft halo that fades in on hover and breathes slowly. The fade runs on opacity and the
   breathing on box-shadow, so neither interrupts the other when the pointer leaves. */
body.rs-home .rs-edit-card button.rs-edit-tryon::after,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  box-shadow: 0 0 18px 3px rgba(165,28,48,.38), 0 0 38px 8px rgba(165,28,48,.16);
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}

body.rs-home .rs-edit-card button.rs-edit-tryon:focus-visible::after,
body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:focus-visible::after {
  opacity: 1;
}

@media (hover: hover) {
  body.rs-home .rs-edit-card button.rs-edit-tryon:hover::after,
  body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:hover::after {
    opacity: 1;
    animation: rs-tryon-breathe 2.6s ease-in-out infinite alternate;
  }
}

@keyframes rs-tryon-breathe {
  to {
    box-shadow: 0 0 24px 5px rgba(165,28,48,.46), 0 0 48px 12px rgba(165,28,48,.2);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.rs-home .rs-edit-card button.rs-edit-tryon:hover::after,
  body.rs-home .rs-pdp button.btn-store.rs-pdp-tryon:hover::after {
    animation: none;
  }
}

/* Listing, wishlist and related cards sit two per row on phones, too narrow for the full size. */
@media (max-width: 767px) {
  body.rs-home .rs-listing .rs-edit-card button.rs-edit-tryon,
  body.rs-home .rs-maylike .rs-edit-card button.rs-edit-tryon {
    gap: 6px;
    min-height: 44px;
    padding: 8px 4px;
    font-size: 13px;
  }

  body.rs-home .rs-listing .rs-edit-card button.rs-edit-tryon::before,
  body.rs-home .rs-maylike .rs-edit-card button.rs-edit-tryon::before {
    flex-basis: 18px;
    width: 18px;
    height: 18px;
  }

  .rs-listing .rs-edit-dots,
  .rs-maylike .rs-edit-dots {
    top: 8px;
    left: 8px;
    flex-wrap: wrap;
    max-width: calc(100% - 60px);
  }

  .rs-listing .rs-edit-dot,
  .rs-maylike .rs-edit-dot {
    width: 14px;
  }

  .rs-listing .rs-edit-info,
  .rs-maylike .rs-edit-info {
    padding: 10px 2px 4px;
  }

  .rs-listing .rs-edit-cat,
  .rs-maylike .rs-edit-cat {
    letter-spacing: .12em;
  }

  .rs-listing .rs-edit-name,
  .rs-maylike .rs-edit-name {
    font-size: 14px;
  }

  .rs-listing .rs-edit-now,
  .rs-maylike .rs-edit-now {
    font-size: 17px;
  }
}

@media (max-width: 360px) {
  body.rs-home .rs-listing .rs-edit-card button.rs-edit-tryon,
  body.rs-home .rs-maylike .rs-edit-card button.rs-edit-tryon {
    gap: 4px;
    font-size: 12px;
    white-space: normal;
  }
}

/* The listing filter sidebar narrows its cards at these widths too. */
@media (min-width: 1024px) and (max-width: 1249px) {
  body.rs-home .rs-listing .rs-edit-card button.rs-edit-tryon {
    gap: 4px;
    min-height: 44px;
    padding: 8px 2px;
    font-size: 12px;
  }

  body.rs-home .rs-listing .rs-edit-card button.rs-edit-tryon::before {
    flex-basis: 16px;
    width: 16px;
    height: 16px;
  }
}

/* Wishlist: the same card, keeping its stock line, Add to Cart and remove controls. */
.rs-wishlist-shell .rs-wishlist-card.rs-edit-card {
  padding: 8px;
  border-radius: 16px;
  box-shadow: 0 14px 34px -22px rgba(26,26,26,.35);
  transition: box-shadow .25s ease;
}

.rs-wishlist-shell .rs-wishlist-card.rs-edit-card:hover {
  box-shadow: 0 22px 44px -22px rgba(26,26,26,.45);
  transform: none;
}

.rs-wishlist-shell .rs-wishlist-card .rs-wishlist-remove-form {
  top: 12px;
  right: 12px;
}

.rs-wishlist-shell .rs-wishlist-card-info.rs-edit-info {
  align-items: stretch;
  padding: 14px 6px 6px;
}

.rs-wishlist-shell .rs-wishlist-card .rs-edit-price {
  margin-bottom: 0;
}

.rs-wishlist-shell .rs-wishlist-card .rs-wishlist-stock {
  margin-bottom: auto;
  padding-bottom: 4px;
}

.rs-wishlist-shell .rs-wish-remove-text {
  align-self: center;
}

@media (max-width: 767px) {
  .rs-wishlist-shell .rs-wishlist-card-info.rs-edit-info {
    padding: 10px 2px 4px;
  }
}

@media (min-width: 1280px) {
  .rs-edit-name {
    font-size: 17px;
  }

  .rs-edit-now {
    font-size: 22px;
  }
}

@media (min-width: 768px) and (max-width: 1023px), (max-width: 479px) {
  .rs-product-grid.rs-edit-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .rs-edit-grid .rs-edit-media {
    aspect-ratio: 3 / 4;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rs-edit-slide {
    transition: none;
  }
}

.rs-edit-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.rs-edit-tab-ic {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
}

.rs-edit-tab:not(.active) .rs-edit-tab-ic {
  color: var(--crimson);
}

@media (max-width: 360px) {
  .rs-edit-tab {
    gap: 4px;
    padding-inline: 8px;
    font-size: 14px;
  }

  .rs-edit-tab-ic {
    flex-basis: 16px;
    width: 16px;
    height: 16px;
  }
}

/* Homepage showcase tabs fill the column above the product cards. */
#showcase .rs-tabs {
  display: flex;
  width: 100%;
}

#showcase .rs-edit-tab {
  flex: 1 1 0;
  justify-content: center;
}

@media (min-width: 1024px) {
  #showcase .rs-edit-tab {
    gap: 10px;
    padding: 15px 24px;
    font-size: 17px;
    line-height: 22px;
  }

  #showcase .rs-edit-tab-ic {
    flex-basis: 22px;
    width: 22px;
    height: 22px;
  }
}

/* ==========================================================================
   20. Order details page
   Every selector is prefixed with .rs-order-detail.
   Existing homepage, listing, checkout, profile, and contact rules are not changed.
   ========================================================================== */

.rs-order-detail {
  --od-line: #E8E8E8;
  --od-muted: var(--grey);
  --od-soft: var(--paper);
  color: var(--ink);
  background: var(--paper);
}
.rs-order-detail [hidden] { display: none !important; }
.rs-order-detail h1,
.rs-order-detail h2,
.rs-order-detail h3,
.rs-order-detail p { margin: 0; }
.rs-order-detail button,
.rs-order-detail input,
.rs-order-detail select,
.rs-order-detail textarea { font-family: inherit; }
.rs-order-detail img { display: block; max-width: 100%; }
.rs-order-detail a { color: inherit; }

.rs-order-detail .od-hero { background: var(--paper); }

.rs-order-detail .od-hero-inner {
  position: relative;
  z-index: 1;
  padding-top: 40px;
  padding-bottom: 40px;
}

.rs-order-detail .od-back {
  display: inline-flex;
  margin-bottom: 20px;
  color: var(--grey);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: color .2s;
}

.rs-order-detail .od-back:hover { color: var(--crimson); }
.rs-order-detail .od-hero-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 24px;
}

/* Same label with a trailing line as the home page Atelier section. */
.rs-order-detail .od-hero-head > div {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}

.rs-order-detail .od-hero .rs-eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
}

.rs-order-detail .od-hero .rs-eyebrow::after {
  content: "";
  flex: 0 1 200px;
  min-width: 12px;
  height: 1px;
  background: var(--crimson);
  opacity: .45;
}

.rs-order-detail .od-hero .rs-para {
  max-width: 520px;
  margin-top: 16px;
  margin-bottom: 0;
}

.rs-order-detail .od-pill,
.rs-order-detail .od-pay-pill,
.rs-order-detail .od-return-pill,
.rs-order-detail .od-window {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 30px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.rs-order-detail .od-pill { flex-shrink: 0; margin-bottom: 8px; }
.rs-order-detail .od-pill i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.rs-order-detail .is-shipped { color: #8b5a12; background: #fff2d9; }
.rs-order-detail .is-delivered,
.rs-order-detail .is-paid,
.rs-order-detail .od-return-pill.approved,
.rs-order-detail .od-return-pill.received { color: #27734b; background: #e7f5eb; }
.rs-order-detail .is-processing,
.rs-order-detail .is-pending { color: var(--crimson); background: rgba(165,28,48,.08); }
.rs-order-detail .is-cancelled,
.rs-order-detail .is-failed,
.rs-order-detail .od-return-pill.rejected { color: #a33131; background: #fcebea; }
.rs-order-detail .is-closed,
.rs-order-detail .is-refunded,
.rs-order-detail .od-return-pill.refunded { color: #6b625c; background: #f3eeea; }
.rs-order-detail .od-return-pill { color: var(--crimson); background: rgba(165,28,48,.08); }
.rs-order-detail .od-window {
  color: #6d625c;
  background: #f4efec;
  border: 1px solid #e3d6cf;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
  padding: 4px 9px;
}

.rs-order-detail .od-account {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
}

.rs-order-detail .od-account::-webkit-scrollbar { display: none; }

.rs-order-detail .od-account a {
  padding: 10px 21px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 15px;
  line-height: 18px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: all .2s;
}

.rs-order-detail .od-account a:hover { color: var(--crimson); }

.rs-order-detail .od-account a[aria-current="page"],
.rs-order-detail .od-account a[aria-current="page"]:hover {
  background: var(--crimson);
  color: #fff;
}

.rs-order-detail .od-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  align-items: start;
  padding-top: 48px;
  padding-bottom: 80px;
}

.rs-order-detail .od-facts-band {
  background: #fff;
  border-top: 1px solid var(--od-line);
  border-bottom: 1px solid var(--od-line);
}

.rs-order-detail .od-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px 32px;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 32px;
  padding-bottom: 32px;
  list-style: none;
}

.rs-order-detail .od-facts li {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.rs-order-detail .od-facts li > div { min-width: 0; }

.rs-order-detail .od-fact-ic {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: rgba(165,28,48,.08);
  color: var(--crimson);
}

.rs-order-detail .od-fact-ic svg { width: 20px; height: 20px; }

.rs-order-detail .od-facts span {
  display: block;
  color: var(--grey);
  font-size: 13px;
  line-height: 1.3;
}

.rs-order-detail .od-track-box span,
.rs-order-detail .od-notes span,
.rs-order-detail .od-meta dt,
.rs-order-detail .od-billing > span {
  display: block;
  color: var(--grey);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.rs-order-detail .od-main,
.rs-order-detail .od-side { min-width: 0; }

.rs-order-detail .od-facts strong {
  display: block;
  margin-top: 4px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: break-word;
}

.rs-order-detail .od-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 16px;
  box-shadow: 0 14px 34px -22px rgba(26,26,26,.35);
  padding: 24px;
}

.rs-order-detail .od-card + .od-card,
.rs-order-detail .od-side .od-card + .od-card { margin-top: 24px; }

.rs-order-detail .od-card-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}

.rs-order-detail .od-kicker {
  margin-bottom: 8px;
  color: var(--crimson);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
}

.rs-order-detail .od-card h2 {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
}

.rs-order-detail .od-card h2 span {
  margin-left: 6px;
  color: var(--crimson);
  font-size: 14px;
  font-weight: 700;
}

.rs-order-detail .od-text-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--crimson);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.rs-order-detail .od-text-link:hover { color: var(--crimson-d); }
.rs-order-detail .od-text-link span { font-size: 15px; }

.rs-order-detail .od-note {
  margin: 8px 0 18px;
  color: var(--od-muted);
  font-size: 14px;
  line-height: 1.6;
}

.rs-order-detail .od-quiet {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  color: var(--od-muted);
  font-size: 13px;
  line-height: 1.6;
}

.rs-order-detail .order-progress {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin: 6px 0 22px;
  overflow-x: auto;
  scrollbar-width: none;
}

.rs-order-detail .order-progress::-webkit-scrollbar { display: none; }

.rs-order-detail .progress-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 76px;
  color: #b0a8a3;
}

.rs-order-detail .progress-step > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1.5px solid #ddd4ce;
  border-radius: 50%;
  background: #f3f1ef;
  color: #a39b96;
  font-size: 13px;
  font-weight: 700;
}

.rs-order-detail .progress-step > span svg { width: 15px; height: 15px; display: block; }
.rs-order-detail .progress-step small { font-size: 13px; font-weight: 600; white-space: nowrap; }
.rs-order-detail .progress-step.done,
.rs-order-detail .progress-step.current,
.rs-order-detail .progress-step.done small,
.rs-order-detail .progress-step.current small { color: var(--crimson); }
.rs-order-detail .progress-step.done > span { background: var(--crimson); border-color: var(--crimson); color: #fff; }
.rs-order-detail .progress-step.current > span {
  background: #fff;
  border: 1.5px solid var(--crimson);
  color: var(--crimson);
  box-shadow: 0 0 0 4px #a51c3014;
}

.rs-order-detail .progress-line {
  flex: 1;
  height: 2px;
  margin: 15px 6px 0;
  background: #e4ddd8;
}
.rs-order-detail .progress-line.done { background: var(--crimson); }

.rs-order-detail .od-timeline {
  display: grid;
  gap: 16px;
  margin: 0 0 4px 8px;
  padding: 0 0 0 22px;
  border-left: 1px solid #e4d3cb;
  list-style: none;
}

.rs-order-detail .od-timeline li { position: relative; }

.rs-order-detail .od-timeline li::before {
  content: "";
  position: absolute;
  left: -27px;
  top: 4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #d5c6bf;
}

.rs-order-detail .od-timeline li.is-complete::before { background: var(--crimson); }
.rs-order-detail .od-timeline strong { display: block; font-size: 15px; font-weight: 600; }
.rs-order-detail .od-timeline span { display: block; margin-top: 4px; color: var(--grey); font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }

.rs-order-detail .od-track-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.rs-order-detail .od-track-box div,
.rs-order-detail .od-notes {
  padding: 14px;
  background: var(--od-soft);
  border: 1px solid var(--od-line);
  border-radius: 12px;
}

.rs-order-detail .od-track-box strong,
.rs-order-detail .od-notes p {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.rs-order-detail .od-track-code { font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.rs-order-detail .od-notes { margin-top: 14px; }
.rs-order-detail .od-notes p { color: var(--ink); font-weight: 600; white-space: pre-wrap; }

.rs-order-detail .od-item {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  gap: 8px 18px;
  padding: 20px 0;
  border-top: 1px solid var(--od-line);
}

.rs-order-detail .od-item:first-of-type { border-top: 0; }

.rs-order-detail .od-art {
  position: relative;
  display: grid;
  place-items: center;
  width: 104px;
  height: 132px;
  overflow: hidden;
  border-radius: 12px;
  background: var(--paper);
}

.rs-order-detail .od-art:not(:has(img))::before {
  content: "✦";
  color: var(--crimson);
  font-size: 18px;
}

.rs-order-detail .od-art a,
.rs-order-detail .od-art img { width: 100%; height: 100%; }
.rs-order-detail .od-art img { object-fit: cover; }

.rs-order-detail .od-item-info { min-width: 0; padding-top: 2px; }
.rs-order-detail .od-category { margin-bottom: 6px; color: var(--crimson); font-size: 10px; font-weight: 600; letter-spacing: .2em; }
.rs-order-detail .od-item-info h3 { font-size: 16px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.rs-order-detail .od-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.rs-order-detail .od-chips li { padding: 4px 8px; border-radius: 4px; background: var(--paper); box-shadow: inset 0 0 0 1px rgba(26,26,26,.1); color: var(--grey); font-size: 12px; }
.rs-order-detail .od-chips strong { color: var(--ink); font-weight: 600; }
.rs-order-detail .od-return-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; color: var(--od-muted); font-size: 12px; }

.rs-order-detail .od-price { text-align: right; padding-top: 2px; }
.rs-order-detail .od-price strong { display: block; color: var(--crimson); font-size: 20px; font-weight: 700; line-height: 1.2; }
.rs-order-detail .od-price small { display: block; margin-top: 4px; color: var(--grey); font-size: 12px; }

.rs-order-detail .od-item-actions {
  grid-column: 2 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rs-order-detail .od-item-actions .rs-btn,
.rs-order-detail .od-submit {
  text-decoration: none;
}

.rs-order-detail .od-submit { justify-self: start; }

.rs-order-detail .rs-btn-line {
  background: #fff;
  color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--od-line);
}
.rs-order-detail .rs-btn-line:hover { box-shadow: inset 0 0 0 1px var(--crimson); color: var(--crimson); background: #fff; }

.rs-order-detail .od-review {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  margin-top: 6px;
  padding: 16px;
  scroll-margin-top: 150px;
  background: var(--od-soft);
  border: 1px solid var(--od-line);
  border-radius: 14px;
}

.rs-order-detail .od-review-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rs-order-detail .od-review-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(165,28,48,.08);
  color: var(--crimson);
}

.rs-order-detail .od-review-head strong,
.rs-order-detail .od-address-name { display: block; font-size: 15px; font-weight: 600; }
.rs-order-detail .od-review-head small { display: block; margin-top: 2px; color: var(--grey); font-size: 13px; }

.rs-order-detail .od-rating { margin: 0; padding: 0; border: 0; }
.rs-order-detail .od-rating legend,
.rs-order-detail .od-label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.rs-order-detail .required-mark { color: var(--crimson); }
.rs-order-detail .od-stars { display: flex; gap: 6px; }

.rs-order-detail .rating-star {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--od-line);
  color: #c9c9c9;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.rs-order-detail .rating-star:hover,
.rs-order-detail .rating-star.selected { background: #e6f4ec; color: var(--rs-star); }
.rs-order-detail .rating-hint { display: block; margin-top: 6px; color: var(--grey); font-size: 12px; }

.rs-order-detail textarea,
.rs-order-detail select,
.rs-order-detail input[type="number"] {
  width: 100%;
  border: 1px solid var(--od-line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  padding: 12px;
  font-size: 14px;
  line-height: 1.5;
  outline: none;
}

.rs-order-detail textarea { min-height: 110px; resize: vertical; }
.rs-order-detail textarea:focus,
.rs-order-detail select:focus,
.rs-order-detail input[type="number"]:focus { border-color: var(--crimson); box-shadow: 0 0 0 3px #a51c3014; }

.rs-order-detail .od-upload {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px dashed #d6d6d6;
  border-radius: 12px;
  background: #fff;
}

.rs-order-detail .od-upload strong { display: block; font-size: 13px; }
.rs-order-detail .od-upload small { display: block; margin-top: 3px; color: var(--grey); font-size: 12px; }

.rs-order-detail .od-upload-btn {
  padding: 8px 12px;
  border: 1px solid var(--od-line);
  border-radius: 999px;
  background: #fff;
  color: var(--crimson);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}

.rs-order-detail .od-upload-btn:hover { background: var(--paper); }
.rs-order-detail .od-preview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.rs-order-detail .od-preview figure { margin: 0; height: 76px; overflow: hidden; border: 1px solid #eadfd8; border-radius: 8px; background: #f4ece6; }
.rs-order-detail .od-preview img { width: 100%; height: 100%; object-fit: cover; }
.rs-order-detail .od-form-message { min-height: 16px; color: var(--crimson); font-size: 12px; line-height: 1.5; }
.rs-order-detail .od-empty { padding: 18px 0 6px; color: var(--od-muted); font-size: 14px; }
.rs-order-detail .od-side { position: sticky; top: 176px; }
.rs-order-detail .od-pay-method { margin: 10px 0 12px; font-size: 15px; font-weight: 600; }
.rs-order-detail .od-meta { display: grid; gap: 12px; margin: 16px 0 0; }
.rs-order-detail .od-meta div + div { padding-top: 12px; border-top: 1px solid var(--od-line); }
.rs-order-detail .od-meta dd { margin: 6px 0 0; font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }

.rs-order-detail .od-totals { display: grid; gap: 10px; margin: 16px 0 0; }
.rs-order-detail .od-totals div { display: flex; justify-content: space-between; gap: 16px; color: var(--grey); font-size: 15px; }
.rs-order-detail .od-totals dt { font-weight: 500; }
.rs-order-detail .od-totals dt em { font-style: normal; color: var(--grey); }
.rs-order-detail .od-totals dd { margin: 0; font-weight: 600; color: var(--ink); text-align: right; }
.rs-order-detail .od-totals .is-grand { margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--od-line); color: var(--ink); align-items: baseline; }
.rs-order-detail .od-totals .is-grand dt { color: var(--ink); font-size: 16px; font-weight: 700; }
.rs-order-detail .od-totals .is-grand dd { color: var(--crimson); font-size: 20px; font-weight: 700; }

.rs-order-detail address { margin-top: 8px; color: var(--grey); font-size: 15px; font-style: normal; line-height: 1.7; overflow-wrap: anywhere; }
.rs-order-detail .od-address-name { margin-top: 12px; }
.rs-order-detail .od-contact { display: block; margin-top: 8px; color: var(--crimson); font-size: 14px; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.rs-order-detail .od-contact:hover { color: var(--crimson-d); }
.rs-order-detail .od-billing { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--od-line); }
.rs-order-detail .od-help {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 16px 24px;
}
.rs-order-detail .od-help-copy { flex: 1 1 280px; min-width: 0; }
.rs-order-detail .od-help p { margin-top: 6px; color: var(--od-muted); font-size: 15px; line-height: 1.6; }
.rs-order-detail .od-help-links {
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px 24px;
  min-width: 0;
}
.rs-order-detail .od-help-links .od-contact { margin-top: 0; }

.rs-order-detail .od-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: #1a1a1a80;
}

.rs-order-detail .od-modal-panel {
  position: relative;
  width: min(100%, 520px);
  max-height: min(86vh, 760px);
  overflow: auto;
  padding: 28px 26px 24px;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 28px 90px #170b0b35;
}

.rs-order-detail .od-modal-panel .rs-eyebrow { margin-bottom: 8px; }
.rs-order-detail .od-modal-panel h2 { margin-bottom: 16px; font-size: 28px; font-weight: 800; line-height: 1.2; }
.rs-order-detail .od-modal-panel form { display: grid; gap: 12px; }
.rs-order-detail .od-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  border: 0;
  background: none;
  color: #777;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.rs-order-detail a:focus-visible,
.rs-order-detail button:focus-visible,
.rs-order-detail input:focus-visible,
.rs-order-detail select:focus-visible,
.rs-order-detail textarea:focus-visible {
  outline: 2px solid var(--crimson);
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .rs-order-detail .od-layout { grid-template-columns: 1fr; padding-bottom: 56px; }
  .rs-order-detail .od-side { position: static; }
  .rs-order-detail .od-facts { grid-template-columns: 1fr 1fr; }
  .rs-order-detail .od-hero-head { align-items: flex-start; flex-direction: column; gap: 14px; }
  .rs-order-detail .od-help { flex-wrap: wrap; }
  .rs-order-detail .od-help-links { flex-basis: 100%; justify-content: flex-start; }
}

@media (max-width: 720px) {
  .rs-order-detail .od-hero-inner { padding-top: 28px; padding-bottom: 28px; }
  .rs-order-detail .od-layout { padding-top: 32px; }
  .rs-order-detail .od-facts { padding-top: 24px; padding-bottom: 24px; gap: 20px 16px; }
  .rs-order-detail .od-hero-head { align-items: flex-start; flex-direction: column; gap: 14px; }
  .rs-order-detail .od-card { padding: 16px; border-radius: 14px; }
  .rs-order-detail .od-card h2 { font-size: 20px; }
  .rs-order-detail .od-item { grid-template-columns: 88px minmax(0, 1fr); }
  .rs-order-detail .od-art { width: 88px; height: 112px; }
  .rs-order-detail .od-price { grid-column: 2; display: flex; gap: 8px; align-items: baseline; text-align: left; }
  .rs-order-detail .od-price small { margin-top: 0; }
  .rs-order-detail .od-item-actions { grid-column: 1 / -1; }
  .rs-order-detail .od-item-actions .rs-btn { flex: 1 1 160px; justify-content: center; }
  .rs-order-detail .od-preview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-order-detail .od-upload { align-items: flex-start; flex-direction: column; }
  .rs-order-detail .progress-step { min-width: 64px; }
  .rs-order-detail .progress-step small { font-size: 11px; }
  .rs-order-detail .od-modal-panel { padding: 24px 16px 18px; }
  .rs-order-detail .od-modal-panel h2 { font-size: 24px; }
}

@media (max-width: 575px) {
  .rs-order-detail .od-facts { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .rs-order-detail .od-card-head { align-items: flex-start; flex-direction: column; }
  .rs-order-detail .progress-step { min-width: 56px; }
  .rs-order-detail .od-item-actions { flex-direction: column; }
  .rs-order-detail .od-item-actions .rs-btn { flex: 0 0 auto; width: 100%; }
  .rs-order-detail .od-hero .rs-eyebrow { flex-wrap: wrap; white-space: normal; }
  .rs-order-detail .od-hero .rs-eyebrow::after { display: none; }
}

.rs-orders .product-art > a,
.rs-orders .modal-item > a {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.rs-orders .product-info h3 a,
.rs-orders .modal-item strong a,
.rs-order-detail .od-item-info h3 a {
  color: inherit;
  text-decoration: none;
}
.rs-orders .product-info h3 a:hover,
.rs-orders .modal-item strong a:hover,
.rs-order-detail .od-item-info h3 a:hover { color: var(--crimson); }

/* ==========================================================================
   21. Customer phone OTP login
   ========================================================================== */
.rs-otp-page {
  display: flex;
  justify-content: center;
  padding: 64px 16px 80px;
  background: var(--paper);
}
.rs-otp-card {
  width: 100%;
  max-width: 440px;
  padding: 40px;
  background: #fff;
  border: 1px solid var(--fs-border);
  border-radius: var(--fs-radius);
  box-shadow: 0 16px 45px rgba(56, 27, 23, .07);
}
.rs-otp-title {
  margin: 0 0 10px;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.01em;
  text-align: center;
  color: var(--ink);
}
.rs-otp-sub {
  margin: 0 0 28px;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
  color: var(--grey);
}
.rs-otp-sub strong {
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.rs-otp-label {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.rs-otp-label .required-mark {
  color: var(--crimson);
}

/* Prefix and input read as one field, so the border and focus ring sit on the group. */
.rs-otp-phone {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d8d2ca;
  border-radius: var(--fs-radius-sm);
  transition: border-color .2s, box-shadow .2s;
}
.rs-otp-phone:focus-within {
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px rgba(165, 28, 48, .12);
}
.rs-otp-phone:has(.is-invalid) {
  border-color: var(--crimson);
}
.rs-otp-prefix {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  padding: 0 14px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  background: #faf7f2;
  border-right: 1px solid #d8d2ca;
}
.rs-otp-input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 50px;
  padding: 0 14px;
  font: inherit;
  font-size: 16px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #d8d2ca;
  border-radius: var(--fs-radius-sm);
  transition: border-color .2s, box-shadow .2s;
}
.rs-otp-input::placeholder {
  color: #8b857e;
}
.rs-otp-input:focus {
  /* Transparent outline stays visible in Windows high-contrast mode. */
  outline: 2px solid transparent;
  border-color: var(--crimson);
  box-shadow: 0 0 0 3px rgba(165, 28, 48, .12);
}
.rs-otp-input.is-invalid {
  border-color: var(--crimson);
}
.rs-otp-phone .rs-otp-input,
.rs-otp-phone .rs-otp-input:focus {
  height: 48px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.rs-otp-input-code {
  font-size: 20px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .3em;
  /* Balances the trailing letter-spacing so the digits stay centred. */
  text-indent: .3em;
  text-align: center;
}
.rs-otp-submit {
  width: 100%;
  min-height: 50px;
  justify-content: center;
  margin-top: 20px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
}
.rs-otp-display {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: var(--fs-soft);
  border: 1px dashed rgba(165, 28, 48, .4);
  border-radius: var(--fs-radius-sm);
}
.rs-otp-display-label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--grey);
}
.rs-otp-code {
  display: block;
  font-size: 24px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  letter-spacing: .2em;
  color: var(--ink);
}
.rs-otp-copy {
  flex-shrink: 0;
  /* Room for "Copy failed", so the row doesn't shift when the label changes. */
  min-width: 92px;
  min-height: 38px;
  padding: 0 12px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  color: var(--crimson);
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--crimson);
  border-radius: 999px;
  transition: background .2s, color .2s;
}
.rs-otp-copy:hover {
  color: #fff;
  background: var(--crimson);
}
.rs-otp-note {
  margin: 10px 0 24px;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  color: var(--grey);
}
.rs-otp-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}
.rs-otp-link {
  min-height: 40px;
  padding: 0;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--crimson);
  text-underline-offset: 3px;
  cursor: pointer;
  background: none;
  border: 0;
}
.rs-otp-link:hover {
  text-decoration: underline;
}
.rs-otp-submit:focus-visible,
.rs-otp-copy:focus-visible,
.rs-otp-link:focus-visible,
.rs-otp-terms a:focus-visible {
  outline: 2px solid var(--crimson);
  outline-offset: 2px;
}
.rs-otp-terms {
  margin: 24px 0 0;
  padding-top: 20px;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  color: var(--grey);
  border-top: 1px solid var(--fs-border);
}
.rs-otp-actions + .rs-otp-terms {
  margin-top: 10px;
}
.rs-otp-terms a {
  font-weight: 600;
  color: var(--crimson);
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 480px) {
  .rs-otp-page {
    padding: 32px 16px 48px;
  }
  .rs-otp-card {
    padding: 28px 20px;
  }
  .rs-otp-title {
    font-size: 24px;
  }
  .rs-otp-display {
    padding: 14px;
  }
  .rs-otp-code {
    font-size: 21px;
    letter-spacing: .14em;
  }
}
.rs-otp-error {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--crimson);
}

/* ==========================================================================
   22. Home page "Atelier" about section
   Own class names: the /about page shares .rs-about-grid, .rs-organic and .rs-badge.
   ========================================================================== */

/* Stacked by default: image first, centred copy. */
.rs-atelier-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  align-items: center;
}
.rs-atelier-copy {
  order: 2;
  text-align: center;
}
.rs-atelier-visual {
  order: 1;
}
.rs-atelier .rs-para {
  max-width: 620px;
  margin-inline: auto;
}
.rs-atelier-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  white-space: nowrap;
}
.rs-atelier-label::before,
.rs-atelier-label::after {
  content: "";
  flex: 0 1 40px;
  min-width: 12px;
  height: 1px;
  background: var(--crimson);
  opacity: .45;
}

/* Nudged right so the card plus its overhanging badge read as centred when stacked. */
.rs-atelier-frame {
  position: relative;
  width: min(300px, 86%);
  margin-inline: auto;
  transform: translateX(7%);
}
.rs-atelier-media {
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: #fff;
  border: 5px solid #fff;
  border-radius: 24px;
  box-shadow: 0 24px 56px -30px rgba(26, 26, 26, .4), 0 0 0 1px var(--fs-border);
  transform: rotate(-1.5deg);
}
/* Zoomed crop: head near the top, seated figure filling the card. */
.rs-atelier-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  border-radius: 19px;
  transform: scale(1.25);
  transform-origin: 59% 67%;
}
.rs-atelier-badge {
  position: absolute;
  left: -14%;
  bottom: 8%;
  width: 124px;
  padding: 14px 8px 12px;
  text-align: center;
  background: var(--paper);
  border: 1px solid var(--fs-border);
  border-radius: 14px;
  box-shadow: 0 16px 36px -18px rgba(26, 26, 26, .35);
}
.rs-atelier-badge-num {
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--crimson);
}
.rs-atelier-badge-plus {
  margin-left: 1px;
  font-weight: 400;
}
.rs-atelier-badge-text {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
}
.rs-atelier-badge-text::after {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  margin: 8px auto 0;
  background: var(--crimson);
}

/* Large phones and tablets, still stacked. */
@media (min-width: 600px) {
  .rs-atelier-frame {
    width: 360px;
  }
  .rs-atelier-badge {
    width: 140px;
    padding: 16px 10px 14px;
  }
  .rs-atelier-badge-num {
    font-size: 36px;
  }
  .rs-atelier-badge-text {
    font-size: 13px;
  }
}

/* Two columns: copy left, image right, badge straddling the image's left edge. */
@media (min-width: 900px) {
  .rs-atelier-grid {
    /* Wider copy column so the 40px heading keeps to two lines. */
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 56px;
  }
  .rs-atelier-copy {
    order: 1;
    text-align: left;
  }
  .rs-atelier-visual {
    order: 2;
  }
  .rs-atelier .rs-para {
    margin-inline: 0;
  }
  .rs-atelier-label {
    justify-content: flex-start;
    gap: 16px;
  }
  .rs-atelier-label::before {
    display: none;
  }
  .rs-atelier-label::after {
    flex-basis: 200px;
  }
  .rs-atelier .rs-h2 {
    font-size: 40px;
  }
  .rs-atelier-frame {
    width: 300px;
    transform: none;
  }
  .rs-atelier-badge {
    left: -17%;
    bottom: 10%;
    width: 132px;
  }
}

@media (min-width: 1024px) {
  .rs-atelier {
    padding-block: 72px;
  }
  .rs-atelier-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 72px;
  }
  .rs-atelier-frame {
    width: 380px;
  }
  .rs-atelier-badge {
    width: 150px;
    padding: 18px 12px 14px;
    border-radius: 16px;
  }
  .rs-atelier-badge-num {
    font-size: 42px;
  }
  .rs-atelier-badge-text {
    font-size: 14px;
  }
}

/* Below this width the column is too narrow to hold the heading at 48px on two lines. */
@media (min-width: 1140px) {
  .rs-atelier .rs-h2 {
    font-size: 48px;
  }
}

/* Keeps the heading to two lines on the narrowest phones. */
@media (max-width: 359px) {
  .rs-atelier .rs-h2 {
    font-size: 26px;
  }
}

@media (min-width: 1280px) {
  .rs-atelier .rs-para {
    max-width: 680px;
  }
  .rs-atelier-frame {
    width: 460px;
  }
  .rs-atelier-badge {
    width: 172px;
    padding: 22px 14px 16px;
    border-radius: 18px;
  }
  .rs-atelier-badge-num {
    font-size: 50px;
  }
  .rs-atelier-badge-text {
    font-size: 15px;
  }
}

/* ==========================================================================
   23. /about and /contact page banner
   The breadcrumb sits on the photo here. Elsewhere .rs-crumb is a white strip above
   the page, and those shared rules otherwise win over .appx-breadcrumb.
   ========================================================================== */
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero {
  max-height: none;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero-media img {
  object-position: 50% 20%;
}
/* The fixed 500px clip made the box taller than the banner, so content sat off-centre. */
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero-inner {
  height: auto;
  min-height: 500px;
  max-height: none;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb {
  padding: 0 0 20px;
  background: transparent;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb .rs-container {
  padding: 0;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb-list {
  justify-content: center;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb-list a,
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb-list [aria-current="page"] {
  color: #fff;
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb-list a:hover {
  color: var(--gold);
}
:is(.rs-about-page, .rs-contact-page) .rs-ab-hero .rs-crumb-list li:not(:last-child)::after {
  color: rgba(255, 255, 255, .6);
}

/* ==========================================================================
   24. /contact page, matched to the /about page sections
   ========================================================================== */

/* The contact page's paragraph margin reset also strips these shared hero spacings. */
.rs-contact-page .rs-ab-hero-eyebrow {
  margin-bottom: 18px;
}
.rs-contact-page .rs-ab-hero-sub {
  margin-inline: auto;
  margin-bottom: 0;
}

.rs-contact-section {
  padding: 64px 0;
  background: var(--paper);
}
.rs-contact-page .contact-main {
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
  padding-block: 0;
}
.rs-contact-page .contact-info {
  padding-top: 0;
}
.rs-contact-page .contact-info .rs-eyebrow {
  margin-bottom: 12px;
}
.rs-contact-page .contact-info .rs-h2 {
  max-width: none;
  margin-bottom: 18px;
  font-size: 30px;
  line-height: 1.1;
}
.rs-contact-page .contact-info .rs-para {
  max-width: 520px;
}

.rs-contact-page .contact-detail,
.rs-contact-page .contact-hours {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 12px;
  padding: 20px;
  transition: border-color .25s;
}
.rs-contact-page .contact-detail {
  margin-top: 14px;
}
.rs-contact-page .contact-detail:hover {
  border-color: rgba(165, 28, 48, .25);
}
.rs-contact-page .contact-detail > span:last-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
.rs-contact-page .contact-icon {
  width: 44px;
  height: 44px;
  background: rgba(165, 28, 48, .08);
}
.rs-contact-page .contact-icon svg {
  width: 21px;
  height: 21px;
}
.rs-contact-page .contact-detail small {
  font-size: 11px;
}
.rs-contact-page .contact-detail strong {
  font-size: 16px;
}
.rs-contact-page .contact-detail em {
  font-size: 13.5px;
  line-height: 1.7;
}
.rs-contact-page .contact-hours {
  margin-top: 14px;
}
.rs-contact-page .contact-hours strong {
  font-size: 14px;
}
.rs-contact-page .contact-hours small {
  font-size: 13px;
}

.rs-contact-page .contact-form-card {
  padding: 24px 20px;
  border-color: rgba(0, 0, 0, .06);
  border-radius: 16px;
  box-shadow: 0 24px 50px -34px rgba(26, 26, 26, .4);
}
.rs-contact-page .form-heading h2 {
  font-size: 24px;
}
.rs-contact-page .form-heading > p:last-child {
  font-size: 14px;
}
.rs-contact-page .form-row label {
  font-size: 13px;
  font-weight: 600;
}
.rs-contact-page .form-row input,
.rs-contact-page .form-row select,
.rs-contact-page .form-row textarea {
  padding: 13px 14px;
  font-size: 14px;
  border-radius: 8px;
}
.rs-contact-page .contact-submit {
  font-family: inherit;
}
.rs-contact-page .form-privacy {
  margin-top: -5px;
  font-size: 12px;
  color: var(--grey);
}

@media (min-width: 768px) {
  .rs-contact-section {
    padding: 104px 0;
  }
  .rs-contact-page .contact-info .rs-h2 {
    font-size: 40px;
  }
  .rs-contact-page .contact-form-card {
    padding: 36px;
  }
  .rs-contact-page .form-heading h2 {
    font-size: 26px;
  }
}

/* Stays stacked until both columns have room. */
@media (min-width: 992px) {
  .rs-contact-page .contact-main {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(48px, 5vw, 80px);
  }
}

@media (min-width: 1280px) {
  .rs-contact-page .contact-info .rs-h2 {
    font-size: 48px;
  }
}

/* Keeps "Conversation." clear of the screen edge on the narrowest phones. */
@media (max-width: 359px) {
  .rs-contact-page .rs-ab-hero-title {
    font-size: 38px;
  }
}

/* ==========================================================================
   25. Home page "Atelier" decoration: pink shapes and lotus behind the image card
   Positions are percentages of the card so they scale with it.
   ========================================================================== */
.rs-atelier-frame {
  isolation: isolate;
}
.rs-atelier-media {
  position: relative;
  z-index: 1;
}
.rs-atelier-badge {
  z-index: 2;
}
.rs-atelier-shape {
  position: absolute;
  z-index: -1;
  background: #f8e6e4;
  border-radius: 28px;
  transform: rotate(4deg);
  pointer-events: none;
}
.rs-atelier-shape-back {
  top: 8%;
  right: -3%;
  width: 70%;
  height: 78%;
}
/* Short enough to stay hidden under the card's lower-left corner. */
.rs-atelier-shape-front {
  top: 16%;
  left: -4%;
  width: 88%;
  height: 83%;
}
.rs-atelier-flower {
  position: absolute;
  z-index: 0;
  top: 12%;
  left: -18%;
  width: 21%;
  height: auto;
  overflow: visible;
  fill: #f9e3e0;
  stroke: #e8b7b5;
  stroke-width: 1.8;
  stroke-linejoin: round;
  pointer-events: none;
}
.rs-atelier-flower-line {
  fill: none;
  stroke-linecap: round;
}

/* Tablets have room either side of the stacked card. */
@media (min-width: 600px) {
  .rs-atelier-shape-back {
    right: -11%;
  }
  .rs-atelier-shape-front {
    left: -6%;
  }
  .rs-atelier-flower {
    left: -31%;
    width: 26%;
  }
}

/* Two columns: kept narrow enough to stay clear of the text column. */
@media (min-width: 900px) {
  .rs-atelier-flower {
    left: -21%;
    width: 22%;
  }
}

@media (min-width: 1440px) {
  .rs-atelier-flower {
    left: -31%;
    width: 26%;
  }
}

/* ==========================================================================
   26. /privacy-policy and /terms pages
   Reuses the /about banner through .rs-about-page; only the differences are here.
   ========================================================================== */

/* Shorter than the /about banner: this one has no intro text or button. */
.rs-about-page.rs-privacy-page .rs-ab-hero-inner {
  min-height: 360px;
}
.rs-about-page.rs-privacy-page .rs-ab-hero .rs-crumb {
  padding-bottom: 0;
}

.rs-privacy-section {
  padding: 64px 0;
  background: var(--paper);
}
.rs-privacy-card {
  max-width: 860px;
  margin-inline: auto;
  padding: 28px 20px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 16px;
  box-shadow: 0 24px 50px -34px rgba(26, 26, 26, .4);
  overflow-wrap: anywhere;
}
.rs-privacy-card p,
.rs-privacy-card li {
  font-size: 15px;
  line-height: 1.8;
  color: var(--grey);
}
.rs-privacy-card p + p {
  margin-top: 12px;
}
.rs-privacy-card .rs-privacy-updated {
  margin-bottom: 18px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--crimson);
}
.rs-privacy-card .rs-privacy-updated + p {
  margin-top: 0;
}
.rs-privacy-block {
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid rgba(0, 0, 0, .06);
}
.rs-privacy-block h2 {
  margin-bottom: 14px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
}
.rs-privacy-block h2 span {
  margin-right: 4px;
  color: var(--crimson);
}
.rs-privacy-block ul {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.rs-privacy-block ul + p {
  margin-top: 16px;
}
.rs-privacy-block li {
  position: relative;
  padding-left: 18px;
}
.rs-privacy-block li::before {
  content: "";
  position: absolute;
  top: .72em;
  left: 2px;
  width: 5px;
  height: 5px;
  background: var(--crimson);
  border-radius: 50%;
}
.rs-privacy-block p strong,
.rs-privacy-block li strong {
  font-weight: 600;
  color: var(--ink);
}
.rs-privacy-block a {
  color: var(--crimson);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rs-privacy-block a:hover {
  color: var(--crimson-d);
}

@media (min-width: 768px) {
  .rs-privacy-section {
    padding: 104px 0;
  }
  .rs-privacy-card {
    padding: 56px;
  }
  .rs-privacy-card p,
  .rs-privacy-block li {
    font-size: 16px;
  }
  .rs-privacy-block {
    margin-top: 36px;
    padding-top: 36px;
  }
  .rs-privacy-block h2 {
    font-size: 15px;
  }
}

/* ==========================================================================
   22. Shipping and return policy pages
   Hero and card come from the About and Privacy page styles above.
   ========================================================================== */
.rs-policy-page .rs-policy-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.rs-policy-page .rs-policy-highlight {
  padding: 16px;
  font-size: inherit;
  line-height: 1.4;
  background: var(--paper);
  border: 1px solid var(--fs-border);
  border-radius: 8px;
}
.rs-policy-page .rs-policy-highlight strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  color: var(--crimson);
}
.rs-policy-page .rs-policy-highlight span {
  display: block;
  font-size: 13px;
  color: var(--grey);
}
.rs-policy-page .rs-policy-table-wrap {
  margin-top: 14px;
  overflow-x: auto;
}
.rs-policy-page .rs-policy-table {
  width: 100%;
  font-size: 14px;
  border-collapse: collapse;
}
.rs-policy-page .rs-policy-table th,
.rs-policy-page .rs-policy-table td {
  padding: 12px 14px;
  text-align: left;
  border: 1px solid var(--fs-border);
}
.rs-policy-page .rs-policy-table th {
  font-weight: 700;
  color: var(--ink);
  background: var(--paper);
}
.rs-policy-page .rs-policy-table td {
  color: var(--grey);
}
.rs-policy-page .rs-policy-note {
  margin-top: 14px;
  padding: 14px 16px;
  background: var(--paper);
  border-left: 3px solid var(--crimson);
  border-radius: 0 6px 6px 0;
}
.rs-policy-page .rs-policy-steps {
  margin: 12px 0 0;
  padding-left: 20px;
  list-style: decimal;
}
.rs-policy-page .rs-policy-steps li {
  padding-left: 4px;
  list-style: decimal;
}
.rs-policy-page .rs-policy-steps li + li {
  margin-top: 8px;
}
@media (max-width: 640px) {
  .rs-policy-page .rs-policy-highlights {
    grid-template-columns: minmax(0, 1fr);
  }
  .rs-policy-page .rs-policy-table th,
  .rs-policy-page .rs-policy-table td {
    padding: 10px 12px;
  }
}

/* ==========================================================================
   23. Listing filters: clear all and loading state
   ========================================================================== */
.rs-listing .rs-filter-clear {
  display: block;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 600;
  text-align: right;
  text-decoration: underline;
  color: var(--crimson);
}
.rs-listing .rs-filter-clear[hidden] {
  display: none;
}
.rs-listing .rs-grid-wrap.is-loading {
  opacity: .55;
  pointer-events: none;
  transition: opacity .15s;
}

/* ==========================================================================
   24. Cookie consent banner and visitor details popup
   ========================================================================== */
.rs-consent {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: 960px;
  margin: 0 auto;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid var(--fs-border);
  border-top: 3px solid var(--crimson);
  border-radius: 10px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .18);
}
.rs-consent[hidden],
.rs-visitor[hidden],
.rs-visitor-error[hidden],
.rs-visitor-success[hidden],
#rsVisitorForm[hidden] {
  display: none;
}
.rs-consent-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
}
.rs-consent-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--grey);
}
.rs-consent-text a,
.rs-visitor-consent a {
  color: var(--crimson);
  text-decoration: underline;
}
.rs-consent-actions {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
}
.rs-consent-btn {
  justify-content: center;
  padding: 11px 22px;
  font-family: inherit;
  font-size: 14px;
}
.rs-visitor {
  position: fixed;
  inset: 0;
  z-index: 1310;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.rs-visitor-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .55);
}
.rs-visitor-dialog {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 28px 32px 32px;
  background: #fff;
  border-top: 4px solid var(--crimson);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}
.rs-visitor-header {
  margin-bottom: 14px;
  text-align: center;
}
.rs-visitor-logo {
  display: block;
  width: auto;
  max-width: 100%;
  height: 72px;
  margin: 0 auto 12px;
}
.rs-visitor-x {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 40px;
  height: 40px;
  font-size: 24px;
  line-height: 1;
  color: var(--grey);
  cursor: pointer;
  background: none;
  border: 0;
}
.rs-visitor-title {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--ink);
}
.rs-visitor-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  margin: 12px auto 0;
  background: var(--gold);
}
.rs-visitor-text {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--grey);
  text-align: center;
}
.rs-visitor-field {
  margin-bottom: 14px;
}
.rs-visitor-field label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.rs-visitor-field input {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  font: inherit;
  font-size: 16px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
}
.rs-visitor-field input:focus {
  outline: 2px solid var(--crimson);
  outline-offset: -1px;
  border-color: var(--crimson);
}
.rs-visitor-field input.is-invalid {
  border-color: var(--crimson);
}
.rs-visitor-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--grey);
  cursor: pointer;
}
.rs-visitor-consent input {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  accent-color: var(--crimson);
}
.rs-visitor-error {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--crimson);
}
.rs-visitor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}
.rs-visitor-actions .rs-consent-btn {
  flex: 1;
}
@media (max-width: 767px) {
  .rs-consent {
    left: 12px;
    right: 12px;
    bottom: 12px;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    padding: 16px;
  }
  .rs-consent-actions .rs-consent-btn {
    flex: 1;
  }
  .rs-visitor-dialog {
    padding: 22px 18px;
  }
  .rs-visitor-logo {
    height: 58px;
  }
  .rs-visitor-title {
    font-size: 20px;
  }
}
@media (max-height: 520px) {
  .rs-visitor {
    padding: 8px;
  }
  .rs-visitor-logo {
    height: 40px;
    margin-bottom: 8px;
  }
}

/* ==========================================================================
   25. Product enquiry popup and My Enquiries pages
   ========================================================================== */
.rs-enquiry-open {
  justify-content: center;
  font-family: inherit;
}
.rs-enquiry {
  position: fixed;
  inset: 0;
  z-index: 1320;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.rs-enquiry[hidden],
#rsEnquiryForm[hidden],
.rs-enquiry-success[hidden],
.rs-enquiry-error[hidden],
.rs-enquiry-product-meta[hidden] {
  display: none;
}
.rs-enquiry-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .55);
}
.rs-enquiry-dialog {
  position: relative;
  width: 100%;
  max-width: 500px;
  max-height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px 28px 0;
  background: #fff;
  border-top: 4px solid var(--crimson);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}
.rs-enquiry-x {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 40px;
  height: 40px;
  font-size: 24px;
  line-height: 1;
  color: var(--grey);
  cursor: pointer;
  background: none;
  border: 0;
}
.rs-enquiry-dialog .rs-visitor-header {
  margin-bottom: 12px;
}
.rs-enquiry-dialog .rs-visitor-logo {
  height: 44px;
  margin-bottom: 4px;
}
.rs-enquiry-dialog .rs-visitor-title {
  font-size: 19px;
}
.rs-enquiry-dialog .rs-visitor-title::after {
  margin-top: 6px;
}
.rs-enquiry-product {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 8px;
  background: var(--paper);
  border: 1px solid var(--fs-border);
  border-radius: 8px;
}
.rs-enquiry-product-img {
  flex-shrink: 0;
  width: 48px;
  height: 60px;
  object-fit: cover;
  border-radius: 6px;
}
.rs-enquiry-product-name {
  margin: 0 0 2px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}
.rs-enquiry-product-price {
  margin: 0 0 2px;
  font-size: 15px;
  font-weight: 700;
  color: var(--crimson);
}
.rs-enquiry-product-meta {
  display: inline;
  margin: 0 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--grey);
}
.rs-enquiry-account {
  margin-bottom: 14px;
  padding: 12px 14px;
  background: var(--paper);
  border-radius: 8px;
}
.rs-enquiry-account p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
}
.rs-enquiry-account .rs-enquiry-account-label {
  margin-bottom: 2px;
  font-size: 12px;
  color: var(--grey);
}
.rs-enquiry-field {
  margin-bottom: 10px;
}
.rs-enquiry-field label {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.rs-enquiry-field input,
.rs-enquiry-field textarea {
  display: block;
  width: 100%;
  padding: 7px 12px;
  font: inherit;
  font-size: 16px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
}
.rs-enquiry-field input:focus,
.rs-enquiry-field textarea:focus {
  outline: 2px solid var(--crimson);
  outline-offset: -1px;
  border-color: var(--crimson);
}
.rs-enquiry-field .is-invalid {
  border-color: var(--crimson);
}
.rs-enquiry-note {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--grey);
}
.rs-enquiry-note a {
  color: var(--crimson);
  text-decoration: underline;
}
.rs-enquiry-error {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--crimson);
}
.rs-enquiry-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  position: sticky;
  bottom: 0;
  margin-top: 4px;
  padding: 10px 0 16px;
  background: #fff;
}
.rs-enquiry-btn {
  justify-content: center;
  padding: 10px 22px;
  font-family: inherit;
  font-size: 14px;
}
.rs-enquiry-actions .rs-enquiry-btn {
  flex: 1;
}
.rs-enquiry-success-text {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  text-align: center;
}
.rs-enquiry-list {
  display: grid;
  gap: 14px;
}
.rs-enquiry-card {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--fs-border);
  border-radius: 10px;
}
.rs-enquiry-card-img {
  flex-shrink: 0;
  width: 88px;
  height: 112px;
  object-fit: cover;
  border-radius: 6px;
}
.rs-enquiry-card-body {
  flex: 1;
  min-width: 0;
}
.rs-enquiry-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.rs-enquiries-page .rs-enquiry-card-name {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}
.rs-enquiry-card-price {
  margin: 4px 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--crimson);
}
.rs-enquiry-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--grey);
}
.rs-enquiries-page .rs-enquiry-card-link {
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  color: var(--crimson);
}
.rs-enquiry-status {
  flex-shrink: 0;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  border-radius: 999px;
}
.rs-enquiry-status-pending {
  color: #6b5a00;
  background: #fbf3cf;
}
.rs-enquiry-status-in_progress {
  color: #1e4f8a;
  background: #e2edfa;
}
.rs-enquiry-status-resolved {
  color: #0f5132;
  background: #dcf3e6;
}
.rs-enquiry-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 14px 0 0;
}
.rs-enquiry-facts dt {
  font-size: 12px;
  color: var(--grey);
}
.rs-enquiry-facts dd {
  margin: 2px 0 0;
  font-size: 14px;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.rs-enquiry-message {
  display: block;
  margin: 14px 0;
}
.rs-enquiries-page .rs-enquiry-message-title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.rs-enquiry-message-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--grey);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.rs-enquiries-page .rs-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-top: 20px;
}
.rs-enquiries-page .rs-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  font-size: 13px;
  color: var(--ink);
  background: #fff;
  border: 1px solid #E8E8E8;
  border-radius: 6px;
}
.rs-enquiries-page a.rs-page-btn:hover {
  border-color: var(--crimson);
  color: var(--crimson);
}
.rs-enquiries-page .rs-page-btn.active {
  color: #fff;
  background: var(--ink);
  border-color: var(--ink);
}
.rs-enquiries-page .rs-page-btn.is-disabled {
  opacity: .4;
  cursor: not-allowed;
}
@media (max-width: 767px) {
  .rs-enquiry {
    padding: 8px;
  }
  .rs-enquiry-dialog {
    padding: 12px 14px 0;
  }
  .rs-enquiry-actions .rs-enquiry-btn {
    padding: 10px 14px;
    white-space: nowrap;
  }
  .rs-enquiry-card-top {
    flex-direction: column;
    gap: 6px;
  }
  .rs-enquiry-card-img {
    width: 72px;
    height: 92px;
  }
}
.rs-enquiry-amounts {
  display: grid;
  grid-template-columns: 90px 1fr 1fr;
  gap: 12px;
  align-items: start;
}
.rs-enquiry-amounts .rs-enquiry-field {
  margin-bottom: 0;
}
.rs-enquiry-amount {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.rs-enquiry-amount-label {
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.rs-enquiry-amount-value {
  display: flex;
  align-items: center;
  min-height: 46px;
  font-size: 15px;
  color: var(--grey);
  overflow-wrap: anywhere;
}
.rs-enquiry-amount-total {
  font-weight: 700;
  color: var(--crimson);
}
#rsEnquiryForm > .rs-enquiry-account,
#rsEnquiryForm > .rs-enquiry-amounts-error + .rs-enquiry-field {
  margin-top: 0;
}
#rsEnquiryForm {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
}
#rsEnquiryForm > * {
  grid-column: 1 / -1;
}
#rsEnquiryForm > .rs-enquiry-col {
  grid-column: auto;
}
.rs-enquiry-amounts {
  margin-bottom: 10px;
}
.rs-enquiry-amount-label {
  margin-bottom: 4px;
}
.rs-enquiry-amount-value {
  min-height: 40px;
}
/* Keep the popup inside the visible area when mobile browser bars are showing. */
@supports (height: 100dvh) {
  .rs-enquiry {
    bottom: auto;
    height: 100dvh;
  }
}
@media (max-width: 480px) {
  .rs-enquiry-amounts {
    grid-template-columns: 1fr 1fr;
  }
  /* The price is already shown in the product summary above. */
  .rs-enquiry-amount-unit {
    display: none;
  }
  #rsEnquiryForm > .rs-enquiry-col-wide {
    grid-column: 1 / -1;
  }
  .rs-enquiry-dialog .rs-visitor-logo {
    height: 34px;
  }
  .rs-enquiry-dialog .rs-visitor-title {
    font-size: 17px;
  }
  .rs-enquiry-field input::placeholder {
    font-size: 14px;
  }
}
@media (max-height: 620px), (max-width: 767px) and (max-height: 700px) {
  .rs-enquiry-dialog .rs-visitor-logo {
    display: none;
  }
}
