/* =====================================================================
   AHE Sambungrejo — Landing page styles
   Nuansa flyer: ceria, warna biru / hijau lime / pink / oranye, rounded.
   ===================================================================== */

:root{
  --blue:#2477d4;  --blue-d:#1b4572;  --blue-l:#eaf3fd;
  --lime:#8dc63f;  --lime-d:#6aa524;  --lime-l:#eef8db;
  --pink:#ec1e84;  --pink-d:#c4156c;  --pink-l:#ffe9f4;
  --orange:#f7941d;--orange-d:#d97908;--orange-l:#fff0db;
  --purple:#7a2fa8;
  --ink:#1f2d49;   --muted:#637292;   --line:#e7edf6;
  --cream:#fbf8f1; --soft:#f4f9ff;    --white:#fff;

  --disp:'Baloo 2', system-ui, sans-serif;
  --body:'Nunito', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --r:16px; --r-lg:26px; --pill:999px;
  --sh-sm:0 4px 14px rgba(27,69,114,.07);
  --sh:0 14px 36px rgba(27,69,114,.10);
  --sh-lg:0 26px 60px rgba(27,69,114,.16);
  --container:1140px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--body); color:var(--ink);
  background:var(--white); line-height:1.65; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--disp); line-height:1.12; margin:0; color:var(--blue-d); font-weight:800}
p{margin:0}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
ul{margin:0; padding:0; list-style:none}

.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:22px}
section[id]{scroll-margin-top:96px}

/* ----- highlights & kicker ----- */
.hl-blue{color:var(--blue)} .hl-pink{color:var(--pink)} .hl-green{color:var(--lime-d)}
.hl-orange{color:var(--orange-d)}
.kicker{display:inline-block; font-family:var(--disp); font-weight:700; font-size:.82rem;
  letter-spacing:.6px; text-transform:uppercase; padding:6px 14px; border-radius:var(--pill); margin-bottom:14px}
.kicker-lime{background:var(--lime-l); color:var(--lime-d)}
.kicker-pink{background:var(--pink-l); color:var(--pink-d)}
.kicker-blue{background:var(--blue-l); color:var(--blue)}
.kicker-orange{background:var(--orange-l); color:var(--orange-d)}
.kicker-cream{background:#f3e7c1; color:#8a6c1c}

/* ----- buttons ----- */
.btn{display:inline-flex; align-items:center; gap:.5em; justify-content:center;
  font-family:var(--disp); font-weight:700; font-size:1rem; cursor:pointer; border:0;
  padding:13px 24px; border-radius:var(--pill); transition:transform .15s ease, box-shadow .2s ease, background .2s;
  white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-sm{padding:9px 16px; font-size:.92rem}
.btn-block{width:100%; padding:16px; font-size:1.1rem}
.btn-primary{background:linear-gradient(135deg,var(--blue),#3a91ee); color:#fff; box-shadow:0 10px 24px rgba(36,119,212,.35)}
.btn-wa{background:linear-gradient(135deg,#25d366,#16b85a); color:#fff; box-shadow:0 10px 22px rgba(22,184,90,.32)}
.btn-outline{background:transparent; color:var(--blue-d); border:2px solid var(--line); box-shadow:none}
.btn-outline:hover{border-color:var(--blue); color:var(--blue)}
.btn-login{background:#fff; color:var(--blue-d); border:2px solid var(--blue); box-shadow:none}
.btn-login:hover{background:var(--blue); color:#fff; border-color:var(--blue)}

/* ----- brand / logo ----- */
.brand{display:inline-flex; align-items:center; gap:11px}
.brand-img{height:50px; width:auto}
.brand-badge{position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-family:var(--disp); font-weight:800; color:#fff; font-size:1.6rem; line-height:.82;
  background:linear-gradient(140deg,#8e2da8 0%,#c01d80 55%,#e6177e 100%);
  border:3px solid #f7941d; padding:8px 22px 10px; border-radius:var(--pill);
  box-shadow:0 6px 16px rgba(160,30,120,.32)}
.brand-badge small{font-weight:700; font-size:.44rem; letter-spacing:2.5px; color:#ffe1f0; margin-top:2px}
.brand-name{font-family:var(--disp); font-weight:800; font-size:1.18rem; letter-spacing:.3px;
  background:linear-gradient(90deg,#7a2fa8,#d4156c 55%,#f7941d);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent}
.brand-light .brand-name{-webkit-text-fill-color:#fff; color:#fff}
.footer-brand .brand-img{height:58px; background:rgba(255,255,255,.94); padding:8px 14px; border-radius:14px}

/* ----- topbar ----- */
.topbar{background:linear-gradient(90deg,var(--blue-d),var(--blue)); color:#fff; font-size:.9rem; font-weight:600}
.topbar-inner{display:flex; align-items:center; justify-content:center; gap:18px; padding:8px 22px; flex-wrap:wrap}
.topbar strong{color:#ffe14d}
.topbar-count{background:rgba(255,255,255,.16); padding:2px 12px; border-radius:var(--pill); font-weight:700}

/* ----- navbar ----- */
.nav{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:12px 22px}
.nav-links{display:flex; align-items:center; gap:8px}
.nav-links a{font-family:var(--disp); font-weight:600; color:var(--ink); padding:9px 14px; border-radius:var(--pill);
  transition:background .2s, color .2s}
.nav-links a:not(.btn):hover{background:var(--blue-l); color:var(--blue)}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px}
.nav-toggle span{width:24px; height:3px; border-radius:3px; background:var(--blue-d); transition:.25s}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ----- blobs ----- */
.blob{position:absolute; border-radius:48% 52% 56% 44% / 52% 48% 52% 48%; filter:blur(8px); opacity:.5; z-index:0; pointer-events:none}
.blob-1{width:320px; height:320px; background:var(--lime-l); top:-90px; right:-60px}
.blob-2{width:260px; height:260px; background:var(--pink-l); bottom:-80px; left:-70px}
.blob-3{width:180px; height:180px; background:var(--orange-l); top:40%; right:14%}
.blob-4{width:300px; height:300px; background:var(--blue-l); top:-80px; left:-90px; opacity:.7}
.blob-5{width:280px; height:280px; background:rgba(255,255,255,.06); bottom:-120px; right:-60px; filter:none}

/* ----- hero ----- */
.hero{position:relative; background:linear-gradient(180deg,var(--soft),#fff 75%); padding:54px 0 70px; overflow:hidden}
.hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center}
.hero-copy h1{font-size:clamp(2.3rem,5vw,3.5rem); margin:14px 0 16px}
.hero-copy p{font-size:1.12rem; color:var(--muted); max-width:30em}
.pill{display:inline-block; padding:7px 16px; border-radius:var(--pill); font-family:var(--disp); font-weight:700; font-size:.85rem}
.pill-ghost{background:#fff; border:2px solid var(--lime); color:var(--lime-d); letter-spacing:.5px;
  box-shadow:var(--sh-sm)}
.hero-cta{display:flex; gap:12px; flex-wrap:wrap; margin:26px 0 22px}
.hero-stats{display:flex; gap:26px; flex-wrap:wrap}
.hero-stats li{display:flex; flex-direction:column}
.hero-stats strong{font-family:var(--disp); font-size:1.6rem; color:var(--blue)}
.hero-stats span{font-size:.85rem; color:var(--muted)}

/* hero visual / promo */
.hero-visual{position:relative; min-height:360px; display:flex; align-items:center; justify-content:center}
.promo{position:relative; z-index:2; width:min(300px,80%); background:#fff; border-radius:var(--r-lg);
  padding:14px; box-shadow:var(--sh-lg); text-align:center; transform:rotate(-3deg)}
.promo-top{background:var(--blue); color:#fff; border-radius:18px; padding:12px; font-family:var(--disp);
  font-weight:600; font-size:.95rem; line-height:1.2}
.promo-top strong{font-weight:800; font-size:1.05rem}
.promo-mid{background:linear-gradient(135deg,var(--lime),#a6d957); color:var(--blue-d); font-family:var(--disp);
  font-weight:800; font-size:3.6rem; letter-spacing:1px; border-radius:14px; margin:12px 0; padding:6px 0;
  text-shadow:0 2px 0 rgba(255,255,255,.4)}
.promo-bot{font-family:var(--disp); font-weight:700; color:var(--blue-d); letter-spacing:1px; font-size:1rem; padding-bottom:6px}
.float-pill{position:absolute; z-index:3; background:#fff; border-radius:var(--pill); padding:9px 16px;
  font-family:var(--disp); font-weight:700; font-size:.88rem; color:var(--blue-d); box-shadow:var(--sh);
  white-space:nowrap; animation:float 5s ease-in-out infinite}
.fp-1{top:6%; left:-4%; color:var(--lime-d)}
.fp-2{top:24%; right:-6%; animation-delay:.6s; color:var(--pink-d)}
.fp-3{bottom:16%; left:-8%; animation-delay:1.2s; color:var(--orange-d)}
.fp-4{bottom:2%; right:-2%; animation-delay:1.8s; color:var(--blue)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ----- section + head ----- */
.section{position:relative; padding:74px 0; overflow:hidden}
.section-soft{background:var(--cream)}
.head{max-width:680px; margin:0 auto 44px; text-align:center}
.head h2{font-size:clamp(1.8rem,3.6vw,2.5rem); margin-bottom:10px}
.head .lead{color:var(--muted); font-size:1.08rem}

/* ----- keunggulan cards ----- */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px;
  box-shadow:var(--sh-sm); transition:transform .2s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-6px); box-shadow:var(--sh)}
.card-ico{width:62px; height:62px; display:grid; place-items:center; font-size:1.7rem; border-radius:18px;
  background:linear-gradient(135deg,var(--blue-l),#fff); margin-bottom:16px; box-shadow:var(--sh-sm)}
.card h3{font-size:1.22rem; margin-bottom:6px}
.card p{color:var(--muted)}
.card:nth-child(6n+1) .card-ico{background:linear-gradient(135deg,var(--lime-l),#fff)}
.card:nth-child(6n+2) .card-ico{background:linear-gradient(135deg,var(--blue-l),#fff)}
.card:nth-child(6n+3) .card-ico{background:linear-gradient(135deg,var(--pink-l),#fff)}
.card:nth-child(6n+4) .card-ico{background:linear-gradient(135deg,var(--orange-l),#fff)}
.card:nth-child(6n+5) .card-ico{background:linear-gradient(135deg,var(--lime-l),#fff)}
.card:nth-child(6n+6) .card-ico{background:linear-gradient(135deg,var(--pink-l),#fff)}

/* ----- program ----- */
.prog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px}
.prog{position:relative; background:#fff; border-radius:var(--r-lg); padding:30px; box-shadow:var(--sh);
  border-top:6px solid var(--blue); overflow:hidden}
.prog-biru{border-top-color:var(--blue)} .prog-pink{border-top-color:var(--pink)}
.prog-head{display:flex; align-items:center; gap:14px; margin-bottom:14px}
.prog-ico{width:58px; height:58px; display:grid; place-items:center; font-size:1.7rem; border-radius:16px; background:var(--blue-l)}
.prog-pink .prog-ico{background:var(--pink-l)}
.prog-tag{font-family:var(--disp); font-weight:700; font-size:.8rem; letter-spacing:.5px; text-transform:uppercase;
  background:var(--blue-l); color:var(--blue); padding:5px 12px; border-radius:var(--pill)}
.prog-pink .prog-tag{background:var(--pink-l); color:var(--pink-d)}
.prog h3{font-size:1.45rem; margin-bottom:8px}
.prog>p{color:var(--muted); margin-bottom:16px}
.ticks{display:grid; gap:10px; margin-bottom:22px}
.ticks li{position:relative; padding-left:30px; font-weight:600}
.ticks li::before{content:"✓"; position:absolute; left:0; top:0; width:21px; height:21px; border-radius:50%;
  background:var(--lime); color:#fff; font-size:.8rem; font-weight:900; display:grid; place-items:center}
.prog-pink .ticks li::before{background:var(--pink)}

/* ----- mata pelajaran ----- */
.mapel-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.mapel{background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-sm); overflow:hidden; border:1px solid var(--line);
  transition:transform .2s, box-shadow .2s}
.mapel:hover{transform:translateY(-5px); box-shadow:var(--sh)}
.mapel-top{padding:20px; color:#fff}
.mapel-lime .mapel-top{background:linear-gradient(135deg,var(--lime),#a6d957)}
.mapel-biru .mapel-top{background:linear-gradient(135deg,var(--blue),#3a91ee)}
.mapel-orange .mapel-top{background:linear-gradient(135deg,var(--orange),#ffb24d)}
.mapel-pink .mapel-top{background:linear-gradient(135deg,var(--pink),#ff5fa8)}
.mapel-label{font-family:var(--disp); font-weight:800; font-size:1.5rem; display:block}
.mapel-sub{font-size:.85rem; opacity:.92}
.chips{display:flex; flex-wrap:wrap; gap:8px; padding:18px}
.chip{font-family:var(--disp); font-weight:700; font-size:.82rem; background:var(--soft); color:var(--blue-d);
  padding:6px 12px; border-radius:var(--pill); border:1px solid var(--line); cursor:default}
.legend{display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:center; margin-top:26px; color:var(--muted); font-size:.86rem}
.legend b{color:var(--blue-d)}

/* ----- price list ----- */
.price-sub{font-family:var(--disp); font-weight:800; font-size:1.45rem; text-align:center; color:var(--blue-d); margin-bottom:22px}
.tag-new{font-family:var(--disp); font-size:.62em; font-weight:700; background:var(--blue); color:#fff;
  padding:4px 12px; border-radius:var(--pill); vertical-align:middle; margin-left:6px; letter-spacing:.4px}
.price-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:30px; max-width:920px; margin:0 auto}
.price-grid-2{grid-template-columns:1.25fr .75fr; align-items:start}
.price-card{border-radius:24px; padding:26px 28px 22px; box-shadow:9px 9px 0 var(--ink)}
.pc-green{background:#d8f0c5} .pc-pink{background:#fbd6ec} .pc-mint{background:#cdeee2}
.price-head{display:flex; align-items:center; gap:14px; margin-bottom:6px}
.price-head span{font-family:var(--disp); font-weight:800; font-size:1.3rem; color:var(--ink); white-space:nowrap;
  letter-spacing:.3px; text-transform:uppercase}
.price-head i{font-style:normal; color:#ef3e36}
.price-head::after{content:""; flex:1; height:3px; border-radius:3px; background:var(--ink); opacity:.85}
.price-rows li{display:flex; justify-content:space-between; align-items:center; gap:16px; padding:10px 2px;
  border-bottom:1px dashed rgba(31,45,73,.22); color:var(--ink); font-weight:600; text-transform:uppercase;
  font-size:.94rem; letter-spacing:.2px}
.price-rows li:last-child{border-bottom:0}
.price-rows b{font-family:var(--disp); white-space:nowrap; font-size:1.02rem}
.price-cta{background:#fff; border:2px solid var(--line); border-radius:24px; padding:28px; box-shadow:var(--sh);
  display:flex; flex-direction:column; gap:12px; align-items:flex-start}
.price-cta h4{font-size:1.35rem}
.price-cta p{color:var(--muted)}
.price-cta .btn{width:100%}
.price-cta small{color:var(--muted); font-size:.8rem}

/* ----- form ----- */
.section-form{background:linear-gradient(180deg,#fff,var(--soft)); position:relative}
.form-wrap{position:relative; z-index:1; max-width:760px}
.form{display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:34px}
.field{display:flex; flex-direction:column; gap:7px}
.field-full{grid-column:1 / -1}
.field label{font-family:var(--disp); font-weight:600; font-size:.95rem; color:var(--blue-d)}
.req{color:var(--pink)}
.field input,.field select,.field textarea{font-family:var(--body); font-size:1rem; color:var(--ink);
  padding:12px 14px; border:2px solid var(--line); border-radius:14px; background:#fff; transition:border-color .2s, box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0; border-color:var(--blue);
  box-shadow:0 0 0 4px var(--blue-l)}
.field textarea{resize:vertical}
.field .err{color:var(--pink-d); font-weight:700; font-size:.82rem}
.form-actions{gap:12px; align-items:center}
.form-note{color:var(--muted); font-size:.82rem; text-align:center}

/* ----- alerts ----- */
.alert{border-radius:var(--r); padding:18px 20px; margin-bottom:20px; display:flex; flex-wrap:wrap;
  align-items:center; gap:10px; font-weight:600}
.alert-ok{background:var(--lime-l); border:1.5px solid var(--lime); color:var(--lime-d)}
.alert-ok strong{color:var(--blue-d)}
.alert-ok .btn{margin-left:auto}
.alert-err{background:var(--pink-l); border:1.5px solid var(--pink); color:var(--pink-d)}

/* ----- footer ----- */
.footer{position:relative; background:linear-gradient(135deg,var(--blue-d),#143a61); color:#dbe7f5; padding:56px 0 24px; overflow:hidden}
.footer-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:36px}
.footer h4{color:#fff; font-size:1.1rem; margin-bottom:16px}
.footer-brand p{margin-top:14px; max-width:32em; color:#b9cbe0}
.contact li,.flinks li{margin-bottom:11px}
.contact a,.flinks a{transition:color .2s} .contact a:hover,.flinks a:hover{color:#fff}
.contact li{display:flex; align-items:center; gap:10px}
.ci{width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:rgba(255,255,255,.1); font-size:.95rem}
.footer-bottom{position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:14px; margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); font-size:.88rem}

/* ----- floating WhatsApp ----- */
.fab{position:fixed; right:20px; bottom:20px; z-index:60; width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,#25d366,#16b85a); color:#fff; display:grid; place-items:center; font-size:1.5rem;
  box-shadow:0 10px 26px rgba(22,184,90,.45); animation:float 4s ease-in-out infinite}
.fab:hover{transform:scale(1.08)}

/* ----- reveal animation ----- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; transition-delay:var(--d,0ms)}
.reveal.is-visible{opacity:1; transform:none}

/* ===================== RESPONSIVE ===================== */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr; gap:30px}
  .hero-visual{min-height:300px; margin-top:10px}
  .cards{grid-template-columns:repeat(2,1fr)}
  .mapel-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1 / -1}
}
@media (max-width:860px){
  .nav-toggle{display:flex}
  .nav-links{position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:4px;
    background:#fff; padding:14px 18px 20px; border-bottom:1px solid var(--line); box-shadow:var(--sh);
    transform:translateY(-12px); opacity:0; pointer-events:none; transition:.22s}
  .nav.open .nav-links{transform:none; opacity:1; pointer-events:auto}
  .nav-links a{padding:12px 14px}
  .nav-links .btn{margin-top:6px}
}
@media (max-width:720px){
  .float-pill{display:none}
  .promo{transform:none}
  .price-grid-2{grid-template-columns:1fr}
}
@media (max-width:560px){
  .section{padding:56px 0}
  .cards{grid-template-columns:1fr}
  .prog-grid{grid-template-columns:1fr}
  .mapel-grid{grid-template-columns:1fr}
  .form{grid-template-columns:1fr; padding:24px}
  .hero-stats{gap:18px}
  .footer-grid{grid-template-columns:1fr}
  .price-grid,.price-grid-2{grid-template-columns:1fr}
  .price-card{box-shadow:6px 6px 0 var(--ink)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1; transform:none; transition:none}
  .float-pill,.fab{animation:none}
}
