:root{
    --bpn-navy:#061f48;
    --bpn-navy-2:#08336f;
    --bpn-navy-3:#0a458f;
    --bpn-blue:#2563eb;
    --bpn-blue-soft:#eaf2ff;
    --bpn-gold:#f7b731;
    --bpn-gold-2:#f59e0b;
    --bpn-green:#16a34a;
    --bpn-red:#dc2626;
    --bpn-dark:#111827;
    --bpn-text:#1f2937;
    --bpn-muted:#64748b;
    --bpn-light:#f6f9ff;
    --bpn-soft:#f8fbff;
    --bpn-border:#e5edf8;
    --bpn-shadow:0 18px 45px rgba(6,31,72,.10);
    --bpn-shadow-hover:0 26px 60px rgba(6,31,72,.16);
    --bpn-radius:24px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color:var(--bpn-text);
    background:#fff;
    line-height:1.72;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}
a{color:var(--bpn-blue); text-decoration:none; transition:.22s ease}
a:hover{color:var(--bpn-gold-2)}
img{max-width:100%; height:auto}
::selection{background:rgba(247,183,49,.32); color:var(--bpn-navy)}

.skip-link{
    position:absolute;
    top:-100px;
    left:16px;
    z-index:99999;
    padding:.7rem 1rem;
    border-radius:12px;
    background:var(--bpn-gold);
    color:var(--bpn-dark);
    font-weight:800;
}
.skip-link:focus{top:16px}

/* NAVBAR */
.site-navbar,
.navbar.site-navbar{
    background:linear-gradient(90deg, #041733 0%, var(--bpn-navy) 45%, var(--bpn-navy-2) 100%) !important;
    min-height:78px;
    box-shadow:0 12px 36px rgba(2,12,27,.22);
    border-bottom:1px solid rgba(255,255,255,.08);
    z-index:1030;
    transition:box-shadow .25s ease, min-height .25s ease, background .25s ease;
}
.site-navbar.navbar-scrolled{
    min-height:70px;
    box-shadow:0 16px 44px rgba(2,12,27,.28);
    background:rgba(4,23,51,.96) !important;
    backdrop-filter:blur(16px);
}
.site-navbar .navbar-brand{color:#fff !important; font-weight:900; letter-spacing:.2px}
.site-navbar .navbar-brand:hover{color:#fff !important; transform:translateY(-1px)}
.brand-mark{
    width:46px;
    height:46px;
    border-radius:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:linear-gradient(135deg, var(--bpn-gold), var(--bpn-gold-2));
    box-shadow:0 10px 24px rgba(245,158,11,.28), inset 0 1px 0 rgba(255,255,255,.4);
    flex:0 0 auto;
}
.brand-mark i{font-size:1.35rem}
/* LOGO FRONTEND DARI KONTAK SETTING */
.brand-logo-wrap {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(255,255,255,.28);
    box-shadow: 0 10px 24px rgba(2,12,27,.20);
}

.brand-logo-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    padding: 5px;
}

@media (max-width: 575.98px) {
    .brand-logo-wrap {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .brand-logo-img {
        padding: 4px;
    }
}
.brand-text{display:flex; flex-direction:column; line-height:1.04}
.brand-text strong{font-size:1.2rem; color:#fff; letter-spacing:.6px}
.brand-text small{font-size:.72rem; color:var(--bpn-gold); font-weight:900; letter-spacing:.55px}
.site-navbar .nav-link{
    color:rgba(255,255,255,.86) !important;
    font-weight:700;
    font-size:.94rem;
    padding:.78rem .82rem !important;
    position:relative;
}
.site-navbar .nav-link:hover,
.site-navbar .nav-link.active{color:#fff !important}
.site-navbar .nav-link::after{
    content:"";
    position:absolute;
    left:.82rem;
    right:.82rem;
    bottom:.38rem;
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg, var(--bpn-gold), var(--bpn-gold-2));
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .22s ease;
}
.site-navbar .nav-link:hover::after,
.site-navbar .nav-link.active::after{transform:scaleX(1)}
.site-navbar .navbar-toggler{border-color:rgba(255,255,255,.32); border-radius:12px; padding:.55rem .7rem}
.site-navbar .navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(247,183,49,.25)}
.btn-login{
    border:1px solid rgba(255,255,255,.36) !important;
    color:#fff !important;
    border-radius:999px;
    padding:.58rem 1.05rem;
    font-weight:800;
    background:rgba(255,255,255,.06);
    backdrop-filter:blur(12px);
}
.btn-login:hover{background:rgba(255,255,255,.14); transform:translateY(-1px)}
.btn-daftar,
.btn-warning.btn-daftar{
    border:0 !important;
    color:#111827 !important;
    background:linear-gradient(135deg, #ffd166, var(--bpn-gold), var(--bpn-gold-2)) !important;
    border-radius:999px;
    padding:.62rem 1.25rem;
    font-weight:900;
    box-shadow:0 10px 26px rgba(245,158,11,.28);
}
.btn-daftar:hover{filter:brightness(.99); transform:translateY(-2px); box-shadow:0 14px 32px rgba(245,158,11,.36)}

/* GLOBAL */
.text-primary{color:var(--bpn-navy) !important}
.text-warning{color:var(--bpn-gold-2) !important}
.bg-primary{background:var(--bpn-navy) !important}
.bg-light,.bg-soft{background:linear-gradient(180deg, var(--bpn-soft), var(--bpn-light)) !important}
.section-padding{padding:86px 0}
.section-title{margin-bottom:2.15rem}
.section-title span,
.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    width:max-content;
    max-width:100%;
    margin-bottom:.8rem;
    padding:.42rem .82rem;
    border-radius:999px;
    background:rgba(247,183,49,.13);
    color:#b76b00;
    font-weight:900;
    font-size:.88rem;
    letter-spacing:.02em;
}
.section-title span::before,
.eyebrow::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--bpn-gold-2);
    box-shadow:0 0 0 5px rgba(247,183,49,.18);
}
.section-title.text-center span{margin-left:auto; margin-right:auto}
.section-title h2{
    margin:0;
    color:var(--bpn-navy);
    font-size:clamp(2rem,3.4vw,3.1rem);
    line-height:1.1;
    font-weight:900;
    letter-spacing:-.045em;
}
.section-title p,
.section-subtitle{color:var(--bpn-muted); max-width:760px}
.section-title.text-center p{margin-left:auto; margin-right:auto}
.btn{transition:.22s ease}
.btn:hover{transform:translateY(-1px)}
.btn-warning{
    background:linear-gradient(135deg, #ffd166, var(--bpn-gold), var(--bpn-gold-2)) !important;
    border:0 !important;
    color:#111827 !important;
    box-shadow:0 10px 24px rgba(245,158,11,.24);
}
.btn-outline-primary{
    border-color:rgba(37,99,235,.58) !important;
    color:var(--bpn-blue) !important;
}
.btn-outline-primary:hover{
    background:var(--bpn-blue) !important;
    color:#fff !important;
}

/* HERO BERANDA */
.hero-section{
    position:relative;
    padding:92px 0 72px;
    overflow:hidden;
    background:
        radial-gradient(circle at 88% 5%, rgba(247,183,49,.22), transparent 23%),
        radial-gradient(circle at 12% 12%, rgba(37,99,235,.14), transparent 26%),
        linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}
.hero-section::before{
    content:"";
    position:absolute;
    inset:auto -80px -160px auto;
    width:420px;
    height:420px;
    border-radius:50%;
    background:rgba(37,99,235,.07);
    filter:blur(5px);
}
.hero-section h1{
    margin:0 0 1.2rem;
    color:var(--bpn-dark);
    font-size:clamp(1.70rem,2.7vw,2.4rem);
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.06em;
}
.hero-section h1 span{color:var(--bpn-gold-2)}
.hero-section .lead{
    color:#4b5563;
    font-size:1.15rem;
    max-width:760px;
    margin-bottom:1.7rem;
}
.hero-section .btn-lg{padding:.88rem 1.55rem; font-size:1.03rem}
.hero-stats{margin-top:1.15rem}
.hero-stats > div > div{
    height:100%;
    padding:.95rem .85rem;
    border-radius:18px;
    border:1px solid rgba(229,237,248,.9);
    background:rgba(255,255,255,.82);
    box-shadow:0 12px 28px rgba(6,31,72,.06);
    backdrop-filter:blur(8px);
}
.hero-stats i{display:block; color:var(--bpn-gold-2); font-size:1.35rem; margin-bottom:.3rem}
.hero-stats strong{display:block; color:var(--bpn-navy); font-size:1.1rem; font-weight:900; line-height:1.2}
.hero-stats small{display:block; color:var(--bpn-muted); font-weight:700; font-size:.78rem}
.hero-visual{
    position:relative;
    min-height:420px;
    border-radius:34px;
    overflow:hidden;
    background:
        linear-gradient(135deg, rgba(255,255,255,.88), rgba(234,242,255,.92)),
        radial-gradient(circle at 22% 18%, rgba(247,183,49,.28), transparent 28%);
    border:1px solid rgba(229,237,248,.9);
    box-shadow:var(--bpn-shadow-hover);
}
.hero-visual::before{
    content:"";
    position:absolute;
    inset:22px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(6,31,72,.06), rgba(37,99,235,.08));
}
.hero-visual img{
    position:absolute;
    right:0;
    bottom:0;
    width:88%;
    max-height:92%;
    object-fit:contain;
    filter:drop-shadow(0 20px 28px rgba(6,31,72,.14));
}

/* PAGE HERO */
.page-hero{
    position:relative;
    padding:82px 0;
    overflow:hidden;
    background:
        radial-gradient(circle at 16% 18%, rgba(247,183,49,.16), transparent 26%),
        radial-gradient(circle at 88% 12%, rgba(37,99,235,.12), transparent 25%),
        linear-gradient(180deg, #fff, #f7fbff);
    border-bottom:1px solid var(--bpn-border);
}
.page-hero.compact{padding:68px 0}
.page-hero h1{
    color:var(--bpn-navy);
    font-size:clamp(2.2rem,4.2vw,4rem);
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.055em;
    margin-bottom:1rem;
}
.page-hero p{color:#4b5563; font-size:1.12rem; max-width:820px; margin-left:auto; margin-right:auto}
.page-hero .row p{margin-left:0; margin-right:0}
.page-hero img{
    border-radius:26px;
    box-shadow:var(--bpn-shadow);
    background:#fff;
    padding:12px;
}

/* CARDS */
.feature-card,
.program-card,
.price-card,
.testimonial-card,
.article-card,
.content-card,
.image-card,
.legal-card,
.teacher-card,
.gallery-card,
.contact-info-card,
.form-card,
.contact-card{
    background:rgba(255,255,255,.94);
    border:1px solid var(--bpn-border);
    border-radius:var(--bpn-radius);
    box-shadow:var(--bpn-shadow);
    transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.feature-card:hover,
.program-card:hover,
.price-card:hover,
.testimonial-card:hover,
.article-card:hover,
.legal-card:hover,
.teacher-card:hover,
.gallery-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--bpn-shadow-hover);
    border-color:rgba(37,99,235,.22);
}
.feature-card{padding:30px}
.feature-card h4,
.price-card h4,
.price-card h3,
.program-card h3,
.content-card h3,
.legal-card h4,
.teacher-card h4{
    color:var(--bpn-navy);
    font-weight:900;
    letter-spacing:-.025em;
}
.feature-card p,
.program-card p,
.price-card p,
.article-card p,
.content-card p,
.legal-card p,
.teacher-card p,
.testimonial-card p{color:var(--bpn-muted)}
.icon-circle{
    width:64px;
    height:64px;
    border-radius:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:1rem;
    background:linear-gradient(135deg, #eef5ff, #f8fbff);
    color:var(--bpn-navy);
    font-size:1.65rem;
    box-shadow:inset 0 0 0 1px rgba(37,99,235,.08);
}
.link-arrow{font-weight:900; display:inline-flex; align-items:center; gap:.35rem}
.link-arrow i{transition:.2s ease}
.link-arrow:hover i{transform:translateX(4px)}

/* ADVANTAGES */
.advantage-item{
    display:flex;
    gap:1rem;
    align-items:flex-start;
    height:100%;
    padding:24px;
    border-radius:22px;
    background:#fff;
    border:1px solid var(--bpn-border);
    box-shadow:0 12px 30px rgba(6,31,72,.06);
}
.advantage-item i{
    width:52px;
    height:52px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    color:#fff;
    background:linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    font-size:1.25rem;
}
.advantage-item h5{color:var(--bpn-navy); font-weight:900; margin-bottom:.25rem}
.advantage-item p{color:var(--bpn-muted); margin:0}

/* PRICE */
.price-card{position:relative; padding:30px}
.price-card.popular{border:2px solid var(--bpn-gold); transform:translateY(-4px)}
.popular-badge{
    position:absolute;
    top:-15px;
    left:50%;
    transform:translateX(-50%);
    background:linear-gradient(135deg, var(--bpn-gold), var(--bpn-gold-2));
    color:#111827;
    border-radius:999px;
    padding:.34rem 1rem;
    font-size:.78rem;
    font-weight:900;
    box-shadow:0 10px 22px rgba(245,158,11,.25);
}
.price-card .price{
    color:var(--bpn-navy);
    font-size:2rem;
    font-weight:900;
    letter-spacing:-.04em;
    margin:1rem 0;
}
.price-card.popular .price{color:var(--bpn-gold-2)}
.price-card ul{list-style:none; padding:0; margin:1.2rem 0 1.6rem}
.price-card li{display:flex; gap:.55rem; align-items:flex-start; color:#475569; margin-bottom:.62rem; font-weight:600}
.price-card li i{color:var(--bpn-green); flex:0 0 auto; margin-top:.1rem}
.status-badge{display:inline-flex; padding:.38rem .76rem; border-radius:999px; font-size:.78rem; font-weight:900}
.status-badge.available{background:rgba(22,163,74,.10); color:var(--bpn-green)}
.status-badge.unavailable{background:rgba(220,38,38,.10); color:var(--bpn-red)}

/* FLOW */
.flow-wrapper{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:16px;
}
.flow-item{
    position:relative;
    min-height:160px;
    padding:26px 18px 22px;
    border-radius:22px;
    background:#fff;
    border:1px solid var(--bpn-border);
    box-shadow:0 14px 32px rgba(6,31,72,.07);
    text-align:center;
}
.flow-item span{
    display:inline-flex;
    width:40px;
    height:40px;
    border-radius:50%;
    align-items:center;
    justify-content:center;
    margin-bottom:.9rem;
    background:linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    color:#fff;
    font-weight:900;
}
.flow-item h5{color:var(--bpn-navy); font-weight:900; margin-bottom:.35rem}
.flow-item p{color:var(--bpn-muted); margin:0; font-size:.92rem}

/* COMPANY */
.content-card{padding:34px}
.image-card{display:flex; align-items:center; justify-content:center; min-height:100%; overflow:hidden}
.image-card img{width:100%; height:100%; object-fit:cover; min-height:310px}
.check-list{list-style:none; padding:0; margin:1rem 0 0}
.check-list li{
    position:relative;
    padding-left:2rem;
    margin-bottom:.85rem;
    color:#475569;
    font-weight:600;
}
.check-list li::before{
    content:"\F26B";
    font-family:"bootstrap-icons";
    position:absolute;
    left:0;
    top:.05rem;
    color:var(--bpn-gold-2);
}
.legal-card{padding:28px; height:100%}
.legal-card > i{
    width:56px;
    height:56px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:1rem;
    color:#fff;
    background:linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    font-size:1.35rem;
}
.legal-card small{display:block; color:#475569; font-weight:800}
.teacher-card{text-align:center; padding:30px 24px}
.teacher-card img{
    width:140px;
    height:140px;
    border-radius:34px;
    object-fit:cover;
    margin-bottom:1.2rem;
    background:var(--bpn-blue-soft);
    border:1px solid var(--bpn-border);
}
.teacher-card strong{display:block; color:var(--bpn-gold-2); font-weight:900; margin-bottom:.45rem}
.teacher-card span{
    display:inline-flex;
    margin-bottom:.9rem;
    padding:.32rem .72rem;
    border-radius:999px;
    background:var(--bpn-blue-soft);
    color:var(--bpn-navy);
    font-size:.78rem;
    font-weight:900;
}
.gallery-card{overflow:hidden}
.gallery-card img{width:100%; height:185px; object-fit:cover; background:var(--bpn-blue-soft)}
.gallery-card h5{padding:1rem; margin:0; color:var(--bpn-navy); font-size:1rem; font-weight:900; text-align:center}

/* PROGRAM */
.program-card{padding:30px}
.program-head{display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.3rem}
.program-head .icon-circle{margin-bottom:0; flex:0 0 auto}
.program-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    margin:1.3rem 0;
}
.program-detail-grid > div{
    padding:18px;
    border-radius:18px;
    background:var(--bpn-soft);
    border:1px solid var(--bpn-border);
}
.program-detail-grid strong{display:block; color:var(--bpn-navy); font-weight:900; margin-bottom:.25rem}
.program-detail-grid p{margin:0; font-size:.94rem}
.program-footer{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    justify-content:space-between;
    padding-top:1.3rem;
    border-top:1px solid var(--bpn-border);
}
.program-footer small{display:block; color:var(--bpn-muted); font-weight:700}
.program-footer strong{display:block; color:var(--bpn-gold-2); font-size:1.25rem; font-weight:900}

/* ARTICLE & TESTIMONIAL */
.article-card{overflow:hidden}
.article-card img{width:100%; height:220px; object-fit:cover; background:var(--bpn-blue-soft)}
.article-category{
    display:inline-flex;
    margin-bottom:.8rem;
    padding:.32rem .72rem;
    border-radius:999px;
    background:rgba(37,99,235,.10);
    color:var(--bpn-blue);
    font-weight:900;
    font-size:.76rem;
}
.article-card h4{font-size:1.2rem; line-height:1.35; font-weight:900}
.article-card h4 a{color:var(--bpn-navy)}
.article-card small{color:var(--bpn-muted); font-weight:700}
.testimonial-card{text-align:center; padding:30px 24px}
.testimonial-card img{
    width:98px;
    height:98px;
    border-radius:50%;
    object-fit:cover;
    margin-bottom:1rem;
    background:var(--bpn-blue-soft);
    border:4px solid #fff;
    box-shadow:0 10px 22px rgba(6,31,72,.12);
}
.testimonial-card p{font-style:italic; color:#475569}
.testimonial-card h5{color:var(--bpn-navy); font-weight:900; margin-bottom:.2rem}
.testimonial-card small{display:block; color:var(--bpn-muted); margin-bottom:.55rem}
.testimonial-card span{
    display:inline-flex;
    padding:.3rem .75rem;
    border-radius:999px;
    background:rgba(247,183,49,.16);
    color:#a05a00;
    font-weight:900;
    font-size:.78rem;
}
.stars{color:var(--bpn-gold-2); letter-spacing:.06rem; margin-bottom:.65rem}

/* CONTACT */
.contact-info-card,.form-card{padding:32px}
.contact-item{display:flex; gap:1rem; align-items:flex-start; padding:1.05rem 0; border-bottom:1px solid var(--bpn-border)}
.contact-item:first-child{padding-top:0}
.contact-item:last-of-type{border-bottom:0}
.contact-item i{
    width:52px;
    height:52px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    font-size:1.25rem;
    flex:0 0 auto;
}
.contact-item h5{color:var(--bpn-navy); font-weight:900; margin-bottom:.15rem}
.contact-item p{margin:0; color:var(--bpn-muted)}
.map-card{border-radius:22px; overflow:hidden; border:1px solid var(--bpn-border); min-height:260px; background:var(--bpn-light)}
.map-card iframe{width:100%; height:260px; display:block; border:0}
.form-card h3{color:var(--bpn-navy); font-weight:900}
.form-card .form-label{font-weight:800; color:var(--bpn-navy)}
.form-control,.form-select{
    border-radius:14px;
    border-color:#d8e3f3;
    padding:.82rem .95rem;
    min-height:48px;
}
.form-control:focus,.form-select:focus{
    border-color:var(--bpn-blue);
    box-shadow:0 0 0 .22rem rgba(37,99,235,.13);
}
textarea.form-control{min-height:150px}

/* FOOTER */
.site-footer{
    margin-top:0;
    color:#fff;
    background:
        radial-gradient(circle at 20% 0%, rgba(247,183,49,.11), transparent 27%),
        linear-gradient(90deg, #03152f, var(--bpn-navy) 52%, #082d66);
}
.site-footer h6{font-weight:900; margin-bottom:1rem; color:#fff}
.footer-muted{color:rgba(255,255,255,.74)}
.footer-links li{margin-bottom:.48rem}
.footer-links a{color:rgba(255,255,255,.76); font-weight:600}
.footer-links a:hover{color:var(--bpn-gold)}
.social-links{display:flex; gap:.6rem}
.social-links a{
    width:38px;
    height:38px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.13);
}
.social-links a:hover{background:var(--bpn-gold); color:#111827; transform:translateY(-2px)}
.newsletter-box{display:grid; gap:.7rem}
.newsletter-box .form-control{border:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.10); color:rgba(255,255,255,.70)}

/* UX */
.back-to-top{
    position:fixed;
    right:20px;
    bottom:20px;
    width:46px;
    height:46px;
    border:0;
    border-radius:50%;
    color:#111827;
    background:linear-gradient(135deg, var(--bpn-gold), var(--bpn-gold-2));
    box-shadow:0 12px 28px rgba(245,158,11,.28);
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    transition:.22s ease;
    z-index:1040;
}
.back-to-top.show{opacity:1; visibility:visible; transform:translateY(0)}
.reveal-on-scroll{opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease}
.reveal-on-scroll.is-visible{opacity:1; transform:none}

@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important}
}
@media (max-width:1199.98px){
    .flow-wrapper{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:991.98px){
    .site-navbar .navbar-collapse{padding:1rem 0}
    .site-navbar .nav-link::after{display:none}
    .hero-section{padding:62px 0 52px}
    .hero-visual{min-height:330px}
    .program-detail-grid{grid-template-columns:1fr}
}
@media (max-width:767.98px){
    .section-padding{padding:64px 0}
    .hero-section h1,.page-hero h1{letter-spacing:-.04em}
    .hero-visual{min-height:280px; border-radius:26px}
    .hero-visual::after{font-size:.88rem; left:18px; top:18px; width:calc(100% - 36px); padding:14px 16px}
    .flow-wrapper{grid-template-columns:1fr}
    .program-head{flex-direction:column}
    .program-footer{align-items:stretch}
    .program-footer .btn{width:100%}
    .content-card,.contact-info-card,.form-card,.program-card,.price-card{padding:24px}
}
/* HERO IMAGE RIGHT SIDE */
.hero-visual-wrapper {
    position: relative;
    width: 100%;
    max-width: 720px;
    margin-left: auto;
}

.hero-visual-card {
    position: relative;
    min-height: 370px;
    padding: 38px;
    border-radius: 34px;
    background:
        radial-gradient(circle at top right, rgba(245, 178, 53, 0.22), transparent 35%),
        linear-gradient(135deg, #f8fbff 0%, #eef4ff 100%);
    border: 1px solid rgba(15, 39, 78, 0.08);
    box-shadow: 0 32px 80px rgba(15, 39, 78, 0.16);
    overflow: hidden;
}

.hero-image-box {
    position: absolute;
    right: 0px;
    bottom: 0px;
    width: 100%;
    height: 370px;
    border-radius: 0px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 24px 60px rgba(15, 39, 78, 0.22);
    z-index: 2;
}

.hero-main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.hero-floating-badge {
    position: relative;
    z-index: 4;
    width: fit-content;
    max-width: 430px;
    padding: 22px 30px;
    border-radius: 26px;
    background: linear-gradient(135deg, #0a2a5e 0%, #173b7a 100%);
    color: #ffffff;
    box-shadow: 0 22px 48px rgba(10, 42, 94, 0.28);
}

.hero-floating-badge span {
    display: block;
    font-size: 1.15rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.hero-floating-badge small {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    opacity: 0.95;
}

.hero-shape {
    position: absolute;
    border-radius: 999px;
    z-index: 1;
}

.hero-shape-one {
    width: 160px;
    height: 160px;
    right: -40px;
    top: -35px;
    background: rgba(245, 178, 53, 0.18);
}

.hero-shape-two {
    width: 220px;
    height: 220px;
    left: -80px;
    bottom: -90px;
    background: rgba(48, 102, 238, 0.12);
}

/* RESPONSIVE HERO */
@media (max-width: 991.98px) {
    .hero-visual-wrapper {
        max-width: 100%;
        margin-top: 40px;
    }

    .hero-visual-card {
        min-height: 390px;
        padding: 28px;
    }

    .hero-image-box {
        width: calc(100% - 56px);
        height: 260px;
        left: 28px;
        right: 28px;
        bottom: 28px;
    }

    .hero-floating-badge {
        max-width: 100%;
        padding: 18px 22px;
    }
}

@media (max-width: 575.98px) {
    .hero-visual-card {
        min-height: 340px;
        border-radius: 26px;
        padding: 22px;
    }

    .hero-image-box {
        width: calc(100% - 44px);
        height: 220px;
        left: 22px;
        right: 22px;
        bottom: 22px;
        border-radius: 22px;
    }

    .hero-floating-badge span {
        font-size: 1rem;
    }

    .hero-floating-badge small {
        font-size: 0.8rem;
    }
}

/* =========================================================
   SECTION ARTIKEL TERBARU - HOME / FRONTEND
   Global, tidak dimasukkan ke dalam @media agar terbaca di desktop.
========================================================= */
.latest-articles-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 18%, rgba(37,99,235,.09), transparent 26%),
        radial-gradient(circle at 92% 8%, rgba(247,183,49,.16), transparent 24%),
        linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%);
}

.latest-articles-section::before,
.latest-articles-section::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}

.latest-articles-section::before {
    width: 340px;
    height: 340px;
    left: -165px;
    bottom: -185px;
    background: rgba(37,99,235,.08);
}

.latest-articles-section::after {
    width: 230px;
    height: 230px;
    right: -95px;
    top: 105px;
    background: rgba(247,183,49,.13);
}

.latest-articles-heading {
    position: relative;
    z-index: 1;
}

.latest-articles-grid {
    position: relative;
    z-index: 1;
    align-items: stretch;
}

.latest-article-card {
    position: relative;
    min-height: 100%;
    background: rgba(255,255,255,.96);
    border-radius: 30px;
    overflow: hidden;
    border: 1px solid rgba(15,39,78,.08);
    box-shadow: 0 22px 55px rgba(15,39,78,.11);
    display: flex;
    flex-direction: column;
    transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

.latest-article-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 32px 80px rgba(15,39,78,.17);
    border-color: rgba(37,99,235,.24);
}

.latest-article-thumb-wrap {
    position: relative;
    display: block;
    width: 100%;
    height: 230px;
    flex: 0 0 230px;
    overflow: hidden;
    text-decoration: none;
    background: linear-gradient(135deg, #eaf2ff 0%, #f8fbff 100%);
}

.latest-article-thumb-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6,31,72,0) 38%, rgba(6,31,72,.56) 100%);
    opacity: .92;
    z-index: 1;
    pointer-events: none;
}

.latest-article-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1.01);
    transition: transform .35s ease, filter .35s ease;
}

.latest-article-card:hover .latest-article-thumb {
    transform: scale(1.08);
    filter: saturate(1.08) contrast(1.03);
}

.latest-article-thumb-placeholder {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    color: #173b7a;
    font-weight: 900;
    text-align: center;
    padding: 24px;
    z-index: 2;
}

.latest-article-thumb-placeholder i {
    width: 64px;
    height: 64px;
    border-radius: 22px;
    background: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    box-shadow: 0 16px 34px rgba(15,39,78,.14);
}

.latest-article-thumb-wrap.is-broken::after,
.latest-article-thumb-wrap.no-image::after {
    background: linear-gradient(135deg, rgba(234,242,255,.96), rgba(248,251,255,.96));
}

.latest-article-thumb-wrap.is-broken .latest-article-thumb-placeholder,
.latest-article-thumb-wrap.no-image .latest-article-thumb-placeholder {
    display: flex;
}

.latest-article-badge {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 36px);
    padding: 8px 14px;
    border-radius: 999px;
    color: #111827;
    background: linear-gradient(135deg, #ffd166, var(--bpn-gold), var(--bpn-gold-2));
    box-shadow: 0 12px 26px rgba(245,158,11,.26);
    font-size: .78rem;
    line-height: 1.2;
    font-weight: 900;
}

.latest-article-body {
    padding: 26px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.latest-article-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.latest-article-date,
.latest-article-readtime {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #66758f;
    font-size: .82rem;
    line-height: 1.2;
    font-weight: 800;
}

.latest-article-date i,
.latest-article-readtime i {
    color: var(--bpn-gold-2);
}

.latest-article-title {
    margin: 0 0 13px;
    color: var(--bpn-navy);
    font-size: 1.18rem;
    line-height: 1.35;
    font-weight: 900;
    letter-spacing: -.025em;
}

.latest-article-title a {
    color: inherit;
    text-decoration: none;
}

.latest-article-title a:hover {
    color: var(--bpn-blue);
}

.latest-article-excerpt {
    color: #64728a;
    font-size: .98rem;
    line-height: 1.72;
    margin-bottom: 22px;
    display: block;
    max-height: calc(1.72em * 3);
    overflow: hidden;
    text-overflow: ellipsis;
}

.latest-article-footer {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid rgba(229,237,248,.92);
}

.latest-article-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    color: var(--bpn-blue);
    font-weight: 900;
    text-decoration: none;
}

.latest-article-link i {
    transition: transform .2s ease;
}

.latest-article-link:hover {
    color: var(--bpn-navy);
}

.latest-article-link:hover i {
    transform: translateX(5px);
}

.latest-articles-more-btn {
    position: relative;
    z-index: 1;
    box-shadow: 0 14px 32px rgba(245,158,11,.28);
}

.latest-articles-empty {
    position: relative;
    z-index: 1;
    max-width: 520px;
    margin: 0 auto;
    border-radius: 28px;
    background: rgba(255,255,255,.86);
    border: 1px solid var(--bpn-border);
    box-shadow: var(--bpn-shadow);
}

.latest-articles-empty-icon i {
    width: 72px;
    height: 72px;
    border-radius: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bpn-blue-soft);
    color: var(--bpn-navy);
    font-size: 2rem;
}

@media (max-width: 991.98px) {
    .latest-article-thumb-wrap {
        height: 205px;
        flex-basis: 205px;
    }
}

@media (max-width: 575.98px) {
    .latest-article-card {
        border-radius: 24px;
    }

    .latest-article-thumb-wrap {
        height: 190px;
        flex-basis: 190px;
    }

    .latest-article-body {
        padding: 22px;
    }

    .latest-article-title {
        font-size: 1.08rem;
    }

    .latest-article-meta {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   CONTACT PAGE - MODERN CARD DESIGN
   Digunakan oleh app/Views/frontend/pages/contact.php
========================================================= */
.contact-hero {
    background:
        radial-gradient(circle at 14% 18%, rgba(247,183,49,.18), transparent 26%),
        radial-gradient(circle at 88% 8%, rgba(37,99,235,.13), transparent 25%),
        linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.contact-page-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 0% 12%, rgba(37,99,235,.08), transparent 25%),
        radial-gradient(circle at 100% 80%, rgba(247,183,49,.10), transparent 26%),
        linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
}

.contact-page-section::before {
    content: "";
    position: absolute;
    right: -160px;
    top: 90px;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: rgba(37,99,235,.06);
    pointer-events: none;
}

.contact-page-grid,
.contact-page-section .container {
    position: relative;
    z-index: 1;
}

.contact-alert {
    border: 0;
    box-shadow: 0 14px 34px rgba(6,31,72,.08);
}

.contact-panel {
    position: relative;
    min-height: 100%;
    padding: 36px;
    border-radius: 32px;
    overflow: hidden;
    color: #ffffff;
    background:
        radial-gradient(circle at 88% 10%, rgba(247,183,49,.22), transparent 28%),
        radial-gradient(circle at 6% 96%, rgba(37,99,235,.24), transparent 28%),
        linear-gradient(135deg, #041733 0%, #061f48 48%, #08336f 100%);
    border: 1px solid rgba(255,255,255,.13);
    box-shadow: 0 30px 80px rgba(6,31,72,.24);
}

.contact-panel::before {
    content: "";
    position: absolute;
    inset: 18px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.08);
    pointer-events: none;
}

.contact-panel-content {
    position: relative;
    z-index: 2;
}

.contact-panel .eyebrow {
    background: rgba(247,183,49,.15);
    color: #ffd166;
}

.contact-panel .eyebrow::before {
    background: var(--bpn-gold);
    box-shadow: 0 0 0 5px rgba(247,183,49,.18);
}

.contact-panel h2 {
    margin: .25rem 0 1rem;
    color: #ffffff;
    font-size: clamp(1.85rem, 3vw, 2.65rem);
    line-height: 1.12;
    font-weight: 900;
    letter-spacing: -.045em;
}

.contact-panel p {
    color: rgba(255,255,255,.78);
    margin-bottom: 0;
}

.contact-info-list {
    display: grid;
    gap: 14px;
}

.contact-info-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.10);
    backdrop-filter: blur(12px);
}

.contact-info-item > i {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #111827;
    background: linear-gradient(135deg, #ffd166, var(--bpn-gold), var(--bpn-gold-2));
    box-shadow: 0 12px 28px rgba(245,158,11,.26);
    font-size: 1.18rem;
}

.contact-info-item h5 {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 900;
    margin: 0 0 .15rem;
}

.contact-info-item p {
    color: rgba(255,255,255,.80);
    line-height: 1.55;
}

.contact-cta-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    border-radius: 24px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.13);
}

.contact-cta-box strong,
.contact-cta-box span {
    display: block;
}

.contact-cta-box strong {
    color: #ffffff;
    font-weight: 900;
}

.contact-cta-box span {
    color: rgba(255,255,255,.72);
    font-size: .92rem;
}

.contact-form-card {
    height: 100%;
    padding: 36px;
    border-radius: 32px;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--bpn-border);
    box-shadow: 0 24px 65px rgba(6,31,72,.12);
}

.contact-form-header {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 26px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--bpn-border);
}

.contact-form-icon {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #ffffff;
    background: linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    box-shadow: 0 16px 34px rgba(37,99,235,.22);
    font-size: 1.35rem;
}

.contact-form-header span {
    display: inline-flex;
    margin-bottom: .25rem;
    color: var(--bpn-gold-2);
    font-size: .84rem;
    font-weight: 900;
}

.contact-form-header h3 {
    margin: 0 0 .35rem;
    color: var(--bpn-navy);
    font-weight: 900;
    letter-spacing: -.03em;
}

.contact-form-header p {
    margin: 0;
    color: var(--bpn-muted);
}

.contact-form .form-label {
    color: var(--bpn-navy);
    font-weight: 850;
    margin-bottom: .48rem;
}

.input-icon-group {
    position: relative;
}

.input-icon-group > i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--bpn-blue);
    z-index: 2;
    font-size: 1rem;
}

.input-icon-group .form-control,
.input-icon-group .form-select {
    padding-left: 44px;
}

.contact-form-card .form-control,
.contact-form-card .form-select {
    min-height: 54px;
    border-radius: 17px;
    border-color: #d8e3f3;
    background: #f8fbff;
    font-weight: 650;
}

.contact-form-card textarea.form-control {
    min-height: 155px;
    padding: 16px 18px;
    resize: vertical;
}

.contact-form-card .form-control:focus,
.contact-form-card .form-select:focus {
    background: #ffffff;
    border-color: var(--bpn-blue);
    box-shadow: 0 0 0 .22rem rgba(37,99,235,.12);
}

.contact-form-note {
    display: inline-flex;
    align-items: center;
    color: var(--bpn-muted);
    font-weight: 700;
}

.contact-submit-btn {
    min-width: 205px;
}

.contact-map-card {
    position: relative;
    overflow: hidden;
    min-height: 330px;
    border-radius: 32px;
    background: var(--bpn-light);
    border: 1px solid var(--bpn-border);
    box-shadow: 0 24px 65px rgba(6,31,72,.10);
}

.contact-map-card iframe {
    width: 100%;
    height: 330px;
    display: block;
    border: 0;
}

.contact-map-placeholder {
    min-height: 330px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 32px;
    text-align: left;
    background: linear-gradient(135deg, #eef5ff, #f8fbff);
}

.contact-map-placeholder i {
    width: 62px;
    height: 62px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #ffffff;
    background: linear-gradient(135deg, var(--bpn-navy), var(--bpn-blue));
    font-size: 1.45rem;
}

.contact-map-placeholder h5 {
    margin: 0 0 .25rem;
    color: var(--bpn-navy);
    font-weight: 900;
}

.contact-map-placeholder p {
    margin: 0;
    color: var(--bpn-muted);
}

@media (max-width: 991.98px) {
    .contact-panel,
    .contact-form-card {
        padding: 28px;
        border-radius: 28px;
    }

    .contact-cta-box {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .contact-panel,
    .contact-form-card,
    .contact-map-card {
        border-radius: 24px;
    }

    .contact-panel,
    .contact-form-card {
        padding: 22px;
    }

    .contact-info-item {
        padding: 14px;
    }

    .contact-form-header {
        flex-direction: column;
    }

    .contact-submit-btn {
        width: 100%;
    }

    .contact-map-placeholder {
        flex-direction: column;
        text-align: center;
    }
}

