/* ==========================================================================
   Resort For You Casino — global stylesheet
   Palette: warm ivory / deep pine green / champagne gold / terracotta.
   NOTE: keep every decorative url(../../images/resortforyoucasino_94df227be708c.57637293.jpg) empty — photo.js injects real files later.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=Manrope:wght@300;400;500;600;700;800&display=swap');

:root {
  --rf-ivory: #f6f1e7;
  --rf-cream: #fbf8f1;
  --rf-sand: #ece3d1;
  --rf-pine: #0e3b33;
  --rf-pine-deep: #082b25;
  --rf-pine-soft: #175046;
  --rf-gold: #c2a164;
  --rf-gold-soft: #ddc68f;
  --rf-copper: #b4633f;
  --rf-ink: #1f2d28;
  --rf-muted: #5f6f68;
  --rf-line: rgba(14, 59, 51, 0.14);
  --rf-line-light: rgba(246, 241, 231, 0.18);
  --rf-serif: 'Fraunces', 'Georgia', serif;
  --rf-sans: 'Manrope', 'Segoe UI', sans-serif;
  --rf-radius: 22px;
  --rf-radius-lg: 34px;
  --rf-shadow: 0 24px 60px -28px rgba(14, 59, 51, 0.35);
  --rf-shadow-soft: 0 14px 40px -20px rgba(14, 59, 51, 0.25);
}

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

html { scroll-behavior: smooth; overflow-x: hidden;}

body {
  font-family: var(--rf-sans);
  background-color: var(--rf-ivory);
  color: var(--rf-ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--rf-gold); color: var(--rf-pine-deep); }

img { max-width: 100%; }

h1, h2, h3, .rf-serif { font-family: var(--rf-serif); }

a { color: var(--rf-pine); }

/* Custom scrollbar — small detail, big feel */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--rf-ivory); }
::-webkit-scrollbar-thumb { background: var(--rf-pine-soft); border-radius: 8px; }

/* ---------- Shared layout helpers ---------- */

.rf-section { padding: clamp(4.5rem, 8vw, 8rem) 0; position: relative; }
.rf-section--tight { padding: clamp(3rem, 5vw, 5rem) 0; }
.rf-section--dark { background: var(--rf-pine); color: var(--rf-ivory); }
.rf-section--deep { background: var(--rf-pine-deep); color: var(--rf-ivory); }
.rf-section--cream { background: var(--rf-cream); }
.rf-section--sand { background: var(--rf-sand); }

.rf-bg-photo {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.rf-container-narrow { max-width: 980px; }

/* Section header kit */
.rf-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rf-copper);
  margin-bottom: 1rem;
}
.rf-eyebrow::before {
  content: '';
  width: 34px;
  height: 1px;
  background: currentColor;
}
.rf-eyebrow--gold { color: var(--rf-gold); }
.rf-section--dark .rf-eyebrow,
.rf-section--deep .rf-eyebrow { color: var(--rf-gold-soft); }

.rf-title {
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
}
.rf-title em { font-style: italic; color: var(--rf-copper); }
.rf-section--dark .rf-title em,
.rf-section--deep .rf-title em { color: var(--rf-gold-soft); }

.rf-lead { font-size: 1.08rem; color: var(--rf-muted); line-height: 1.75; }
.rf-section--dark .rf-lead,
.rf-section--deep .rf-lead { color: rgba(246, 241, 231, 0.75); }

.rf-num-tag {
  font-family: var(--rf-serif);
  font-size: 0.9rem;
  letter-spacing: 0.3em;
  color: var(--rf-gold);
  text-transform: uppercase;
}

/* Decorative ghost numeral */
.rf-ghost-num {
  position: absolute;
  font-family: var(--rf-serif);
  font-weight: 600;
  font-size: clamp(6rem, 14vw, 12rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(14, 59, 51, 0.12);
  pointer-events: none;
  user-select: none;
}
.rf-section--dark .rf-ghost-num,
.rf-section--deep .rf-ghost-num { -webkit-text-stroke-color: rgba(246, 241, 231, 0.12); }

/* Dot-grid & ring decorations — pure CSS, no SVG */
.rf-deco-dots {
  position: absolute;
  width: 140px;
  height: 140px;
  background-image: radial-gradient(var(--rf-gold) 1.5px, transparent 1.5px);
  background-size: 16px 16px;
  opacity: 0.5;
  pointer-events: none;
}
.rf-deco-ring {
  position: absolute;
  border: 1px solid rgba(194, 161, 100, 0.45);
  border-radius: 50%;
  pointer-events: none;
}
.rf-deco-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(70px);
  opacity: 0.35;
  pointer-events: none;
}

/* ---------- Buttons ---------- */

.btn-rf {
  --bs-btn-padding-x: 1.9rem;
  --bs-btn-padding-y: 0.9rem;
  --bs-btn-font-weight: 600;
  --bs-btn-border-radius: 100px;
  font-family: var(--rf-sans);
  letter-spacing: 0.02em;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}
.btn-rf:hover { transform: translateY(-2px); }

.btn-rf-primary {
  background: var(--rf-pine);
  border-color: var(--rf-pine);
  color: var(--rf-ivory);
}
.btn-rf-primary:hover, .btn-rf-primary:focus {
  background: var(--rf-pine-deep);
  border-color: var(--rf-pine-deep);
  color: var(--rf-gold-soft);
  box-shadow: 0 14px 30px -14px rgba(14, 59, 51, 0.6);
}

.btn-rf-gold {
  background: var(--rf-gold);
  border-color: var(--rf-gold);
  color: var(--rf-pine-deep);
}
.btn-rf-gold:hover, .btn-rf-gold:focus {
  background: var(--rf-gold-soft);
  border-color: var(--rf-gold-soft);
  color: var(--rf-pine-deep);
  box-shadow: 0 14px 30px -14px rgba(194, 161, 100, 0.7);
}

.btn-rf-outline {
  background: transparent;
  border: 1px solid var(--rf-pine);
  color: var(--rf-pine);
}
.btn-rf-outline:hover {
  background: var(--rf-pine);
  color: var(--rf-ivory);
}
.rf-section--dark .btn-rf-outline,
.rf-section--deep .btn-rf-outline {
  border-color: var(--rf-gold-soft);
  color: var(--rf-gold-soft);
}
.rf-section--dark .btn-rf-outline:hover,
.rf-section--deep .btn-rf-outline:hover {
  background: var(--rf-gold-soft);
  color: var(--rf-pine-deep);
}

.btn-rf-link {
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--rf-copper);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.btn-rf-link i { transition: transform 0.25s ease; }
.btn-rf-link:hover i { transform: translateX(6px); }
.rf-section--dark .btn-rf-link, .rf-section--deep .btn-rf-link { color: var(--rf-gold-soft); }

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

.rf-topbar {
  background: var(--rf-pine-deep);
  color: rgba(246, 241, 231, 0.85);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.rf-topbar a { color: var(--rf-gold-soft); text-decoration: none; }
.rf-topbar i { color: var(--rf-gold); margin-right: 0.4rem; }
.rf-topbar__item { display: inline-flex; align-items: center; white-space: nowrap; }

.rf-header {
  position: sticky;
  top: 0;
  z-index: 1020;
  background: rgba(246, 241, 231, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--rf-line);
  transition: box-shadow 0.3s ease;
}
.rf-header.is-scrolled { box-shadow: 0 10px 34px -18px rgba(14, 59, 51, 0.35); }

.rf-brand { display: inline-flex; align-items: center; gap: 0.75rem; text-decoration: none; }
.rf-brand__logo { height: 44px; width: auto; }
.rf-brand__name {
  font-family: var(--rf-serif);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--rf-pine);
  line-height: 1.1;
}
.rf-brand__name small {
  display: block;
  font-family: var(--rf-sans);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--rf-copper);
}

.rf-nav .nav-link {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rf-ink);
  padding: 0.6rem 0.9rem;
  position: relative;
}
.rf-nav .nav-link::after {
  content: '';
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0.25rem;
  height: 2px;
  background: var(--rf-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}
.rf-nav .nav-link:hover::after,
.rf-nav .nav-link.active::after { transform: scaleX(1); }

.rf-header__contact {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--rf-muted);
  white-space: nowrap;
}
.rf-header__contact i { color: var(--rf-gold); margin-right: 0.35rem; }

.rf-burger {
  border: 1px solid var(--rf-line);
  border-radius: 50%;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--rf-pine);
  background: transparent;
}
.rf-burger:hover { background: var(--rf-pine); color: var(--rf-ivory); }

.rf-offcanvas {
  background: var(--rf-pine);
  color: var(--rf-ivory);
}
.rf-offcanvas .nav-link {
  font-family: var(--rf-serif);
  font-size: 1.6rem;
  color: var(--rf-ivory);
  padding: 0.5rem 0;
}
.rf-offcanvas .nav-link:hover { color: var(--rf-gold-soft); }
.rf-offcanvas__contact { font-size: 0.9rem; color: rgba(246, 241, 231, 0.75); }
.rf-offcanvas__contact i { color: var(--rf-gold); width: 20px; }

/* ---------- Hero ---------- */

.rf-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.rf-hero__h1 {
  font-size: clamp(2.6rem, 6.4vw, 5.4rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.015em;
}
.rf-hero__h1 em { font-style: italic; color: var(--rf-gold-soft); }

.rf-offline-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  border: 1px solid rgba(194, 161, 100, 0.6);
  background: rgba(8, 43, 37, 0.55);
  backdrop-filter: blur(8px);
  color: var(--rf-gold-soft);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  padding: 0.7rem 1.4rem;
  border-radius: 100px;
}
.rf-offline-badge i { color: var(--rf-gold); }

.rf-hero__panel {
  background: rgba(8, 43, 37, 0.42);
  border: 1px solid rgba(246, 241, 231, 0.16);
  backdrop-filter: blur(10px);
  border-radius: var(--rf-radius-lg);
  padding: clamp(1.4rem, 3vw, 2.4rem);
}

.rf-hero__stat {
  border-left: 2px solid var(--rf-gold);
  padding-left: 1rem;
}
.rf-hero__stat b { font-family: var(--rf-serif); font-size: 1.6rem; color: var(--rf-ivory); display: block; }
.rf-hero__stat span { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(246,241,231,0.6); }

/* Bottom dock of quick triggers */
.rf-hero-dock {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.rf-hero-dock__item {
  flex: 1 1 180px;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(246, 241, 231, 0.18);
  border-radius: var(--rf-radius);
  color: var(--rf-ivory);
  text-decoration: none;
  background: rgba(8, 43, 37, 0.35);
  backdrop-filter: blur(6px);
  transition: background 0.25s ease, transform 0.25s ease;
}
.rf-hero-dock__item:hover { background: rgba(194, 161, 100, 0.25); transform: translateY(-3px); color: var(--rf-gold-soft); }
.rf-hero-dock__item i { font-size: 1.2rem; color: var(--rf-gold); }
.rf-hero-dock__item small { display: block; font-size: 0.7rem; opacity: 0.7; }

/* ---------- Marquee ---------- */

.rf-marquee {
  overflow: hidden;
  border-top: 1px solid var(--rf-line);
  border-bottom: 1px solid var(--rf-line);
  padding: 1.2rem 0;
  background: var(--rf-cream);
}
.rf-section--dark .rf-marquee, .rf-marquee--dark {
  background: var(--rf-pine-deep);
  border-color: var(--rf-line-light);
}
.rf-marquee__track {
  display: flex;
  align-items: center;
  gap: 3rem;
  width: max-content;
  animation: rf-marquee 32s linear infinite;
}
.rf-marquee__track span {
  font-family: var(--rf-serif);
  font-size: 1.05rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rf-muted);
  white-space: nowrap;
}
.rf-marquee--dark .rf-marquee__track span { color: rgba(246, 241, 231, 0.55); }
.rf-marquee__track i { color: var(--rf-gold); font-size: 0.7rem; }
@keyframes rf-marquee {
  to { transform: translateX(-50%); }
}

/* ---------- Cards & grids ---------- */

.rf-card {
  background: var(--rf-cream);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-radius);
  padding: clamp(1.4rem, 2.6vw, 2.2rem);
  height: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  overflow: hidden;
}
.rf-card:hover { transform: translateY(-6px); box-shadow: var(--rf-shadow-soft); }
.rf-card--dark { background: var(--rf-pine); border-color: rgba(246,241,231,0.14); color: var(--rf-ivory); }
.rf-card--gold { background: linear-gradient(135deg, var(--rf-gold) 0%, var(--rf-gold-soft) 100%); border: none; color: var(--rf-pine-deep); }

.rf-icon-badge {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  background: rgba(194, 161, 100, 0.16);
  color: var(--rf-copper);
  border: 1px solid rgba(194, 161, 100, 0.35);
  margin-bottom: 1.1rem;
}
.rf-card--dark .rf-icon-badge,
.rf-section--dark .rf-icon-badge,
.rf-section--deep .rf-icon-badge { color: var(--rf-gold-soft); }

/* Media frame — image card with rounded frame and hover zoom */
.rf-media {
  position: relative;
  border-radius: var(--rf-radius);
  overflow: hidden;
  background-color: var(--rf-sand);
}
.rf-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.rf-media:hover img { transform: scale(1.05); }
.rf-media--tall { aspect-ratio: 3 / 4; }
.rf-media--wide { aspect-ratio: 16 / 10; }
.rf-media--square { aspect-ratio: 1 / 1; }
.rf-media--hero { aspect-ratio: 4 / 3; }

.rf-media__tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: rgba(8, 43, 37, 0.72);
  backdrop-filter: blur(6px);
  color: var(--rf-gold-soft);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.5rem 0.9rem;
  border-radius: 100px;
  z-index: 2;
}

/* Bento grid */
.rf-bento {
  display: grid;
  gap: 1.1rem;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(150px, auto);
}
.rf-bento__cell {
  border-radius: var(--rf-radius);
  border: 1px solid var(--rf-line);
  background: var(--rf-cream);
  padding: 1.6rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.rf-bento__cell--2x2 { grid-column: span 2; grid-row: span 2; }
.rf-bento__cell--2x1 { grid-column: span 2; }
.rf-bento__cell--1x2 { grid-row: span 2; }
.rf-bento__cell--photo { padding: 0; border: none; min-height: 240px; }
.rf-bento__cell--pine { background: var(--rf-pine); color: var(--rf-ivory); border: none; }
.rf-bento__cell--gold { background: linear-gradient(150deg, var(--rf-gold), var(--rf-gold-soft)); color: var(--rf-pine-deep); border: none; }

/* Stat blocks */
.rf-stat {
  padding: 1.4rem 0;
  border-top: 1px solid var(--rf-line);
}
.rf-stat__num {
  font-family: var(--rf-serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 500;
  color: var(--rf-pine);
  line-height: 1;
}
.rf-stat__num sup { color: var(--rf-copper); font-size: 0.5em; }
.rf-section--dark .rf-stat, .rf-section--deep .rf-stat { border-color: var(--rf-line-light); }
.rf-section--dark .rf-stat__num, .rf-section--deep .rf-stat__num { color: var(--rf-gold-soft); }
.rf-stat__label { font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rf-muted); margin-top: 0.5rem; }
.rf-section--dark .rf-stat__label, .rf-section--deep .rf-stat__label { color: rgba(246,241,231,0.6); }

/* Timeline */
.rf-timeline { position: relative; padding-left: 2rem; }
.rf-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: var(--rf-line);
}
.rf-timeline__item { position: relative; padding-bottom: 2.4rem; }
.rf-timeline__item::before {
  content: '';
  position: absolute;
  left: -2rem;
  top: 6px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  border: 3px solid var(--rf-gold);
  background: var(--rf-ivory);
}
.rf-timeline__year {
  font-family: var(--rf-serif);
  font-size: 1.5rem;
  color: var(--rf-copper);
  font-weight: 600;
}

/* Service index rows (editorial list) */
.rf-service-row {
  display: block;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid var(--rf-line);
  padding: 2rem 0;
  transition: background 0.25s ease, padding 0.25s ease;
  position: relative;
}
.rf-service-row:last-child { border-bottom: 1px solid var(--rf-line); }
.rf-service-row:hover { background: var(--rf-cream); padding-left: 1.4rem; }
.rf-service-row__num {
  font-family: var(--rf-serif);
  color: var(--rf-gold);
  font-size: 0.95rem;
  letter-spacing: 0.2em;
}
.rf-service-row__title {
  font-family: var(--rf-serif);
  font-size: clamp(1.5rem, 3vw, 2.3rem);
  font-weight: 500;
  color: var(--rf-pine);
  margin: 0;
}
.rf-service-row:hover .rf-service-row__title { color: var(--rf-copper); }
.rf-service-row__arrow {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid var(--rf-line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--rf-pine);
  transition: all 0.25s ease;
  flex-shrink: 0;
}
.rf-service-row:hover .rf-service-row__arrow {
  background: var(--rf-pine);
  color: var(--rf-gold-soft);
  transform: rotate(-45deg);
}

/* Feature list w/ icons */
.rf-check-list { list-style: none; padding: 0; margin: 0; }
.rf-check-list li {
  display: flex;
  gap: 0.8rem;
  padding: 0.65rem 0;
  border-bottom: 1px dashed var(--rf-line);
  align-items: flex-start;
}
.rf-check-list li:last-child { border-bottom: none; }
.rf-check-list i { color: var(--rf-copper); margin-top: 0.2rem; }
.rf-section--dark .rf-check-list i,
.rf-section--deep .rf-check-list i { color: var(--rf-gold); }

/* Testimonials */
.rf-quote {
  font-family: var(--rf-serif);
  font-size: clamp(1.25rem, 2.4vw, 1.8rem);
  font-style: italic;
  line-height: 1.5;
  color: var(--rf-pine);
}
.rf-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--rf-gold);
  background: var(--rf-sand);
}
.rf-stars { color: var(--rf-gold); letter-spacing: 0.15em; }

/* Glass cards over photo sections */
.rf-glass {
  background: rgba(246, 241, 231, 0.08);
  border: 1px solid rgba(246, 241, 231, 0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: var(--rf-radius);
  padding: 1.8rem;
  color: var(--rf-ivory);
}

/* Steps / pipeline */
.rf-step {
  position: relative;
  padding: 1.6rem;
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-radius);
  background: var(--rf-cream);
  height: 100%;
}
.rf-step__num {
  font-family: var(--rf-serif);
  font-size: 2.4rem;
  color: transparent;
  -webkit-text-stroke: 1px var(--rf-copper);
  line-height: 1;
}

/* Pricing / rate cards */
.rf-rate {
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-radius-lg);
  padding: clamp(1.8rem, 3vw, 2.6rem);
  background: var(--rf-cream);
  height: 100%;
  position: relative;
}
.rf-rate--featured {
  background: var(--rf-pine);
  color: var(--rf-ivory);
  border: none;
  box-shadow: var(--rf-shadow);
}
.rf-rate__price {
  font-family: var(--rf-serif);
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  color: var(--rf-pine);
}
.rf-rate--featured .rf-rate__price { color: var(--rf-gold-soft); }
.rf-rate__price small { font-family: var(--rf-sans); font-size: 0.85rem; color: var(--rf-muted); font-weight: 600; }
.rf-rate--featured .rf-rate__price small { color: rgba(246,241,231,0.6); }

/* Forms */
.rf-input {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--rf-line);
  border-radius: 0;
  padding: 0.9rem 0;
  font-size: 1rem;
  color: var(--rf-ink);
  width: 100%;
}
.rf-input:focus { outline: none; border-bottom-color: var(--rf-copper); box-shadow: none; }
.rf-input::placeholder { color: var(--rf-muted); opacity: 0.7; }
.rf-section--dark .rf-input, .rf-section--deep .rf-input,
.rf-form-dark .rf-input {
  color: var(--rf-ivory);
  border-bottom-color: var(--rf-line-light);
}
.rf-section--dark .rf-input::placeholder, .rf-form-dark .rf-input::placeholder { color: rgba(246,241,231,0.5); }
.rf-form-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rf-muted);
  margin-bottom: 0.2rem;
}
.rf-section--dark .rf-form-label, .rf-form-dark .rf-form-label { color: rgba(246,241,231,0.6); }

/* Inline form notification — used instead of alert() */
.rf-form-note {
  display: none;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1.2rem;
  padding: 0.9rem 1.2rem;
  border-radius: 14px;
  font-size: 0.9rem;
  font-weight: 600;
}
.rf-form-note.is-visible { display: flex; }
.rf-form-note--ok { background: rgba(23, 80, 70, 0.12); color: var(--rf-pine); border: 1px solid rgba(23, 80, 70, 0.3); }
.rf-form-note--err { background: rgba(180, 99, 63, 0.12); color: var(--rf-copper); border: 1px solid rgba(180, 99, 63, 0.35); }
.rf-form-dark .rf-form-note--ok { background: rgba(194,161,100,0.15); color: var(--rf-gold-soft); border-color: rgba(194,161,100,0.4); }

/* Accordion polish */
.rf-accordion .accordion-item {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--rf-line);
  border-radius: 0;
}
.rf-accordion .accordion-button {
  background: transparent;
  box-shadow: none;
  font-family: var(--rf-serif);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--rf-pine);
  padding: 1.4rem 0;
}
.rf-accordion .accordion-button:not(.collapsed) { color: var(--rf-copper); }
.rf-accordion .accordion-button::after {
  background-image: none;
  content: '\f078';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 0.8rem;
  color: var(--rf-gold);
}
.rf-accordion .accordion-body { padding: 0 0 1.6rem; color: var(--rf-muted); line-height: 1.75; }
.rf-section--dark .rf-accordion .accordion-item,
.rf-section--deep .rf-accordion .accordion-item { border-color: var(--rf-line-light); }
.rf-section--dark .rf-accordion .accordion-button,
.rf-section--deep .rf-accordion .accordion-button { color: var(--rf-ivory); }
.rf-section--dark .rf-accordion .accordion-button:not(.collapsed),
.rf-section--deep .rf-accordion .accordion-button:not(.collapsed) { color: var(--rf-gold-soft); }
.rf-section--dark .rf-accordion .accordion-body,
.rf-section--deep .rf-accordion .accordion-body { color: rgba(246,241,231,0.7); }

/* Horizontal snap slider */
.rf-snap {
  display: flex;
  gap: 1.2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 1rem;
  -webkit-overflow-scrolling: touch;
}
.rf-snap > * { scroll-snap-align: start; flex: 0 0 min(420px, 84vw); }
.rf-snap::-webkit-scrollbar { height: 6px; }
.rf-snap::-webkit-scrollbar-thumb { background: var(--rf-gold); }

.rf-slider-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 1px solid var(--rf-line);
  background: var(--rf-cream);
  color: var(--rf-pine);
  transition: all 0.25s ease;
}
.rf-slider-btn:hover { background: var(--rf-pine); color: var(--rf-gold-soft); }

/* Gallery masonry via CSS columns */
.rf-masonry { columns: 3; column-gap: 1.1rem; }
.rf-masonry .rf-media { margin-bottom: 1.1rem; break-inside: avoid; }

/* Map */
.rf-map {
  border-radius: var(--rf-radius-lg);
  overflow: hidden;
  border: 1px solid var(--rf-line);
  box-shadow: var(--rf-shadow-soft);
  min-height: 380px;
}
.rf-map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }

/* Legal / prose pages */
.rf-prose h3 {
  font-family: var(--rf-serif);
  color: var(--rf-pine);
  margin: 2.2rem 0 0.9rem;
  font-size: 1.5rem;
}
.rf-prose p, .rf-prose li { color: var(--rf-muted); line-height: 1.8; }
.rf-prose ul { padding-left: 1.2rem; }
.rf-prose li { margin-bottom: 0.4rem; }
.rf-legal-block {
  border-top: 1px solid var(--rf-line);
  padding: 2.4rem 0;
}
.rf-legal-block__num {
  font-family: var(--rf-serif);
  color: var(--rf-gold);
  font-size: 0.85rem;
  letter-spacing: 0.25em;
}

/* Team cards */
.rf-team-card { position: relative; }
.rf-team-card .rf-media { aspect-ratio: 3 / 4; }
.rf-team-card__role {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rf-copper);
}

/* Footer */
.rf-footer { background: var(--rf-pine-deep); color: rgba(246, 241, 231, 0.75); }
.rf-footer a { color: rgba(246, 241, 231, 0.75); text-decoration: none; transition: color 0.2s ease; }
.rf-footer a:hover { color: var(--rf-gold-soft); }
.rf-footer__heading {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--rf-gold);
  margin-bottom: 1.2rem;
}
.rf-footer__links { list-style: none; padding: 0; margin: 0; }
.rf-footer__links li { margin-bottom: 0.55rem; }
.rf-footer__links a { font-size: 0.92rem; }
.rf-footer__contact { font-size: 0.92rem; line-height: 2; }
.rf-footer__contact i { color: var(--rf-gold); width: 20px; }
.rf-footer__disclaimer {
  border: 1px solid var(--rf-line-light);
  border-radius: var(--rf-radius);
  padding: 1.2rem 1.4rem;
  font-size: 0.82rem;
  color: rgba(246, 241, 231, 0.6);
  background: rgba(246, 241, 231, 0.04);
}
.rf-footer__brand {
  font-family: var(--rf-serif);
  font-size: clamp(2.4rem, 9vw, 7rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(194, 161, 100, 0.4);
  white-space: nowrap;
  user-select: none;
}
.rf-footer__legal {
  border-top: 1px solid var(--rf-line-light);
  padding-top: 1.6rem;
  font-size: 0.8rem;
  color: rgba(246, 241, 231, 0.5);
}
.rf-footer__legal a { color: rgba(246, 241, 231, 0.6); }

/* Cookie banner — homepage only */
.rf-cookie {
  position: fixed;
  left: 1rem;
  bottom: 1rem;
  z-index: 2000;
  max-width: 420px;
  background: var(--rf-pine-deep);
  color: var(--rf-ivory);
  border: 1px solid rgba(194, 161, 100, 0.4);
  border-radius: var(--rf-radius);
  padding: 1.4rem;
  box-shadow: var(--rf-shadow);
  transform: translateY(140%);
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.rf-cookie.is-visible { transform: translateY(0); }
.rf-cookie p { font-size: 0.85rem; color: rgba(246, 241, 231, 0.75); margin-bottom: 1rem; }

/* Utility text colors */
.text-rf-gold { color: var(--rf-gold) !important; }
.text-rf-copper { color: var(--rf-copper) !important; }
.text-rf-pine { color: var(--rf-pine) !important; }
.text-rf-muted { color: var(--rf-muted) !important; }
.bg-rf-pine { background-color: var(--rf-pine) !important; }
.bg-rf-cream { background-color: var(--rf-cream) !important; }
.bg-rf-sand { background-color: var(--rf-sand) !important; }
.border-rf { border-color: var(--rf-line) !important; }

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

@media (max-width: 991.98px) {
  .rf-hero { min-height: auto; padding: 0rem 0 4rem; }
  .rf-bento { grid-template-columns: repeat(2, 1fr); }
  .rf-bento__cell--2x2 { grid-column: span 2; grid-row: auto; }
  .rf-bento__cell--2x1 { grid-column: span 2; }
  .rf-bento__cell--1x2 { grid-row: auto; }
  .rf-masonry { columns: 2; }
  .rf-hero-dock { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; }
  .rf-hero-dock__item { flex: 0 0 78%; scroll-snap-align: start; }
}

@media (max-width: 575.98px) {
  .rf-bento { grid-template-columns: 1fr; }
  .rf-bento__cell--2x2, .rf-bento__cell--2x1 { grid-column: span 1; }
  .rf-masonry { columns: 1; }
  .rf-service-row:hover { padding-left: 0; }
  .rf-cookie { left: 0.75rem; right: 0.75rem; max-width: none; }
}
