/* ═══════════════════════════════════════
   BAHASATHAI.ID — Components + Layout
═══════════════════════════════════════ */

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 28px;font-family:var(--font-body);font-weight:700;font-size:.77rem;letter-spacing:.05em;text-transform:uppercase;border-radius:var(--r2);cursor:pointer;border:none;transition:all var(--t);white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.98)}
.btn-gold{background:linear-gradient(135deg,var(--gold-dk),var(--gold));color:var(--bg);font-weight:800;box-shadow:var(--sh-gold)}
.btn-gold:hover{box-shadow:0 10px 36px rgba(240,165,0,.45)}
.btn-red{background:linear-gradient(135deg,var(--thai-red-2),var(--thai-red));color:#fff;box-shadow:var(--sh-red)}
.btn-red:hover{box-shadow:0 10px 36px rgba(200,16,46,.4)}
.btn-outline-gold{background:transparent;border:1.5px solid var(--gold-ring);color:var(--gold)}
.btn-outline-gold:hover{background:var(--gold-pale);border-color:var(--gold)}
.btn-outline-white{background:transparent;border:1.5px solid rgba(255,255,255,.3);color:rgba(255,255,255,.85)}
.btn-outline-white:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6)}
.btn-wa{background:#25D366;color:#fff;font-weight:800}
.btn-wa:hover{background:#1da851;box-shadow:0 8px 24px rgba(37,211,102,.35)}
.btn-ghost{background:var(--ink3);border:1px solid var(--border2);color:var(--text3)}
.btn-ghost:hover{border-color:var(--gold-ring);color:var(--gold)}
.btn-lg{padding:16px 36px;font-size:.83rem;border-radius:var(--r3)}
.btn-sm{padding:9px 18px;font-size:.72rem}
.btn-pill{border-radius:100px}
.btn-full{width:100%;justify-content:center}

/* ── CARDS ── */
.card{background:var(--ink2);border:1px solid var(--border);border-radius:var(--r3);transition:all var(--t2)}
.card:hover{border-color:var(--gold-ring);box-shadow:var(--sh)}
.card-p{padding:28px}
[data-theme="light"] .card{background:var(--ink1)}

/* ── PROGRAM CARD ── */
.prog-card{background:var(--ink2);border:1.5px solid var(--border);border-radius:var(--r4);overflow:hidden;transition:all var(--t2)}
.prog-card:hover{border-color:var(--gold-ring);transform:translateY(-5px);box-shadow:var(--sh)}
.prog-card-img{height:190px;background:linear-gradient(135deg,var(--ink2),var(--ink4));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.prog-card-badge{position:absolute;top:12px;left:12px;padding:4px 12px;border-radius:100px;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.prog-card-body{padding:22px}
.prog-card-level{font-size:.6rem;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;margin-bottom:6px}
.prog-card-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin-bottom:8px;color:var(--text)}
.prog-card-price{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--gold)}
[data-theme="light"] .prog-card{background:var(--ink1);border-color:var(--border)}

/* ── TESTIMONIAL CARD ── */
.testi-card{background:var(--ink2);border:1px solid var(--border);border-radius:var(--r4);padding:26px;transition:all var(--t2)}
.testi-card:hover{border-color:var(--gold-ring);box-shadow:var(--sh)}
.testi-stars{color:var(--gold);font-size:.82rem;letter-spacing:2px;margin-bottom:12px}
.testi-text{font-family:var(--font-display);font-style:italic;font-size:.98rem;color:var(--text2);line-height:1.78;margin-bottom:18px}
.testi-author{display:flex;align-items:center;gap:11px}
.testi-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--thai-red),var(--gold-dk));border:2px solid var(--gold-ring);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.8rem;font-weight:700;color:var(--gold);flex-shrink:0}
.testi-name{font-weight:700;font-size:.83rem;color:var(--text)}
.testi-detail{font-size:.68rem;color:var(--text4);margin-top:1px}
.testi-verified{font-size:.58rem;color:#10B981;font-weight:700;display:flex;align-items:center;gap:3px;margin-top:3px}
[data-theme="light"] .testi-card{background:var(--ink1)}

/* ── BLOG CARD ── */
.blog-card{background:var(--ink2);border:1px solid var(--border);border-radius:var(--r4);overflow:hidden;transition:all var(--t2)}
.blog-card:hover{border-color:var(--gold-ring);transform:translateY(-4px);box-shadow:var(--sh)}
.blog-img{height:190px;background:var(--ink3);overflow:hidden;display:flex;align-items:center;justify-content:center}
.blog-body{padding:20px}
.blog-cat{font-size:.6rem;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;margin-bottom:7px}
.blog-title{font-family:var(--font-display);font-size:1.08rem;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:8px}
.blog-excerpt{font-size:.8rem;color:var(--text3);line-height:1.72;margin-bottom:12px}
.blog-meta{font-size:.66rem;color:var(--text5);display:flex;gap:8px;align-items:center}
.blog-read{color:var(--gold);font-weight:800;font-size:.73rem;display:inline-flex;align-items:center;gap:5px;margin-top:10px;transition:gap var(--t)}
.blog-read:hover{gap:9px}
[data-theme="light"] .blog-card{background:var(--ink1)}

/* ── STEP ITEM ── */
.step-item{display:flex;gap:18px;align-items:flex-start;margin-bottom:28px}
.step-num{width:48px;height:48px;border-radius:50%;background:var(--thai-red);color:#fff;font-family:var(--font-display);font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--sh-red)}
.step-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:4px}
.step-desc{font-size:.81rem;color:var(--text3);line-height:1.7}
.step-tag{font-size:.62rem;font-weight:700;color:var(--gold);margin-top:5px;text-transform:uppercase;letter-spacing:.08em}

/* ── ADVANTAGE ITEM ── */
.adv-item{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--border)}
.adv-item:last-child{border-bottom:none}
.adv-icon{width:42px;height:42px;border-radius:var(--r2);background:var(--gold-pale);border:1px solid var(--gold-ring);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.adv-title{font-weight:700;font-size:.87rem;color:var(--text);margin-bottom:3px}
.adv-desc{font-size:.77rem;color:var(--text4);line-height:1.62}

/* ── THEME BUTTON ── */
.theme-btn{width:38px;height:38px;border-radius:var(--r);background:var(--ink3);border:1px solid var(--border2);color:var(--text3);font-size:.95rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--t);flex-shrink:0}
.theme-btn:hover{border-color:var(--gold-ring);color:var(--gold);background:var(--gold-pale)}

/* ── TOPBAR ── */
.topbar{background:var(--ink1);padding:8px 0;font-size:.66rem;color:var(--text4);border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.topbar-right{display:flex;align-items:center;gap:14px}
.topbar-right a{color:var(--text4);transition:color var(--t)}
.topbar-right a:hover{color:var(--gold)}
.topbar-cta{background:var(--gold-pale);border:1px solid var(--gold-ring);color:var(--gold)!important;padding:3px 11px;border-radius:var(--r);font-weight:700;font-size:.6rem;transition:all var(--t)}
.topbar-cta:hover{background:var(--gold);color:var(--bg)!important}
@media(max-width:600px){.topbar .topbar-left{display:none}}

/* ── HEADER ── */
.site-header{position:sticky;top:0;z-index:900;height:var(--header-h);background:rgba(8,11,20,.92);border-bottom:1px solid var(--border);backdrop-filter:blur(20px);transition:background .3s,box-shadow .3s}
.site-header.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.5)}
[data-theme="light"] .site-header{background:rgba(255,253,247,.94);border-bottom-color:rgba(200,16,46,.1)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:16px}

/* ── LOGO ── */
.site-logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.site-logo:hover{opacity:.88}
.logo-mark{width:42px;height:42px;border-radius:var(--r2);background:var(--thai-red);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.logo-name{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--text);letter-spacing:.01em;line-height:1.1}
.logo-tagline{font-size:.5rem;color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin-top:1px;font-weight:700}

/* ── NAV ── */
.nav-menu{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}
.nav-link{padding:8px 12px;border-radius:var(--r);font-size:.76rem;font-weight:600;color:var(--text3);transition:all var(--t);white-space:nowrap;position:relative}
.nav-link:hover,.nav-link.active{color:var(--text);background:var(--ink3)}
[data-theme="light"] .nav-link:hover,[data-theme="light"] .nav-link.active{background:var(--red-pale);color:var(--thai-red)}
.nav-link.active::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:14px;height:2px;background:var(--gold);border-radius:2px}
.nav-link.cta{background:var(--thai-red);color:#fff!important;border-radius:var(--r2);padding:8px 18px;margin-left:5px}
.nav-link.cta:hover{background:var(--thai-red-lt);transform:translateY(-1px);box-shadow:var(--sh-red)}
.nav-link.cta::after{display:none}
.header-actions{display:flex;align-items:center;gap:8px}

/* ── HAMBURGER ── */
.hamburger{display:none;width:36px;height:36px;border-radius:var(--r);background:var(--ink3);border:1px solid var(--border);flex-direction:column;align-items:center;justify-content:center;gap:5px}
.hamburger span{display:block;width:18px;height:1.5px;background:var(--text2);border-radius:2px;transition:all .3s}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:1020px){.nav-menu{display:none}.hamburger{display:flex}}

/* ── MOBILE MENU ── */
.mobile-menu{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);transform:translateX(100%);transition:transform .4s cubic-bezier(.25,.46,.45,.94);z-index:850;overflow-y:auto;padding:96px 24px 40px;display:flex;flex-direction:column;gap:4px}
.mobile-menu.open{transform:translateX(0)}
.mob-nav-link{padding:14px 16px;border-radius:var(--r2);font-size:.95rem;font-weight:700;color:var(--text2);transition:all var(--t);border:1px solid transparent;display:flex;align-items:center;gap:12px}
.mob-nav-link:hover,.mob-nav-link.active{color:var(--gold);background:var(--ink3);border-color:var(--border2)}
.mob-nav-link.cta{background:var(--thai-red);color:#fff!important;margin-top:8px;justify-content:center}
.mob-nav-link.cta:hover{background:var(--thai-red-lt)}

/* ── FOOTER ── */
.site-footer{background:var(--ink1);border-top:1px solid var(--border)}
.footer-top{padding:64px 0 48px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px}
.footer-brand p{font-size:.8rem;color:var(--text4);line-height:1.82;margin:14px 0 18px;max-width:30ch}
.footer-logo-name{font-family:var(--font-display);font-size:.98rem;font-weight:700;color:var(--text)}
.footer-logo-tag{font-size:.5rem;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;margin-top:1px}
.footer-col h5{font-size:.58rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--text5);margin-bottom:14px}
.footer-col ul{display:flex;flex-direction:column;gap:8px}
.footer-col a{font-size:.8rem;color:var(--text4);transition:color var(--t)}
.footer-col a:hover{color:var(--gold)}
.footer-col span{font-size:.8rem;color:var(--text5)}
.footer-bottom{border-top:1px solid var(--border);padding:16px 0}
.footer-bottom-inner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.68rem;color:var(--text5)}
.footer-legal{display:flex;gap:14px}
.footer-legal a{color:var(--text5);transition:color var(--t)}
.footer-legal a:hover{color:var(--gold)}
.social-row{display:flex;gap:8px;margin-top:6px}
.social-icon{width:36px;height:36px;border-radius:var(--r);background:var(--ink3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;color:var(--text4);transition:all var(--t);cursor:pointer}
.social-icon:hover{background:var(--gold-pale);border-color:var(--gold-ring);color:var(--gold)}
@media(max-width:840px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}.footer-bottom-inner{flex-direction:column;text-align:center}}
