:root {
  --rf-ink: #171412;
  --rf-ink-soft: #625b56;
  --rf-canvas: #f7f3ef;
  --rf-paper: #fffdfb;
  --rf-logo-paper: #fdfcf7;
  --rf-rose: #a87478;
  --rf-rose-dark: #744a4e;
  --rf-rose-soft: #eadbdd;
  --rf-sage: #dde5db;
  --rf-sand: #eee7df;
  --rf-line: #ded7d0;
  --rf-line-soft: rgba(222, 215, 208, .65);
  --rf-shadow: 0 18px 50px rgba(49, 38, 31, .08);
  --rf-shadow-strong: 0 24px 70px rgba(49, 38, 31, .13);
  --rf-radius: 24px;
  --rf-radius-sm: 14px;
  --rf-max: 1240px;
  --rf-serif: Georgia, "Times New Roman", ui-serif, serif;
  --rf-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --rf-header-offset: 0px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--rf-ink);
  background: var(--rf-paper);
  font-family: var(--rf-sans);
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.rf-menu-open,
body.rf-filter-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--rf-rose-dark); }
img { display: block; max-width: 100%; height: auto; }
button,
input,
select,
textarea { font: inherit; }
button,
a { -webkit-tap-highlight-color: transparent; }

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: #fff;
  clip: auto !important;
  clip-path: none;
  color: var(--rf-ink);
  display: block;
  font-size: 14px;
  height: auto;
  left: 10px;
  padding: 12px 16px;
  top: 10px;
  width: auto;
  z-index: 100000;
}
:focus-visible { outline: 2px solid var(--rf-rose-dark); outline-offset: 3px; }

.rf-container {
  width: min(var(--rf-max), calc(100% - 40px));
  margin-inline: auto;
}
.rf-narrow-container { width: min(790px, calc(100% - 40px)); }
.rf-content-container { padding-block: 78px 100px; }
.rf-main { min-height: 45vh; }
.rf-display {
  font-family: var(--rf-serif);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.035em;
}
.rf-eyebrow {
  color: var(--rf-rose-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.rf-button,
.wp-element-button,
.wp-block-button__link {
  align-items: center;
  background: var(--rf-ink);
  border: 1px solid var(--rf-ink);
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 14px;
  font-weight: 750;
  gap: 8px;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.rf-button:hover,
.wp-element-button:hover,
.wp-block-button__link:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 9px 25px rgba(0, 0, 0, .12); }
.rf-button-light { background: transparent; color: var(--rf-ink); }
.rf-button-light:hover { background: #fff; color: var(--rf-ink); }
.rf-button-rose { background: var(--rf-rose-dark); border-color: var(--rf-rose-dark); }
.rf-arrow-link { font-size: 13px; font-weight: 750; }
.rf-arrow-link:hover { color: var(--rf-rose-dark); }

/* Header */
.rf-announcement {
  background: var(--rf-ink);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .04em;
  padding: 9px 10px;
  text-align: center;
}
.rf-site-header {
  position: sticky;
  top: var(--rf-header-offset);
  z-index: 100;
  background: rgba(255, 253, 251, .96);
  border-bottom: 1px solid var(--rf-line-soft);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.admin-bar .rf-site-header { --rf-header-offset: 32px; }
.rf-header-main {
  align-items: center;
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr auto 1fr;
  min-height: 76px;
}
.rf-brand { justify-self: center; }
.custom-logo-link,
.rf-fallback-logo { display: block; }
.custom-logo,
.rf-fallback-logo img {
  height: 46px;
  max-width: 230px;
  object-fit: contain;
  width: auto;
}
.rf-fallback-logo img { mix-blend-mode: multiply; }
.rf-product-search {
  align-items: center;
  background: #fff;
  border: 1px solid var(--rf-line);
  border-radius: 999px;
  display: flex;
  gap: 8px;
  max-width: 320px;
  padding: 0 14px;
  width: 100%;
}
.rf-product-search svg {
  fill: none;
  flex: 0 0 auto;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.6;
}
.rf-product-search input[type="search"] {
  background: transparent;
  border: 0;
  color: var(--rf-ink);
  min-height: 42px;
  outline: 0;
  padding: 0;
  width: 100%;
}
.rf-product-search input::placeholder { color: #8a817c; }
.rf-desktop-search { justify-self: start; }
.rf-header-actions {
  align-items: center;
  display: flex;
  gap: 9px;
  justify-self: end;
}
.rf-icon-button {
  align-items: center;
  background: #fff;
  border: 1px solid var(--rf-line);
  border-radius: 999px;
  color: var(--rf-ink);
  display: inline-flex;
  height: 42px;
  justify-content: center;
  min-width: 42px;
  padding: 0 12px;
  position: relative;
}
.rf-icon-button svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}
.rf-cart-count {
  align-items: center;
  background: var(--rf-rose-dark);
  border-radius: 999px;
  color: #fff;
  display: flex;
  font-size: 9px;
  font-weight: 800;
  height: 18px;
  justify-content: center;
  min-width: 18px;
  padding: 0 4px;
  position: absolute;
  right: -5px;
  top: -5px;
}
.rf-menu-toggle { display: none; }
.rf-menu-lines { display: grid; gap: 5px; width: 18px; }
.rf-menu-lines i { background: currentColor; display: block; height: 1.5px; width: 100%; }
.rf-primary-nav { border-top: 1px solid var(--rf-line-soft); }
.rf-menu {
  align-items: center;
  display: flex;
  gap: 30px;
  justify-content: center;
  list-style: none;
  margin: 0;
  min-height: 48px;
  padding: 0;
}
.rf-menu > li { position: relative; }
.rf-menu > li > a {
  display: block;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .015em;
  padding: 14px 0;
}
.rf-menu .sub-menu {
  background: #fff;
  border: 1px solid var(--rf-line);
  border-radius: 16px;
  box-shadow: var(--rf-shadow);
  left: 50%;
  list-style: none;
  margin: 0;
  min-width: 220px;
  opacity: 0;
  padding: 10px;
  pointer-events: none;
  position: absolute;
  top: calc(100% - 2px);
  transform: translate(-50%, 8px);
  transition: .16s ease;
  visibility: hidden;
}
.rf-menu .sub-menu a { border-radius: 10px; display: block; font-size: 13px; padding: 10px 12px; }
.rf-menu .sub-menu a:hover { background: var(--rf-canvas); }
.rf-menu li:hover > .sub-menu,
.rf-menu li:focus-within > .sub-menu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); visibility: visible; }

.rf-mobile-drawer,
.rf-drawer-backdrop { display: none; }

/* Hero */
.rf-hero { background: var(--rf-canvas); overflow: hidden; }
.rf-hero-grid {
  align-items: center;
  display: grid;
  gap: 42px;
  grid-template-columns: 1.02fr .98fr;
  min-height: 650px;
}
.rf-hero-copy { padding: 76px 0; }
.rf-hero-copy h1 { font-size: clamp(58px, 7vw, 104px); margin: 12px 0 20px; max-width: 720px; }
.rf-hero-copy p { color: var(--rf-ink-soft); font-size: 18px; margin: 0 0 28px; max-width: 590px; }
.rf-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.rf-hero-visual {
  align-self: stretch;
  min-height: 540px;
  position: relative;
}
.rf-hero-photo {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 0 0 0 48px;
  margin-right: calc((100vw - min(var(--rf-max), calc(100vw - 40px))) / -2);
}
.rf-hero-brand-art { isolation: isolate; }
.rf-orb { border-radius: 999px; position: absolute; }
.rf-orb-a { background: var(--rf-rose-soft); height: 440px; right: -30px; top: 70px; width: 440px; }
.rf-orb-b { background: var(--rf-sage); bottom: 45px; height: 220px; left: 12px; width: 220px; }
.rf-hero-wordmark {
  align-items: center;
  background: rgba(253, 252, 247, .9);
  border: 1px solid rgba(116, 74, 78, .12);
  border-radius: 28px;
  box-shadow: var(--rf-shadow-strong);
  display: flex;
  height: 245px;
  justify-content: center;
  padding: 28px 42px;
  position: absolute;
  right: 45px;
  top: 160px;
  transform: rotate(2.5deg);
  width: min(460px, 78%);
  z-index: 2;
}
.rf-hero-wordmark img { mix-blend-mode: multiply; width: 100%; }
.rf-art-note {
  background: rgba(255, 255, 255, .88);
  border: 1px solid var(--rf-line);
  border-radius: 999px;
  bottom: 70px;
  display: flex;
  font-size: 10px;
  font-weight: 800;
  gap: 18px;
  left: 70px;
  letter-spacing: .12em;
  padding: 12px 18px;
  position: absolute;
  text-transform: uppercase;
  z-index: 3;
}

/* Trust */
.rf-trust-strip { background: #fff; border-block: 1px solid var(--rf-line); }
.rf-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.rf-trust-item { border-right: 1px solid var(--rf-line); padding: 22px 18px; text-align: center; }
.rf-trust-item:last-child { border-right: 0; }
.rf-trust-item strong { display: block; font-size: 14px; margin-bottom: 2px; }
.rf-trust-item span { color: var(--rf-ink-soft); font-size: 12px; }

/* Sections */
.rf-section { padding: 86px 0; }
.rf-section-head {
  align-items: end;
  display: flex;
  gap: 28px;
  justify-content: space-between;
  margin-bottom: 30px;
}
.rf-section-head h2 { font-size: clamp(38px, 4vw, 60px); margin: 7px 0 0; }
.rf-section-head > p { color: var(--rf-ink-soft); margin: 0; max-width: 510px; }
.rf-discovery-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.rf-discovery-card {
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-radius);
  box-shadow: var(--rf-shadow);
  min-height: 300px;
  overflow: hidden;
  padding: 32px;
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
}
.rf-discovery-card:hover { color: var(--rf-ink); transform: translateY(-4px); box-shadow: var(--rf-shadow-strong); }
.rf-discovery-card::after {
  border: 1px solid rgba(116, 74, 78, .12);
  border-radius: 50%;
  content: "";
  height: 150px;
  position: absolute;
  right: -25px;
  top: -28px;
  width: 150px;
}
.rf-discovery-card h3 { font-family: var(--rf-serif); font-size: 34px; font-weight: 400; line-height: 1.08; margin: 11px 0 12px; max-width: 320px; }
.rf-discovery-card p { color: var(--rf-ink-soft); max-width: 330px; }
.rf-discovery-card .rf-arrow-link { bottom: 28px; position: absolute; }
.rf-card-rose { background: linear-gradient(140deg, #fff, #f3e6e6); }
.rf-card-sage { background: linear-gradient(140deg, #fff, #e9eee7); }
.rf-card-sand { background: linear-gradient(140deg, #fff, #eee7df); }

/* Homepage product cards */
.rf-product-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); }
.rf-product-card { min-width: 0; }
.rf-product-image {
  align-items: center;
  aspect-ratio: 1 / 1.08;
  background: #f3efeb;
  border: 1px solid var(--rf-line);
  border-radius: 20px;
  display: flex;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.rf-product-image img { height: 100%; object-fit: cover; transition: transform .28s ease; width: 100%; }
.rf-product-image:hover img { transform: scale(1.025); }
.rf-badge {
  background: rgba(255, 255, 255, .94);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
  left: 13px;
  letter-spacing: .1em;
  padding: 7px 10px;
  position: absolute;
  text-transform: uppercase;
  top: 13px;
  z-index: 2;
}
.rf-product-meta { padding: 14px 2px 0; }
.rf-product-meta .rf-brand { color: var(--rf-ink-soft); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.rf-product-name { font-size: 15px; line-height: 1.35; margin: 5px 0 4px; }
.rf-rating { color: var(--rf-rose-dark); font-size: 12px; }
.rf-review-count { color: var(--rf-ink-soft); }
.rf-price { font-size: 14px; font-weight: 800; margin-top: 7px; }
.rf-price del { color: #8a837e; font-weight: 450; margin-left: 5px; }
.rf-price ins { text-decoration: none; }
.rf-quick-add,
.rf-product-card .button {
  background: #fff;
  border: 1px solid var(--rf-line);
  border-radius: 999px;
  color: var(--rf-ink);
  display: flex;
  font-size: 13px;
  font-weight: 750;
  justify-content: center;
  margin-top: 12px;
  min-height: 42px;
  padding: 10px 16px;
  text-align: center;
  transition: .18s ease;
  width: 100%;
}
.rf-quick-add:hover { background: var(--rf-ink); border-color: var(--rf-ink); color: #fff; }

/* Concern section */
.rf-concerns { background: var(--rf-ink); color: #fff; }
.rf-concerns .rf-eyebrow { color: #e8cdd0; }
.rf-concerns .rf-section-head > p { color: #c9c1bc; }
.rf-concern-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }
.rf-concern-card {
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 185px;
  padding: 24px;
  transition: background .18s ease, transform .18s ease;
}
.rf-concern-card:hover { background: rgba(255, 255, 255, .08); color: #fff; transform: translateY(-2px); }
.rf-concern-card span { color: #c8beba; font-size: 11px; letter-spacing: .12em; }
.rf-concern-card strong { font-family: var(--rf-serif); font-size: 30px; font-weight: 400; line-height: 1.08; }

/* Routine */
.rf-routine-wrap { background: var(--rf-paper); }
.rf-routine-grid { display: grid; gap: 24px; grid-template-columns: 1fr 1fr; }
.rf-routine-art,
.rf-routine-copy { border-radius: var(--rf-radius); min-height: 570px; }
.rf-routine-art {
  background: linear-gradient(145deg, var(--rf-rose-soft), #f8ece7);
  overflow: hidden;
  padding: 54px;
  position: relative;
}
.rf-routine-orb { background: rgba(255,255,255,.58); border-radius: 50%; height: 390px; position: absolute; right: -70px; top: -55px; width: 390px; }
.rf-routine-card {
  align-items: center;
  backdrop-filter: blur(6px);
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(116,74,78,.14);
  border-radius: 18px;
  box-shadow: 0 12px 38px rgba(80,51,55,.08);
  display: flex;
  gap: 18px;
  min-height: 82px;
  padding: 16px 20px;
  position: absolute;
  width: 245px;
}
.rf-routine-card span { align-items: center; border: 1px solid var(--rf-line); border-radius: 50%; display: flex; font-family: var(--rf-serif); height: 42px; justify-content: center; width: 42px; }
.rf-routine-card strong { font-family: var(--rf-serif); font-size: 23px; font-weight: 400; }
.rf-routine-card:nth-of-type(2) { left: 56px; top: 70px; }
.rf-routine-card:nth-of-type(3) { right: 52px; top: 185px; }
.rf-routine-card:nth-of-type(4) { left: 75px; top: 300px; }
.rf-routine-card:nth-of-type(5) { right: 72px; top: 415px; }
.rf-routine-copy { background: var(--rf-canvas); display: flex; flex-direction: column; justify-content: center; padding: 56px; }
.rf-routine-copy h2 { font-size: clamp(44px, 5vw, 72px); margin: 9px 0 18px; }
.rf-routine-copy > p { color: var(--rf-ink-soft); margin: 0; }
.rf-routine-steps { display: grid; gap: 14px; margin: 24px 0 28px; }
.rf-routine-steps > div { align-items: start; display: grid; gap: 12px; grid-template-columns: 42px 1fr; }
.rf-routine-steps span { align-items: center; background: #fff; border: 1px solid var(--rf-line); border-radius: 50%; display: flex; font-family: var(--rf-serif); font-size: 18px; height: 42px; justify-content: center; }
.rf-routine-steps p { color: var(--rf-ink-soft); font-size: 14px; margin: 0; }
.rf-routine-steps strong { color: var(--rf-ink); }
.rf-routine-copy .rf-button { align-self: start; }

/* Makeup */
.rf-makeup-grid { display: grid; gap: 18px; grid-template-columns: 1.2fr .8fr .8fr; }
.rf-makeup-card {
  align-items: end;
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-radius);
  display: flex;
  min-height: 390px;
  overflow: hidden;
  padding: 28px;
  position: relative;
}
.rf-makeup-card::before,
.rf-makeup-card::after { content: ""; position: absolute; }
.rf-makeup-card::before { background: rgba(255,255,255,.88); box-shadow: 0 28px 55px rgba(0,0,0,.12); right: 18%; transform: rotate(16deg); }
.rf-makeup-card::after { border: 1px solid rgba(255,255,255,.65); border-radius: 50%; height: 210px; left: -45px; top: -45px; width: 210px; }
.rf-makeup-card span { color: #fff; font-family: var(--rf-serif); font-size: 42px; position: relative; z-index: 2; }
.rf-makeup-face { background: linear-gradient(145deg, #ecd8d8, #c88f95); }
.rf-makeup-face::before { border-radius: 16px; height: 270px; top: 54px; width: 92px; }
.rf-makeup-eyes { background: linear-gradient(145deg, #f3e5d8, #d6b99f); }
.rf-makeup-eyes::before { border-radius: 50%; height: 140px; top: 90px; width: 140px; }
.rf-makeup-lips { background: linear-gradient(145deg, #e5ded8, #b8a69d); }
.rf-makeup-lips::before { background: #6e4d50; border-radius: 15px; height: 245px; top: 63px; width: 40px; }
.rf-makeup-card:hover { color: inherit; }

/* Brands */
.rf-brands-section { background: var(--rf-canvas); }
.rf-brand-cloud { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); }
.rf-brand-chip { align-items: center; background: #fff; border: 1px solid var(--rf-line); border-radius: 18px; display: flex; font-family: var(--rf-serif); font-size: 22px; justify-content: center; min-height: 110px; padding: 18px; text-align: center; }
.rf-brand-chip:hover { border-color: var(--rf-rose); color: var(--rf-rose-dark); }

/* Journal */
.rf-journal-grid,
.rf-post-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.rf-journal-card h3,
.rf-post-card h2 { font-family: var(--rf-serif); font-size: 28px; font-weight: 400; line-height: 1.12; margin: 10px 0 8px; }
.rf-journal-card p,
.rf-post-card p { color: var(--rf-ink-soft); margin: 0; }
.rf-journal-image,
.rf-post-card-image { aspect-ratio: 4 / 3; background: var(--rf-canvas); border: 1px solid var(--rf-line); border-radius: 20px; display: block; margin-bottom: 18px; overflow: hidden; }
.rf-journal-image img,
.rf-post-card-image img { height: 100%; object-fit: cover; width: 100%; }
.rf-journal-placeholder { background: linear-gradient(145deg, var(--rf-rose-soft), var(--rf-sage)); display: block; height: 100%; width: 100%; }
.rf-post-card { border-bottom: 1px solid var(--rf-line); padding-bottom: 24px; }
.rf-post-card-body .rf-arrow-link { display: inline-block; margin-top: 14px; }
.rf-post-meta { color: var(--rf-ink-soft); font-size: 12px; }
.rf-post-meta .updated:not(.published) { display: none; }

/* Newsletter */
.rf-newsletter { background: var(--rf-rose-dark); color: #fff; padding: 68px 0; }
.rf-newsletter-grid { align-items: center; display: grid; gap: 50px; grid-template-columns: 1fr 1fr; }
.rf-newsletter .rf-eyebrow { color: #f0d8da; }
.rf-newsletter h2 { font-size: clamp(40px, 5vw, 68px); margin: 8px 0 10px; }
.rf-newsletter p { color: #eadbdd; margin: 0; }
.rf-newsletter-form input[type="email"],
.rf-newsletter-form input[type="text"] { background: #fff; border: 0; border-radius: 999px; min-height: 52px; padding: 0 18px; width: 100%; }
.rf-newsletter-form input[type="submit"],
.rf-newsletter-form button { background: var(--rf-ink); border: 0; border-radius: 999px; color: #fff; cursor: pointer; font-weight: 750; min-height: 48px; padding: 0 20px; }

/* Footer */
.rf-site-footer { background: var(--rf-ink); color: #fff; padding: 72px 0 22px; }
.rf-footer-grid { display: grid; gap: 46px; grid-template-columns: 1.7fr 1fr 1fr 1fr; }
.rf-footer-brand .custom-logo,
.rf-footer-brand .rf-fallback-logo img { filter: brightness(0) invert(1); height: 42px; max-width: 210px; opacity: .94; }
.rf-footer-brand p { color: #bdb4ae; font-size: 14px; max-width: 360px; }
.rf-footer-col h3 { font-size: 12px; letter-spacing: .13em; margin: 0 0 15px; text-transform: uppercase; }
.rf-footer-menu { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.rf-footer-menu a { color: #c8beb8; font-size: 14px; }
.rf-footer-menu a:hover { color: #fff; }
.rf-social-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.rf-social-links a { border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #d9d0cb; font-size: 12px; padding: 8px 12px; }
.rf-footer-extra { border-top: 1px solid rgba(255,255,255,.1); margin-top: 45px; padding-top: 30px; }
.rf-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); color: #9e948f; display: flex; font-size: 11px; gap: 20px; justify-content: space-between; margin-top: 48px; padding-top: 20px; }
.rf-mobile-bottom { display: none; }

/* Generic page / article */
.rf-page-header { margin-bottom: 40px; max-width: 850px; }
.rf-page-header h1,
.rf-entry-header h1 { font-size: clamp(48px, 6vw, 80px); margin: 8px 0 0; }
.rf-archive-description { color: var(--rf-ink-soft); max-width: 680px; }
.rf-entry { padding-block: 82px 100px; }
.rf-entry-header { margin-bottom: 34px; }
.rf-entry-featured { border-radius: 24px; margin-bottom: 38px; overflow: hidden; }
.rf-entry-content { color: #3b3633; font-size: 17px; }
.rf-entry-content > * { max-width: 100%; }
.rf-entry-content h2,
.rf-entry-content h3,
.rf-entry-content h4 { color: var(--rf-ink); font-family: var(--rf-serif); font-weight: 400; line-height: 1.15; margin-top: 1.7em; }
.rf-entry-content h2 { font-size: 38px; }
.rf-entry-content h3 { font-size: 30px; }
.rf-entry-content a:not(.wp-element-button) { color: var(--rf-rose-dark); text-decoration: underline; text-underline-offset: 3px; }
.rf-entry-content blockquote { border-left: 3px solid var(--rf-rose); color: var(--rf-ink-soft); font-family: var(--rf-serif); font-size: 24px; margin: 35px 0; padding-left: 22px; }
.rf-entry-content table { border-collapse: collapse; width: 100%; }
.rf-entry-content th,
.rf-entry-content td { border: 1px solid var(--rf-line); padding: 10px 12px; text-align: left; }
.rf-entry-content .alignwide { margin-left: 50%; max-width: var(--rf-max); transform: translateX(-50%); width: calc(100vw - 40px); }
.rf-entry-content .alignfull { margin-left: 50%; max-width: none; transform: translateX(-50%); width: 100vw; }
.rf-builder-content { width: 100%; }
.rf-full-width-title { padding-top: 70px; }
.rf-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.rf-tags a { background: var(--rf-canvas); border-radius: 999px; font-size: 12px; padding: 7px 10px; }

.rf-empty-state { margin: 70px auto; max-width: 760px; text-align: center; }
.rf-empty-state h1 { font-size: clamp(46px, 6vw, 74px); margin: 10px 0 18px; }
.rf-empty-state p { color: var(--rf-ink-soft); margin: 0 auto 25px; max-width: 560px; }
.rf-404-search { margin: 25px auto 18px; max-width: 520px; padding-right: 4px; }
.rf-404-search .rf-button { min-height: 42px; padding-inline: 18px; }

.navigation.pagination { margin-top: 46px; }
.nav-links { display: flex; gap: 8px; }
.page-numbers { align-items: center; border: 1px solid var(--rf-line); border-radius: 999px; display: inline-flex; height: 42px; justify-content: center; min-width: 42px; padding: 0 12px; }
.page-numbers.current { background: var(--rf-ink); border-color: var(--rf-ink); color: #fff; }

/* Comments */
.rf-comments-area { border-top: 1px solid var(--rf-line); margin-top: 55px; padding-top: 35px; }
.rf-comments-area h2 { font-family: var(--rf-serif); font-size: 34px; font-weight: 400; }
.comment-list { list-style: none; padding: 0; }
.comment-body { border-bottom: 1px solid var(--rf-line); padding: 24px 0; }
.comment-author { align-items: center; display: flex; gap: 10px; }
.comment-author img { border-radius: 50%; }
.comment-form input:not([type="submit"]),
.comment-form textarea { border: 1px solid var(--rf-line); border-radius: 12px; padding: 12px; width: 100%; }
.comment-form input[type="submit"] { background: var(--rf-ink); border: 0; border-radius: 999px; color: #fff; cursor: pointer; min-height: 46px; padding: 0 20px; }

/* WordPress core */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { color: var(--rf-ink-soft); font-size: 12px; }
.gallery-caption { color: var(--rf-ink-soft); }
.bypostauthor { display: block; }

@media (max-width: 1050px) {
  .rf-desktop-search { max-width: 235px; }
  .rf-menu { gap: 20px; }
  .rf-hero-grid { grid-template-columns: 1fr 1fr; min-height: 590px; }
  .rf-hero-copy h1 { font-size: clamp(54px, 7vw, 82px); }
  .rf-hero-visual { min-height: 490px; }
  .rf-hero-wordmark { right: 0; width: 90%; }
  .rf-product-grid { grid-template-columns: repeat(3, 1fr); }
  .rf-product-card:nth-child(n+4) { display: none; }
  .rf-footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .rf-footer-col:last-child { grid-column: 2 / 4; }
}

@media (max-width: 820px) {
  .admin-bar .rf-site-header { --rf-header-offset: 46px; }
  .rf-container { width: min(100% - 28px, var(--rf-max)); }
  .rf-announcement { font-size: 11px; padding: 8px 8px; }
  .rf-header-main { grid-template-columns: 44px 1fr auto; min-height: 66px; }
  .rf-menu-toggle { display: inline-flex; }
  .rf-brand { justify-self: center; }
  .custom-logo,
  .rf-fallback-logo img { height: 38px; max-width: 175px; }
  .rf-account-link { display: none; }
  .rf-desktop-search,
  .rf-primary-nav { display: none; }
  .rf-header-actions { gap: 6px; }
  .rf-icon-button { height: 40px; min-width: 40px; padding: 0 10px; }

  .rf-mobile-drawer {
    background: var(--rf-paper);
    display: block;
    height: 100dvh;
    left: 0;
    max-width: 430px;
    overflow-y: auto;
    position: fixed;
    top: 0;
    transform: translateX(-102%);
    transition: transform .25s ease;
    width: min(88vw, 430px);
    z-index: 1002;
  }
  .rf-mobile-drawer-inner { padding: 20px 18px 42px; }
  .rf-mobile-drawer-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 18px; }
  .rf-drawer-title { font-family: var(--rf-serif); font-size: 25px; }
  .rf-mobile-drawer .rf-product-search { max-width: none; }
  .rf-mobile-menu,
  .rf-mobile-menu .sub-menu,
  .rf-mobile-nav .rf-menu { display: grid; gap: 0; list-style: none; margin: 20px 0 0; padding: 0; }
  .rf-mobile-menu > li,
  .rf-mobile-nav .rf-menu > li { border-bottom: 1px solid var(--rf-line); }
  .rf-mobile-menu a,
  .rf-mobile-nav .rf-menu a { display: block; font-size: 18px; font-weight: 650; padding: 15px 2px; }
  .rf-mobile-menu .sub-menu { padding: 0 0 8px 14px; }
  .rf-mobile-menu .sub-menu a { color: var(--rf-ink-soft); font-size: 14px; padding: 7px 0; }
  .rf-mobile-discovery { display: grid; gap: 9px; margin-top: 24px; }
  .rf-mobile-discovery a { align-items: center; background: var(--rf-canvas); border-radius: 14px; display: flex; font-size: 13px; justify-content: space-between; padding: 14px; }
  .rf-drawer-backdrop {
    background: rgba(18, 15, 13, .45);
    border: 0;
    display: block;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    transition: opacity .2s ease;
    z-index: 1001;
  }
  body.rf-menu-open .rf-mobile-drawer { transform: translateX(0); }
  body.rf-menu-open .rf-drawer-backdrop { opacity: 1; pointer-events: auto; }

  .rf-hero-grid { display: block; min-height: 0; }
  .rf-hero-copy { padding: 64px 0 38px; }
  .rf-hero-copy h1 { font-size: clamp(54px, 13vw, 78px); }
  .rf-hero-copy p { font-size: 16px; }
  .rf-hero-visual { min-height: 430px; }
  .rf-hero-photo { border-radius: 26px 26px 0 0; margin: 0; }
  .rf-orb-a { height: 330px; right: -10px; top: 55px; width: 330px; }
  .rf-orb-b { bottom: 25px; height: 170px; left: 0; width: 170px; }
  .rf-hero-wordmark { height: 205px; left: 50%; right: auto; top: 120px; transform: translateX(-50%) rotate(2deg); width: 84%; }
  .rf-art-note { bottom: 38px; left: 28px; }

  .rf-trust-grid { grid-template-columns: repeat(2, 1fr); }
  .rf-trust-item:nth-child(2) { border-right: 0; }
  .rf-trust-item:nth-child(-n+2) { border-bottom: 1px solid var(--rf-line); }
  .rf-section { padding: 66px 0; }
  .rf-section-head { align-items: start; display: block; }
  .rf-section-head > p,
  .rf-section-head > .rf-arrow-link { display: inline-block; margin-top: 14px; }
  .rf-discovery-grid { grid-template-columns: 1fr; }
  .rf-discovery-card { min-height: 245px; }
  .rf-product-grid { grid-template-columns: repeat(2, 1fr); }
  .rf-product-card:nth-child(n+3) { display: block; }
  .rf-concern-grid { grid-template-columns: repeat(2, 1fr); }
  .rf-routine-grid { grid-template-columns: 1fr; }
  .rf-routine-art { min-height: 450px; }
  .rf-routine-copy { min-height: 0; padding: 44px 34px; }
  .rf-makeup-grid { grid-template-columns: 1fr 1fr; }
  .rf-makeup-card:first-child { grid-column: 1 / -1; }
  .rf-makeup-card { min-height: 320px; }
  .rf-brand-cloud { grid-template-columns: repeat(2, 1fr); }
  .rf-journal-grid,
  .rf-post-grid { grid-template-columns: 1fr 1fr; }
  .rf-newsletter-grid { grid-template-columns: 1fr; }
  .rf-footer-grid { grid-template-columns: 1fr 1fr; }
  .rf-footer-brand { grid-column: 1 / -1; }
  .rf-footer-col:last-child { grid-column: auto; }
  .rf-mobile-bottom {
    background: rgba(255,253,251,.97);
    border-top: 1px solid var(--rf-line);
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    left: 0;
    min-height: 64px;
    padding-bottom: env(safe-area-inset-bottom);
    position: fixed;
    right: 0;
    z-index: 90;
  }
  .rf-mobile-bottom a { align-items: center; color: var(--rf-ink-soft); display: flex; flex-direction: column; font-size: 10px; gap: 2px; justify-content: center; }
  .rf-mobile-bottom a span { color: var(--rf-ink); font-size: 20px; line-height: 1; }
  .rf-has-woocommerce { padding-bottom: 64px; }
}

@media (max-width: 560px) {
  .rf-container { width: min(100% - 22px, var(--rf-max)); }
  .rf-header-main { gap: 8px; }
  .custom-logo,
  .rf-fallback-logo img { height: 34px; max-width: 150px; }
  .rf-hero-copy { padding-top: 52px; }
  .rf-hero-copy h1 { font-size: clamp(50px, 15vw, 68px); }
  .rf-hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .rf-button { min-height: 48px; padding-inline: 15px; }
  .rf-hero-visual { min-height: 360px; }
  .rf-hero-wordmark { height: 175px; padding: 24px; top: 100px; }
  .rf-art-note { gap: 10px; left: 14px; padding: 10px 13px; }
  .rf-trust-item { padding: 17px 8px; }
  .rf-trust-item span { font-size: 10px; }
  .rf-section { padding: 54px 0; }
  .rf-section-head h2 { font-size: 42px; }
  .rf-discovery-card { padding: 25px; }
  .rf-discovery-card h3 { font-size: 30px; }
  .rf-product-grid { gap: 12px; }
  .rf-product-name { font-size: 13px; }
  .rf-product-meta .rf-brand { font-size: 9px; }
  .rf-price { font-size: 13px; }
  .rf-quick-add { font-size: 12px; min-height: 40px; }
  .rf-concern-grid { gap: 10px; }
  .rf-concern-card { min-height: 145px; padding: 18px; }
  .rf-concern-card strong { font-size: 24px; }
  .rf-routine-art { min-height: 390px; padding: 28px; }
  .rf-routine-card { min-height: 67px; width: 195px; }
  .rf-routine-card strong { font-size: 19px; }
  .rf-routine-card:nth-of-type(2) { left: 24px; top: 48px; }
  .rf-routine-card:nth-of-type(3) { right: 20px; top: 137px; }
  .rf-routine-card:nth-of-type(4) { left: 32px; top: 227px; }
  .rf-routine-card:nth-of-type(5) { right: 25px; top: 316px; }
  .rf-routine-copy { padding: 35px 24px; }
  .rf-routine-copy h2 { font-size: 47px; }
  .rf-makeup-grid { grid-template-columns: 1fr; }
  .rf-makeup-card:first-child { grid-column: auto; }
  .rf-makeup-card { min-height: 260px; }
  .rf-brand-chip { font-size: 18px; min-height: 90px; }
  .rf-journal-grid,
  .rf-post-grid { grid-template-columns: 1fr; }
  .rf-newsletter { padding: 54px 0; }
  .rf-footer-grid { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .rf-footer-brand { grid-column: 1 / -1; }
  .rf-footer-bottom { display: grid; }
  .rf-entry { padding-top: 54px; }
  .rf-entry-header h1,
  .rf-page-header h1 { font-size: 50px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* =========================================================
   Rosaifa v1.1 — catalog-led homepage
   Based on the current Rosaifa product mix; scalable by taxonomy.
   ========================================================= */
.rf-hero-catalog .rf-hero-grid { min-height: 700px; }
.rf-hero-catalog .rf-hero-copy { padding-block: 92px; }
.rf-hero-catalog .rf-hero-copy h1 { max-width: 760px; }
.rf-hero-product-art {
  background-color: #efe5df;
  background-position: center;
  background-size: min(100%, 900px) auto;
  border-radius: 34px;
  margin: 54px 0;
  min-height: 585px;
}
.rf-hero-microcopy { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.rf-hero-microcopy span { background: rgba(255,255,255,.72); border: 1px solid var(--rf-line); border-radius: 999px; color: var(--rf-ink-soft); font-size: 11px; font-weight: 700; padding: 7px 11px; }
.rf-soft-section { background: var(--rf-canvas); }

.rf-category-section { padding-top: 92px; }
.rf-category-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rf-category-card { background: #fff; border: 1px solid var(--rf-line); border-radius: 22px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.rf-category-card:hover { border-color: rgba(116,74,78,.42); box-shadow: var(--rf-shadow); color: var(--rf-ink); transform: translateY(-4px); }
.rf-category-image { aspect-ratio: 1.12/1; background: var(--rf-canvas); display: block; overflow: hidden; }
.rf-category-image img { height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.rf-category-card:hover .rf-category-image img { transform: scale(1.025); }
.rf-category-info { display: grid; padding: 16px 17px 18px; }
.rf-category-info strong { font-family: var(--rf-serif); font-size: 24px; font-weight: 400; letter-spacing: -.02em; line-height: 1.08; }
.rf-category-info small { color: var(--rf-ink-soft); font-size: 12px; margin-top: 6px; }
.rf-category-info em { color: var(--rf-rose-dark); font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .07em; margin-top: 10px; text-transform: uppercase; }

.rf-concern-grid-9 { grid-template-columns: repeat(3, 1fr); }
.rf-ingredient-section { background: #f8f4ef; border-block: 1px solid var(--rf-line-soft); }
.rf-ingredient-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.rf-ingredient-cloud a { background: #fff; border: 1px solid var(--rf-line); border-radius: 999px; font-size: 13px; font-weight: 700; padding: 11px 16px; transition: .18s ease; }
.rf-ingredient-cloud a:hover { background: var(--rf-ink); border-color: var(--rf-ink); color: #fff; transform: translateY(-1px); }

.rf-spotlight-section { background: #fbf6f1; overflow: hidden; }
.rf-spotlight-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: 1fr 1fr; }
.rf-spotlight-art { border-radius: 30px; display: block; overflow: hidden; position: relative; }
.rf-spotlight-art img { aspect-ratio: 1.16/1; object-fit: cover; width: 100%; }
.rf-spotlight-label { background: rgba(255,253,251,.9); border: 1px solid rgba(255,255,255,.7); border-radius: 999px; bottom: 22px; font-size: 10px; font-weight: 850; left: 22px; letter-spacing: .14em; padding: 9px 13px; position: absolute; }
.rf-spotlight-copy h2 { font-size: clamp(48px,5vw,76px); margin: 10px 0 18px; }
.rf-spotlight-copy p { color: var(--rf-ink-soft); font-size: 16px; margin: 0 0 24px; max-width: 590px; }
.rf-spotlight-products { margin-top: 58px; }

.rf-makeup-feature { background: #fff; }
.rf-makeup-feature-grid { align-items: center; display: grid; gap: 62px; grid-template-columns: .95fr 1.05fr; }
.rf-makeup-feature-art { border-radius: 30px; overflow: hidden; }
.rf-makeup-feature-art img { aspect-ratio: 1.2/1; object-fit: cover; width: 100%; }
.rf-makeup-feature-copy h2 { font-size: clamp(48px,5vw,72px); margin: 10px 0 18px; }
.rf-makeup-feature-copy p { color: var(--rf-ink-soft); max-width: 600px; }
.rf-inline-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 25px; }
.rf-inline-links a { border-bottom: 1px solid var(--rf-ink); font-size: 13px; font-weight: 800; padding-bottom: 3px; }

.rf-brand-led { background: var(--rf-ink); color: #fff; }
.rf-brand-led .rf-eyebrow { color: #e7c9c9; }
.rf-brand-led .rf-section-head p { color: rgba(255,255,255,.65); }
.rf-brand-cloud-large { display: flex; flex-wrap: wrap; gap: 10px; }
.rf-brand-led .rf-brand-chip { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18); color: #fff; }
.rf-brand-led .rf-brand-chip:hover { background: #fff; border-color: #fff; color: var(--rf-ink); }

.rf-secondary-category-section { padding-top: 72px; }
.rf-secondary-category-grid { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
.rf-secondary-category-card { align-items: center; background: #edf1ea; border: 1px solid var(--rf-line); border-radius: 26px; display: grid; gap: 24px; grid-template-columns: 210px 1fr; min-height: 270px; overflow: hidden; padding-right: 32px; }
.rf-secondary-category-card img { height: 100%; min-height: 270px; object-fit: cover; width: 100%; }
.rf-secondary-category-card > span:not(.rf-supplement-art) { display: grid; }
.rf-secondary-category-card small { color: var(--rf-rose-dark); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.rf-secondary-category-card strong { font-family: var(--rf-serif); font-size: 34px; font-weight: 400; letter-spacing: -.03em; margin-top: 6px; }
.rf-secondary-category-card em { color: var(--rf-ink-soft); font-size: 12px; font-style: normal; margin-top: 7px; }
.rf-secondary-category-card-alt { background: #f1e2e2; padding: 30px; }
.rf-supplement-art { align-items: center; display: grid; gap: 8px; grid-template-columns: 1fr 1fr; height: 150px; justify-items: center; position: relative; width: 190px; }
.rf-supplement-art::before { background: rgba(255,255,255,.55); border-radius: 999px; content: ""; height: 150px; position: absolute; width: 150px; }
.rf-supplement-art i { background: linear-gradient(135deg,#fff9f5,#b97b77); border-radius: 999px; box-shadow: 0 9px 18px rgba(75,52,49,.08); display: block; height: 48px; position: relative; transform: rotate(-20deg); width: 82px; z-index: 2; }
.rf-supplement-art i:nth-child(2n) { transform: rotate(22deg); }

.rf-catalog-note-section { padding: 64px 0 100px; }
.rf-catalog-note { align-items: end; background: var(--rf-canvas); border: 1px solid var(--rf-line); border-radius: 30px; display: grid; gap: 46px; grid-template-columns: 1fr .8fr; padding: 54px; }
.rf-catalog-note h2 { font-size: clamp(42px,4.7vw,68px); margin: 10px 0 0; }
.rf-catalog-note p { color: var(--rf-ink-soft); margin: 0; }

/* Homepage product grid scales to 4 columns even when 8 items are rendered. */
.rf-product-grid { gap: 30px 18px; }

@media (max-width: 1050px) {
  .rf-category-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .rf-secondary-category-card { grid-template-columns: 160px 1fr; }
}
@media (max-width: 820px) {
  .rf-hero-catalog .rf-hero-grid { display: grid; min-height: 0; }
  .rf-hero-catalog .rf-hero-copy { padding: 58px 0 28px; }
  .rf-hero-product-art { border-radius: 25px; margin: 0 0 34px; min-height: 440px; }
  .rf-category-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .rf-concern-grid-9 { grid-template-columns: repeat(2, 1fr); }
  .rf-spotlight-grid, .rf-makeup-feature-grid, .rf-catalog-note { grid-template-columns: 1fr; }
  .rf-spotlight-grid, .rf-makeup-feature-grid { gap: 32px; }
  .rf-secondary-category-grid { grid-template-columns: 1fr; }
  .rf-catalog-note { gap: 20px; padding: 34px; }
}
@media (max-width: 560px) {
  .rf-hero-catalog .rf-hero-copy h1 { font-size: 52px; }
  .rf-hero-product-art { min-height: 340px; }
  .rf-category-grid { gap: 11px; }
  .rf-category-card { border-radius: 17px; }
  .rf-category-info { padding: 12px 12px 14px; }
  .rf-category-info strong { font-size: 20px; }
  .rf-category-info small { font-size: 10px; line-height: 1.4; }
  .rf-concern-grid-9 { grid-template-columns: 1fr; }
  .rf-spotlight-art, .rf-makeup-feature-art { border-radius: 22px; }
  .rf-spotlight-copy h2, .rf-makeup-feature-copy h2 { font-size: 46px; }
  .rf-secondary-category-card { grid-template-columns: 120px 1fr; min-height: 210px; padding-right: 18px; }
  .rf-secondary-category-card img { min-height: 210px; }
  .rf-secondary-category-card strong { font-size: 27px; }
  .rf-secondary-category-card-alt { grid-template-columns: 110px 1fr; padding: 20px 18px; }
  .rf-supplement-art { height: 110px; transform: scale(.72); transform-origin: left center; width: 150px; }
  .rf-catalog-note { padding: 28px 22px; }
}
