/* HERO */

.give-hero {
  padding: 10rem 0 5rem;

  background:
    linear-gradient(rgba(8, 17, 31, 0.8), rgba(8, 17, 31, 0.8)),
    url("../images/TRC Official.png") auto no-repeat;

  background-size: cover;

  background-position: center;

  color: #ffffff;

  text-align: center;
}

.give-hero .container {
  max-width: 850px;
}

.give-hero h1 {
  font-size: clamp(2.8rem, 6vw, 4.6rem);

  line-height: 1.15;

  margin: 1.5rem 0;

  color: #ffffff;
}

.give-hero p {
  font-size: 1.1rem;

  line-height: 2;

  color: rgba(255, 255, 255, 0.88);
}

/* LIVE CAMPAIGN */

.campaign-dashboard {
  padding: 5rem 0;

  background: var(--color-dark);
}

.campaign-grid {
  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 2rem;

  margin-bottom: 3rem;
}

.campaign-card {
  background: var(--color-surface);

  border: 1px solid var(--color-border);

  border-radius: 20px;

  padding: 2rem;

  text-align: center;

  box-shadow: var(--shadow-sm);

  transition: var(--transition);
}

.campaign-card:hover {
  transform: translateY(-8px);

  box-shadow: var(--shadow-lg);
}

.campaign-card h3 {
  font-size: 2rem;

  color: var(--color-primary);

  margin-bottom: 0.75rem;
}

.campaign-card p {
  color: var(--color-text-light);

  font-size: 0.95rem;
}

/* PROGRESS BAR */

.campaign-progress {
  width: 100%;

  height: 20px;

  background: #223a63;

  border-radius: 999px;

  overflow: hidden;
}

.campaign-progress-bar {
  width: 0%;

  height: 100%;

  border-radius: 999px;

  background: linear-gradient(90deg, #0b6e4f, #d4af37);

  transition: width 0.8s ease;
}

/* Live Feed */

#liveFeed{

    width:100%;

    overflow:hidden;

    background:#10203e;

    border-radius:40px;

    height:55px;

    display:flex;

    align-items:center;

    position:relative;

}

.feed-marquee{

    position:absolute;

    white-space:nowrap;

    color:#fff;

    font-size:15px;

    font-weight:500;

    animation:slidePartner 16s linear forwards;

}

.feed-marquee strong{

    color:#D4AF37;

    font-weight:700;

}

@keyframes slidePartner{

    from{

        transform:translateX(100vw);

    }

    to{

        transform:translateX(-110%);

    }

}

.partner-card{

    background: transparent;

    border: none;

    border-radius: 18px;

    padding: 14px 10px;

    text-align: center;

}

.partner-card small{

    display:block;

    font-size:.78rem;

    color:#9ca3af;

    letter-spacing:.08em;

    margin-bottom:8px;

    text-transform:uppercase;

}

.partner-card h3{

    margin:0;

    font-size:1.15rem;

    font-weight:600;

    color:#ffffff;

}

.partner-card h2{

    margin-top:8px;

    font-size:1.5rem;

    color:var(--color-primary);

    font-weight:700;

}

/* BUDGET SECTION */

.budget-section {
  padding: 7rem 0;

  background: var(--color-dark);
}

.budget-section .section-header {
  text-align: center;

  max-width: 760px;

  margin: 0 auto 4rem;
}

.budget-section h2 {
  margin: 1rem 0;
}

.budget-grid {
  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 2rem;
}

/* BUDGET CARD */

.budget-card {
  background: var(--color-surface);

  border-radius: 24px;

  padding: 2.5rem;

  border: 1px solid var(--color-border);

  box-shadow: var(--shadow-sm);

  transition: all 0.35s ease;

  display: flex;

  flex-direction: column;

  align-items: flex-start;
}

.budget-card:hover {
  transform: translateY(-10px);

  box-shadow: var(--shadow-lg);
}

.budget-card i {
  width: 65px;

  height: 65px;

  border-radius: 18px;

  display: flex;

  justify-content: center;

  align-items: center;

  background: rgba(11, 110, 79, 0.08);

  color: var(--color-primary);

  font-size: 1.5rem;

  margin-bottom: 1.5rem;
}

.budget-card h3 {
  margin-bottom: 0.75rem;

  font-size: 1.25rem;
}

.budget-card h4 {
  color: var(--color-secondary);

  font-size: 1.5rem;

  margin-bottom: 1rem;

  font-weight: 700;
}

.budget-card p {
  color: var(--color-text-light);

  line-height: 1.8;
}

/* VISION VIDEO */

.vision-video {
  padding: 7rem 0;

  background: var(--color-dark);
}

.vision-video-card {
  max-width: 950px;

  margin: auto;

  overflow: hidden;

  border-radius: 24px;

  border: 1px solid rgba(255, 255, 255, 0.08);

  box-shadow: var(--shadow-lg);
}

.vision-video video {
  width: 100%;

  display: block;
}

/* LIVE VALUES */

#amountRaised,
#projectBudget,
#remainingBudget,
#campaignPercentage {
  font-variant-numeric: tabular-nums;
}

/* SECTION SPACING */

.give-hero + .campaign-dashboard {
  margin-top: -2rem;
}

.campaign-dashboard + .budget-section {
  padding-top: 6rem;
}

/* SCROLL OFFSET */

#budget {
  scroll-margin-top: 120px;
}

/* ANIMATION */

.budget-card,
.campaign-card {
  animation: fadeUp 0.8s ease;
}

@keyframes fadeUp {
  from {
    opacity: 0;

    transform: translateY(25px);
  }

  to {
    opacity: 1;

    transform: translateY(0);
  }
}

/* DONATION SECTION */

.donation-section {
  padding: 7rem 0;

  background: var(--color-dark);
}

.amount-grid {
  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 1.5rem;

  margin: 4rem 0;
}

.amount-card {
  border: 2px solid var(--color-border);

  background: var(--color-surface);

  color: var(--color-text);

  border-radius: 20px;

  padding: 1.5rem;

  font-size: 1.25rem;

  font-weight: 700;

  cursor: pointer;

  transition: all 0.3s ease;
}

.amount-card:hover {
  border-color: var(--color-primary);

  transform: translateY(-5px);
}

.amount-card.active {
  background: var(--color-primary);

  color: #ffffff;

  border-color: var(--color-primary);
}

.custom-amount {
  max-width: 450px;

  margin: 0 auto 3rem;
}

.custom-amount label {
  display: block;

  margin-bottom: 0.75rem;

  font-weight: 600;
}

.amount-input {
  display: flex;

  align-items: center;

  border: 2px solid var(--color-border);

  border-radius: 16px;

  overflow: hidden;
}

.amount-input span {
  padding: 1rem 1.25rem;

  background: var(--color-surface);

  color: var(--color-text);

  font-weight: 700;
}

.amount-input input {
  flex: 1;

  background: #10203e;

  color: var(--color-text);

  border: none;

  padding: 1rem;

  font-size: 1rem;

  outline: none;
}

.frequency-group {
  display: flex;

  justify-content: center;

  gap: 1rem;
}

.frequency-btn {
  padding: 1rem 2rem;

  border: none;

  border-radius: 999px;

  background: var(--color-surface);

  color: var(--color-text);

  cursor: pointer;

  font-weight: 600;

  transition: 0.3s;
}

.frequency-btn.active {
  background: var(--color-primary);

  color: #ffffff;
}

/* PARTNER INFORMATION */

.partner-information {
  padding: 7rem 0;

  background: var(--color-dark);
}

.partner-form {
  max-width: 760px;

  margin: 4rem auto 0;
}

.form-group {
  margin-bottom: 2rem;
}

.form-group label {
  display: block;

  margin-bottom: 0.75rem;

  font-weight: 600;
}

.form-group input,
.form-group textarea {
  width: 100%;

  background: #10203e;

  color: var(--color-text);

  border: 1px solid rgba(255, 255, 255, 0.12);

  border-radius: 16px;

  padding: 1rem 1.2rem;

  font-size: 1rem;

  transition: 0.3s;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;

  border-color: var(--color-primary);
}

.form-group textarea {
  resize: vertical;

  min-height: 140px;
}

.toggle-row {
  margin-top: 3rem;

  padding: 1.5rem 2rem;

  border: 1px solid var(--color-border);

  border-radius: 18px;

  background: var(--color-surface);

  display: flex;

  justify-content: space-between;

  align-items: center;

  gap: 2rem;
}

.toggle-row h4 {
  margin-bottom: 0.35rem;
}

.toggle-row p {
  color: var(--color-text-light);
}

/* Toggle */

.switch {
  position: relative;

  width: 60px;

  height: 34px;
}

.switch input {
  display: none;
}

.slider {
  position: absolute;

  inset: 0;

  border-radius: 999px;

  background: #d1d5db;

  cursor: pointer;

  transition: 0.3s;
}

.slider::before {
  content: "";

  position: absolute;

  width: 26px;

  height: 26px;

  left: 4px;

  top: 4px;

  border-radius: 50%;

  background: #ffffff;

  transition: 0.3s;
}

.switch input:checked + .slider {
  background: var(--color-primary);
}

.switch input:checked + .slider::before {
  transform: translateX(26px);
}

/* PAYMENT SECTION */

.payment-section {
  padding: 7rem 0;

  background: var(--color-dark);
}

/* PAYMENT METHODS */

.payment-section {
  padding: 7rem 0;
}

.payment-method-grid {
  display: grid;

  grid-template-columns: repeat(2, minmax(300px, 1fr));

  gap: 3rem;

  margin-top: 4rem;
}

.payment-option {
  background: var(--color-surface);

  color: var(--color-text);

  border: 2px solid var(--color-border);

  border-radius: 24px;

  padding: 2rem;

  text-align: left;

  cursor: pointer;

  transition: 0.35s;
}

.payment-option:hover {
  transform: translateY(-6px);

  border-color: var(--color-primary);
}

.payment-option.active {
  background: rgba(215, 139, 1, 0.12);

  border-color: var(--color-primary);
}

.payment-option i {
  font-size: 2.2rem;

  color: var(--color-primary);

  margin-bottom: 1rem;
}

.payment-option h3 {
  margin-bottom: 0.75rem;
}

/* ACCOUNT CARD */

.account-card {
  margin-top: 4rem;

  background: var(--color-surface);

  border-radius: 24px;

  padding: 2.5rem;

  border: 1px solid var(--color-border);

  box-shadow: var(--shadow-sm);
}

.preferred-badge {
  display: inline-block;

  background: #b87400;

  color: #fff;

  padding: 0.5rem 1rem;

  border-radius: 50px;

  margin-bottom: 1.5rem;

  font-size: 0.9rem;

  font-weight: 600;
}

.account-info {
  margin: 2rem 0;
}

.account-row {
  display: flex;

  justify-content: space-between;

  align-items: center;

  padding: 1rem 0;

  border-bottom: 1px solid #ececec;
}

.account-actions {
  display: flex;

  gap: 1rem;

  flex-wrap: wrap;

  margin-top: 2rem;
}

#copyAccount {
  color: #fff;
}

.payment-note {
  margin-top: 2rem;

  color: var(--color-text-light);
}

/* TRANSFER CONFIRMATION */

.transfer-confirmation {
  margin-top: 5rem;

  padding: 3rem;

  background: var(--color-surface);

  border-radius: 24px;

  border: 1px solid var(--color-border);

  box-shadow: var(--shadow-sm);
}

.confirmation-form {
  margin-top: 3rem;
}

.form-grid {
  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 2rem;
}

.form-group {
  display: flex;

  flex-direction: column;

  margin-bottom: 1.5rem;
}

.form-group label {
  margin-bottom: 0.6rem;

  font-weight: 600;
}

.form-group input,
.form-group textarea {
  padding: 1rem;

  border: 1px solid var(--color-border);

  border-radius: 12px;

  font-size: 1rem;
}

/* ANONYMOUS CHECKBOX */

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.checkbox-row input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;

  width: 13px !important;
  height: 13px !important;

  min-width: 13px !important;
  max-width: 13px !important;
  min-height: 13px !important;
  max-height: 13px !important;

  flex: 0 0 13px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: initial !important;
  border-radius: initial !important;
  background: initial !important;
  box-shadow: none !important;
}

.checkbox-row label {
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;

  line-height: 1.5;
  text-align: left;
  white-space: normal;
  overflow-wrap: break-word;
}

.checkbox-row label span {
  display: inline;
}