/* Recuerdo Studio — global + Section 1 styles (Gemini 4 Argon, 2026-10-28) */
:root {
  --rs-cream: #FAF6EF;
  --rs-cream-elevated: #F3ECE0;
  --rs-cream-card: #FFFFFF;
  --rs-espresso: #2E2118;
  --rs-espresso-soft: #5C493B;
  --rs-gold: #B98A2F;
  --rs-gold-hover: #9A7021;
  --rs-gold-tint: rgba(185, 138, 47, 0.12);
  --rs-border: rgba(46, 33, 24, 0.12);
  --rs-border-gold: rgba(185, 138, 47, 0.35);
  --rs-font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --rs-font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --rs-container-max: 1240px;
  --rs-gutter: clamp(1.25rem, 4vw, 3rem);
  --rs-text-pad: clamp(1.5rem, 3vw, 2.75rem);
  --rs-radius-sm: 6px;
  --rs-radius-md: 12px;
  --rs-radius-lg: 18px;
  --rs-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --rs-transition: 0.3s var(--rs-ease);
  --rs-shadow-soft: 0 10px 30px -10px rgba(46, 33, 24, 0.08);
  --rs-shadow-hover: 0 18px 38px -12px rgba(46, 33, 24, 0.14);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background-color: var(--rs-cream); color: var(--rs-espresso); font-family: var(--rs-font-body); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { background-color: var(--rs-cream); color: var(--rs-espresso); overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--rs-transition), background-color var(--rs-transition), border-color var(--rs-transition), transform var(--rs-transition); }
:focus-visible { outline: 2px solid var(--rs-gold); outline-offset: 3px; }
h1, h2, h3, h4, .rs-serif { font-family: var(--rs-font-heading); color: var(--rs-espresso); line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; }
.rs-bilingual-tag { display: inline-block; font-family: var(--rs-font-heading); font-style: italic; color: var(--rs-gold-hover); font-size: 0.95rem; letter-spacing: 0.02em; }
.rs-container { width: 100%; max-width: var(--rs-container-max); margin-inline: auto; padding-inline: var(--rs-gutter); }
.rs-safe-text-panel { background-color: rgba(250, 246, 239, 0.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: var(--rs-text-pad); border-radius: var(--rs-radius-md); border: 1px solid var(--rs-border-gold); box-shadow: var(--rs-shadow-soft); }
.rs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; font-family: var(--rs-font-body); font-weight: 600; font-size: 0.9375rem; line-height: 1.2; padding: 0.85rem 1.5rem; border-radius: var(--rs-radius-sm); border: 1.5px solid transparent; cursor: pointer; text-align: center; white-space: nowrap; transition: all var(--rs-transition); }
.rs-btn-primary { background-color: var(--rs-espresso); color: var(--rs-cream); border-color: var(--rs-espresso); }
.rs-btn-primary:hover, .rs-btn-primary:focus-visible { background-color: var(--rs-gold-hover); border-color: var(--rs-gold-hover); color: #FFFFFF; transform: translateY(-2px); box-shadow: var(--rs-shadow-hover); }
.rs-btn-gold-outline { background-color: transparent; color: var(--rs-espresso); border-color: var(--rs-gold); }
.rs-btn-gold-outline:hover, .rs-btn-gold-outline:focus-visible { background-color: var(--rs-gold); color: #FFFFFF; transform: translateY(-2px); }
.rs-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.65s var(--rs-ease), transform 0.65s var(--rs-ease); will-change: opacity, transform; }
.rs-reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .rs-reveal { opacity: 1; transform: none; transition: none; } .rs-btn { transition: none; } }
.rs-skip-link { position: absolute; top: -100px; left: 1rem; background: var(--rs-espresso); color: var(--rs-cream); padding: 0.75rem 1.25rem; z-index: 9999; border-radius: var(--rs-radius-sm); font-weight: 600; }
.rs-skip-link:focus { top: 1rem; }
/* SECTION 1: announcement bar + header */
.rs-announcement-bar { background-color: var(--rs-espresso); color: var(--rs-cream); font-size: 0.84rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(185, 138, 47, 0.3); }
.rs-announcement-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.rs-announcement-copy { display: flex; align-items: center; gap: 0.6rem; margin-inline: auto; text-align: center; }
.rs-announcement-es { font-family: var(--rs-font-heading); font-style: italic; color: #E5C178; font-weight: 500; }
.rs-announcement-divider { color: var(--rs-gold); opacity: 0.7; }
.rs-announcement-link { color: #E5C178; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; margin-left: 0.35rem; }
.rs-announcement-link:hover { color: #FFFFFF; }
.rs-site-header { position: sticky; top: 0; z-index: 1000; background-color: rgba(250, 246, 239, 0.96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--rs-border); transition: box-shadow var(--rs-transition), padding var(--rs-transition); }
.rs-site-header.is-scrolled { box-shadow: var(--rs-shadow-soft); }
.rs-header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 82px; gap: 1.5rem; }
.rs-brand-logo { display: inline-flex; align-items: center; gap: 0.85rem; text-decoration: none; padding: 0.35rem 0; flex-shrink: 0; }
.rs-logo-mark { width: 40px; height: 40px; flex-shrink: 0; transition: transform var(--rs-transition); }
.rs-brand-logo:hover .rs-logo-mark { transform: scale(1.05); }
.rs-logo-text-group { display: flex; flex-direction: column; }
.rs-logo-wordmark { font-family: var(--rs-font-heading); font-size: clamp(1.35rem, 2.2vw, 1.65rem); font-weight: 700; color: var(--rs-espresso); line-height: 1.05; letter-spacing: -0.015em; }
.rs-logo-subline { font-family: var(--rs-font-body); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--rs-gold-hover); font-weight: 600; margin-top: 0.2rem; }
.rs-main-nav { display: flex; align-items: center; gap: 2rem; }
.rs-nav-list { display: flex; align-items: center; gap: clamp(1.25rem, 2.2vw, 2.15rem); list-style: none; }
.rs-nav-link { position: relative; font-size: 0.95rem; font-weight: 500; color: var(--rs-espresso); padding: 0.4rem 0; }
.rs-nav-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: var(--rs-gold); transform: scaleX(0); transform-origin: right; transition: transform var(--rs-transition); }
.rs-nav-link:hover, .rs-nav-link[aria-current="page"] { color: var(--rs-gold-hover); }
.rs-nav-link:hover::after, .rs-nav-link[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.rs-header-actions { display: flex; align-items: center; gap: 0.85rem; }
.rs-header-cta { padding: 0.7rem 1.25rem; font-size: 0.875rem; }
.rs-btn-icon { width: 15px; height: 15px; stroke: currentColor; stroke-width: 2; fill: none; }
.rs-mobile-toggle { display: none; background: transparent; border: 1px solid var(--rs-border); border-radius: var(--rs-radius-sm); color: var(--rs-espresso); width: 44px; height: 44px; align-items: center; justify-content: center; cursor: pointer; transition: border-color var(--rs-transition), background-color var(--rs-transition); }
.rs-mobile-toggle:hover { border-color: var(--rs-gold); background-color: var(--rs-gold-tint); }
.rs-mobile-drawer { display: none; background-color: var(--rs-cream); border-bottom: 1px solid var(--rs-border-gold); padding: 1.25rem var(--rs-gutter) 1.75rem; box-shadow: var(--rs-shadow-hover); }
.rs-mobile-drawer.is-open { display: block; }
.rs-mobile-nav-list { list-style: none; display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 1.25rem; }
.rs-mobile-nav-link { display: block; padding: 0.75rem 0.5rem; font-size: 1.05rem; font-weight: 600; color: var(--rs-espresso); border-bottom: 1px solid var(--rs-border); }
.rs-mobile-nav-link:hover, .rs-mobile-nav-link[aria-current="page"] { color: var(--rs-gold-hover); padding-left: 0.85rem; }
@media (max-width: 960px) {
  .rs-main-nav, .rs-header-actions .rs-header-cta { display: none; }
  .rs-mobile-toggle { display: inline-flex; }
  .rs-announcement-es { display: block; width: 100%; }
  .rs-announcement-divider { display: none; }
  .rs-announcement-copy { flex-direction: column; gap: 0.15rem; }
}

/* SECTION 2: HERO (Gemini 4 Argon, 2026-10-28) */
.rs-hero { position: relative; padding-block: clamp(3rem, 6vw, 5.5rem); background-color: var(--rs-cream); border-bottom: 1px solid var(--rs-border); overflow: hidden; }
.rs-hero-grid { display: grid; grid-template-columns: 1.12fr 0.88fr; align-items: center; gap: clamp(2.5rem, 5.5vw, 4.75rem); }
.rs-hero-content { background-color: var(--rs-cream-elevated); border: 1px solid var(--rs-border-gold); border-radius: var(--rs-radius-lg); padding: clamp(1.75rem, 3.8vw, 3.25rem); box-shadow: var(--rs-shadow-soft); }
.rs-hero-eyebrow { display: inline-flex; align-items: center; gap: 0.55rem; font-family: var(--rs-font-heading); font-style: italic; font-size: 0.98rem; color: var(--rs-gold-hover); background-color: var(--rs-cream); border: 1px solid var(--rs-border-gold); padding: 0.35rem 0.9rem; border-radius: 999px; margin-bottom: 1.25rem; }
.rs-hero-eyebrow::before { content: '✦'; font-style: normal; font-size: 0.75rem; color: var(--rs-gold); }
.rs-hero-title { font-size: clamp(2.05rem, 3.8vw, 3.15rem); line-height: 1.15; color: var(--rs-espresso); margin-bottom: 1.25rem; letter-spacing: -0.015em; }
.rs-hero-title-accent { color: var(--rs-gold-hover); font-style: italic; font-weight: 600; }
.rs-hero-subhead { font-size: clamp(1rem, 1.35vw, 1.125rem); color: var(--rs-espresso-soft); line-height: 1.7; margin-bottom: 1.85rem; }
.rs-hero-subhead-es { display: block; margin-top: 0.55rem; font-family: var(--rs-font-heading); font-style: italic; font-size: 1.05rem; color: var(--rs-espresso); }
.rs-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem; margin-bottom: 1.5rem; }
.rs-hero-actions .rs-btn { padding: 0.95rem 1.7rem; font-size: 0.96rem; transform: none !important; }
.rs-hero-actions .rs-btn-primary:hover, .rs-hero-actions .rs-btn-primary:focus-visible { background-color: var(--rs-gold-hover); border-color: var(--rs-gold-hover); box-shadow: var(--rs-shadow-soft); }
.rs-hero-actions .rs-btn-gold-outline { background-color: var(--rs-cream); }
.rs-hero-actions .rs-btn-gold-outline:hover, .rs-hero-actions .rs-btn-gold-outline:focus-visible { background-color: var(--rs-gold); color: #FFFFFF; }
.rs-hero-trust-line { font-size: 0.82rem; line-height: 1.55; color: var(--rs-espresso-soft); padding-top: 1.15rem; border-top: 1px solid var(--rs-border); font-weight: 500; }
.rs-hero-visual { display: flex; justify-content: center; align-items: center; padding: 0.75rem; }
@keyframes rsHeroFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.rs-hero-frame { position: relative; width: 100%; max-width: 470px; padding: 14px; background-color: var(--rs-cream-card); border: 2px solid var(--rs-gold); border-radius: 240px 240px 20px 20px; box-shadow: 0 22px 48px -14px rgba(46, 33, 24, 0.16); animation: rsHeroFloat 7s ease-in-out infinite; }
.rs-hero-frame::before { content: ''; position: absolute; inset: 6px; border: 1px solid var(--rs-border-gold); border-radius: 234px 234px 14px 14px; pointer-events: none; z-index: 2; }
.rs-hero-img-wrap { position: relative; overflow: hidden; border-radius: 226px 226px 10px 10px; aspect-ratio: 4 / 5; background-color: var(--rs-cream-elevated); }
.rs-hero-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rs-reveal-delay-1 { transition-delay: 0.12s; }
@media (prefers-reduced-motion: reduce) { .rs-hero-frame { animation: none; } }
@media (max-width: 960px) { .rs-hero-grid { grid-template-columns: 1fr; gap: 2.25rem; } .rs-hero-frame { max-width: 400px; } }
@media (max-width: 540px) { .rs-hero-content { padding: 1.5rem 1.25rem; } .rs-hero-actions { flex-direction: column; align-items: stretch; } .rs-hero-actions .rs-btn { width: 100%; } }

/* SECTION 3: FEATURED TOP-3 (Gemini 4 Argon, 2026-10-28) */
.rs-featured { padding-block: clamp(3.5rem, 7vw, 6rem); background-color: var(--rs-cream); border-bottom: 1px solid var(--rs-border); }
.rs-section-header { max-width: 680px; margin-inline: auto; text-align: center; margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem); }
.rs-section-tag { display: inline-block; font-family: var(--rs-font-heading); font-style: italic; font-size: 0.95rem; color: var(--rs-gold-hover); background-color: var(--rs-cream-elevated); border: 1px solid var(--rs-border-gold); padding: 0.3rem 0.85rem; border-radius: 999px; margin-bottom: 0.85rem; }
.rs-section-title { font-size: clamp(1.75rem, 3vw, 2.45rem); color: var(--rs-espresso); margin-bottom: 0.65rem; }
.rs-section-subline { font-size: 1.02rem; color: var(--rs-espresso-soft); line-height: 1.6; }
.rs-featured-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 2.8vw, 2.25rem); align-items: stretch; }
.rs-product-card { display: flex; flex-direction: column; background-color: var(--rs-cream-card); border: 1px solid var(--rs-border-gold); border-radius: var(--rs-radius-md); padding: 0.9rem; box-shadow: var(--rs-shadow-soft); transition: transform 0.4s var(--rs-ease), box-shadow 0.4s var(--rs-ease), border-color 0.4s var(--rs-ease); }
.rs-product-card:hover, .rs-product-card:focus-within { transform: translateY(-5px); box-shadow: var(--rs-shadow-hover); border-color: var(--rs-gold); }
.rs-card-media { position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: var(--rs-radius-sm); overflow: hidden; background-color: var(--rs-cream-elevated); border: 1px solid var(--rs-border); }
.rs-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.55s var(--rs-ease); }
.rs-product-card:hover .rs-card-img { transform: scale(1.035); }
.rs-card-badge { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 2; display: inline-flex; align-items: center; gap: 0.35rem; background-color: var(--rs-cream); color: var(--rs-espresso); border: 1px solid var(--rs-gold); font-family: var(--rs-font-body); font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.32rem 0.7rem; border-radius: 999px; box-shadow: 0 4px 12px rgba(46, 33, 24, 0.14); }
.rs-card-badge::before { content: '✦'; color: var(--rs-gold-hover); font-size: 0.68rem; }
.rs-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.35rem 0.5rem 0.5rem; }
.rs-card-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.6rem; }
.rs-card-title { font-family: var(--rs-font-heading); font-size: 1.22rem; font-weight: 600; line-height: 1.3; color: var(--rs-espresso); }
.rs-card-price { font-family: var(--rs-font-body); font-size: 1.05rem; font-weight: 700; color: var(--rs-gold-hover); white-space: nowrap; flex-shrink: 0; }
.rs-card-desc { font-size: 0.94rem; color: var(--rs-espresso-soft); line-height: 1.6; margin-bottom: 1.4rem; flex: 1; }
.rs-card-cta { width: 100%; margin-top: auto; padding: 0.8rem 1.25rem; font-size: 0.9rem; transform: none !important; box-shadow: none !important; }
.rs-card-cta:hover, .rs-card-cta:focus-visible { background-color: var(--rs-gold-hover); border-color: var(--rs-gold-hover); color: #FFFFFF; }
.rs-reveal-delay-2 { transition-delay: 0.24s; }
@media (prefers-reduced-motion: reduce) { .rs-product-card, .rs-card-img { transition: none; } .rs-product-card:hover, .rs-product-card:focus-within, .rs-product-card:hover .rs-card-img { transform: none; } }
@media (max-width: 960px) { .rs-featured-grid { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; } }

/* SECTION 4: CATEGORY TILES (Gemini 4 Argon, 2026-10-28) */
.rs-categories { padding-block: clamp(3.5rem, 7vw, 6rem); background-color: var(--rs-cream-elevated); border-bottom: 1px solid var(--rs-border); }
.rs-categories .rs-section-tag { background-color: var(--rs-cream); }
.rs-section-subline-es { display: block; margin-top: 0.35rem; font-family: var(--rs-font-heading); font-style: italic; font-size: 0.98rem; color: var(--rs-gold-hover); }
.rs-category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 2.5vw, 2rem); align-items: stretch; }
.rs-category-tile { display: flex; flex-direction: column; background-color: var(--rs-cream-card); border: 1px solid var(--rs-border-gold); border-radius: var(--rs-radius-md); overflow: hidden; text-decoration: none; box-shadow: var(--rs-shadow-soft); transition: transform 0.4s var(--rs-ease), box-shadow 0.4s var(--rs-ease), border-color 0.4s var(--rs-ease); }
.rs-category-tile:hover, .rs-category-tile:focus-visible { transform: translateY(-5px); box-shadow: var(--rs-shadow-hover); border-color: var(--rs-gold); }
.rs-category-media { position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background-color: var(--rs-cream); border-bottom: 1px solid var(--rs-border-gold); }
.rs-category-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.55s var(--rs-ease); }
.rs-category-tile:hover .rs-category-img, .rs-category-tile:focus-visible .rs-category-img { transform: scale(1.035); }
.rs-category-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.35rem; background-color: var(--rs-cream-card); flex: 1; }
.rs-category-text { display: flex; flex-direction: column; gap: 0.25rem; }
.rs-category-title { font-family: var(--rs-font-heading); font-size: 1.2rem; font-weight: 600; line-height: 1.25; color: var(--rs-espresso); transition: color var(--rs-transition); }
.rs-category-tile:hover .rs-category-title, .rs-category-tile:focus-visible .rs-category-title { color: var(--rs-gold-hover); }
.rs-category-desc { font-size: 0.88rem; color: var(--rs-espresso-soft); line-height: 1.45; }
.rs-category-arrow { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background-color: var(--rs-cream); border: 1px solid var(--rs-border-gold); color: var(--rs-gold-hover); flex-shrink: 0; transition: background-color var(--rs-transition), color var(--rs-transition), border-color var(--rs-transition); }
.rs-category-tile:hover .rs-category-arrow, .rs-category-tile:focus-visible .rs-category-arrow { background-color: var(--rs-gold); border-color: var(--rs-gold); color: #FFFFFF; }
.rs-category-arrow svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 2; fill: none; }
@media (prefers-reduced-motion: reduce) { .rs-category-tile, .rs-category-img, .rs-category-arrow { transition: none; } .rs-category-tile:hover, .rs-category-tile:focus-visible, .rs-category-tile:hover .rs-category-img, .rs-category-tile:focus-visible .rs-category-img { transform: none; } }
@media (max-width: 960px) { .rs-category-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .rs-category-grid { grid-template-columns: 1fr; max-width: 440px; margin-inline: auto; } }


/* ==========================================================================
   6. SECTION 5: HOW PERSONALIZATION WORKS (3 STEPS)
   ========================================================================== */
.rs-steps {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

/* 3-Step Ordered Grid & Desktop Connecting Line */
.rs-steps-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  list-style: none;
  counter-reset: rs-step-counter;
  margin-bottom: clamp(2.25rem, 4vw, 3.25rem);
}

/* Horizontal Gold Connecting Line (Desktop Only) */
.rs-steps-grid::before {
  content: '';
  position: absolute;
  top: 2.35rem; /* Aligns horizontally through the center of the gold markers */
  left: calc(16.666% + 1rem);
  right: calc(16.666% + 1rem);
  height: 2px;
  background: linear-gradient(
    90deg,
    rgba(185, 138, 47, 0.25) 0%,
    var(--rs-gold) 50%,
    rgba(185, 138, 47, 0.25) 100%
  );
  z-index: 0;
  pointer-events: none;
}

/* Individual Step Card */
.rs-step-item {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Numbered Gold Medallion Marker */
.rs-step-marker {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: var(--rs-cream);
  border: 2px solid var(--rs-gold);
  box-shadow: 0 0 0 6px var(--rs-cream), var(--rs-shadow-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--rs-font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--rs-espresso);
  margin-bottom: 1.5rem;
  transition: background-color var(--rs-transition), color var(--rs-transition), transform var(--rs-transition);
}

/* Dedicated Step Text Panel */
.rs-step-card {
  width: 100%;
  flex: 1;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: clamp(1.5rem, 2.8vw, 2.25rem) clamp(1.25rem, 2.2vw, 1.85rem);
  box-shadow: var(--rs-shadow-soft);
  transition: transform 0.4s var(--rs-ease), box-shadow 0.4s var(--rs-ease), border-color 0.4s var(--rs-ease);
}

.rs-step-item:hover .rs-step-card,
.rs-step-item:focus-within .rs-step-card {
  transform: translateY(-4px);
  box-shadow: var(--rs-shadow-hover);
  border-color: var(--rs-gold);
}

.rs-step-item:hover .rs-step-marker,
.rs-step-item:focus-within .rs-step-marker {
  background-color: var(--rs-gold);
  color: #FFFFFF;
}

.rs-step-title {
  font-family: var(--rs-font-heading);
  font-size: 1.28rem;
  font-weight: 600;
  color: var(--rs-espresso);
  margin-bottom: 0.65rem;
  line-height: 1.3;
}

.rs-step-desc {
  font-size: 0.95rem;
  color: var(--rs-espresso-soft);
  line-height: 1.65;
}

/* Bottom Calm Action Bar */
.rs-steps-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.85rem;
}

.rs-steps-cta {
  padding: 0.9rem 1.75rem;
  font-size: 0.94rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-steps-cta:hover,
.rs-steps-cta:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-steps-note {
  font-size: 0.82rem;
  color: var(--rs-espresso-soft);
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-step-card,
  .rs-step-marker {
    transition: none;
  }
  .rs-step-item:hover .rs-step-card,
  .rs-step-item:focus-within .rs-step-card {
    transform: none;
  }
}

/* Responsive Breakpoints (Stack on Mobile/Tablet & Hide Horizontal Line) */
@media (max-width: 960px) {
  .rs-steps-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
    margin-inline: auto;
    gap: 2rem;
  }

  .rs-steps-grid::before {
    display: none;
  }

  .rs-step-marker {
    margin-bottom: 1rem;
  }
}


/* ==========================================================================
   7. SECTION 6: MEMORIAL SPOTLIGHT
   ========================================================================== */
.rs-spotlight {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-spotlight-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 4.25rem); /* Strict column separation so text never touches art */
}

/* Left Column: Framed Artwork Container */
.rs-spotlight-media {
  position: relative;
  background-color: var(--rs-cream-card);
  border: 1.5px solid var(--rs-gold);
  border-radius: var(--rs-radius-lg);
  padding: 12px;
  box-shadow: var(--rs-shadow-soft);
}

.rs-spotlight-media::before {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1px solid var(--rs-border-gold);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
  z-index: 2;
}

.rs-spotlight-img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--rs-radius-lg) - 8px);
  aspect-ratio: 4 / 4.3;
  background-color: var(--rs-cream);
}

.rs-spotlight-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.65s var(--rs-ease);
}

.rs-spotlight-media:hover .rs-spotlight-img {
  transform: scale(1.03);
}

/* Right Column: Dedicated Text Panel (Never Overlays Image) */
.rs-spotlight-panel {
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(1.75rem, 3.8vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

.rs-spotlight-tag {
  display: inline-block;
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--rs-gold-hover);
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 1.1rem;
}

.rs-spotlight-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: 1.18;
  color: var(--rs-espresso);
  margin-bottom: 1.15rem;
}

.rs-spotlight-copy {
  font-size: 1rem;
  color: var(--rs-espresso-soft);
  line-height: 1.7;
  margin-bottom: 1rem;
}

.rs-spotlight-es {
  display: block;
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 1.02rem;
  color: var(--rs-espresso);
  margin-top: 0.5rem;
  margin-bottom: 1.75rem;
}

/* Calm Stationary CTAs */
.rs-spotlight-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem;
}

.rs-spotlight-actions .rs-btn {
  padding: 0.9rem 1.55rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-spotlight-actions .rs-btn-primary:hover,
.rs-spotlight-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-spotlight-actions .rs-btn-gold-outline {
  background-color: var(--rs-cream-card);
}

.rs-spotlight-actions .rs-btn-gold-outline:hover,
.rs-spotlight-actions .rs-btn-gold-outline:focus-visible {
  background-color: var(--rs-gold);
  border-color: var(--rs-gold);
  color: #FFFFFF;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-spotlight-img {
    transition: none;
  }
  .rs-spotlight-media:hover .rs-spotlight-img {
    transform: none;
  }
}

/* Responsive Breakpoints (Stack on Mobile/Tablet) */
@media (max-width: 960px) {
  .rs-spotlight-grid {
    grid-template-columns: 1fr;
    max-width: 580px;
    margin-inline: auto;
  }
}

@media (max-width: 540px) {
  .rs-spotlight-panel {
    padding: 1.5rem 1.25rem;
  }

  .rs-spotlight-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .rs-spotlight-actions .rs-btn {
    width: 100%;
  }
}


/* ==========================================================================
   8. SECTION 7: ABOUT TEASER
   ========================================================================== */
.rs-about-teaser {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-about-teaser-box {
  position: relative;
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

/* Subtle Inner Gold Hairline Frame */
.rs-about-teaser-box::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(185, 138, 47, 0.22);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
}

.rs-about-teaser .rs-section-tag {
  background-color: var(--rs-cream);
  margin-bottom: 1rem;
}

.rs-about-teaser-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.8rem, 3.1vw, 2.45rem);
  line-height: 1.2;
  color: var(--rs-espresso);
  margin-bottom: 1.15rem;
}

.rs-about-teaser-copy {
  font-size: 1.02rem;
  color: var(--rs-espresso-soft);
  line-height: 1.75;
  margin-bottom: 1.35rem;
}

.rs-about-signoff {
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 1.15rem;
  color: var(--rs-gold-hover);
  margin-bottom: 1.85rem;
}

/* Calm Stationary CTA */
.rs-about-cta {
  padding: 0.85rem 1.85rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-about-cta:hover,
.rs-about-cta:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}


/* ==========================================================================
   9. SECTION 8: VALUES STRIP
   ========================================================================== */
.rs-values {
  padding-block: clamp(2.75rem, 5.5vw, 4.5rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

/* Visually Hidden Heading for Semantic Outline & Screen Readers */
.rs-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 4-Column Desktop Grid (2x2 Tablet, 1-Col Mobile) */
.rs-values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  list-style: none;
  align-items: stretch;
}

.rs-value-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: clamp(1.5rem, 2.5vw, 2rem) 1.35rem;
  box-shadow: var(--rs-shadow-soft);
  transition: border-color var(--rs-transition), transform 0.35s var(--rs-ease);
}

.rs-value-item:hover {
  border-color: var(--rs-gold);
  transform: translateY(-3px);
}

/* Dedicated Icon Zone (Separated From Text) */
.rs-value-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  flex-shrink: 0;
}

.rs-value-icon {
  width: 22px;
  height: 22px;
  stroke: var(--rs-gold);
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

/* Dedicated Text Zone */
.rs-value-title {
  font-family: var(--rs-font-heading);
  font-size: 1.12rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--rs-espresso);
  margin-bottom: 0.4rem;
}

.rs-value-desc {
  font-size: 0.9rem;
  color: var(--rs-espresso-soft);
  line-height: 1.55;
}

.rs-value-desc-es {
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 0.98rem;
  color: var(--rs-gold-hover);
}

/* 4th Card Stagger Delay */
.rs-reveal-delay-3 {
  transition-delay: 0.36s;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-value-item {
    transition: none;
  }
  .rs-value-item:hover {
    transform: none;
  }
}

/* Responsive Breakpoints: 2x2 Tablet, Stacked Mobile */
@media (max-width: 960px) {
  .rs-values-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 540px) {
  .rs-values-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-inline: auto;
  }
}


/* ==========================================================================
   10. SECTION 9: SITE FOOTER
   ========================================================================== */
.rs-footer {
  background-color: var(--rs-espresso);
  color: var(--rs-cream);
  border-top: 2px solid var(--rs-gold);
  padding-top: clamp(3.5rem, 6.5vw, 5.25rem);
  font-size: 0.94rem;
}

/* Top Brand Area */
.rs-footer-top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
  padding-bottom: clamp(2.25rem, 4vw, 3.25rem);
  border-bottom: 1px solid rgba(185, 138, 47, 0.28);
  margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
}

.rs-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  text-decoration: none;
  color: var(--rs-cream);
}

.rs-footer-logo-mark {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  transition: transform var(--rs-transition);
}

.rs-footer-brand:hover .rs-footer-logo-mark {
  transform: scale(1.04);
}

.rs-footer-wordmark {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.45rem, 2.3vw, 1.75rem);
  font-weight: 700;
  color: var(--rs-cream);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.rs-footer-tagline {
  color: rgba(250, 246, 239, 0.86);
  max-width: 540px;
  line-height: 1.65;
  font-size: 0.95rem;
}

.rs-footer-tagline-es {
  font-family: var(--rs-font-heading);
  font-style: italic;
  color: var(--rs-gold);
  margin-left: 0.35rem;
}

/* Main Footer Columns + Newsletter Grid */
.rs-footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.35fr;
  gap: clamp(1.75rem, 3.5vw, 3rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
  border-bottom: 1px solid rgba(185, 138, 47, 0.28);
}

.rs-footer-col-title {
  font-family: var(--rs-font-heading);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--rs-cream);
  margin-bottom: 1.1rem;
  letter-spacing: 0.01em;
}

.rs-footer-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.rs-footer-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: rgba(250, 246, 239, 0.84);
  text-decoration: none;
  transition: color var(--rs-transition);
}

.rs-footer-link:hover,
.rs-footer-link:focus-visible {
  color: var(--rs-gold);
}

/* Plain Non-Link Policy Line in Help Column */
.rs-footer-policy-note {
  margin-top: 0.55rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(185, 138, 47, 0.22);
  color: rgba(250, 246, 239, 0.78);
  font-size: 0.85rem;
  line-height: 1.5;
}

/* Newsletter Block */
.rs-footer-newsletter {
  background-color: rgba(250, 246, 239, 0.04);
  border: 1px solid rgba(185, 138, 47, 0.35);
  border-radius: var(--rs-radius-md);
  padding: 1.5rem;
}

.rs-footer-newsletter-copy {
  color: rgba(250, 246, 239, 0.84);
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 1.1rem;
}

.rs-newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.rs-newsletter-input {
  width: 100%;
  padding: 0.8rem 0.95rem;
  border-radius: var(--rs-radius-sm);
  border: 1px solid rgba(185, 138, 47, 0.45);
  background-color: var(--rs-cream);
  color: var(--rs-espresso);
  font-family: var(--rs-font-body);
  font-size: 0.92rem;
  line-height: 1.2;
}

.rs-newsletter-input::placeholder {
  color: var(--rs-espresso-soft);
  opacity: 0.8;
}

.rs-newsletter-input:focus-visible {
  outline: 2px solid var(--rs-gold);
  outline-offset: 2px;
}

/* Calm Subscribe Button */
.rs-newsletter-btn {
  width: 100%;
  background-color: var(--rs-gold);
  color: var(--rs-espresso);
  border: 1.5px solid var(--rs-gold);
  font-weight: 700;
  padding: 0.82rem 1.25rem;
  font-size: 0.92rem;
  border-radius: var(--rs-radius-sm);
  cursor: pointer;
  transform: none !important;
  box-shadow: none !important;
  transition: background-color var(--rs-transition), border-color var(--rs-transition), color var(--rs-transition);
}

.rs-newsletter-btn:hover,
.rs-newsletter-btn:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: var(--rs-cream);
}

/* Bottom Bar */
.rs-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding-block: 1.65rem;
  font-size: 0.85rem;
  color: rgba(250, 246, 239, 0.78);
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-footer-logo-mark,
  .rs-footer-link,
  .rs-newsletter-btn {
    transition: none;
  }
  .rs-footer-brand:hover .rs-footer-logo-mark {
    transform: none;
  }
}

/* Responsive Breakpoints */
@media (max-width: 960px) {
  .rs-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

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

  .rs-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* ==========================================================================
   11. PAGE 2 (SHOP) — SECTION 2: SHOP INTRO HEADER & QUICK-NAV CHIPS
   ========================================================================== */
.rs-shop-hero {
  padding-block: clamp(3rem, 6vw, 4.75rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-shop-header {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.rs-shop-hero .rs-section-tag {
  background-color: var(--rs-cream);
}

.rs-shop-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(2rem, 3.6vw, 2.9rem);
  font-weight: 600;
  line-height: 1.16;
  color: var(--rs-espresso);
  margin-bottom: 0.9rem;
  letter-spacing: -0.015em;
}

/* Category Quick-Nav Bar */
.rs-shop-quicknav {
  max-width: 920px;
  margin-inline: auto;
}

.rs-quicknav-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Calm Stationary Category Chips (No Transform / Bounce) */
.rs-quicknav-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.25rem;
  background-color: var(--rs-cream);
  color: var(--rs-espresso);
  border: 1.5px solid var(--rs-border-gold);
  border-radius: 999px;
  font-family: var(--rs-font-body);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transform: none !important;
  box-shadow: none !important;
  transition: background-color var(--rs-transition), color var(--rs-transition), border-color var(--rs-transition);
}

.rs-quicknav-chip:hover,
.rs-quicknav-chip:focus-visible,
.rs-quicknav-chip.is-active {
  background-color: var(--rs-espresso);
  border-color: var(--rs-espresso);
  color: var(--rs-cream);
}

/* Factual Policy & Checkout Note */
.rs-shop-policy-line {
  margin-top: 1.4rem;
  text-align: center;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--rs-espresso-soft);
  font-weight: 500;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-quicknav-chip {
    transition: none;
  }
}

/* Responsive Breakpoints */
@media (max-width: 580px) {
  .rs-quicknav-list {
    gap: 0.5rem;
  }

  .rs-quicknav-chip {
    font-size: 0.84rem;
    padding: 0.58rem 1rem;
  }
}/* ==========================================================================
   12. PAGE 2 (SHOP) — SECTION 3: FILTER BAR & 39-PRODUCT CATALOG GRID
   ========================================================================== */
.rs-shop-catalog {
  padding-block: clamp(3rem, 6vw, 5.5rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

/* Sticky/Calm Filter Toolbar */
.rs-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: 1rem 1.25rem;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  box-shadow: var(--rs-shadow-soft);
}

.rs-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.62rem 1.15rem;
  background-color: var(--rs-cream);
  color: var(--rs-espresso);
  border: 1.5px solid var(--rs-border-gold);
  border-radius: 999px;
  font-family: var(--rs-font-body);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  transform: none !important;
  box-shadow: none !important;
  transition: background-color var(--rs-transition), color var(--rs-transition), border-color var(--rs-transition);
}

.rs-filter-btn:hover,
.rs-filter-btn:focus-visible {
  border-color: var(--rs-gold);
  background-color: var(--rs-gold-tint);
}

.rs-filter-btn.is-active,
.rs-filter-btn[aria-pressed="true"] {
  background-color: var(--rs-espresso);
  border-color: var(--rs-espresso);
  color: var(--rs-cream);
}

.rs-filter-count {
  font-size: 0.78rem;
  opacity: 0.85;
  font-weight: 500;
}

/* Category Section Group */
.rs-catalog-group {
  scroll-margin-top: 110px; /* Clears sticky site header on anchor jump */
  margin-bottom: clamp(3.25rem, 6vw, 5rem);
}

.rs-catalog-group:last-of-type {
  margin-bottom: 0;
}

.rs-catalog-group.is-hidden {
  display: none;
}

.rs-catalog-group-header {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--rs-border-gold);
}

.rs-catalog-group-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  color: var(--rs-espresso);
  margin-bottom: 0.35rem;
}

.rs-catalog-group-subline {
  font-size: 0.96rem;
  color: var(--rs-espresso-soft);
}

/* 3-Column Responsive Product Grid */
.rs-catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
}

/* Tags Row Below Image (Never Overlays Art) */
.rs-card-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}

.rs-card-cat-tag {
  display: inline-block;
  font-family: var(--rs-font-body);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rs-espresso-soft);
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border);
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
}

.rs-card-pers-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-family: var(--rs-font-body);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rs-espresso);
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-gold);
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
}

.rs-card-pers-tag::before {
  content: '✦';
  color: var(--rs-gold-hover);
  font-size: 0.65rem;
}

/* Ensure Meta & CTA Align Cleanly Across Variable Title Lengths */
.rs-catalog-grid .rs-card-meta {
  flex: 1;
  align-items: flex-start;
  margin-bottom: 1.25rem;
}

.rs-catalog-grid .rs-card-title {
  font-size: 1.12rem;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-filter-btn {
    transition: none;
  }
}

/* Responsive Breakpoints (2 Columns Tablet, 1 Column Mobile) */
@media (max-width: 960px) {
  .rs-catalog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 580px) {
  .rs-catalog-grid {
    grid-template-columns: 1fr;
    max-width: 440px;
    margin-inline: auto;
  }

  .rs-filter-bar {
    padding: 0.85rem;
    gap: 0.45rem;
  }

  .rs-filter-btn {
    font-size: 0.82rem;
    padding: 0.55rem 0.95rem;
  }
}/* ==========================================================================
   13. PAGE 2 (SHOP) — SECTION 4: CLOSING CTA BAND
   ========================================================================== */
.rs-shop-cta-band {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-cta-band-box {
  position: relative;
  max-width: 740px;
  margin-inline: auto;
  text-align: center;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

/* Subtle Inner Gold Hairline Frame */
.rs-cta-band-box::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(185, 138, 47, 0.22);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
}

.rs-cta-band-box .rs-section-tag {
  background-color: var(--rs-cream-elevated);
  margin-bottom: 1rem;
}

.rs-cta-band-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: 1.2;
  color: var(--rs-espresso);
  margin-bottom: 1.1rem;
}

.rs-cta-band-copy {
  font-size: 1.02rem;
  color: var(--rs-espresso-soft);
  line-height: 1.75;
  margin-bottom: 1.75rem;
}

.rs-cta-band-es {
  display: block;
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 1.02rem;
  color: var(--rs-gold-hover);
  margin-top: 0.5rem;
}

/* Calm Stationary Action Buttons */
.rs-cta-band-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
}

.rs-cta-band-actions .rs-btn {
  padding: 0.9rem 1.65rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-cta-band-actions .rs-btn-primary:hover,
.rs-cta-band-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-cta-band-actions .rs-btn-gold-outline {
  background-color: var(--rs-cream-elevated);
}

.rs-cta-band-actions .rs-btn-gold-outline:hover,
.rs-cta-band-actions .rs-btn-gold-outline:focus-visible {
  background-color: var(--rs-gold);
  border-color: var(--rs-gold);
  color: #FFFFFF;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .rs-cta-band-actions .rs-btn {
    transition: none;
  }
}

/* Responsive Breakpoints */
@media (max-width: 540px) {
  .rs-cta-band-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .rs-cta-band-actions .rs-btn {
    width: 100%;
  }
}/* ==========================================================================
   14. PAGE 2 (SHOP) — SECTION 5: FILTER LOGIC & STATES
   ========================================================================== */

/* Forces hidden cards and groups to collapse entirely out of the layout */
.rs-product-card.is-hidden,
.rs-catalog-group.is-hidden {
  display: none !important;
}

/* Ensure the live region status text remains accessible but invisible visually */
#rs-filter-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}/* ==========================================================================
   15. PAGE 3 (PRODUCT TEMPLATE) — HERO LAYOUT
   ========================================================================== */
.rs-product-hero {
  padding-block: clamp(3rem, 6vw, 5rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-product-hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: clamp(2.5rem, 5vw, 4.5rem);
}

/* Left: Main Artwork (Safe Zone) */
.rs-product-media {
  background-color: var(--rs-cream-card);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: 0.75rem;
  box-shadow: var(--rs-shadow-soft);
}

.rs-product-img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--rs-radius-lg) - 0.5rem);
  aspect-ratio: 1 / 1;
  background-color: var(--rs-cream-elevated);
}

.rs-product-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.25s var(--rs-ease), transform 0.65s var(--rs-ease);
}

/* Right: Dedicated Text Panel */
.rs-product-content {
  display: flex;
  flex-direction: column;
}

.rs-product-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 1.25rem;
}

.rs-breadcrumb-link {
  color: var(--rs-espresso-soft);
  text-decoration: none;
  transition: color var(--rs-transition);
}

.rs-breadcrumb-link:hover,
.rs-breadcrumb-link:focus-visible {
  color: var(--rs-gold-hover);
}

.rs-breadcrumb-sep {
  color: var(--rs-gold);
}

.rs-product-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(2.1rem, 3.8vw, 3.15rem);
  line-height: 1.12;
  color: var(--rs-espresso);
  margin-bottom: 0.85rem;
  letter-spacing: -0.015em;
}

.rs-product-price {
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--rs-gold-hover);
  margin-bottom: 1.5rem;
}

.rs-product-explainer {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--rs-espresso-soft);
  margin-bottom: 2rem;
}

/* Calm CTA */
.rs-product-actions {
  margin-bottom: 1.5rem;
}

.rs-product-cta {
  width: 100%;
  padding: 1.1rem 2rem;
  font-size: 1.05rem;
  transform: none !important; /* Stationary CTA */
  box-shadow: none !important;
}

.rs-product-cta:hover,
.rs-product-cta:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-product-policy-line {
  font-size: 0.85rem;
  color: var(--rs-espresso-soft);
  padding-top: 1.25rem;
  border-top: 1px solid var(--rs-border);
}

/* ==========================================================================
   16. PAGE 3 (PRODUCT TEMPLATE) — DETAILS & PHOTOS STRIP
   ========================================================================== */
.rs-product-details-section {
  padding-block: clamp(3rem, 6vw, 5rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

/* 3-Column Photos Strip */
.rs-photos-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.5vw, 1.75rem);
  margin-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

.rs-photo-item {
  position: relative;
  background-color: var(--rs-cream-card);
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius-md);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  cursor: pointer;
  transition: border-color var(--rs-transition), transform var(--rs-transition);
}

.rs-photo-item:hover,
.rs-photo-item:focus-visible {
  border-color: var(--rs-gold);
  transform: translateY(-2px);
}

.rs-photo-item.is-active {
  border: 2px solid var(--rs-gold);
}

.rs-strip-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 2-Column Details Layout */
.rs-details-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(2rem, 4.5vw, 3.75rem);
  align-items: start;
}

.rs-details-text, 
.rs-included-block {
  background-color: var(--rs-cream-card);
  padding: clamp(1.75rem, 3.5vw, 2.75rem);
  border-radius: var(--rs-radius-lg);
  border: 1px solid var(--rs-border-gold);
  box-shadow: var(--rs-shadow-soft);
}

.rs-details-title,
.rs-included-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.5rem, 2.5vw, 1.85rem);
  color: var(--rs-espresso);
  margin-bottom: 1.15rem;
}

.rs-details-copy {
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--rs-espresso-soft);
}

.rs-included-title {
  font-size: 1.35rem;
  border-bottom: 1px solid rgba(185, 138, 47, 0.25);
  padding-bottom: 0.85rem;
}

.rs-included-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rs-included-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.98rem;
  color: var(--rs-espresso-soft);
  line-height: 1.6;
}

.rs-included-bullet {
  color: var(--rs-gold);
  font-size: 0.85rem;
  margin-top: 0.2rem;
}

/* ==========================================================================
   17. PAGE 3 (PRODUCT TEMPLATE) — RELATED PRODUCTS
   ========================================================================== */
.rs-related-products {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-related-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.rs-related-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.8rem, 3.1vw, 2.45rem);
  color: var(--rs-espresso);
  margin-top: 0.65rem;
}

.rs-related-link {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--rs-gold-hover);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.rs-related-link:hover, 
.rs-related-link:focus-visible {
  color: var(--rs-espresso);
}

/* Responsive Breakpoints */
@media (max-width: 960px) {
  .rs-product-hero-grid,
  .rs-details-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .rs-photos-strip {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 641px) and (max-width: 820px) {
  .rs-photos-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  .rs-photo-item:nth-child(3) {
    display: none; /* Balances the layout tightly on mid-sized tablets */
  }
}

/* Reduced Motion Overrides */
@media (prefers-reduced-motion: reduce) {
  .rs-product-img,
  .rs-photo-item {
    transition: none;
  }
  .rs-photo-item:hover,
  .rs-photo-item:focus-visible {
    transform: none;
  }
}
/* ==========================================================================
   18. PAGE 4 (MEMORIAL) — INTRO HEADER
   ========================================================================== */
.rs-memorial-hero {
  padding-block: clamp(3rem, 6vw, 5rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
  text-align: center;
}

.rs-memorial-header {
  max-width: 780px;
  margin-inline: auto;
}

.rs-memorial-breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 1.25rem;
}

.rs-memorial-breadcrumb .rs-breadcrumb-link {
  color: var(--rs-espresso-soft);
  text-decoration: none;
  transition: color var(--rs-transition);
}

.rs-memorial-breadcrumb .rs-breadcrumb-link:hover,
.rs-memorial-breadcrumb .rs-breadcrumb-link:focus-visible {
  color: var(--rs-gold-hover);
}

.rs-memorial-breadcrumb .rs-breadcrumb-sep {
  color: var(--rs-gold);
}

.rs-memorial-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--rs-espresso);
  margin-bottom: 1.15rem;
  letter-spacing: -0.015em;
}

.rs-memorial-intro {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--rs-espresso-soft);
  margin-bottom: 1.25rem;
}

.rs-memorial-links {
  font-size: 0.95rem;
  color: var(--rs-espresso-soft);
  margin-bottom: 2rem;
  line-height: 1.6;
}

.rs-memorial-links a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-memorial-links a:hover,
.rs-memorial-links a:focus-visible {
  color: var(--rs-espresso);
}

.rs-memorial-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
}

.rs-memorial-actions .rs-btn {
  padding: 0.95rem 1.7rem;
  font-size: 0.96rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-memorial-actions .rs-btn-primary:hover,
.rs-memorial-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-memorial-actions .rs-btn-gold-outline {
  background-color: var(--rs-cream);
}

.rs-memorial-actions .rs-btn-gold-outline:hover,
.rs-memorial-actions .rs-btn-gold-outline:focus-visible {
  background-color: var(--rs-gold);
  border-color: var(--rs-gold);
  color: #FFFFFF;
}

/* ==========================================================================
   19. PAGE 4 (MEMORIAL) — PRODUCT GRID
   ========================================================================== */
.rs-memorial-catalog {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

/* Note: The inner .rs-catalog-grid and .rs-product-card structures 
   fully inherit from the global Page 2 definitions. */

/* ==========================================================================
   20. PAGE 4 (MEMORIAL) — COMFORT & VALUE
   ========================================================================== */
.rs-memorial-comfort {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-comfort-header {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
}

.rs-comfort-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.75rem, 3vw, 2.45rem);
  color: var(--rs-espresso);
  margin-bottom: 0.65rem;
}

.rs-comfort-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
}

.rs-comfort-card {
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: clamp(1.75rem, 3vw, 2.25rem);
  text-align: center;
  box-shadow: var(--rs-shadow-soft);
  transition: transform 0.4s var(--rs-ease), border-color 0.4s var(--rs-ease);
}

.rs-comfort-card:hover {
  transform: translateY(-4px);
  border-color: var(--rs-gold);
}

.rs-comfort-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
  margin-bottom: 1.25rem;
}

.rs-comfort-icon {
  width: 22px;
  height: 22px;
  stroke: var(--rs-gold);
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.rs-comfort-card-title {
  font-family: var(--rs-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--rs-espresso);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.rs-comfort-card-desc {
  font-size: 0.95rem;
  color: var(--rs-espresso-soft);
  line-height: 1.65;
}

.rs-comfort-card-desc a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-comfort-card-desc a:hover,
.rs-comfort-card-desc a:focus-visible {
  color: var(--rs-espresso);
}

/* ==========================================================================
   21. PAGE 4 (MEMORIAL) — CLOSING CTA BAND
   ========================================================================== */
.rs-memorial-cta-band {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-cta-band-box {
  position: relative;
  max-width: 740px;
  margin-inline: auto;
  text-align: center;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

.rs-cta-band-box::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(185, 138, 47, 0.22);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
}

.rs-cta-band-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: 1.2;
  color: var(--rs-espresso);
  margin-bottom: 1.1rem;
}

.rs-cta-band-copy {
  font-size: 1.02rem;
  color: var(--rs-espresso-soft);
  line-height: 1.75;
  margin-bottom: 1.75rem;
}

.rs-cta-band-copy a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-cta-band-copy a:hover,
.rs-cta-band-copy a:focus-visible {
  color: var(--rs-espresso);
}

.rs-cta-band-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
}

.rs-cta-band-actions .rs-btn {
  padding: 0.9rem 1.65rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-cta-band-actions .rs-btn-primary:hover,
.rs-cta-band-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

/* ==========================================================================
   PAGE 4 REDUCED MOTION OVERRIDES & RESPONSIVE BREAKPOINTS
   ========================================================================== */
@media (max-width: 960px) {
  .rs-comfort-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
    margin-inline: auto;
  }
}

@media (max-width: 540px) {
  .rs-memorial-actions,
  .rs-cta-band-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .rs-memorial-actions .rs-btn,
  .rs-cta-band-actions .rs-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rs-memorial-breadcrumb .rs-breadcrumb-link,
  .rs-memorial-links a,
  .rs-memorial-actions .rs-btn,
  .rs-comfort-card,
  .rs-comfort-card-desc a,
  .rs-cta-band-copy a,
  .rs-cta-band-actions .rs-btn {
    transition: none !important;
  }
  .rs-comfort-card:hover {
    transform: none !important;
  }
}
/* ==========================================================================
   22. PAGE 5 (ABOUT) — STORY SECTION
   ========================================================================== */
.rs-about-story {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-story-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 4.25rem);
}

/* Left Column: Framed Artwork Container */
.rs-story-media {
  position: relative;
  background-color: var(--rs-cream-card);
  border: 1.5px solid var(--rs-gold);
  border-radius: var(--rs-radius-lg);
  padding: 12px;
  box-shadow: var(--rs-shadow-soft);
}

.rs-story-media::before {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1px solid var(--rs-border-gold);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
  z-index: 2;
}

.rs-story-img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--rs-radius-lg) - 8px);
  aspect-ratio: 4 / 4.5;
  background-color: var(--rs-cream-elevated);
}

.rs-story-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.65s var(--rs-ease);
}

.rs-story-media:hover .rs-story-img {
  transform: scale(1.03);
}

/* Right Column: Dedicated Text Panel */
.rs-story-content {
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(1.75rem, 3.8vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

.rs-story-tag {
  display: inline-block;
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--rs-gold-hover);
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 1.1rem;
}

.rs-story-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: 1.18;
  color: var(--rs-espresso);
  margin-bottom: 1.15rem;
}

.rs-story-welcome {
  display: block;
  font-family: var(--rs-font-heading);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--rs-gold-hover);
  margin-bottom: 1rem;
}

.rs-story-copy {
  font-size: 1rem;
  color: var(--rs-espresso-soft);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.rs-story-copy a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-story-copy a:hover,
.rs-story-copy a:focus-visible {
  color: var(--rs-espresso);
}

/* Calm Stationary CTAs */
.rs-story-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem;
  margin-top: 1.75rem;
}

.rs-story-actions .rs-btn {
  padding: 0.9rem 1.55rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-story-actions .rs-btn-primary:hover,
.rs-story-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-story-actions .rs-btn-gold-outline {
  background-color: var(--rs-cream-card);
}

.rs-story-actions .rs-btn-gold-outline:hover,
.rs-story-actions .rs-btn-gold-outline:focus-visible {
  background-color: var(--rs-gold);
  border-color: var(--rs-gold);
  color: #FFFFFF;
}

/* ==========================================================================
   23. PAGE 5 (ABOUT) — VALUES SECTION
   ========================================================================== */
.rs-about-values {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-values-header {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.rs-values-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.75rem, 3vw, 2.45rem);
  color: var(--rs-espresso);
  margin-bottom: 0.85rem;
}

.rs-values-subline {
  font-size: 1.05rem;
  color: var(--rs-espresso-soft);
  line-height: 1.6;
}

.rs-values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
}

.rs-value-card {
  display: flex;
  flex-direction: column;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: clamp(1.75rem, 3.5vw, 2.5rem);
  box-shadow: var(--rs-shadow-soft);
  transition: transform 0.4s var(--rs-ease), border-color 0.4s var(--rs-ease);
}

.rs-value-card:hover {
  transform: translateY(-4px);
  border-color: var(--rs-gold);
}

.rs-value-icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
}

.rs-value-icon {
  width: 24px;
  height: 24px;
  stroke: var(--rs-gold);
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.rs-value-card-title {
  font-family: var(--rs-font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--rs-espresso);
  margin-bottom: 0.85rem;
  line-height: 1.2;
}

.rs-value-card-desc {
  font-size: 0.96rem;
  color: var(--rs-espresso-soft);
  line-height: 1.65;
}

.rs-value-card-desc a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-value-card-desc a:hover,
.rs-value-card-desc a:focus-visible {
  color: var(--rs-espresso);
}

/* ==========================================================================
   24. PAGE 5 (ABOUT) — HOW IT WORKS RECAP
   ========================================================================== */
.rs-about-how {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-how-header {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.rs-how-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  color: var(--rs-espresso);
  margin-bottom: 0.85rem;
}

.rs-how-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 2.5vw, 2rem);
  align-items: start;
}

.rs-how-step {
  display: flex;
  flex-direction: column;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  padding: clamp(1.5rem, 2.5vw, 2rem);
  box-shadow: var(--rs-shadow-soft);
  height: 100%;
}

.rs-how-step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--rs-espresso);
  color: var(--rs-cream);
  font-family: var(--rs-font-heading);
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 1.25rem;
}

.rs-how-step-title {
  font-family: var(--rs-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--rs-espresso);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.rs-how-step-desc {
  font-size: 0.95rem;
  color: var(--rs-espresso-soft);
  line-height: 1.65;
}

.rs-how-step-desc a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-how-step-desc a:hover,
.rs-how-step-desc a:focus-visible {
  color: var(--rs-espresso);
}

/* ==========================================================================
   25. PAGE 5 (ABOUT) — CLOSING CTA BAND
   ========================================================================== */
.rs-about-cta-band {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-cta-band-box {
  position: relative;
  max-width: 740px;
  margin-inline: auto;
  text-align: center;
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.25rem);
  box-shadow: var(--rs-shadow-soft);
}

.rs-cta-band-box::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(185, 138, 47, 0.22);
  border-radius: calc(var(--rs-radius-lg) - 5px);
  pointer-events: none;
}

.rs-cta-band-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: 1.2;
  color: var(--rs-espresso);
  margin-bottom: 1.1rem;
}

.rs-cta-band-copy {
  font-size: 1.02rem;
  color: var(--rs-espresso-soft);
  line-height: 1.75;
  margin-bottom: 1.75rem;
}

.rs-cta-band-copy a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-cta-band-copy a:hover,
.rs-cta-band-copy a:focus-visible {
  color: var(--rs-espresso);
}

.rs-cta-band-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
}

.rs-cta-band-actions .rs-btn {
  padding: 0.9rem 1.65rem;
  font-size: 0.9375rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-cta-band-actions .rs-btn-primary:hover,
.rs-cta-band-actions .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

/* ==========================================================================
   PAGE 5 REDUCED MOTION OVERRIDES & RESPONSIVE BREAKPOINTS
   ========================================================================== */
@media (max-width: 960px) {
  .rs-story-grid {
    grid-template-columns: 1fr;
    max-width: 580px;
    margin-inline: auto;
  }
  .rs-how-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .rs-values-grid {
    grid-template-columns: 1fr;
    max-width: 540px;
    margin-inline: auto;
  }
}

@media (max-width: 600px) {
  .rs-how-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-inline: auto;
  }
}

@media (max-width: 540px) {
  .rs-story-content {
    padding: 1.5rem 1.25rem;
  }
  .rs-story-actions,
  .rs-cta-band-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .rs-story-actions .rs-btn,
  .rs-cta-band-actions .rs-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rs-story-img,
  .rs-story-copy a,
  .rs-story-actions .rs-btn,
  .rs-value-card,
  .rs-value-card-desc a,
  .rs-how-step-desc a,
  .rs-cta-band-copy a,
  .rs-cta-band-actions .rs-btn {
    transition: none !important;
  }
  .rs-story-media:hover .rs-story-img,
  .rs-value-card:hover {
    transform: none !important;
  }
}
/* ==========================================================================
   26. PAGE 6 (FAQ & CONTACT) — FAQ ACCORDION
   ========================================================================== */
.rs-faq-section {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream);
  border-bottom: 1px solid var(--rs-border);
}

.rs-faq-header {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.rs-faq-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  color: var(--rs-espresso);
  margin-bottom: 0.85rem;
}

.rs-accordion {
  max-width: 780px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rs-accordion-item {
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-md);
  box-shadow: var(--rs-shadow-soft);
  overflow: hidden;
  transition: border-color var(--rs-transition);
}

.rs-accordion-item:hover,
.rs-accordion-item:focus-within {
  border-color: var(--rs-gold);
}

.rs-accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1.25rem, 2.5vw, 1.5rem) clamp(1.5rem, 3vw, 2rem);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--rs-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--rs-espresso);
  line-height: 1.3;
}

.rs-accordion-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-left: 1rem;
  stroke: var(--rs-gold);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  transition: transform var(--rs-transition);
}

.rs-accordion-btn[aria-expanded="true"] .rs-accordion-icon {
  transform: rotate(180deg);
}

.rs-accordion-content {
  display: none;
  padding: 0 clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem);
  font-size: 1.02rem;
  color: var(--rs-espresso-soft);
  line-height: 1.65;
}

/* Open State Handled by aria-expanded in JS */
.rs-accordion-btn[aria-expanded="true"] + .rs-accordion-content {
  display: block;
}

.rs-accordion-content a {
  color: var(--rs-gold-hover);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--rs-transition);
}

.rs-accordion-content a:hover,
.rs-accordion-content a:focus-visible {
  color: var(--rs-espresso);
}

/* ==========================================================================
   27. PAGE 6 (FAQ & CONTACT) — CONTACT SECTION
   ========================================================================== */
.rs-contact-section {
  padding-block: clamp(3.5rem, 7vw, 6rem);
  background-color: var(--rs-cream-elevated);
  border-bottom: 1px solid var(--rs-border);
}

.rs-contact-container {
  max-width: 800px;
  margin-inline: auto;
}

.rs-contact-card {
  background-color: var(--rs-cream);
  border: 1px solid var(--rs-border-gold);
  border-radius: var(--rs-radius-lg);
  padding: clamp(2rem, 5vw, 4rem);
  box-shadow: var(--rs-shadow-soft);
  text-align: center;
}

.rs-contact-title {
  font-family: var(--rs-font-heading);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  color: var(--rs-espresso);
  margin-bottom: 1rem;
}

.rs-contact-intro {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--rs-espresso-soft);
  margin-bottom: 2rem;
  max-width: 600px;
  margin-inline: auto;
}

.rs-contact-primary-action {
  margin-bottom: 2.5rem;
}

.rs-contact-primary-action .rs-btn {
  padding: 1rem 2.25rem;
  font-size: 1.05rem;
  transform: none !important;
  box-shadow: none !important;
}

.rs-contact-primary-action .rs-btn-primary:hover,
.rs-contact-primary-action .rs-btn-primary:focus-visible {
  background-color: var(--rs-gold-hover);
  border-color: var(--rs-gold-hover);
  color: #FFFFFF;
}

.rs-contact-note {
  font-size: 0.98rem;
  color: var(--rs-espresso);
  background-color: var(--rs-cream-elevated);
  border-left: 3px solid var(--rs-gold);
  padding: 1.25rem;
  margin-bottom: 3rem;
  text-align: left;
  line-height: 1.6;
}

.rs-social-title {
  font-family: var(--rs-font-heading);
  font-size: 1.35rem;
  color: var(--rs-espresso);
  margin-bottom: 1.25rem;
}

.rs-social-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.rs-social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.25rem;
  background-color: var(--rs-cream-elevated);
  border: 1px solid var(--rs-border-gold);
  border-radius: 999px;
  color: var(--rs-espresso);
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color var(--rs-transition), border-color var(--rs-transition);
}

.rs-social-link:hover,
.rs-social-link:focus-visible {
  background-color: var(--rs-gold-tint);
  border-color: var(--rs-gold);
}

/* ==========================================================================
   PAGE 6 REDUCED MOTION OVERRIDES & RESPONSIVE BREAKPOINTS
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .rs-accordion-item,
  .rs-accordion-icon,
  .rs-accordion-content a,
  .rs-social-link,
  .rs-contact-primary-action .rs-btn {
    transition: none !important;
  }
}
/* Follow the Studio glyph pills (Jay, 2026-10-31): brand logos in brand gold, names as accessible labels only */
.rs-social-grid .rs-social-link { color: var(--rs-gold); line-height: 0; padding: 0.6rem 0.8rem; }
.rs-social-grid .rs-social-link svg { width: 22px; height: 22px; display: block; }
