/* ============================================================
   Give + utility pages: /donate/, /give/once|monthly|check/, /contact/, /privacy/
   Builds on core.css (v2). Prefix gv- for everything page-specific.
   ============================================================ */

/* ---------- hero (donate + contact use the full page-hero; give pages use the slim one) ---------- */
.gv-hero h1{max-width:15ch}
.gv-hero .lead{margin-top:22px}
.gv-hero .chips li{color:#fff}
.gv-slim{padding:clamp(128px,14vw,172px) 0 clamp(44px,5vw,72px)}
.gv-slim h1{font-size:clamp(2.4rem,5.2vw,4.2rem);max-width:none}
.gv-slim .lead{max-width:56ch}
.gv-back{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.78);text-decoration:none;font-weight:700;font-size:.95rem;margin-bottom:22px}
.gv-back svg{width:18px;height:18px;transform:rotate(180deg)}
.gv-back:hover{color:#fff}

/* ---------- icon cards ("where your gift goes", contact intents) ---------- */
.gv-cards .card{display:flex;flex-direction:column}
.gv-cards .card h3{margin:20px 0 8px}
.gv-more{margin-top:clamp(28px,4vw,44px)}

/* ---------- the three ways to give ---------- */
.gv-ways{display:grid;gap:clamp(16px,2.4vw,28px)}
@media (min-width:900px){.gv-ways{grid-template-columns:repeat(3,1fr)}}
.gv-way{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);
  text-decoration:none;color:inherit;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.gv-way:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}
.gv-way .ph{aspect-ratio:16/10;overflow:hidden;position:relative;background:var(--ink-3)}
.gv-way .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gv-way:hover .ph img{transform:scale(1.05)}
.gv-way .tag{position:absolute;top:16px;left:16px;padding:7px 12px;border-radius:var(--r-pill);background:rgba(11,11,12,.74);
  backdrop-filter:blur(6px);color:#fff;font:800 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase}
.gv-way .bd{padding:0 clamp(22px,2.4vw,30px) clamp(24px,2.6vw,32px);display:flex;flex-direction:column;flex:1}
.gv-way .bd .ico{margin-top:-26px;background:var(--red-grad);color:#fff;box-shadow:0 10px 24px -8px rgba(158,18,25,.55);position:relative}
.gv-way h3{font-size:clamp(1.5rem,2.2vw,1.9rem);margin:18px 0 10px}
.gv-way p{color:var(--muted);margin:0 0 22px;flex:1}
.gv-way .btn{align-self:flex-start}
.gv-note{display:flex;gap:14px;align-items:flex-start;margin:clamp(28px,4vw,40px) 0 0;padding:20px 22px;border-radius:16px;
  background:#fff;box-shadow:var(--sh);max-width:820px}
.gv-note svg{width:22px;height:22px;color:var(--red);flex:none;margin-top:3px}
.gv-note p{margin:0;color:var(--text)}

/* ---------- FORGED campaign card ---------- */
.gv-forged{display:grid;gap:clamp(28px,4vw,56px);align-items:center;background:var(--ink-2);border:1px solid var(--line-ink);
  border-radius:28px;padding:clamp(26px,5vw,64px);position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.gv-forged::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(55% 60% at 85% 40%,rgba(255,122,26,.20),transparent 70%),radial-gradient(40% 50% at 10% 100%,rgba(215,38,46,.18),transparent 70%)}
.gv-forged>*{position:relative}
@media (min-width:900px){.gv-forged{grid-template-columns:1.35fr .65fr}}
.gv-forged .eyebrow{background:rgba(255,122,26,.14);color:#FFB27A}
.gv-forged .eyebrow::before{background:var(--ember);box-shadow:0 0 0 4px rgba(255,122,26,.22)}
.gv-forged h2{font-size:clamp(1.9rem,3.8vw,3.1rem)}
.gv-forged .lead{margin-top:18px}
.gv-phone{justify-self:center;width:min(260px,62vw);filter:drop-shadow(0 30px 50px rgba(0,0,0,.6));animation:gvfloat 6s ease-in-out infinite}
@keyframes gvfloat{50%{transform:translateY(-10px)}}

.gv-cd{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px;max-width:460px}
.gv-cd>div{background:rgba(255,255,255,.05);border:1px solid var(--line-ink);border-radius:16px;padding:14px 8px 12px;text-align:center}
.gv-cd b{display:block;font:900 clamp(1.7rem,3.4vw,2.4rem)/1 var(--display);font-stretch:112%;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.gv-cd span{display:block;margin-top:6px;font:700 .72rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.gv-cd-label{margin:24px 0 0;font-weight:700;color:#fff!important;font-size:.95rem}

.gv-meter{margin-top:26px;max-width:460px}
.gv-meter .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.gv-meter b{font:900 1.6rem/1 var(--display);color:#fff}
.gv-meter .row span{color:rgba(255,255,255,.7);font-size:.95rem}
.gv-meter .track{height:12px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.gv-meter .track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--red),var(--ember));transition:width 1.4s var(--ease)}
.gv-meter p{margin:10px 0 0;font-size:.92rem}
.gv-founders{display:flex;gap:12px;align-items:flex-start;margin-top:26px;max-width:520px;font-size:.98rem}
.gv-founders svg{width:22px;height:22px;color:var(--ember);flex:none;margin-top:2px}
.gv-founders p{margin:0}

/* ---------- trust row (on red) ---------- */
.gv-trust{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:600px){.gv-trust{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.gv-trust{grid-template-columns:repeat(4,1fr)}}
.gv-trust li{display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  border-radius:18px;padding:18px}
.gv-trust b{display:block;font:800 1.05rem/1.2 var(--display);font-stretch:108%;color:#fff}
.gv-trust small{display:block;margin-top:4px;color:rgba(255,255,255,.86);font-size:.88rem;line-height:1.35}
.gv-trust-list{list-style:none;margin:0;padding:0}

/* ---------- FAQ split ---------- */
.gv-faq{display:grid;gap:clamp(32px,5vw,72px);align-items:start}
@media (min-width:960px){.gv-faq{grid-template-columns:.9fr 1.1fr}}
.gv-faq .pcard{margin-top:28px}
.gv-help{display:grid;gap:10px;margin-top:22px}
.gv-help a{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:var(--bone);text-decoration:none;color:inherit;font-weight:700;transition:transform .25s var(--ease)}
.gv-help a:hover{transform:translateX(4px)}
.gv-help .ico{width:42px;height:42px;border-radius:12px}
.gv-help .ico svg{width:22px;height:22px}
.gv-help a>svg{width:18px;height:18px;margin-left:auto;color:var(--red)}
.faq details a{color:var(--red-deep);font-weight:700}

/* ---------- give-form pages ---------- */
.gv-form{display:grid;gap:clamp(20px,3vw,36px);align-items:start}
@media (min-width:980px){.gv-form{grid-template-columns:minmax(0,1fr) 340px}}
.gv-formcard{background:#fff;border-radius:24px;box-shadow:var(--sh-lg);padding:clamp(12px,2.4vw,28px);min-width:0}
.gv-formcard iframe{display:block;max-width:100%}
.gv-formhead{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between;padding:8px 8px 18px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.gv-formhead h2{font-size:1.25rem;letter-spacing:-.01em;font-stretch:108%}
.gv-lock{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.88rem;color:#1C6B3A}
.gv-lock svg{width:17px;height:17px}
.gv-formfoot{margin:16px 8px 6px;font-size:.9rem;color:var(--muted)}
.gv-formfoot a{color:var(--red-deep);font-weight:700}

.gv-aside{display:grid;gap:16px}
@media (min-width:980px){.gv-aside{position:sticky;top:96px}}
.gv-panel{background:#fff;border-radius:var(--r);padding:24px;box-shadow:var(--sh)}
.gv-panel h2{font-size:1.15rem;font-stretch:108%;letter-spacing:-.01em;margin-bottom:6px}
.gv-assure{list-style:none;margin:0;padding:0;display:grid;gap:18px;margin-top:14px}
.gv-assure li{display:flex;gap:14px;align-items:flex-start}
.gv-assure .ico{width:44px;height:44px;border-radius:12px}
.gv-assure .ico svg{width:22px;height:22px}
.gv-assure b{display:block;font-weight:800}
.gv-assure span{display:block;color:var(--muted);font-size:.95rem;line-height:1.45;margin-top:2px}
.gv-addr{font-style:normal;font:800 1.2rem/1.35 var(--display);font-stretch:106%;margin:12px 0 0}
.gv-addr small{display:block;font:500 .92rem/1.45 var(--body);color:var(--muted);margin-bottom:6px}
.gv-other{display:grid;gap:8px;margin-top:12px}
.gv-other a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;background:var(--bone);text-decoration:none;font-weight:700;color:inherit}
.gv-other a svg{width:18px;height:18px;color:var(--red)}
.gv-other a:hover{background:var(--bone-2)}
.gv-call{font-size:.95rem;color:var(--muted);margin:14px 0 0}
.gv-call a{color:var(--text);font-weight:800}

/* ---------- contact ---------- */
.gv-intents{display:grid;gap:14px}
@media (min-width:640px){.gv-intents{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.gv-intents{grid-template-columns:repeat(4,1fr)}}
.gv-intent{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);padding:clamp(22px,2.4vw,30px);
  box-shadow:var(--sh);text-decoration:none;color:inherit;border:2px solid transparent;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s}
.gv-intent:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.gv-intent[aria-current=true]{border-color:var(--red)}
.gv-intent h3{margin:20px 0 8px}
.gv-intent p{color:var(--muted);margin:0 0 18px;flex:1}
.gv-intent .link{margin-top:auto}
.gv-contact{display:grid;gap:clamp(28px,4vw,56px);align-items:start}
@media (min-width:980px){.gv-contact{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}}
.gv-cxcard{background:#fff;border-radius:24px;box-shadow:var(--sh-lg);border:1px solid var(--line);padding:clamp(22px,3.4vw,44px);scroll-margin-top:96px}
.gv-cxcard>h2{font-size:clamp(1.6rem,2.8vw,2.2rem);margin-bottom:8px}
.gv-cxcard>p{color:var(--muted);margin-bottom:26px}
.gv-direct{display:grid;gap:12px}
.gv-direct a,.gv-direct div{display:flex;gap:14px;align-items:center;padding:16px;border-radius:16px;background:var(--bone);text-decoration:none;color:inherit}
.gv-direct b{display:block;font:800 1.1rem/1.25 var(--display);font-stretch:106%}
.gv-direct small{display:block;color:var(--muted);font-size:.88rem;margin-bottom:2px}
.gv-direct .ico{width:46px;height:46px;border-radius:12px}
.gv-direct .ico svg{width:22px;height:22px}
.gv-contact .pcard{margin-top:16px}

/* ---------- privacy ---------- */
.gv-legal{max-width:860px;margin-inline:auto;background:#fff;border-radius:24px;box-shadow:var(--sh);padding:clamp(24px,5vw,64px)}
.gv-legal h2{font-size:clamp(1.3rem,2.2vw,1.6rem);margin:42px 0 12px;display:flex;align-items:center;gap:14px}
.gv-legal h2:first-of-type{margin-top:0}
.gv-legal h2 .ico{width:40px;height:40px;border-radius:11px}
.gv-legal h2 .ico svg{width:20px;height:20px}
.gv-legal p{max-width:68ch;color:#2A2A30}
.gv-legal a{color:var(--red-deep);font-weight:700}

@media (prefers-reduced-motion:reduce){.gv-phone{animation:none}}

/* ---------- phone tuning ---------- */
.gv-cards .card h3{font-size:clamp(1.2rem,1.6vw,1.375rem)}
@media (max-width:599px){
  .gv-cards{grid-template-columns:1fr}
  .gv-cards .card{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start}
  .gv-cards .card h3{margin:2px 0 6px}
  .gv-cards .card .ico{grid-row:span 2;width:46px;height:46px}
  .gv-cards .card p{grid-column:2}
  .gv-phone{width:200px}
  .gv-forged .btn-row .btn{flex:1 1 100%}
  .gv-trust{grid-template-columns:1fr 1fr;gap:10px}
  .gv-trust li{flex-direction:column;align-items:flex-start;gap:10px;padding:16px}
  .gv-trust .ico{width:42px;height:42px}
}
.gv-contact .pcard img{object-position:50% 18%}
