/* ===========================================
   ONG Funding — Estilos Públicos v2
   =========================================== */

/* --- Grid de projetos --- */
.ong-projects-grid { display:grid; gap:24px; margin:24px 0; }
.ong-cols-1 { grid-template-columns:1fr; }
.ong-cols-2 { grid-template-columns:repeat(2,1fr); }
.ong-cols-3 { grid-template-columns:repeat(3,1fr); }
@media(max-width:768px){ .ong-cols-2,.ong-cols-3{ grid-template-columns:1fr; } }

/* --- Card --- */
.ong-project-card { background:#fff; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 2px 8px rgba(0,0,0,.06); transition:box-shadow .2s; }
.ong-project-card:hover { box-shadow:0 6px 20px rgba(0,0,0,.1); }
.ong-card-thumb img { width:100%; height:200px; object-fit:cover; display:block; }
.ong-card-body { padding:20px; flex:1; display:flex; flex-direction:column; gap:10px; }
.ong-card-title { margin:0; font-size:1.05rem; }
.ong-card-title a { text-decoration:none; color:inherit; }
.ong-card-excerpt { margin:0; font-size:.88rem; color:#555; flex:1; }
.ong-btn-donate { display:inline-block; background:#16a34a; color:#fff!important; padding:10px 20px; border-radius:8px; text-decoration:none!important; font-weight:600; font-size:.9rem; text-align:center; transition:background .2s; margin-top:auto; }
.ong-btn-donate:hover { background:#15803d; }
.ong-badge { display:inline-block; padding:4px 12px; border-radius:99px; font-size:.78rem; font-weight:700; }
.ong-badge-encerrado { background:#f3f4f6; color:#6b7280; }
.ong-badge-pausado   { background:#fef3c7; color:#92400e; }

/* --- Barra de progresso --- */
.ong-progress-wrap { height:10px; background:#e5e7eb; border-radius:99px; overflow:hidden; margin:4px 0; }
.ong-progress-bar  { height:100%; background:linear-gradient(90deg,#22c55e,#16a34a); border-radius:99px; transition:width .6s ease; min-width:2px; }
.ong-progress-meta { display:flex; justify-content:space-between; font-size:.8rem; color:#555; flex-wrap:wrap; gap:4px; }
.ong-raised { color:#16a34a; font-weight:600; }
.ong-pct    { font-weight:700; color:#111; }
.ong-goal   { color:#888; }

/* =============================================
   PÁGINA DO PROJETO
   ============================================= */
.ong-single-wrap { max-width:1100px; margin:0 auto; }
.ong-single-hero img { width:100%; max-height:420px; object-fit:cover; border-radius:14px; margin-bottom:24px; }
.ong-single-header { display:flex; align-items:center; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.ong-single-title { margin:0; font-size:1.8rem; line-height:1.3; }

.ong-single-layout { display:grid; grid-template-columns:1fr 360px; gap:40px; align-items:start; }
@media(max-width:900px){ .ong-single-layout{ grid-template-columns:1fr; } }

.ong-single-content { font-size:1rem; line-height:1.75; margin-bottom:32px; }

/* Vídeo */
.ong-single-video { margin-bottom:36px; }
.ong-single-video h3 { margin-bottom:14px; }
.ong-video-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:12px; }
.ong-video-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }

/* Galeria */
.ong-single-gallery { margin-bottom:36px; }
.ong-single-gallery h3 { margin-bottom:14px; }
.ong-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media(max-width:600px){ .ong-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.ong-gallery-grid a { display:block; border-radius:8px; overflow:hidden; aspect-ratio:4/3; }
.ong-gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.ong-gallery-grid a:hover img { transform:scale(1.05); }

/* Lightbox */
.ong-lightbox { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:99999; display:flex; align-items:center; justify-content:center; }
.ong-lightbox-img-wrap { max-width:90vw; max-height:90vh; }
.ong-lightbox-img-wrap img { max-width:100%; max-height:90vh; object-fit:contain; border-radius:8px; }
.ong-lightbox-close,.ong-lightbox-prev,.ong-lightbox-next { position:absolute; background:rgba(255,255,255,.15); border:none; color:#fff; font-size:1.6rem; cursor:pointer; border-radius:50%; width:48px; height:48px; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.ong-lightbox-close { top:20px; right:20px; font-size:1.2rem; }
.ong-lightbox-prev  { left:20px; }
.ong-lightbox-next  { right:20px; }
.ong-lightbox-close:hover,.ong-lightbox-prev:hover,.ong-lightbox-next:hover { background:rgba(255,255,255,.3); }

/* Atualizações */
.ong-updates { margin-bottom:36px; }
.ong-updates h3 { margin-bottom:16px; }
.ong-update-item { border-left:3px solid #16a34a; padding:12px 16px; margin-bottom:16px; background:#f9fafb; border-radius:0 8px 8px 0; }
.ong-update-meta { display:flex; gap:12px; align-items:center; margin-bottom:6px; flex-wrap:wrap; }
.ong-update-date { font-size:.8rem; color:#888; }
.ong-update-title { font-size:1rem; }
.ong-update-content { margin:0; font-size:.9rem; color:#444; line-height:1.6; }

/* Sidebar de progresso */
.ong-progress-card { background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:24px; box-shadow:0 2px 12px rgba(0,0,0,.06); position:sticky; top:24px; }
.ong-raised-big { display:block; font-size:1.9rem; font-weight:800; color:#16a34a; line-height:1.1; }
.ong-goal-label { display:block; font-size:.85rem; color:#888; margin-bottom:12px; }
.ong-progress-pct { font-size:.85rem; font-weight:700; color:#16a34a; text-align:right; margin-bottom:16px; }
.ong-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:20px; text-align:center; padding-bottom:16px; border-bottom:1px solid #f3f4f6; }
.ong-stat-value { display:block; font-size:1.3rem; font-weight:800; }
.ong-stat-label { display:block; font-size:.72rem; color:#888; margin-top:2px; }

/* =============================================
   FORMULÁRIO DE DOAÇÃO
   ============================================= */
.ong-donate-wrap { margin-top:20px; }
.ong-donate-title { margin:0 0 16px; font-size:1.1rem; }
.ong-field { margin-bottom:14px; }
.ong-field label { display:block; font-size:.85rem; font-weight:600; margin-bottom:6px; }
.ong-input { width:100%; padding:10px 12px; border:1.5px solid #d1d5db; border-radius:8px; font-size:.95rem; box-sizing:border-box; transition:border-color .15s; }
.ong-input:focus { border-color:#16a34a; outline:none; box-shadow:0 0 0 3px rgba(22,163,74,.12); }
.ong-amount-grid { display:flex; flex-wrap:wrap; gap:8px; }
.ong-amount-btn { padding:8px 16px; border:2px solid #d1fae5; background:#fff; border-radius:8px; cursor:pointer; font-size:.88rem; font-weight:600; color:#16a34a; transition:all .15s; }
.ong-amount-btn:hover,.ong-amount-btn.ong-selected { background:#16a34a; border-color:#16a34a; color:#fff; }
.ong-required { color:#dc2626; margin-left:3px; }
.ong-optional { color:#9ca3af; font-weight:400; font-size:.8rem; margin-left:4px; }

/* Abas de pagamento */
.ong-payment-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.ong-pay-tab { flex:1; min-width:80px; padding:10px 8px; border:2px solid #e5e7eb; background:#fff; border-radius:10px; cursor:pointer; font-size:.82rem; font-weight:600; color:#555; text-align:center; transition:all .15s; display:flex; flex-direction:column; align-items:center; gap:4px; }
.ong-pay-icon { font-size:1.2rem; }
.ong-pay-tab:hover { border-color:#16a34a; color:#16a34a; }
.ong-pay-tab.ong-selected { border-color:#16a34a; background:#f0fdf4; color:#16a34a; }

.ong-btn-submit { width:100%; padding:13px; background:#16a34a; color:#fff; border:none; border-radius:10px; font-size:.97rem; font-weight:700; cursor:pointer; transition:background .2s; margin-top:12px; }
.ong-btn-submit:hover    { background:#15803d; }
.ong-btn-submit:disabled { background:#86efac; cursor:not-allowed; }

/* Mensagens */
.ong-success-message,.ong-error-message,.ong-notice { padding:12px 16px; border-radius:8px; margin-bottom:14px; font-size:.9rem; line-height:1.5; }
.ong-success-message { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.ong-error-message   { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.ong-notice-info     { background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe; }

/* Resultado do pagamento */
.ong-payment-result { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:12px; padding:20px; margin-top:8px; }
.ong-payment-result h4 { margin:0 0 12px; color:#166534; }
.ong-pix-qr { text-align:center; margin:12px 0; }
.ong-pix-qr img { width:200px; height:200px; border-radius:8px; border:4px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.1); }
.ong-copy-wrap { display:flex; gap:8px; margin-top:10px; }
.ong-copy-input { flex:1; padding:8px 12px; border:1px solid #d1d5db; border-radius:8px; font-size:.8rem; background:#fff; }
.ong-copy-btn { padding:8px 14px; background:#16a34a; color:#fff; border:none; border-radius:8px; cursor:pointer; font-size:.82rem; font-weight:600; white-space:nowrap; }
.ong-boleto-link { display:inline-block; background:#1d4ed8; color:#fff!important; padding:12px 24px; border-radius:8px; text-decoration:none!important; font-weight:600; margin-top:8px; }
.ong-empty { color:#6b7280; font-style:italic; }
