/* ============================================================
   ROXSY LUXURY DESIGN SYSTEM v1.0
   Premium editorial beauty aesthetic for RoxsyFinds
   Palette: warm ivory / cream / soft beige / muted sage /
            charcoal / black / whisper blush / soft gold
   Type: Playfair Display (display) + Inter (body)
   ============================================================ */

:root {
  --rxf-ivory: #FDFBF7;
  --rxf-cream: #F8F4EC;
  --rxf-beige: #EFE8D9;
  --rxf-sand: #E7DCC8;
  --rxf-sage: #8A9B7E;
  --rxf-sage-deep: #6E7F63;
  --rxf-sage-mist: #EEF1E9;
  --rxf-charcoal: #2B2A28;
  --rxf-ink: #1B1A18;
  --rxf-stone: #6F6A61;
  --rxf-fog: #A8A29A;
  --rxf-line: #E5DDCE;
  --rxf-line-soft: #EFE9DB;
  --rxf-blush: #E9CFC9;
  --rxf-blush-mist: #F7ECE8;
  --rxf-gold: #B99B5F;
  --rxf-gold-soft: #D6C092;
  --rxf-white: #FFFFFF;

  --rxf-serif: 'Playfair Display', 'Didot', 'Bodoni MT', Georgia, serif;
  --rxf-sans: 'Inter', -apple-system, 'Helvetica Neue', Arial, sans-serif;

  --rxf-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --rxf-shadow-soft: 0 24px 60px -24px rgba(43, 42, 40, 0.14);
  --rxf-shadow-lift: 0 32px 80px -28px rgba(43, 42, 40, 0.20);
}

/* ---------- Base ---------- */

body {
  background: var(--rxf-ivory) !important;
  color: var(--rxf-charcoal);
  font-family: var(--rxf-sans) !important;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.01em;
}

h1, h2, h3,
.rh-heading,
.entry-title,
.product_title,
.woocommerce-products-header__title {
  font-family: var(--rxf-serif) !important;
  font-weight: 500 !important;
  color: var(--rxf-ink) !important;
  letter-spacing: 0.005em;
  line-height: 1.15;
}

/* Editorial oversized headings */
.entry-title,
.product_title.entry-title,
h1.entry-title {
  font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
  font-weight: 500 !important;
  margin-bottom: 0.6em !important;
}

h2 { font-size: clamp(1.6rem, 3vw, 2.4rem) !important; }

a { color: var(--rxf-charcoal); }
a:hover { color: var(--rxf-sage-deep); }

/* Thin elegant dividers instead of heavy borders */
hr,
.rh-divider,
.woocommerce-product-details__short-description {
  border-color: var(--rxf-line) !important;
}

/* ---------- Header ---------- */

.site-header,
#main_header,
.header_wrap {
  background: var(--rxf-ivory) !important;
  border-bottom: 1px solid var(--rxf-line-soft) !important;
}

/* Primary nav — letterspaced, refined */
.main-nav a,
#primary-menu a,
.nav-menu a {
  font-family: var(--rxf-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--rxf-charcoal) !important;
  padding: 1.1em 1.2em !important;
  transition: color 0.3s var(--rxf-ease);
}
.main-nav a:hover,
#primary-menu a:hover {
  color: var(--rxf-sage-deep) !important;
}

/* Search — minimal underline style */
.search-form input[type="search"],
.header-search input {
  border: none !important;
  border-bottom: 1px solid var(--rxf-line) !important;
  background: transparent !important;
  border-radius: 0 !important;
  font-family: var(--rxf-sans) !important;
}

/* ---------- Buttons: premium, strong, calm ---------- */

.btn,
.button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.single_add_to_cart_button,
.checkout-button,
.add_to_cart_button {
  font-family: var(--rxf-sans) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  background: var(--rxf-ink) !important;
  color: var(--rxf-ivory) !important;
  border: 1px solid var(--rxf-ink) !important;
  border-radius: 0 !important;
  padding: 1.15em 2.6em !important;
  transition: all 0.35s var(--rxf-ease) !important;
  box-shadow: none !important;
}

.btn:hover,
.button:hover,
button:hover,
.woocommerce a.button:hover,
.single_add_to_cart_button:hover {
  background: transparent !important;
  color: var(--rxf-ink) !important;
  border-color: var(--rxf-ink) !important;
  transform: translateY(-1px);
}

/* Amazon CTA — prominent but luxurious, never aggressive */
.single-product .single_add_to_cart_button,
.single-product a.single_add_to_cart_button,
.product .cart .single_add_to_cart_button {
  background: var(--rxf-ink) !important;
  color: var(--rxf-ivory) !important;
  font-size: 0.85rem !important;
  padding: 1.25em 3em !important;
  min-width: 280px;
  text-align: center;
}
.single-product .single_add_to_cart_button:hover {
  background: var(--rxf-sage-deep) !important;
  border-color: var(--rxf-sage-deep) !important;
  color: var(--rxf-ivory) !important;
}

/* Secondary/ghost button */
.btn-ghost,
.button.ghost {
  background: transparent !important;
  color: var(--rxf-ink) !important;
}

/* ---------- Product cards: curated, not "cards" ---------- */

.woocommerce ul.products li.product,
ul.products li.product,
.rh-product-card,
.product-card {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 2rem !important;
  transition: transform 0.5s var(--rxf-ease);
}

.woocommerce ul.products li.product:hover {
  transform: translateY(-4px);
}

/* Large photography, soft zoom on hover */
.woocommerce ul.products li.product a img,
ul.products li.product img,
.rh-product-card img {
  border-radius: 0 !important;
  background: var(--rxf-cream) !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  width: 100%;
  transition: transform 0.8s var(--rxf-ease), filter 0.5s var(--rxf-ease) !important;
}
.woocommerce ul.products li.product a:hover img {
  transform: scale(1.04);
}

/* Card typography — refined, editorial */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h3,
.rh-product-card .product-title {
  font-family: var(--rxf-serif) !important;
  font-size: 1.12rem !important;
  font-weight: 500 !important;
  color: var(--rxf-ink) !important;
  padding: 1.1rem 0 0.35rem !important;
  line-height: 1.35 !important;
}

.woocommerce ul.products li.product .price,
.price {
  font-family: var(--rxf-sans) !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  color: var(--rxf-stone) !important;
  letter-spacing: 0.04em;
}

/* Remove cheap badges / thick outlines on cards */
.woocommerce ul.products li.product .onsale,
.onsale,
.badge,
.yith-wcbm-badge {
  border-radius: 0 !important;
  font-family: var(--rxf-sans) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  padding: 0.5em 1em !important;
  box-shadow: none !important;
}

/* Wishlist / compare icons — quiet */
.yith-wcwl-add-to-wishlist a,
.compare-button a {
  color: var(--rxf-fog) !important;
  transition: color 0.3s var(--rxf-ease);
}
.yith-wcwl-add-to-wishlist a:hover { color: var(--rxf-sage-deep) !important; }

/* ---------- Product page: luxury landing ---------- */

.single-product .product {
  background: transparent !important;
}

/* Large aspirational gallery */
.single-product .woocommerce-product-gallery,
.single-product div.images {
  background: var(--rxf-cream) !important;
  padding: clamp(1.5rem, 4vw, 3.5rem) !important;
}
.single-product .woocommerce-product-gallery img {
  border-radius: 0 !important;
  box-shadow: var(--rxf-shadow-soft);
}

/* Editorial title block */
.single-product .summary .product_title {
  font-size: clamp(2.1rem, 4.2vw, 3.2rem) !important;
  line-height: 1.12 !important;
  margin-bottom: 0.5em !important;
}

/* Elegant short description */
.single-product .woocommerce-product-details__short-description,
.single-product .summary > p:not(.price):not(.cart) {
  font-size: 1.06rem !important;
  line-height: 1.75 !important;
  color: var(--rxf-stone) !important;
  font-weight: 300;
  max-width: 34em;
}

/* Benefit labels — small refined, minimal */
.single-product .benefit-label,
.rxf-benefits li {
  display: inline-block;
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--rxf-sage-deep) !important;
  border: 1px solid var(--rxf-line) !important;
  padding: 0.6em 1.2em !important;
  margin: 0 0.6em 0.6em 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

/* Meta (SKU / categories) — whisper quiet */
.single-product .product_meta,
.product_meta {
  font-size: 0.75rem !important;
  letter-spacing: 0.08em !important;
  color: var(--rxf-fog) !important;
  border-top: 1px solid var(--rxf-line-soft) !important;
  padding-top: 1.4em !important;
  margin-top: 2em !important;
}
.product_meta a { color: var(--rxf-stone) !important; }

/* Affiliate disclosure — tasteful, integrated, never boxy */
.single-product .rxf-disclosure,
.woocommerce .rxf-disclosure,
.rxf-affiliate-note {
  background: transparent !important;
  border: none !important;
  border-left: 2px solid var(--rxf-gold-soft) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0.4em 0 0.4em 1.2em !important;
  margin: 1.8em 0 !important;
  font-size: 0.8rem !important;
  font-style: italic;
  font-family: var(--rxf-serif) !important;
  color: var(--rxf-stone) !important;
  max-width: 36em;
}

/* Tabs — minimal underline */
.woocommerce-tabs ul.tabs,
.wc-tabs {
  border-bottom: 1px solid var(--rxf-line) !important;
}
.woocommerce-tabs ul.tabs li,
.wc-tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}
.woocommerce-tabs ul.tabs li a {
  font-family: var(--rxf-sans) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--rxf-stone) !important;
  padding: 1em 1.6em !important;
}
.woocommerce-tabs ul.tabs li.active a {
  color: var(--rxf-ink) !important;
  box-shadow: inset 0 -2px 0 var(--rxf-gold) !important;
}

/* Related products — curated recommendations */
.related.products > h2,
.upsells > h2,
.cross-sells > h2 {
  font-size: clamp(1.7rem, 3vw, 2.5rem) !important;
  text-align: center;
  margin: 3em 0 0.4em !important;
}
.related.products::before {
  content: "You may also love";
  display: block;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--rxf-gold);
  margin-bottom: 0.6em;
  font-weight: 500;
}
.related.products {
  border-top: 1px solid var(--rxf-line-soft);
  margin-top: 4em !important;
  padding-top: 1em !important;
}

/* ---------- Shop / archive: editorial collections ---------- */

.woocommerce-products-header {
  text-align: center;
  padding: clamp(3rem, 7vw, 5.5rem) 1.5rem clamp(2rem, 4vw, 3rem) !important;
  background: var(--rxf-cream) !important;
  margin-bottom: 3rem !important;
}
.woocommerce-products-header__title {
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
}
.woocommerce-products-header .term-description {
  font-family: var(--rxf-serif) !important;
  font-style: italic;
  font-size: 1.15rem !important;
  color: var(--rxf-stone) !important;
  max-width: 36em;
  margin: 0.8em auto 0 !important;
}

/* Result count / ordering — quiet utility */
.woocommerce-result-count,
.woocommerce-ordering select {
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--rxf-fog) !important;
}
.woocommerce-ordering select {
  border: none !important;
  border-bottom: 1px solid var(--rxf-line) !important;
  background: transparent !important;
  border-radius: 0 !important;
}

/* Pagination — minimal */
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span {
  border: none !important;
  background: transparent !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em;
  color: var(--rxf-stone) !important;
  padding: 0.7em 1em !important;
}
.woocommerce-pagination ul.page-numbers li span.current {
  color: var(--rxf-ink) !important;
  box-shadow: inset 0 -1px 0 var(--rxf-gold) !important;
}

/* ---------- Blog: sophisticated cards ---------- */

.post-card,
.blog-card,
article.post {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.post-card img,
.blog-card img {
  border-radius: 0 !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 0.8s var(--rxf-ease) !important;
}
.post-card:hover img { transform: scale(1.03); }

.post-card .entry-title,
.blog-card .entry-title {
  font-size: 1.5rem !important;
  line-height: 1.3 !important;
}
.post-card .entry-meta,
.blog-card .entry-meta {
  font-size: 0.72rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--rxf-fog) !important;
}

/* Article body — editorial measure */
.single-post .entry-content {
  max-width: 42em;
  margin: 0 auto;
  font-size: 1.08rem !important;
  line-height: 1.85 !important;
  font-weight: 300;
}
.single-post .entry-content h2 {
  margin-top: 2.2em !important;
}

/* ---------- Footer: beautiful, quiet ---------- */

.site-footer,
#footer,
.footer_wrap {
  background: var(--rxf-ink) !important;
  color: var(--rxf-beige) !important;
  border-top: 1px solid var(--rxf-gold-soft) !important;
}
.site-footer h3,
.site-footer .widget-title,
#footer .widgettitle {
  font-family: var(--rxf-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  color: var(--rxf-ivory) !important;
  margin-bottom: 1.2em !important;
}
.site-footer a,
#footer a {
  color: var(--rxf-beige) !important;
  font-size: 0.88rem !important;
  transition: color 0.3s var(--rxf-ease);
}
.site-footer a:hover { color: var(--rxf-gold-soft) !important; }
.site-footer p,
#footer p {
  font-size: 0.88rem !important;
  line-height: 1.8 !important;
  color: #CFC8B8 !important;
  font-weight: 300;
}
.footer-bottom,
.copyright {
  border-top: 1px solid rgba(214, 192, 146, 0.22) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.08em !important;
  color: #A79E8B !important;
}

/* ---------- Homepage editorial rhythm ---------- */

.home .entry-content > * {
  margin-left: auto;
  margin-right: auto;
}

/* Section eyebrows */
.rxf-eyebrow {
  font-size: 0.72rem !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--rxf-gold) !important;
  text-align: center;
  margin-bottom: 0.8em !important;
}

/* Gentle motion only */
a, button, .button, img {
  transition-timing-function: var(--rxf-ease);
}

/* Hide clutter */
.woocommerce .star-rating { display: none !important; }

/* ---------- Responsive refinement ---------- */

@media (max-width: 768px) {
  .single-product .single_add_to_cart_button {
    min-width: 0;
    width: 100%;
  }
  .woocommerce ul.products li.product a img {
    aspect-ratio: 1 / 1;
  }
}

/* ============================================================
   v1.1 — QA refinements (2026-09-27)
   ============================================================ */

/* 1. Product summary vertical rhythm — close the dead gap */
.single-product .summary .product_title {
  margin-bottom: 0.35em !important;
}
.single-product .summary .woocommerce-product-details__short-description {
  margin-top: 0 !important;
}
.single-product .summary > *:first-child {
  margin-top: 0 !important;
}

/* 2. Gallery fullscreen icon — float it off the image */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
.single-product div.images .woocommerce-product-gallery__trigger {
  top: 1.2em !important;
  right: 1.2em !important;
  background: rgba(27, 26, 24, 0.72) !important;
  border-radius: 50% !important;
  width: 38px !important;
  height: 38px !important;
  line-height: 38px !important;
}
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  color: var(--rxf-ivory) !important;
}

/* 3. Header search button — stop the clipped magnifier */
.header-search button,
.search-form button,
button.search-submit {
  overflow: visible !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 52px !important;
}
.header-search button svg,
.header-search button i,
.search-form button svg {
  flex-shrink: 0 !important;
  max-width: 20px !important;
}

/* 4. Product meta — quiet uppercase labels, never italic slugs */
.single-product .product_meta,
.product_meta {
  font-style: normal !important;
}
.single-product .product_meta a,
.product_meta a {
  font-style: normal !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.14em !important;
  font-weight: 500 !important;
  color: var(--rxf-sage-deep) !important;
}
.single-product .product_meta .sku,
.product_meta .sku {
  font-style: normal !important;
  letter-spacing: 0.1em !important;
}

/* 5. Homepage category bar — richer, editorial */
.rxf-catbar,
.home .category-bar,
.home .product-categories {
  background: var(--rxf-cream) !important;
  border-top: 1px solid var(--rxf-line-soft) !important;
  border-bottom: 1px solid var(--rxf-line-soft) !important;
  border-radius: 0 !important;
  padding: 1.6em 1em !important;
}
.rxf-catbar a,
.home .category-bar a,
.home .product-categories a {
  font-size: 0.75rem !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--rxf-charcoal) !important;
  padding: 0.8em 1.4em !important;
  border-bottom: 1px solid transparent !important;
  transition: all 0.3s var(--rxf-ease) !important;
}
.rxf-catbar a:hover,
.home .category-bar a:hover {
  color: var(--rxf-sage-deep) !important;
  border-bottom-color: var(--rxf-gold) !important;
}

/* 6. Carousel arrows — one consistent style */
.rh-carousel-arrow,
.owl-prev, .owl-next,
.slick-prev, .slick-next,
.carousel-prev, .carousel-next {
  background: var(--rxf-ink) !important;
  color: var(--rxf-ivory) !important;
  border-radius: 50% !important;
  width: 46px !important;
  height: 46px !important;
  opacity: 0.92 !important;
  box-shadow: var(--rxf-shadow-soft) !important;
  border: none !important;
}
.rh-carousel-arrow:hover,
.owl-prev:hover, .owl-next:hover {
  background: var(--rxf-sage-deep) !important;
  opacity: 1 !important;
}

/* 7. Card "add to cart" circles — dark, never neon green */
ul.products li.product .add_to_cart_button,
.rh-product-card .add_to_cart_button,
.product-card .cart-btn,
.yith-wcwl-add-to-wishlist + .add_to_cart_button {
  background: var(--rxf-ink) !important;
  color: var(--rxf-ivory) !important;
  border-radius: 50% !important;
  border: 1px solid var(--rxf-ink) !important;
}
ul.products li.product .add_to_cart_button:hover {
  background: var(--rxf-sage-deep) !important;
  border-color: var(--rxf-sage-deep) !important;
}
/* Kill any theme green on commerce accents */
.woocommerce .button.add_to_cart_button,
.added_to_cart {
  background: var(--rxf-ink) !important;
}

/* 8. Share buttons — monochrome outline, quiet */
.share-buttons a,
.social-share a,
.entry-share a,
.post-share a {
  background: transparent !important;
  color: var(--rxf-stone) !important;
  border: 1px solid var(--rxf-line) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}
.share-buttons a:hover,
.social-share a:hover {
  border-color: var(--rxf-ink) !important;
  color: var(--rxf-ink) !important;
  background: transparent !important;
}
/* Specifically mute the red "Save" button */
.share-buttons .save-btn,
button.save-button,
a.save-button {
  background: transparent !important;
  color: var(--rxf-ink) !important;
  border: 1px solid var(--rxf-ink) !important;
  border-radius: 0 !important;
}

/* 9. Article "Shop on Amazon" text links — small dark buttons */
.single-post .entry-content a[href*="amazon.com"],
.single-post .entry-content a[href*="amzn"] {
  display: inline-block !important;
  background: var(--rxf-ink) !important;
  color: var(--rxf-ivory) !important;
  font-family: var(--rxf-sans) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 0.9em 2em !important;
  margin: 0.6em 0 1.4em !important;
  border: 1px solid var(--rxf-ink) !important;
  transition: all 0.3s var(--rxf-ease) !important;
}
.single-post .entry-content a[href*="amazon.com"]:hover {
  background: transparent !important;
  color: var(--rxf-ink) !important;
}

/* 10. Related articles — card titles + thumbs (ReHub uses .related_articles + h2 titles) */
.related_articles .columned_grid_module {
  overflow: hidden !important;
}
.related_articles .content_constructor h2 {
  font-family: var(--rxf-serif) !important;
  font-weight: 500 !important;
  font-size: 1.08rem !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  margin-bottom: 0.6rem !important;
}
.related_articles article {
  min-width: 0 !important;
  overflow: hidden !important;
}
/* 10b. Blog listing cards — compact titles (override global h2) */
.newsdetail h2,
.newstitleblock h2 {
  font-family: var(--rxf-serif) !important;
  font-weight: 500 !important;
  font-size: 1.3rem !important;
  line-height: 1.4 !important;
  white-space: normal !important;
  overflow: visible !important;
}
/* Graceful missing thumbnails */
.related_articles img {
  background: var(--rxf-cream) !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  width: 100% !important;
}

/* ============================================================
   v1.2 — Tighter product summary rhythm (2026-09-27)
   ============================================================ */

/* Collapse all vertical slack inside the summary column */
.single-product .summary > * {
  margin-top: 0 !important;
  margin-bottom: 1rem !important;
}
.single-product .summary > .product_title {
  margin-bottom: 0.5rem !important;
}
/* ReHub wraps short desc in various containers — catch them all */
.single-product .summary .woocommerce-product-details__short-description,
.single-product .summary .post-content,
.single-product .summary .rh-short-desc,
.single-product .summary div[itemprop="description"] {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* If the cream box itself has top margin, kill it */
.single-product .summary .rxf-disclosure {
  margin-top: 1rem !important;
}

/* ============================================================
   v1.3 — Homepage editorial sections (2026-09-27)
   ============================================================ */

/* ---------- HERO ---------- */
.rxf-hero {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.rxf-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(27,26,24,0.62) 0%, rgba(27,26,24,0.28) 45%, rgba(27,26,24,0.05) 75%);
}
.rxf-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 6rem 2rem;
  width: 100%;
}
.rxf-hero-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--rxf-gold-soft);
  margin-bottom: 1.4rem;
}
.rxf-hero h1 {
  font-family: var(--rxf-serif) !important;
  font-size: clamp(2.8rem, 6.5vw, 5.2rem) !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  line-height: 1.08 !important;
  max-width: 12em;
  margin-bottom: 1.2rem !important;
}
.rxf-hero p.rxf-hero-sub {
  font-family: var(--rxf-serif) !important;
  font-style: italic;
  font-size: clamp(1.05rem, 2vw, 1.35rem) !important;
  color: rgba(255,255,255,0.88) !important;
  max-width: 30em;
  margin-bottom: 2.6rem !important;
  line-height: 1.6 !important;
}
.rxf-hero-ctas { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.rxf-btn {
  display: inline-block;
  font-family: var(--rxf-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 1.15em 2.8em !important;
  text-decoration: none !important;
  transition: all 0.4s var(--rxf-ease) !important;
  border: 1px solid transparent;
}
.rxf-btn-solid { background: var(--rxf-ivory) !important; color: var(--rxf-ink) !important; }
.rxf-btn-solid:hover { background: var(--rxf-gold-soft) !important; color: var(--rxf-ink) !important; transform: translateY(-2px); }
.rxf-btn-outline { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,0.7) !important; }
.rxf-btn-outline:hover { border-color: #fff !important; background: rgba(255,255,255,0.12) !important; transform: translateY(-2px); }
.rxf-btn-dark { background: var(--rxf-ink) !important; color: var(--rxf-ivory) !important; border-color: var(--rxf-ink) !important; }
.rxf-btn-dark:hover { background: transparent !important; color: var(--rxf-ink) !important; }

/* ---------- Section scaffolding ---------- */
.rxf-section { padding: clamp(4rem, 8vw, 7.5rem) 0; }
.rxf-wrap { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.rxf-center { text-align: center; }
.rxf-section-title {
  font-family: var(--rxf-serif) !important;
  font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
  font-weight: 500 !important;
  color: var(--rxf-ink) !important;
  margin-bottom: 0.5em !important;
  line-height: 1.15 !important;
}
.rxf-section-sub {
  font-family: var(--rxf-serif) !important;
  font-style: italic;
  font-size: 1.1rem !important;
  color: var(--rxf-stone) !important;
  max-width: 34em;
  margin: 0 auto 3rem !important;
  line-height: 1.65 !important;
}
.rxf-section-sub.left { margin-left: 0 !important; }

/* ---------- Category tiles (magazine feature cards) ---------- */
.rxf-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
}
.rxf-cat-tile {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  text-decoration: none !important;
  background: var(--rxf-cream);
}
.rxf-cat-tile img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--rxf-ease) !important;
}
.rxf-cat-tile:hover img { transform: scale(1.06); }
.rxf-cat-tile::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(27,26,24,0.72) 0%, rgba(27,26,24,0.12) 55%, transparent 80%);
  transition: opacity 0.5s var(--rxf-ease);
}
.rxf-cat-copy {
  position: absolute; z-index: 2;
  left: 0; right: 0; bottom: 0;
  padding: 2rem 1.8rem;
}
.rxf-cat-label {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--rxf-gold-soft);
  margin-bottom: 0.6rem;
}
.rxf-cat-tile h3 {
  font-family: var(--rxf-serif) !important;
  font-size: 1.65rem !important;
  font-weight: 500 !important;
  color: #fff !important;
  margin: 0 !important;
  line-height: 1.25 !important;
}
.rxf-cat-cta {
  display: inline-block;
  margin-top: 0.9rem;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 500;
  color: #fff;
  border-bottom: 1px solid var(--rxf-gold-soft);
  padding-bottom: 0.3em;
}

/* ---------- Split editorial (Glass Skin Edit) ---------- */
.rxf-split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 0;
  align-items: stretch;
  background: var(--rxf-cream);
}
.rxf-split-img { min-height: 560px; }
.rxf-split-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rxf-split-copy { padding: clamp(2.5rem, 5vw, 5rem); display: flex; flex-direction: column; justify-content: center; }
.rxf-split-copy .rxf-section-title { margin-bottom: 0.6em !important; }
.rxf-split-list { list-style: none; margin: 1.8rem 0 2.4rem; padding: 0; }
.rxf-split-list li {
  padding: 1rem 0;
  border-bottom: 1px solid var(--rxf-line);
  font-size: 0.95rem;
  color: var(--rxf-charcoal);
  display: flex; align-items: baseline; gap: 1rem;
}
.rxf-split-list li:last-child { border-bottom: none; }
.rxf-split-list .n {
  font-family: var(--rxf-serif);
  font-style: italic;
  color: var(--rxf-gold);
  font-size: 1.05rem;
  min-width: 1.6em;
}

/* ---------- Problem solver tiles ---------- */
.rxf-problem-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
}
.rxf-problem-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 300px;
  padding: 2rem 1.8rem;
  text-decoration: none !important;
  overflow: hidden;
  background: var(--rxf-charcoal);
  color: #fff;
}
.rxf-problem-tile img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.55;
  transition: opacity 0.6s var(--rxf-ease), transform 1s var(--rxf-ease) !important;
}
.rxf-problem-tile:hover img { opacity: 0.7; transform: scale(1.05); }
.rxf-problem-tile > *:not(img) { position: relative; z-index: 2; }
.rxf-problem-tile h3 {
  font-family: var(--rxf-serif) !important;
  font-size: 1.45rem !important;
  font-weight: 500 !important;
  color: #fff !important;
  margin: 0 0 0.4em !important;
}
.rxf-problem-tile p { font-size: 0.88rem; color: rgba(255,255,255,0.78); margin: 0; line-height: 1.6; }

/* ---------- Journal cards ---------- */
.rxf-journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
}
.rxf-journal-card {
  text-decoration: none !important;
  display: block;
  background: transparent;
}
.rxf-journal-img { overflow: hidden; aspect-ratio: 16/10; background: var(--rxf-cream); margin-bottom: 1.4rem; }
.rxf-journal-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--rxf-ease) !important; }
.rxf-journal-card:hover .rxf-journal-img img { transform: scale(1.05); }
.rxf-journal-card h3 {
  font-family: var(--rxf-serif) !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  color: var(--rxf-ink) !important;
  line-height: 1.35 !important;
  margin: 0 0 0.6em !important;
}
.rxf-journal-card p { font-size: 0.92rem; color: var(--rxf-stone); line-height: 1.7; margin: 0 0 1rem; }
.rxf-read {
  font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500;
  color: var(--rxf-ink); border-bottom: 1px solid var(--rxf-gold); padding-bottom: 0.3em;
}

/* ---------- Alternating band ---------- */
.rxf-band-cream { background: var(--rxf-cream); }
.rxf-band-ivory { background: var(--rxf-ivory); }

/* ---------- Mobile refinement ---------- */
@media (max-width: 900px) {
  .rxf-cat-grid, .rxf-problem-grid, .rxf-journal-grid { grid-template-columns: 1fr 1fr; gap: 1.1rem; }
  .rxf-split { grid-template-columns: 1fr; }
  .rxf-split-img { min-height: 380px; }
  .rxf-hero { min-height: 78vh; }
}
@media (max-width: 560px) {
  .rxf-cat-grid, .rxf-problem-grid, .rxf-journal-grid { grid-template-columns: 1fr; }
  .rxf-cat-tile { aspect-ratio: 16/10; }
  .rxf-hero-inner { padding: 4rem 1.5rem; }
  .rxf-hero-ctas .rxf-btn { width: 100%; text-align: center; }
}

/* ============================================================
   v1.4 — Mobile header fix (2026-09-27)
   ============================================================ */
@media (max-width: 768px) {
  /* Header layout: stack logo, search, icons cleanly */
  .site-header .header-wrap,
  #site-header .header-wrap {
    flex-wrap: wrap !important;
    padding: 0.8rem 1rem !important;
  }
  /* Logo: full visibility, reasonable size */
  .site-header .logo,
  #site-header .logo,
  .custom-logo-link {
    max-width: 180px !important;
    flex-shrink: 1 !important;
  }
  .site-header .logo img,
  #site-header .logo img,
  .custom-logo {
    max-width: 100% !important;
    height: auto !important;
    max-height: 48px !important;
  }
  /* Search: full width row below logo */
  .site-header .search-form,
  #site-header .search-form,
  .header-search {
    order: 3 !important;
    flex-basis: 100% !important;
    margin-top: 0.7rem !important;
    min-width: 0 !important;
  }
  .site-header .search-form input[type="search"],
  #site-header .search-form input[type="search"],
  .header-search input {
    width: 100% !important;
    background: var(--rxf-ivory) !important;
    border: 1px solid var(--rxf-line) !important;
    color: var(--rxf-ink) !important;
  }
  /* Icons: keep compact, no overflow */
  .site-header .header-icons,
  #site-header .header-icons,
  .header-actions {
    margin-left: auto !important;
    flex-shrink: 0 !important;
  }
  /* Product card titles: allow 2 lines on mobile */
  .rxf-section .flowhidden,
  .woocommerce ul.products li.product h3.flowhidden {
    white-space: normal !important;
    overflow: visible !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }
}

/* ============================================================
   v1.5 — Mobile header fix, correct ReHub selectors (2026-09-27)
   Header is ReHub theme output: .logo_image, .re-ajax-search,
   .btnsearch, .rh-header-icon, .top_menu
   ============================================================ */
@media (max-width: 768px) {
  /* Kill any stray black backgrounds in the mobile header */
  #main_header .btnsearch,
  .header_wrap .btnsearch,
  .btnsearch {
    background: var(--rxf-sage) !important;
    color: #fff !important;
    border: none !important;
  }
  /* Logo: keep visible, cap size */
  .logo_image {
    max-width: 170px !important;
    display: inline-block !important;
  }
  .logo_image img {
    max-width: 100% !important;
    height: auto !important;
    max-height: 44px !important;
  }
  /* Search input: light, readable, full width row */
  .re-ajax-search {
    background: #fff !important;
    color: var(--rxf-ink) !important;
    border: 1px solid var(--rxf-line) !important;
    border-radius: 999px !important;
    padding: 0.65rem 1.1rem !important;
    width: 100% !important;
    font-size: 16px !important; /* prevents iOS zoom */
  }
  .re-ajax-search::placeholder {
    color: #9a938a !important;
  }
  /* Search form wrapper takes its own row on mobile */
  form:has(.re-ajax-search) {
    flex-basis: 100% !important;
    order: 5 !important;
    margin-top: 0.6rem !important;
  }
  /* Wishlist / header icons: no black badge bg issues */
  .rh-header-icon .rh-icon-notice {
    background: var(--rxf-blush) !important;
    color: var(--rxf-ink) !important;
  }
  /* Mobile menu trigger candidates: never black boxes */
  .dl-trigger,
  .mobile-menu-button,
  #mobile-menu-button,
  .menu-trigger,
  [class*="mobile"] button,
  .rh-header-icon {
    background: transparent !important;
  }
}

/* ============================================================
   v1.6 — Aggressive mobile header black-box kill (2026-09-27)
   Targets wrapper-level elements: the black rects in the
   screenshot are larger than buttons, so the bg is likely on
   parent containers (menu/search toggle wrappers).
   ============================================================ */
@media (max-width: 768px) {
  /* Any element in the header whose computed bg is pure black: neutralize */
  #main_header div[class*="menu"],
  #main_header div[class*="search"],
  #main_header span[class*="menu"],
  #main_header span[class*="search"],
  #main_header a[class*="menu"],
  #main_header a[class*="search"],
  #main_header button[class*="menu"],
  #main_header button[class*="search"],
  .header_wrap div[class*="menu"],
  .header_wrap div[class*="search"],
  .dl-menuwrapper,
  .dl-menuwrapper .dl-trigger,
  .mobile-menu-wrapper,
  .mobile-search-wrapper,
  .search-toggle,
  .menu-toggle {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
  }
  /* Ensure toggle icons are visible dark-on-light, not invisible */
  #main_header .dl-trigger svg,
  #main_header .dl-trigger i,
  #main_header .search-toggle svg,
  #main_header .search-toggle i,
  .dl-menuwrapper .dl-trigger svg,
  .dl-menuwrapper .dl-trigger i {
    color: var(--rxf-ink) !important;
    fill: var(--rxf-ink) !important;
  }
  /* Logo must sit above any leftover wrapper bg */
  #main_header .logo_image,
  .header_wrap .logo_image {
    position: relative !important;
    z-index: 5 !important;
    background: transparent !important;
  }
}

/* ============================================================
   v1.7 — Kill mobile header outlines + luxury carousel arrows (2026-09-27)
   - v1.1's global button border rule was drawing black outlines
     on mobile header buttons; neutralize for header elements.
   - Restyle chunky carousel prev/next into circular luxury buttons.
   ============================================================ */
@media (max-width: 768px) {
  /* No black borders/outlines on ANY mobile header element */
  #main_header button,
  #main_header a,
  #main_header .dl-trigger,
  #main_header .logo_image_mobile,
  #main_header .icon-search-onclick,
  #main_header .rh-header-icon,
  .header_wrap button,
  .header_wrap a,
  .mobile-header button,
  .mobile-header a {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
  }
  #main_header button:focus,
  #main_header a:focus {
    outline: none !important;
  }
}

/* Luxury carousel navigation (all viewports) */
.owl-nav button,
.owl-prev,
.owl-next,
.slick-prev,
.slick-next,
.rh-carousel .owl-prev,
.rh-carousel .owl-next,
[class*="carousel"] .owl-prev,
[class*="carousel"] .owl-next {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid var(--rxf-line) !important;
  color: var(--rxf-ink) !important;
  box-shadow: 0 2px 14px rgba(60, 50, 40, 0.10) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 18px !important;
  line-height: 1 !important;
  opacity: 1 !important;
}
.owl-nav button:hover,
.owl-prev:hover,
.owl-next:hover,
.slick-prev:hover,
.slick-next:hover {
  background: var(--rxf-ivory) !important;
  border-color: var(--rxf-sage) !important;
}
.owl-nav button span,
.owl-prev span,
.owl-next span {
  color: var(--rxf-ink) !important;
}
