@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Source+Sans+3:wght@300;400;500;600&display=swap');

:root {
  --green-dark:   #0d3d20;
  --green-main:   #1a5c38;
  --green-mid:    #236b43;
  --green-light:  #2e8653;
  --green-pale:   #e8f5ee;
  --gold:         #c8960c;
  --gold-bright:  #f0b912;
  --gold-light:   #f5cc4a;
  --gold-pale:    #fef8e4;
  --red-accent:   #b91c1c;
  --white:        #ffffff;
  --cream:        #f6f9f7;
  --text-body:    #1e3328;
  --text-muted:   #5a7a66;
  --border:       #cfe0d4;
  --shadow-sm:    0 2px 8px  rgba(13,61,32,.09);
  --shadow-md:    0 8px 32px rgba(13,61,32,.15);
  --shadow-lg:    0 20px 60px rgba(13,61,32,.22);
  --radius:       12px;
  --radius-lg:    20px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family:'Source Sans 3',sans-serif; font-weight:400; color:var(--text-body); background:var(--cream); line-height:1.7; }

/* TOPBAR */
.topbar { background:var(--green-dark); color:rgba(255,255,255,.68); font-size:.8rem; padding:.45rem 0; border-bottom:1px solid rgba(200,150,12,.3); }
.topbar a { color:var(--gold-light); text-decoration:none; }
.topbar a:hover { color:var(--white); }

/* NAVBAR */
.navbar-custom { background:var(--green-main); padding:.7rem 0; box-shadow:var(--shadow-md); position:sticky; top:0; z-index:1000; border-bottom:3px solid var(--gold-bright); }
.navbar-brand-text .univ-name { font-family:'Playfair Display',serif; font-size:.97rem; font-weight:700; color:var(--gold-light); display:block; }
.navbar-brand-text .univ-sub  { font-size:.68rem; color:rgba(255,255,255,.48); display:block; letter-spacing:.04em; }
.logo-img { width:48px; height:48px; object-fit:contain; flex-shrink:0; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); }

/* HERO */
.hero { position:relative; overflow:hidden; display:flex; flex-direction:column; }

.hero-banner-wrap { width:100%; max-height:230px; overflow:hidden; position:relative; }
.hero-banner-wrap img { width:100%; object-fit:cover; object-position:center 30%; display:block; }
.hero-banner-wrap::after { content:''; position:absolute; bottom:0; left:0; right:0; height:80px; background:linear-gradient(to bottom, transparent, var(--green-dark)); }

.hero-body { flex:1; background:linear-gradient(160deg, var(--green-dark) 0%, var(--green-main) 55%, var(--green-mid) 100%); padding:3.5rem 0 4rem; position:relative; min-height:58vh; display:flex; align-items:center; }
.hero-body::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 75% 50%, rgba(200,150,12,.14) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 5% 90%, rgba(200,150,12,.08) 0%, transparent 60%); pointer-events:none; }
.hero-pattern { position:absolute; inset:0; background-image:linear-gradient(rgba(200,150,12,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(200,150,12,.04) 1px,transparent 1px); background-size:60px 60px; pointer-events:none; }

.hero-badge { display:inline-flex; align-items:center; gap:.5rem; background:rgba(200,150,12,.18); border:1px solid rgba(200,150,12,.45); color:var(--gold-light); font-size:.77rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; padding:.38rem 1rem; border-radius:50px; margin-bottom:1.4rem; }
.hero-title { font-family:'Playfair Display',serif; font-size:clamp(1.9rem,5vw,3.2rem); font-weight:800; color:var(--white); line-height:1.2; margin-bottom:1rem; }
.hero-title span { color:var(--gold-light); display:block; }
.hero-desc { font-size:1rem; color:rgba(255,255,255,.72); max-width:500px; margin-bottom:2rem; }

.btn-cta { background:linear-gradient(135deg,var(--gold),var(--gold-bright)); color:var(--green-dark); font-weight:700; font-size:.95rem; padding:.8rem 2rem; border-radius:50px; border:none; text-decoration:none; display:inline-flex; align-items:center; gap:.55rem; transition:all .3s; box-shadow:0 6px 24px rgba(200,150,12,.4); }
.btn-cta:hover { transform:translateY(-2px); box-shadow:0 10px 32px rgba(200,150,12,.55); color:var(--green-dark); }
.btn-outline-light-custom { border:2px solid rgba(255,255,255,.3); color:rgba(255,255,255,.82); font-weight:600; padding:.75rem 1.7rem; border-radius:50px; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; transition:all .3s; }
.btn-outline-light-custom:hover { border-color:var(--gold-bright); color:var(--gold-light); background:rgba(200,150,12,.1); }

.hero-card { background:rgba(255,255,255,.07); backdrop-filter:blur(20px); border:1px solid rgba(200,150,12,.25); border-radius:var(--radius-lg); padding:1.8rem; }
.hero-stat { text-align:center; padding:1.1rem .7rem; border-radius:var(--radius); background:rgba(255,255,255,.06); border:1px solid rgba(200,150,12,.2); }
.hero-stat .stat-num { font-family:'Playfair Display',serif; font-size:1.7rem; font-weight:700; color:var(--gold-light); display:block; line-height:1; }
.hero-stat .stat-lbl { font-size:.7rem; color:rgba(255,255,255,.55); margin-top:.3rem; display:block; }
.deadline-badge { background:rgba(200,150,12,.1); border:1px solid rgba(200,150,12,.28); border-radius:var(--radius); padding:1rem 1.3rem; margin-top:1rem; }
.deadline-badge .label { font-size:.7rem; color:var(--gold-light); font-weight:600; text-transform:uppercase; letter-spacing:.07em; }
.deadline-badge .date  { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:700; color:var(--white); }

/* SECTIONS */
.section-tag { display:inline-flex; align-items:center; gap:.45rem; font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(1.5rem,3vw,2.1rem); font-weight:700; color:var(--green-dark); line-height:1.25; }
.section-divider { width:56px; height:3px; background:linear-gradient(90deg,var(--gold-bright),transparent); border-radius:2px; margin:.9rem 0 1.4rem; }

/* REQUIREMENTS */
.section-req { background:var(--white); padding:5rem 0; }
.timeline-item { display:flex; gap:1.4rem; padding:1.4rem 0; border-bottom:1px solid var(--border); transition:all .2s; }
.timeline-item:last-child { border-bottom:none; }
.timeline-item:hover { transform:translateX(4px); }
.timeline-num { width:46px; height:46px; background:linear-gradient(135deg,var(--green-dark),var(--green-mid)); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-light); font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; flex-shrink:0; }
.timeline-content h5 { font-family:'Playfair Display',serif; font-size:1rem; color:var(--green-dark); font-weight:600; margin-bottom:.3rem; }
.timeline-content p  { font-size:.88rem; color:var(--text-muted); margin:0; }

/* BERKAS */
.section-berkas { background:var(--cream); padding:5rem 0; }
.berkas-card { background:var(--white); border-radius:var(--radius); border:1px solid var(--border); padding:1.3rem 1.5rem; display:flex; align-items:flex-start; gap:1.1rem; transition:all .25s; margin-bottom:1rem; text-decoration:none; color:inherit; }
.berkas-card:hover { border-color:var(--gold-bright); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.berkas-icon { width:42px; height:42px; background:var(--green-pale); border-radius:10px; display:flex; align-items:center; justify-content:center; color:var(--green-main); font-size:1.15rem; flex-shrink:0; }
.berkas-title { font-weight:600; font-size:.93rem; color:var(--green-dark); margin-bottom:.2rem; }
.berkas-desc  { font-size:.78rem; color:var(--text-muted); }

/* CTA */
.section-cta { background:linear-gradient(135deg,var(--green-dark),var(--green-main)); padding:5rem 0; position:relative; overflow:hidden; }
.section-cta::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(200,150,12,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(200,150,12,.04) 1px,transparent 1px); background-size:40px 40px; }
.section-cta::after  { content:''; position:absolute; width:400px; height:400px; background:radial-gradient(circle,rgba(200,150,12,.13) 0%,transparent 70%); top:-100px; right:-100px; pointer-events:none; }
.cta-title { font-family:'Playfair Display',serif; font-size:clamp(1.7rem,4vw,2.7rem); font-weight:700; color:var(--white); }
.cta-title span { color:var(--gold-light); }
.btn-cta-lg { background:linear-gradient(135deg,var(--gold),var(--gold-bright)); color:var(--green-dark); font-weight:700; font-size:1.1rem; padding:1rem 2.7rem; border-radius:50px; border:none; text-decoration:none; display:inline-flex; align-items:center; gap:.7rem; transition:all .3s; box-shadow:0 8px 30px rgba(200,150,12,.45); }
.btn-cta-lg:hover { transform:translateY(-3px); box-shadow:0 14px 40px rgba(200,150,12,.6); color:var(--green-dark); }
.pulse-ring { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; height:100%; border-radius:50px; border:2px solid rgba(200,150,12,.55); animation:pulse 2s infinite; pointer-events:none; }
@keyframes pulse { 0%{transform:translate(-50%,-50%) scale(1);opacity:1} 100%{transform:translate(-50%,-50%) scale(1.12);opacity:0} }

/* CONTACT */
.section-contact { background:var(--white); padding:5rem 0; }
.contact-card { background:var(--cream); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2rem; text-align:center; transition:all .25s; }
.contact-card:hover { border-color:var(--gold-bright); box-shadow:var(--shadow-md); transform:translateY(-4px); }
.contact-icon-wrap { width:58px; height:58px; background:linear-gradient(135deg,var(--green-dark),var(--green-mid)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.4rem; color:var(--gold-light); margin:0 auto 1rem; }
.contact-card h6 { font-family:'Playfair Display',serif; font-size:.98rem; color:var(--green-dark); font-weight:600; margin-bottom:.4rem; }
.contact-card p  { font-size:.85rem; color:var(--text-muted); margin:0; }

/* NOTICE */
.notice-box { background:linear-gradient(135deg,#fff8e1,#fffde7); border-left:4px solid var(--gold-bright); border-radius:0 var(--radius) var(--radius) 0; padding:1.1rem 1.4rem; margin-top:1.8rem; }
.notice-box .notice-title { font-weight:700; font-size:.82rem; color:#7c5c00; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.35rem; }
.notice-box p { font-size:.86rem; color:#5c4400; margin:0; }

/* FAQ */
.accordion-custom .accordion-button { background:var(--white); color:var(--green-dark); font-weight:600; font-size:.93rem; }
.accordion-custom .accordion-button:not(.collapsed) { background:var(--green-dark); color:var(--gold-light); box-shadow:none; }
.accordion-custom .accordion-item { border:1px solid var(--border); border-radius:var(--radius)!important; margin-bottom:.7rem; overflow:hidden; }

/* FOOTER */
footer { background:var(--green-dark); color:rgba(255,255,255,.68); padding:3.5rem 0 1.5rem; border-top:3px solid var(--gold-bright); }
footer .footer-logo { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:var(--gold-light); }
footer .footer-sub   { font-size:.77rem; color:rgba(255,255,255,.4); margin-top:.2rem; }
footer .footer-link  { color:rgba(255,255,255,.52); text-decoration:none; font-size:.85rem; display:block; margin-bottom:.4rem; transition:color .2s; }
footer .footer-link:hover { color:var(--gold-light); }
footer h6   { color:var(--gold-bright); font-size:.78rem; text-transform:uppercase; letter-spacing:.09em; font-weight:600; margin-bottom:.9rem; }
footer hr   { border-color:rgba(255,255,255,.1); }
footer .copy { font-size:.78rem; color:rgba(255,255,255,.32); }

/* STICKY CTA */
.sticky-cta { position:fixed; bottom:1.5rem; right:1.5rem; z-index:999; }
.sticky-cta a { background:linear-gradient(135deg,var(--gold),var(--gold-bright)); color:var(--green-dark); font-weight:700; font-size:.85rem; padding:.72rem 1.5rem; border-radius:50px; text-decoration:none; display:flex; align-items:center; gap:.5rem; box-shadow:0 6px 24px rgba(200,150,12,.5); transition:all .3s; }
.sticky-cta a:hover { transform:translateY(-2px); box-shadow:0 10px 32px rgba(200,150,12,.65); color:var(--green-dark); }

/* UTILS */
.fade-up { opacity:0; transform:translateY(24px); transition:opacity .55s ease,transform .55s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

#countdown { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.cd-unit  { text-align:center; }
.cd-num   { display:block; background:rgba(255,255,255,.08); border:1px solid rgba(200,150,12,.4); color:var(--gold-light); font-family:'Playfair Display',serif; font-size:1.55rem; font-weight:700; min-width:50px; padding:.3rem .55rem; border-radius:8px; }
.cd-lbl   { display:block; font-size:.66rem; color:rgba(255,255,255,.48); margin-top:.2rem; }
.cd-sep   { font-size:1.7rem; color:var(--gold-bright); margin-top:-.5rem; align-self:center; }

@media(max-width:768px) {
  .topbar { display:none; }
  .hero-banner-wrap { max-height:140px; }
  .hero-body { padding:2.5rem 0 3rem; min-height:auto; }
}
