/* ==========================================================================
   Campaign donation component — matched to the Gau Seva Dham reference.
   Every control is pinned: bare <button> and <select> on this site are styled
   by both the Elementor kit and GiveWP, and both out-rank an unqualified rule.
   ========================================================================== */

.setu-campaign{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  gap:clamp(16px,1.8vw,26px);
  /* stretch, not start: the form column matches the height of the support
     panel beside it instead of ending wherever its fields happen to stop. */
  align-items:stretch;
  width:min(1320px,95vw);margin:0 auto clamp(36px,4vw,60px)}
/* recent donors sit beneath BOTH columns and span the full width */
.setu-campaign > .setu-donors{grid-column:1/-1}
@media(max-width:1040px){.setu-campaign{grid-template-columns:minmax(0,1fr)}}

.setu-campaign .setu-camp-left,
.setu-campaign .setu-camp-right,
.setu-campaign > .setu-donors{
  background:#fffdf7!important;border:1px solid rgba(197,154,66,.30)!important;
  border-radius:26px!important;padding:clamp(20px,2.2vw,30px)!important;
  box-shadow:0 30px 64px -40px rgba(60,42,20,.45)!important;min-width:0}
/* Both columns are flex so the form can grow into the leftover height rather
   than leaving a pale gap under the last field. */
.setu-campaign .setu-camp-left,
.setu-campaign .setu-camp-right{display:flex;flex-direction:column}
.setu-campaign .setu-camp-right .give-form-wrap{flex:1 0 auto}
/* the donation summary and trust line stay pinned to the bottom of the card */
.setu-campaign .setu-camp-right > .setu-summary{margin-top:auto}

.setu-campaign .setu-camp-title{
  font-family:var(--setu-f-display)!important;font-size:clamp(19px,2vw,25px)!important;
  line-height:1.2!important;letter-spacing:-.012em!important;color:var(--setu-ink)!important;
  text-align:center;margin:0 0 18px!important;font-weight:600!important}
.setu-campaign .setu-eyebrow{margin:0 0 12px!important}

/* ── goal ──────────────────────────────────────────────────────── */
.setu-goal{margin:0 0 14px}
.setu-goal-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.setu-goal-line{margin:0!important}
.setu-goal-raised{font-family:var(--setu-f-display);font-size:clamp(23px,2.4vw,31px);
  font-weight:700;color:var(--setu-green-deep);letter-spacing:-.014em}
.setu-goal-of{font-size:12.5px;color:var(--setu-muted);margin-left:7px}
.setu-goal-pct{background-image:linear-gradient(135deg,#e2a24e,#c9922e);
  color:#fffdf7;font-weight:700;font-size:13px;border-radius:999px;padding:5px 14px;
  box-shadow:0 10px 20px -12px rgba(201,146,46,.85);white-space:nowrap}
/* .setu-bar's real definition now lives in tokens.css only — it loads on
   every page, including /our-campaigns/ and the home teasers, where this
   file does not. Two conflicting rules (8px+border here vs 7px+no-border
   there) meant the identical component was two different heights and two
   different fills depending which page it happened to render on — the
   "green bar inconsistency". One rule, everywhere. */
.setu-bar{margin-top:10px}
/* A goal genuinely unset is not "fully funded" — filling the bar to 100%
   would say the opposite of the truth. Muted and empty instead, until a
   real target exists. */
.setu-bar[data-no-goal] i{
  background-image:none!important;background-color:var(--setu-border-soft)!important;
  width:28%!important;opacity:.5}
.setu-goal-meta{display:flex;justify-content:space-between;font-size:12px;
  color:var(--setu-muted);margin-top:8px}

/* ── ticker ────────────────────────────────────────────────────── */
.setu-ticker{display:flex;align-items:center;gap:9px;font-size:12.5px;
  background:#f8f0e0;border:0;border-radius:12px;padding:11px 15px;
  margin:0 0 16px;color:var(--setu-muted)}
.setu-ticker strong{color:var(--setu-ink)}
.setu-dot{width:8px;height:8px;border-radius:50%;background:#3fa06d;flex:0 0 auto;
  box-shadow:0 0 0 3px rgba(63,160,109,.2);animation:setu-pulse 2.4s infinite}
@keyframes setu-pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ── One Time | Recurring ──────────────────────────────────────── */
.setu-freq{display:flex;gap:10px;align-items:stretch;margin:0 0 22px}
.setu-seg{flex:1;display:grid;grid-template-columns:1fr 1fr;
  background:#f3ece0;border-radius:12px;padding:4px;gap:4px}
.setu-campaign button.setu-seg-btn{
  border:0!important;border-radius:9px!important;cursor:pointer;min-height:42px!important;
  background:transparent!important;background-image:none!important;
  color:var(--setu-muted)!important;
  font-family:var(--setu-f-body)!important;font-size:14px!important;font-weight:600!important;
  letter-spacing:normal!important;text-transform:none!important;box-shadow:none!important;
  transition:background .3s var(--setu-ease),color .3s var(--setu-ease)}
.setu-campaign button.setu-seg-btn.is-on{
  background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  color:#fffdf7!important;box-shadow:0 8px 18px -10px rgba(201,146,46,.9)!important}
.setu-period{display:flex}
.setu-campaign select.setu-period-select{
  border:1px solid rgba(197,154,66,.4)!important;border-radius:12px!important;
  background:#fffdf7!important;color:var(--setu-ink)!important;
  font-family:var(--setu-f-body)!important;font-size:14px!important;font-weight:600!important;
  padding:0 34px 0 16px!important;min-height:50px!important;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%231e5a42' stroke-width='2' fill='none' stroke-linecap='round'/></svg>")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important}

/* ── support items ─────────────────────────────────────────────── */
.setu-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:0 0 24px}
@media(max-width:900px){.setu-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:470px){.setu-items{grid-template-columns:minmax(0,1fr)}}
.setu-campaign .setu-item{
  background:#fffdf7;border:1px solid rgba(197,154,66,.26);border-radius:14px;
  overflow:hidden;display:flex;flex-direction:column;padding:0!important;
  box-shadow:0 14px 30px -24px rgba(120,92,50,.6);
  transition:transform .5s var(--setu-ease),border-color .3s var(--setu-ease)}
.setu-campaign .setu-item:hover{transform:translateY(-3px)}
.setu-campaign .setu-item.is-on{border-color:#c9922e;
  box-shadow:0 0 0 2px rgba(201,146,46,.25),0 14px 30px -24px rgba(120,92,50,.6)}
.setu-item-media{position:relative;line-height:0}
.setu-item-media img,.setu-item-media .setu-ph{
  width:100%!important;height:108px!important;object-fit:cover;
  min-height:0!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;margin:0!important;font-size:9px!important}
.setu-campaign button.setu-item-info{
  position:absolute;top:8px;right:8px;width:22px;height:22px;min-height:22px!important;
  border-radius:50%!important;border:0!important;cursor:pointer;padding:0!important;
  background:rgba(255,253,247,.92)!important;background-image:none!important;
  color:#c9922e!important;font-family:var(--setu-f-display)!important;
  font-size:12px!important;font-weight:700!important;font-style:italic;
  letter-spacing:normal!important;text-transform:none!important;
  box-shadow:0 4px 10px -4px rgba(60,42,20,.5)!important;line-height:22px!important}
.setu-item-body{padding:11px 12px 13px;display:flex;flex-direction:column;flex:1}
.setu-campaign .setu-item h4{
  font-family:var(--setu-f-body)!important;font-size:12.5px!important;font-weight:700!important;
  color:var(--setu-ink)!important;margin:0 0 2px!important;line-height:1.35!important;
  letter-spacing:normal!important}
.setu-item-qty{font-size:10.5px!important;color:var(--setu-muted)!important;
  margin:0 0 7px!important;padding-bottom:7px;border-bottom:1px solid rgba(197,154,66,.24)}
.setu-item-price{font-family:var(--setu-f-display)!important;font-size:16px!important;
  font-weight:700!important;color:#c9922e!important;margin:0 0 9px!important}
.setu-item-price small{font-family:var(--setu-f-body)!important;font-size:10px!important;
  color:var(--setu-muted)!important;font-weight:500!important;margin-left:2px}
.setu-item-add{margin-top:auto;display:flex;align-items:center;gap:6px}
.setu-campaign button.setu-qty-plus,
.setu-campaign button.setu-qty-minus{
  border:0!important;border-radius:8px!important;cursor:pointer;min-height:32px!important;
  font-family:var(--setu-f-body)!important;font-size:12px!important;font-weight:700!important;
  letter-spacing:normal!important;text-transform:none!important;padding:0 12px!important;
  background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  color:#fffdf7!important;box-shadow:none!important;
  transition:transform .35s var(--setu-ease)}
.setu-campaign button.setu-qty-plus{flex:1}
.setu-campaign button.setu-qty-minus{
  background-image:none!important;background:#f3ece0!important;color:var(--setu-ink)!important;
  display:none;padding:0 11px!important}
.setu-campaign .setu-item.is-on button.setu-qty-minus{display:block}
.setu-qty{font-family:var(--setu-f-display);font-weight:700;font-size:15px;
  min-width:16px;text-align:center;color:var(--setu-ink);display:none}
.setu-campaign .setu-item.is-on .setu-qty{display:block}

/* ── amount ladder: rounded boxes, not pills ───────────────────── */
.setu-ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}
@media(max-width:900px){.setu-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:470px){.setu-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}}
.setu-campaign .setu-amt{
  position:relative;background:#fffdf7!important;background-image:none!important;
  border:1px solid rgba(197,154,66,.34)!important;border-radius:12px!important;
  min-height:62px!important;padding:0 8px!important;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  box-shadow:none!important;
  transition:transform .35s var(--setu-ease),border-color .3s var(--setu-ease)}
.setu-campaign .setu-amt:hover{transform:translateY(-2px);border-color:#c9922e!important}
.setu-amt-value{font-family:var(--setu-f-display);font-size:18px;font-weight:700;
  color:var(--setu-green-deep);letter-spacing:.005em}
.setu-campaign .setu-amt.is-on{border-color:#1e5a42!important;
  background:#f2f7f4!important;box-shadow:0 0 0 2px rgba(30,90,66,.16)!important}
.setu-campaign .setu-amt.is-on .setu-amt-value{color:var(--setu-green-deep)}
.setu-campaign .setu-amt-popular{border-color:#c9922e!important}
.setu-most{position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  background:#1e5a42;color:#fffdf7;font-family:var(--setu-f-body);
  font-size:8.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  border-radius:999px;padding:3px 9px;white-space:nowrap}
.setu-amt-label{font-family:var(--setu-f-body);font-size:8.5px;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--setu-muted)}
.setu-amt-field{display:flex;align-items:center;gap:2px;
  font-family:var(--setu-f-display);font-size:16px;font-weight:700;color:var(--setu-green-deep)}
.setu-custom-input{width:76px;border:0;background:none;font:inherit;color:inherit;
  outline:0;padding:0;text-align:left}
.setu-custom-input::placeholder{color:var(--setu-muted);font-weight:600}

/* ── trust lines ───────────────────────────────────────────────── */
.setu-trustline{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;
  font-size:11px!important;color:var(--setu-muted)!important;margin:0 0 14px!important}
.setu-trustline-tight{margin:12px 0 14px!important}

/* ── the two money buttons: gold, full width ───────────────────── */
.setu-campaign button.setu-donate-selected,
.setu-campaign .setu-camp-right input.give-submit,
.setu-campaign .setu-camp-right .give-submit.give-btn{
  display:block!important;width:100%!important;border:0!important;cursor:pointer;
  border-radius:999px!important;min-height:52px!important;padding:0 26px!important;
  background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  background-color:#c9922e!important;color:#fffdf7!important;
  font-family:var(--setu-f-body)!important;font-size:15px!important;font-weight:600!important;
  letter-spacing:.01em!important;text-transform:none!important;
  box-shadow:0 16px 30px -16px rgba(201,146,46,.9)!important;
  transition:transform .4s var(--setu-ease)}
.setu-campaign button.setu-donate-selected:hover,
.setu-campaign .setu-camp-right input.give-submit:hover{transform:translateY(-2px)}

/* ── donor fields, two per row, +91 prefix ─────────────────────── */
.setu-camp-right .give-form-wrap{background:none!important;border:0!important;
  box-shadow:none!important;padding:0!important;border-radius:0!important}
.setu-camp-right .give-donation-levels-wrap,
.setu-camp-right .give-total-wrap,
.setu-camp-right .give-donation-amount{display:none!important}
.setu-camp-right .give-form-wrap form > fieldset,
.setu-camp-right .ffm-fields,.setu-camp-right #give-ffm-section{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.setu-camp-right .give-form-wrap .form-row,
.setu-camp-right .ffm-field{margin:0!important;min-width:0}
.setu-camp-right .give-form-wrap textarea:not(.give-input),
.setu-camp-right .ffm-field[class*="textarea"],
.setu-camp-right .ffm-field[class*="checkbox"],
.setu-camp-right #give-payment-mode-select,
.setu-camp-right .give-submit-button-wrap{grid-column:1/-1}
.setu-camp-right .give-form-wrap label{
  font-size:12.5px!important;font-weight:600!important;color:var(--setu-ink)!important;
  margin:0 0 6px!important}
.setu-camp-right input[type=tel]{padding-left:54px!important}
.setu-camp-right .ffm-field-setu_mobile,
.setu-camp-right .form-row:has(input[type=tel]){position:relative}
.setu-camp-right .ffm-field-setu_mobile::after,
.setu-camp-right .form-row:has(input[type=tel])::after{
  content:"+91";position:absolute;left:1px;bottom:1px;height:44px;width:46px;
  display:grid;place-items:center;background:#f8f0e0;color:var(--setu-ink);
  border-radius:11px 0 0 11px;font-size:13px;font-weight:600;pointer-events:none}
.setu-camp-right .setu-dupe-phone{display:none!important}
/* gold checkboxes */
.setu-camp-right input[type=checkbox]{accent-color:#c9922e;width:17px;height:17px}

/* ── donation summary accordion ────────────────────────────────── */
.setu-summary{background:#fdf8ec;border:1px solid rgba(197,154,66,.32);
  border-radius:12px;margin:14px 0 0;overflow:hidden}
.setu-summary summary{cursor:pointer;list-style:none;padding:14px 16px;
  font-family:var(--setu-f-body);font-size:14px;font-weight:600;color:var(--setu-ink);
  display:flex;align-items:center;justify-content:space-between}
.setu-summary summary::-webkit-details-marker{display:none}
.setu-summary summary::after{content:"▾";color:#c9922e;font-size:12px}
.setu-summary[open] summary::after{content:"▴"}
.setu-summary-body{padding:0 16px 14px}
.setu-summary-lines{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.setu-summary-lines li{display:flex;justify-content:space-between;font-size:13px;
  color:var(--setu-body-ink)}
.setu-summary-empty{color:var(--setu-muted)!important}
.setu-summary-total{display:flex;justify-content:space-between;margin:0;
  padding-top:10px;border-top:1px solid rgba(197,154,66,.3);font-size:13px}
.setu-summary-total strong{font-family:var(--setu-f-display);font-size:18px;
  color:var(--setu-green-deep)}

/* ── recent donors: three cards ────────────────────────────────── */
.setu-campaign > .setu-donors{margin-top:0}
.setu-donor-grid{display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
@media(max-width:520px){.setu-donor-grid{grid-template-columns:minmax(0,1fr)}}
.setu-donor{position:relative;background:#fdf8ec;border:1px solid rgba(197,154,66,.28);
  border-radius:14px;padding:26px 10px 12px;text-align:center;display:grid;
  justify-items:center;gap:5px}
.setu-rank{position:absolute;top:7px;left:9px;font-size:10px;font-weight:700;
  color:var(--setu-muted)}
.setu-avatar{width:40px;height:40px;border-radius:50%;background:#1e5a42;
  color:#fffdf7;display:grid;place-items:center;
  font-family:var(--setu-f-display);font-weight:700;font-size:18px}
.setu-donor-name{font-size:12.5px!important;font-weight:700!important;
  color:var(--setu-ink)!important;margin:2px 0 0!important;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setu-donor-amt{background-image:linear-gradient(135deg,#e2a24e,#c9922e);
  color:#fffdf7;border-radius:999px;padding:3px 12px;font-weight:700;font-size:12px}
.setu-donor-when{font-size:10.5px;color:var(--setu-muted)}
.setu-campaign button.setu-viewmore{
  width:100%;margin-top:10px;background:#fffdf7!important;background-image:none!important;
  border:1px solid rgba(197,154,66,.3)!important;border-radius:12px!important;
  min-height:42px!important;cursor:pointer;color:#c9922e!important;
  font-family:var(--setu-f-body)!important;font-size:13px!important;font-weight:600!important;
  letter-spacing:normal!important;text-transform:none!important;box-shadow:none!important}
.setu-donors-empty{font-size:12.5px;color:var(--setu-muted);margin:4px 0 0}

/* ── sticky bar ────────────────────────────────────────────────── */
.setu-sticky{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:90;
  width:min(1320px,95vw);display:flex;align-items:center;gap:14px;
  background-color:#123f31;background-image:linear-gradient(120deg,#1e5a42,#0b4433);
  border-radius:14px 14px 0 0;padding:10px 10px 10px 24px;
  box-shadow:0 -14px 40px -20px rgba(11,68,51,.7)}
.setu-sticky[hidden]{display:none}
.setu-sticky-title{color:#fffdf7;font-size:13.5px;font-weight:600;flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setu-sticky-total{font-family:var(--setu-f-display);color:#e8c878;font-size:20px;font-weight:700}
/* named plainly — "Monthly"/"Yearly", never a generic "Recurring" — because
   the sticky bar is what a donor sees for most of the scroll, and a choice
   that disappears from view reads as if it was never registered. */
.setu-sticky-freq{flex:0 0 auto;font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#0b3124;
  background:#e8c878;padding:5px 10px;border-radius:999px;line-height:1}
@media(max-width:640px){.setu-sticky-freq{font-size:9.5px;padding:4px 8px}}
.setu-sticky button.setu-sticky-cta{
  border:0!important;cursor:pointer;border-radius:999px!important;min-height:44px!important;
  padding:0 30px!important;background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  color:#fffdf7!important;font-family:var(--setu-f-body)!important;font-size:14px!important;
  font-weight:600!important;letter-spacing:normal!important;text-transform:none!important;
  box-shadow:none!important;transition:transform .4s var(--setu-ease)}
.setu-sticky button.setu-sticky-cta:hover{transform:translateY(-2px)}
@media(max-width:640px){
  .setu-sticky{padding:10px;gap:10px}
  .setu-sticky-title{display:none}
  .setu-sticky button.setu-sticky-cta{flex:1}}

/* TY05: the item name is a label, not a heading */
.setu-campaign .setu-item-name{
  font-family:var(--setu-f-body)!important;font-size:12.5px!important;font-weight:700!important;
  color:var(--setu-ink)!important;margin:0 0 2px!important;line-height:1.35!important;
  letter-spacing:normal!important}

/* SP11: the component is a full-bleed card; the wrapping Elementor section
   must not add its own vertical padding on top of the card's. */
.setu-campaign-sec{padding-top:8px!important;padding-bottom:8px!important}
.setu-campaign-sec > .e-con-inner{padding:0!important}
.setu-campaign{margin-block:0!important}

/* TY07: value numerals need a little more leading than a heading */
.setu-amt-value,.setu-summary-total strong,.setu-goal-raised{line-height:1.35!important}

/* SP11: `.setu-campaign-sec` (0,1,0) lost to `.setu-sec` (0,2,0) in fixes.css,
   both !important. Match the specificity so the component's own card supplies
   the padding instead of the section doubling it. */
.setu-sec.setu-campaign-sec,
.e-con.setu-campaign-sec{padding-top:10px!important;padding-bottom:10px!important}
.setu-sec.setu-campaign-sec > .e-con-inner{padding:0!important}
/* the campaign hero sits directly above it and needs no deep bottom padding */
.setu-sec.setu-hero.setu-center{padding-bottom:16px!important}

/* ── CL02/CL05: white on gold is 2.70:1 ───────────────────────────────
   The reference uses white text on its gold gradient. It fails WCAG, and it
   is the same defect the colour checker was built to catch. The gradient,
   shape, size and placement are matched exactly; only the text colour is
   corrected to dark ink, which reads 5.58:1 on the same gold. */
.setu-campaign button.setu-donate-selected,
.setu-campaign .setu-camp-right input.give-submit,
.setu-campaign .setu-camp-right .give-submit.give-btn,
.setu-sticky button.setu-sticky-cta,
.setu-campaign button.setu-qty-plus,
.setu-campaign button.setu-seg-btn.is-on,
.setu-goal-pct,.setu-donor-amt{color:#2e2416!important}
.setu-campaign button.setu-item-info{color:#8a5a12!important}
.setu-item-price{color:#9a6212!important}
.setu-campaign button.setu-viewmore{color:#8a5a12!important}

/* CL01/CL05: the stepper's gradient had no background-COLOR under it, so the
   computed fill fell through to whatever sat behind. State both. */
.setu-campaign button.setu-qty-plus{
  background-color:#c9922e!important;
  background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  color:#2e2416!important}
.setu-campaign button.setu-qty-minus{
  background-color:#f3ece0!important;background-image:none!important;color:#2e2416!important}

/* BT08: 32px steppers are under the 44px touch minimum */
@media(max-width:767px){
  .setu-campaign button.setu-qty-plus,
  .setu-campaign button.setu-qty-minus{min-height:44px!important}
  .setu-campaign button.setu-item-info{width:28px;height:28px;min-height:28px!important;
    line-height:28px!important}
}

/* ── the extra donor fields ─────────────────────────────────────── */
.setu-extra-fields{border:0;padding:0;margin:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.setu-extra-fields .setu-field{grid-column:1/-1;margin:0!important}
.setu-extra-fields .setu-field-half{grid-column:span 1}
.setu-extra-fields .setu-field-check{display:flex;align-items:center}
.setu-extra-fields .setu-field-check label{display:flex;align-items:center;gap:9px;
  margin:0!important;font-weight:500!important;cursor:pointer}
.setu-extra-fields input[type=checkbox]{accent-color:#c9922e;width:17px;height:17px;margin:0}
.setu-extra-fields .give-field-description{display:block;font-size:11px;
  color:var(--setu-muted);margin-top:4px}
@media(max-width:560px){.setu-extra-fields{grid-template-columns:minmax(0,1fr)}
  .setu-extra-fields .setu-field-half{grid-column:1/-1}}

/* ── BT07: the donate CTA is ONE component ───────────────────────────
   The header pill, the two money buttons and the sticky bar had rendered at
   12.5 / 15 / 14px with three different tracking values, so the checker read
   them as three separate components — and a donor moving down the page sees
   three slightly different "Donate Now"s. One type spec, applied everywhere
   the donate CTA appears. Size, colour and shape stay as they were. */
.setu-campaign button.setu-donate-selected,
.setu-campaign .setu-camp-right input.give-submit,
.setu-campaign .setu-camp-right .give-submit.give-btn,
.setu-sticky button.setu-sticky-cta{
  font-size:12.5px!important;letter-spacing:.16em!important;
  text-transform:uppercase!important;font-weight:600!important;
  /* The sticky CTA had the gold gradient over a dark-green background-COLOR.
     The gradient hid it, but the colour underneath is what a comparison
     reads, so the same button measured as two different ones. State both. */
  background-image:linear-gradient(135deg,#e2a24e,#c9922e)!important;
  background-color:#c9922e!important;color:#2e2416!important;
  /* one height too: 52 here, 44 on the sticky bar and 48 in the header read
     as three buttons. 48 matches the header/footer pill already in use. */
  min-height:48px!important;
  /* and one padding: the flex centring does the vertical work, so the
     header pill's 15px/26px is what the others adopt. */
  padding:15px 26px!important}

/* ── BT07 @375px: one component on small screens too ──────────────────
   The header pill drops to 11px/10px-14px below 767px so it fits a narrow
   header; the money buttons and sticky bar stayed at 12.5px/15px-26px, so
   the same three buttons diverged again on mobile. The compact header size
   is the one that has to fit, so everything adopts it. This lives in
   campaign.css because it is the last stylesheet loaded — a mobile rule in
   fixes.css would lose to the unmediated desktop rule above. */
@media(max-width:767px){
  .setu-campaign button.setu-donate-selected,
  .setu-campaign .setu-camp-right input.give-submit,
  .setu-campaign .setu-camp-right .give-submit.give-btn,
  .setu-sticky button.setu-sticky-cta{
    font-size:11px!important;padding:10px 14px!important;
    letter-spacing:.16em!important;min-height:44px!important}
}

/* ── the extra fieldset is a 2-up grid: phone|80G, then PAN|address ───
   A half-width field spans one column; everything else spans the row. The
   address is a textarea, and the generic textarea rule above forces those
   full width, so it is excluded there rather than fought with !important. */
.setu-camp-right .setu-extra-fields{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 14px;
  border:0;padding:0;margin:0}
.setu-camp-right .setu-extra-fields .setu-field{grid-column:1/-1}
.setu-camp-right .setu-extra-fields .setu-field-half{grid-column:span 1}
.setu-camp-right .setu-extra-fields textarea.give-input{
  min-height:44px;resize:vertical}
@media(max-width:560px){
  .setu-camp-right .setu-extra-fields{grid-template-columns:minmax(0,1fr)}
  .setu-camp-right .setu-extra-fields .setu-field-half{grid-column:1/-1}}

/* ── the custom amount was clipped ───────────────────────────────────
   The ladder gave all five cells an equal 1fr, so the custom cell was as
   narrow as a "₹12,000" pill — but it holds a label, a ₹ sign and a typed
   number. Its input had also picked up the global field padding (16px/20px)
   inside a 96px box, leaving 45px of content box, which cut "Amount" off.
   Six columns with the custom cell spanning two, and the input's own padding
   restored. */
.setu-ladder{grid-template-columns:repeat(6,minmax(0,1fr))}
.setu-campaign .setu-amt-custom{grid-column:span 2}
.setu-campaign .setu-amt-field{flex:1;min-width:0;width:100%;justify-content:center}
.setu-campaign .setu-custom-input{
  width:100%!important;min-width:0!important;flex:1;
  padding:0!important;height:auto!important;min-height:0!important;
  border:0!important;background:none!important;box-shadow:none!important;
  font-size:15px!important;text-align:left;overflow:visible!important}
@media(max-width:900px){
  .setu-ladder{grid-template-columns:repeat(4,minmax(0,1fr))}
  .setu-campaign .setu-amt-custom{grid-column:span 2}}
@media(max-width:470px){
  .setu-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}
  .setu-campaign .setu-amt-custom{grid-column:1/-1}}

/* ── LA01 @320-374px: the frequency row overflowed the viewport ──────
   .setu-freq (One Time | Recurring + the Monthly/Yearly select) never
   wrapped, so on the narrowest real phones the row's own children — not
   a fixed-width container — pushed 54px past the edge. Wrapping the row
   below ~400px lets the period selector drop to its own line instead of
   spilling off-screen; nothing above 400px changes. */
@media(max-width:400px){
  .setu-freq{flex-wrap:wrap}
  .setu-period{flex:1 1 100%}
  .setu-campaign select.setu-period-select{width:100%}
}

/* LA01: <button> carries white-space:nowrap in every browser's own default
   stylesheet — not something this theme set. At large custom amounts
   ("Donate Selected Support — ₹1,50,000") that forced the button's own
   min-content width past 320px, which is where the real document overflow
   traced back to, not the decorative SVGs it first looked like. The label
   can wrap to two lines when the amount is long; the button never needs to
   be wider than its column. */
/* Removing nowrap alone changed the button's own line-box height by 6px
   (50px vs the other donate CTAs' 44px) even though the text never actually
   wraps at this width — a min-height pin keeps this the same component as
   the others regardless of that browser quirk. */
.setu-campaign button.setu-donate-selected{white-space:normal!important;
  min-height:44px!important;line-height:1!important}
