:root {
  --rufus-teal: #0f5c5e;
  --rufus-teal-dark: #093f45;
  --rufus-teal-soft: #e5f0ec;
  --rufus-navy: #152d35;
  --rufus-orange: #f06452;
  --rufus-pink: #f06452;
  --rufus-coral: #f06452;
  --rufus-bg: #faf8f4;
  --rufus-card: #ffffff;
  --rufus-border: #d9e3df;
  --rufus-muted: #5f7073;
  --primary: #0f5c5e;
  --primary-dark: #093f45;
  --accent: #f06452;
  --text: #152d35;
  --text-light: #6c7a7d;
}

html { scroll-behavior: smooth; }
body {
  color: var(--rufus-navy);
  background: var(--rufus-bg);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea { font-family: "Nunito", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(15,92,94,.28);
  outline-offset: 3px;
}

.rufus-header-top {
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid var(--rufus-border) !important;
  box-shadow: 0 8px 24px rgba(21,45,53,.045) !important;
  backdrop-filter: blur(14px);
}

.nav-links a { color: var(--rufus-navy) !important; }
.nav-links a:hover,
.nav-links a.active { color: var(--rufus-teal) !important; }
.nav-links a.active::after { background: var(--rufus-teal) !important; }

.language-switcher-clean,
.rufus-user-btn {
  border-color: var(--rufus-border) !important;
  background: #fff !important;
  color: var(--rufus-navy) !important;
  box-shadow: none !important;
}

.language-switcher-clean a { color: var(--rufus-muted) !important; }
.language-switcher-clean a.active-lang {
  color: #fff !important;
  background: var(--rufus-teal) !important;
}

.btn-primary,
.nav-cta,
.rfd2-cta,
.rpd-donate-button,
.rsa-btn,
.car-submit,
.rufus-contact-submit {
  color: #fff !important;
  border-color: var(--rufus-coral) !important;
  background: var(--rufus-coral) !important;
  box-shadow: 0 12px 25px rgba(240,100,82,.22) !important;
}

.btn-primary:hover,
.nav-cta:hover,
.rfd2-cta:hover,
.rpd-donate-button:hover,
.rsa-btn:hover,
.car-submit:hover,
.rufus-contact-submit:hover {
  color: #fff !important;
  background: #d84d3d !important;
  border-color: #d84d3d !important;
}

.card,
.rfd2-card,
.rpd-main-card,
.rap3-card,
.rsa-card,
.rsa-side-card,
.rufus-profile-card,
.partner-card {
  border-color: var(--rufus-border) !important;
  box-shadow: 0 16px 42px rgba(21,45,53,.07) !important;
}

.rfd2,
.rpd-page,
.rsa,
.rap3-page,
.rufus-page-shell {
  color: var(--rufus-navy) !important;
  background:
    radial-gradient(circle at 90% 12%, rgba(15,92,94,.07), transparent 24rem),
    linear-gradient(180deg, #fff 0%, var(--rufus-bg) 100%) !important;
}

.rfd2-head h1,
.rfd2-head h2,
.rfd2-body h2,
.rpd-page h1,
.rpd-page h2,
.rap3-page h1,
.rap3-page h2,
.rsa h1,
.rsa h2,
.rsa h3 { color: var(--rufus-navy) !important; }

.rfd2-bar span,
.rpd-progress span,
.rpd-package-card.is-selected,
.rap3-progress span { background: var(--rufus-teal) !important; }

.rfd2-note,
.rfd2-mini,
.rpd-page p,
.rap3-page p { color: var(--rufus-muted); }

.rpd-payment-methods {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}

.rpd-payment-methods span {
  padding: .42rem .65rem;
  border: 1px solid var(--rufus-border);
  border-radius: 8px;
  background: #fff;
  color: var(--rufus-navy);
  font-size: .72rem;
  font-weight: 900;
}

.footer {
  background: var(--rufus-teal-dark) !important;
  border-top: 0 !important;
}

.footer a:focus-visible { outline-color: rgba(255,255,255,.65); }

@media (max-width: 900px) {
  #rufus-clean-mobile-menu {
    background: rgba(250,248,244,.99) !important;
  }
  .rufus-clean-menu-links a {
    color: var(--rufus-navy) !important;
    border-color: var(--rufus-border) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
  }
  .rufus-clean-menu-links a:hover,
  .rufus-clean-menu-links a:focus {
    color: #fff !important;
    background: var(--rufus-teal) !important;
  }
  .rufus-clean-menu-close { color: var(--rufus-teal) !important; }
}

@media (max-width: 480px) {
  .btn,
  button,
  input[type="submit"] { min-height: 48px; }
}
