:root {
  --rfg-navy: #1f2b5b;
  --rfg-navy-2: #0d1738;
  --rfg-cocoa: #84625c;
  --rfg-cocoa-2: #5c3b35;
  --rfg-gold: #f9af3a;
  --rfg-gold-soft: #ffd98e;
  --rfg-cream: #f7f2ed;
  --rfg-paper: #fffdfa;
  --rfg-ink: #18213e;
  --rfg-muted: #6f7180;
  --rfg-line: rgba(31,43,91,.12);
  --rfg-radius-xl: 34px;
  --rfg-radius-lg: 24px;
  --rfg-radius-md: 18px;
  --rfg-shadow: 0 28px 80px rgba(14, 22, 54, .16);
  --rfg-shadow-soft: 0 18px 50px rgba(14, 22, 54, .10);
}

html { scroll-behavior: smooth; }
body.rfg-retirement-page, .rfg-retirement-page {
  margin: 0;
  background: var(--rfg-paper);
  color: var(--rfg-ink);
  overflow-x: hidden;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.rfg-retirement-page *, .rfg-retirement-page *::before, .rfg-retirement-page *::after { box-sizing: border-box; }
.rfg-retirement-page a { color: inherit; }

/* Layout helpers */
.rfg-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.rfg-section { position: relative; padding: 112px 0; }
.rfg-section-tight { padding: 82px 0; }
.rfg-center { text-align: center; }
.rfg-max-copy { max-width: 760px; margin-inline: auto; }
.rfg-gold { color: var(--rfg-gold); }
.rfg-kicker .elementor-heading-title,
.rfg-kicker { font-size: 13px !important; line-height: 1.2 !important; letter-spacing: .16em !important; text-transform: uppercase; font-weight: 800 !important; color: var(--rfg-gold) !important; }
.rfg-section-title .elementor-heading-title,
.rfg-section-title { margin: 0; font-size: clamp(38px, 5vw, 66px) !important; line-height: .98 !important; letter-spacing: -.045em !important; font-weight: 750 !important; color: var(--rfg-navy) !important; }
.rfg-section-copy, .rfg-section-copy p,
.rfg-body-copy, .rfg-body-copy p { font-size: 18px !important; line-height: 1.72 !important; color: var(--rfg-muted) !important; }
.rfg-white .elementor-heading-title, .rfg-white, .rfg-white p { color: #fff !important; }
.rfg-muted-light, .rfg-muted-light p { color: rgba(255,255,255,.72) !important; }

/* top navigation */
.rfg-nav {
  position: relative;
  z-index: 80;
  background: rgba(255,253,250,.92);
  border-bottom: 1px solid rgba(31,43,91,.08);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
}
.rfg-nav-inner { width: min(1180px, calc(100% - 48px)); margin-inline: auto; min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.rfg-logo img { width: 180px !important; height: auto !important; display: block; }
.rfg-nav-right { display:flex; align-items:center; justify-content:flex-end; gap:18px; }
.rfg-nav-note, .rfg-nav-note p { margin:0; font-size: 13px !important; line-height:1.4 !important; color:var(--rfg-muted) !important; text-align:right; }

/* buttons */
.rfg-btn .elementor-button,
a.rfg-btn,
button.rfg-btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 26px !important;
  border-radius: 999px !important;
  border: 1px solid transparent;
  background: var(--rfg-gold) !important;
  color: #17234f !important;
  text-decoration: none;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
  box-shadow: 0 14px 36px rgba(249,175,58,.30);
  transform: translate3d(var(--mx,0), var(--my,0), 0);
  transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease, background .28s ease;
}
.rfg-btn .elementor-button::before,
a.rfg-btn::before,
button.rfg-btn::before {
  content:""; position:absolute; inset:-2px; transform:translateX(-110%) skewX(-20deg); width:55%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent); transition:transform .7s ease;
}
.rfg-btn:hover .elementor-button,
a.rfg-btn:hover,
button.rfg-btn:hover { transform: translate3d(var(--mx,0), calc(var(--my,0) - 3px), 0); box-shadow: 0 20px 48px rgba(249,175,58,.38); }
.rfg-btn:hover .elementor-button::before,
a.rfg-btn:hover::before,
button.rfg-btn:hover::before { transform:translateX(230%) skewX(-20deg); }
.rfg-btn-secondary .elementor-button,
a.rfg-btn-secondary { background: rgba(255,255,255,.08) !important; color:#fff !important; border-color:rgba(255,255,255,.22) !important; box-shadow:none !important; backdrop-filter: blur(12px); }
.rfg-btn-secondary:hover .elementor-button,
a.rfg-btn-secondary:hover { background: rgba(255,255,255,.14) !important; }
.rfg-btn-small .elementor-button { min-height:46px; padding:0 20px !important; }

/* hero */
.rfg-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0 76px;
  background:
    radial-gradient(circle at 82% 20%, rgba(249,175,58,.28), transparent 28%),
    radial-gradient(circle at 74% 78%, rgba(132,98,92,.42), transparent 32%),
    linear-gradient(135deg, #0d1738 0%, #1f2b5b 52%, #182652 100%);
  color: #fff;
  isolation: isolate;
}
.rfg-hero::before {
  content:""; position:absolute; width:660px; height:660px; right:-200px; top:-230px; border:1px solid rgba(255,255,255,.09); border-radius:50%; box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018); z-index:-1;
}
.rfg-hero::after {
  content:""; position:absolute; left:-10%; right:-10%; bottom:-110px; height:180px; border-radius:50% 50% 0 0 / 45% 45% 0 0; background:var(--rfg-paper); z-index:1; transform:rotate(-2deg);
}
.rfg-hero-inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:flex; align-items:center; gap:64px; position:relative; z-index:2; }
.rfg-hero-copycol { width:56%; min-width:0; }
.rfg-hero-artcol { width:44%; min-width:0; }
.rfg-eyebrow .elementor-heading-title, .rfg-eyebrow { color: var(--rfg-gold) !important; text-transform: uppercase; letter-spacing:.15em !important; font-size:13px !important; font-weight:850 !important; }
.rfg-hero-title .elementor-heading-title, .rfg-hero-title { margin:0; color:#fff !important; font-size:clamp(50px,6.2vw,88px) !important; line-height:.92 !important; letter-spacing:-.055em !important; font-weight:760 !important; max-width:820px; }
.rfg-hero-lede, .rfg-hero-lede p { color:rgba(255,255,255,.80) !important; font-size:19px !important; line-height:1.65 !important; max-width:680px; }
.rfg-hero-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:18px; }
.rfg-hero-micro, .rfg-hero-micro p { color:rgba(255,255,255,.55) !important; font-size:13px !important; line-height:1.5 !important; margin-top:14px !important; }
.rfg-cake-stage { position:relative; min-height:600px; display:flex; align-items:center; justify-content:center; perspective:1200px; transform-style:preserve-3d; }
.rfg-cake-stage::before { content:""; position:absolute; width:470px; height:470px; border-radius:50%; background:radial-gradient(circle,rgba(249,175,58,.20),rgba(249,175,58,.03) 60%,transparent 72%); filter:blur(2px); animation:rfgPulse 5.6s ease-in-out infinite; }
.rfg-cake-stage::after { content:""; position:absolute; width:440px; height:70px; bottom:80px; left:50%; transform:translateX(-50%); border-radius:50%; background:rgba(0,0,0,.34); filter:blur(28px); }
.rfg-cake-hero { position:relative; z-index:3; transform-style:preserve-3d; transform:perspective(1200px) rotateX(var(--rfg-rx,0deg)) rotateY(var(--rfg-ry,0deg)) translateZ(36px); transition:transform .18s ease-out; }
.rfg-cake-hero img { width:min(100%,520px) !important; max-height:560px; object-fit:contain; filter:drop-shadow(0 34px 40px rgba(0,0,0,.28)); animation:rfgFloat 5.2s ease-in-out infinite; }
.rfg-float-card { position:absolute; z-index:5; padding:15px 18px; min-width:150px; border-radius:18px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); box-shadow:0 18px 50px rgba(0,0,0,.18); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.rfg-float-card .elementor-heading-title, .rfg-float-card { color:#fff !important; font-size:14px !important; font-weight:780 !important; line-height:1.25 !important; }
.rfg-float-a { top:115px; right:0; transform:translateZ(80px) rotate(4deg); animation:rfgCardFloat 5.8s ease-in-out infinite; }
.rfg-float-b { bottom:125px; left:-24px; transform:translateZ(90px) rotate(-5deg); animation:rfgCardFloat 6.4s ease-in-out infinite reverse; }
.rfg-float-c { top:240px; left:-10px; transform:translateZ(60px) rotate(2deg); animation:rfgCardFloat 7s ease-in-out infinite; }

/* stats */
.rfg-stat-section { position:relative; z-index:5; margin-top:-10px; padding:34px 0 30px; background:transparent; }
.rfg-stat-grid { width:min(1120px,calc(100% - 48px)); margin-inline:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.rfg-stat-card { padding:24px 22px; border-radius:22px; background:#fff; border:1px solid var(--rfg-line); box-shadow:var(--rfg-shadow-soft); text-align:center; }
.rfg-stat-number .elementor-heading-title, .rfg-stat-number { color:var(--rfg-navy) !important; font-size:25px !important; line-height:1.1 !important; letter-spacing:-.03em !important; font-weight:850 !important; }
.rfg-stat-label, .rfg-stat-label p { color:var(--rfg-muted) !important; font-size:13px !important; line-height:1.45 !important; margin:4px 0 0 !important; }

/* split story */
.rfg-story-inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:flex; align-items:center; gap:76px; }
.rfg-story-copy { width:48%; }
.rfg-story-photo { width:52%; position:relative; }
.rfg-photo-frame { position:relative; overflow:hidden; border-radius:var(--rfg-radius-xl); box-shadow:var(--rfg-shadow); background:var(--rfg-navy); }
.rfg-photo-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(13,23,56,.38)); pointer-events:none; }
.rfg-photo-frame img { width:100% !important; height:560px !important; object-fit:cover; display:block; transform:scale(1.02); transition:transform 1.1s cubic-bezier(.2,.8,.2,1); }
.rfg-photo-frame:hover img { transform:scale(1.055); }
.rfg-photo-note { position:absolute; z-index:4; left:28px; right:28px; bottom:28px; padding:18px 20px; border-radius:18px; background:rgba(255,255,255,.92); box-shadow:0 18px 40px rgba(0,0,0,.14); backdrop-filter:blur(12px); }
.rfg-photo-note .elementor-heading-title, .rfg-photo-note { color:var(--rfg-navy) !important; font-size:18px !important; line-height:1.3 !important; font-weight:780 !important; }

/* cards */
.rfg-soft { background:linear-gradient(180deg,#fbf8f4 0%,#f6f0eb 100%); }
.rfg-card-grid { width:min(1180px,calc(100% - 48px)); margin:50px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; perspective:1200px; }
.rfg-card { position:relative; min-height:310px; padding:32px; border-radius:28px; background:#fff; border:1px solid var(--rfg-line); box-shadow:0 18px 55px rgba(31,43,91,.08); transform-style:preserve-3d; transform:perspective(900px) rotateX(var(--rfg-rx,0deg)) rotateY(var(--rfg-ry,0deg)) translateY(0); transition:transform .2s ease-out, box-shadow .35s ease, border-color .35s ease; overflow:hidden; }
.rfg-card::before { content:""; position:absolute; width:130px; height:130px; right:-48px; top:-52px; border-radius:50%; background:radial-gradient(circle,var(--rfg-gold-soft),rgba(249,175,58,0)); opacity:.55; }
.rfg-card:hover { box-shadow:0 28px 80px rgba(31,43,91,.15); border-color:rgba(249,175,58,.45); }
.rfg-card-index .elementor-heading-title, .rfg-card-index { display:inline-flex; width:48px; height:48px; align-items:center; justify-content:center; border-radius:16px; background:var(--rfg-navy); color:#fff !important; font-size:14px !important; font-weight:850 !important; box-shadow:0 12px 28px rgba(31,43,91,.2); }
.rfg-card-title .elementor-heading-title, .rfg-card-title { margin-top:22px; color:var(--rfg-navy) !important; font-size:26px !important; line-height:1.08 !important; letter-spacing:-.035em !important; font-weight:800 !important; }
.rfg-card-copy, .rfg-card-copy p { color:var(--rfg-muted) !important; font-size:16px !important; line-height:1.65 !important; }

/* cake experience */
.rfg-experience { background:var(--rfg-cocoa); color:#fff; overflow:hidden; }
.rfg-experience::before { content:""; position:absolute; width:620px; height:620px; border-radius:50%; left:-230px; top:-220px; background:radial-gradient(circle,rgba(249,175,58,.25),transparent 68%); }
.rfg-experience-inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:flex; align-items:center; gap:80px; position:relative; z-index:2; }
.rfg-experience-art { width:44%; display:flex; align-items:center; justify-content:center; position:relative; min-height:520px; }
.rfg-experience-art::before { content:""; position:absolute; width:380px; height:380px; border-radius:50%; border:1px solid rgba(255,255,255,.16); box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 112px rgba(255,255,255,.02); }
.rfg-experience-art img { position:relative; z-index:2; width:min(100%,470px) !important; filter:drop-shadow(0 35px 38px rgba(0,0,0,.25)); }
.rfg-experience-copy { width:56%; }
.rfg-chip-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.rfg-chip { padding:10px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.08); color:#fff !important; }
.rfg-chip .elementor-heading-title, .rfg-chip { color:#fff !important; font-size:13px !important; font-weight:750 !important; }

/* process */
.rfg-process-grid { width:min(1180px,calc(100% - 48px)); margin:48px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.rfg-step { position:relative; padding:30px 30px 32px; border-radius:26px; background:#fff; border:1px solid var(--rfg-line); }
.rfg-step-num .elementor-heading-title, .rfg-step-num { color:var(--rfg-gold) !important; font-size:54px !important; line-height:.8 !important; letter-spacing:-.06em !important; font-weight:850 !important; opacity:.95; }
.rfg-step-title .elementor-heading-title, .rfg-step-title { color:var(--rfg-navy)!important; font-size:24px !important; line-height:1.1 !important; letter-spacing:-.03em !important; font-weight:800 !important; }
.rfg-step-copy, .rfg-step-copy p { color:var(--rfg-muted)!important; font-size:15.5px!important; line-height:1.62!important; }

/* venues */
.rfg-venues { background:#fff; }
.rfg-venue-grid { width:min(1180px,calc(100% - 48px)); margin:46px auto 0; display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.rfg-venue-card { position:relative; padding:24px 26px; border-radius:22px; background:linear-gradient(145deg,#fff,#fbfaf8); border:1px solid var(--rfg-line); box-shadow:0 12px 35px rgba(31,43,91,.055); transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.rfg-venue-card:hover { transform:translateY(-4px); border-color:rgba(249,175,58,.52); box-shadow:0 20px 50px rgba(31,43,91,.1); }
.rfg-venue-city .elementor-heading-title, .rfg-venue-city { color:var(--rfg-gold)!important; font-size:12px!important; line-height:1.2!important; text-transform:uppercase; letter-spacing:.12em!important; font-weight:850!important; }
.rfg-venue-name .elementor-heading-title, .rfg-venue-name { color:var(--rfg-navy)!important; font-size:21px!important; line-height:1.18!important; letter-spacing:-.025em!important; font-weight:800!important; }
.rfg-venue-address, .rfg-venue-address p { color:var(--rfg-muted)!important; font-size:14px!important; line-height:1.5!important; margin-top:3px!important; }

/* fit check */
.rfg-fit { background:linear-gradient(135deg,#0d1738,#1f2b5b 62%,#26366c); color:#fff; overflow:hidden; }
.rfg-fit::after { content:""; position:absolute; width:680px; height:680px; right:-350px; bottom:-360px; border-radius:50%; border:1px solid rgba(249,175,58,.24); box-shadow:0 0 0 70px rgba(249,175,58,.04),0 0 0 150px rgba(249,175,58,.025); }
.rfg-fit-grid { width:min(1180px,calc(100% - 48px)); margin:44px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; position:relative; z-index:2; }
.rfg-fit-card { padding:26px; border-radius:22px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(12px); }
.rfg-fit-title .elementor-heading-title, .rfg-fit-title { color:#fff!important; font-size:18px!important; line-height:1.25!important; font-weight:760!important; }
.rfg-fit-copy, .rfg-fit-copy p { color:rgba(255,255,255,.65)!important; font-size:14px!important; line-height:1.55!important; }
.rfg-disclosure, .rfg-disclosure p { max-width:980px; margin:28px auto 0!important; color:rgba(255,255,255,.5)!important; font-size:12.5px!important; line-height:1.58!important; text-align:center; position:relative; z-index:2; }

/* register */
.rfg-register { background:linear-gradient(180deg,#fbf8f4,#fffdfa); }
.rfg-register-inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:flex; align-items:stretch; gap:28px; }
.rfg-register-copy { width:42%; padding:52px; border-radius:32px; background:var(--rfg-cocoa); color:#fff; position:relative; overflow:hidden; }
.rfg-register-copy::after { content:""; position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(249,175,58,.25),transparent 66%); right:-140px; bottom:-130px; }
.rfg-contact-block, .rfg-contact-block p { color:rgba(255,255,255,.78)!important; font-size:15px!important; line-height:1.72!important; position:relative; z-index:2; }
.rfg-contact-block a { color:#fff; text-decoration-thickness:1px; text-underline-offset:3px; }
.rfg-register-formcard { width:58%; padding:42px; border-radius:32px; background:#fff; border:1px solid var(--rfg-line); box-shadow:var(--rfg-shadow); }

/* form widget */
.rfg-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rfg-field { display:flex; flex-direction:column; gap:8px; }
.rfg-field-full { grid-column:1 / -1; }
.rfg-form label { color:var(--rfg-navy); font-size:13px; font-weight:800; letter-spacing:-.005em; }
.rfg-form input, .rfg-form select, .rfg-form textarea {
  width:100%; min-height:54px; padding:0 15px; border:1px solid rgba(31,43,91,.14); border-radius:14px; background:#fbfaf8; color:var(--rfg-ink); font:inherit; font-size:15px; outline:none; transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.rfg-form input:focus, .rfg-form select:focus, .rfg-form textarea:focus { border-color:rgba(249,175,58,.9); background:#fff; box-shadow:0 0 0 4px rgba(249,175,58,.14); }
.rfg-form .rfg-check { grid-column:1/-1; display:flex; align-items:flex-start; gap:10px; padding:4px 2px; }
.rfg-form .rfg-check input { width:18px; min-height:18px; height:18px; margin-top:2px; flex:0 0 auto; accent-color:var(--rfg-gold); }
.rfg-form .rfg-check label { font-weight:500; line-height:1.5; color:var(--rfg-muted); }
.rfg-form-submit { grid-column:1/-1; margin-top:4px; border:0; cursor:pointer; width:100%; }
.rfg-form-status { grid-column:1/-1; min-height:20px; font-size:14px; line-height:1.45; }
.rfg-form-status.is-success { color:#176e42; }
.rfg-form-status.is-error { color:#a0372f; }
.rfg-hp { position:absolute!important; left:-99999px!important; opacity:0!important; pointer-events:none!important; }
.rfg-form-note, .rfg-form-note p { color:#8b8d97!important; font-size:12px!important; line-height:1.45!important; margin-top:13px!important; }

/* FAQ */
.rfg-faq-grid { width:min(1020px,calc(100% - 48px)); margin:46px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rfg-faq { padding:25px 26px; border-radius:20px; background:#fff; border:1px solid var(--rfg-line); }
.rfg-faq-q .elementor-heading-title, .rfg-faq-q { color:var(--rfg-navy)!important; font-size:18px!important; line-height:1.3!important; letter-spacing:-.015em!important; font-weight:800!important; }
.rfg-faq-a, .rfg-faq-a p { color:var(--rfg-muted)!important; font-size:14.5px!important; line-height:1.62!important; }

/* final CTA + footer */
.rfg-final { padding:105px 0; background:var(--rfg-cocoa); color:#fff; text-align:center; overflow:hidden; }
.rfg-final::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 0,rgba(249,175,58,.24),transparent 40%); }
.rfg-final-inner { width:min(900px,calc(100% - 48px)); margin-inline:auto; position:relative; z-index:2; }
.rfg-final-title .elementor-heading-title, .rfg-final-title { color:#fff!important; font-size:clamp(44px,6vw,76px)!important; line-height:.98!important; letter-spacing:-.05em!important; font-weight:760!important; }
.rfg-final-copy, .rfg-final-copy p { color:rgba(255,255,255,.72)!important; font-size:18px!important; line-height:1.65!important; }
.rfg-footer { background:#09122d; padding:46px 0; color:#fff; }
.rfg-footer-inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; display:flex; justify-content:space-between; align-items:flex-end; gap:40px; }
.rfg-footer-logo img { width:150px!important; filter:brightness(0) invert(1); opacity:.95; }
.rfg-footer-text, .rfg-footer-text p { color:rgba(255,255,255,.56)!important; font-size:12px!important; line-height:1.6!important; text-align:right; max-width:700px; }

/* mobile CTA */
.rfg-mobile-bar { display:none; }

/* motion */
.rfg-reveal { opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); }
.rfg-reveal.is-visible { opacity:1; transform:translateY(0); }
.rfg-reveal-delay-1 { transition-delay:.08s; }
.rfg-reveal-delay-2 { transition-delay:.16s; }
.rfg-reveal-delay-3 { transition-delay:.24s; }
@keyframes rfgFloat { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-16px) rotate(1deg); } }
@keyframes rfgCardFloat { 0%,100% { translate:0 0; } 50% { translate:0 -10px; } }
@keyframes rfgPulse { 0%,100% { transform:scale(.96); opacity:.72; } 50% { transform:scale(1.04); opacity:1; } }

@media (max-width: 1024px) {
  .rfg-hero-inner { gap:34px; }
  .rfg-hero-copycol { width:58%; }
  .rfg-hero-artcol { width:42%; }
  .rfg-cake-stage { min-height:500px; }
  .rfg-float-a { right:-18px; }
  .rfg-story-inner, .rfg-experience-inner { gap:46px; }
  .rfg-photo-frame img { height:500px!important; }
  .rfg-register-copy { padding:38px; }
  .rfg-register-formcard { padding:34px; }
}

@media (max-width: 767px) {
  .rfg-shell, .rfg-nav-inner, .rfg-hero-inner, .rfg-stat-grid, .rfg-story-inner, .rfg-card-grid, .rfg-experience-inner, .rfg-process-grid, .rfg-venue-grid, .rfg-fit-grid, .rfg-register-inner, .rfg-faq-grid, .rfg-footer-inner { width:min(100% - 32px, 680px); }
  .rfg-nav-inner { min-height:70px; }
  .rfg-logo img { width:145px!important; }
  .rfg-nav-note { display:none; }
  .rfg-nav .rfg-btn-small { display:none; }
  .rfg-section { padding:82px 0; }
  .rfg-hero { padding:64px 0 92px; }
  .rfg-hero::after { bottom:-125px; }
  .rfg-hero-inner { flex-direction:column; gap:24px; }
  .rfg-hero-copycol, .rfg-hero-artcol, .rfg-story-copy, .rfg-story-photo, .rfg-experience-art, .rfg-experience-copy, .rfg-register-copy, .rfg-register-formcard { width:100%; }
  .rfg-hero-title .elementor-heading-title, .rfg-hero-title { font-size:clamp(46px,14vw,68px)!important; }
  .rfg-hero-lede, .rfg-hero-lede p { font-size:17px!important; }
  .rfg-hero-actions { align-items:stretch; }
  .rfg-hero-actions > * { width:100%; }
  .rfg-hero-actions .elementor-button { width:100%; }
  .rfg-cake-stage { min-height:420px; margin-top:6px; }
  .rfg-cake-hero img { max-height:390px; width:min(92%,420px)!important; }
  .rfg-float-card { padding:11px 13px; min-width:120px; }
  .rfg-float-a { top:40px; right:0; }
  .rfg-float-b { left:0; bottom:72px; }
  .rfg-float-c { left:10px; top:190px; }
  .rfg-stat-grid { grid-template-columns:1fr 1fr; }
  .rfg-story-inner, .rfg-experience-inner, .rfg-register-inner { flex-direction:column; }
  .rfg-story-copy { order:1; }
  .rfg-story-photo { order:2; }
  .rfg-photo-frame img { height:400px!important; }
  .rfg-card-grid, .rfg-process-grid, .rfg-fit-grid, .rfg-venue-grid, .rfg-faq-grid { grid-template-columns:1fr; }
  .rfg-card { min-height:auto; }
  .rfg-experience-art { min-height:390px; }
  .rfg-experience-art img { width:min(92%,400px)!important; }
  .rfg-register-copy { padding:34px 28px; }
  .rfg-register-formcard { padding:28px 22px; }
  .rfg-form { grid-template-columns:1fr; }
  .rfg-field, .rfg-field-full, .rfg-form .rfg-check, .rfg-form-submit, .rfg-form-status { grid-column:1; }
  .rfg-footer-inner { flex-direction:column; align-items:flex-start; }
  .rfg-footer-text, .rfg-footer-text p { text-align:left; }
  .rfg-mobile-bar { position:fixed; display:block; left:14px; right:14px; bottom:14px; z-index:999; padding:9px; border-radius:999px; background:rgba(13,23,56,.82); border:1px solid rgba(255,255,255,.16); box-shadow:0 18px 50px rgba(0,0,0,.25); backdrop-filter:blur(16px); }
  .rfg-mobile-bar .elementor-button { width:100%; }
  body.rfg-retirement-page { padding-bottom:82px; }
}

@media (max-width: 420px) {
  .rfg-stat-grid { grid-template-columns:1fr; }
  .rfg-section-title .elementor-heading-title, .rfg-section-title { font-size:38px!important; }
  .rfg-float-c { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .rfg-reveal { opacity:1!important; transform:none!important; }
  .rfg-cake-hero { transform:none!important; }
}

/* Elementor container specificity overrides */
.rfg-nav-inner,
.rfg-nav-right,
.rfg-hero-inner,
.rfg-hero-actions,
.rfg-story-inner,
.rfg-experience-inner,
.rfg-chip-row,
.rfg-register-inner,
.rfg-footer-inner { display:flex !important; flex-direction:row !important; }
.rfg-cake-stage,
.rfg-experience-art { display:flex !important; }
.rfg-stat-grid,
.rfg-card-grid,
.rfg-process-grid,
.rfg-venue-grid,
.rfg-fit-grid,
.rfg-faq-grid { display:grid !important; }
#experience, #venues, #register { scroll-margin-top:24px; }
@media (max-width: 767px) {
  .rfg-hero-inner,
  .rfg-story-inner,
  .rfg-experience-inner,
  .rfg-register-inner,
  .rfg-footer-inner { flex-direction:column !important; }
  .rfg-stat-grid { grid-template-columns:1fr 1fr !important; }
  .rfg-card-grid,
  .rfg-process-grid,
  .rfg-venue-grid,
  .rfg-fit-grid,
  .rfg-faq-grid { grid-template-columns:1fr !important; }
}
@media (max-width: 420px) {
  .rfg-stat-grid { grid-template-columns:1fr !important; }
}

/* ==============================================================
   Elementor frontend hardening — v1.2
   Elementor containers default to column and 100% width. The
   standalone preview does not have those defaults, so explicitly
   define every structural relationship used by this design.
   ============================================================== */
body.rfg-retirement-page .elementor-element.rfg-nav-inner.e-con {
  display:flex !important;
  flex-direction:row !important;
  --flex-direction:row !important;
  flex-wrap:nowrap !important;
  --flex-wrap:nowrap !important;
  align-items:center !important;
  --align-items:center !important;
  justify-content:space-between !important;
  --justify-content:space-between !important;
}
body.rfg-retirement-page .elementor-element.rfg-nav-right.e-con,
body.rfg-retirement-page .elementor-element.rfg-hero-actions.e-con,
body.rfg-retirement-page .elementor-element.rfg-chip-row.e-con {
  display:flex !important;
  flex-direction:row !important;
  --flex-direction:row !important;
  flex-wrap:wrap !important;
  --flex-wrap:wrap !important;
  align-items:center !important;
  --align-items:center !important;
}
body.rfg-retirement-page .elementor-element.rfg-nav-right.e-con {
  justify-content:flex-end !important;
  --justify-content:flex-end !important;
}

/* Desktop split layouts: use CSS Grid so Elementor flex defaults cannot
   collapse the visual columns into a vertical stack. */
body.rfg-retirement-page .elementor-element.rfg-hero-inner.e-con {
  display:grid !important;
  grid-template-columns:minmax(0, 1.12fr) minmax(360px, .88fr) !important;
  align-items:center !important;
  gap:64px !important;
  --display:grid !important;
}
body.rfg-retirement-page .elementor-element.rfg-story-inner.e-con {
  display:grid !important;
  grid-template-columns:minmax(0, .92fr) minmax(360px, 1.08fr) !important;
  align-items:center !important;
  gap:76px !important;
  --display:grid !important;
}
body.rfg-retirement-page .elementor-element.rfg-experience-inner.e-con {
  display:grid !important;
  grid-template-columns:minmax(360px, .88fr) minmax(0, 1.12fr) !important;
  align-items:center !important;
  gap:80px !important;
  --display:grid !important;
}
body.rfg-retirement-page .elementor-element.rfg-register-inner.e-con {
  display:grid !important;
  grid-template-columns:minmax(320px, .82fr) minmax(0, 1.18fr) !important;
  align-items:stretch !important;
  gap:28px !important;
  --display:grid !important;
}

/* Elementor gives child containers their own width variables. Neutralize
   those on the columns whose proportions are controlled by the parent grid. */
body.rfg-retirement-page .elementor-element.rfg-hero-copycol.e-con,
body.rfg-retirement-page .elementor-element.rfg-hero-artcol.e-con,
body.rfg-retirement-page .elementor-element.rfg-story-copy.e-con,
body.rfg-retirement-page .elementor-element.rfg-story-photo.e-con,
body.rfg-retirement-page .elementor-element.rfg-experience-art.e-con,
body.rfg-retirement-page .elementor-element.rfg-experience-copy.e-con,
body.rfg-retirement-page .elementor-element.rfg-register-copy.e-con,
body.rfg-retirement-page .elementor-element.rfg-register-formcard.e-con {
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  --width:auto !important;
  --content-width:100% !important;
  flex:none !important;
}

body.rfg-retirement-page .elementor-element.rfg-cake-stage.e-con,
body.rfg-retirement-page .elementor-element.rfg-experience-art.e-con {
  display:flex !important;
  flex-direction:column !important;
  --flex-direction:column !important;
  align-items:center !important;
  --align-items:center !important;
  justify-content:center !important;
  --justify-content:center !important;
}
body.rfg-retirement-page .rfg-hero-actions > .elementor-widget,
body.rfg-retirement-page .rfg-nav-right > .elementor-widget,
body.rfg-retirement-page .rfg-chip-row > .elementor-widget {
  width:auto !important;
  max-width:none !important;
  --width:auto !important;
  flex:0 0 auto !important;
}
body.rfg-retirement-page .elementor-element.rfg-float-card.elementor-widget {
  width:auto !important;
  max-width:max-content !important;
  --width:auto !important;
}
body.rfg-retirement-page .elementor-element.rfg-cake-hero.elementor-widget {
  width:100% !important;
  --width:100% !important;
}
body.rfg-retirement-page .elementor-element.rfg-footer-inner.e-con {
  display:flex !important;
  flex-direction:row !important;
  --flex-direction:row !important;
  justify-content:space-between !important;
  --justify-content:space-between !important;
  align-items:flex-end !important;
  --align-items:flex-end !important;
}

/* Grid sections also need to override Elementor's --display variable. */
body.rfg-retirement-page .elementor-element.rfg-stat-grid.e-con,
body.rfg-retirement-page .elementor-element.rfg-card-grid.e-con,
body.rfg-retirement-page .elementor-element.rfg-process-grid.e-con,
body.rfg-retirement-page .elementor-element.rfg-venue-grid.e-con,
body.rfg-retirement-page .elementor-element.rfg-fit-grid.e-con,
body.rfg-retirement-page .elementor-element.rfg-faq-grid.e-con {
  display:grid !important;
  --display:grid !important;
}

@media (max-width: 1024px) {
  body.rfg-retirement-page .elementor-element.rfg-hero-inner.e-con {
    grid-template-columns:minmax(0, 1.08fr) minmax(320px, .92fr) !important;
    gap:34px !important;
  }
  body.rfg-retirement-page .elementor-element.rfg-story-inner.e-con,
  body.rfg-retirement-page .elementor-element.rfg-experience-inner.e-con {
    gap:46px !important;
  }
}

@media (max-width: 767px) {
  body.rfg-retirement-page .elementor-element.rfg-hero-inner.e-con,
  body.rfg-retirement-page .elementor-element.rfg-story-inner.e-con,
  body.rfg-retirement-page .elementor-element.rfg-experience-inner.e-con,
  body.rfg-retirement-page .elementor-element.rfg-register-inner.e-con {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:24px !important;
  }
  body.rfg-retirement-page .elementor-element.rfg-footer-inner.e-con {
    flex-direction:column !important;
    --flex-direction:column !important;
    align-items:flex-start !important;
    --align-items:flex-start !important;
  }
  body.rfg-retirement-page .elementor-element.rfg-hero-actions.e-con {
    flex-direction:column !important;
    --flex-direction:column !important;
    align-items:stretch !important;
    --align-items:stretch !important;
  }
  body.rfg-retirement-page .rfg-hero-actions > .elementor-widget {
    width:100% !important;
    --width:100% !important;
  }
}

/* ==============================================================
   Elementor DOM hardening — v1.3
   --------------------------------------------------------------
   Elementor's default "Boxed" container renders children inside an
   extra `.e-con-inner`. If a flex/grid rule is applied only to the outer
   `.e-con`, the actual children can still be laid out by Elementor's
   default column wrapper. These rules intentionally style BOTH possible
   DOM shapes, so the page stays correct before/after migration and inside
   the Elementor preview iframe.
   ============================================================== */

/* Make any legacy boxed wrapper transparent to our layout geometry. */
.elementor-element[class*="rfg-"] > .e-con-inner {
  box-sizing: border-box;
}
.rfg-nav-inner.e-con > .e-con-inner,
.rfg-hero-inner.e-con > .e-con-inner,
.rfg-story-inner.e-con > .e-con-inner,
.rfg-experience-inner.e-con > .e-con-inner,
.rfg-register-inner.e-con > .e-con-inner,
.rfg-footer-inner.e-con > .e-con-inner,
.rfg-stat-grid.e-con > .e-con-inner,
.rfg-card-grid.e-con > .e-con-inner,
.rfg-process-grid.e-con > .e-con-inner,
.rfg-venue-grid.e-con > .e-con-inner,
.rfg-fit-grid.e-con > .e-con-inner,
.rfg-faq-grid.e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Row parents — apply to the outer container and to a legacy inner wrapper. */
.rfg-nav-inner.e-con,
.rfg-nav-inner.e-con > .e-con-inner,
.rfg-nav-right.e-con,
.rfg-nav-right.e-con > .e-con-inner,
.rfg-hero-actions.e-con,
.rfg-hero-actions.e-con > .e-con-inner,
.rfg-chip-row.e-con,
.rfg-chip-row.e-con > .e-con-inner,
.rfg-footer-inner.e-con,
.rfg-footer-inner.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
}
.rfg-nav-inner.e-con,
.rfg-nav-inner.e-con > .e-con-inner {
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
}
.rfg-nav-right.e-con,
.rfg-nav-right.e-con > .e-con-inner {
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
}
.rfg-hero-actions.e-con,
.rfg-hero-actions.e-con > .e-con-inner,
.rfg-chip-row.e-con,
.rfg-chip-row.e-con > .e-con-inner {
  align-items: center !important;
  flex-wrap: wrap !important;
}
.rfg-footer-inner.e-con,
.rfg-footer-inner.e-con > .e-con-inner {
  align-items: flex-end !important;
  justify-content: space-between !important;
}

/* Split layouts — grid is deliberately used here because it is deterministic
   across Elementor flex defaults. The rule also covers the boxed wrapper. */
.rfg-hero-inner.e-con,
.rfg-hero-inner.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr) !important;
  align-items: center !important;
  gap: 64px !important;
}
.rfg-story-inner.e-con,
.rfg-story-inner.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr) !important;
  align-items: center !important;
  gap: 76px !important;
}
.rfg-experience-inner.e-con,
.rfg-experience-inner.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(360px, .88fr) minmax(0, 1.12fr) !important;
  align-items: center !important;
  gap: 80px !important;
}
.rfg-register-inner.e-con,
.rfg-register-inner.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr) !important;
  align-items: stretch !important;
  gap: 28px !important;
}

/* Grid collection sections — target the actual child-owning node. */
.rfg-stat-grid.e-con,
.rfg-stat-grid.e-con > .e-con-inner,
.rfg-card-grid.e-con,
.rfg-card-grid.e-con > .e-con-inner,
.rfg-process-grid.e-con,
.rfg-process-grid.e-con > .e-con-inner,
.rfg-venue-grid.e-con,
.rfg-venue-grid.e-con > .e-con-inner,
.rfg-fit-grid.e-con,
.rfg-fit-grid.e-con > .e-con-inner,
.rfg-faq-grid.e-con,
.rfg-faq-grid.e-con > .e-con-inner {
  display: grid !important;
}
.rfg-stat-grid.e-con,
.rfg-stat-grid.e-con > .e-con-inner { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
.rfg-card-grid.e-con,
.rfg-card-grid.e-con > .e-con-inner,
.rfg-process-grid.e-con,
.rfg-process-grid.e-con > .e-con-inner,
.rfg-fit-grid.e-con,
.rfg-fit-grid.e-con > .e-con-inner { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.rfg-venue-grid.e-con,
.rfg-venue-grid.e-con > .e-con-inner,
.rfg-faq-grid.e-con,
.rfg-faq-grid.e-con > .e-con-inner { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }

/* Column containers used as artwork stages must not inherit row behavior. */
.rfg-cake-stage.e-con,
.rfg-cake-stage.e-con > .e-con-inner,
.rfg-experience-art.e-con,
.rfg-experience-art.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Elementor-generated widths should not fight the parent grid tracks. */
.rfg-hero-copycol.e-con,
.rfg-hero-artcol.e-con,
.rfg-story-copy.e-con,
.rfg-story-photo.e-con,
.rfg-experience-art.e-con,
.rfg-experience-copy.e-con,
.rfg-register-copy.e-con,
.rfg-register-formcard.e-con {
  min-width: 0 !important;
  max-width: none !important;
}

@media (max-width: 1024px) {
  .rfg-hero-inner.e-con,
  .rfg-hero-inner.e-con > .e-con-inner {
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr) !important;
    gap: 34px !important;
  }
  .rfg-story-inner.e-con,
  .rfg-story-inner.e-con > .e-con-inner,
  .rfg-experience-inner.e-con,
  .rfg-experience-inner.e-con > .e-con-inner {
    gap: 46px !important;
  }
}

@media (max-width: 767px) {
  .rfg-hero-inner.e-con,
  .rfg-hero-inner.e-con > .e-con-inner,
  .rfg-story-inner.e-con,
  .rfg-story-inner.e-con > .e-con-inner,
  .rfg-experience-inner.e-con,
  .rfg-experience-inner.e-con > .e-con-inner,
  .rfg-register-inner.e-con,
  .rfg-register-inner.e-con > .e-con-inner {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 24px !important;
  }
  .rfg-footer-inner.e-con,
  .rfg-footer-inner.e-con > .e-con-inner,
  .rfg-hero-actions.e-con,
  .rfg-hero-actions.e-con > .e-con-inner {
    flex-direction: column !important;
  }
  .rfg-footer-inner.e-con,
  .rfg-footer-inner.e-con > .e-con-inner {
    align-items: flex-start !important;
  }
  .rfg-hero-actions.e-con,
  .rfg-hero-actions.e-con > .e-con-inner {
    align-items: stretch !important;
  }
  .rfg-stat-grid.e-con,
  .rfg-stat-grid.e-con > .e-con-inner { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .rfg-card-grid.e-con,
  .rfg-card-grid.e-con > .e-con-inner,
  .rfg-process-grid.e-con,
  .rfg-process-grid.e-con > .e-con-inner,
  .rfg-venue-grid.e-con,
  .rfg-venue-grid.e-con > .e-con-inner,
  .rfg-fit-grid.e-con,
  .rfg-fit-grid.e-con > .e-con-inner,
  .rfg-faq-grid.e-con,
  .rfg-faq-grid.e-con > .e-con-inner {
    grid-template-columns: minmax(0,1fr) !important;
  }
}

@media (max-width: 420px) {
  .rfg-stat-grid.e-con,
  .rfg-stat-grid.e-con > .e-con-inner { grid-template-columns: minmax(0,1fr) !important; }
}

/* v1.3 final split-layout authority: these sections are native Elementor
   Flexbox rows (not CSS Grid), so the Direction and Width controls shown in
   Elementor correspond to the layout the visitor actually sees. */
.rfg-hero-inner.e-con,
.rfg-hero-inner.e-con > .e-con-inner,
.rfg-story-inner.e-con,
.rfg-story-inner.e-con > .e-con-inner,
.rfg-experience-inner.e-con,
.rfg-experience-inner.e-con > .e-con-inner,
.rfg-register-inner.e-con,
.rfg-register-inner.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.rfg-hero-inner.e-con,
.rfg-hero-inner.e-con > .e-con-inner { align-items:center !important; gap:64px !important; }
.rfg-story-inner.e-con,
.rfg-story-inner.e-con > .e-con-inner { align-items:center !important; gap:76px !important; }
.rfg-experience-inner.e-con,
.rfg-experience-inner.e-con > .e-con-inner { align-items:center !important; gap:80px !important; }
.rfg-register-inner.e-con,
.rfg-register-inner.e-con > .e-con-inner { align-items:stretch !important; gap:28px !important; }

/* Undo the v1.2 emergency `width:auto` rule. Widths are now stored natively
   in Elementor JSON and exposed in the editor, with these values as fallbacks. */
.rfg-hero-copycol.e-con { width:var(--width,56%) !important; }
.rfg-hero-artcol.e-con { width:var(--width,44%) !important; }
.rfg-story-copy.e-con { width:var(--width,48%) !important; }
.rfg-story-photo.e-con { width:var(--width,52%) !important; }
.rfg-experience-art.e-con { width:var(--width,44%) !important; }
.rfg-experience-copy.e-con { width:var(--width,56%) !important; }
.rfg-register-copy.e-con { width:var(--width,42%) !important; }
.rfg-register-formcard.e-con { width:var(--width,58%) !important; }

@media (max-width:1024px) {
  .rfg-hero-inner.e-con,
  .rfg-hero-inner.e-con > .e-con-inner { gap:34px !important; }
  .rfg-story-inner.e-con,
  .rfg-story-inner.e-con > .e-con-inner,
  .rfg-experience-inner.e-con,
  .rfg-experience-inner.e-con > .e-con-inner { gap:46px !important; }
}
@media (max-width:767px) {
  .rfg-hero-inner.e-con,
  .rfg-hero-inner.e-con > .e-con-inner,
  .rfg-story-inner.e-con,
  .rfg-story-inner.e-con > .e-con-inner,
  .rfg-experience-inner.e-con,
  .rfg-experience-inner.e-con > .e-con-inner,
  .rfg-register-inner.e-con,
  .rfg-register-inner.e-con > .e-con-inner {
    flex-direction:column !important;
    gap:24px !important;
  }
  .rfg-hero-copycol.e-con,
  .rfg-hero-artcol.e-con,
  .rfg-story-copy.e-con,
  .rfg-story-photo.e-con,
  .rfg-experience-art.e-con,
  .rfg-experience-copy.e-con,
  .rfg-register-copy.e-con,
  .rfg-register-formcard.e-con { width:100% !important; }
}
