/* ================================================
   FTPAB Custom Styles - Override Bootstrap 5.0.2
   Font: Plus Jakarta Sans
   ================================================ */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

:root {
    --ftpab-primary: #C0392B;
    --ftpab-primary-dark: #962D22;
    --ftpab-primary-light: #E74C3C;
    --ftpab-primary-soft: #FEF2F2;
    --ftpab-dark: #0F172A;
    --ftpab-dark-soft: #1E293B;
    --ftpab-accent: #D4A843;
    --ftpab-accent-soft: #FEF9EC;
    --ftpab-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
    --ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* === BASE OVERRIDE === */
body { font-family: var(--ftpab-font); color: #4b5563; line-height: 1.7; overflow-x: hidden; }
h1,h2,h3,h4,h5,h6 { font-family: var(--ftpab-font); color: #111827; font-weight: 700; }
a { transition: all .3s var(--ease); }
img { max-width: 100%; height: auto; }
section { padding: 100px 0; }

/* === BOOTSTRAP OVERRIDE === */
.btn { font-family: var(--ftpab-font); font-weight: 600; border-radius: 10px; padding: 10px 24px; font-size: 14px; transition: all .3s var(--ease); }
.btn-ftpab { background: var(--ftpab-primary); color: #fff; border: none; box-shadow: 0 4px 14px rgba(192,57,43,.3); }
.btn-ftpab:hover { background: var(--ftpab-primary-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(192,57,43,.35); }
.btn-ftpab-outline { border: 1.5px solid #d1d5db; color: #374151; background: transparent; }
.btn-ftpab-outline:hover { border-color: var(--ftpab-primary); color: var(--ftpab-primary); background: var(--ftpab-primary-soft); }
.btn-ftpab-white { background: #fff; color: #111827; box-shadow: 0 4px 6px rgba(0,0,0,.06); border: none; }
.btn-ftpab-white:hover { transform: translateY(-2px); box-shadow: 0 10px 15px rgba(0,0,0,.08); color: #111827; }
.btn-ftpab-ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.25); }
.btn-ftpab-ghost:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.5); color: #fff; }
.btn-lg { padding: 14px 32px; font-size: 15px; border-radius: 12px; }
.btn-sm { padding: 7px 16px; font-size: 13px; }

/* === TOP BAR === */
.top-bar { background: var(--ftpab-primary-dark); padding: 6px 0; text-align: center; font-size: 12px; color: rgba(255,255,255,.8); letter-spacing: 2px; font-weight: 600; text-transform: uppercase; }

/* === NAVBAR DARK RED === */
.navbar-ftpab { background: #6B1212; box-shadow: 0 2px 12px rgba(0,0,0,.25); padding: 6px 0; transition: all .35s var(--ease); }
.navbar-ftpab.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,.35); }
.navbar-ftpab .navbar-brand { display: flex; align-items: center; gap: 12px; }
.navbar-ftpab .navbar-brand img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--ftpab-accent); }
.navbar-ftpab .brand-name { font-size: 17px; font-weight: 800; color: #fff; line-height: 1.15; display: block; }
.navbar-ftpab .brand-sub { font-size: 10.5px; color: rgba(255,255,255,.55); letter-spacing: .3px; display: block; }
.navbar-ftpab .nav-link { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.8); padding: 7px 14px !important; border-radius: 6px; transition: all .2s; text-transform: uppercase; letter-spacing: .3px; }
.navbar-ftpab .nav-link:hover, .navbar-ftpab .nav-link.active { color: #fff; background: rgba(255,255,255,.12); }
.btn-nav-donasi { background: var(--ftpab-accent) !important; color: #1a1a1a !important; padding: 9px 22px !important; border-radius: 6px !important; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .3px; box-shadow: 0 2px 8px rgba(212,168,67,.4); border: none; }
.btn-nav-donasi:hover { background: #e0bc5a !important; color: #1a1a1a !important; transform: translateY(-1px); }
.navbar-toggler { border: 1px solid rgba(255,255,255,.3); padding: 6px 10px; }
.navbar-toggler .navbar-toggler-icon { 
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    width: 24px; height: 24px;
}
.navbar-toggler:focus { box-shadow: none; }
.navbar-ftpab .navbar-collapse { background: #6B1212; }
@media(max-width:991px) { .navbar-ftpab .navbar-collapse { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.08); margin-top: 8px; } }

/* === HERO FULLWIDTH SLIDER === */
.ftpab-hero-slider { position:relative; width:100%; height:100vh; min-height:600px; overflow:hidden; padding:0 !important; }
.fhs-slides { position:relative; width:100%; height:100%; }
.fhs-slide { position:absolute; inset:0; z-index:0; opacity:0; pointer-events:none; }
.fhs-slide.active { z-index:2; opacity:1; pointer-events:auto; }
.fhs-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
@keyframes fhsZoomIn { from{transform:scale(1)} to{transform:scale(1.08)} }
.fhs-slide.active .fhs-bg { animation:fhsZoomIn 8s ease forwards; }
.fhs-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.35) 50%,rgba(0,0,0,.15) 100%); z-index:1; }
.fhs-content { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; height:100vh; min-height:600px; max-width:620px; padding:100px 0 140px; }
.fhs-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(192,57,43,.2); border:1px solid rgba(192,57,43,.35); color:#F0A0A0; padding:6px 18px; border-radius:50px; font-size:11px; font-weight:600; letter-spacing:.8px; text-transform:uppercase; margin-bottom:20px; width:fit-content; }
.fhs-title { font-size:clamp(32px,5vw,56px); font-weight:800; color:#fff; line-height:1.1; margin:0 0 14px; }
.fhs-tagline { font-size:13px; font-weight:700; color:var(--ftpab-accent); letter-spacing:3px; text-transform:uppercase; margin-bottom:16px; }
.fhs-desc { font-size:17px; color:rgba(255,255,255,.7); line-height:1.7; margin-bottom:32px; max-width:520px; }
.fhs-buttons { display:flex; gap:14px; flex-wrap:wrap; }
.fhs-btn-outline { background:transparent; border:2px solid rgba(255,255,255,.3); color:#fff; border-radius:8px; transition:all .3s; }
.fhs-btn-outline:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.5); color:#fff; }
/* Arrows */
.fhs-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:50px; height:50px; border:2px solid rgba(255,255,255,.25); background:rgba(0,0,0,.25); color:#fff; font-size:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .3s; backdrop-filter:blur(4px); }
.fhs-arrow:hover { background:var(--ftpab-primary); border-color:var(--ftpab-primary); }
.fhs-prev { left:24px; }
.fhs-next { right:24px; }
/* Indicators */
.fhs-indicators { position:absolute; bottom:100px; left:50%; transform:translateX(-50%); z-index:5; display:flex; gap:8px; }
.fhs-dot { width:32px; height:4px; border-radius:2px; border:none; background:rgba(255,255,255,.3); cursor:pointer; transition:all .3s; padding:0; }
.fhs-dot.active { width:48px; background:#fff; }
/* Stats Bar */
.fhs-stats { position:absolute; bottom:0; left:0; right:0; z-index:5; background:rgba(0,0,0,.5); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.08); }
.fhs-stats-inner { display:flex; justify-content:center; gap:60px; padding:18px 0; }
.fhs-stat-item { text-align:center; }
.fhs-stat-num { font-size:26px; font-weight:800; color:#fff; line-height:1; }
.fhs-stat-label { font-size:12px; color:rgba(255,255,255,.5); margin-top:3px; }
/* Responsive */
@media(max-width:991px) {
    .ftpab-hero-slider { height:85vh; min-height:550px; }
    .fhs-content { height:85vh; min-height:550px; padding:80px 0 130px; }
    .fhs-arrow { width:40px; height:40px; font-size:14px; }
    .fhs-prev { left:12px; }
    .fhs-next { right:12px; }
    .fhs-stats-inner { gap:30px; }
}
@media(max-width:767px) {
    .ftpab-hero-slider { height:100vh; min-height:560px; }
    .fhs-content { height:100vh; min-height:560px; padding:80px 0 120px; max-width:100%; }
    .fhs-bg { background-size:cover; background-position:center; }
    .fhs-overlay { background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.45) 50%,rgba(0,0,0,.3) 100%); }
    .fhs-title { font-size:26px; }
    .fhs-desc { font-size:14px; margin-bottom:24px; }
    .fhs-arrow { display:none; }
    .fhs-indicators { bottom:80px; }
    .fhs-stats-inner { gap:16px; flex-wrap:wrap; justify-content:center; padding:12px 10px; }
    .fhs-stat-num { font-size:18px; }
    .fhs-stat-label { font-size:10px; }
    .fhs-buttons .btn { width:100%; justify-content:center; }
    .fhs-buttons { flex-direction:column; gap:10px; }
    .fhs-badge { font-size:10px; padding:5px 14px; }
    .fhs-tagline { font-size:11px; letter-spacing:2px; }
}

/* === MARQUEE === */
.marquee-section { padding: 24px 0; border-bottom: 1px solid #f3f4f6; overflow: hidden; }
.marquee-track { display: flex; gap: 48px; animation: marqueeScroll 30s linear infinite; width: max-content; }
.marquee-track span { font-size: 14px; font-weight: 700; color: #d1d5db; white-space: nowrap; display: flex; align-items: center; gap: 8px; }
@keyframes marqueeScroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* === SECTION HELPERS === */
.section-label { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--ftpab-primary); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 12px; }
.section-label::before { content: ''; width: 28px; height: 2px; background: var(--ftpab-primary); border-radius: 2px; }
.section-desc { color: #6b7280; font-size: 16px; max-width: 580px; line-height: 1.8; }
.bg-ftpab-light { background: #f9fafb; }
.bg-ftpab-dark { background: var(--ftpab-dark); }

/* === ABOUT IMAGE BADGE === */
.about-img-wrap { position: relative; border-radius: 20px; overflow: hidden; box-shadow: 0 20px 25px -5px rgba(0,0,0,.08); }
.about-img-wrap img { width: 100%; height: auto; max-height: 420px; object-fit: contain; background: #f3f4f6; }
.about-badge { position: absolute; bottom: 16px; left: 16px; background: #fff; padding: 12px 18px; border-radius: 12px; box-shadow: 0 10px 15px rgba(0,0,0,.08); display: flex; align-items: center; gap: 10px; }
.about-badge .ab-icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: var(--ftpab-primary-soft); color: var(--ftpab-primary); border-radius: 10px; font-size: 16px; }
.about-badge .ab-text h5 { font-size: 18px; font-weight: 800; line-height: 1; margin: 0; }
.about-badge .ab-text p { font-size: 11px; color: #6b7280; margin: 0; }
.feat-check { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 8px; }
.feat-check i { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; background: var(--ftpab-primary-soft); color: var(--ftpab-primary); border-radius: 5px; font-size: 10px; }

/* === PROGRAM CARD === */
.program-card { border: 1px solid #f3f4f6; border-radius: 16px; overflow: hidden; transition: all .35s var(--ease); }
.program-card:hover { transform: translateY(-6px); box-shadow: 0 20px 25px -5px rgba(0,0,0,.08); }
.program-card .card-img-top { height: auto; max-height: 220px; object-fit: contain; background: #f3f4f6; transition: transform .5s; }
.program-card:hover .card-img-top { transform: scale(1.05); }
.program-card .card-img-wrap { overflow: hidden; }
.program-cat { display: inline-block; padding: 3px 12px; background: var(--ftpab-primary-soft); color: var(--ftpab-primary); font-size: 11px; font-weight: 700; border-radius: 50px; text-transform: uppercase; letter-spacing: .3px; }
.progress-ftpab { height: 5px; border-radius: 3px; background: #e5e7eb; }
.progress-ftpab .progress-bar { background: linear-gradient(90deg,var(--ftpab-primary),var(--ftpab-primary-light)); border-radius: 3px; }

/* === BERITA CARD === */
.berita-card { border: 1px solid #f3f4f6; border-radius: 16px; overflow: hidden; transition: all .35s var(--ease); }
.berita-card:hover { transform: translateY(-4px); box-shadow: 0 10px 15px rgba(0,0,0,.06); }
.berita-card .card-img-wrap { overflow: hidden; height: 220px; }
.berita-card .card-img-wrap img { width: 100%; height: 100%; object-fit: contain; background: #f3f4f6; transition: transform .5s; }
.berita-card:hover .card-img-wrap img { transform: scale(1.05); }
.berita-meta { font-size: 12.5px; color: #9ca3af; }
.berita-meta i { margin-right: 3px; }
.read-more { color: var(--ftpab-primary); font-size: 14px; font-weight: 600; }
.read-more:hover { color: var(--ftpab-primary-dark); }

/* === GALERI === */
.galeri-item { border-radius: 12px; overflow: hidden; position: relative; cursor: pointer; aspect-ratio: 4/3; }
.galeri-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.galeri-item:hover img { transform: scale(1.06); }
.galeri-overlay { position: absolute; inset: 0; background: linear-gradient(to top,rgba(0,0,0,.65),transparent 50%); opacity: 0; transition: all .3s; display: flex; align-items: flex-end; padding: 16px; }
.galeri-item:hover .galeri-overlay { opacity: 1; }
.galeri-overlay p { color: #fff; font-size: 13px; font-weight: 600; margin: 0; }

/* === LIGHTBOX === */
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9999; align-items:center; justify-content:center; padding:20px; }
.lightbox.active { display:flex; }
.lightbox img { max-width:85%; max-height:85vh; object-fit:contain; border-radius:8px; user-select:none; }
.lightbox-close { position:absolute; top:20px; right:30px; font-size:36px; color:#fff; cursor:pointer; background:none; border:none; transition:all .2s; line-height:1; z-index:10000; }
.lightbox-close:hover { color:var(--ftpab-primary); transform:scale(1.2); }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.12); color:#fff; border:none; border-radius:50%; font-size:20px; cursor:pointer; transition:all .25s; z-index:10000; backdrop-filter:blur(4px); }
.lightbox-nav:hover { background:var(--ftpab-primary); color:#fff; transform:translateY(-50%) scale(1.1); }
.lightbox-prev { left:20px; }
.lightbox-next { right:20px; }
.lightbox-counter { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.6); font-size:13px; font-weight:600; z-index:10000; }
@media(max-width:575px){ .lightbox-nav { width:38px; height:38px; font-size:16px; } .lightbox-prev { left:10px; } .lightbox-next { right:10px; } }

/* === DONASI === */
.donasi-section { background: linear-gradient(145deg,var(--ftpab-dark) 0%,#1a1025 60%,#150a0a 100%); }
.donasi-feature { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
.donasi-feature .df-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: rgba(192,57,43,.15); color: #F0A0A0; border-radius: 10px; font-size: 16px; flex-shrink: 0; }
.donasi-feature h5 { color: #fff; font-size: 14px; margin-bottom: 1px; }
.donasi-feature p { font-size: 12px; color: rgba(255,255,255,.4); margin: 0; }
.donasi-form-box { background: #fff; border-radius: 20px; padding: 36px; box-shadow: 0 24px 56px rgba(0,0,0,.35); }
.nominal-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 16px; }
.nominal-btn { padding: 12px; background: #f9fafb; border: 1.5px solid #e5e7eb; border-radius: 10px; font-size: 14px; font-weight: 700; color: #4b5563; text-align: center; cursor: pointer; transition: all .2s; font-family: var(--ftpab-font); }
.nominal-btn:hover, .nominal-btn.selected { border-color: var(--ftpab-primary); background: var(--ftpab-primary-soft); color: var(--ftpab-primary); }

/* === ORG CARD === */
.org-card { border-radius: 16px; border: 1px solid #f3f4f6; transition: all .3s var(--ease); }
.org-card:hover { transform: translateY(-4px); box-shadow: 0 10px 15px rgba(0,0,0,.06); }
.org-foto { width: 88px; height: 88px; border-radius: 50%; overflow: hidden; border: 3px solid #e5e7eb; background: #f3f4f6; display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.org-foto .initials { font-size: 26px; font-weight: 800; color: #9ca3af; }
.org-jabatan { font-size: 12.5px; color: var(--ftpab-primary); font-weight: 600; }

/* === KONTAK RED SECTION === */
.kontak-hero { background: linear-gradient(135deg,var(--ftpab-primary) 0%,var(--ftpab-primary-dark) 100%); position: relative; overflow: hidden; }
.kontak-hero::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"); }
.kc-card { background: rgba(255,255,255,.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 24px 16px; text-align: center; transition: all .3s; }
.kc-card:hover { background: rgba(255,255,255,.16); transform: translateY(-3px); }
.kc-card .kc-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); border-radius: 50%; font-size: 20px; margin: 0 auto 10px; color: #fff; }
.kc-card h5 { color: #fff; font-size: 14px; margin-bottom: 3px; }
.kc-card p { font-size: 12px; color: rgba(255,255,255,.6); margin: 0; }

/* === CTA === */
.cta-section { background: linear-gradient(135deg,var(--ftpab-primary) 0%,var(--ftpab-primary-dark) 100%); position: relative; overflow: hidden; }
.cta-section::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='.04'%3E%3Cpath d='M20 20h20v20H20z'/%3E%3C/g%3E%3C/svg%3E"); }
.cta-section .container { position: relative; z-index: 2; }

/* === PAGE HEADER === */
.page-header-ftpab { background: linear-gradient(145deg,var(--ftpab-dark) 0%,#1a1025 100%); padding: 140px 0 56px; position: relative; overflow: hidden; }
.page-header-ftpab::before { content: ''; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"); }
.page-header-ftpab .container { position: relative; z-index: 2; }
.page-header-ftpab h1 { color: #fff; }

/* === FOOTER === */
.footer-ftpab { background: var(--ftpab-dark); color: rgba(255,255,255,.6); }
.footer-ftpab h5 { color: #fff; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.footer-ftpab h6 { font-size: 14px; }
.footer-ftpab .tagline { font-size: 11px; color: var(--ftpab-accent); letter-spacing: 1px; text-transform: uppercase; font-weight: 600; }
.footer-ftpab a { color: rgba(255,255,255,.5); transition: all .2s; font-size: 13.5px; }
.footer-ftpab a:hover { color: #fff; padding-left: 3px; }
.footer-ftpab .footer-bottom { border-top: 1px solid rgba(255,255,255,.06); padding: 18px 0; font-size: 12.5px; color: rgba(255,255,255,.3); }
.footer-ftpab .footer-main { padding: 60px 0 40px; }
.footer-ftpab .footer-cta { padding: 30px 0; border-top: 1px solid rgba(255,255,255,.08); }
.footer-ftpab .footer-copyright { background: rgba(0,0,0,.25); padding: 16px 0; }

/* Footer Social Circle Icons */
.footer-social-circle {
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:50%;
    color:#fff !important; font-size:15px;
    text-decoration:none !important;
    transition:all .3s ease;
}
.footer-social-circle:hover {
    color:#fff !important;
    transform:translateY(-3px) scale(1.1);
    box-shadow:0 4px 15px rgba(0,0,0,.3);
    padding-left:0 !important;
}

/* Footer Mobile Responsive */
@media(max-width:767px) {
    .footer-ftpab .footer-main { padding: 40px 0 30px; }
    .footer-ftpab .footer-main .row > [class*="col"] { padding-left: 20px; padding-right: 20px; }
    .footer-ftpab .footer-cta { padding: 24px 0; }
    .footer-ftpab .footer-cta .row > [class*="col"] { padding-left: 20px; padding-right: 20px; }
    .footer-ftpab .footer-copyright .container { flex-direction: column; gap: 6px; text-align: center; }
    .footer-ftpab h5 { margin-top: 8px; }
}

/* === FORM OVERRIDE === */
.form-control { border-radius: 10px; border: 1.5px solid #e5e7eb; padding: 10px 14px; font-size: 14px; font-family: var(--ftpab-font); transition: all .25s; }
.form-control:focus { border-color: var(--ftpab-primary); box-shadow: 0 0 0 3px rgba(192,57,43,.08); }
.form-label { font-size: 13px; font-weight: 600; color: #374151; }

/* === SCROLL ANIMATIONS === */
.fade-up { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.fade-up.d1{transition-delay:.1s} .fade-up.d2{transition-delay:.2s} .fade-up.d3{transition-delay:.3s} .fade-up.d4{transition-delay:.4s}

/* === RESPONSIVE FIX === */
@media(max-width:991px) {
    .hero-carousel .carousel-item img { height: 300px; }
    section { padding: 64px 0; }
}
@media(max-width:767px) {
    .hero-title { font-size: 30px; }
    .hero-carousel .carousel-item img { height: 250px; }
    .nominal-grid { grid-template-columns: repeat(2,1fr); }
    .about-img-wrap img { height: 280px; }
    section { padding: 48px 0; }
}

/* === MODAL DONASI POPUP === */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:2000; align-items:center; justify-content:center; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.modal-overlay.buka { display:flex; }
.modal-box { background:#fff; border-radius:20px; padding:36px; max-width:500px; width:92%; max-height:90vh; overflow-y:auto; position:relative; box-shadow:0 30px 80px rgba(0,0,0,.3); animation:modalIn .3s ease; }
@keyframes modalIn { from{opacity:0;transform:scale(.95) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }
.modal-close { position:absolute; top:14px; right:18px; background:none; border:none; font-size:26px; cursor:pointer; color:#999; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all .2s; line-height:1; }
.modal-close:hover { background:#f5f5f5; color:var(--ftpab-primary); }
.modal-judul { font-family:var(--ftpab-font); font-size:24px; font-weight:800; margin-bottom:4px; color:var(--ftpab-primary-dark); }
.modal-sub { font-size:13px; color:#888; margin-bottom:20px; }

.nominal-grid-modal { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.nom-btn { padding:10px 8px; border:2px solid #ddd; background:#fff; border-radius:8px; font-weight:700; font-size:13px; cursor:pointer; text-align:center; transition:all .2s; color:#333; font-family:var(--ftpab-font); }
.nom-btn.aktif, .nom-btn:hover { background:var(--ftpab-primary); color:#fff; border-color:var(--ftpab-primary); }

.metode-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.metode-btn { border:2px solid #ddd; background:#fff; border-radius:8px; padding:10px 6px; text-align:center; cursor:pointer; transition:all .2s; font-size:12px; font-weight:700; color:#888; font-family:var(--ftpab-font); }
.metode-ico { font-size:20px; display:block; margin-bottom:3px; }
.metode-btn.aktif, .metode-btn:hover { border-color:var(--ftpab-primary); color:var(--ftpab-primary); background:rgba(192,57,43,.04); }

.btn-bayar { width:100%; padding:15px; background:var(--ftpab-primary); color:#fff; border:none; border-radius:10px; font-size:16px; font-weight:800; cursor:pointer; transition:all .3s; font-family:var(--ftpab-font); }
.btn-bayar:hover { background:var(--ftpab-primary-dark); transform:translateY(-2px); }

@media(max-width:480px) { .nominal-grid-modal { grid-template-columns:repeat(2,1fr); } }

/* Share Button Circle */
.btn-share-circle {
    display:inline-flex; align-items:center; justify-content:center;
    width:42px; height:42px; border-radius:50%;
    color:#fff; font-size:18px;
    text-decoration:none;
    transition:all .3s ease;
    box-shadow:0 4px 15px rgba(0,0,0,.15);
}
.btn-share-circle:hover {
    color:#fff;
    transform:translateY(-3px) scale(1.1);
    box-shadow:0 6px 20px rgba(0,0,0,.25);
}
.btn-share-circle:active {
    transform:translateY(0) scale(.95);
}
