/* ============================================================
   pages/home.css — Styles khusus landing page (index.html)
   ============================================================ */

/* === HERO === */
#beranda {
    position: relative;
    padding-top: 1.5rem;
    padding-bottom: 1rem;
    overflow: hidden;
    background: #ffffff;
    background-image: radial-gradient(var(--gray-200) 1px, transparent 1px);
    background-size: 20px 20px;
    min-height: calc(100vh - 116px);
    display: flex;
    align-items: center;
}
@media (min-width: 1024px) { #beranda { padding-top: 2rem; padding-bottom: 1.5rem; } }

.hero__blob-y { width: 500px; height: 500px; top: -80px; left: -80px; }
.hero__blob-b { width: 400px; height: 400px; top: 160px; right: -80px; }
.hero__inner  { position: relative; z-index: 10; }
.hero__flex   { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
@media (min-width: 1024px) { .hero__flex { flex-direction: row; } }

.hero__text { text-align: center; width: 100%; }
@media (min-width: 1024px) { .hero__text { width: 50%; text-align: left; } }

.hero__badge {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .5rem 1rem; border-radius: var(--radius-full);
    background: rgba(255,205,0,0.2); border: 1px solid var(--secondary);
    color: var(--primary); font-weight: 700; font-size: .875rem; margin-bottom: .75rem;
}
.hero__h1 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.875rem; font-weight: 900; color: var(--primary);
    line-height: 1.2; margin-bottom: .75rem;
}
@media (min-width: 1024px) { .hero__h1 { font-size: 2.5rem; } }
@media (min-width: 1280px) { .hero__h1 { font-size: 3rem; } }
.hero__h1 span {
    color: var(--secondary); background: var(--primary);
    padding: .25rem .5rem; border-radius: var(--radius-sm); display: inline-block;
    transform: rotate(-1deg); box-shadow: 0 4px 14px rgba(0,0,0,0.2);
}
.hero__p { color: var(--gray-600); font-size: 1rem; margin-bottom: 1rem; max-width: 42rem; margin-left: auto; margin-right: auto; }
@media (min-width: 1024px) { .hero__p { margin-left: 0; margin-right: 0; } }
.hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }
@media (min-width: 1024px) { .hero__ctas { justify-content: flex-start; } }

.hero__img-wrap  { position: relative; width: 100%; display: flex; justify-content: center; }
@media (min-width: 1024px) { .hero__img-wrap { width: 50%; } }
.hero__img-box   { position: relative; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); max-width: 28rem; width: 100%; }
.hero__img-box img { width: 100%; height: auto; display: block; }
.hero__img-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,49,94,0.7) 0%, transparent 50%); }
.hero__img-caption { position: absolute; bottom: 1.5rem; left: 1.5rem; right: 1.5rem; color: #fff; }
.hero__img-caption h3 { font-family: 'Montserrat',sans-serif; font-size: 1.25rem; font-weight: 900; margin-bottom: .25rem; }
.hero__img-caption p  { font-size: .8rem; opacity: .85; }
.hero__float-badge {
    position: absolute; bottom: -1rem; right: -1rem;
    background: #fff; border-radius: var(--radius-lg); padding: .75rem 1rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15); display: flex; align-items: center; gap: .75rem;
    font-family: 'Montserrat',sans-serif; font-size: .75rem; font-weight: 700; color: var(--primary);
    border: 2px solid var(--secondary);
}
.hero__float-icon { background: var(--secondary); border-radius: var(--radius-sm); width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 1rem; flex-shrink: 0; }

/* === PAIN POINTS === */
#masalah {
    padding: 4rem 0;
    background: linear-gradient(135deg, #1c315e 0%, #2e4f8a 100%);
    position: relative; overflow: hidden;
}
#masalah::before {
    content: ''; position: absolute; inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
}
.masalah__header { text-align: center; margin-bottom: 2.5rem; }
.masalah__pretitle { color: var(--secondary); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; display: block; }
.masalah__title { font-family: 'Montserrat',sans-serif; font-size: 1.75rem; font-weight: 900; color: #fff; line-height: 1.25; }
@media (min-width: 1024px) { .masalah__title { font-size: 2.25rem; } }
.masalah__title em { color: var(--secondary); font-style: normal; }
.masalah__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px)  { .masalah__grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .masalah__grid { grid-template-columns: repeat(3,1fr); } }
.masalah-item { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-lg); padding: 1.5rem; display: flex; gap: 1rem; align-items: flex-start; transition: background .3s, border-color .3s; }
.masalah-item:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,205,0,0.3); }
.masalah-item__icon { font-size: 1.5rem; flex-shrink: 0; margin-top: .1rem; }
.masalah-item__text h3 { font-family: 'Montserrat',sans-serif; font-size: .95rem; font-weight: 800; color: #fff; margin-bottom: .25rem; }
.masalah-item__text p  { font-size: .8rem; color: rgba(255,255,255,0.65); line-height: 1.6; }
.masalah__cta { text-align: center; margin-top: 2.5rem; }
.masalah__cta p { color: rgba(255,255,255,0.7); margin-bottom: 1rem; font-size: .95rem; }

/* === SOCIAL PROOF NUMBERS === */
#angka { padding: 3.5rem 0; background: #fff; border-bottom: 1px solid var(--gray-100); }

/* === PROGRAM, KEUNGGULAN, TES, CERITA, TESTIMONI, FAQ === */
#program          { padding: 5rem 0; background: var(--gray-50); }
#keunggulan       { padding: 5rem 0; background: #fff; }
#tes-bahasa-inggris { padding: 5rem 0; background: var(--primary); }
#cerita           { padding: 5rem 0 4rem; background: var(--gray-50); }
#testimoni        { padding: 5rem 0; background: #fff; }
#faq              { padding: 5rem 0; background: var(--gray-50); }

/* Override section label/title colors inside dark bg sections */
#tes-bahasa-inggris .section-label { background: rgba(255,205,0,0.2); color: var(--secondary); border: 1px solid rgba(255,205,0,0.4); }
#tes-bahasa-inggris .section-title { color: #fff; }
#tes-bahasa-inggris .section-header p { color: rgba(255,255,255,0.6); }
#tes-bahasa-inggris .carousel-dot { background: rgba(255,255,255,0.25); }
#tes-bahasa-inggris .carousel-dot.active { background: var(--secondary); }

.keunggulan__header { text-align: center; max-width: 44rem; margin: 0 auto 3.5rem; }
.keunggulan__header h2 { font-family: 'Montserrat',sans-serif; font-size: 1.875rem; font-weight: 900; color: var(--primary); margin-bottom: .75rem; line-height: 1.25; }
@media (min-width: 1024px) { .keunggulan__header h2 { font-size: 2.5rem; } }
.keunggulan__header p { color: var(--gray-500); font-size: 1rem; font-weight: 500; }

.video-header { text-align: center; max-width: 44rem; margin: 0 auto 3rem; }
.video-header__sub { color: var(--gray-500); font-size: 1rem; margin-top: .5rem; }
.testi-header { text-align: center; max-width: 44rem; margin: 0 auto 3.5rem; }
.testi-header__sub { color: var(--gray-500); font-size: 1rem; margin-top: .5rem; }
.faq__header { text-align: center; max-width: 42rem; margin: 0 auto 3.5rem; }
.faq__header h2 { font-family: 'Montserrat',sans-serif; font-size: 1.875rem; font-weight: 900; color: var(--primary); margin-bottom: .75rem; line-height: 1.25; }
@media (min-width: 1024px) { .faq__header h2 { font-size: 2.5rem; } }
.faq__header p { color: var(--gray-500); font-size: 1rem; }
