/* ============================================================
   CAESAR'S ANGELS — BACK THE VISION PAGE v2
   Restructured per client + ChatGPT recommendations
   ============================================================ */

/* ── Hero ── */
.sv-hero { position: relative; height: 88vh; min-height: 520px; display: flex; align-items: flex-end; overflow: hidden; }
.sv-hero__bg { position: absolute; inset: 0; }
.sv-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.sv-hero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(42,51,36,0.97) 0%, rgba(42,51,36,0.55) 45%, rgba(42,51,36,0.15) 100%),
    linear-gradient(to right, rgba(42,51,36,0.65) 0%, transparent 60%);
}
.sv-hero__content { position: relative; z-index: 3; padding: 0 var(--gutter) clamp(3rem,6vw,5rem); width: 100%; max-width: var(--max-w); margin: 0 auto; }
.sv-hero__label { font-size: 0.65rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 0.75rem; }
.sv-hero__h1 { font-family: var(--font-disp); font-size: clamp(4rem,10vw,10rem); font-weight: 400; line-height: 0.88; letter-spacing: 0.02em; text-transform: uppercase; color: #F0EDE4; max-width: 700px; }
.sv-hero__sub { font-size: 0.88rem; font-weight: 300; color: rgba(240,237,228,0.80); line-height: 1.8; max-width: 420px; margin-top: 1.5rem; }

/* ── Why It Matters ── */
.sv-why { background: var(--base); }
.sv-why__inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(3rem,6vw,7rem); align-items: center; }
.sv-why__left h2 { font-family: var(--font-disp); font-size: clamp(2.5rem,5vw,5rem); font-weight: 400; line-height: 0.92; letter-spacing: 0.02em; text-transform: uppercase; color: var(--text-1); margin-bottom: 1.5rem; }
.sv-why__cta-link { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--label); display: inline-flex; align-items: center; gap: 0.5em; transition: gap 280ms; }
.sv-why__cta-link:hover { gap: 0.9em; }
.sv-why__right p { font-size: 0.88rem; font-weight: 300; color: var(--text-1); line-height: 1.9; }
.sv-why__right p + p { margin-top: 1.25rem; }

/* ── Three Ways ── */
.sv-ways { background: var(--void); }
.sv-ways__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; background: none; border: none; margin-top: clamp(2rem,4vw,3.5rem); }
/* Ways cards — background image with overlay */
.sv-way {
  position: relative;
  overflow: hidden;
  min-height: clamp(280px, 35vw, 420px);
  display: flex; flex-direction: column;
  transition: transform 350ms var(--ease-out);
}
.sv-way:hover { transform: scale(1.01); }

/* Overlay sits above the background image on sv-way */
.sv-way::before {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to top,
    rgba(18,24,14,0.92) 0%,
    rgba(18,24,14,0.60) 50%,
    rgba(18,24,14,0.25) 100%
  );
  transition: background 350ms;
}
.sv-way:hover::before {
  background: linear-gradient(
    to top,
    rgba(18,24,14,0.95) 0%,
    rgba(18,24,14,0.65) 50%,
    rgba(18,24,14,0.30) 100%
  );
}

/* Content sits above bg + overlay */
.sv-way__content {
  position: relative; z-index: 2;
  padding: clamp(1.75rem,3.5vw,2.8rem);
  display: flex; flex-direction: column; gap: 0.85rem;
  height: 100%; justify-content: flex-end;
}

.sv-way__icon { display:flex; width:28px; height:28px; color: var(--gold); }
.sv-way__icon svg { width:100%; height:100%; fill:currentColor; }
.sv-way__title { font-family: var(--font-disp); font-size: clamp(1.6rem,2.5vw,2.2rem); font-weight: 400; text-transform: uppercase; letter-spacing: 0.03em; color: #F0EDE4; }
.sv-way__desc { font-size: 0.88rem; font-weight: 300; color: rgba(240,237,228,0.85); line-height: 1.9; flex: 1; }
.sv-way__link { font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: #F0EDE4; display: inline-flex; align-items: center; gap: 0.5em; margin-top: 0.5rem; transition: gap 280ms; }
.sv-way__link:hover { gap: 0.9em; color: var(--gold); }

/* ── Monthly Membership ── */
.sv-membership { background: var(--base); }
.sv-membership__intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,4vw,5rem); align-items: end; margin-bottom: clamp(2rem,4vw,3.5rem); }
.sv-tiers { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; background: none; border: none; }
.sv-tier { background: var(--void); padding: clamp(1.75rem,3.5vw,2.8rem); display: flex; flex-direction: column; transition: background 300ms; }
.sv-tier.featured { background: var(--surface); border-top: none; position: relative; }
.sv-tier:hover { background: var(--raised); }
.sv-tier__badge { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.75rem; display: block; }
.sv-tier__name { font-family: var(--font-disp); font-size: clamp(1.5rem,2.5vw,2.2rem); font-weight: 400; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-1); margin-bottom: 0.4rem; }
.sv-tier__price { font-family: var(--font-disp); font-size: clamp(2rem,3.5vw,3rem); font-weight: 400; color: var(--gold); line-height: 1; margin-bottom: 0.3rem; }
.sv-tier__price-note { font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-3); margin-bottom: 1.5rem; }
.sv-tier__impact { font-size: 0.88rem; font-weight: 300; color: var(--text-2); line-height: 1.75; margin-bottom: 1.5rem; font-style: italic; border-left: 2px solid var(--border-2); padding-left: 0.85rem; }
.sv-tier__features { flex: 1; margin-bottom: 1.75rem; }
.sv-tier__feature { font-size: 0.88rem; font-weight: 300; color: var(--text-2); padding: 0.45rem 0; border-bottom: none; display: flex; align-items: flex-start; gap: 0.6rem; line-height: 1.5; }
.sv-tier__feature::before { content: '—'; color: var(--gold); flex-shrink: 0; font-size: 0.7rem; margin-top: 0.1rem; }
.sv-tier__cta { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--label); display: inline-flex; align-items: center; gap: 0.5em; margin-top: auto; transition: gap 280ms; }
.sv-tier__cta:hover { gap: 0.9em; color: var(--label); opacity: 0.8; }

/* ── One-Off Contribution ── */
.sv-oneoff { background: var(--void); }
.sv-oneoff__inner { text-align: center; }
.sv-oneoff__inner h2 { font-family: var(--font-disp); font-size: clamp(2.5rem,5vw,5rem); font-weight: 400; letter-spacing: 0.02em; text-transform: uppercase; color: var(--text-1); margin-bottom: 0.75rem; }
.sv-oneoff__inner p { font-size: 0.88rem; font-weight: 300; color: var(--text-2); margin-bottom: clamp(2rem,3.5vw,3rem); max-width: 520px; margin-left: auto; margin-right: auto; }
.sv-amounts { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; margin-bottom: 1.5rem; }
.sv-amount-btn {
  padding: 0.4em 0; font-family: var(--font-disp);
  font-size: clamp(1rem, 2.2vw, 1.3rem); font-weight: 400; letter-spacing: 0.05em;
  color: var(--text-1); background: transparent; border: none;
  cursor: none; transition: color 250ms; position: relative;
}
.sv-amount-btn::after {
  content: ''; position: absolute; bottom: -2px; left: 0; right: 0;
  height: 1px; background: var(--gold); transform: scaleX(0);
  transition: transform 300ms cubic-bezier(0.16,1,0.3,1); transform-origin: left;
}
.sv-amount-btn:hover { color: var(--label); }
.sv-amount-btn.active { color: var(--label); }
.sv-amount-btn.active::after { transform: scaleX(1); }
.sv-custom-input {
  display: none; align-items: center; gap: 0.75rem; justify-content: center; margin-bottom: 1.5rem;
}
.sv-custom-input.show { display: flex; }
.sv-custom-input input {
  background: var(--surface); border: 1px solid var(--border-2); border-bottom: 1px solid var(--gold);
  padding: 0.75rem 1rem; color: var(--text-1); font-family: var(--font-disp);
  font-size: 1.3rem; width: 140px; text-align: center; outline: none;
  letter-spacing: 0.05em;
}
.sv-contribute-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem;
  background: #2D4A22; color: #F0EDE4; padding: 1em 3em;
  font-family: var(--font-body); font-size: 0.7rem; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase; cursor: none;
  border: none; transition: background 250ms; width: min(440px, 100%);
}
.sv-contribute-btn:hover { background: #3A5E2C; }

/* ── Where Support Goes — impact breakdown ── */
.sv-impact { background: var(--base); }
.sv-impact__head { text-align: center; margin-bottom: clamp(3rem,5vw,5rem); }
.sv-impact__head h2 { font-family: var(--font-disp); font-size: clamp(2.5rem,5vw,5rem); font-weight: 400; letter-spacing: 0.02em; text-transform: uppercase; color: var(--text-1); margin-bottom: 0.6rem; }
.sv-impact__head p { font-size: 0.88rem; font-weight: 300; color: var(--text-2); max-width: 500px; margin: 0 auto; }
.sv-impact__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; background: none; border: none; margin-bottom: 2.5rem; }
/* Impact cards — background image with overlay */
.sv-impact-item {
  position: relative;
  overflow: hidden;
  min-height: clamp(260px, 30vw, 380px);
  display: flex; flex-direction: column;
  transition: transform 350ms var(--ease-out);
}
.sv-impact-item:hover { transform: scale(1.01); }

/* Overlay sits above the background image on impact items */
.sv-impact-item::before {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to top,
    rgba(18,24,14,0.94) 0%,
    rgba(18,24,14,0.65) 55%,
    rgba(18,24,14,0.30) 100%
  );
  transition: background 350ms;
}
.sv-impact-item:hover::before {
  background: linear-gradient(
    to top,
    rgba(18,24,14,0.97) 0%,
    rgba(18,24,14,0.72) 55%,
    rgba(18,24,14,0.38) 100%
  );
}

.sv-impact-item__content {
  position: relative; z-index: 2;
  padding: clamp(1.75rem,3vw,2.5rem);
  display: flex; flex-direction: column;
  height: 100%; justify-content: flex-end;
}
.sv-impact-item__icon { display:flex; width:32px; height:32px; margin-bottom:1rem; color:#F0EDE4; }
.sv-impact-item__icon svg { width:100%; height:100%; fill:currentColor; }
.sv-impact-item__pct { font-family: var(--font-disp); font-size: clamp(2.5rem,4vw,4rem); font-weight: 400; color: #F0EDE4; line-height: 1; margin-bottom: 0.5rem; }
.sv-impact-item__title { font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: #F0EDE4; margin-bottom: 0.6rem; font-weight: 500; margin-top: 0.5rem; }
.sv-impact-item__desc { font-size: 0.88rem; font-weight: 300; color: rgba(240,237,228,0.85); line-height: 1.9; }
.sv-impact__footer { text-align: center; padding-top: 1.5rem; border-top: none; }
.sv-impact__footer p { font-size: 0.88rem; color: var(--text-1); display: flex; align-items: center; justify-content: center; gap: 0.5rem; }
.sv-impact__footer strong { color: var(--gold); letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.65rem; font-weight: 500; display: block; margin-top: 0.25rem; }

/* ── Partner Form ── */
.sv-partner { background: var(--void); }
.sv-partner__inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(3rem,6vw,7rem); align-items: start; }
.sv-partner__left h2 { font-family: var(--font-disp); font-size: clamp(2.5rem,5vw,5rem); font-weight: 400; line-height: 0.92; letter-spacing: 0.02em; text-transform: uppercase; color: var(--text-1); margin-bottom: 1.25rem; }
.sv-partner__left p { font-size: 0.88rem; font-weight: 300; color: var(--text-2); line-height: 1.9; }
.sv-partner__form { display: flex; flex-direction: column; gap: 1.5rem; }
.form-success { display: none; padding: 2rem; background: var(--surface); border: 1px solid var(--border-2); font-family: var(--font-disp); font-size: 1.4rem; font-weight: 400; color: var(--gold); text-align: center; line-height: 1.6; letter-spacing: 0.03em; text-transform: uppercase; }
.form-success.visible { display: block; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .sv-why__inner { grid-template-columns: 1fr; }
  .sv-ways__grid { grid-template-columns: 1fr; }
  .sv-tiers { grid-template-columns: 1fr; }
  .sv-impact__grid { grid-template-columns: 1fr 1fr; }
  .sv-partner__inner { grid-template-columns: 1fr; }
  .sv-membership__intro { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .sv-hero__h1 { font-size: clamp(3rem, 13vw, 4.5rem); }
  .sv-amounts { gap: 0.5rem; }
  .sv-amount-btn { padding: 0.7em 1.3em; font-size: 0.95rem; }
  .sv-impact__grid { grid-template-columns: 1fr 1fr; }
  .sv-contribute-btn { width: 100%; }
}
@media (max-width: 440px) {
  .sv-impact__grid { grid-template-columns: 1fr; }
}

/* ── Tiers footer strip ── */
.sv-tiers-footer {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0; background: none; border: none;
  margin-top: 0;
}
.sv-tiers-footer__item {
  background: var(--void); padding: clamp(1.5rem,3vw,2.5rem);
  display: flex; align-items: flex-start; gap: 1.25rem;
}
.sv-tiers-footer__icon {
  width: 44px; height: 44px; flex-shrink: 0;
  border: 1px solid var(--border-g); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
}
.sv-tiers-footer__icon svg { width: 20px; height: 20px; }
.sv-tiers-footer__item p { font-size: 0.88rem; font-weight: 300; color: var(--text-2); line-height: 1.75; }
.sv-tiers-footer__item strong { font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); display: block; margin-bottom: 0.4rem; font-weight: 500; }
@media (max-width: 600px) {
  .sv-tiers-footer { grid-template-columns: 1fr; }
  .sv-amounts { gap: 1rem 1.5rem; }
}
