/* Funding page. Colours, type and spacing follow the existing Divi pages:
   green #88bd28, slate #394348, body grey #7f7e7c, light band #efefef. */
.fund { --green: #88bd28; --slate: #394348; --grey: #7f7e7c; --band: #efefef; }
.fund .et_pb_section { padding: 60px 0; }
.fund .et_pb_row { padding: 0; }
.fund-band { background-color: var(--band) !important; }
.fund-dark { background-color: var(--slate) !important; }
.fund-green { background-color: var(--green) !important; }

.fund h1, .fund h2, .fund h3 { color: var(--slate); font-weight: 700; line-height: 1.3em; padding: 0; }
.fund h1 { font-size: 34px; max-width: 18em; }
.fund h2 { font-size: 22px; }
.fund h2::after { content: ""; display: block; width: 32px; border-top: 5px solid var(--green); margin: 14px 0 34px; }
.fund h3 { font-size: 18px; margin-bottom: 8px; }
.fund p { color: var(--grey); line-height: 1.6em; }
.fund .fund-lead { font-size: 18px; max-width: 38em; margin: 18px 0 30px; }
.fund .fund-note { font-size: 13px; margin-top: 28px; }

.fund-btn { display: inline-block; background: var(--green); color: #fff !important; border: 2px solid var(--green);
  font: 600 14px/1 Montserrat, Helvetica, Arial, sans-serif; text-transform: uppercase; padding: 13px 22px;
  border-radius: 3px; margin: 0 10px 10px 0; cursor: pointer; transition: opacity .2s; }
.fund-btn:hover { opacity: .85; }
.fund-btn--ghost { background: transparent; color: var(--slate) !important; border-color: var(--slate); }

/* hero */
.fund-hero .et_pb_row { padding: 50px 0; }

/* stats */
.fund-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; }
.fund-stats strong { display: block; color: var(--green); font-size: 44px; font-weight: 700; line-height: 1.2; }
.fund-stats span { color: #fff; font-weight: 600; font-size: 16px; }

/* steps and cards */
.fund-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.fund-card { background: #fff; padding: 30px 26px; }
.fund-card svg { width: 46px; height: 46px; stroke: var(--green); fill: none; stroke-width: 2.5;
  stroke-linecap: round; stroke-linejoin: round; margin-bottom: 18px; }
.fund .fund-step { display: block; color: var(--green); font-weight: 700; font-size: 13px;
  text-transform: uppercase; margin-bottom: 6px; }

/* calculator */
.fund-calc { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.fund-calc fieldset { border: 0; padding: 0; margin: 0 0 26px; }
.fund-calc legend, .fund-calc label.fund-label { display: block; color: var(--slate); font-weight: 600; font-size: 14px; margin-bottom: 10px; }
.fund-seg { display: flex; flex-wrap: wrap; gap: 6px; position: relative; }
.fund-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.fund-seg label { background: #eee; color: var(--slate); font-weight: 600; font-size: 14px; padding: 12px 16px;
  cursor: pointer; border-radius: 3px; min-width: 46px; text-align: center; }
.fund-seg input:checked + label { background: var(--green); color: #fff; }
.fund-seg input:focus-visible + label { outline: 2px solid var(--slate); outline-offset: 2px; }
.fund-seg label[hidden] { display: none; }
.fund-cost { display: flex; align-items: center; background: #eee; border-radius: 3px; padding: 0 16px; }
.fund-cost span { color: var(--slate); font-weight: 700; font-size: 18px; }
.fund-cost input { flex: 1; border: 0 !important; background: transparent !important; padding: 16px 8px !important;
  font: 700 18px Montserrat, Helvetica, Arial, sans-serif; color: var(--slate) !important; width: 100%;
  font-variant-numeric: tabular-nums; }
.fund-calc input[type=range] { -webkit-appearance: auto; appearance: auto; width: 100%; margin-top: 16px;
  padding: 0; border: 0; background: transparent; accent-color: var(--green); }
.fund-warn { color: #b45309 !important; font-size: 13px; font-weight: 600; margin-top: 10px; min-height: 1.6em; }

.fund-out { background: var(--slate); padding: 36px; transition: opacity .2s; }
.fund-out.is-below { opacity: .45; }
.fund-out p, .fund-out dt { color: #fff; }
.fund-out .fund-out-label { font-weight: 600; font-size: 14px; text-transform: uppercase; }
.fund-out .fund-hero-num { color: var(--green); font-size: 48px; font-weight: 700; line-height: 1.2;
  font-variant-numeric: tabular-nums; margin: 4px 0 24px; }
.fund-out dl { display: grid; grid-template-columns: 1fr auto; gap: 0; margin: 0; }
.fund-out dt, .fund-out dd { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.18); margin: 0; font-size: 15px; }
.fund-out dt { font-weight: 400; }
.fund-out dd { color: #fff; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.fund-out [hidden] { display: none; }
.fund-out .fund-small { font-size: 12px; opacity: .8; margin: 20px 0 22px; }

/* results */
.fund-claims { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 40px; }
.fund-claims strong { display: block; color: var(--slate); font-size: 30px; font-weight: 700; line-height: 1.2; }
.fund-claims span { color: var(--grey); font-size: 14px; }
.fund-case { background: #fff; padding: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.fund-case ul { list-style: none; padding: 0; margin: 14px 0 0; }
.fund-case li { color: var(--grey); padding: 6px 0 6px 22px; position: relative; line-height: 1.5; }
.fund-case li::before { content: ""; position: absolute; left: 0; top: 14px; width: 10px; border-top: 3px solid var(--green); }
.fund-table { width: 100%; border-collapse: collapse; background: #fff; font-variant-numeric: tabular-nums; }
.fund-table caption { text-align: left; color: var(--slate); font-weight: 700; font-size: 18px; padding-bottom: 14px; }
.fund-table th, .fund-table td { padding: 12px 18px; border: 0; border-bottom: 1px solid #e5e5e5; text-align: right; color: var(--grey); font-size: 15px; }
.fund-table th { color: var(--slate); font-weight: 700; font-size: 13px; text-transform: uppercase; }
.fund-table th:first-child, .fund-table td:first-child { text-align: left; }
.fund-table td:last-child { color: var(--slate); font-weight: 700; }

/* closing band */
.fund-green .et_pb_row { text-align: center; }
.fund-green p { color: #fff; font-weight: 700; font-size: 20px; max-width: 34em; margin: 0 auto 24px; }
.fund-green .fund-btn { background: #fff; border-color: #fff; color: var(--slate) !important; margin: 0; }

@media (max-width: 980px) {
  .fund-grid, .fund-claims { grid-template-columns: repeat(2, 1fr); }
  .fund-calc, .fund-case { grid-template-columns: 1fr; }
  .fund h1 { font-size: 28px; }
}
@media (max-width: 600px) {
  .fund .et_pb_section { padding: 40px 0; }
  .fund-grid, .fund-claims, .fund-stats { grid-template-columns: 1fr; }
  .fund-out, .fund-case { padding: 26px 20px; }
  .fund-out .fund-hero-num { font-size: 38px; }
  .fund-table th, .fund-table td { padding: 10px 8px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .fund * { transition: none !important; } }

/* guards against sub-pixel grid rounding causing a 1px sideways scroll on phones */
.fund { overflow-x: clip; }
