:root {
    --f-navy: #17213a;
    --f-ink: #26324d;
    --f-muted: #6f7d98;
    --f-paper: #f7f8fc;
    --f-surface: #fff;
    --f-line: #e5e9f2;
    --f-purple: #6b4eff;
    --f-pink: #df5a8b;
    --f-mint: #4ab39a;
    --f-radius: 18px;
}

body { color: var(--f-ink); }
.festivo-page-title { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin:0 0 1.5rem; }
.festivo-page-title h1 { color:var(--f-navy); font-size:1.75rem; font-weight:800; letter-spacing:-.04em; margin:0; }
.festivo-page-title p { color:var(--f-muted); margin:.35rem 0 0; }
.festivo-eyebrow { color:var(--f-purple); font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.festivo-action { background:linear-gradient(135deg,var(--f-purple),#8a5cff); border:0; border-radius:11px; box-shadow:0 10px 22px rgba(107,78,255,.2); font-weight:700; padding:.7rem 1rem; }
.festivo-action:hover { filter:brightness(.96); transform:translateY(-1px); }

.festivo-rsvp { max-width:760px; margin:2rem auto; }
.festivo-rsvp-card { background:var(--f-surface); border:1px solid var(--f-line); border-radius:var(--f-radius); box-shadow:0 20px 55px rgba(22,33,58,.09); overflow:hidden; }
.festivo-rsvp-hero { background:linear-gradient(135deg,#30285c,#6b4eff 58%,#d85b8d); color:#fff; padding:2.25rem; }
.festivo-rsvp-hero h1 { color:#fff; font-size:clamp(1.7rem,4vw,2.5rem); letter-spacing:-.04em; margin:.45rem 0 0; }
.festivo-rsvp-content { padding:2rem; }
.festivo-rsvp .form-label { color:var(--f-navy); font-weight:700; font-size:.9rem; }
.festivo-rsvp .form-control,.festivo-rsvp .form-select { border:1px solid #dbe1ed; border-radius:10px; min-height:46px; }
.festivo-rsvp .form-control:focus,.festivo-rsvp .form-select:focus { border-color:var(--f-purple); box-shadow:0 0 0 .2rem rgba(107,78,255,.13); }
.festivo-rsvp-message { color:var(--f-muted); line-height:1.7; margin-bottom:2rem; }

.festivo-landing .hero .slide-content { text-align:left !important; max-width:740px; margin:0 auto; padding:4rem 1.5rem; }
.festivo-landing .hero .title { font-size:clamp(2.75rem,7vw,5.5rem); line-height:.98; letter-spacing:-.055em; }
.festivo-landing .hero .subtitle { color:rgba(255,255,255,.88); font-size:1.15rem; line-height:1.65; max-width:540px; margin:1.5rem 0 2rem; }
.festivo-landing .hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.festivo-landing .hero-actions .primary-button { background:#fff; border-color:#fff; color:#4f3bd2; }
.festivo-landing .hero-actions .secondary-button { border:1px solid rgba(255,255,255,.75); color:#fff; border-radius:6px; padding:11px 22px; font-weight:600; }
.festivo-landing .trust-row { display:flex; flex-wrap:wrap; gap:1.25rem; color:rgba(255,255,255,.8); font-size:.86rem; margin-top:2rem; }
.festivo-landing .trust-row i { color:#ffc1db; margin-right:.35rem; }
.festivo-landing .value-card { height:100%; background:#fff; border:1px solid #edf0f7; border-radius:16px; box-shadow:0 12px 30px rgba(25,36,65,.06); padding:1.5rem; text-align:left; }
.festivo-landing .value-card .icon { align-items:center; background:#f0edff; border-radius:12px; color:var(--f-purple); display:inline-flex; height:44px; justify-content:center; width:44px; }
.festivo-landing .value-card h4 { color:var(--f-navy); margin:1rem 0 .45rem; }
.festivo-landing .value-card p { color:var(--f-muted); margin:0; }
.festivo-landing .pricing-card { background:#fff; border:1px solid #edf0f7; border-radius:18px; height:100%; padding:1.75rem 1.25rem; box-shadow:0 10px 26px rgba(25,36,65,.05); }
.festivo-landing .pricing-card.featured { border:2px solid #806aff; transform:translateY(-8px); }
.festivo-landing .pricing-card .price { color:var(--f-purple); font-size:2rem; font-weight:800; }
@media (max-width: 767px) { .festivo-page-title { align-items:flex-start; flex-direction:column; } .festivo-rsvp { margin:1rem auto; } .festivo-rsvp-hero,.festivo-rsvp-content { padding:1.4rem; } .festivo-landing .hero .slide-content { padding:3rem 1.25rem; } }
