/* Beranda TheDreamFactory: bento lavender + tosca */
.hp{color:var(--ink);--acc:#8468F0}
.hp h1,.hp h2,.hp h3,.hp h4{font-family:inherit;font-weight:700;letter-spacing:-.025em;color:var(--ink)}
.hp .acc{color:var(--acc)}
.hp-sec{padding:56px 0 8px}
.hp-sec h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.12;margin:0}
.hp-lead{color:var(--muted);font-size:1rem;max-width:34rem}

/* hero */
.hp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:44px;align-items:start}
.hp-copy h1{font-size:clamp(2.5rem,4.8vw,4rem);line-height:1.04;margin:.2rem 0 1.2rem}
.hp-copy h1 .acc{display:block}
.hp-cta{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0 2.4rem}
.hp-badge{width:104px;height:104px;margin-left:auto;color:var(--ink);animation:hpSpin 28s linear infinite}
.hp-badge text{font-size:11.5px;font-weight:600;letter-spacing:.14em;fill:var(--ink);text-transform:lowercase}
@keyframes hpSpin{to{transform:rotate(360deg)}}
.hp-badge path:last-child{transform-origin:60px 60px;animation:hpSpin 28s linear infinite reverse}
.hp-cats h6{font-family:inherit;font-weight:600;font-size:1.15rem;display:inline-block;padding-bottom:.55rem;margin:0 0 1rem;border-bottom:2px solid var(--ink);min-width:70%}
.hp-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.hp-chips a{border:1.2px solid var(--ink);border-radius:999px;padding:.28rem .9rem;font-size:.8rem;color:var(--ink);text-decoration:none;background:#fff}
.hp-chips a:hover{background:var(--lav);border-color:var(--lav)}

/* bento */
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.tile{border-radius:30px;padding:1.5rem;position:relative;overflow:hidden}
.tile h3{font-size:1.35rem;line-height:1.25;margin:0 0 1rem}
.tile h4{font-size:1.05rem;margin:0 0 .2rem}
.t-wide{grid-column:span 4;background:var(--lav);min-height:210px;display:flex;align-items:center;justify-content:center;text-align:center}
.t-wide .wave{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.t-wide .t-body{position:relative;max-width:15rem}
.t-side{grid-column:span 2;background:var(--tosca-l);display:flex;align-items:center;text-align:center;justify-content:center}
.t-sub{font-size:.8rem;color:#2d4a45;margin-bottom:.8rem}
.avs{display:flex;justify-content:center;margin-bottom:1rem}
.avs .avatar{margin-left:-8px;border:2px solid var(--tosca-l)}.avs .avatar:first-child{margin-left:0}
.t-stat{grid-column:span 3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:138px}
.t-stat b{font-size:clamp(2rem,3.4vw,2.9rem);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.t-stat span{font-size:.82rem;color:#3c3752}
.t-tosca{background:var(--tosca-l)}.t-lav{background:var(--lav)}
.t-photo{grid-column:span 6;height:236px;padding:0;overflow:visible;background:none}
.ph-half{position:absolute;left:0;right:0;overflow:hidden;background:var(--lav)}
.ph-top{top:0;height:calc(50% - 4px);border-radius:30px 30px 44px 44px}
.ph-bot{bottom:0;height:calc(50% - 4px);border-radius:44px 44px 30px 30px}
.ph-half img{position:absolute;left:0;width:100%;height:calc(200% + 8px);object-fit:cover;object-position:center 30%}
.ph-top img{top:0}.ph-bot img{bottom:0}
.join{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1.5px solid #fff;border-radius:999px;color:#fff!important;padding:.6rem 2.4rem;font-weight:600;text-decoration:none!important;background:rgba(31,27,46,.28);white-space:nowrap}
.join:hover{background:rgba(31,27,46,.5)}

/* kursus populer */
.hp-pop{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2.4fr);gap:34px;align-items:stretch}
.pop-copy p{color:var(--muted);margin:1rem 0 1.4rem;font-size:.95rem}
.pop-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pc{position:relative;display:flex;flex-direction:column;min-height:360px;padding:1.3rem;border-radius:30px;overflow:hidden;text-decoration:none!important;color:var(--ink)!important;transition:transform .2s,box-shadow .2s}
.pc:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(31,27,46,.12)}
.pc-0{background:var(--lav);border-top-left-radius:80px}
.pc-1{background:#2b2640;color:#fff!important}
.pc-2{background:var(--tosca-l);border-top-right-radius:80px}
.pc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.pc-1:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,38,64,.35),rgba(43,38,64,.88))}
.pc>span{position:relative;z-index:1}
.pc-top{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:600;margin-bottom:auto}
.pc-stu,.pc-price{background:rgba(255,255,255,.7);border-radius:999px;padding:.25rem .8rem;color:var(--ink)}
.pc-body{display:block;margin-top:2.2rem}
.pc-body b{display:block;font-size:1.3rem;line-height:1.2;letter-spacing:-.02em;margin-bottom:.5rem}
.pc-body small{display:block;font-size:.84rem;line-height:1.5;opacity:.85}
.pc-meta{display:block;font-size:.76rem;opacity:.8;margin-top:1rem}

/* pratinjau dashboard */
.hp-dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.hp-feat{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;gap:1rem}
.hp-feat li{display:flex;gap:.9rem;align-items:flex-start;font-size:.88rem;color:var(--muted)}
.hp-feat li i{flex:none;width:42px;height:42px;border-radius:14px;background:var(--tosca-l);color:var(--tosca-d);display:flex;align-items:center;justify-content:center;font-size:1.15rem}
.hp-feat li:nth-child(even) i{background:var(--lav);color:var(--pri-d)}
.hp-feat b{display:block;color:var(--ink);font-size:.95rem}
.mock{position:relative;background:#fff;border:1px solid var(--line);border-radius:30px;padding:1.6rem;box-shadow:0 30px 70px rgba(107,78,230,.15)}
.mock-tag{position:absolute;right:16px;top:-12px;background:var(--ink);color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .8rem;border-radius:999px}
.mock-head{display:flex;gap:1.2rem;align-items:center;margin-bottom:1.2rem}
.ring{flex:none;width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--pri) 0 65%,var(--lav) 0);display:flex;align-items:center;justify-content:center}
.ring>div{width:86px;height:86px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.ring b{font-size:1.5rem;letter-spacing:-.02em}.ring small{font-size:.68rem;color:var(--muted)}
.mock-mods{list-style:none;padding:0;margin:0 0 1.2rem}
.mock-mods li{display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem;border-radius:12px;font-size:.86rem;margin-bottom:.35rem;background:var(--pri-xl)}
.mock-mods .ok i{color:var(--tosca)}.mock-mods .now{background:var(--lav);font-weight:600}.mock-mods .now i{color:var(--pri)}.mock-mods .lock{color:#9b97b0}
.mock-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.mock-stats div{background:var(--tosca-xl);border-radius:16px;padding:.7rem;text-align:center}
.mock-stats b{display:block;font-size:1.25rem;letter-spacing:-.02em}.mock-stats small{font-size:.7rem;color:var(--muted)}

/* pemateri */
.insts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ic{text-align:left}
.ic-ph{aspect-ratio:1/1.05;background:var(--lav);display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700;color:var(--pri-d);overflow:hidden;margin-bottom:.9rem}
.ic-0 .ic-ph{border-radius:90px 28px 28px 28px}.ic-1 .ic-ph{border-radius:28px 90px 28px 28px;background:var(--tosca-l);color:var(--tosca-d)}
.ic-ph img{width:100%;height:100%;object-fit:cover}
.ic b{display:block;font-size:1.02rem;letter-spacing:-.01em}.ic small{display:block;color:var(--muted);font-size:.82rem}.ic-n{display:inline-block;margin-top:.5rem;font-size:.74rem;font-weight:600;background:var(--tosca-xl);color:var(--tosca-d);border-radius:999px;padding:.15rem .7rem}

/* CTA */
.cta2{border-radius:34px;background:linear-gradient(115deg,var(--lav) 0%,#C6D4F7 50%,var(--tosca-l) 100%);padding:2.6rem;display:flex;flex-wrap:wrap;gap:2rem;align-items:center;justify-content:space-between}
.cta2 h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .4rem}.cta2 p{margin:0 0 1.2rem;max-width:26rem;color:#3c3752}
.cta2-st{display:flex;gap:2.4rem}.cta2-st b{display:block;font-size:2.2rem;letter-spacing:-.03em;line-height:1}.cta2-st span{font-size:.82rem;color:#3c3752}

/* responsif */
@media(max-width:991px){
  .hp-hero,.hp-pop,.hp-dash{grid-template-columns:1fr}
  .hp-badge{margin-left:0}
  .insts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
    .hp-sec{padding-top:40px}
  .t-wide,.t-side{grid-column:span 6}.t-photo{height:200px}
  .pop-cards{grid-template-columns:1fr}.pc{min-height:280px}
  .cta2{padding:1.8rem}.cta2-st{gap:1.4rem}
}
@media(max-width:520px){.hp-copy h1{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){.hp-badge,.hp-badge path:last-child{animation:none}.pc{transition:none}}

/* FAQ */
.hp-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:40px;align-items:start}
.faq-list details{background:var(--pri-xl);border-radius:22px;padding:1rem 1.3rem;margin-bottom:.7rem}
.faq-list details[open]{background:var(--tosca-xl)}
.faq-list summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem;letter-spacing:-.01em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";font-size:1.4rem;line-height:1;color:var(--pri)}
.faq-list details[open] summary:after{content:"\2212"}
.faq-list p{margin:.7rem 0 .1rem;color:#4a465c;font-size:.92rem;line-height:1.7}
@media(max-width:991px){.hp-faq{grid-template-columns:1fr;gap:20px}}
