/*
 * DHV Theme 13.78.138 — Platform Support Wide Editorial Surface
 * Shared institutional-wide-shell.css owns the outer stage, desktop rail
 * removal, 60px logo masthead, breadcrumbs and footer width. This file owns
 * only /donate/ content presentation. Core owns support/payment state.
 */

.dhv-support-system{
  --dhv-support-soft:color-mix(in srgb,var(--dhv-red) 4.5%,var(--dhv-bg));
  --dhv-support-neutral:color-mix(in srgb,var(--dhv-surface) 72%,var(--dhv-bg));
  width:min(calc(100% - 48px),1180px);margin:0 auto 28px;overflow:hidden;
  border:1px solid var(--dhv-line);border-radius:20px;background:var(--dhv-bg);
  color:var(--dhv-text);box-shadow:0 14px 42px rgba(26,18,15,.04)
}
html[data-theme='dark'] .dhv-support-system{--dhv-support-soft:color-mix(in srgb,var(--dhv-red) 10%,var(--dhv-bg));--dhv-support-neutral:color-mix(in srgb,var(--dhv-surface) 86%,var(--dhv-bg));box-shadow:none}
.dhv-support-system *{box-sizing:border-box}.dhv-support-system a{text-decoration:none}.dhv-support-shell{width:min(calc(100% - 64px),1060px);margin-inline:auto}
.dhv-support-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--dhv-red);font-size:11.75px;line-height:1.2;font-weight:800;letter-spacing:.095em;text-transform:uppercase}
.dhv-support-eyebrow::before{content:'';width:22px;height:2px;border-radius:999px;background:currentColor}
.dhv-support-system h1,.dhv-support-system h2{margin:0;color:var(--dhv-ink);font-family:var(--dhv-serif);font-weight:700;text-wrap:balance}
.dhv-support-system h1{max-width:17ch;font-size:clamp(34px,4.3vw,44px);line-height:1.055;letter-spacing:-.012em}
.dhv-support-system h2{font-size:clamp(27px,3.1vw,34px);line-height:1.08;letter-spacing:-.008em}
.dhv-support-system h3,.dhv-support-system strong,.dhv-support-system a,.dhv-support-system button{font-family:var(--dhv-sans)}
.dhv-support-system h3{margin:0;color:var(--dhv-ink);font-size:16.75px;line-height:1.3;letter-spacing:-.01em}.dhv-support-system p{margin:0;text-wrap:pretty}

.dhv-support-hero{padding:clamp(36px,5vw,54px) 0;border-bottom:1px solid var(--dhv-line);background:radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--dhv-red) 7%,transparent),transparent 34%),linear-gradient(135deg,var(--dhv-bg),var(--dhv-support-soft))}
.dhv-support-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:clamp(32px,6vw,72px);align-items:center}
.dhv-support-deck{max-width:64ch;margin:14px 0 0;color:var(--dhv-muted);font-size:16.75px;line-height:1.62}
.dhv-support-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 15px;margin-top:22px}
.dhv-support-hero-cta,.dhv-support-route-actions a,.dhv-support-route-actions button,.dhv-support-qr-panel-actions a{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-radius:999px;font-size:13.5px;line-height:1.2;font-weight:800;cursor:pointer}
.dhv-support-hero-cta,.dhv-support-route-primary,.dhv-support-qr-panel-actions a:first-child{border:1px solid var(--dhv-red);background:var(--dhv-red);color:#fff}
.dhv-support-hero-actions>span{color:var(--dhv-muted);font-size:13.25px;line-height:1.45}
.dhv-support-boundary{display:grid;gap:7px;padding:17px 18px;border:1px solid color-mix(in srgb,var(--dhv-red) 12%,var(--dhv-line));border-radius:14px;background:color-mix(in srgb,var(--dhv-bg) 90%,var(--dhv-support-soft))}
.dhv-support-boundary strong{color:var(--dhv-red-strong);font-size:12.75px;line-height:1.35;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.dhv-support-boundary p{color:var(--dhv-muted);font-size:13.25px;line-height:1.5}

.dhv-support-section{padding:clamp(34px,4.5vw,48px) 0;border-bottom:1px solid var(--dhv-line)}.dhv-support-section-head{max-width:760px;margin-bottom:20px}.dhv-support-section-head>p{max-width:64ch;margin:10px 0 0;color:var(--dhv-muted);font-size:14px;line-height:1.58}
.dhv-support-purpose{background:var(--dhv-support-neutral)}.dhv-support-purpose-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dhv-support-purpose-card{min-width:0;padding:16px 17px;border:1px solid var(--dhv-line);border-radius:14px;background:var(--dhv-bg)}
.dhv-support-purpose-card>span{display:grid;place-items:center;width:28px;height:28px;margin-bottom:14px;border-radius:9px;background:color-mix(in srgb,var(--dhv-red) 7%,var(--dhv-bg));color:var(--dhv-red);font-size:10.75px;font-weight:850}.dhv-support-purpose-card h3{font-weight:800}.dhv-support-purpose-card p{margin-top:7px;color:var(--dhv-muted);font-size:13.25px;line-height:1.5}
.dhv-support-principles{background:var(--dhv-bg)}.dhv-support-principles-grid{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr);gap:clamp(30px,6vw,70px);align-items:start}.dhv-support-principles-grid>div:first-child h2{max-width:13ch}.dhv-support-principle-list{border-top:1px solid var(--dhv-line)}.dhv-support-principle-list article{padding:15px 0;border-bottom:1px solid var(--dhv-line)}.dhv-support-principle-list h3{font-weight:800}.dhv-support-principle-list p{max-width:62ch;margin-top:5px;color:var(--dhv-muted);font-size:13.25px;line-height:1.5}

.dhv-support-routes{scroll-margin-top:110px;background:linear-gradient(135deg,var(--dhv-support-soft),var(--dhv-bg))}.dhv-support-payment-ack{max-width:820px;margin:0 0 16px;border-radius:12px;box-shadow:none}.dhv-support-route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}.dhv-support-route-grid.is-single-route{max-width:820px}
.dhv-support-route-card{min-width:0;padding:17px;border:1px solid color-mix(in srgb,var(--dhv-red) 14%,var(--dhv-line));border-radius:15px;background:var(--dhv-bg);color:inherit;transition:border-color .16s ease,transform .16s ease,background .16s ease}.dhv-support-route-card:hover,.dhv-support-route-card:focus-within{border-color:color-mix(in srgb,var(--dhv-red) 30%,var(--dhv-line))}
.dhv-support-route-card.is-vietqr{display:grid;grid-template-columns:178px minmax(0,1fr);gap:22px;align-items:center}.dhv-support-route-qr,.dhv-support-route-qr-button{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;margin:0;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--dhv-red) 16%,var(--dhv-line));border-radius:14px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--dhv-warm) 42%,#fff));color:inherit;font:inherit;cursor:pointer;text-align:inherit}
.dhv-support-route-qr span{position:absolute;width:38%;aspect-ratio:1;border:7px solid var(--dhv-ink);border-radius:4px}.dhv-support-route-qr span:nth-child(1){top:15%;left:15%}.dhv-support-route-qr span:nth-child(2){top:15%;right:15%}.dhv-support-route-qr span:nth-child(3){bottom:15%;left:15%}.dhv-support-route-qr b{position:absolute;right:17%;bottom:17%;display:grid;place-items:center;width:34%;aspect-ratio:1;border-radius:7px;background:var(--dhv-red);color:#fff;font-size:18px;letter-spacing:.04em}.dhv-support-route-qr em{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);z-index:2;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--dhv-bg) 92%,transparent);color:var(--dhv-ink);font-size:11.75px;font-style:normal;font-weight:800;line-height:1;white-space:nowrap}
.dhv-support-route-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.dhv-support-route-copy>small{display:inline-flex;margin-bottom:8px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--dhv-red) 7%,var(--dhv-bg));color:var(--dhv-red-strong);font-size:11.25px;font-weight:800;line-height:1.2}.dhv-support-route-copy>strong{margin-bottom:7px;color:var(--dhv-ink);font-size:17px}.dhv-support-route-copy>p{color:var(--dhv-muted);font-size:13.25px;line-height:1.5}.dhv-support-route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.dhv-support-route-secondary,.dhv-support-qr-panel-actions a:not(:first-child){border:1px solid var(--dhv-line);background:var(--dhv-bg);color:var(--dhv-ink)}
.dhv-support-qr-panel{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:22px;align-items:center;margin-top:14px;padding:17px;border-top:1px solid var(--dhv-line);border-radius:13px;background:var(--dhv-support-neutral)}.dhv-support-qr-panel[hidden]{display:none}.dhv-support-qr-image-wrap{display:grid;place-items:center;min-width:0;padding:9px;border:1px solid var(--dhv-line);border-radius:12px;background:#fff}.dhv-support-qr-image-wrap img{display:block;width:min(100%,280px);height:auto;aspect-ratio:540/640;object-fit:contain}.dhv-support-qr-panel-copy>strong{display:block;margin-bottom:7px;color:var(--dhv-ink);font-size:16.25px}.dhv-support-qr-panel-copy>p{max-width:52ch;color:var(--dhv-muted);font-size:13.25px;line-height:1.52}.dhv-support-qr-panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

.dhv-support-other{background:var(--dhv-bg)}.dhv-support-other-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dhv-support-other-card{display:flex;min-height:150px;flex-direction:column;padding:16px 17px;border:1px solid var(--dhv-line);border-radius:14px;background:var(--dhv-support-neutral);color:inherit;transition:border-color .16s ease,transform .16s ease,background .16s ease}.dhv-support-other-card h3{font-weight:800}.dhv-support-other-card p{margin-top:7px;color:var(--dhv-muted);font-size:13.25px;line-height:1.5}.dhv-support-other-card>span{margin-top:auto;padding-top:14px;color:var(--dhv-red);font-size:12.75px;font-weight:800}.dhv-support-other-card i{font-style:normal}.dhv-support-other-card[href]:hover,.dhv-support-other-card[href]:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,var(--dhv-red) 28%,var(--dhv-line));background:var(--dhv-support-soft);outline:none}
.dhv-support-ending{padding:clamp(30px,4vw,42px) 0;background:linear-gradient(90deg,color-mix(in srgb,var(--dhv-red) 4%,var(--dhv-bg)),var(--dhv-support-neutral));text-align:center}.dhv-support-ending .dhv-support-shell{max-width:780px}.dhv-support-ending .dhv-support-eyebrow{justify-content:center}.dhv-support-ending h2{max-width:24ch;margin-inline:auto}.dhv-support-ending p{max-width:62ch;margin:10px auto 0;color:var(--dhv-muted);font-size:13.5px;line-height:1.58}.dhv-support-system.is-unavailable .dhv-support-hero{border-bottom:0}.dhv-support-system.is-unavailable .dhv-support-shell{padding-block:4px}
.dhv-support-system :focus-visible{outline:3px solid color-mix(in srgb,var(--dhv-red) 25%,transparent);outline-offset:3px}
@media(max-width:900px){.dhv-support-hero-grid,.dhv-support-principles-grid{grid-template-columns:1fr;gap:26px}.dhv-support-purpose-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dhv-support-other-grid{grid-template-columns:1fr}.dhv-support-other-card{min-height:0}.dhv-support-route-card.is-vietqr{grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:640px){.dhv-support-system{width:calc(100% - 20px);margin-bottom:18px;border-radius:16px}.dhv-support-shell{width:calc(100% - 28px)}.dhv-support-hero{padding:34px 0}.dhv-support-system h1{font-size:clamp(31px,9.5vw,34px);line-height:1.07}.dhv-support-system h2{font-size:clamp(24px,7.5vw,27px)}.dhv-support-deck{font-size:16px}.dhv-support-section{padding:32px 0}.dhv-support-purpose-grid{grid-template-columns:1fr}.dhv-support-hero-actions{align-items:stretch}.dhv-support-hero-cta{width:100%;min-height:46px}.dhv-support-hero-actions>span{width:100%;text-align:center}.dhv-support-route-card.is-vietqr{grid-template-columns:1fr;gap:16px}.dhv-support-route-qr{width:min(210px,72vw);margin-inline:auto}.dhv-support-route-copy{align-items:stretch}.dhv-support-route-copy>small{align-self:flex-start}.dhv-support-route-actions{display:grid;grid-template-columns:1fr}.dhv-support-route-actions a,.dhv-support-route-actions button{width:100%;min-height:46px}.dhv-support-qr-panel{grid-template-columns:1fr;gap:16px;padding:14px}.dhv-support-qr-panel-actions{display:grid;grid-template-columns:1fr}.dhv-support-qr-panel-actions a{width:100%;min-height:46px}.dhv-support-ending{padding:32px 0}}


/* 13.78.217 · Stable semantic progress mount. Core owns all rendered progress truth. */
.dhv-support-progress-mount{max-width:820px}
.dhv-support-progress-mount:empty{display:none}

/* 13.78.216 · Donate stable amount mount + restrained amount-selector polish.
 * Core still owns the generated component and every payment/state transition. */
.dhv-support-amount-mount{max-width:820px}
.dhv-support-amount-mount:empty{display:none}
.dhv-support-amount-mount .dhv-support-amount-flow{
  gap:15px;
  margin:0 0 14px;
  padding:17px 18px 16px;
  border-color:color-mix(in srgb,var(--dhv-red) 15%,var(--dhv-line));
  border-radius:15px;
  background:color-mix(in srgb,var(--dhv-bg) 94%,var(--dhv-support-soft));
  box-shadow:0 8px 24px rgba(26,18,15,.025)
}
html[data-theme='dark'] .dhv-support-amount-mount .dhv-support-amount-flow{box-shadow:none}
.dhv-support-amount-mount .dhv-support-amount-flow__top{align-items:center;gap:18px}
.dhv-support-amount-mount .dhv-support-amount-flow__copy{gap:3px}
.dhv-support-amount-mount .dhv-support-amount-flow__copy>span{font-size:10.75px;letter-spacing:.085em}
.dhv-support-amount-mount .dhv-support-amount-flow__copy>strong{font-size:17.5px;letter-spacing:-.01em}
.dhv-support-amount-mount .dhv-support-amount-flow__copy>p{max-width:56ch;font-size:12.5px;line-height:1.48}
.dhv-support-amount-mount .dhv-support-amount-flow__amount{
  display:inline-flex;align-items:center;justify-content:center;min-width:86px;min-height:40px;padding:7px 11px;
  border:1px solid color-mix(in srgb,var(--dhv-red) 16%,var(--dhv-line));border-radius:11px;
  background:var(--dhv-bg);color:var(--dhv-ink);font-size:22px;letter-spacing:-.025em
}
.dhv-support-amount-mount .dhv-support-amount-flow__range{height:5px;margin:1px 0 0}
.dhv-support-amount-mount .dhv-support-amount-flow__ticks{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:0}
.dhv-support-amount-mount .dhv-support-amount-flow__ticks button{
  min-height:36px;padding:7px 5px;border:1px solid var(--dhv-line);border-radius:999px;
  background:var(--dhv-bg);color:var(--dhv-muted);font-size:11.5px;font-weight:800;line-height:1;
  text-decoration:none!important;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease
}
.dhv-support-amount-mount .dhv-support-amount-flow__ticks button:hover,
.dhv-support-amount-mount .dhv-support-amount-flow__ticks button:focus-visible{
  border-color:color-mix(in srgb,var(--dhv-red) 32%,var(--dhv-line));background:var(--dhv-support-soft);color:var(--dhv-red-strong);outline:none
}
.dhv-support-amount-mount .dhv-support-amount-flow__ticks button.is-active{border-color:var(--dhv-red);background:var(--dhv-red);color:#fff;text-decoration:none}
.dhv-support-amount-mount .dhv-support-amount-flow__custom{align-items:end;gap:10px;padding-top:1px}
.dhv-support-amount-mount .dhv-support-amount-flow__custom label{gap:7px;max-width:360px;font-size:11.75px}
.dhv-support-amount-mount .dhv-support-amount-flow__input-wrap{min-height:44px;border-radius:11px;padding-inline:12px}
.dhv-support-amount-mount .dhv-support-amount-flow__input-wrap input{font-size:14.5px}
.dhv-support-amount-mount .dhv-support-amount-flow__hint{padding-top:1px;font-size:11.75px!important}

@media(max-width:640px){
  .dhv-support-amount-mount .dhv-support-amount-flow{gap:13px;margin-bottom:13px;padding:15px;border-radius:14px}
  .dhv-support-amount-mount .dhv-support-amount-flow__top{align-items:flex-start;gap:10px}
  .dhv-support-amount-mount .dhv-support-amount-flow__copy>strong{font-size:16.5px}
  .dhv-support-amount-mount .dhv-support-amount-flow__copy>p{font-size:12px}
  .dhv-support-amount-mount .dhv-support-amount-flow__amount{min-width:74px;min-height:36px;padding:6px 9px;font-size:18px;border-radius:10px}
  .dhv-support-amount-mount .dhv-support-amount-flow__ticks{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
  .dhv-support-amount-mount .dhv-support-amount-flow__ticks button{min-height:34px;padding:6px 2px;font-size:10.75px}
  .dhv-support-amount-mount .dhv-support-amount-flow__custom{grid-template-columns:1fr}
  .dhv-support-amount-mount .dhv-support-amount-flow__custom label{max-width:none}
}
@media(max-width:420px){.dhv-support-amount-mount .dhv-support-amount-flow__ticks{grid-template-columns:repeat(4,minmax(0,1fr))}}

@media(prefers-reduced-motion:reduce){.dhv-support-route-card,.dhv-support-other-card{transition:none}.dhv-support-route-card:hover,.dhv-support-other-card:hover{transform:none}}
