.nn-home-body {
  --raibar-red: #941932;
  --raibar-red-dark: #781329;
  --raibar-ink: #252326;
  --raibar-muted: #737074;
  --raibar-line: #ead9dd;
  --raibar-soft: #fff4f5;
  background-color: #fffdfd;
  background-image: linear-gradient(45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%), linear-gradient(45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%);
  background-position: 0 0, 60px 60px;
  background-size: 120px 120px;
  color: var(--raibar-ink);
  overflow-x: hidden;
}

.nn-home-body .nn-shell {
  max-width: 1440px;
  background: transparent;
}

.nn-home-body .nn-header {
  position: relative;
  z-index: 10;
  margin: 0 24px;
  padding: 22px 10px;
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid rgba(148, 25, 50, .1);
  box-shadow: 0 10px 30px rgba(70, 28, 38, .04);
  backdrop-filter: blur(18px);
}

.nn-home-body .nn-brand-mark {
  width: 58px;
  height: 58px;
  background: var(--raibar-red);
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(148, 25, 50, .16);
}

.nn-home-body .nn-brand-name { color: var(--raibar-ink); }
.nn-home-body .nn-brand-subtitle { color: var(--raibar-muted); }
.nn-home-body .nn-auth-pill { background: #fff; border: 1px solid var(--raibar-line); box-shadow: 0 8px 22px rgba(70, 28, 38, .06); }
.nn-home-body .nn-header-link { color: var(--raibar-red); }
.nn-home-body .nn-header-link--solid { background: var(--raibar-red); color: #fff; }
.nn-home-body .nn-header-link--solid:hover { background: var(--raibar-red-dark); }

.nn-home-body .nn-hero-wrap {
  margin: 0;
  padding: 42px 24px 0;
}

.nn-home-body .nn-hero {
  min-height: 520px;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.nn-home-body .nn-hero-photo,
.nn-home-body .nn-hero-architecture,
.nn-home-body .nn-hero:before { display: none !important; }
.nn-home-body .nn-hero-content { position: relative; z-index: 2; width: 100%; max-width: 980px; margin: 0 auto; }

.nn-home-body .nn-prayer-chip {
  background: #fff;
  color: var(--raibar-red);
  border: 1px solid var(--raibar-line);
  box-shadow: 0 8px 22px rgba(70, 28, 38, .07);
}

.nn-home-body .nn-hero h1 {
  margin: 38px 0 24px;
  color: var(--raibar-ink);
  font-size: clamp(52px, 8vw, 112px);
  line-height: .95;
  letter-spacing: -.075em;
}

.nn-home-body .nn-hero h1 span { color: var(--raibar-red); font-style: italic; }
.nn-home-body .nn-hero-subtitle { max-width: 760px; margin: 0 auto; color: var(--raibar-muted); font-size: clamp(17px, 2vw, 25px); line-height: 1.45; }

.nn-home-body .nn-search-card {
  position: relative;
  z-index: 4;
  max-width: 820px;
  margin: -38px auto 0;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--raibar-line);
  border-radius: 999px;
  box-shadow: 0 18px 38px rgba(70, 28, 38, .12);
}

.nn-home-body .nn-search-form { gap: 10px; }
.nn-home-body .nn-search-leading { color: var(--raibar-red); }
.nn-home-body .nn-search-input { min-width: 0; color: var(--raibar-ink); background: transparent; border-color: transparent; }
.nn-home-body .nn-search-input::placeholder { color: #a79da0; }
.nn-home-body .nn-search-submit { background: var(--raibar-red); color: #fff; border-radius: 50%; }
.nn-home-body .nn-search-submit:hover { background: var(--raibar-red-dark); }

.nn-home-body .nn-feature-shell {
  margin: 74px 24px 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.nn-home-body .nn-advantages { gap: 16px; }
.nn-home-body .nn-advantage {
  min-height: 150px;
  padding: 26px 20px;
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--raibar-line);
  border-radius: 26px;
  box-shadow: 0 10px 24px rgba(70, 28, 38, .045);
  color: var(--raibar-ink);
}

.nn-home-body .nn-advantage-icon { color: var(--raibar-red); background: var(--raibar-soft); }
.nn-home-body .nn-advantage strong { color: var(--raibar-ink); }
.nn-home-body .nn-section { margin-top: 76px; }
.nn-home-body .nn-section-head h2 { color: var(--raibar-ink); }
.nn-home-body .nn-text-link { color: var(--raibar-red); }

.nn-home-body .nn-prayer-card {
  background: #fff;
  border: 1px solid var(--raibar-line);
  border-radius: 28px;
  box-shadow: 0 12px 28px rgba(70, 28, 38, .06);
}

.nn-home-body .nn-prayer-visual { color: var(--raibar-red); background: var(--raibar-soft); border-radius: 22px; }
.nn-home-body .nn-prayer-label { color: var(--raibar-ink); }
.nn-home-body .nn-prayer-description { color: var(--raibar-muted); }
.nn-home-body .nn-prayer-cta { background: var(--raibar-red); color: #fff; border-radius: 999px; }

.nn-home-body .nn-profile-card {
  background: #fff;
  border: 1px solid var(--raibar-line);
  border-radius: 26px;
  box-shadow: 0 10px 26px rgba(70, 28, 38, .06);
  overflow: hidden;
}

.nn-home-body .nn-profile-photo { border-radius: 26px 26px 0 0; }
.nn-home-body .nn-profile-body { background: #fff; }
.nn-home-body .nn-profile-name { color: var(--raibar-ink); }
.nn-home-body .nn-profile-meta { color: var(--raibar-muted); }
.nn-home-body .nn-profile-goal { background: var(--raibar-soft); color: var(--raibar-red); }
.nn-home-body .nn-status { background: #fff; color: var(--raibar-red); }
.nn-home-body .nn-heart { color: var(--raibar-red); background: rgba(255, 255, 255, .94); }

.nn-home-body .nn-bottom-nav {
  background: #fff;
  border: 1px solid var(--raibar-line);
  box-shadow: 0 10px 28px rgba(70, 28, 38, .08);
}
.nn-home-body .nn-bottom-nav a { color: var(--raibar-muted); }
.nn-home-body .nn-bottom-nav a.active { color: var(--raibar-red); }

@media (max-width: 760px) {
  .nn-home-body .nn-header { margin: 0 12px; padding: 16px 4px; }
  .nn-home-body .nn-brand-mark { width: 50px; height: 50px; }
  .nn-home-body .nn-brand-name { font-size: 21px; }
  .nn-home-body .nn-brand-subtitle { font-size: 10px; }
  .nn-home-body .nn-header-link { padding: 9px 8px; font-size: 12px; }
  .nn-home-body .nn-header-link--solid { padding: 10px 11px; }
  .nn-home-body .nn-hero-wrap { padding: 24px 16px 0; }
  .nn-home-body .nn-hero { min-height: 440px; }
  .nn-home-body .nn-hero h1 { margin: 28px 0 18px; font-size: clamp(45px, 13vw, 68px); }
  .nn-home-body .nn-hero-subtitle { font-size: 17px; }
  .nn-home-body .nn-search-card { margin: -28px 16px 0; border-radius: 26px; }
  .nn-home-body .nn-search-form { gap: 6px; }
  .nn-home-body .nn-search-input { font-size: 16px; }
  .nn-home-body .nn-feature-shell { margin: 52px 16px 0; }
  .nn-home-body .nn-advantages { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .nn-home-body .nn-advantage { min-height: 128px; padding: 18px 12px; border-radius: 20px; }
  .nn-home-body .nn-section { margin-top: 52px; }
  .nn-home-body .nn-prayer-card { border-radius: 24px; }
  .nn-home-body .nn-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .nn-home-body .nn-profile-card { border-radius: 20px; }
  .nn-home-body .nn-profile-photo { border-radius: 20px 20px 0 0; }
}

@media (max-width: 420px) {
  .nn-home-body .nn-brand-subtitle { display: none; }
  .nn-home-body .nn-brand-name { font-size: 19px; }
  .nn-home-body .nn-header-link { padding-left: 6px; padding-right: 6px; }
  .nn-home-body .nn-header-link--solid { padding-left: 8px; padding-right: 8px; }
  .nn-home-body .nn-hero { min-height: 400px; }
  .nn-home-body .nn-hero h1 { font-size: 46px; }
  .nn-home-body .nn-hero-subtitle { font-size: 15px; }
  .nn-home-body .nn-advantages { gap: 10px; }
  .nn-home-body .nn-advantage { min-height: 116px; font-size: 12px; }
  .nn-home-body .nn-profile-grid { gap: 9px; }
}


/* Final palette overrides for legacy important declarations. */
.nn-home-body {
  background-color: #fffdfd !important;
  background-image: linear-gradient(45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%), linear-gradient(45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%) !important;
  color: var(--raibar-ink) !important;
}
.nn-home-body .nn-search-submit {
  background: var(--raibar-red) !important;
  color: #fff !important;
  border-color: transparent !important;
}
.nn-home-body .nn-search-submit:hover { background: var(--raibar-red-dark) !important; }

.nn-home-body .nn-hero:after { display: none !important; }

.nn-home-body {
  background-position: 0 0, 60px 60px !important;
  background-size: 120px 120px !important;
}

.nn-home-body {
  background-image: linear-gradient(45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%), linear-gradient(-45deg, rgba(148, 25, 50, .045) 25%, transparent 25%, transparent 75%, rgba(148, 25, 50, .045) 75%) !important;
}

@media (max-width: 760px) {
  .nn-home-body .nn-hero-content { max-width: 100% !important; }
  .nn-home-body .nn-hero h1 { white-space: nowrap; font-size: clamp(40px, 11vw, 58px); }
  .nn-home-body .nn-hero h1 span { white-space: nowrap; }
}


/* Profile cards: Raibar-style browse grid while keeping the existing profile links. */
@media (min-width: 1000px) {
  .nn-home-body .nn-profile-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px;
  }
  .nn-home-body .nn-profile-card {
    border-radius: 28px;
  }
  .nn-home-body .nn-profile-photo {
    height: 360px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border-radius: 28px !important;
    overflow: hidden;
  }
  .nn-home-body .nn-profile-body {
    position: absolute !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 16px !important;
    width: auto !important;
    padding: 14px 16px !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 8px 18px rgba(70, 28, 38, .1);
  }
  .nn-home-body .nn-profile-name { font-size: 22px; line-height: 1.08; }
  .nn-home-body .nn-profile-meta { font-size: 15px; }
}

@media (max-width: 999px) and (min-width: 761px) {
  .nn-home-body .nn-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 760px) {
  .nn-home-body .nn-profile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
  }
  .nn-home-body .nn-profile-photo {
    height: 220px !important;
    min-height: 220px !important;
    padding: 0 !important;
    border-radius: 20px !important;
    overflow: hidden;
  }
  .nn-home-body .nn-profile-body {
    position: absolute !important;
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    padding: 7px 8px !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, .95) !important;
  }
  .nn-home-body .nn-profile-name { font-size: 16px; line-height: 1.05; }
  .nn-home-body .nn-profile-meta { font-size: 11px; line-height: 1.2; }
  .nn-home-body .nn-profile-goal { font-size: 10px; line-height: 1.15; }
}


/* Green registration-first homepage palette. */
.nn-home-body {
  --raibar-red: #0b8065;
  --raibar-red-dark: #07664f;
  --raibar-line: #d5e8e0;
  --raibar-soft: #edf8f3;
  background-color: #fbfefc !important;
  background-image: linear-gradient(45deg, rgba(11, 128, 101, .045) 25%, transparent 25%, transparent 75%, rgba(11, 128, 101, .045) 75%), linear-gradient(-45deg, rgba(11, 128, 101, .045) 25%, transparent 25%, transparent 75%, rgba(11, 128, 101, .045) 75%) !important;
  color: #15372d !important;
}

.nn-home-body .nn-home-register-cta {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  max-width: 520px;
  margin: 56px auto 0;
  padding: 18px 30px;
  border-radius: 999px;
  background: var(--raibar-red) !important;
  color: #fff !important;
  font-size: 20px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 16px 28px rgba(11, 128, 101, .2);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.nn-home-body .nn-home-register-cta:hover {
  background: var(--raibar-red-dark) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 20px 34px rgba(11, 128, 101, .24);
}
.nn-home-body .nn-home-register-cta span:last-child { font-size: 28px; line-height: 1; }

@media (max-width: 760px) {
  .nn-home-body .nn-home-register-cta {
    margin: 44px 16px 0;
    padding: 15px 22px;
    font-size: 17px;
  }
}
