/* =====================================================================
 * RSVPingo Blog Design — main stylesheet
 * Mirrors the marketing homepage palette, typography, and motion.
 * Accent: #1f5132 (RSVPingo green). No gradients, no blue.
 * Sections:
 *   1. Base / variables
 *   2. Nav
 *   3. Archive
 *   4. Single post hero + body
 *   5. Related posts
 *   6. Footer
 *   7. Post components (.rsvpingo-l5-* used inside articles)
 *   8. Mobile
 * ===================================================================== */

/* ---------- 1. Base / variables ---------- */
body.rsvpingo-bd{
  --navy:#0d1f3c;--navy-2:#162847;--navy-3:#1f3560;
  --green:#1f5132;--green-2:#2d6f47;--green-3:#3d8a5a;--green-dark:#163b24;
  --green-tint:#e8f0eb;--green-tint-2:#d4e6dc;--green-soft:#f3f8f5;
  --white:#ffffff;--off:#f7f8fc;
  --g1:#f0f4fb;--g2:#dde6f5;--g3:#a8bcdb;--g4:#5a7499;--g5:#2d4263;
  --text:#0d1f3c;--text-2:#3d5478;--text-3:#7a96b8;
  --border:#e0e8f4;--border-2:#c8d8ee;
  --shadow-sm:0 1px 2px rgba(13,31,60,0.06),0 2px 8px rgba(13,31,60,0.06);
  --shadow:0 2px 4px rgba(13,31,60,0.05),0 8px 32px rgba(13,31,60,0.1);
  --shadow-lg:0 8px 16px rgba(13,31,60,0.06),0 32px 80px rgba(13,31,60,0.14);

  margin:0;padding:0;
  font-family:'Bricolage Grotesque',-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;
  background:var(--white);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.rsvpingo-bd *,body.rsvpingo-bd *::before,body.rsvpingo-bd *::after{box-sizing:border-box;}
body.rsvpingo-bd a{color:inherit;}

.rsvpingo-bd-container{
  max-width:1180px;margin:0 auto;padding:0 1.5rem;
}

/* ---------- 2. Nav ---------- */
.rsvpingo-bd-nav{
  position:fixed;top:0;left:0;right:0;z-index:400;
  height:60px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2.5rem;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.rsvpingo-bd-nav-logo{
  font-size:1.15rem;font-weight:800;
  color:var(--navy);text-decoration:none;
  letter-spacing:-0.02em;
  display:flex;align-items:center;gap:0.5rem;
}
.rsvpingo-bd-nav-logo-img{
  height:24px;width:auto;display:block;
}
.rsvpingo-bd-nav-dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--green);
  display:inline-block;
  animation:rsvpingo-bd-dotpulse 3s ease-in-out infinite;
}
@keyframes rsvpingo-bd-dotpulse{0%,100%{transform:scale(1);}50%{transform:scale(1.4);}}
.rsvpingo-bd-nav-links{display:flex;align-items:center;gap:0.25rem;list-style:none;margin:0;padding:0;}
.rsvpingo-bd-nav-links a{
  text-decoration:none;font-size:0.88rem;font-weight:500;
  color:var(--text-2);padding:0.45rem 0.9rem;border-radius:8px;
  transition:background 0.15s,color 0.15s;
}
.rsvpingo-bd-nav-links a:hover,
.rsvpingo-bd-nav-links a.rsvpingo-bd-nav-current{
  background:var(--green-tint);color:var(--green);
}
.rsvpingo-bd-nav-r{display:flex;align-items:center;gap:0.75rem;}
.rsvpingo-bd-btn-ghost{
  font-family:inherit;
  font-size:0.85rem;font-weight:600;color:var(--text-2);
  background:none;border:none;cursor:pointer;text-decoration:none;
  padding:0.45rem 0.85rem;border-radius:8px;
  transition:background 0.15s,color 0.15s;
}
.rsvpingo-bd-btn-ghost:hover{background:var(--green-tint);color:var(--green);}
.rsvpingo-bd-btn-primary{
  font-family:inherit;
  font-size:0.85rem;font-weight:700;
  color:#ffffff !important;background:var(--green);
  border:none;cursor:pointer;text-decoration:none;
  padding:0.55rem 1.15rem;border-radius:8px;
  transition:background 0.15s,transform 0.1s;
}
.rsvpingo-bd-btn-primary:hover{background:var(--green-dark);color:#ffffff !important;transform:translateY(-1px);}
.rsvpingo-bd-nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:0.4rem;}
.rsvpingo-bd-nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px;transition:transform 0.2s;}

/* ---------- Mega menu ---------- */
.rsvpingo-bd-nav-links .rsvpingo-bd-mega{position:relative;padding-bottom:12px;margin-bottom:-12px;}
.rsvpingo-bd-mega-trigger{
  display:inline-flex;align-items:center;gap:0.35rem;
  cursor:pointer;
}
.rsvpingo-bd-mega-chev{
  transition:transform 0.18s;
  opacity:0.7;
}
.rsvpingo-bd-mega:hover .rsvpingo-bd-mega-chev,
.rsvpingo-bd-mega:focus-within .rsvpingo-bd-mega-chev{
  transform:rotate(180deg);
  opacity:1;
}
.rsvpingo-bd-mega-panel{
  position:fixed;
  top:60px;left:50%;
  transform:translateX(-50%) translateY(-6px);
  width:min(1080px, calc(100vw - 2rem));
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 12px 28px rgba(13,31,60,0.08),0 32px 80px rgba(13,31,60,0.14);
  padding:1.5rem 1.5rem 1rem;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.18s ease,transform 0.18s ease;
  z-index:399;
}
.rsvpingo-bd-mega:hover .rsvpingo-bd-mega-panel,
.rsvpingo-bd-mega:focus-within .rsvpingo-bd-mega-panel,
.rsvpingo-bd-mega.open .rsvpingo-bd-mega-panel{
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.rsvpingo-bd-mega-eyebrow{
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:0.65rem;font-weight:600;
  color:var(--green);
  text-transform:uppercase;letter-spacing:0.12em;
  margin:0 0 1rem 0.85rem;
}
.rsvpingo-bd-mega-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0.35rem;
}
.rsvpingo-bd-mega-card{
  display:flex;align-items:flex-start;gap:0.85rem;
  padding:0.85rem;border-radius:10px;
  text-decoration:none;color:inherit;
  transition:background 0.12s;
}
.rsvpingo-bd-mega-card:hover{
  background:var(--green-tint);
}
.rsvpingo-bd-mega-icon{
  width:38px;height:38px;flex-shrink:0;
  border-radius:9px;
  background:var(--green-tint);
  color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;line-height:1;
  transition:background 0.12s,color 0.12s;
}
.rsvpingo-bd-mega-card:hover .rsvpingo-bd-mega-icon{
  background:var(--green);
  color:#fff;
}
.rsvpingo-bd-mega-text{display:flex;flex-direction:column;gap:0.15rem;}
.rsvpingo-bd-mega-title{
  font-size:0.92rem;font-weight:700;
  color:var(--navy);
  letter-spacing:-0.01em;
  display:inline-flex;align-items:center;gap:0.5rem;
}
.rsvpingo-bd-mega-badge{
  display:inline-block;
  background:var(--green);
  color:#fff;
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:0.55rem;font-weight:700;
  letter-spacing:0.08em;
  padding:0.15rem 0.4rem;
  border-radius:99px;
  line-height:1;
  vertical-align:middle;
}
.rsvpingo-bd-mega-desc{
  font-size:0.8rem;
  color:var(--text-2);
  line-height:1.45;
}
.rsvpingo-bd-mega-foot{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:1rem;padding:1rem 0.85rem 0;
  border-top:1px solid var(--border);
  font-size:0.85rem;
}
.rsvpingo-bd-mega-foot a{
  color:var(--text-2);
  font-weight:600;
  text-decoration:none;
  transition:color 0.12s;
}
.rsvpingo-bd-mega-foot a:hover{color:var(--green);}
.rsvpingo-bd-mega-foot-cta{
  background:var(--green);
  color:#fff !important;
  padding:0.5rem 1rem;
  border-radius:8px;
  font-size:0.82rem;font-weight:700;
  transition:background 0.15s,transform 0.1s;
}
.rsvpingo-bd-mega-foot-cta:hover{
  background:var(--green-dark);
  color:#fff !important;
  transform:translateY(-1px);
}
/* Mobile: hamburger drawer with mega children inline (handled in section 8). */

/* Push content below the fixed nav */
.rsvpingo-bd-main{padding-top:60px;}

/* ---------- 3. Archive ---------- */
.rsvpingo-bd-archive-hero{
  padding:5rem 0 3rem;
  text-align:center;
  background:var(--green-soft);
  border-bottom:1px solid var(--green-tint);
}
.rsvpingo-bd-archive-eyebrow{
  display:inline-block;
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:0.78rem;font-weight:500;
  color:var(--green);
  background:var(--green-tint);
  padding:0.3rem 0.85rem;border-radius:99px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-bottom:1.25rem;
}
.rsvpingo-bd-archive-title{
  font-size:clamp(2.25rem,5vw,3.5rem);
  font-weight:800;
  color:var(--navy);
  letter-spacing:-0.025em;
  line-height:1.05;
  margin:0 0 1rem;
}
.rsvpingo-bd-archive-sub{
  font-size:1.1rem;
  color:var(--text-2);
  max-width:620px;
  margin:0 auto;
}

.rsvpingo-bd-archive-grid-wrap{padding:1rem 0 5rem;}
.rsvpingo-bd-card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.rsvpingo-bd-card{
  position:relative;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:18px;
  padding:1.5rem 1.5rem 1.4rem;
  transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease;
  display:flex;flex-direction:column;gap:0.6rem;
  min-height:240px;
}
.rsvpingo-bd-card:hover{
  transform:translateY(-4px);
  border-color:var(--green-2);
  box-shadow:var(--shadow);
}
.rsvpingo-bd-card-cat{
  display:inline-block;
  align-self:flex-start;
  font-size:0.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.08em;
  color:var(--green);
  background:var(--green-tint);
  padding:0.3rem 0.65rem;border-radius:6px;
  text-decoration:none;
  position:relative;z-index:2;
}
.rsvpingo-bd-card-cat:hover{background:var(--green-tint-2);}
.rsvpingo-bd-card-title{
  font-size:1.2rem;font-weight:700;
  color:var(--navy);
  letter-spacing:-0.015em;
  line-height:1.3;
  margin:0;
}
.rsvpingo-bd-card-title a{text-decoration:none;color:inherit;}
.rsvpingo-bd-card-excerpt{
  font-size:0.94rem;color:var(--text-2);
  margin:0;flex:1;
}
.rsvpingo-bd-card-meta{
  font-size:0.8rem;color:var(--text-3);
  display:flex;align-items:center;gap:0.4rem;
  margin-top:0.4rem;
}
.rsvpingo-bd-card-dot{color:var(--g3);}
.rsvpingo-bd-card-link{
  position:absolute;inset:0;z-index:1;
}

/* Pagination */
.rsvpingo-bd-pagination{margin:3rem 0 0;display:flex;justify-content:center;gap:0.4rem;flex-wrap:wrap;}
.rsvpingo-bd-pagination .page-numbers{
  padding:0.55rem 0.9rem;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--white);
  color:var(--text-2);
  text-decoration:none;
  font-size:0.9rem;
  font-weight:600;
  transition:all 0.15s;
}
.rsvpingo-bd-pagination .page-numbers:hover{background:var(--green-tint);color:var(--green);border-color:var(--green-tint-2);}
.rsvpingo-bd-pagination .page-numbers.current{
  background:var(--green);color:white;border-color:var(--green);
}

.rsvpingo-bd-empty{padding:4rem 0;text-align:center;}
.rsvpingo-bd-empty h2{font-size:1.4rem;color:var(--navy);margin:0 0 0.5rem;}
.rsvpingo-bd-empty p{color:var(--text-2);}
.rsvpingo-bd-empty a{color:var(--green);font-weight:600;}

/* ---------- 4. Single post ---------- */
.rsvpingo-bd-article-hero{
  padding:4.5rem 0 2.5rem;
  background:var(--green-soft);
  border-bottom:1px solid var(--green-tint);
}
.rsvpingo-bd-article-hero .rsvpingo-bd-container{max-width:780px;}
.rsvpingo-bd-article-cat{
  display:inline-block;
  font-size:0.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.08em;
  color:var(--green);
  background:var(--green-tint);
  padding:0.35rem 0.75rem;border-radius:6px;
  text-decoration:none;
  margin-bottom:1.25rem;
}
.rsvpingo-bd-article-cat:hover{background:var(--green-tint-2);}
.rsvpingo-bd-article-title{
  font-size:clamp(1.85rem,4vw,2.85rem);
  font-weight:800;
  color:var(--navy);
  letter-spacing:-0.025em;
  line-height:1.15;
  margin:0 0 1.25rem;
}
.rsvpingo-bd-article-meta{
  display:flex;align-items:center;gap:0.5rem;
  color:var(--text-3);
  font-size:0.92rem;
  flex-wrap:wrap;
}
.rsvpingo-bd-article-author{color:var(--navy);font-weight:600;}

/* Article body — typography for posts that DON'T have their own scoped styling.
   Scoped to .rsvpingo-bd-article-body so post-component styles (.rsvpingo-l5-*)
   stay untouched. */
.rsvpingo-bd-article-body{max-width:780px;padding:1.5rem 1.5rem 4rem;}
.rsvpingo-bd-article-body > p,
.rsvpingo-bd-article-body > h2,
.rsvpingo-bd-article-body > h3,
.rsvpingo-bd-article-body > h4,
.rsvpingo-bd-article-body > ul,
.rsvpingo-bd-article-body > ol,
.rsvpingo-bd-article-body > blockquote,
.rsvpingo-bd-article-body > figure,
.rsvpingo-bd-article-body > hr,
.rsvpingo-bd-article-body > pre{
  max-width:680px;margin-left:auto;margin-right:auto;
}
.rsvpingo-bd-article-body p{
  font-size:1.08rem;color:var(--text);
  line-height:1.7;margin:0 auto 1.25rem;
}
.rsvpingo-bd-article-body h2{
  font-size:1.7rem;font-weight:800;color:var(--navy);
  letter-spacing:-0.018em;
  margin:2.75rem auto 1rem;line-height:1.25;
}
.rsvpingo-bd-article-body h3{
  font-size:1.25rem;font-weight:700;color:var(--navy);
  margin:2rem auto 0.7rem;
}
.rsvpingo-bd-article-body h4{
  font-size:1.08rem;font-weight:700;color:var(--navy);
  margin:1.5rem auto 0.5rem;
}
.rsvpingo-bd-article-body a{
  color:var(--green);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;
}
.rsvpingo-bd-article-body a:hover{color:var(--green-dark);}
.rsvpingo-bd-article-body strong{color:var(--navy);font-weight:700;}
.rsvpingo-bd-article-body em{font-style:italic;}
.rsvpingo-bd-article-body ul,.rsvpingo-bd-article-body ol{
  font-size:1.05rem;color:var(--text);line-height:1.7;
  padding-left:1.4rem;margin:0 auto 1.25rem;
}
.rsvpingo-bd-article-body li{margin:0.4rem 0;}
.rsvpingo-bd-article-body blockquote{
  border-left:3px solid var(--green);
  padding:0.4rem 0 0.4rem 1.4rem;
  margin:1.5rem auto;
  font-style:italic;
  color:var(--text-2);
  font-size:1.12rem;
}
.rsvpingo-bd-article-body hr{
  border:none;height:1px;background:var(--border);
  margin:2.5rem auto;
}
.rsvpingo-bd-article-body img,
.rsvpingo-bd-article-body figure{
  max-width:100%;height:auto;border-radius:14px;
}
.rsvpingo-bd-article-body figure{margin:1.75rem auto;}
.rsvpingo-bd-article-body figcaption{
  font-size:0.85rem;color:var(--text-3);text-align:center;margin-top:0.5rem;
}
.rsvpingo-bd-article-body code{
  background:var(--off);padding:0.15rem 0.35rem;border-radius:5px;
  font-family:'DM Mono',ui-monospace,monospace;
  font-size:0.92em;color:var(--navy);
}
.rsvpingo-bd-article-body pre{
  background:var(--navy);color:#e1e8f4;
  padding:1.2rem 1.4rem;border-radius:12px;
  overflow-x:auto;font-family:'DM Mono',ui-monospace,monospace;
  font-size:0.9rem;line-height:1.55;
}
.rsvpingo-bd-article-body pre code{background:transparent;color:inherit;padding:0;}

/* ---------- 5. Related posts ---------- */
.rsvpingo-bd-related{background:var(--off);padding:3.5rem 0 4.5rem;}
.rsvpingo-bd-section-title{
  font-size:1.5rem;font-weight:800;color:var(--navy);
  letter-spacing:-0.02em;margin:0 0 1.75rem;
}

/* ---------- 6. Footer ---------- */
.rsvpingo-bd-footer{
  background:var(--navy);
  color:rgba(255,255,255,0.85);
  padding:4rem 0 2rem;
  margin-top:auto;
}
.rsvpingo-bd-footer-cta{
  background:var(--green);
  border-radius:24px;
  padding:3rem 2rem;
  text-align:center;
  margin-bottom:3rem;
  position:relative;
  overflow:hidden;
}
.rsvpingo-bd-footer-cta-title{
  font-size:clamp(1.6rem,3.5vw,2.25rem);
  font-weight:800;color:#fff;margin:0 0 0.6rem;
  letter-spacing:-0.02em;position:relative;z-index:1;
}
.rsvpingo-bd-footer-cta-sub{
  color:rgba(255,255,255,0.88);
  margin:0 0 1.75rem;font-size:1.05rem;
  position:relative;z-index:1;
}
.rsvpingo-bd-btn-cta{
  display:inline-block;
  background:#fff;color:var(--navy) !important;
  padding:0.95rem 1.9rem;border-radius:12px;
  font-weight:700;text-decoration:none;
  font-size:1rem;
  position:relative;z-index:1;
  transition:all 0.18s;
}
.rsvpingo-bd-btn-cta:hover{
  background:var(--navy);color:#fff !important;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(0,0,0,0.25);
}
.rsvpingo-bd-footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:2rem;border-top:1px solid rgba(255,255,255,0.1);
  flex-wrap:wrap;gap:1rem;
}
.rsvpingo-bd-footer-logo{
  display:flex;align-items:center;gap:0.5rem;
  font-weight:800;color:#fff;text-decoration:none;
  letter-spacing:-0.02em;
}
.rsvpingo-bd-footer-logo-img{
  height:22px;width:auto;display:block;
  filter:brightness(0) invert(1);
}
.rsvpingo-bd-footer-meta{font-size:0.85rem;color:rgba(255,255,255,0.6);}

/* ---------- 7. Post components (.rsvpingo-l5-*) ---------- */
.rsvpingo-l5{
  --r-navy:#0d1f3c;--r-navy-2:#162847;
  --r-green:#1f5132;--r-green-2:#2d6f47;--r-green-3:#3d8a5a;--r-green-dark:#163b24;
  --r-green-tint:#e8f0eb;--r-green-tint-2:#d4e6dc;--r-green-soft:#f3f8f5;
  --r-off:#f7f8fc;--r-g1:#f0f4fb;--r-g2:#dde6f5;--r-border:#e0e8f4;
  --r-text:#0d1f3c;--r-text-2:#3d5478;--r-text-3:#7a96b8;
  font-family:'Bricolage Grotesque',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  color:var(--r-text);line-height:1.6;max-width:820px;margin:0 auto;position:relative;
}
.rsvpingo-l5 *{box-sizing:border-box;}
.rsvpingo-l5-progress{position:sticky;top:60px;height:4px;background:transparent;z-index:100;margin-bottom:-4px;}
.rsvpingo-l5-progress-bar{height:100%;width:0%;background:var(--r-green);transition:width 0.1s ease;border-radius:0 2px 2px 0;}
.rsvpingo-l5-hero{position:relative;padding:3rem 1.75rem 2.5rem;border-radius:24px;background:var(--r-green-dark);color:white;overflow:hidden;margin:1.5rem 0 2rem;}
.rsvpingo-l5-hero::before{content:'';position:absolute;inset:0;background:none;pointer-events:none;}
@keyframes rsvpingo-l5-bg{0%,100%{transform:scale(1) rotate(0deg);}50%{transform:scale(1.05) rotate(1deg);}}
.rsvpingo-l5-snow{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.rsvpingo-l5-flake{position:absolute;top:-20px;color:rgba(255,255,255,0.7);font-size:14px;animation:rsvpingo-l5-fall linear infinite;}
@keyframes rsvpingo-l5-fall{0%{transform:translateY(0) rotate(0deg);opacity:0;}10%{opacity:1;}100%{transform:translateY(380px) rotate(360deg);opacity:0;}}
.rsvpingo-l5-eyebrow{display:inline-block;background:rgba(255,255,255,0.15);padding:0.4rem 0.9rem;border-radius:99px;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#ffffff;position:relative;z-index:1;backdrop-filter:blur(8px);}
.rsvpingo-l5-h1{font-size:clamp(1.8rem,4.5vw,2.75rem);font-weight:800;line-height:1.15;margin:1rem 0;position:relative;z-index:1;color:#ffffff;letter-spacing:-0.02em;}
.rsvpingo-l5-subtitle{font-size:1.05rem;color:rgba(255,255,255,0.88);position:relative;z-index:1;max-width:600px;margin:0;}
.rsvpingo-l5-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;margin-top:2rem;position:relative;z-index:1;}
.rsvpingo-l5-stat{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);border-radius:14px;padding:1rem;backdrop-filter:blur(10px);}
.rsvpingo-l5-stat-num{font-size:1.65rem;font-weight:800;color:#ffffff;display:block;line-height:1.1;}
.rsvpingo-l5-stat-label{font-size:0.72rem;color:rgba(255,255,255,0.75);text-transform:uppercase;letter-spacing:0.06em;margin-top:0.2rem;display:block;}
.rsvpingo-l5 h2{font-size:1.55rem;font-weight:800;color:var(--r-navy);margin:3rem 0 1rem;letter-spacing:-0.015em;scroll-margin-top:80px;}
.rsvpingo-l5 h3{font-size:1.1rem;font-weight:700;color:var(--r-navy);margin:1.6rem 0 0.5rem;}
.rsvpingo-l5 p{margin:0 0 1rem;font-size:1.02rem;color:var(--r-text-2);}
.rsvpingo-l5 strong{color:var(--r-navy);font-weight:700;}
.rsvpingo-l5 .rsvpingo-l5-subtitle{color:rgba(255,255,255,0.88);}
.rsvpingo-l5-toc{background:var(--r-green-soft);border-left:3px solid var(--r-green);padding:1.25rem 1.5rem;border-radius:8px;margin:2rem 0;}
.rsvpingo-l5-toc-title{font-size:0.78rem;text-transform:uppercase;font-weight:700;color:var(--r-text-3);letter-spacing:0.08em;margin-bottom:0.7rem;}
.rsvpingo-l5-toc ol{margin:0;padding-left:1.2rem;}
.rsvpingo-l5-toc li{margin:0.3rem 0;}
.rsvpingo-l5-toc a{color:var(--r-green);text-decoration:none;font-weight:500;font-size:0.95rem;}
.rsvpingo-l5-toc a:hover{text-decoration:underline;}
.rsvpingo-l5-tabs{display:flex;flex-wrap:wrap;gap:0.4rem;margin:1.25rem 0 1rem;}
.rsvpingo-l5-tab{background:var(--r-g1);border:1px solid var(--r-border);color:var(--r-text-2);padding:0.55rem 1.1rem;border-radius:99px;font-size:0.88rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s;}
.rsvpingo-l5-tab:hover{background:var(--r-green-tint);color:var(--r-green);}
.rsvpingo-l5-tab.active{background:var(--r-green);color:white;border-color:var(--r-green);transform:translateY(-1px);}
.rsvpingo-l5-cards{display:grid;gap:0.9rem;}
.rsvpingo-l5-cards[data-tabbed="true"] .rsvpingo-l5-card{display:none;}
.rsvpingo-l5-cards[data-tabbed="true"] .rsvpingo-l5-card.active{display:block;}
.rsvpingo-l5-card{background:white;border:1px solid var(--r-border);border-radius:14px;padding:1.25rem 1.4rem;position:relative;transition:all 0.2s;}
.rsvpingo-l5-card.active{animation:rsvpingo-l5-fadein 0.4s ease;}
.rsvpingo-l5-card:hover{border-color:var(--r-green-2);transform:translateY(-2px);box-shadow:0 8px 28px rgba(31,81,50,0.10);}
@keyframes rsvpingo-l5-fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.rsvpingo-l5-card-text{font-size:0.98rem;color:var(--r-text);line-height:1.6;padding-right:4rem;}
.rsvpingo-l5-card-label{display:inline-block;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--r-green);background:var(--r-green-tint);padding:0.25rem 0.55rem;border-radius:4px;margin-bottom:0.6rem;}
.rsvpingo-l5-copy-btn{position:absolute;top:1.1rem;right:1.1rem;background:var(--r-off);border:1px solid var(--r-border);color:var(--r-text-2);padding:0.4rem 0.75rem;border-radius:8px;font-size:0.76rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all 0.15s;display:inline-flex;align-items:center;gap:0.3rem;}
.rsvpingo-l5-copy-btn:hover{background:var(--r-green);color:white;border-color:var(--r-green);}
.rsvpingo-l5-copy-btn::before{content:'\29C9';font-size:0.85rem;}
.rsvpingo-l5-generator{background:var(--r-green-soft);border:1px solid var(--r-green-tint-2);border-radius:18px;padding:1.75rem 1.5rem;margin:1.5rem 0;text-align:center;position:relative;overflow:hidden;}
.rsvpingo-l5-generator-label{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--r-green);font-weight:800;margin-bottom:0.5rem;}
.rsvpingo-l5-generator-output{font-size:1.3rem;font-weight:800;color:var(--r-navy);margin:0.5rem 0 1.2rem;min-height:3rem;display:flex;align-items:center;justify-content:center;line-height:1.3;padding:0 0.5rem;}
.rsvpingo-l5-generator-output.spin{animation:rsvpingo-l5-pop 0.3s ease;}
@keyframes rsvpingo-l5-pop{0%{opacity:0;transform:scale(0.9);}100%{opacity:1;transform:scale(1);}}
.rsvpingo-l5-generator-btn{background:var(--r-green);color:white;border:none;padding:0.75rem 1.5rem;border-radius:10px;font-size:0.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all 0.15s;display:inline-flex;align-items:center;gap:0.5rem;}
.rsvpingo-l5-generator-btn:hover{background:var(--r-green-dark);transform:translateY(-1px);}
.rsvpingo-l5-generator-btn .dice{display:inline-block;transition:transform 0.5s;}
.rsvpingo-l5-generator-btn:active .dice{transform:rotate(360deg);}
.rsvpingo-l5-gen-source{display:none !important;}
.rsvpingo-l5-email{background:white;border:1px solid var(--r-border);border-radius:14px;margin:1rem 0;overflow:hidden;position:relative;}
.rsvpingo-l5-email-head{background:var(--r-off);padding:0.85rem 1.2rem;border-bottom:1px solid var(--r-border);font-size:0.85rem;color:var(--r-text-2);}
.rsvpingo-l5-email-head strong{color:var(--r-navy);}
.rsvpingo-l5-email-body{padding:1.2rem 1.4rem;font-size:0.96rem;white-space:pre-wrap;color:var(--r-text);line-height:1.65;}
.rsvpingo-l5-email .rsvpingo-l5-copy-btn{top:0.7rem;right:1rem;background:white;}
.rsvpingo-l5-steps{background:var(--r-green-soft);border-radius:14px;padding:1.4rem 1.6rem;margin:1rem 0;counter-reset:rsvpingo-l5-step;list-style:none;}
.rsvpingo-l5-steps li{counter-increment:rsvpingo-l5-step;position:relative;padding-left:2.6rem;margin:0.65rem 0;font-size:0.97rem;color:var(--r-text);}
.rsvpingo-l5-steps li::before{content:counter(rsvpingo-l5-step);position:absolute;left:0;top:-2px;width:1.8rem;height:1.8rem;background:var(--r-green);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.8rem;font-weight:800;}
.rsvpingo-l5-callout{background:var(--r-green-soft);border:1px solid var(--r-green-tint-2);border-radius:14px;padding:1.2rem 1.4rem;margin:1.4rem 0;font-size:0.95rem;color:var(--r-navy);position:relative;}
.rsvpingo-l5-callout strong{color:var(--r-green);}
.rsvpingo-l5-cta{background:var(--r-green);border-radius:22px;padding:2.25rem 2rem;color:#fff !important;text-align:center;margin:2.5rem 0;position:relative;overflow:hidden;}
.rsvpingo-l5-cta::before{content:'';position:absolute;inset:0;background:none;pointer-events:none;}
/* Force ALL text inside the green CTA panel to white, regardless of element or parent class. */
.rsvpingo-l5-cta,
.rsvpingo-l5-cta *{color:#fff !important;}
.rsvpingo-l5-cta h1,
.rsvpingo-l5-cta h2,
.rsvpingo-l5-cta h3,
.rsvpingo-l5-cta h4,
.rsvpingo-l5-cta h5,
.rsvpingo-l5-cta h6,
.rsvpingo-l5-cta-title{color:#fff !important;font-weight:800;}
.rsvpingo-l5-cta h3{font-size:1.5rem;margin:0 0 0.6rem;position:relative;z-index:1;}
.rsvpingo-l5-cta p,
.rsvpingo-l5-cta-sub{color:rgba(255,255,255,0.92) !important;margin:0 0 1.2rem;position:relative;z-index:1;}
.rsvpingo-l5-cta p:last-child{margin-bottom:0;}
.rsvpingo-l5-cta a:not(.rsvpingo-l5-cta-btn){color:#fff !important;text-decoration:underline;}
.rsvpingo-l5-cta-btn{display:inline-block;background:#fff !important;color:var(--r-green) !important;padding:0.95rem 1.9rem;border-radius:12px;font-weight:700;text-decoration:none;position:relative;z-index:1;transition:all 0.18s;font-size:0.98rem;}
.rsvpingo-l5-cta-btn:hover{background:var(--r-green-dark) !important;color:#fff !important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,0.25);}
.rsvpingo-l5-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0.7rem;margin:1.5rem 0;}
.rsvpingo-l5-feature{background:var(--r-off);border:1px solid var(--r-border);border-radius:12px;padding:0.95rem 0.8rem;text-align:center;transition:all 0.18s;}
.rsvpingo-l5-feature:hover{transform:translateY(-3px);border-color:var(--r-green-2);background:var(--r-green-soft);}
.rsvpingo-l5-feature-icon{font-size:1.55rem;margin-bottom:0.4rem;line-height:1;}
.rsvpingo-l5-feature-text{font-size:0.83rem;color:var(--r-text-2);font-weight:600;}
.rsvpingo-l5-faq{margin:1rem 0;}
.rsvpingo-l5-faq details{background:white;border:1px solid var(--r-border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:0.6rem;transition:all 0.2s;}
.rsvpingo-l5-faq details[open]{border-color:var(--r-green-2);box-shadow:0 4px 16px rgba(31,81,50,0.08);}
.rsvpingo-l5-faq summary{font-weight:700;color:var(--r-navy);cursor:pointer;list-style:none;position:relative;padding-right:2rem;font-size:0.98rem;}
.rsvpingo-l5-faq summary::-webkit-details-marker{display:none;}
.rsvpingo-l5-faq summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--r-green);transition:transform 0.2s;font-weight:400;}
.rsvpingo-l5-faq details[open] summary::after{content:'\2212';}
.rsvpingo-l5-faq details p{margin-top:0.7rem;color:var(--r-text-2);font-size:0.95rem;}
.rsvpingo-l5-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--r-navy);color:white;padding:0.75rem 1.25rem;border-radius:99px;font-size:0.88rem;font-weight:600;z-index:9999;opacity:0;transition:all 0.3s;box-shadow:0 10px 30px rgba(13,31,60,0.35);pointer-events:none;}
.rsvpingo-l5-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.rsvpingo-l5-toast::before{content:'\2713 ';color:var(--r-green-3);font-weight:800;}
.rsvpingo-l5-reveal{opacity:0;transform:translateY(20px);transition:all 0.6s ease;}
.rsvpingo-l5-reveal.visible{opacity:1;transform:translateY(0);}

/* QR generator widget */
.rsvpingo-l5-qr{background:var(--r-green-soft);border:1px solid var(--r-green-tint-2);border-radius:18px;padding:1.75rem 1.5rem;margin:1.5rem 0;position:relative;}
.rsvpingo-l5-qr-label{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--r-green);font-weight:800;margin:0 0 0.85rem;display:block;}
.rsvpingo-l5-qr-row{display:flex;gap:0.5rem;margin-bottom:1rem;flex-wrap:wrap;}
.rsvpingo-l5-qr-input{flex:1;min-width:200px;padding:0.7rem 0.95rem;border:1px solid var(--r-border);border-radius:10px;font-family:inherit;font-size:0.95rem;color:var(--r-navy);background:white;}
.rsvpingo-l5-qr-input:focus{outline:none;border-color:var(--r-green);box-shadow:0 0 0 3px rgba(31,81,50,0.15);}
.rsvpingo-l5-qr-btn{background:var(--r-green);color:white;border:none;padding:0.7rem 1.4rem;border-radius:10px;font-size:0.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all 0.15s;}
.rsvpingo-l5-qr-btn:hover{background:var(--r-green-dark);transform:translateY(-1px);}
.rsvpingo-l5-qr-out{display:flex;flex-direction:column;align-items:center;gap:0.85rem;padding-top:0.5rem;min-height:120px;}
.rsvpingo-l5-qr-empty{color:var(--r-text-2);font-size:0.9rem;text-align:center;padding:1.5rem 0.5rem;}
.rsvpingo-l5-qr-img{max-width:240px;width:100%;height:auto;border:1px solid var(--r-border);border-radius:12px;background:white;padding:0.6rem;animation:rsvpingo-l5-pop 0.35s ease;}
.rsvpingo-l5-qr-download{display:inline-block;background:white;color:var(--r-navy);border:1px solid var(--r-border);padding:0.55rem 1.15rem;border-radius:10px;font-size:0.85rem;font-weight:700;text-decoration:none;transition:all 0.15s;}
.rsvpingo-l5-qr-download:hover{background:var(--r-green);color:white;border-color:var(--r-green);}
.rsvpingo-l5-qr-error{color:#9f1239;font-size:0.88rem;text-align:center;}

/* Wedding date calculator widget — quiet, paper-feel */
.rsvpingo-l5-calc{background:#fbfaf6;border:1px solid var(--r-border);border-radius:14px;padding:1.6rem 1.5rem 1.5rem;margin:2rem 0;}
.rsvpingo-l5-calc-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px dashed rgba(31,81,50,0.25);}
.rsvpingo-l5-calc-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.12em;color:var(--r-green);font-weight:700;display:block;margin-bottom:0.55rem;}
.rsvpingo-l5-calc-field{display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;}
.rsvpingo-l5-calc-input{padding:0.6rem 0.85rem;border:1px solid var(--r-border);border-radius:8px;font-family:inherit;font-size:1rem;color:var(--r-navy);background:#fff;min-width:180px;}
.rsvpingo-l5-calc-input:focus{outline:none;border-color:var(--r-green);box-shadow:0 0 0 3px rgba(31,81,50,0.12);}
.rsvpingo-l5-calc-note{font-size:0.85rem;color:var(--r-text-2);max-width:280px;line-height:1.5;}
.rsvpingo-l5-calc-list{list-style:none;padding:0;margin:0;}
.rsvpingo-l5-calc-item{display:grid;grid-template-columns:165px 1fr;gap:1.25rem;padding:0.85rem 0;border-bottom:1px solid rgba(0,0,0,0.06);align-items:baseline;}
.rsvpingo-l5-calc-item:last-child{border-bottom:none;}
.rsvpingo-l5-calc-item.is-now{background:rgba(31,81,50,0.04);margin:0 -0.75rem;padding:0.85rem 0.75rem;border-radius:8px;}
.rsvpingo-l5-calc-date{font-weight:700;color:var(--r-navy);font-size:0.98rem;line-height:1.3;}
.rsvpingo-l5-calc-date small{display:block;font-weight:500;font-size:0.78rem;color:var(--r-text-2);margin-top:0.1rem;letter-spacing:0.01em;}
.rsvpingo-l5-calc-body{color:var(--r-text);font-size:0.97rem;line-height:1.55;}
.rsvpingo-l5-calc-body strong{color:var(--r-navy);font-weight:700;}
.rsvpingo-l5-calc-empty{color:var(--r-text-2);font-size:0.92rem;text-align:center;padding:1.5rem 0.5rem;font-style:italic;}
.rsvpingo-l5-calc-foot{margin-top:1.1rem;padding-top:0.95rem;border-top:1px dashed rgba(31,81,50,0.25);font-size:0.85rem;color:var(--r-text-2);line-height:1.55;}

@media (max-width:680px){
  .rsvpingo-l5-calc{padding:1.25rem 1.1rem 1.2rem;}
  .rsvpingo-l5-calc-head{flex-direction:column;align-items:flex-start;}
  .rsvpingo-l5-calc-note{max-width:none;}
  .rsvpingo-l5-calc-item{grid-template-columns:1fr;gap:0.2rem;padding:0.7rem 0;}
  .rsvpingo-l5-calc-item.is-now{margin:0 -0.6rem;padding:0.7rem 0.6rem;}
}

/* ---------- 7b. CTA white-text guarantee ----------
 * High-specificity overrides — `html body` makes these rules win
 * against any theme stylesheet that loads after the plugin's CSS.
 */
html body .rsvpingo-l5-cta,
html body .rsvpingo-l5-cta *,
html body .rsvpingo-l5-cta h1,
html body .rsvpingo-l5-cta h2,
html body .rsvpingo-l5-cta h3,
html body .rsvpingo-l5-cta h4,
html body .rsvpingo-l5-cta h5,
html body .rsvpingo-l5-cta h6,
html body .rsvpingo-l5-cta p,
html body .rsvpingo-l5-cta span,
html body .rsvpingo-l5-cta strong,
html body .rsvpingo-l5-cta em,
html body .rsvpingo-l5-cta-title,
html body .rsvpingo-l5-cta-sub{color:#ffffff !important;}
html body .rsvpingo-l5-cta a.rsvpingo-l5-cta-btn,
html body .rsvpingo-l5-cta .rsvpingo-l5-cta-btn{color:#1f5132 !important;background:#ffffff !important;}
html body .rsvpingo-l5-cta a.rsvpingo-l5-cta-btn:hover,
html body .rsvpingo-l5-cta .rsvpingo-l5-cta-btn:hover{color:#ffffff !important;background:#163b24 !important;}

/* ---------- 8. Mobile ---------- */
@media (max-width:880px){
  .rsvpingo-bd-card-grid{grid-template-columns:repeat(2,1fr);}
  .rsvpingo-bd-nav{padding:0 1.25rem;}
  .rsvpingo-bd-nav-toggle{display:inline-block;}
  .rsvpingo-bd-btn-ghost{display:none;}

  /* Plain hamburger drawer — no transforms, no blur, no fades. */
  .rsvpingo-bd-nav-links{
    display:none;
    position:absolute;
    top:60px;left:0;right:0;
    flex-direction:column;
    background:#fff;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    padding:0.3rem 0;
    box-shadow:0 6px 14px rgba(13,31,60,0.06);
    z-index:399;
    gap:0;
    max-height:calc(100vh - 60px);
    overflow-y:auto;
  }
  .rsvpingo-bd-nav-links.open{display:flex;}
  .rsvpingo-bd-nav-links li{width:100%;}
  .rsvpingo-bd-nav-links > li > a:not(.rsvpingo-bd-mega-trigger){
    display:block;
    padding:0.85rem 1.5rem;
    font-size:0.97rem;
    color:var(--navy);
    border-bottom:1px solid #f3f3f3;
  }

  /* Mega menu becomes inline expanded sections — trigger is a small label. */
  .rsvpingo-bd-mega{position:static;padding-bottom:0;margin-bottom:0;}
  .rsvpingo-bd-mega-trigger{
    display:block !important;
    padding:1rem 1.5rem 0.35rem !important;
    font-size:0.68rem !important;
    text-transform:uppercase;
    letter-spacing:0.12em;
    font-weight:700 !important;
    color:var(--text-3) !important;
    background:#fafafa;
    border-top:1px solid #f3f3f3;
    pointer-events:none;
  }
  .rsvpingo-bd-mega-chev{display:none;}
  .rsvpingo-bd-mega-panel{
    position:static !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
    width:auto !important;
    background:#fafafa !important;
    border:none !important;
    box-shadow:none !important;
    border-radius:0 !important;
    padding:0 0 0.4rem !important;
    transition:none !important;
  }
  .rsvpingo-bd-mega-eyebrow{display:none;}
  .rsvpingo-bd-mega-grid{
    display:block !important;
    grid-template-columns:none !important;
    gap:0 !important;
  }
  .rsvpingo-bd-mega-card{
    padding:0.6rem 1.5rem !important;
    border-radius:0 !important;
  }
  .rsvpingo-bd-mega-card:hover{background:transparent !important;}
  .rsvpingo-bd-mega-card:hover .rsvpingo-bd-mega-icon{background:var(--green-tint);color:var(--green);}
  .rsvpingo-bd-mega-icon{display:none !important;}
  .rsvpingo-bd-mega-text{gap:0;}
  .rsvpingo-bd-mega-title{font-size:0.95rem;font-weight:600;color:var(--navy);}
  .rsvpingo-bd-mega-desc{display:none;}
  .rsvpingo-bd-mega-foot{display:none !important;}
}
@media (max-width:680px){
  .rsvpingo-bd-card-grid{grid-template-columns:1fr;}
  .rsvpingo-bd-archive-hero{padding:3.5rem 0 2rem;}
  .rsvpingo-bd-article-hero{padding:3rem 0 2rem;}
  .rsvpingo-bd-footer-cta{padding:2rem 1.25rem;}
  .rsvpingo-bd-footer-bottom{flex-direction:column;align-items:flex-start;}
  .rsvpingo-l5-stats{grid-template-columns:1fr 1fr;}
  .rsvpingo-l5-stat:nth-child(3){grid-column:1/-1;}
  .rsvpingo-l5-hero{padding:2rem 1.25rem;}
  .rsvpingo-l5-card-text{padding-right:0;padding-top:2rem;}
  .rsvpingo-l5-copy-btn{top:0.9rem;right:0.9rem;}
}
