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

:root{--blue:#3f6fe5;--blue-dark:#2854c7;--cyan:#55c8d0;--yellow:#ffd447;--ink:#172033;--muted:#667085;--line:#e8edf5;--soft:#f5f8fc;--white:#fff;--shadow:0 18px 55px rgba(37,68,130,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:#fff;overflow-x:hidden}h1,h2,h3,h4,h5,h6,.navbar-brand{font-family:'Manrope',system-ui,sans-serif}a{text-decoration:none}.container{position:relative;z-index:2}

/* NAVBAR */
.nav-main{padding:13px 0;transition:.35s ease;background:rgba(18,40,86,.12);border-bottom:1px solid rgba(255,255,255,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-main.scrolled{padding:8px 0;background:rgba(255,255,255,.96);border-bottom-color:var(--line);box-shadow:0 8px 30px rgba(20,46,91,.08)}.navbar-brand{color:#fff!important;line-height:1}.nav-main.scrolled .navbar-brand{color:var(--ink)!important}.brand-mark{width:46px;height:46px;border-radius:14px;background:#fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.12)}.brand-logo{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important;object-fit:contain;display:block}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:.83rem;letter-spacing:.04em}.brand-copy small{font-family:'DM Sans',sans-serif;font-size:.68rem;opacity:.72;font-weight:600}.nav-link{color:rgba(255,255,255,.88)!important;font-weight:600;font-size:.9rem;padding:10px 12px!important;transition:.25s}.nav-link:hover{color:#fff!important}.nav-main.scrolled .nav-link{color:#526078!important}.nav-main.scrolled .nav-link:hover{color:var(--blue)!important}.nav-cta{display:inline-flex;align-items:center;gap:7px;background:var(--yellow);color:#1b2942;border-radius:999px;padding:11px 18px;font-weight:800;font-size:.86rem;box-shadow:0 8px 20px rgba(255,212,71,.24);transition:.25s}.nav-cta:hover{transform:translateY(-2px);color:#1b2942}.navbar-toggler{border:1px solid rgba(255,255,255,.4)}.nav-main.scrolled .navbar-toggler{border-color:#dce3ef}.nav-main.scrolled .navbar-toggler-icon{filter:invert(1)}

/* HERO */
.hero-section{min-height:820px;position:relative;display:flex;align-items:center;overflow:hidden;color:#fff;background:linear-gradient(120deg,#244fbf 0%,#3f6fe5 52%,#50c4cd 100%);padding:130px 0 90px}.hero-section:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,54,130,.72),rgba(47,101,215,.18) 62%,rgba(85,200,208,.12)),url('../img/hero.svg') center/cover no-repeat;opacity:.24;mix-blend-mode:screen}.hero-shape{position:absolute;border-radius:50%;pointer-events:none;filter:blur(.2px)}.hero-shape-1{width:560px;height:560px;right:-210px;top:-230px;background:rgba(255,255,255,.11);border:70px solid rgba(255,255,255,.06);animation:floatSlow 10s ease-in-out infinite}.hero-shape-2{width:300px;height:300px;left:-160px;bottom:-140px;background:rgba(85,200,208,.26);border:42px solid rgba(255,212,71,.25);animation:floatSlow 8s ease-in-out infinite reverse}.hero-dots{position:absolute;right:7%;bottom:11%;width:150px;height:110px;background-image:radial-gradient(rgba(255,255,255,.38) 2px,transparent 2px);background-size:18px 18px;opacity:.7}.hero-content{max-width:760px}.hero-kicker{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);font-size:.74rem;letter-spacing:.13em;font-weight:800}.kicker-dot{width:8px;height:8px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px rgba(255,212,71,.15)}.hero-content h1{font-size:clamp(3rem,7vw,6.5rem);line-height:.92;font-weight:800;letter-spacing:-.055em;margin:24px 0 20px;max-width:900px}.hero-content h2{font-size:clamp(1.05rem,2vw,1.42rem);line-height:1.5;font-weight:600;max-width:700px;color:rgba(255,255,255,.94)}.hero-content p{max-width:690px;color:rgba(255,255,255,.77);font-size:1rem;line-height:1.8;margin-top:15px}.cta-wrap{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px}.hero-btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:13px 20px;font-weight:800;font-size:.9rem;transition:.3s;min-height:48px}.hero-btn:hover{transform:translateY(-3px)}.hero-btn-light{background:#fff;color:var(--blue-dark);box-shadow:0 12px 28px rgba(18,48,112,.18)}.hero-btn-light:hover{color:var(--blue-dark)}.hero-btn-outline{color:#fff;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.06)}.hero-btn-outline:hover{color:#fff;background:rgba(255,255,255,.13)}.hero-mini-stats{display:flex;gap:28px;margin-top:36px}.hero-mini-stats div{display:flex;flex-direction:column;gap:3px}.hero-mini-stats strong{font-family:'Manrope',sans-serif;font-size:1.4rem;color:#fff}.hero-mini-stats span{font-size:.74rem;color:rgba(255,255,255,.68)}
.hero-visual{position:relative;padding:16px}.hero-photo-frame{position:relative;min-height:500px;border-radius:34px;overflow:visible;transform:rotate(2deg);box-shadow:0 30px 70px rgba(20,48,117,.26)}.hero-photo{position:absolute;inset:0;width:100%;height:100%;min-height:500px;object-fit:cover;border-radius:34px;border:10px solid rgba(255,255,255,.9);background:#dfeaff}.hero-photo-overlay{position:absolute;inset:10px;border-radius:25px;background:linear-gradient(180deg,transparent 45%,rgba(16,40,95,.42));pointer-events:none}.hero-floating-card{position:absolute;z-index:3;display:flex;align-items:center;gap:11px;background:#fff;color:var(--ink);border-radius:18px;padding:13px 15px;box-shadow:0 18px 40px rgba(19,45,97,.2);min-width:210px;transform:rotate(-2deg);animation:floatCard 5s ease-in-out infinite}.hero-floating-card small{display:block;color:#7a8497;font-size:.68rem;margin-bottom:2px}.hero-floating-card strong{display:block;font-size:.78rem}.card-top{left:-34px;top:48px}.card-bottom{right:-30px;bottom:45px;animation-delay:-2s}.floating-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e9f8f8;color:#2aaeb8;font-size:1.05rem}.mini-check{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eaf7ef;color:#24a25a}.hero-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.66);font-size:.72rem;z-index:4}.hero-scroll i{animation:bounce 1.7s ease-in-out infinite}

/* QUICK NAV */
.quick-nav-section{position:relative;margin-top:-38px;z-index:10}.quick-nav{background:#fff;border:1px solid var(--line);border-radius:24px;padding:10px;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:var(--shadow)}.quick-nav>a{display:flex;align-items:center;gap:12px;padding:15px 17px;color:var(--ink);border-radius:18px;transition:.25s}.quick-nav>a:hover{background:#f4f8ff;transform:translateY(-2px)}.quick-nav>a>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eaf1ff;color:var(--blue)}.quick-nav small{display:block;color:#8993a5;font-size:.68rem}.quick-nav strong{font-size:.86rem}.quick-nav>a>i{color:#a2adbd;font-size:.9rem}

/* SECTIONS */
.section-pad{padding:105px 0}.section-heading{text-align:center;max-width:760px;margin:0 auto 55px}.section-heading>span,.section-label{display:inline-block;color:var(--blue);font-size:.73rem;letter-spacing:.16em;font-weight:800}.section-heading h2{font-size:clamp(2.15rem,4vw,3.7rem);font-weight:800;letter-spacing:-.045em;margin:10px 0 12px}.section-heading p{color:var(--muted);line-height:1.75;margin:0}.section-jurusan{position:relative;overflow:hidden;background:#fff}.decor-circle{position:absolute;border-radius:50%;pointer-events:none}.decor-circle-a{width:390px;height:390px;right:-230px;top:120px;background:#eaf8f8}.feature-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 10px 35px rgba(39,67,118,.06);transition:.35s;overflow:hidden}.feature-card:before{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-48px;top:-48px;background:#f2f6ff;transition:.35s}.feature-card:hover{transform:translateY(-9px);border-color:#d7e2fb;box-shadow:0 24px 55px rgba(39,78,155,.12)}.feature-card:hover:before{transform:scale(1.7);background:#eaf2ff}.card-number{position:absolute;right:22px;top:20px;color:#d8e1f1;font-family:'Manrope',sans-serif;font-weight:800;font-size:.78rem}.icon-box{width:60px;height:60px;border-radius:18px;background:#eaf1ff;color:var(--blue);display:grid;place-items:center;font-size:1.55rem;margin-bottom:22px;transition:.3s}.feature-card:hover .icon-box{background:var(--blue);color:#fff;transform:rotate(-4deg)}.program-code{display:inline-flex;padding:5px 10px;border-radius:999px;background:#fff8d9;color:#8a6c00;font-size:.68rem;font-weight:800;letter-spacing:.08em}.feature-card h4{font-size:1.08rem;font-weight:800;margin:13px 0 8px;min-height:42px}.feature-card p{color:var(--muted);font-size:.87rem;line-height:1.65;min-height:84px}.feature-link,.text-link,.info-link{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:.82rem;font-weight:800}.feature-link i,.text-link i,.info-link i{transition:.2s}.feature-link:hover i,.text-link:hover i,.info-link:hover i{transform:translateX(4px)}

/* WHY */
.why-section{position:relative;background:var(--soft);overflow:hidden}.why-section:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:#e6f7f7;left:-280px;top:-220px}.display-title{font-size:clamp(2.3rem,4.3vw,4.1rem);line-height:1.02;letter-spacing:-.055em;font-weight:800;margin:12px 0 20px}.display-title span{color:var(--blue)}.section-copy{color:var(--muted);line-height:1.8;max-width:450px}.text-link{margin-top:13px}.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.why-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:25px;box-shadow:0 10px 35px rgba(39,67,118,.05);transition:.3s}.why-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(39,78,155,.1)}.why-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#eaf1ff;color:var(--blue);margin-bottom:18px}.why-card:nth-child(2) .why-icon{background:#e9f8f8;color:#25aab5}.why-card:nth-child(3) .why-icon{background:#fff7d8;color:#a27a00}.why-card:nth-child(4) .why-icon{background:#f0ebff;color:#7c59d8}.why-card h4{font-size:1rem;font-weight:800}.why-card p{font-size:.82rem;line-height:1.65;color:var(--muted);margin:0}

/* INFO */
.info-section{background:#fff;position:relative}
.info-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:0;overflow:hidden;box-shadow:0 10px 35px rgba(39,67,118,.06);transition:.3s}.info-card:hover{transform:translateY(-7px);box-shadow:0 24px 55px rgba(39,78,155,.12)}.info-thumb{height:180px;background:#eaf1ff;display:grid;place-items:center;color:var(--blue);font-size:3rem;position:relative;overflow:hidden}.info-thumb img{width:100%;height:100%;object-fit:cover;transition:.45s}.info-card:hover .info-thumb img{transform:scale(1.06)}.thumb-arrow{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:0 8px 20px rgba(24,54,108,.12)}.info-body{padding:20px}.info-tag{display:inline-block;color:var(--blue);font-size:.63rem;font-weight:800;letter-spacing:.1em;margin-bottom:9px}.info-body h5{font-size:.98rem;font-weight:800;line-height:1.35}.info-body p{color:var(--muted);font-size:.8rem;line-height:1.65;min-height:60px}.info-link{font-size:.76rem}

/* COLORED INFORMATION — SPMB visual language */
.colored-info-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#2860d9 0%,#3f6fe5 47%,#3376df 100%);color:#fff}
.colored-info-section:before{content:"";position:absolute;width:590px;height:590px;right:-250px;top:-330px;border-radius:50%;background:#59cbd1;opacity:.96;z-index:-3}
.colored-info-section:after{content:"";position:absolute;width:390px;height:390px;left:-235px;bottom:-260px;border-radius:50%;background:#ffd447;z-index:-3}
.colored-info-section .container:before{content:"";position:absolute;width:540px;height:540px;right:-185px;top:-90px;border:2px dashed rgba(255,255,255,.55);border-radius:50%;z-index:-2;animation:orbitFloat 20s linear infinite}
.colored-info-section .container:after{content:"";position:absolute;width:14px;height:14px;right:18%;top:12%;border-radius:50%;background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.14),0 0 0 22px rgba(255,255,255,.05);z-index:-1;animation:dotFloat 4s ease-in-out infinite}
.colored-info-section .section-heading{text-align:left;max-width:760px;margin-left:0}
.colored-info-section .section-heading>span{color:#ffe98b}
.colored-info-section .section-heading h2{color:#fff;max-width:700px}
.colored-info-section .section-heading p{color:rgba(255,255,255,.84);max-width:620px}
.colored-info-section .info-card{border:0;box-shadow:0 18px 45px rgba(15,43,104,.18);transition:.35s}
.colored-info-section .info-card:hover{box-shadow:0 30px 65px rgba(15,43,104,.3);transform:translateY(-7px)}
.colored-info-section .info-thumb{background:#dff5f6}
.colored-info-section .info-tag{color:#3f6fe5}
.colored-info-section .info-body h5{color:#172c55}
.colored-info-section .info-body p{color:#68758b}
.colored-info-section .info-link{color:#315fd3}

/* SCHEDULE — deliberately different from INFO: cyan-led section */
.schedule-section{position:relative;overflow:hidden;background:linear-gradient(120deg,#35bccc 0%,#55c8d0 48%,#38b4cf 100%);color:#17315f;isolation:isolate}
.schedule-section:before{content:"";position:absolute;width:600px;height:600px;right:-310px;top:-350px;border-radius:50%;background:#3f6fe5;z-index:-3}
.schedule-section:after{content:"";position:absolute;width:330px;height:330px;left:-210px;bottom:-220px;border-radius:50%;background:#ffd447;z-index:-3}
.schedule-section .container:before{content:"";position:absolute;width:560px;height:560px;left:-260px;top:-180px;border:2px dashed rgba(255,255,255,.62);border-radius:50%;z-index:-2;animation:orbitFloat 22s linear infinite reverse}
.schedule-section .container:after{content:"";position:absolute;width:13px;height:13px;left:22%;top:15%;border-radius:50%;background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.16);animation:dotFloat 4.7s ease-in-out infinite}
.schedule-section .section-heading{text-align:left;max-width:760px;margin-left:0}
.schedule-section .section-heading>span{color:#174b8b}
.schedule-section .section-heading h2{color:#fff}
.schedule-section .section-heading p{color:rgba(255,255,255,.88)}
.schedule-section .timeline{max-width:1000px}
.schedule-section .timeline:before{background:linear-gradient(#fff,rgba(255,255,255,.35));opacity:.72}
.schedule-section .timeline-dot{background:#ffd447;color:#18356f;box-shadow:0 0 0 7px rgba(255,255,255,.22),0 10px 24px rgba(19,65,120,.18)}
.schedule-section .schedule-card{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.8);box-shadow:0 18px 45px rgba(19,65,120,.17)}
.schedule-section .schedule-card:hover{box-shadow:0 28px 60px rgba(19,65,120,.25)}
.schedule-section .progress-bar{background:linear-gradient(90deg,#3f6fe5,#55c8d0)}
.schedule-section .schedule-date i{color:#3f6fe5}
.schedule-section .status-pill.active{background:#e7f8ed;color:#18864b}
@keyframes orbitFloat{0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}
@keyframes dotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(18px)}}

/* FAQ */
.faq-section{background:#fff}.faq-wrap{max-width:900px;border-top:1px solid var(--line)}.accordion-item{border:0;border-bottom:1px solid var(--line);background:transparent}.accordion-button{background:#fff;font-weight:750;font-size:1rem;padding:23px 5px;color:var(--ink);box-shadow:none!important}.accordion-button:not(.collapsed){background:#fff;color:var(--blue)}.accordion-button:after{background-size:13px}.faq-number{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:10px;background:#edf3ff;color:var(--blue);font-size:.68rem;margin-right:14px}.accordion-body{color:var(--muted);line-height:1.8;padding:0 5px 24px 53px;font-size:.88rem}

/* FOOTER — dark navy using the same blue/cyan/yellow system */
.footer-section{position:relative;background:linear-gradient(135deg,#12346f 0%,#183f82 55%,#165b86 100%);color:#fff;padding:78px 0 30px;overflow:hidden}
.footer-section:before{content:"";position:absolute;width:430px;height:430px;border-radius:50%;right:-245px;top:-275px;background:rgba(85,200,208,.28);border:58px solid rgba(255,212,71,.16)}
.footer-section:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;left:-210px;bottom:-200px;border:38px solid rgba(85,200,208,.16);background:rgba(63,111,229,.16)}
.footer-section .container:before{content:"";position:absolute;width:420px;height:420px;right:-110px;top:-90px;border:1.5px dashed rgba(255,255,255,.18);border-radius:50%;animation:orbitFloat 24s linear infinite}
.footer-section h4{font-weight:800}.footer-section h6{font-weight:800;margin-bottom:15px}.social-btn{border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 12px;border-radius:10px;font-size:.78rem;transition:.25s}.social-btn:hover{color:#17356f;background:#ffd447;border-color:#ffd447}.footer-section hr{opacity:.15}

/* ANIMATION */
.reveal-up,.reveal-left,.reveal-right{opacity:1;transform:none;transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}
.js-ready .reveal-up,.js-ready .reveal-left,.js-ready .reveal-right{opacity:0;transform:translateY(26px)}.reveal-left{transform:translateX(-28px)}.reveal-right{transform:translateX(28px)}.reveal-up.is-visible,.reveal-left.is-visible,.reveal-right.is-visible{opacity:1;transform:none}.reveal-up:nth-child(2){transition-delay:.08s}.reveal-up:nth-child(3){transition-delay:.16s}.reveal-up:nth-child(4){transition-delay:.24s}.reveal-up:nth-child(5){transition-delay:.32s}@keyframes floatSlow{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-15px,18px,0)}}@keyframes floatCard{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-9px)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

@media(max-width:991px){.nav-main{background:rgba(20,45,99,.96)}.navbar-collapse{background:rgba(20,45,99,.98);margin:12px -12px -13px;padding:10px 16px 18px;border-top:1px solid rgba(255,255,255,.1)}.nav-main.scrolled .navbar-collapse{background:#fff}.nav-main.scrolled .nav-link{color:#526078!important}.nav-main.scrolled .nav-cta{display:inline-flex}.hero-section{min-height:auto;padding:145px 0 105px}.hero-visual{max-width:580px;margin:0 auto}.hero-photo-frame,.hero-photo{min-height:430px}.card-top{left:-12px}.card-bottom{right:-10px}.quick-nav{grid-template-columns:repeat(2,1fr)}.quick-nav-section{margin-top:-28px}}
@media(max-width:767px){.hero-section{padding:125px 0 95px}.hero-content h1{font-size:3.35rem}.hero-content h2{font-size:1rem}.hero-mini-stats{gap:17px}.hero-mini-stats strong{font-size:1.15rem}.hero-mini-stats span{font-size:.67rem}.hero-photo-frame,.hero-photo{min-height:370px}.hero-floating-card{min-width:185px;padding:11px 12px}.card-top{left:-5px;top:30px}.card-bottom{right:-5px;bottom:30px}.hero-scroll{display:none}.quick-nav{grid-template-columns:1fr}.quick-nav>a{padding:13px}.section-pad{padding:78px 0}.section-heading{margin-bottom:40px}.section-heading h2{font-size:2.25rem}.why-grid{grid-template-columns:1fr}.feature-card h4{min-height:auto}.feature-card p{min-height:auto}.schedule-head{display:block}.percent{display:block;margin-top:14px}.timeline-item{padding-left:54px}.timeline:before{left:18px}.timeline-dot{width:38px;height:38px;font-size:.82rem;box-shadow:0 0 0 6px #e6efff}.schedule-card{padding:20px}.accordion-button{font-size:.9rem}.accordion-body{padding-left:5px}.brand-copy strong{font-size:.76rem}}
.colored-info-section:before{width:360px;height:360px;right:-230px;top:-210px}.colored-info-section:after{width:300px;height:300px;left:-220px;bottom:-220px}.colored-info-section .container:before{width:330px;height:330px;right:-220px;top:220px}.colored-info-section .container:after{right:90px;top:390px}
@media(max-width:767px){.colored-info-section .section-heading,.schedule-section .section-heading{text-align:left}.colored-info-section:before{width:390px;height:390px;right:-245px;top:-210px}.colored-info-section:after{width:250px;height:250px;left:-165px;bottom:-160px}.schedule-section:before{width:390px;height:360px;right:-220px;top:-210px}.schedule-section:after{width:300px;height:300px;left:-220px;bottom:-220px}.schedule-section .container:before{width:330px;height:330px;right:-220px;bottom:-120px}.schedule-section .container:after{left:12%;top:150px}.timeline:before{background:linear-gradient(#fff,rgba(255,255,255,.3))}.timeline-dot{box-shadow:0 0 0 6px rgba(255,255,255,.14),0 8px 18px rgba(18,48,112,.18)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal-up,.reveal-left,.reveal-right{opacity:1!important;transform:none!important}}

/* =========================================================
   FINAL VISUAL POLISH — rounded SPMB panels + working timeline
   ========================================================= */

/* Both colored areas sit inside the page with generous rounded edges,
   inspired by the reference visual, rather than touching the viewport. */
.colored-info-section,
.schedule-section{
    margin: 72px clamp(12px, 4vw, 72px);
    border-radius: 38px;
    padding-top: 96px;
    padding-bottom: 96px;
    overflow: hidden;
}

/* INFO: blue-led identity */
.colored-info-section{
    background:
        radial-gradient(circle at 28% 18%, rgba(255,212,71,.98) 0 115px, transparent 116px),
        linear-gradient(120deg,#285fd8 0%,#3f6fe5 52%,#2f79d9 100%);
    box-shadow: 0 22px 60px rgba(39,86,174,.12);
}
.colored-info-section:before{
    width: 650px;
    height: 650px;
    right: -280px;
    top: -330px;
    background: #58cbd1;
    border: 0;
    opacity: .98;
}
.colored-info-section:after{
    width: 300px;
    height: 300px;
    left: -185px;
    bottom: -205px;
    background: #ffd447;
}
.colored-info-section .container:before{
    width: 520px;
    height: 520px;
    right: -170px;
    top: -90px;
    border-width: 2px;
    border-style: dashed;
}
.colored-info-section .container:after{
    right: 19%;
    top: 17%;
}
.colored-info-section .info-card{
    border-radius: 24px;
}

/* SCHEDULE: cyan-led identity, deliberately different composition */
.schedule-section{
    margin-top: 42px;
    background:
        radial-gradient(circle at 78% 18%, rgba(63,111,229,.98) 0 155px, transparent 156px),
        linear-gradient(120deg,#43bdcb 0%,#55c8d0 50%,#39b4cb 100%);
    box-shadow: 0 22px 60px rgba(35,126,153,.13);
}
.schedule-section:before{
    width: 470px;
    height: 470px;
    right: -265px;
    top: -250px;
    background: #3f6fe5;
}
.schedule-section:after{
    width: 250px;
    height: 250px;
    left: -145px;
    bottom: -175px;
    background: #ffd447;
}
.schedule-section .container:before{
    width: 610px;
    height: 610px;
    left: -305px;
    top: -210px;
    border-width: 2px;
    border-style: dashed;
    animation: orbitFloat 25s linear infinite reverse;
}
.schedule-section .container:after{
    left: 16%;
    top: 18%;
}

/* A real horizontal timeline on desktop. The data, percentages and status
   are still generated by PHP exactly as before. */
.schedule-section .timeline{
    position: relative;
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 18px;
    padding-top: 54px;
}
.schedule-section .timeline:before{
    content:"";
    position:absolute;
    left: 7%;
    right: 7%;
    top: 25px;
    width:auto;
    height: 2px;
    background: repeating-linear-gradient(90deg,rgba(255,255,255,.9) 0 9px,transparent 9px 17px);
    opacity: 1;
    z-index:0;
}
.schedule-section .timeline-item{
    position:relative;
    min-width:0;
    padding:0;
    z-index:1;
}
.schedule-section .timeline-dot{
    position:absolute;
    top:-54px;
    left:50%;
    transform:translateX(-50%);
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ffd447;
    color:#18356f;
    font-weight:900;
    font-size:.9rem;
    box-shadow:0 0 0 7px rgba(255,255,255,.28),0 10px 24px rgba(19,65,120,.18);
}
.schedule-section .schedule-card{
    height:100%;
    min-height:250px;
    border:1px solid rgba(255,255,255,.82);
    border-radius:22px;
    background:rgba(255,255,255,.97);
    padding:21px;
    box-shadow:0 18px 45px rgba(19,65,120,.16);
    transition:transform .3s ease,box-shadow .3s ease;
}
.schedule-section .schedule-card:hover{
    transform:translateY(-7px);
    box-shadow:0 28px 58px rgba(19,65,120,.24);
}
.schedule-section .schedule-head{
    min-height:145px;
}
.schedule-section .schedule-head h4{
    color:#17366f;
    font-size:1rem;
    line-height:1.35;
    margin:10px 0 7px;
}
.schedule-section .schedule-head p{
    color:#68758b;
    font-size:.78rem;
    line-height:1.55;
    margin:0;
}
.schedule-section .status-pill{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:5px 9px;
    border-radius:999px;
    background:#edf3ff;
    color:#315fd3;
    font-size:.63rem;
    font-weight:800;
}
.schedule-section .status-pill.active{
    background:#e7f8ed;
    color:#18864b;
}
.schedule-section .percent{
    display:block;
    color:#315fd3;
    font-size:.75rem;
    font-weight:900;
    margin-top:12px;
}
.schedule-section .progress{
    height:8px;
    margin-top:10px!important;
    background:#e7edf6;
}
.schedule-section .progress-bar{
    background:linear-gradient(90deg,#3f6fe5,#55c8d0);
    transition:width .8s ease;
}
.schedule-section .schedule-date{
    margin-top:15px;
    padding-top:13px;
    border-top:1px solid #e8edf5;
    color:#7b8798;
    font-size:.68rem;
    line-height:1.5;
}
.schedule-section .schedule-date i{color:#3f6fe5;margin-right:4px}

/* Footer belongs to the same blue/cyan/yellow family, not a separate theme. */
.footer-section{
    background:linear-gradient(135deg,#102f68 0%,#183f82 52%,#176d86 100%);
}
.footer-section:before{
    background:rgba(85,200,208,.26);
    border-color:rgba(255,212,71,.2);
}
.footer-section:after{
    background:rgba(63,111,229,.18);
    border-color:rgba(85,200,208,.2);
}

/* Admin: same visual system as the public website. */
.admin-page-brand,
.sidebar .brand-mark{
    border-radius:14px;
}
.sidebar{
    background:linear-gradient(180deg,#102f68 0%,#183f82 52%,#176d86 100%);
}
.sidebar:before{
    background:rgba(85,200,208,.28);
    border-color:rgba(255,212,71,.18);
}
.sidebar:after{
    background:rgba(63,111,229,.22);
    border-color:rgba(85,200,208,.16);
}
.admin-topbar{
    border-top:4px solid var(--blue);
}
.card .text-primary{color:var(--blue)!important}
.btn-warning{background:var(--yellow);border-color:var(--yellow);color:#17315f;font-weight:800}
.btn-warning:hover{background:#f3c83d;border-color:#f3c83d;color:#17315f}
.badge-admin{background:#fff4bc;color:#6d5600}

/* Mobile: retain the rounded-panel look while returning the timeline to a
   readable vertical flow. */
@media(max-width:767px){
    .colored-info-section,
    .schedule-section{
        margin:44px 12px;
        border-radius:28px;
        padding-top:72px;
        padding-bottom:72px;
    }
    .schedule-section .timeline{
        display:block;
        padding-top:0;
        padding-left:54px;
    }
    .schedule-section .timeline:before{
        left:18px;
        right:auto;
        top:10px;
        bottom:10px;
        width:2px;
        height:auto;
        background:repeating-linear-gradient(180deg,rgba(255,255,255,.9) 0 9px,transparent 9px 17px);
    }
    .schedule-section .timeline-item{
        padding:0 0 22px;
    }
    .schedule-section .timeline-dot{
        top:18px;
        left:-54px;
        transform:none;
        width:40px;
        height:40px;
        font-size:.78rem;
    }
    .schedule-section .schedule-card{
        min-height:0;
        padding:19px;
    }
    .schedule-section .schedule-head{
        min-height:0;
    }
    .schedule-section .schedule-head h4{font-size:.95rem}
    .schedule-section .schedule-head p{font-size:.78rem}
}
/* Keep decorative layers visible inside the rounded panels while content stays above them. */
.colored-info-section:before,
.colored-info-section:after,
.schedule-section:before,
.schedule-section:after{z-index:0}
.colored-info-section .container:before,
.colored-info-section .container:after,
.schedule-section .container:before,
.schedule-section .container:after{z-index:1}

/* =========================================================
   REFERENCE MATCH — outside headings + vertical SPMB timeline
   ========================================================= */
.section-heading-outside{
    margin-bottom:42px;
}
.section-heading-outside h2{
    color:#17315f;
}
.section-heading-outside p{
    max-width:680px;
    margin-left:auto;
    margin-right:auto;
}

/* The colored information and schedule areas are rounded floating panels.
   Their headings intentionally remain on the white page above the panel. */
.info-panel,
.schedule-panel{
    margin-left:clamp(12px,4vw,72px);
    margin-right:clamp(12px,4vw,72px);
    border-radius:38px;
    overflow:hidden;
    box-shadow:0 22px 60px rgba(39,86,174,.12);
}
.info-panel{
    padding:78px 0;
}
.schedule-panel{
    padding:78px 0;
}

/* Keep the existing visual identity, but remove the old section-level spacing. */
.info-panel.colored-info-section,
.schedule-panel.schedule-section{
    margin-top:0;
    margin-bottom:0;
}

/* INFO panel: blue/cyan/yellow composition. */
.info-panel.colored-info-section{
    background:
        radial-gradient(circle at 28% 18%,rgba(255,212,71,.98) 0 115px,transparent 116px),
        linear-gradient(120deg,#285fd8 0%,#3f6fe5 52%,#2f79d9 100%);
}

/* SCHEDULE panel: cyan-led composition, intentionally different from INFO. */
.schedule-panel.schedule-section{
    background:
        radial-gradient(circle at 78% 18%,rgba(63,111,229,.98) 0 155px,transparent 156px),
        linear-gradient(120deg,#43bdcb 0%,#55c8d0 50%,#39b4cb 100%);
}

/* Vertical timeline on desktop and mobile. */
.schedule-panel .timeline{
    position:relative;
    width:100%;
    max-width:980px;
    margin:0 auto;
    display:block;
    padding:8px 0 8px 78px;
}
.schedule-panel .timeline:before{
    content:"";
    position:absolute;
    left:25px;
    top:22px;
    bottom:22px;
    width:2px;
    height:auto;
    background:repeating-linear-gradient(180deg,rgba(255,255,255,.95) 0 9px,transparent 9px 17px);
    opacity:1;
    z-index:0;
}
.schedule-panel .timeline-item{
    position:relative;
    min-width:0;
    padding:0 0 24px;
    z-index:1;
}
.schedule-panel .timeline-item:last-child{
    padding-bottom:0;
}
.schedule-panel .timeline-dot{
    position:absolute;
    top:24px;
    left:-78px;
    transform:none;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ffd447;
    color:#18356f;
    font-weight:900;
    font-size:.9rem;
    box-shadow:0 0 0 7px rgba(255,255,255,.28),0 10px 24px rgba(19,65,120,.18);
}
.schedule-panel .schedule-card{
    min-height:0;
    height:auto;
    border:1px solid rgba(255,255,255,.84);
    border-radius:24px;
    background:rgba(255,255,255,.97);
    padding:24px 26px;
    box-shadow:0 18px 45px rgba(19,65,120,.16);
}
.schedule-panel .schedule-card:hover{
    transform:translateX(5px);
    box-shadow:0 28px 58px rgba(19,65,120,.24);
}
.schedule-panel .schedule-head{
    min-height:0;
}
.schedule-panel .schedule-head h4{
    font-size:1.08rem;
}
.schedule-panel .schedule-head p{
    font-size:.86rem;
    max-width:760px;
}
.schedule-panel .percent{
    display:inline-block;
    margin-top:12px;
}
.schedule-panel .progress{
    max-width:100%;
}

@media(max-width:767px){
    .section-heading-outside{
        margin-bottom:30px;
    }
    .info-panel,
    .schedule-panel{
        margin-left:12px;
        margin-right:12px;
        border-radius:28px;
        padding:58px 0;
    }
    .schedule-panel .timeline{
        padding:4px 0 4px 58px;
    }
    .schedule-panel .timeline:before{
        left:18px;
        top:18px;
        bottom:18px;
    }
    .schedule-panel .timeline-dot{
        top:18px;
        left:-58px;
        width:40px;
        height:40px;
        font-size:.78rem;
        box-shadow:0 0 0 6px rgba(255,255,255,.16),0 8px 18px rgba(18,48,112,.18);
    }
    .schedule-panel .timeline-item{
        padding-bottom:18px;
    }
    .schedule-panel .schedule-card{
        padding:19px;
    }
    .schedule-panel .schedule-head h4{font-size:.95rem}
    .schedule-panel .schedule-head p{font-size:.78rem}
}

/* Prevent decorative shapes/orbits from blocking clicks on content. */
.colored-info-section:before,
.colored-info-section:after,
.colored-info-section .container:before,
.colored-info-section .container:after,
.footer-section:before,
.footer-section:after,
.footer-section .container:before{
    pointer-events:none;
}

/* Keep interactive flyer cards and footer links above decorative layers. */
.info-panel .row,
.footer-section .row{
    position:relative;
    z-index:2;
}
.info-panel .flyer-card,
.footer-section .social-btn,
.footer-section .footer-wa{
    position:relative;
    z-index:3;
}

/* =========================================================
   FRONTEND FINAL CONTENT POLISH
   ========================================================= */
.section-jurusan .feature-card{position:relative;overflow:hidden;border-top:5px solid var(--blue);transition:transform .28s ease,box-shadow .28s ease}.section-jurusan .feature-card:before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-62px;top:-62px;background:var(--card-accent);opacity:.13}.section-jurusan .feature-card:hover{transform:translateY(-8px);box-shadow:0 24px 55px rgba(30,57,106,.12)}.jurusan-card-gold{--card-accent:#ffd447;border-top-color:#e8bd21!important}.jurusan-card-blue{--card-accent:#3f6fe5;border-top-color:#3f6fe5!important}.jurusan-card-cyan{--card-accent:#55c8d0;border-top-color:#2eb4bd!important}.jurusan-card-violet{--card-accent:#8d72e8;border-top-color:#7659d5!important}.jurusan-card-navy{--card-accent:#12346f;border-top-color:#12346f!important}.jurusan-card-gold .icon-box{background:#fff6cf;color:#a87c00}.jurusan-card-blue .icon-box{background:#edf3ff;color:#3f6fe5}.jurusan-card-cyan .icon-box{background:#e6fafb;color:#1599a5}.jurusan-card-violet .icon-box{background:#f1edff;color:#7659d5}.jurusan-card-navy .icon-box{background:#eaf0fb;color:#12346f}.jurusan-card-gold .program-code{color:#a87c00}.jurusan-card-blue .program-code{color:#315fd3}.jurusan-card-cyan .program-code{color:#1599a5}.jurusan-card-violet .program-code{color:#7659d5}.jurusan-card-navy .program-code{color:#12346f}.section-jurusan .feature-link{display:none}

.flyer-card{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.flyer-thumb{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:22px;background:rgba(255,255,255,.28);box-shadow:0 18px 42px rgba(17,54,111,.14);border:7px solid rgba(255,255,255,.78);transition:transform .28s ease,box-shadow .28s ease}.flyer-thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}.flyer-card:hover .flyer-thumb{transform:translateY(-8px);box-shadow:0 28px 55px rgba(17,54,111,.23)}.flyer-card:hover .flyer-thumb img{transform:scale(1.035)}.flyer-open{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--blue);box-shadow:0 10px 25px rgba(17,54,111,.16);opacity:.95}.flyer-caption{display:none!important}.flyer-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;background:linear-gradient(145deg,rgba(255,255,255,.2),rgba(255,255,255,.08));text-align:center;padding:20px}.flyer-placeholder i{font-size:2.4rem}.flyer-placeholder span{font-size:.72rem}.flyer-modal .modal-content{border:0;border-radius:24px;overflow:hidden;background:#f7f9fc}.flyer-modal .modal-header{padding:18px 20px 12px}.flyer-modal .modal-title{font-weight:850;color:var(--navy)}.flyer-modal-image{max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:14px;box-shadow:0 18px 45px rgba(17,54,111,.18)}.flyer-modal-empty{padding:70px 20px;color:#8793a6}.flyer-modal-empty i{font-size:3rem;display:block;margin-bottom:10px}

.footer-wa-list{display:grid;gap:9px}.footer-wa{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:12px;color:#fff;text-decoration:none;transition:.22s}.footer-wa>i:first-child{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#55c8d0;color:#12346f}.footer-wa span{min-width:0}.footer-wa small,.footer-wa strong{display:block}.footer-wa small{font-size:.61rem;color:rgba(255,255,255,.6)}.footer-wa strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-wa:hover{background:#ffd447;color:#17366f;border-color:#ffd447}.footer-wa:hover>i:first-child{background:#17366f;color:#ffd447}

/* Reference-like rounded panels with outside headings; schedule stays vertical. */
.colored-info-section,.schedule-section{margin-left:clamp(12px,4vw,72px);margin-right:clamp(12px,4vw,72px);border-radius:38px}.colored-info-section{padding-top:82px;padding-bottom:82px}.colored-info-section .container{max-width:1180px}.colored-info-section .row{align-items:stretch}.schedule-section{padding-top:84px;padding-bottom:84px}.schedule-section .container{max-width:1120px}.schedule-section .timeline{display:block;max-width:920px;padding:0 0 0 82px;margin:0 auto}.schedule-section .timeline:before{left:31px;right:auto;top:0;bottom:0;width:3px;height:auto;background:repeating-linear-gradient(180deg,rgba(255,255,255,.95) 0 10px,transparent 10px 18px);border-radius:3px}.schedule-section .timeline-item{padding:0 0 26px 0;min-height:0}.schedule-section .timeline-item:last-child{padding-bottom:0}.schedule-section .timeline-dot{top:26px;left:-82px;transform:none;width:62px;height:62px;background:#ffd447;color:#17366f;box-shadow:0 0 0 8px rgba(255,255,255,.28),0 12px 26px rgba(18,52,111,.18)}.schedule-section .schedule-card{min-height:0;height:auto;padding:24px 26px;border-radius:22px}.schedule-section .schedule-head{min-height:0}.schedule-section .schedule-head h4{font-size:1.08rem}.schedule-section .schedule-head p{font-size:.82rem}.schedule-section .percent{color:#17366f}.schedule-section .schedule-date{margin-top:13px}.schedule-section .progress{background:#eaf0f6}.schedule-section .progress-bar{background:linear-gradient(90deg,#3f6fe5,#55c8d0)}
@media(max-width:767px){.colored-info-section,.schedule-section{margin-left:12px;margin-right:12px;border-radius:28px;padding-top:58px;padding-bottom:58px}.flyer-thumb{border-width:5px;border-radius:18px}.flyer-caption{display:none!important}.schedule-section .timeline{padding-left:62px}.schedule-section .timeline:before{left:23px}.schedule-section .timeline-dot{left:-62px;width:48px;height:48px;box-shadow:0 0 0 6px rgba(255,255,255,.24),0 8px 18px rgba(18,52,111,.18);font-size:.8rem}.schedule-section .schedule-card{padding:19px}.schedule-section .schedule-head{display:block}.schedule-section .percent{display:block;margin-top:12px}.schedule-section .schedule-date{font-size:.72rem}}
.info-card.flyer-card{background:transparent;border:0;box-shadow:none;padding:0;color:inherit}.info-card.flyer-card:focus-visible{outline:3px solid rgba(255,212,71,.8);outline-offset:4px;border-radius:24px}
