/** Shopify CDN: Minification failed

Line 2305:8 Unexpected "{"
Line 2305:17 Expected ":"
Line 2305:23 Unexpected ","

**/
/* =====================================================
   LUXURY OVERRIDES — Vhernier-inspired aesthetic
   Deep black · Warm gold · Elegant serif · Whitespace
   ===================================================== */

:root {
  /* ── RUDIAN Revised Final Palette (global) ── */
  --color-gold: #C8A951;        /* Champagne Gold — house accent */
  --color-gold-light: #D4BC7A;
  --color-gold-dark: #A88B3A;
  --color-deep-black: #080808;  /* Void Black — primary dark background */
  --color-off-white: #F4F2EF;   /* Diamond White — body text on dark */
  --color-warm-gray: #9A9080;
  /* Palette tokens */
  --rdj-void: #080808;          /* Void Black */
  --rdj-blush: #C49A82;         /* Blush Champagne — rose gold / AMOUR */
  --rdj-marble: #EDEBE5;        /* White Marble — light background */
  --rdj-diamond: #F4F2EF;       /* Diamond White */
  --rdj-graphite: #1A1A1C;      /* Deep Graphite — editorial dark / text on light */
  --rdj-emerald: #1A5C3A;       /* Power Emerald — ÉCLAT */
  --rdj-ruby: #8B1A2C;          /* Rouge Royale — AMOUR / MAJESTÉ */
  --rdj-sapphire: #1A2E5C;      /* Royal Sapphire — SOVEREIGN / ETERNAL */
  --transition-luxury: 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ---- Typography: headings ---- */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4,
.card__heading a,
.card__heading {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 400;
}

h1, .h1 {
  letter-spacing: 0.18em;
  font-size: clamp(3.2rem, 5vw, 6rem);
  line-height: 1.1;
}

h2, .h2 {
  letter-spacing: 0.14em;
  font-size: clamp(2.4rem, 3.5vw, 4.2rem);
  line-height: 1.15;
}

h3, .h3 {
  letter-spacing: 0.12em;
  font-size: clamp(1.8rem, 2.5vw, 2.8rem);
}

/* ---- Sections: consistent vertical rhythm ----
   Uniform top/bottom padding on every section so the gap between
   any two adjacent sections is identical. Kept generous for luxury
   feel but roughly half the previous value to remove dead space. */
.shopify-section:not(.section-header):not(.shopify-section-group) {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

@media screen and (min-width: 750px) {
  .shopify-section:not(.section-header):not(.shopify-section-group) {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
}

/* Neutralise Dawn's per-section internal padding so the uniform
   wrapper padding above is the SINGLE source of vertical spacing —
   guarantees identical gaps between every section. */
.shopify-section:not(.section-header):not(.shopify-section-group) [class*="-padding"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* ---- Buttons: outlined gold aesthetic ---- */
.button,
.shopify-challenge__button,
.customer button {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 1.05rem;
  padding: 1.6rem 4.4rem;
  transition: background-color var(--transition-luxury),
              color var(--transition-luxury),
              border-color var(--transition-luxury),
              transform 0.2s ease;
}

.button:not(.button--secondary):hover {
  transform: scale(1.02);
  opacity: 0.88;
}

.button--secondary {
  border-color: var(--color-gold) !important;
  color: var(--color-gold) !important;
}

.button--secondary:hover {
  background-color: var(--color-gold) !important;
  color: var(--color-deep-black) !important;
  transform: scale(1.02);
}

/* ---- Header: minimal luxury bar ---- */
.header-wrapper {
  border-bottom: 1px solid rgba(200, 169, 81, 0.15) !important;
}

.header {
  padding-top: 1.2rem !important;
  padding-bottom: 1.2rem !important;
}

/* Centered logo layout — tighten the grid proportions */
.header--middle-center {
  grid-template-columns: 1fr auto 1fr;
}

/* ---- Wide / landscape logo (uploads replacing both mark + wordmark) ---- */
.rudian-logo-wide .header__heading-logo {
  height: auto;
  max-height: 5.5rem;
  width: auto;
  max-width: 32rem;
  object-fit: contain;
}

/* ---- Square logo + wordmark text side by side ---- */
.rudian-logo-combo {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}

.rudian-logo-mark-img {
  height: 7rem !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain;
}

.rudian-logo-name {
  font-family: var(--font-heading-family);
  font-size: 2.4rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.92);
  white-space: nowrap;
  font-weight: 300;
  border-left: 1px solid rgba(200, 169, 81, 0.28);
  padding-left: 1.8rem;
  line-height: 1;
}

/* ---- Text-only fallback (no logo uploaded) ---- */
.rudian-logo-text-only .rudian-logo-name {
  border-left: none;
  padding-left: 0;
  font-size: 2.6rem;
  letter-spacing: 0.38em;
}

.header__heading-logo-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}

.header__heading-link,
.header__heading {
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 1.6rem;
}

/* Nav items */
.header__menu-item span,
.header__menu-item {
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 1.05rem;
}

.header__menu-item:hover > span,
.header__active-menu-item {
  color: var(--color-gold) !important;
}

/* Hide the built-in separator line (we use border-bottom on wrapper instead) */
.header-wrapper--border-bottom {
  border-bottom: none !important;
}

/* Icon buttons in header */
.header__icon svg {
  width: 2rem;
  height: 2rem;
}

/* Header icons (search / account / cart) turn champagne gold on hover,
   matching the text nav. (Underline doesn't apply to icons — colour is
   the equivalent affordance.) */
.header__icon {
  transition: color 0.25s ease;
}
.header__icon:hover,
.header__icon:hover svg,
.header__icon:hover .svg-wrapper {
  color: var(--color-gold) !important;
}
.header__icon:hover svg * {
  stroke: currentColor;
}

/* Sticky header: keep it slim on scroll */
.shopify-section-group-header-group .section-header {
  margin-bottom: 0 !important;
}

/* ---- Product cards ---- */
.card__heading {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 1.15rem;
}

.card-information .price,
.price__regular,
.price__sale {
  color: var(--color-gold);
  letter-spacing: 0.08em;
  font-size: 1.2rem;
}

/* "Made to Order · N days" micro-label below the price on product cards.
   Scoped via .card-information to beat Dawn's `.card-information > *` colour. */
.card-information .rdj-card-mto {
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 169, 81, 0.6);
  margin: 4px 0 0;
  font-weight: 400;
}

.product-card-wrapper {
  transition: box-shadow var(--transition-luxury);
}

.product-card-wrapper:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}

/* ---- Image banner / hero ---- */
.banner__box {
  background: rgba(10, 10, 10, 0.55) !important;
  border: 1px solid rgba(200, 169, 81, 0.28);
  padding: 4rem 5rem;
  backdrop-filter: blur(2px);
}

.banner .button {
  margin-top: 1rem;
}

/* ---- Rich text ---- */
.rich-text__heading {
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.rich-text__text {
  line-height: 1.9;
  color: rgba(245, 240, 232, 0.75);
  letter-spacing: 0.04em;
}

/* ---- Section headings (featured collection, etc.) ---- */
.title-wrapper .title,
.collection-description-wrapper .title {
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ---- Decorative gold divider for section titles ---- */
.title-wrapper--no-top-margin::after,
.rich-text__heading::after {
  content: '';
  display: block;
  width: 4rem;
  height: 1px;
  background-color: var(--color-gold);
  margin: 1.8rem auto 0;
  opacity: 0.7;
}

/* ---- Footer ---- */
.footer__content-top {
  padding-top: 6rem !important;
  padding-bottom: 4rem !important;
  border-top: 1px solid rgba(200, 169, 81, 0.18) !important;
}

.footer-block__heading {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 1.05rem;
  color: var(--color-gold) !important;
  margin-bottom: 2rem !important;
}

.footer__list a,
.footer-block .list-social__link {
  letter-spacing: 0.08em;
  transition: color var(--transition-luxury);
}

.footer__list a:hover {
  color: var(--color-gold) !important;
}

/* ---- Newsletter ---- */
.newsletter-section .newsletter__heading,
.email-signup-banner__heading {
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.newsletter .field__input:focus {
  border-color: var(--color-gold) !important;
}

/* ---- Slideshow captions ---- */
.slideshow .banner__heading {
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ---- Multicolumn ---- */
.multicolumn-card__title {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ---- Collection banner ---- */
.collection-hero__title {
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ---- Breadcrumbs / nav links ---- */
.breadcrumbs a,
.breadcrumbs span {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 1.0rem;
}

/* ---- Inputs ---- */
.field__input:focus,
.select__select:focus,
textarea:focus {
  border-color: rgba(200, 169, 81, 0.6) !important;
  outline: none;
}

/* ---- Scrollbar ---- */
::-webkit-scrollbar {
  width: 3px;
}

::-webkit-scrollbar-track {
  background: #080808;
}

::-webkit-scrollbar-thumb {
  background: var(--color-gold);
  border-radius: 2px;
}

/* ---- Selection highlight ---- */
::selection {
  background-color: var(--color-gold);
  color: var(--color-deep-black);
}

/* =====================================================
   SHARED LUXURY UTILITIES
   ===================================================== */

.luxury-eyebrow {
  display: inline-block;
  font-size: 0.95rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--color-gold);
  font-family: var(--font-body-family);
  font-weight: 400;
  margin-bottom: 2rem;
}

.luxury-eyebrow::before,
.luxury-eyebrow::after {
  content: '\2014';
  margin: 0 0.8em;
  opacity: 0.45;
}

/* =====================================================
   LUXURY HERO
   ===================================================== */

.section-luxury-hero {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-hero {
  background-color: #080808;
  overflow: hidden;
}

.luxury-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.luxury-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.luxury-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.luxury-hero__placeholder {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.luxury-hero__placeholder-inner {
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 60% 40%, #2a1e10 0%, #0f0a05 55%, #080808 100%);
}

/* ---- Hero background video ---- */
.luxury-hero__video-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.luxury-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ---- Artistic dark placeholders for collection/lookbook/philosophy cards ---- */
.luxury-card-placeholder {
  width: 100%;
  background-color: #0f0c08;
}

.luxury-card-placeholder--1 {
  background: radial-gradient(ellipse at 35% 60%, #1c1408 0%, #080808 70%);
}

.luxury-card-placeholder--2 {
  background: radial-gradient(ellipse at 65% 35%, #17130a 0%, #080808 70%);
}

.luxury-card-placeholder--3 {
  background: radial-gradient(ellipse at 50% 50%, #141008 0%, #080808 65%);
}

.luxury-hero__content {
  position: relative;
  z-index: 2;
  margin: 0 auto;
  padding: 4rem 2rem;
  width: 100%;
}

.luxury-hero__eyebrow {
  font-size: 1.0rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0 0 2.5rem;
  font-family: var(--font-body-family);
  font-weight: 400;
}

.luxury-hero__heading {
  color: var(--color-off-white);
  margin: 0 0 2.5rem;
  line-height: 1.05;
  text-shadow: 0 2px 40px rgba(0,0,0,0.5);
}

/* Mobile: shrink hero heading + never break mid-word ("SCULPTURAL") */
@media screen and (max-width: 749px) {
  .luxury-hero__heading {
    font-size: clamp(2.4rem, 9vw, 3.4rem) !important;
    letter-spacing: 0.08em !important;
    word-break: keep-all;
    overflow-wrap: normal;
    hyphens: none;
  }
}

.luxury-hero__subheading {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  color: rgba(245, 240, 232, 0.65);
  margin: 0 0 4rem;
  font-style: italic;
  font-weight: 300;
}

.luxury-hero__cta {
  margin-top: 0.5rem;
}

.luxury-hero__btn {
  min-width: 22rem;
  padding: 1.4rem 3.2rem !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.14em !important;
}

.luxury-hero__scroll {
  position: absolute;
  bottom: 3.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  z-index: 2;
  color: rgba(245, 240, 232, 0.45);
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-family: var(--font-body-family);
}

.luxury-hero__scroll-line {
  width: 1px;
  height: 4.5rem;
  background: linear-gradient(to bottom, var(--color-gold), transparent);
  animation: luxury-scroll-pulse 2.2s ease-in-out infinite;
}

@keyframes luxury-scroll-pulse {
  0%, 100% { opacity: 0.35; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
}

/* =====================================================
   LUXURY COLLECTIONS INTRO
   ===================================================== */

.section-luxury-collections {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-collections__header {
  text-align: center;
  margin-bottom: 3.6rem;
}

.luxury-collections__title {
  margin: 1.5rem auto 2rem;
}

/* Standalone section heading (e.g. above the Whatmore shoppable-video row):
   reuse the luxury header look, but tighten the gap to the content below
   so the heading reads as a label for the row beneath it. */
.rdj-heading .luxury-collections__header {
  margin-bottom: 1.6rem;
}

.luxury-collections__subtitle {
  font-size: 1.4rem;
  color: rgba(245, 240, 232, 0.55);
  letter-spacing: 0.06em;
  font-style: italic;
  max-width: 52rem;
  margin: 0 auto;
  font-weight: 300;
}

.luxury-collections__grid {
  display: grid;
  gap: 2px;
}

.luxury-collections__grid--1-col { grid-template-columns: 1fr; }
.luxury-collections__grid--2-col { grid-template-columns: repeat(2, 1fr); }
.luxury-collections__grid--3-col { grid-template-columns: repeat(3, 1fr); }
.luxury-collections__grid--4-col { grid-template-columns: repeat(4, 1fr); }

@media screen and (max-width: 989px) {
  .luxury-collections__grid--4-col { grid-template-columns: repeat(2, 1fr); }
  .luxury-collections__grid--3-col { grid-template-columns: repeat(2, 1fr); }
}

@media screen and (max-width: 749px) {
  .luxury-collections__grid--2-col,
  .luxury-collections__grid--3-col,
  .luxury-collections__grid--4-col { grid-template-columns: 1fr; }
}

.luxury-collections__card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: #111;
}

.luxury-collections__card-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.luxury-collections__card-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.luxury-collections__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.luxury-collections__card:hover .luxury-collections__card-media img {
  transform: scale(1.07);
}

.luxury-collections__card-media .placeholder-svg {
  width: 100%;
  height: 100%;
}

.luxury-collections__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10,10,10,0.85) 0%,
    rgba(10,10,10,0.2) 45%,
    transparent 100%
  );
  transition: opacity 0.4s ease;
}

.luxury-collections__card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 3rem 2.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  z-index: 1;
}

.luxury-collections__card-label {
  font-size: 0.85rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--color-gold);
  font-family: var(--font-body-family);
  font-weight: 400;
}

.luxury-collections__card-title {
  font-size: 2.6rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-off-white);
  margin: 0;
  line-height: 1.05;
  font-family: var(--font-heading-family);
}

.luxury-collections__card-cta {
  font-size: 1.0rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.5);
  margin-top: 0.6rem;
  transition: color 0.35s ease;
  font-family: var(--font-body-family);
}

.luxury-collections__card:hover .luxury-collections__card-cta {
  color: var(--color-gold);
}

/* =====================================================
   LUXURY BRAND PHILOSOPHY
   ===================================================== */

.section-luxury-philosophy {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-philosophy__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 72vh;
}

.luxury-philosophy--reversed .luxury-philosophy__inner {
  direction: rtl;
}

.luxury-philosophy--reversed .luxury-philosophy__inner > * {
  direction: ltr;
}

.luxury-philosophy__media {
  position: relative;
  overflow: hidden;
  min-height: 50vh;
}

.luxury-philosophy__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.luxury-philosophy__media .placeholder-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.luxury-philosophy:hover .luxury-philosophy__media img {
  transform: scale(1.04);
}

.luxury-philosophy__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8rem 7rem;
}

.luxury-philosophy__heading {
  margin: 1.5rem 0 3rem;
  line-height: 1.1;
}

.luxury-philosophy__text {
  color: rgba(245, 240, 232, 0.65);
  line-height: 2;
  letter-spacing: 0.04em;
  margin-bottom: 4rem;
  max-width: 46rem;
  font-size: 1.5rem;
}

.luxury-philosophy__text p + p {
  margin-top: 1.8rem;
}

.luxury-philosophy__cta {
  margin-bottom: 1rem;
}

.luxury-philosophy__signature {
  font-style: italic;
  font-size: 2rem;
  color: var(--color-gold);
  letter-spacing: 0.06em;
  margin-top: 3rem;
  font-family: var(--font-heading-family);
  opacity: 0.8;
}

@media screen and (max-width: 989px) {
  .luxury-philosophy__inner {
    grid-template-columns: 1fr;
    min-height: unset;
  }

  .luxury-philosophy--reversed .luxury-philosophy__inner {
    direction: ltr;
  }

  .luxury-philosophy__media {
    aspect-ratio: 4/3;
    min-height: unset;
  }

  .luxury-philosophy__content {
    padding: 5rem 3rem;
  }
}

@media screen and (max-width: 749px) {
  .luxury-philosophy__content {
    padding: 4rem 2rem;
  }
}

/* =====================================================
   LUXURY LOOKBOOK / EDITORIAL
   ===================================================== */

.section-luxury-lookbook {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-lookbook__header {
  text-align: center;
  margin-bottom: 5.5rem;
}

.luxury-lookbook__title {
  margin: 1.5rem auto 0;
}

.luxury-lookbook__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}

@media screen and (max-width: 989px) {
  .luxury-lookbook__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem;
  }
}

@media screen and (max-width: 749px) {
  .luxury-lookbook__grid {
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }
}

.luxury-lookbook__item {
  overflow: hidden;
}

.luxury-lookbook__item-link {
  display: block;
  text-decoration: none;
}

.luxury-lookbook__item-media {
  aspect-ratio: 3/4;
  overflow: hidden;
  margin-bottom: 2.2rem;
}

.luxury-lookbook__item-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.luxury-lookbook__item-media .placeholder-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.luxury-lookbook__item:hover .luxury-lookbook__item-media img {
  transform: scale(1.05);
}

.luxury-lookbook__item-content {
  padding: 0 0.4rem;
}

.luxury-lookbook__category {
  display: block;
  font-size: 0.85rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 1.2rem;
  font-family: var(--font-body-family);
  font-weight: 400;
}

.luxury-lookbook__item-title {
  font-size: 1.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 1.6rem;
  color: var(--color-off-white);
  line-height: 1.3;
  transition: color 0.3s ease;
  font-family: var(--font-heading-family);
}

.luxury-lookbook__item:hover .luxury-lookbook__item-title {
  color: var(--color-gold);
}

.luxury-lookbook__cta {
  font-size: 0.95rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.45);
  font-family: var(--font-body-family);
  transition: color 0.3s ease;
}

.luxury-lookbook__item:hover .luxury-lookbook__cta {
  color: var(--color-gold);
}

.luxury-lookbook__view-all {
  text-align: center;
  margin-top: 5.5rem;
}

/* =====================================================
   FEATURED COLLECTION REFINEMENTS
   ===================================================== */

.featured-collection .title-wrapper {
  text-align: center;
  margin-bottom: 4rem;
}

.featured-collection .collection__view-all {
  text-align: center;
  margin-top: 4.5rem;
}

.featured-collection .collection__view-all .button {
  min-width: 20rem;
}

/* =====================================================
   PRODUCT PAGE — MADE TO ORDER (Graff-inspired)
   ===================================================== */

/* ---- "Made to Order" label ---- */
.product__info-container .product__text.caption-with-letter-spacing:first-child {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: rgba(200, 169, 81, 0.45);
  font-size: 0.85rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  margin-bottom: 2rem;
}

.product__info-container .product__text.caption-with-letter-spacing:first-child::before,
.product__info-container .product__text.caption-with-letter-spacing:first-child::after {
  content: '';
  display: inline-block;
  width: 2.4rem;
  height: 1px;
  background: var(--color-gold);
  opacity: 0.5;
}

/* ---- Trim the dead space above the product on the product page ---- */
body.template-product .shopify-section:has(.product) {
  padding-top: 1.5rem !important;
}

/* ---- Tighter, consistent vertical rhythm between info blocks ---- */
.product__info-container > * + * {
  margin: 1rem 0 !important;
}
.product__info-container .product-form,
.product__info-container .product__description {
  margin: 1.4rem 0 !important;
}
/* Rating widget sits closer to neighbours */
.product__info-container .rdj-rating,
.product__info-container .rating {
  margin: 0.6rem 0 !important;
}

/* ---- Layout: full-width on mobile, 60/40 split on desktop ---- */
.product--large:not(.product--no-media).grid {
  grid-template-columns: 1fr;
}

@media screen and (min-width: 750px) {
  .product--large:not(.product--no-media).grid {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 0;
    align-items: stretch; /* stretch so sticky has room to scroll within the cell */
  }
}

/* ---- Info column padding ----
   Zero top padding on desktop so the first element ("Made to Order"
   label) aligns on the same baseline as the top of the product image
   in the left column. Mobile keeps a small top since it stacks below. */
.product__info-container {
  padding: 2rem 2rem 3rem;
}

@media screen and (min-width: 750px) {
  .product__info-container {
    padding: 0 0 3rem 2rem;
  }
}

@media screen and (min-width: 990px) {
  .product__info-container {
    padding: 0 0 4rem 4rem;
  }
}

/* ---- Vendor label ---- */
.product__text.caption-with-letter-spacing {
  color: rgba(200, 169, 81, 0.45);
  font-size: 0.9rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 1.4rem;
  display: block;
}

/* ---- Product title ---- */
.product__title h1 {
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.15;
  font-weight: 400;
  margin: 0 0 2.4rem;
  color: var(--color-off-white);
}

/* Mobile-only: scale the title with the viewport so long names never overflow
   (must target .product__title h1 — that's where the desktop size lives — so it
   actually wins over the clamp above). Desktop ≥750px is untouched. */
@media screen and (max-width: 749px) {
  .product__title h1 {
    font-size: clamp(1.5rem, 7vw, 2.2rem);
    word-break: break-word;
  }
}

/* Mobile gallery: hide the thumbnail strip so the main image is the full focus,
   and restore the swipe counter/arrows (Dawn suppresses them when mobile
   thumbnails are shown). Scoped to ≤749px ONLY — the desktop Boucheron rail
   (≥990px) and tablet layout are completely untouched. */
@media screen and (max-width: 749px) {
  media-gallery .thumbnail-slider {
    display: none !important;
  }
  media-gallery .slider-buttons {
    display: flex !important;
  }
}

/* ---- Crafted scarcity signal — sits ABOVE the price as the visual anchor ---- */
.product__info-container .rdj-crafted-signal {
  font-size: 12px;
  letter-spacing: 0.05em;
  color: #C9A96E;
  text-transform: none;
  margin: 4px 0 12px;
}

/* WhatsApp CTA — discreet line below the buy buttons (only renders once whatsapp_number is set) */
.rdj-whatsapp-cta { text-align: center; margin-top: 4px; }
.rdj-whatsapp-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: rgba(201, 169, 110, 0.55);
  text-decoration: none;
  letter-spacing: 0.04em;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.rdj-whatsapp-icon { width: 14px; height: 14px; flex-shrink: 0; color: #25D366; }
.rdj-whatsapp-link:hover { color: #C9A96E; border-bottom-color: #C9A96E; }

/* Persistent floating WhatsApp button (all pages except checkout) */
.rdj-wa-float {
  position: fixed;
  bottom: 28px;
  right: 24px;
  width: 48px;
  height: 48px;
  background: #25d366;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
  transition: transform 0.2s ease, background 0.2s ease;
  text-decoration: none;
}
.rdj-wa-float:hover {
  background: #1ebe5d;
  transform: scale(1.08);
}
@media screen and (max-width: 749px) {
  .rdj-wa-float {
    bottom: 80px; /* clears the mobile sticky CTA bar on product pages */
    right: 16px;
  }
}

/* Own This — in-page primary CTA (desktop only; mobile uses the sticky bar) */
.product__info-container .product-form__submit.rdj-own-this-btn {
  background: var(--color-gold, #C9A96E) !important;
  color: #080808 !important;
  border: 1px solid var(--color-gold, #C9A96E) !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 1rem;
}
.product__info-container .product-form__submit.rdj-own-this-btn:hover {
  background: var(--color-gold-dark, #b8924f) !important;
  color: #080808 !important;
  border-color: var(--color-gold-dark, #b8924f) !important;
}
.rdj-own-this-btn[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}
/* Hide in-page Own This on mobile — sticky bar handles it there */
@media screen and (max-width: 749px) {
  .rdj-own-this-btn {
    display: none !important;
  }
}
/* Demote Add to Bag to secondary (outline) on desktop; Own This is the primary */
@media screen and (min-width: 750px) {
  .product-form__submit:not(.rdj-own-this-btn) {
    background: transparent;
    color: var(--color-gold, #C9A96E);
    border: 1px solid rgba(201, 169, 110, 0.4);
  }
  .product-form__submit:not(.rdj-own-this-btn):hover {
    border-color: var(--color-gold, #C9A96E);
    background: transparent;
  }
}

/* ---- Price — pronounced, full champagne gold ---- */
.product__info-container .price .price-item--regular,
.product__info-container .price__regular .price-item,
.product__info-container .price__sale .price-item--sale,
.price--large .price__regular .price-item,
.price--large .price__sale .price-item--sale {
  color: var(--color-off-white) !important;
  font-size: 2.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  line-height: 1.1;
}

.product__info-container .price__sale .price-item--regular,
.price--large .price__sale .price-item--regular {
  color: rgba(244, 242, 239, 0.4) !important;
  font-size: 1.7rem !important;
}

.product__tax {
  font-size: 1.1rem;
  color: rgba(245, 240, 232, 0.4);
  letter-spacing: 0.06em;
  margin-top: 0.8rem;
}

/* ---- Variant picker ---- */
.variant-input-wrapper .variant__button-label {
  border: 1px solid rgba(200, 169, 81, 0.35) !important;
  color: rgba(245, 240, 232, 0.65) !important;
  letter-spacing: 0.1em;
  font-size: 1.05rem;
  background: transparent !important;
  transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
  min-width: 4.8rem;
  text-align: center;
}

.variant-input input:checked ~ .variant__button-label,
.variant-input:hover .variant__button-label {
  border-color: rgba(200, 169, 81, 0.6) !important;
  color: rgba(200, 169, 81, 0.6) !important;
  background: rgba(200, 169, 81, 0.05) !important;
}

/* ---- Quantity box ---- */
.quantity__input {
  color: var(--color-off-white) !important;
  border-color: rgba(200, 169, 81, 0.3) !important;
  background: transparent !important;
}

.quantity__button {
  color: var(--color-off-white) !important;
  border-color: rgba(200, 169, 81, 0.3) !important;
}

.quantity__button:hover {
  color: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
  background: transparent !important;
}

/* ---- Add to cart button — full-width, outlined gold ---- */
.product-form__buttons {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.product-form__cart-submit,
.product__info-container .product-form__submit {
  width: 100% !important;
  padding: 1.8rem 2rem !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.22em !important;
  background: transparent !important;
  border: 1px solid var(--color-gold) !important;
  color: var(--color-gold) !important;
  transition: background-color 0.3s ease, color 0.3s ease;
  min-height: 5.4rem;
}

.product-form__cart-submit:hover,
.product-form__cart-submit:focus-visible,
.product__info-container .product-form__submit:hover,
.product__info-container .product-form__submit:focus-visible {
  background: var(--color-gold) !important;
  color: var(--color-deep-black) !important;
}

/* ADD TO BAG → recessive dimmed outline (Own This is the ONLY full-gold / filled CTA).
   Keeps it an outline even on hover so it never competes with Own This. */
.product__info-container .product-form__submit:not(.rdj-own-this-btn) {
  color: rgba(200, 169, 81, 0.6) !important;
  border-color: rgba(200, 169, 81, 0.3) !important;
}
.product__info-container .product-form__submit:not(.rdj-own-this-btn):hover,
.product__info-container .product-form__submit:not(.rdj-own-this-btn):focus-visible {
  background: transparent !important;
  color: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
}

.product-form__cart-submit[disabled],
.product__info-container .product-form__submit[disabled] {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
}

/* Dynamic checkout (Shop Pay, PayPal etc.) — removed on made-to-order via template */
.shopify-payment-button__button {
  border-radius: 0 !important;
  min-height: 5.4rem !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.12em !important;
}

/* ---- Description ---- */
.product__description {
  color: rgba(245, 240, 232, 0.65);
  line-height: 2;
  letter-spacing: 0.03em;
  font-size: 1.45rem;
  margin-top: 3.5rem;
  padding-top: 3.5rem;
  border-top: 1px solid rgba(200, 169, 81, 0.12);
}

.product__description p + p {
  margin-top: 1.4rem;
}

/* ---- Share button ---- */
.share-button {
  color: rgba(245, 240, 232, 0.4) !important;
  font-size: 1.0rem;
  letter-spacing: 0.15em;
  margin-top: 2rem;
}

.share-button:hover {
  color: var(--color-gold) !important;
}

/* ---- Sticky info — owned by luxury-product-sticky.js on desktop ---- */
/*
 * Disable Dawn's CSS sticky (and our own earlier attempt) so that
 * luxury-product-sticky.js can drive position:fixed with exact coordinates.
 * Higher specificity beats Dawn's .product__column-sticky rule.
 * Inline styles set by JS always beat stylesheet rules (no !important needed).
 */
.product .product__info-container.product__column-sticky {
  position: static;
  top: auto;
  max-height: none;
  overflow-y: visible;
}
.product .product__info-container.product__column-sticky::-webkit-scrollbar {
  display: none;
}

/* ---- Thumbnail strip ---- */
.thumbnail-slider__button {
  border: 1px solid rgba(200, 169, 81, 0.2) !important;
  border-radius: 0 !important;
  overflow: hidden;
  transition: border-color 0.25s ease;
  padding: 0 !important;
  position: relative;
}

.thumbnail-slider__button:hover,
.thumbnail-slider__button[aria-current="true"] {
  border-color: var(--color-gold) !important;
}

/* ---- 3D model viewer ---- */
product-model,
.product__media--model {
  background: #0f0f0f;
}

model-viewer {
  width: 100%;
  height: 100%;
  min-height: 40vh;
  background: transparent;
  --progress-bar-color: var(--color-gold);
}

@media screen and (min-width: 750px) {
  model-viewer {
    min-height: 55vh;
  }
}

model-viewer::part(default-ar-button) {
  background: rgba(200, 169, 81, 0.15);
  border: 1px solid var(--color-gold);
  border-radius: 0;
  color: var(--color-gold);
}

/* ---- Video play button in gallery ---- */
.deferred-media__poster-button {
  background: rgba(10,10,10,0.45) !important;
  border: 1px solid rgba(200, 169, 81,0.5) !important;
  border-radius: 0 !important;
}

.deferred-media__poster-button:hover {
  background: rgba(200, 169, 81,0.15) !important;
  border-color: var(--color-gold) !important;
}

.deferred-media__poster-button .svg-wrapper svg {
  fill: var(--color-gold) !important;
}

/* =====================================================
   RELATED PRODUCTS
   ===================================================== */

.related-products {
  padding-top: 8rem !important;
  padding-bottom: 8rem !important;
  border-top: 1px solid rgba(200, 169, 81, 0.1);
}

.related-products .title-wrapper {
  text-align: center;
  margin-bottom: 4rem;
}

.related-products .title {
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

@media screen and (max-width: 749px) {
  .related-products .grid--2-col-tablet-down {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
}

/* =====================================================
   CRAFT & TRUST
   ===================================================== */

.section-luxury-craft-trust {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-craft-trust__header {
  text-align: center;
  margin-bottom: 5.5rem;
}

.luxury-craft-trust__heading {
  margin: 1.5rem auto 0;
  font-size: clamp(2rem, 3vw, 3.2rem);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.luxury-craft-trust__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem 3rem;
}

@media screen and (min-width: 750px) {
  .luxury-craft-trust__grid--3-col { grid-template-columns: repeat(3, 1fr); }
  .luxury-craft-trust__grid--4-col { grid-template-columns: repeat(4, 1fr); }
}

@media screen and (min-width: 990px) {
  .luxury-craft-trust__grid--2-col { grid-template-columns: repeat(2, 1fr); }
}

.luxury-craft-trust__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2rem;
}

.luxury-craft-trust__icon {
  width: 5.6rem;
  height: 5.6rem;
  color: var(--color-gold);
  flex-shrink: 0;
}

@media screen and (min-width: 750px) {
  .luxury-craft-trust__icon {
    width: 6.4rem;
    height: 6.4rem;
  }
}

.luxury-craft-trust__icon svg {
  width: 100%;
  height: 100%;
}

.luxury-craft-trust__item-title {
  font-size: 1.3rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-off-white);
  margin: 0;
  font-family: var(--font-heading-family);
  font-weight: 400;
}

@media screen and (min-width: 750px) {
  .luxury-craft-trust__item-title {
    font-size: 1.45rem;
  }
}

.luxury-craft-trust__item-text {
  font-size: 1.3rem;
  color: rgba(245, 240, 232, 0.55);
  line-height: 1.8;
  letter-spacing: 0.04em;
  margin: 0;
  max-width: 24rem;
}

/* =====================================================
   CUSTOMER REVIEWS
   ===================================================== */

.section-luxury-reviews {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-reviews__header {
  text-align: center;
  margin-bottom: 5.5rem;
}

.luxury-reviews__heading {
  margin: 1.5rem auto 3rem;
  font-size: clamp(2rem, 3vw, 3.2rem);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.luxury-reviews__overall {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  flex-wrap: wrap;
}

.luxury-reviews__overall-stars {
  display: flex;
  gap: 0.3rem;
}

.luxury-reviews__overall-score {
  font-size: 1.8rem;
  color: var(--color-gold);
  letter-spacing: 0.08em;
  font-family: var(--font-heading-family);
}

.luxury-reviews__overall-count {
  font-size: 1.2rem;
  color: rgba(245, 240, 232, 0.45);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.luxury-reviews__star {
  font-size: 1.6rem;
  color: rgba(200, 169, 81, 0.2);
  line-height: 1;
}

.luxury-reviews__star--filled {
  color: var(--color-gold);
}

.luxury-reviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.4rem;
}

@media screen and (min-width: 750px) {
  .luxury-reviews__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.4rem;
  }
}

@media screen and (min-width: 990px) {
  .luxury-reviews__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.luxury-reviews__card {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  padding: 3.2rem;
  border: 1px solid rgba(200, 169, 81, 0.12);
  background: rgba(255, 255, 255, 0.02);
  transition: border-color 0.3s ease;
}

.luxury-reviews__card:hover {
  border-color: rgba(200, 169, 81, 0.28);
}

.luxury-reviews__photo {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(200, 169, 81, 0.25);
  flex-shrink: 0;
}

.luxury-reviews__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.luxury-reviews__stars {
  display: flex;
  gap: 0.2rem;
}

.luxury-reviews__text {
  font-size: 1.4rem;
  color: rgba(245, 240, 232, 0.7);
  line-height: 1.9;
  letter-spacing: 0.03em;
  font-style: italic;
  margin: 0;
}

.luxury-reviews__text p {
  margin: 0;
}

.luxury-reviews__text p::before { content: '\201C'; }
.luxury-reviews__text p::after  { content: '\201D'; }

.luxury-reviews__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem 1rem;
  margin-top: auto;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(200, 169, 81, 0.08);
}

.luxury-reviews__author {
  font-size: 1.1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-off-white);
  font-weight: 400;
}

.luxury-reviews__location,
.luxury-reviews__date {
  font-size: 1.1rem;
  color: rgba(245, 240, 232, 0.4);
  letter-spacing: 0.06em;
}

.luxury-reviews__separator {
  color: rgba(200, 169, 81, 0.3);
}

/* ---- "Write a Review" button ---- */
.luxury-reviews__add-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 2.8rem;
  background: transparent;
  border: 1px solid rgba(200, 169, 81, 0.35);
  color: rgba(245, 240, 232, 0.7);
  padding: 1.1rem 2.4rem;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-family: var(--font-body-family);
  cursor: pointer;
  transition: border-color 0.25s ease, color 0.25s ease;
}

.luxury-reviews__add-btn:hover,
.luxury-reviews__add-btn[aria-expanded="true"] {
  border-color: var(--color-gold);
  color: var(--color-gold);
}

.luxury-reviews__add-btn svg {
  width: 1.4rem;
  height: 1.4rem;
  flex-shrink: 0;
}

/* ---- Collapsible form wrapper ---- */
.luxury-reviews__form-wrap {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.3s ease;
  opacity: 0;
  margin-bottom: 0;
}

.luxury-reviews__form-wrap.is-open {
  max-height: 80rem;
  opacity: 1;
  margin-bottom: 5.6rem;
}

/* ---- Form layout ---- */
.luxury-reviews__form {
  border: 1px solid rgba(200, 169, 81, 0.12);
  padding: 3.2rem;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  background: rgba(255, 255, 255, 0.02);
}

.rdj-review-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

@media screen and (max-width: 749px) {
  .rdj-review-row {
    grid-template-columns: 1fr;
  }
}

.rdj-review-field {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.rdj-review-label {
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.45);
  font-family: var(--font-body-family);
}

.rdj-review-input {
  background: transparent;
  border: 1px solid rgba(200, 169, 81, 0.2);
  color: var(--color-off-white);
  padding: 1.2rem 1.4rem;
  font-size: 1.3rem;
  font-family: var(--font-body-family);
  outline: none;
  transition: border-color 0.2s ease;
  width: 100%;
  border-radius: 0;
  -webkit-appearance: none;
}

.rdj-review-input:focus {
  border-color: var(--color-gold);
}

.rdj-review-input::placeholder {
  color: rgba(245, 240, 232, 0.22);
}

.rdj-review-textarea {
  resize: vertical;
  min-height: 10rem;
}

/* ---- Star picker inside form ---- */
.rdj-review-field--stars {
  flex-direction: row;
  align-items: center;
  gap: 1.6rem;
}

.rdj-review-star-picker {
  display: flex;
  gap: 0.4rem;
}

.rdj-review-star-pick {
  all: unset;
  font-size: 2.2rem;
  cursor: pointer;
  color: rgba(200, 169, 81, 0.2);
  transition: color 0.1s ease, transform 0.1s ease;
  line-height: 1;
}

.rdj-review-star-pick.is-selected {
  color: var(--color-gold);
}

.rdj-review-star-pick:active {
  transform: scale(1.2);
}

/* ---- Actions row ---- */
.rdj-review-actions {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
}

.rdj-review-submit {
  padding: 1.4rem 3.2rem !important;
  background: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
  color: var(--color-deep-black) !important;
  letter-spacing: 0.16em;
  font-size: 0.85rem;
}

.rdj-review-cancel {
  all: unset;
  cursor: pointer;
  font-size: 1.1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.4);
  font-family: var(--font-body-family);
  transition: color 0.2s ease;
}

.rdj-review-cancel:hover {
  color: rgba(245, 240, 232, 0.75);
}

/* ---- Thank-you message ---- */
.rdj-review-thanks {
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: var(--color-gold);
  text-transform: uppercase;
}

/* =====================================================
   COLLECTION FEATURE — editorial two-column split
   ===================================================== */

.section-luxury-collection-feature {
  overflow: hidden;
}

/* ---- inner: flex row on desktop, stacked on mobile ---- */
.luxury-cf__inner {
  display: flex;
  flex-direction: column; /* mobile: stack */
  align-items: stretch;
}

@media screen and (min-width: 750px) {
  .luxury-cf__inner {
    flex-direction: row;
    min-height: 60vh;
  }

  /* Image-left: reverse the row order */
  .luxury-cf--reversed .luxury-cf__inner {
    flex-direction: row-reverse;
  }
}

/* ---- text column ---- */
/* flex-basis / max-width are set via inline style in the liquid template */
.luxury-cf__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2.8rem;
  padding: 7rem 8rem;
  box-sizing: border-box;
}

@media screen and (min-width: 990px) {
  .luxury-cf__text {
    padding: 8rem 9rem;
  }
}

@media screen and (max-width: 749px) {
  /* On mobile, stack: image first, text below. Reset inline flex-basis. */
  .luxury-cf__text,
  .luxury-cf__media {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .luxury-cf__text {
    padding: 5.6rem 2.4rem;
  }
}

.luxury-cf__eyebrow {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-gold);
  font-family: var(--font-body-family);
  font-weight: 400;
}

.luxury-cf__heading {
  font-size: clamp(2.4rem, 2.8vw, 4rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.1;
  margin: 0;
  font-weight: 400;
}

.luxury-cf__body {
  font-size: 1.45rem;
  line-height: 1.85;
  color: rgba(var(--color-foreground), 0.65);
  max-width: 44ch;
}

.luxury-cf__body p { margin: 0; }

/* Underlined text link — Boucheron "Discover the collection" style */
.luxury-cf__link {
  display: inline-block;
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  color: rgb(var(--color-foreground));
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--color-foreground), 0.5);
  padding-bottom: 0.2rem;
  transition: color 0.25s ease, border-color 0.25s ease;
  width: fit-content;
  font-family: var(--font-body-family);
}

.luxury-cf__link:hover {
  color: var(--color-gold);
  border-color: var(--color-gold);
}

/* ---- image column ---- */
/* flex-basis / max-width / min-height are set via inline style in liquid */
.luxury-cf__media {
  overflow: hidden;
  display: flex;        /* makes the <img> fill via flex: 1 below */
  box-sizing: border-box;
}

/* Image at natural proportions — same behaviour as product page images */
.luxury-cf__img {
  display: block;
  width: 100%;
  height: auto;
}

/* Video/GIF — fills column width, covers height */
.luxury-cf__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.luxury-cf__placeholder {
  flex: 1 1 0%;
  background: rgba(200, 169, 81, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
}

.luxury-cf__placeholder-svg {
  width: 100%;
  height: 100%;
  opacity: 0.18;
}

/* =====================================================
   BOTTOM BANNER
   ===================================================== */

.section-luxury-bottom-banner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.luxury-bottom-banner__inner {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.luxury-bottom-banner__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.luxury-bottom-banner__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.luxury-bottom-banner__placeholder {
  background: #0d0a06;
}

.luxury-bottom-banner__placeholder-inner {
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 50% 40%, #1c1408 0%, #080808 70%);
}

.luxury-bottom-banner__overlay {
  position: absolute;
  inset: 0;
  background-color: #080808;
}

.luxury-bottom-banner__content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 5.5rem 2rem;
  width: 100%;
}

@media screen and (min-width: 750px) {
  .luxury-bottom-banner__content {
    padding: 8rem 4rem;
  }
}

.luxury-bottom-banner__heading {
  color: var(--color-off-white);
  font-size: clamp(2.4rem, 4vw, 5rem);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin: 1.5rem auto 2.5rem;
  max-width: 80rem;
  line-height: 1.1;
}

.luxury-bottom-banner__subheading {
  font-size: 1.5rem;
  color: rgba(245, 240, 232, 0.6);
  letter-spacing: 0.07em;
  font-style: italic;
  margin: 0 auto 3.5rem;
  max-width: 55rem;
  line-height: 1.7;
  font-weight: 300;
}

.luxury-bottom-banner__btn {
  min-width: 22rem;
}

/* =====================================================
   SCROLL TO TOP
   ===================================================== */

.luxury-scroll-top {
  position: fixed;
  bottom: 8.8rem; /* stacks above the WhatsApp float (48px + gap) so they don't overlap */
  right: 2.4rem;
  z-index: 500;
  width: 4.4rem;
  height: 4.4rem;
  background: transparent;
  border: 1px solid rgba(200, 169, 81, 0.4);
  color: var(--color-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(1.2rem);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease,
              background-color 0.25s ease, border-color 0.25s ease;
  padding: 0;
}

.luxury-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.luxury-scroll-top:hover {
  background: rgba(200, 169, 81, 0.1);
  border-color: var(--color-gold);
}

.luxury-scroll-top svg {
  width: 1.6rem;
  height: 1.6rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* On mobile the WhatsApp float sits at 80px (clearing the sticky CTA bar);
   stack the back-to-top above it and align to the same right edge. */
@media screen and (max-width: 749px) {
  .luxury-scroll-top {
    bottom: 140px;
    right: 16px;
  }
}

/* =====================================================
   PRODUCT PAGE — INLINE STAR RATING
   ===================================================== */

/* Interactive rating widget */
.rdj-rating-widget {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2.8rem;
  padding-bottom: 2.8rem;
  border-bottom: 1px solid rgba(200, 169, 81, 0.1);
}

.rdj-rating-stars {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}

.rdj-star-btn {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0.2rem;
  -webkit-tap-highlight-color: transparent;
}

.rdj-star-btn svg {
  width: 1.8rem;
  height: 1.8rem;
  fill: rgba(200, 169, 81, 0.15);
  stroke: rgba(200, 169, 81, 0.45);
  stroke-width: 1.5;
  transition: fill 0.15s ease, stroke 0.15s ease, transform 0.1s ease;
}

.rdj-star-btn:hover svg,
.rdj-star-btn.is-hover svg,
.rdj-star-btn.is-filled svg {
  fill: var(--color-gold);
  stroke: var(--color-gold);
}

.rdj-star-btn:active svg {
  transform: scale(1.25);
}

.rdj-rating-label {
  font-size: 1.1rem;
  color: rgba(245, 240, 232, 0.45);
  letter-spacing: 0.08em;
  font-family: var(--font-body-family);
}

@media screen and (max-width: 749px) {
  .rdj-star-btn svg {
    width: 2.2rem;
    height: 2.2rem;
  }
}

/* =====================================================
   PRODUCT PAGE — BUY NOW BUTTON
   ===================================================== */

.rdj-buy-now-btn {
  width: 100% !important;
  padding: 1.8rem 2rem !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.22em !important;
  background: var(--color-gold) !important;
  border: 1px solid var(--color-gold) !important;
  color: var(--color-deep-black) !important;
  transition: opacity 0.25s ease, background-color 0.25s ease !important;
  min-height: 5.4rem !important;
  font-family: var(--font-body-family) !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  display: block !important;
  text-align: center !important;
  font-weight: 400 !important;
}

.rdj-buy-now-btn:hover,
.rdj-buy-now-btn:focus-visible {
  opacity: 0.84 !important;
  background: var(--color-gold) !important;
}

/* Stack Add to Cart + Buy Now cleanly with a gap */
.product-form__buttons + .rdj-buy-now-btn,
.product__buy-now-wrap {
  margin-top: 0;
}

/* Separate the two CTA buttons with a small gap */
.product-form__buttons {
  row-gap: 0 !important;
  margin-bottom: 1.4rem;
}

/* =====================================================
   PRODUCT PAGE — 3D VIEWER
   ===================================================== */

/* "View in 3D" badge overlaid on the 3D media item */
.product__media-item .product__media--model {
  position: relative;
}

.product__media-item .product__media--model::before {
  content: 'View in 3D';
  position: absolute;
  top: 1.6rem;
  left: 1.6rem;
  z-index: 4;
  background: rgba(10, 10, 10, 0.88);
  border: 1px solid rgba(200, 169, 81, 0.6);
  color: var(--color-gold);
  font-size: 0.75rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  padding: 0.6rem 1.2rem;
  font-family: var(--font-body-family);
  pointer-events: none;
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* rdj-3d-cta / rdj-3d-btn removed — badge is now overlaid on the media itself */

/* =====================================================
   PRODUCT PAGE — LAYOUT REFINEMENTS (Boucheron-style)
   ===================================================== */

/* Remove the "view full details" link - redundant on product page */
.product__view-details {
  display: none !important;
}

/* Title: tighter spacing, more authority */
.product__title {
  margin-bottom: 0.8rem !important;
}

.product__title h1 {
  margin-bottom: 0.8rem !important;
}

/* Price: position closer to title */
#price-{{ section.id }},
[id^="price-"] {
  margin-top: 0 !important;
}

/* Divider between price and variants */
.product-form__input:first-of-type {
  padding-top: 2.8rem;
  border-top: 1px solid rgba(200, 169, 81, 0.1);
  margin-top: 2.8rem;
}

/* Variant label — refined */
.product-form__input .form__label {
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.5);
  margin-bottom: 1.4rem;
}

/* =====================================================
   PRODUCT GALLERY — FLUSH / SEAMLESS MEDIA STACK
   ===================================================== */

/* Single-column vertical stack — override Dawn's 50% stacked-layout rule */
@media screen and (min-width: 750px) {
  .product__media-list .product__media-item {
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 0;
  }
}

/* Zero out all gaps between media tiles */
.product__media-list {
  row-gap: 0 !important;
  column-gap: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}

/* Remove Dawn's default border, radius, and drop-shadow from every media item */
.product__media-item .global-media-settings {
  border: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

.product__media-item .global-media-settings::after {
  content: none !important;
}

.product__media-item .product__media,
.product__media-item img,
.product__media-item video,
.product__media-item model-viewer,
.product__media-item iframe {
  border-radius: 0 !important;
}

/* No margin between stacked items on any breakpoint */
.product__media-list .product__media-item + .product__media-item {
  margin-top: 0 !important;
}

/* ─────────────────────────────────────────────────────────────────────────────
   Desktop: vertical thumbnail RAIL to the LEFT of the media (Boucheron-style).
   Stays sticky while the stacked media column scrolls. Mobile is untouched
   (keeps its horizontal thumbnails below the media). Only ≥990px.
   ───────────────────────────────────────────────────────────────────────────── */
@media screen and (min-width: 990px) {
  /* Gallery becomes a row: [thumbnail rail] [media]. DOM order keeps the main
     viewer first, so the 3D-badge JS still finds it via the first <slider-component>. */
  .product media-gallery {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start;
    gap: 1.6rem;
  }
  media-gallery > slider-component[id^='GalleryViewer'] {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
  }
  /* The rail: surfaced on desktop (override Dawn's large-up-hide), left, sticky. */
  media-gallery > .thumbnail-slider {
    order: 1 !important;
    display: block !important;
    flex: 0 0 7.5rem;
    width: 7.5rem;
    position: sticky;
    top: calc(var(--header-height, 7rem) + 1.5rem);
    align-self: flex-start;
    margin: 0 !important;
    padding: 0 !important;
  }
  media-gallery > .thumbnail-slider .thumbnail-list {
    display: flex !important;
    flex-direction: column;
    gap: 1rem;
    overflow: visible !important;
    transform: none !important;        /* cancel the horizontal-slider transform */
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }
  media-gallery > .thumbnail-slider .slider-button { display: none !important; }
  media-gallery .thumbnail-list__item {
    width: 100% !important;
    margin: 0 !important;
    flex: 0 0 auto;
  }
  media-gallery .thumbnail-list__item .thumbnail { width: 100%; aspect-ratio: 1 / 1; }
  media-gallery > .product__xr-button { order: 3; }
  /* When a thumbnail scrolls a media into view, stop just below the sticky header. */
  .product__media-item { scroll-margin-top: calc(var(--header-height, 7rem) + 2rem); }
}

/* ── "3D View" badge (Boucheron-style) — JS-positioned (luxury-media-autoplay.js):
   pinned to the media's top-right, sticky while scrolling the media, and hidden
   once the 3D model (last media) is reached. position:fixed; top/right set by JS. */
.rdj-3d-dock { display: contents; }
.rdj-3d-view {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 5;
  opacity: 0;            /* revealed by JS (.is-ready) once positioned — no flash */
  pointer-events: none;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.15rem 1.9rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(10, 9, 6, 0.14);
  color: #0a0906;
  font-size: 1.1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  transition: opacity 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.rdj-3d-view.is-ready { opacity: 1; pointer-events: auto; }
.rdj-3d-view:hover {
  background: #fff;
  border-color: var(--color-gold, #c8a951);
}
.rdj-3d-view__icon { display: inline-flex; }
.rdj-3d-view__icon svg { width: 1.7rem; height: 1.7rem; display: block; }
@media screen and (max-width: 749px) {
  .rdj-3d-view { padding: 0.9rem 1.4rem; font-size: 1rem; gap: 0.6rem; }
  .rdj-3d-view__icon svg { width: 1.5rem; height: 1.5rem; }
}
/* Pulsing attention dot on the 3D View badge — runs 3× on load then rests (no infinite loop) */
.rdj-3d-pulse::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #C9A96E;
  border-radius: 50%;
  flex-shrink: 0;
  animation: rdj-pulse 1.8s ease-in-out 3;
  /* Paused until the badge is revealed (JS sets --rdj-3d-pulse-play: running).
     Otherwise the 3 pulses finish during the page load — invisible on slower
     (desktop) loads, which is why it only showed on mobile. */
  animation-play-state: var(--rdj-3d-pulse-play, paused);
}
@keyframes rdj-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(0.7); }
}

/* Inline (auto-playing) product video fills its media container like the image.
   `.media > *` already gives it 100%×100% absolute; add cover so it never stretches. */
.rdj-inline-video__el {
  object-fit: cover;
  object-position: center center;
}

/* On a video slide the autoplaying inline video IS the display, so hide the whole
   modal-opener (preview image + zoom toggle + ▶ icon). This also fixes mobile,
   where Dawn's `.media-fit-cover .media { position:initial }` put the preview image
   and the video in normal flow — they STACKED vertically (still image above video),
   doubling the slide height and inflating the slider (the big empty gap). With the
   opener gone, only the video's `.media` (padding-top height) remains → correct
   single-height slide, and taps land straight on the video (JS tap-to-play). */
.product-media-container.media-type-video .product__modal-opener {
  display: none;
}

/* Wider media on mobile: edge-to-edge feel */
@media screen and (max-width: 749px) {
  .product .product__media-wrapper {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
}

/* =====================================================
   SIZE GUIDE LINK — product pages with Size option
   ===================================================== */

.rdj-size-guide-link {
  display: inline-block;
  margin-top: 0.8rem;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  color: var(--color-gold, #C8A951);
  text-decoration: none;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.rdj-size-guide-link:hover {
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* =====================================================
   CART PAGE — natural flow layout
   ===================================================== */

/* Remove luxury section padding from the cart sections (the sections set their
   own internal spacing). Includes the recommendations + add-on rows below. */
.shopify-section:has(cart-items),
.shopify-section:has(#main-cart-footer),
.shopify-section:has(.rdj-cart-completes),
.shopify-section:has(.rdj-cart-addon) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Shoppable-image row + the heading label ("In Motion") below it: drop the
   45px section-wrapper padding so they don't stack a large void between them.
   Each section sets its own internal spacing instead. */
.shopify-section:has(.rdj-shop) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.shopify-section:has(.rdj-heading) {
  padding-top: 0 !important;
}

/* Cart items: compact internal spacing */
cart-items {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
  display: block !important;
}

cart-items .title-wrapper-with-link {
  margin-top: 2rem !important;
  margin-bottom: 1.2rem !important;
}

cart-items .title--primary {
  margin: 0 !important;
}

.cart__items {
  padding-bottom: 1.6rem;
}

.tax-note {
  margin: 1rem 0 1rem auto;
}

/* Estimated Total bar — flows naturally right below items */
.cart__footer-wrapper {
  position: static !important;
  background: #080808;
  border-top: 0.1rem solid rgba(245, 240, 232, 0.12);
}

#main-cart-footer,
#main-cart-footer .page-width {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  /* Reset only vertical margins — keep the .page-width horizontal `margin: 0 auto`
     so the footer stays centered above max-width (1400px). A blanket `margin: 0`
     pinned it left, pulling Checkout left of the add-on card + footer buttons on
     wide screens. */
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.cart__footer.isolate {
  padding-top: 1.6rem !important;
  padding-bottom: 1.6rem !important;
}

.cart__footer {
  display: block !important;
}

/* Hide the Estimated Total / Checkout bar when the cart is EMPTY
   (our display:block override was forcing it to show on the empty cart). */
.is-empty .cart__footer,
#main-cart-footer.is-empty,
.is-empty .cart__footer-wrapper {
  display: none !important;
}

.cart__footer > div:only-child,
.cart__footer > * {
  width: 100% !important;
  margin-left: 0 !important;
}

/* Subtotal + checkout side by side on desktop */
.cart__blocks {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 3.2rem;
}

.cart__blocks .js-contents {
  text-align: right;
  flex: 0 0 auto;
}

.cart__blocks .totals {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.cart__blocks .cart__ctas {
  flex: 0 0 22rem;
}

.cart__checkout-button {
  max-width: 100%;
  width: 100%;
}

/* Per-item made-to-order delivery line in the cart (reads each product's
   rudian.delivery_days metafield; hidden when unset, e.g. gift packaging) */
.cart-item__details .rdj-cart-item-mto {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 169, 81, 0.7);
  margin: 0.6rem 0 0;
  font-weight: 400;
}

/* Larger, clearer cart line-item thumbnails so the piece is identifiable at a
   glance. Scoped to <cart-items> (the cart PAGE) so the narrow cart drawer is
   unaffected. Mobile kept at 120px so the details column isn't crowded. */
cart-items .cart-item__media {
  width: 200px !important;
  min-width: 200px !important;
}
cart-items .cart-item__image {
  width: 200px !important;
  height: auto !important;
}
@media screen and (max-width: 749px) {
  cart-items .cart-item__media {
    width: 120px !important;
    min-width: 120px !important;
  }
  cart-items .cart-item__image {
    width: 120px !important;
    max-width: 120px !important;
  }
}

/* Estimated Total + Checkout: right-aligned on one axis; tax note sits below. */
.cart__blocks {
  justify-content: flex-end !important;
}
.rdj-tax-note {
  display: block;
  text-align: right;
  margin-top: 0.8rem;
}

@media screen and (max-width: 749px) {
  .cart__blocks {
    flex-direction: column;
    align-items: stretch;
    gap: 1.2rem;
  }

  .cart__blocks .js-contents {
    text-align: center;
  }

  .cart__blocks .cart__ctas {
    flex: none;
    width: 100%;
  }
}

/* =====================================================
   CUSTOM FOOTER — rdj-footer
   ===================================================== */

.rdj-footer-section,
.rdj-footer {
  background: #0a0906;
  color: #d4c9b8;
}

/* Flush footer content to the left edge of the page-width container */
.rdj-footer .page-width {
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}

@media screen and (min-width: 750px) {
  .rdj-footer .page-width {
    /* Equal 5rem gutters: matches the site page-width so the footer's left and
       right edges line up with the header/main content (and cart, checkout,
       add-on card on the right). padding-left was 0, which pushed the left
       column to the viewport edge and clipped "Need Help" / the links. */
    padding-left: 5rem;
    padding-right: 5rem;
  }
}

/* ── Top bar ── */
.rdj-footer__top {
  padding: 3.2rem 0 2.4rem;
}

.rdj-footer__top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.4rem;
}

.rdj-footer__logo-link {
  display: inline-flex;
  flex-shrink: 0;
  text-decoration: none;
}

.rdj-footer__logo-img {
  display: block;
  height: auto;
}

.rdj-footer__logo-wordmark {
  font-size: 1.8rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-gold, #C8A951);
  font-weight: 300;
}

/* ── Brand block (logo + social, stacked) ── */
.rdj-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.8rem;
}

/* ── Social icons: monochrome → full brand colour on hover ── */
.rdj-footer__social {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.rdj-social__link {
  display: inline-flex;
  color: rgba(244, 242, 239, 0.5);
  transition: color 0.25s ease, transform 0.25s ease;
}
.rdj-social__link svg {
  width: 2.2rem;
  height: 2.2rem;
  display: block;
}
.rdj-social__link svg [stroke],
.rdj-social__link svg [fill]:not([fill='none']) {
  transition: stroke 0.25s ease, fill 0.25s ease;
}
.rdj-social__link:hover {
  transform: translateY(-2px);
}
.rdj-social__link--facebook:hover {
  color: #1877f2;
}
.rdj-social__link--whatsapp:hover {
  color: #25d366;
}
.rdj-social__link--pinterest:hover {
  color: #e60023;
}
.rdj-social__link--linkedin:hover {
  color: #0a66c2;
}
/* Instagram → its signature gradient on hover (stroke + the camera dot) */
.rdj-social__link--instagram:hover svg [stroke] {
  stroke: url(#rdj-ig-gradient);
}
.rdj-social__link--instagram:hover svg [fill]:not([fill='none']) {
  fill: url(#rdj-ig-gradient);
}

/* Back link — global (works on default page template + content/policy sections) */
.rdj-back {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(var(--color-foreground), 0.55);
  transition: color 0.2s ease;
}
.rdj-back:hover {
  color: var(--color-gold, #c8a951);
}
.rdj-back svg {
  width: 1.6rem;
  height: 1.6rem;
}

/* CTA buttons */
.rdj-footer__ctas {
  display: none; /* hidden per request; flip to flex to re-enable the Our Creations / Our Story buttons */
  gap: 1.4rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.rdj-footer__btn {
  display: inline-block;
  padding: 1.1rem 3.2rem;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1;
  transition: color 0.22s ease, background 0.22s ease, border-color 0.22s ease;
  white-space: nowrap;
}

.rdj-footer__btn--filled {
  background: var(--color-gold, #C8A951);
  color: #0a0906;
  border: 1px solid var(--color-gold, #C8A951);
}

.rdj-footer__btn--filled:hover {
  background: transparent;
  color: var(--color-gold, #C8A951);
}

.rdj-footer__btn--outline {
  background: transparent;
  color: var(--color-gold, #C8A951);
  border: 1px solid rgba(200, 169, 81, 0.4);
}

.rdj-footer__btn--outline:hover {
  border-color: var(--color-gold, #C8A951);
  background: rgba(200, 169, 81, 0.05);
}

/* ── Divider ── */
.rdj-footer__rule {
  height: 1px;
  background: rgba(200, 169, 81, 0.14);
  margin: 0;
}

/* ── Main columns ── */
.rdj-footer__cols-wrap {
  padding: 2.8rem 0 3.2rem;
}

.rdj-footer__cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3.2rem 4rem;
}

.rdj-footer__col-heading {
  font-size: 1.1rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #d4c9b8;
  margin: 0 0 2rem 0;
  font-weight: 500;
}

.rdj-footer__col-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.rdj-footer__col-link {
  color: rgba(212, 201, 184, 0.6);
  text-decoration: none;
  font-size: 1.5rem;
  font-weight: 400;
  transition: color 0.25s ease;
  display: inline-block;
  position: relative;
}

/* Thin champagne-gold underline that slides in from the left on hover */
.rdj-footer__col-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.2rem;
  width: 100%;
  height: 1px;
  background: var(--color-gold, #C8A951);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rdj-footer__col-link:hover {
  color: var(--color-gold, #C8A951);
}

.rdj-footer__col-link:hover::after {
  transform: scaleX(1);
}

.rdj-footer__col-text {
  color: rgba(212, 201, 184, 0.6);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.5;
}

/* ── Bottom bar ── */
.rdj-footer__bottom {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 2.8rem 0;
  gap: 2.4rem;
  flex-wrap: wrap;
}

/* Collapsible Information */
.rdj-footer__info {
  flex: 1 1 auto;
}

.rdj-footer__info-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.rdj-footer__info-summary::-webkit-details-marker { display: none; }
.rdj-footer__info-summary::marker { display: none; }

.rdj-footer__info-label {
  font-size: 1.1rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #d4c9b8;
  font-weight: 400;
}

.rdj-footer__info-chevron {
  color: rgba(212, 201, 184, 0.7);
  display: flex;
  align-items: center;
  transition: transform 0.22s ease;
}

.rdj-footer__info[open] .rdj-footer__info-chevron {
  transform: rotate(180deg);
}

.rdj-footer__info-links {
  list-style: none;
  padding: 1.8rem 0 0 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 3.2rem;
}

.rdj-footer__info-link {
  color: rgba(212, 201, 184, 0.45);
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 400;
  transition: color 0.2s ease;
}

.rdj-footer__info-link:hover {
  color: var(--color-gold, #C8A951);
}

.rdj-footer__copyright {
  font-size: 1.3rem;
  color: rgba(212, 201, 184, 0.35);
  letter-spacing: 0.06em;
  flex-shrink: 0;
  margin: 0;
  /* Anchor to the top (level with the Information heading) so it stays put when
     the Information accordion expands. `center` made it slide down as the bar grew. */
  align-self: flex-start;
}

/* ── Tablet (2-col grid) ── */
@media screen and (max-width: 989px) {
  .rdj-footer__cols {
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem 3.2rem;
  }
}

/* ── Mobile ── */
@media screen and (max-width: 749px) {
  .rdj-footer__top {
    padding: 4rem 0;
  }

  .rdj-footer__top-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 3.2rem;
  }

  .rdj-footer__ctas {
    justify-content: flex-start;
    width: 100%;
  }

  .rdj-footer__btn {
    flex: 1 1 0;
    text-align: center;
    padding: 1.1rem 1.6rem;
  }

  .rdj-footer__cols-wrap {
    padding: 4rem 0;
  }

  .rdj-footer__cols {
    grid-template-columns: 1fr 1fr;
    gap: 3.2rem 2.4rem;
  }

  .rdj-footer__bottom {
    flex-direction: column;
    padding: 2.4rem 0;
    gap: 2rem;
  }

  .rdj-footer__info-links {
    flex-direction: column;
    gap: 1rem;
  }
}

@media screen and (max-width: 480px) {
  .rdj-footer__cols {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════
   RDJ AUTH — Login / Register pages
   ═══════════════════════════════════════════════════ */

.rdj-auth {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 1.6rem;
  background: #faf8f5;
}

.rdj-auth__box {
  width: 100%;
  max-width: 44rem;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding: 4.8rem 4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.8rem;
}

.rdj-auth__box--hidden {
  display: none;
}

/* Logo */
.rdj-auth__logo-link {
  display: inline-flex;
  text-decoration: none;
}

.rdj-auth__logo {
  display: block;
  height: auto;
  max-width: 12rem;
}

.rdj-auth__brand {
  font-size: 2rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #0a0906;
  font-weight: 300;
}

/* Heading */
.rdj-auth__heading {
  font-size: 2.2rem;
  font-weight: 300;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0a0906;
  margin: 0;
  text-align: center;
}

.rdj-auth__subtext {
  font-size: 1.4rem;
  color: rgba(10, 9, 6, 0.5);
  margin: -1.6rem 0 0;
  text-align: center;
  letter-spacing: 0.02em;
}

/* Tabs */
.rdj-auth__tabs {
  display: flex;
  width: 100%;
  border: 1px solid rgba(10, 9, 6, 0.12);
  border-radius: 2px;
  overflow: hidden;
}

.rdj-auth__tab {
  flex: 1;
  padding: 1rem 0;
  font-size: 1.2rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 400;
  color: rgba(10, 9, 6, 0.45);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease;
}

.rdj-auth__tab--active {
  background: #0a0906;
  color: #ffffff;
}

.rdj-auth__tab:not(.rdj-auth__tab--active):hover {
  color: #0a0906;
  background: rgba(10, 9, 6, 0.04);
}

/* Panels */
.rdj-auth__panel {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.rdj-auth__panel--hidden {
  display: none;
}

/* Social buttons */
.rdj-auth__social {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.rdj-auth__social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 1.1rem 2rem;
  border: 1px solid rgba(10, 9, 6, 0.14);
  color: #0a0906;
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  transition: border-color 0.2s ease, background 0.2s ease;
  background: #ffffff;
}

.rdj-auth__social-btn:hover {
  border-color: rgba(10, 9, 6, 0.35);
  background: rgba(10, 9, 6, 0.02);
}

.rdj-auth__social-icon {
  flex-shrink: 0;
}

/* Divider */
.rdj-auth__divider {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  color: rgba(10, 9, 6, 0.35);
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rdj-auth__divider::before,
.rdj-auth__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(10, 9, 6, 0.1);
}

/* Fields — floating label style matching Dawn */
.rdj-auth__field {
  position: relative;
  width: 100%;
}

.rdj-auth__field input {
  width: 100%;
  padding: 1.5rem 1.4rem 0.6rem;
  border: 1px solid rgba(10, 9, 6, 0.18);
  background: #ffffff;
  font-size: 1.5rem;
  color: #0a0906;
  outline: none;
  transition: border-color 0.2s ease;
  box-sizing: border-box;
  border-radius: 0;
  -webkit-appearance: none;
}

.rdj-auth__field input:focus {
  border-color: #0a0906;
}

.rdj-auth__field label {
  position: absolute;
  top: 50%;
  left: 1.4rem;
  transform: translateY(-50%);
  font-size: 1.4rem;
  color: rgba(10, 9, 6, 0.45);
  pointer-events: none;
  transition: top 0.18s ease, font-size 0.18s ease, color 0.18s ease;
}

.rdj-auth__field input:focus + label,
.rdj-auth__field input:not(:placeholder-shown) + label {
  top: 0.7rem;
  transform: none;
  font-size: 1.05rem;
  color: rgba(10, 9, 6, 0.5);
}

.rdj-auth__field--grow {
  flex: 1;
}

/* Phone row */
.rdj-auth__phone-row {
  display: flex;
  gap: 0.8rem;
  width: 100%;
  align-items: stretch;
}

.rdj-auth__country-select {
  flex-shrink: 0;
  padding: 0 1rem;
  border: 1px solid rgba(10, 9, 6, 0.18);
  background: #ffffff;
  font-size: 1.4rem;
  color: #0a0906;
  outline: none;
  cursor: pointer;
  height: 100%;
  min-height: 5rem;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230a0906' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.8rem center;
  padding-right: 2.4rem;
}

.rdj-auth__country-select:focus {
  border-color: #0a0906;
}

/* Submit button */
.rdj-auth__submit {
  width: 100%;
  padding: 1.4rem 2rem;
  background: #0a0906;
  color: #ffffff;
  border: 1px solid #0a0906;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 400;
  cursor: pointer;
  transition: background 0.22s ease, color 0.22s ease;
}

.rdj-auth__submit:hover {
  background: transparent;
  color: #0a0906;
}

/* Extras row (forgot password) */
.rdj-auth__extras {
  display: flex;
  justify-content: flex-end;
  margin-top: -0.8rem;
}

.rdj-auth__forgot {
  font-size: 1.3rem;
  color: rgba(10, 9, 6, 0.5);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.rdj-auth__forgot:hover {
  color: var(--color-gold, #C8A951);
}

/* Notes */
.rdj-auth__note {
  font-size: 1.35rem;
  color: rgba(10, 9, 6, 0.55);
  text-align: center;
  margin: 0;
  line-height: 1.6;
}

.rdj-auth__note--muted {
  font-size: 1.2rem;
  color: rgba(10, 9, 6, 0.35);
}

/* Feedback messages */
.rdj-auth__form-error {
  font-size: 1.3rem;
  color: #c0392b;
  background: rgba(192, 57, 43, 0.06);
  border: 1px solid rgba(192, 57, 43, 0.2);
  padding: 1rem 1.4rem;
  margin: 0;
}

.rdj-auth__success {
  font-size: 1.3rem;
  color: #1a6b3a;
  background: rgba(26, 107, 58, 0.06);
  border: 1px solid rgba(26, 107, 58, 0.2);
  padding: 1rem 1.4rem;
  margin: 0;
  width: 100%;
  text-align: center;
}

/* Footer link */
.rdj-auth__footer-links {
  font-size: 1.35rem;
  color: rgba(10, 9, 6, 0.5);
  text-align: center;
  margin-top: -0.8rem;
}

.rdj-auth__footer-links a {
  color: #0a0906;
  text-decoration: none;
  border-bottom: 1px solid rgba(10, 9, 6, 0.25);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.rdj-auth__footer-links a:hover {
  color: var(--color-gold, #C8A951);
  border-color: var(--color-gold, #C8A951);
}

/* Mobile tweaks */
@media screen and (max-width: 480px) {
  .rdj-auth__box {
    padding: 3.6rem 2rem;
    border: none;
    box-shadow: none;
    background: transparent;
  }

  .rdj-auth {
    background: #faf8f5;
    padding: 3.2rem 0;
    align-items: flex-start;
  }
}

/* ═══════════════════════════════════════════════════
   RDJ CARD ACTION BUTTONS — below product image
   ═══════════════════════════════════════════════════ */

.rdj-card-actions {
  position: relative !important;
  z-index: 2;
  transform: none !important;
  display: flex !important;
  flex-direction: row;
  gap: 0.5rem;
  margin-top: 2.4rem;
  width: 100%;
}

/* Shared button base */
.rdj-card-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 0.6rem;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1;
  cursor: pointer;
  border-radius: 0;
  -webkit-appearance: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}

/* Add to cart — gold outline */
.rdj-cart-btn {
  background: transparent;
  color: var(--color-gold, #C8A951);
  border: 1px solid var(--color-gold, #C8A951);
}

.rdj-cart-btn:hover {
  background: rgba(200, 169, 81, 0.12);
}

/* Buy now — solid gold */
.rdj-buy-btn {
  background: var(--color-gold, #C8A951);
  color: #0a0906;
  border: 1px solid var(--color-gold, #C8A951);
}

.rdj-buy-btn:hover {
  background: #b8924f;
  border-color: #b8924f;
}

/* Loading / success / error states set by JS */
.rdj-btn--loading { opacity: 0.6; cursor: wait; }
.rdj-btn--success { opacity: 0.8; }
.rdj-btn--error   { border-color: #c0392b !important; color: #c0392b !important; }

/* ═══════════════════════════════════════════════════
   COLLECTION PAGE — palette preview (scoped to /collections/*)
   Hero + category pills stay dark; product grid goes marble.
   Drives Dawn's own --color-background / --color-foreground so
   ALL native text (captions, prices, CTAs) flips correctly.
   ═══════════════════════════════════════════════════ */

/* ── RUDIAN Revised Final Palette — scoped to collection pages only ── */
body.template-collection {
  /* House neutrals */
  --color-gold:       #C8A951; /* Champagne Gold — house accent */
  --color-gold-light: #D4BC7A;
  --color-gold-dark:  #A88B3A;
  --rdj-void:         #080808; /* Void Black — primary dark background */
  --rdj-blush:        #C49A82; /* Blush Champagne — rose gold / AMOUR */
  --rdj-marble:       #EDEBE5; /* White Marble — light background */
  --rdj-diamond:      #F4F2EF; /* Diamond White — body text on dark */
  --rdj-graphite:     #1A1A1C; /* Deep Graphite — text on light / editorial dark */
  /* Pillar accents (used contextually, not as global UI) */
  --rdj-emerald:      #1A5C3A; /* Power Emerald — ÉCLAT */
  --rdj-ruby:         #8B1A2C; /* Rouge Royale — AMOUR / MAJESTÉ */
  --rdj-sapphire:     #1A2E5C; /* Royal Sapphire — SOVEREIGN / ETERNAL */

  background-color: var(--rdj-void);
}

/* ── Dark sections (hero + category nav) → Void Black + Diamond White ──
   Re-point scheme-1 so #080808 becomes #080808 and text becomes
   warm Diamond White. The product grid overrides this below. */
body.template-collection .color-scheme-1 {
  --color-background: 8, 8, 8;       /* #080808 Void Black */
  --color-foreground: 244, 242, 239; /* #F4F2EF Diamond White */
}

/* ── Make the product-grid section one continuous marble block ──
   Re-point Dawn's scheme variables on BOTH the section wrapper AND
   the inner `.gradient color-scheme-1` div (line 39 of the grid
   section) which otherwise repaints itself dark. rgb()/rgba(
   var(--color-*)) throughout Dawn then resolve to marble + graphite. */
body.template-collection .shopify-section:has(#ProductGridContainer),
body.template-collection .shopify-section:has(#ProductGridContainer) > .gradient,
body.template-collection #ProductGridContainer,
body.template-collection #product-grid {
  --color-background: 237, 235, 229; /* #EDEBE5 marble */
  --color-foreground: 26, 26, 28;    /* #1A1A1C graphite */
}

/* The inner gradient div carries the actual paint — force marble */
body.template-collection .shopify-section:has(#ProductGridContainer) > .gradient {
  background: rgb(var(--color-background)) !important;
}

/* ── Clean transition: thin champagne hairline, no gradient band ── */
body.template-collection .shopify-section:has(#ProductGridContainer) > .gradient {
  border-top: 1px solid var(--color-gold);
}

/* ── Product tiles: soft-white lightbox + always-on elevation ── */

/* Soft-white tile behind the image so the piece reads on a clean
   stage instead of clashing white-on-marble. Works with white photos
   now and transparent PNGs later. */
body.template-collection .product-card-wrapper .card__inner,
body.template-collection .product-card-wrapper .card__media,
body.template-collection .product-card-wrapper .media {
  background-color: #FAF8F4 !important;
}

/* Resting elevation — lifts every tile off the marble */
body.template-collection .product-card-wrapper .card {
  box-shadow: 0 4px 18px rgba(26, 26, 28, 0.08);
  transition: box-shadow var(--transition-luxury), transform var(--transition-luxury);
}

/* Stronger lift on hover */
body.template-collection .product-card-wrapper:hover .card {
  box-shadow: 0 12px 34px rgba(26, 26, 28, 0.16);
  transform: translateY(-4px);
}

/* ── Custom RDJ elements that don't read Dawn's scheme vars ── */

/* Add-to-cart outline button — readable on marble */
body.template-collection .rdj-cart-btn {
  color: var(--color-gold-dark);
  border-color: var(--color-gold-dark);
}
body.template-collection .rdj-cart-btn:hover {
  background: rgba(168, 139, 58, 0.10);
}

/* "Own This" solid button stays champagne gold (already fine) */
body.template-collection .rdj-buy-btn {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #1A1A1C;
}

/* ── Filter DRAWER stays dark (overlay) — Void Black + Diamond White ──
   The drawer slides over the marble grid; keeping it dark is intentional
   and restores the custom rdj-sort styling that was built for dark. */
body.template-collection .mobile-facets__wrapper,
body.template-collection .mobile-facets,
body.template-collection .mobile-facets__inner,
body.template-collection .mobile-facets__main,
body.template-collection .mobile-facets__header,
body.template-collection .mobile-facets__footer {
  --color-background: 8, 8, 8;       /* #080808 Void Black */
  --color-foreground: 244, 242, 239; /* #F4F2EF Diamond White */
}
body.template-collection .mobile-facets__inner,
body.template-collection .mobile-facets__main {
  background: var(--rdj-void) !important;
}

/* Drawer heading / count / labels — diamond white */
body.template-collection .mobile-facets__heading,
body.template-collection .mobile-facets__count,
body.template-collection .mobile-facets__summary,
body.template-collection .rdj-sort-label,
body.template-collection .mobile-facets__label,
body.template-collection .mobile-facets__close-button {
  color: var(--rdj-diamond) !important;
}

/* Sort pills inside the dark drawer */
body.template-collection .rdj-sort-pill {
  color: var(--rdj-diamond);
  border-color: rgba(244, 242, 239, 0.30);
}
body.template-collection .rdj-sort-pill.is-active {
  background: var(--color-gold);
  color: var(--rdj-void);
  border-color: var(--color-gold);
}

/* Drawer apply CTA — solid champagne gold */
body.template-collection .rdj-drawer-apply {
  background: var(--color-gold) !important;
  color: var(--rdj-void) !important;
  border-color: var(--color-gold) !important;
}

/* ── FILTER open button sits on the marble grid — make it graphite ── */
body.template-collection .mobile-facets__open,
body.template-collection .mobile-facets__open-label,
body.template-collection .mobile-facets__open .svg-wrapper {
  color: var(--rdj-graphite) !important;
  border-color: rgba(26, 26, 28, 0.30) !important;
}
body.template-collection .mobile-facets__open svg {
  fill: var(--rdj-graphite);
}

/* ── Kill the bottom gap: marble fills the whole section, trim padding ── */
body.template-collection .shopify-section:has(#ProductGridContainer) {
  background-color: var(--rdj-marble) !important;
  padding-top: 0 !important;
  padding-bottom: 4rem !important;
}

/* Trim the footer's huge top gap on collection pages */
body.template-collection .shopify-section:has(.rdj-footer),
body.template-collection footer.shopify-section,
body.template-collection .shopify-section-group-footer-group {
  padding-top: 0 !important;
}

/* ═══════════════════════════════════════════════════
   PRODUCT SPECIFICATIONS — net / gross weight
   ═══════════════════════════════════════════════════ */
.rdj-specs {
  margin: 1.5rem 0 0.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(var(--color-foreground), 0.15);
}

/* Collapsible summary header with +/− indicator */
.rdj-specs__title {
  font-size: 1.1rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-off-white);
  margin: 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.4rem 0;
  user-select: none;
}

/* Remove the default disclosure triangle */
.rdj-specs__title::-webkit-details-marker { display: none; }
.rdj-specs__title::marker { content: ''; }

/* Custom +/− indicator */
.rdj-specs__title::after {
  content: '+';
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  transition: transform 0.25s ease;
}
.rdj-specs[open] .rdj-specs__title::after {
  content: '−';
}

.rdj-specs__list {
  margin-top: 1.2rem !important;
}

.rdj-specs__list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.rdj-specs__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1.5rem;
  font-size: 1.4rem;
  border-bottom: 1px solid rgba(var(--color-foreground), 0.07);
  padding-bottom: 0.7rem;
}

.rdj-specs__row dt {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 1.15rem;
  opacity: 0.7;
}

.rdj-specs__row dd {
  margin: 0;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: right;
}

/* Rich-text metafields render inside <p> — strip its block spacing */
.rdj-specs__row dd p {
  margin: 0;
  display: inline;
}

/* ── Cart gifting upgrade widget ── */
.rdj-gift {
  margin: 0 0 1.8rem;
  padding: 1.5rem 1.8rem;
  border: 1px solid rgba(200, 169, 81, 0.24);
  background: rgba(255, 255, 255, 0.02);
}
.rdj-gift__main {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.rdj-gift__row {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  cursor: pointer;
  margin: 0;
  flex: 0 1 auto;
  min-width: 0;
}
.rdj-gift__main { justify-content: flex-start; }
.rdj-gift__info-wrap { margin-left: 0.4rem; }
.rdj-gift__cb {
  width: 1.7rem;
  height: 1.7rem;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--color-gold, #c8a951);
}
.rdj-gift__icon {
  display: inline-flex;
  color: var(--color-gold, #c8a951);
}
.rdj-gift__icon svg { width: 2rem; height: 2rem; display: block; }
.rdj-gift__label {
  font-size: 1.4rem;
  letter-spacing: 0.03em;
  color: rgb(var(--color-foreground));
}

/* "What's included" info icon + hover/tap tooltip (keeps the box compact) */
.rdj-gift__info-wrap { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; }
.rdj-gift__info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(200, 169, 81, 0.55);
  border-radius: 50%;
  background: transparent;
  color: var(--color-gold, #c8a951);
  cursor: pointer;
}
.rdj-gift__info svg { width: 1.3rem; height: 1.3rem; display: block; }
.rdj-gift__tip {
  position: absolute;
  bottom: calc(100% + 0.8rem);
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: min(24rem, 70vw);
  padding: 0.8rem 1.1rem;
  z-index: 6;
  background: #15130f;
  border: 1px solid rgba(200, 169, 81, 0.35);
  color: var(--color-gold, #c8a951);
  font-size: 1.1rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  line-height: 1.5;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.rdj-gift__info:hover + .rdj-gift__tip,
.rdj-gift__info:focus-visible + .rdj-gift__tip,
.rdj-gift--tip-open .rdj-gift__tip {
  opacity: 1;
  visibility: visible;
}
@media screen and (max-width: 749px) {
  .rdj-gift__tip { left: auto; right: 0; transform: none; }
}

/* Inline status message (e.g. "Add a piece to gift wrap it") */
.rdj-gift__msg {
  margin: 0.9rem 0 0 3.8rem;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: var(--color-gold, #c8a951);
}
.rdj-gift__msg[hidden] { display: none; }

/* Product-page personalisation add-on (gold toggle + cream text field) */
.rdj-perso {
  margin: 1.6rem 0 0.4rem;
  padding: 1.6rem 0 0;
  border-top: 1px solid rgba(244, 242, 239, 0.12);
}
.rdj-perso__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.4rem;
  cursor: pointer;
  margin: 0;
}
.rdj-perso__label {
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  color: rgb(var(--color-foreground));
}
.rdj-perso__switch {
  position: relative;
  width: 4.4rem;
  height: 2.4rem;
  flex-shrink: 0;
}
.rdj-perso__toggle {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}
.rdj-perso__slider {
  position: absolute;
  inset: 0;
  background: rgba(244, 242, 239, 0.2);
  border-radius: 2.4rem;
  transition: background 0.25s ease;
}
.rdj-perso__slider::before {
  content: '';
  position: absolute;
  top: 0.3rem;
  left: 0.3rem;
  width: 1.8rem;
  height: 1.8rem;
  background: #f4f2ef;
  border-radius: 50%;
  transition: transform 0.25s ease;
}
.rdj-perso__toggle:checked + .rdj-perso__slider { background: #c9a84c; }
.rdj-perso__toggle:checked + .rdj-perso__slider::before { transform: translateX(2rem); }
.rdj-perso__toggle:focus-visible + .rdj-perso__slider { box-shadow: 0 0 0 2px rgba(201, 168, 76, 0.5); }
.rdj-perso__field { margin-top: 1.4rem; }
.rdj-perso__field[hidden] { display: none; }
.rdj-perso__input {
  width: 100%;
  padding: 1.2rem 1.4rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(244, 242, 239, 0.22);
  color: #f4f2ef;
  font-size: 1.4rem;
  letter-spacing: 0.02em;
}
.rdj-perso__input::placeholder { color: rgba(244, 242, 239, 0.45); }
.rdj-perso__input:focus { outline: none; border-color: #c9a84c; }
.rdj-perso__count {
  display: block;
  text-align: right;
  margin-top: 0.5rem;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  color: rgba(244, 242, 239, 0.5);
}
.rdj-perso__count.is-max { color: #c9a84c; }
.rdj-perso__note {
  margin: 0.9rem 0 0;
  font-size: 1.2rem;
  letter-spacing: 0.02em;
  color: var(--color-gold, #c8a951);
}
.rdj-perso__error {
  margin: 0.6rem 0 0;
  font-size: 1.2rem;
  color: #e0786f;
}
.rdj-perso__error[hidden] { display: none; }

/* Cart-line personalisation control (per eligible line item) */
.rdj-cperso { margin-top: 1.1rem; }
.rdj-cperso__add {
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: var(--color-gold, #c8a951);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
}
.rdj-cperso__add span { opacity: 0.75; }
.rdj-cperso__add:hover { text-decoration: underline; text-underline-offset: 3px; }
.rdj-cperso__summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem 1.2rem; font-size: 1.2rem; }
.rdj-cperso__done { color: var(--color-gold, #c8a951); display: inline-flex; align-items: center; gap: 0.5rem; }
.rdj-cperso__done svg { width: 1.3rem; height: 1.3rem; }
.rdj-cperso__done strong { color: rgb(var(--color-foreground)); letter-spacing: 0.03em; }
.rdj-cperso__links { display: inline-flex; gap: 1rem; }
.rdj-cperso__btn {
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  color: rgba(244, 242, 239, 0.6);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rdj-cperso__btn:hover { color: rgb(var(--color-foreground)); }
.rdj-cperso__btn--remove:hover { color: #e0786f; }
.rdj-cperso__editor { margin-top: 0.9rem; max-width: 34rem; }
.rdj-cperso__editor[hidden] { display: none; }
.rdj-cperso__input {
  width: 100%;
  padding: 0.9rem 1.1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(244, 242, 239, 0.22);
  color: #f4f2ef;
  font-size: 1.3rem;
}
.rdj-cperso__input:focus { outline: none; border-color: #c9a84c; }
.rdj-cperso__input::placeholder { color: rgba(244, 242, 239, 0.4); }
.rdj-cperso__count { display: block; text-align: right; margin-top: 0.3rem; font-size: 1rem; color: rgba(244, 242, 239, 0.5); }
.rdj-cperso__count.is-max { color: #c9a84c; }
.rdj-cperso__note { margin: 0.6rem 0 0; font-size: 1.1rem; color: var(--color-gold, #c8a951); opacity: 0.9; }
.rdj-cperso__actions { display: flex; gap: 0.8rem; margin-top: 0.9rem; }
.rdj-cperso__save,
.rdj-cperso__cancel { cursor: pointer; padding: 0.7rem 1.5rem; font-size: 1.1rem; letter-spacing: 0.08em; text-transform: uppercase; }
.rdj-cperso__save { background: var(--color-gold, #c8a951); color: #0a0906; border: 1px solid var(--color-gold, #c8a951); }
.rdj-cperso__save:hover { opacity: 0.9; }
.rdj-cperso__cancel { background: transparent; color: rgba(244, 242, 239, 0.7); border: 1px solid rgba(244, 242, 239, 0.25); }
.rdj-cperso__cancel:hover { color: rgb(var(--color-foreground)); }
.rdj-cperso__error { margin: 0.6rem 0 0; font-size: 1.1rem; color: #e0786f; }
.rdj-cperso__error[hidden] { display: none; }
.rdj-cperso.is-busy { opacity: 0.55; pointer-events: none; }

/* Cart-line gift-wrap control (per real product line) */
.rdj-cgift {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem 0.7rem;
  margin-top: 1.1rem;
}
.rdj-cgift__row {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  margin: 0;
  min-width: 0;
}
.rdj-cgift__cb {
  width: 1.6rem;
  height: 1.6rem;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--color-gold, #c8a951);
}
.rdj-cgift__icon { display: inline-flex; color: var(--color-gold, #c8a951); flex-shrink: 0; }
.rdj-cgift__icon svg { width: 1.7rem; height: 1.7rem; display: block; }
.rdj-cgift__label {
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  color: rgba(244, 242, 239, 0.82);
}
.rdj-cgift__label span { color: var(--color-gold, #c8a951); }
.rdj-cgift__cb:checked ~ .rdj-cgift__label { color: rgb(var(--color-foreground)); }

/* "What's included" info icon + hover/tap tooltip */
.rdj-cgift__info-wrap { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; }
.rdj-cgift__info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  padding: 0;
  border: 1px solid rgba(200, 169, 81, 0.55);
  border-radius: 50%;
  background: transparent;
  color: var(--color-gold, #c8a951);
  cursor: pointer;
}
.rdj-cgift__info svg { width: 1.1rem; height: 1.1rem; display: block; }
.rdj-cgift__tip {
  position: absolute;
  bottom: calc(100% + 0.7rem);
  left: 0;
  width: max-content;
  max-width: min(22rem, 70vw);
  padding: 0.7rem 1rem;
  z-index: 6;
  background: #15130f;
  border: 1px solid rgba(200, 169, 81, 0.35);
  color: var(--color-gold, #c8a951);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.5;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.rdj-cgift__info:hover + .rdj-cgift__tip,
.rdj-cgift__info:focus-visible + .rdj-cgift__tip,
.rdj-cgift--tip-open .rdj-cgift__tip { opacity: 1; visibility: visible; }
.rdj-cgift__msg { flex: 1 1 100%; margin: 0.2rem 0 0; font-size: 1.1rem; color: #e0786f; }
.rdj-cgift__msg[hidden] { display: none; }
.rdj-cgift.is-busy { opacity: 0.55; pointer-events: none; }

/* "Enhance your order" — order add-on + gift packaging consolidated below the items */
.rdj-cart-enhance {
  margin: 2.4rem 0 0;
  padding: 1.8rem 2rem;
  border: 1px solid rgba(244, 242, 239, 0.14);
  background: rgba(255, 255, 255, 0.015);
}
.rdj-cart-enhance__heading {
  margin: 0 0 1.4rem;
  font-size: 1.2rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(244, 242, 239, 0.6);
}
.rdj-cart-enhance .rdj-addon { margin: 0; }
.rdj-cart-enhance .rdj-addon__card { border: 0; padding: 0; background: transparent; }
.rdj-cart-enhance .rdj-gift { margin: 0; border: 0; padding: 0; background: transparent; }
.rdj-cart-enhance .rdj-addon:not([hidden]) + .rdj-gift {
  margin-top: 1.6rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(244, 242, 239, 0.1);
}

/* (Old slim cart add-on styles removed — the order add-on now lives in its own
   section, rdj-cart-addon, with its own card styling.) */

/* Locked gift / personalisation-fee line items: auto-managed, no manual edit/remove */
.cart-item--gift-locked cart-remove-button,
.cart-item--gift-locked .quantity__button,
.cart-item--gift-locked .quantity-popover__info-button,
.cart-item--perso-locked cart-remove-button,
.cart-item--perso-locked .quantity__button,
.cart-item--perso-locked .quantity-popover__info-button { display: none !important; }
.cart-item--gift-locked .quantity__input,
.cart-item--perso-locked .quantity__input {
  pointer-events: none;
  text-align: center;
  width: 4rem;
  min-width: 0;
  border-color: transparent;
  background: transparent;
  -webkit-appearance: none;
  -moz-appearance: textfield;
  appearance: none;
}
.cart-item--gift-locked quantity-input,
.cart-item--perso-locked quantity-input { border-color: transparent; box-shadow: none; }
.rdj-gift-note,
.rdj-perso-fee-note {
  margin-top: 0.5rem;
  color: var(--color-gold, #c8a951);
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.9;
}

/* Delivery & Returns accordion body */
.rdj-dr__body { margin-top: 1.2rem; }
.rdj-dr__intro {
  font-size: 1.4rem;
  line-height: 1.7;
  opacity: 0.78;
  margin: 0 0 1.4rem;
}
.rdj-dr__points {
  list-style: none;
  margin: 0 0 1.6rem;
  padding: 0;
}
.rdj-dr__points li {
  font-size: 1.35rem;
  line-height: 1.5;
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(var(--color-foreground), 0.08);
  opacity: 0.88;
}
.rdj-dr__points li:last-child { border-bottom: 0; }
.rdj-dr__points li span {
  color: var(--color-gold, #c8a951);
  letter-spacing: 0.04em;
}
.rdj-dr__inline-link {
  color: var(--color-gold, #c8a951);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rdj-dr__link {
  display: inline-block;
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-gold, #c8a951);
  border-bottom: 1px solid rgba(200, 169, 81, 0.4);
  padding-bottom: 0.2rem;
  transition: border-color 0.2s ease;
}
.rdj-dr__link:hover { border-color: var(--color-gold, #c8a951); }

/* Collapsible description body */
.rdj-desc__body {
  margin-top: 1.2rem;
  font-size: 1.4rem;
  line-height: 1.7;
  opacity: 0.9;
}
.rdj-desc__body p { margin: 0 0 1rem; }
.rdj-desc__body p:last-child { margin-bottom: 0; }

/* ═══════════════════════════════════════════════════
   STICKY MOBILE CTA BAR — Add to Cart / Own This
   ═══════════════════════════════════════════════════ */
.rdj-sticky-cta {
  display: none; /* hidden on desktop */
}

@media screen and (max-width: 749px) {
  .rdj-sticky-cta {
    display: flex;
    gap: 0.8rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    padding: 1rem 1.4rem calc(1rem + env(safe-area-inset-bottom));
    background: rgba(8, 8, 8, 0.96);
    backdrop-filter: blur(8px);
    border-top: 1px solid rgba(var(--color-foreground), 0.12);
  }

  .rdj-sticky-cta__btn {
    flex: 1;
    min-width: 0;
    padding: 1.3rem 0.8rem;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1;
    cursor: pointer;
    border-radius: 0;
    -webkit-appearance: none;
    border: 1px solid var(--color-gold);
    transition: background 0.2s ease, color 0.2s ease;
  }

  .rdj-sticky-cta__add {
    background: transparent;
    color: var(--color-gold);
  }
  .rdj-sticky-cta__buy {
    background: var(--color-gold);
    color: var(--rdj-void, #080808);
  }
  .rdj-sticky-cta__btn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
  }

  /* Keep page content clear of the fixed bar */
  body.template-product {
    padding-bottom: 6.5rem;
  }
}

/* ═══════════════════════════════════════════════════
   PRODUCT SLIDER NAVIGATION — Trending carousel arrows
   Champagne-gold round nav buttons + counter, on-brand
   ═══════════════════════════════════════════════════ */
.slider-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  margin-top: 2.6rem;
}

.slider-button {
  background: transparent;
  border: 1px solid rgba(var(--color-foreground), 0.3);
  border-radius: 50%;
  width: 4.4rem;
  height: 4.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.25s ease, background 0.25s ease, opacity 0.25s ease;
}

.slider-button:not([disabled]):hover {
  border-color: var(--color-gold);
  background: rgba(200, 169, 81, 0.10);
}

.slider-button .svg-wrapper,
.slider-button svg,
.slider-button .icon {
  color: var(--color-gold);
  fill: var(--color-gold);
  width: 1.5rem;
  height: 1.5rem;
}

.slider-button[disabled] {
  opacity: 0.3;
  cursor: not-allowed;
}

.slider-counter {
  color: rgba(var(--color-foreground), 0.7);
  letter-spacing: 0.12em;
  font-size: 1.25rem;
}

.slider-counter--current {
  color: var(--color-gold);
}

/* ── Homepage carousels: in-carousel overlay arrows (match Whatmore) ──
   Hide the numeric counter, and float the prev/next arrows over the
   left/right edges of the carousel (vertically centred), instead of in a
   row below. Like Whatmore, the disabled arrow at an end is hidden — so
   only the "next" arrow shows at the start, the "prev" appears once you
   scroll. This makes all four carousels (Signature, Category, Trending,
   Whatmore) read consistently. */
body.template-index .slider-counter,
.luxury-collections__slider .slider-counter {
  display: none !important;
}

/* The slider-component is the positioning context for the overlaid arrows */
body.template-index slider-component {
  position: relative;
  display: block;
}

/* Buttons row → transparent overlay spanning the carousel; clicks pass
   through everywhere except the arrows themselves */
body.template-index .slider-buttons,
.luxury-collections__slider .slider-buttons {
  position: absolute;
  inset: 0;
  margin: 0 !important;
  padding: 0;
  gap: 0;
  pointer-events: none;
  z-index: 5;
}

/* Round arrow buttons pinned to the edges, vertically centred over the row */
body.template-index .slider-button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: auto;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  background: rgba(10, 9, 6, 0.55);
  border: 1px solid rgba(244, 242, 239, 0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: background 0.22s ease, border-color 0.22s ease;
}
body.template-index .slider-button .icon {
  color: var(--rdj-diamond, #f4f2ef);
}
body.template-index .slider-button:not([disabled]):hover {
  background: rgba(10, 9, 6, 0.85);
  border-color: var(--color-gold, #c8a951);
}
body.template-index .slider-button:not([disabled]):hover .icon {
  color: var(--color-gold, #c8a951);
}
body.template-index .slider-button--prev {
  left: 1.4rem;
  right: auto;
}
body.template-index .slider-button--next {
  right: 1.4rem;
  left: auto;
}
/* Hide the disabled end-arrow (Whatmore-style: only the usable arrow shows) */
body.template-index .slider-button[disabled] {
  display: none !important;
}

/* Standardise homepage carousel-section spacing: Signature Collections and
   Shop by Category render at 96px; bring them to 4.5rem so every section
   has a consistent gap (matches Trending's 45px). */
.luxury-collections {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

/* Center "The Drop" (featured-collection) heading to match the other
   homepage section headers (Dawn left-aligns it by default). */
body.template-index .collection__title {
  text-align: center !important;
  justify-content: center !important;
}
body.template-index .collection__title .title {
  width: 100%;
  text-align: center !important;
}

/* ═══════════════════════════════════════════════════
   HEADER — compact two-row + search moved to the right
   ═══════════════════════════════════════════════════ */
/* Hide the default left-side search; show the one in the icons group (right) */
.header--top-center > .header__search {
  display: none !important;
}
.header--top-center .header__icons > .header__search {
  display: inline-flex !important;
}
/* Compact two-row header: small padding + tight gap between rows */
.header.header--top-center {
  padding-top: 0.8rem !important;
  padding-bottom: 0.6rem !important;
  row-gap: 0.2rem !important;
}
.header--top-center .header__heading,
.header--top-center .header__heading-link,
.header--top-center .header__inline-menu {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.header__inline-menu .list-menu--inline {
  padding-top: 0.2rem;
  padding-bottom: 0;
}

/* ═══════════════════════════════════════════════════
   HEADER DROPDOWN — clickable parent + hover submenu below it
   ═══════════════════════════════════════════════════ */
.header__inline-menu .rdj-menu-parent {
  position: relative;
}
.header__inline-menu .header__menu-item {
  white-space: nowrap;
}
.header__inline-menu .rdj-menu-parent > .header__menu-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.header__inline-menu .rdj-menu-parent > .header__menu-item svg,
.header__inline-menu .rdj-menu-parent > .header__menu-item .icon-caret {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.header__inline-menu .rdj-submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 20rem;
  margin: 0;
  padding: 1.6rem 0;
  list-style: none;
  background: rgb(var(--color-background));
  border-top: 1px solid rgba(200, 169, 81, 0.18);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease;
  z-index: 30;
  text-align: center;
}
.header__inline-menu .rdj-menu-parent:hover > .rdj-submenu,
.header__inline-menu .rdj-menu-parent:focus-within > .rdj-submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.header__inline-menu .rdj-submenu > li {
  margin: 0;
}
.header__inline-menu .rdj-submenu__link {
  display: block;
  padding: 0.85rem 3rem;
  white-space: nowrap;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(244, 242, 239, 0.78);
  text-decoration: none;
  transition: color 0.2s ease;
}
.header__inline-menu .rdj-submenu__link:hover,
.header__inline-menu .rdj-submenu__link.is-active {
  color: var(--color-gold, #c8a951);
}

/* ── Mobile drawer: clickable parent link + inline expand/collapse ── */
.rdj-drawer-parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rdj-drawer-parent .rdj-drawer-label {
  flex: 1 1 auto;
}
.rdj-drawer-toggle {
  flex: 0 0 auto;
  background: none;
  border: 0;
  margin: 0;
  padding: 1.2rem 1.6rem;
  cursor: pointer;
  color: rgb(var(--color-foreground));
  display: inline-flex;
  align-items: center;
}
.rdj-drawer-toggle .svg-wrapper,
.rdj-drawer-toggle svg {
  width: 1.4rem;
  height: 1.4rem;
  transition: transform 0.25s ease;
}
.rdj-drawer-toggle.is-open svg {
  transform: rotate(180deg);
}
.rdj-drawer-children {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rdj-drawer-children[hidden] {
  display: none;
}
.rdj-drawer-child {
  padding-left: 3.2rem !important;
  opacity: 0.82;
}

/* ── Back-button content pages: tighten top whitespace ──
   The "Back" link sits on the SAME line as the eyebrow (left-aligned),
   so it no longer takes its own row. */
.rdj-content {
  padding-top: 3.2rem !important;
  position: relative;
}
.rdj-content__topbar {
  position: absolute;
  top: 3.2rem;
  left: 0;
  width: 100%;
  margin: 0 !important;
}
.rdj-content__head {
  margin-bottom: 3.2rem !important;
}

/* ── Signature Collections as a carousel (matches Trending UX) ── */
.luxury-collections__slider .luxury-collections__grid.slider {
  display: flex !important;
  gap: 2rem;
  list-style: none;
  margin: 0;
  /* Make it a real scroll container at ALL widths (Dawn's .slider--desktop
     only adds overflow:auto ≥990px, so mobile was overflow:visible → the
     page scrolled instead of the slider, and the nav buttons' scrollTo did
     nothing). This fixes swipe-scoping AND the prev/next buttons. */
  overflow-x: auto !important;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.luxury-collections__slider .luxury-collections__grid.slider::-webkit-scrollbar {
  display: none;
}

.luxury-collections__slider .luxury-collections__card {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

/* Remove Dawn's first-slide left margin / scroll-padding / trailing
   spacer so exactly 3 cards fit the row (3rd was getting cut off). */
.luxury-collections__slider .slider--desktop {
  --desktop-margin-left-first-item: 0 !important;
  scroll-padding-left: 0 !important;
}
.luxury-collections__slider .slider--desktop .slider__slide:first-child {
  margin-left: 0 !important;
  scroll-margin-left: 0 !important;
}
.luxury-collections__slider .slider--desktop::after {
  display: none !important;
}

@media screen and (min-width: 990px) {
  .luxury-collections__slider .luxury-collections__card {
    width: calc((100% - 4rem) / 3); /* 3 across, two 2rem gaps */
  }
}

@media screen and (min-width: 750px) and (max-width: 989px) {
  .luxury-collections__slider .luxury-collections__card {
    width: calc((100% - 2rem) / 2); /* 2 across on tablet */
  }
}

@media screen and (max-width: 749px) {
  .luxury-collections__slider .luxury-collections__card {
    width: 82%; /* ~1.2 visible on mobile for swipe affordance */
  }

  /* Show the carousel nav arrows + counter on mobile (Dawn hides them) */
  .luxury-collections__slider .slider-buttons {
    display: flex !important;
  }

  /* Keep the "Signature Collections" heading visible while browsing the
     carousel — sticks to top within the section as the page scrolls.
     Neutralise Dawn's scroll-trigger transform, which interferes with
     position:sticky on the header. */
  .luxury-collections .luxury-collections__header {
    position: sticky;
    top: 0;
    z-index: 6;
    background: rgb(var(--color-background));
    padding-top: 1.4rem;
    padding-bottom: 1.2rem;
  }
  .luxury-collections .luxury-collections__header.scroll-trigger {
    transform: none !important;
    opacity: 1 !important;
    animation: none !important;
  }
}

/* ── Footer logo: never overflow its container (was 600px on mobile) ── */
.rdj-footer__logo-img {
  width: 174px; /* match the social-icon row width below it */
  max-width: 100%;
  height: auto;
}
@media screen and (max-width: 749px) {
  .rdj-footer__logo-img {
    max-width: 220px;
  }
}

/* ═══════════════════════════════════════════════════
   SEARCH RESULTS — marble browse experience (matches collection)
   Search uses the same #ProductGridContainer + facets, so the global
   checkbox/chip/sort-pill styles already apply. This adds the marble
   surface, soft-white tiles, and the dark filter drawer.
   ═══════════════════════════════════════════════════ */
body.template-search {
  background-color: var(--rdj-void);
}

/* Marble results area + graphite text (re-points Dawn's scheme vars) */
body.template-search .template-search {
  --color-background: 237, 235, 229; /* #EDEBE5 marble */
  --color-foreground: 26, 26, 28;    /* #1A1A1C graphite */
  background-color: rgb(var(--color-background)) !important;
}

/* Title + search box readable on marble */
body.template-search .template-search h1,
body.template-search .template-search__header .field__label {
  color: var(--rdj-graphite) !important;
}
body.template-search .search__input.field__input {
  background: #ffffff !important;
  color: var(--rdj-graphite) !important;
  border-color: rgba(26, 26, 28, 0.25) !important;
}
body.template-search .template-search__header .field__button .icon,
body.template-search .template-search__header .field__button svg {
  color: var(--rdj-graphite) !important;
}

/* Soft-white tiles + elevation (identical to collection) */
body.template-search .product-card-wrapper .card__inner,
body.template-search .product-card-wrapper .card__media,
body.template-search .product-card-wrapper .media {
  background-color: #faf8f4 !important;
}
body.template-search .product-card-wrapper .card {
  box-shadow: 0 4px 18px rgba(26, 26, 28, 0.08);
  transition: box-shadow var(--transition-luxury), transform var(--transition-luxury);
}
body.template-search .product-card-wrapper:hover .card {
  box-shadow: 0 12px 34px rgba(26, 26, 28, 0.16);
  transform: translateY(-4px);
}

/* FILTER open button sits on marble → graphite */
body.template-search .mobile-facets__open,
body.template-search .mobile-facets__open-label,
body.template-search .mobile-facets__open .svg-wrapper {
  color: var(--rdj-graphite) !important;
  border-color: rgba(26, 26, 28, 0.30) !important;
}
body.template-search .mobile-facets__open svg {
  fill: var(--rdj-graphite);
}

/* Filter drawer stays Void Black + Diamond White (overlay, like collection) */
body.template-search .mobile-facets__wrapper,
body.template-search .mobile-facets,
body.template-search .mobile-facets__inner,
body.template-search .mobile-facets__main,
body.template-search .mobile-facets__header,
body.template-search .mobile-facets__footer {
  --color-background: 8, 8, 8;       /* Void Black */
  --color-foreground: 244, 242, 239; /* Diamond White */
}
body.template-search .mobile-facets__inner,
body.template-search .mobile-facets__main {
  background: var(--rdj-void) !important;
}

/* ═══════════════════════════════════════════════════
   TRUST BAR — slim reassurance strip
   ═══════════════════════════════════════════════════ */
.rdj-trust {
  border-top: 1px solid rgba(200, 169, 81, 0.16);
  border-bottom: 1px solid rgba(200, 169, 81, 0.16);
}
.rdj-trust__list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.rdj-trust__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.4rem 3.4rem;
  position: relative;
}
.rdj-trust__item:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 2.2rem;
  width: 1px;
  background: rgba(200, 169, 81, 0.24);
}
.rdj-trust__icon {
  display: inline-flex;
  color: var(--color-gold, #c8a951);
}
.rdj-trust__icon svg {
  width: 2.1rem;
  height: 2.1rem;
}
.rdj-trust__text {
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 400;
  color: rgb(var(--color-foreground));
  white-space: nowrap;
}
@media screen and (max-width: 749px) {
  .rdj-trust__list {
    flex-direction: column;
  }
  .rdj-trust__item {
    width: 100%;
    justify-content: center;
    padding: 0.95rem 0;
  }
  .rdj-trust__item:not(:last-child)::after {
    left: 20%;
    right: 20%;
    top: auto;
    bottom: 0;
    transform: none;
    width: auto;
    height: 1px;
  }
  .rdj-trust__text {
    white-space: normal;
    text-align: center;
  }
}

/* ═══════════════════════════════════════════════════
   NEWSLETTER SIGNUP
   ═══════════════════════════════════════════════════ */
.rdj-newsletter__inner {
  max-width: 62rem;
  margin: 0 auto;
  text-align: center;
}
.rdj-newsletter__heading {
  margin: 1.2rem 0 1.1rem;
}
.rdj-newsletter__subheading {
  font-size: 1.45rem;
  line-height: 1.55;
  font-style: italic;
  font-weight: 300;
  color: rgba(245, 240, 232, 0.6);
  max-width: 46rem;
  margin: 0 auto 2.8rem;
}
.rdj-newsletter__form {
  max-width: 46rem;
  margin: 0 auto;
}
.rdj-newsletter__field {
  display: flex;
  gap: 0;
  border: 1px solid rgba(200, 169, 81, 0.4);
  transition: border-color 0.22s ease;
}
.rdj-newsletter__field:focus-within {
  border-color: var(--color-gold, #c8a951);
}
.rdj-newsletter__input {
  flex: 1 1 auto;
  min-width: 0;
  background: transparent;
  border: 0;
  padding: 1.4rem 1.8rem;
  color: rgb(var(--color-foreground));
  font-size: 1.4rem;
  letter-spacing: 0.04em;
}
.rdj-newsletter__input::placeholder {
  color: rgba(245, 240, 232, 0.45);
}
.rdj-newsletter__input:focus {
  outline: none;
  box-shadow: none;
}
.rdj-newsletter__btn {
  flex: 0 0 auto;
  background: var(--color-gold, #c8a951);
  color: #0a0906;
  border: 0;
  padding: 0 3rem;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.2s ease;
  white-space: nowrap;
}
.rdj-newsletter__btn:hover {
  opacity: 0.85;
}
.rdj-newsletter__success {
  color: var(--color-gold, #c8a951);
  letter-spacing: 0.08em;
  margin-top: 1.6rem;
}
.rdj-newsletter__error {
  color: #e0a98f;
  margin-top: 1.6rem;
}
@media screen and (max-width: 749px) {
  .rdj-newsletter__field {
    flex-direction: column;
  }
  .rdj-newsletter__btn {
    padding: 1.3rem;
  }
}

/* ═══════════════════════════════════════════════════
   TESTIMONIALS
   ═══════════════════════════════════════════════════ */
.rdj-testimonials__header {
  margin-bottom: 3.2rem;
}
.rdj-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
}
.rdj-testimonials__grid--1,
.rdj-testimonials__grid--2 {
  max-width: 92rem;
  margin: 0 auto;
}
.rdj-testimonials__grid--1 {
  grid-template-columns: 1fr;
  max-width: 64rem;
}
.rdj-testimonials__grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
.rdj-testimonials__card {
  border: 1px solid rgba(200, 169, 81, 0.18);
  background: rgba(255, 255, 255, 0.018);
  padding: 3.4rem 2.8rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
}
.rdj-testimonials__stars {
  color: var(--color-gold, #c8a951);
  letter-spacing: 0.35em;
  font-size: 1.25rem;
  margin-bottom: 1.8rem;
  line-height: 1;
}
.rdj-testimonials__quote {
  font-family: var(--font-heading-family);
  font-style: italic;
  font-weight: 300;
  font-size: 1.65rem;
  line-height: 1.6;
  color: rgb(var(--color-foreground));
  margin: 0 0 2.2rem;
  quotes: "\201C" "\201D";
}
.rdj-testimonials__quote::before {
  content: open-quote;
}
.rdj-testimonials__quote::after {
  content: close-quote;
}
.rdj-testimonials__author {
  display: block;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 1.15rem;
  color: var(--color-gold, #c8a951);
}
.rdj-testimonials__detail {
  display: block;
  margin-top: 0.6rem;
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  color: rgba(245, 240, 232, 0.5);
}
@media screen and (max-width: 989px) {
  .rdj-testimonials__grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 749px) {
  .rdj-testimonials__grid,
  .rdj-testimonials__grid--3,
  .rdj-testimonials__grid--2 {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════
   REGISTER-INTEREST LAUNCH MODE
   Payments pending → store runs as lookbook + waitlist.
   Buy zone becomes a "Register Interest" CTA; cart hidden.
   All scoped to body.rdj-register-mode so flipping the
   theme setting off restores full commerce instantly.
   ═══════════════════════════════════════════════════ */

/* Hide the header cart icon + any cart bubble/count */
.rdj-register-mode #cart-icon-bubble,
.rdj-register-mode cart-drawer,
.rdj-register-mode .cart-count-bubble,
.rdj-register-mode #cart-notification,
.rdj-register-mode cart-notification {
  display: none !important;
}

/* Hide purchase-only affordances on the product page while in register mode:
   quantity selector + the "Taxes and shipping included" line (both imply a sale) */
.rdj-register-mode .product-form__quantity,
.rdj-register-mode .product__tax {
  display: none !important;
}

/* In-page Register-Interest CTA — primary action, champagne gold (Von Restorff) */
.rdj-register-cta {
  background: var(--color-gold, #C9A96E) !important;
  color: #080808 !important;
  border: 1px solid var(--color-gold, #C9A96E) !important;
  letter-spacing: 0.08em !important;
  text-align: center;
  text-decoration: none;
  margin-bottom: 1rem;
}
.rdj-register-cta:hover {
  background: var(--color-gold-dark, #b8924f) !important;
  color: #080808 !important;
  border-color: var(--color-gold-dark, #b8924f) !important;
}
/* Hide the in-page CTA on mobile — the sticky bar carries it there */
@media screen and (max-width: 749px) {
  .rdj-register-cta {
    display: none !important;
  }
}

/* Mobile sticky bar: single full-width Register-Interest button */
.rdj-sticky-cta__register {
  flex: 1 1 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  letter-spacing: 0.08em;
}

/* iJewel 3D tile — warm-white ground so the transparent iframe never shows the
   dark section background (rgb(8,8,8)) during the ~several-second model load.
   Matches the #FAF8F4 photo-tile background; once the WebGI scene paints its own
   light-grey studio it fully covers this. */
.rdj-ijewel-media {
  background-color: #FAF8F4;
}
.rdj-ijewel-media iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
