/*
Style khusus Admission > Apply: hero accent gradient, 3-step overview +
dark "open" card, dan multi-step application form (progress bar, panel
switch, review summary).
*/

.jfs-home .page-hero.aa-hero{position:relative; overflow:hidden;}
.jfs-home .page-hero.aa-hero::before,
.jfs-home .page-hero.aa-hero::after{content:''; position:absolute; border-radius:50%; filter:blur(55px); opacity:.35; z-index:0; pointer-events:none; animation:jfs-float 9s ease-in-out infinite;}
.jfs-home .page-hero.aa-hero::before{width:220px; height:220px; background:var(--green); top:-20px; left:8%;}
.jfs-home .page-hero.aa-hero::after{width:200px; height:200px; background:var(--blue); top:10px; right:10%; animation-delay:-4.5s;}
.jfs-home .page-hero.aa-hero .container{position:relative; z-index:1;}
.jfs-home .aa-hero-shell{background:transparent; padding:0; text-align:center;}
.jfs-home .aa-hero-shell h1{font-size:42px;}
.jfs-home .aa-hero-shell .accent{color:var(--green);}
.jfs-home .aa-hero-shell .eyebrow{animation:jfs-badge-pulse 2.6s ease-in-out infinite;}

.jfs-home .aa-overview-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:32px; align-items:start;}
.jfs-home .aa-steps{display:flex; flex-direction:column; gap:16px;}
.jfs-home .aa-step-shell{display:flex;}
.jfs-home .aa-step-card{position:relative; display:flex; gap:0; align-items:flex-start; padding:20px 24px; width:100%;}


.jfs-home .aa-step-card h3{font-size:15.5px; margin-bottom:4px;}
.jfs-home .aa-step-card p{font-size:13px; color:var(--n500); line-height:1.55;}

.jfs-home .aa-open-card{background:var(--navy); color:var(--n300); border-radius:var(--radius-lg); padding:32px; position:relative; overflow:hidden;}
.jfs-home .aa-open-card::before{content:''; position:absolute; width:240px; height:240px; border-radius:50%; background:rgba(37,99,235,.2); top:-90px; right:-60px; filter:blur(20px); animation:jfs-float 8s ease-in-out infinite;}
.jfs-home .aa-open-card > *{position:relative; z-index:1;}
.jfs-home .aa-open-card h2{color:#fff; font-size:22px; margin-bottom:10px; border-bottom:2px solid var(--blue); padding-bottom:12px; display:inline-block;}
.jfs-home .aa-open-card p{font-size:13.5px; margin-bottom:18px; line-height:1.6;}
.jfs-home .aa-open-list{margin-bottom:24px; display:flex; flex-direction:column; gap:10px; list-style:none; padding:0;}
.jfs-home .aa-open-list li{font-size:13.5px; display:flex; align-items:center; gap:8px;}
.jfs-home .aa-open-list li .jfs-icon{width:16px; height:16px; color:#8FE3B0; flex-shrink:0;}
.jfs-home .aa-open-buttons{display:flex; flex-direction:column; gap:12px;}
.jfs-home .aa-btn-outline{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.3); justify-content:center;}
.jfs-home .aa-btn-outline:hover{border-color:#fff; background:rgba(255,255,255,.08); transform:translateY(-2px);}

/* FORM SECTION */
.jfs-home .aa-form-section{background:var(--n50);}
.jfs-home .aa-alert{max-width:760px; margin:0 auto 28px; border-radius:14px; padding:16px 22px; font-size:14px; display:flex; align-items:flex-start; gap:12px; line-height:1.6;}
.jfs-home .aa-alert .jfs-icon{width:19px; height:19px; flex-shrink:0; margin-top:2px;}
.jfs-home .aa-alert p{margin:0;}
.jfs-home .aa-alert-success{background:var(--green-light); color:var(--green-dark); border:1px solid rgba(22,163,74,.25);}
/* #B91C1C di atas #FEF2F2 = 6.4:1, lolos WCAG AA untuk body text. */
.jfs-home .aa-alert-error{background:#FEF2F2; color:#B91C1C; border:1px solid rgba(185,28,28,.2);}

.jfs-home .aa-form-wrapper-shell{max-width:760px; margin:0 auto;}
.jfs-home .aa-form-shell{padding:40px 44px;}

.jfs-home .aa-progress{margin-bottom:28px;}
.jfs-home .aa-progress-bar{height:6px; background:var(--n200); border-radius:999px; overflow:hidden; margin-bottom:18px;}
/* progress di-drive transform:scaleX, bukan width — menghindari reflow
   tiap kali step berpindah (animasi width memaksa layout pass). */
.jfs-home .aa-progress-fill{height:100%; width:100%; background:var(--gradient); border-radius:999px; transform:scaleX(.3333); transform-origin:left center; transition:transform .45s var(--ease-out);}
.jfs-home .aa-progress-steps{display:flex; justify-content:space-between; font-size:12px; font-weight:600; color:var(--n500);}
.jfs-home .aa-progress-steps li{display:flex; flex-direction:column; align-items:center; gap:6px; flex:1;}
.jfs-home .aa-progress-steps span{width:26px; height:26px; border-radius:50%; background:var(--n200); color:var(--n500); display:flex; align-items:center; justify-content:center; font-size:12px; transition:.25s ease;}
.jfs-home .aa-progress-steps li.active span,
.jfs-home .aa-progress-steps li.done span{background:var(--green); color:#fff;}
.jfs-home .aa-progress-steps li.active{color:var(--navy);}

.jfs-home .aa-step-panel{display:none; animation:jfs-fade-in .3s ease;}
.jfs-home .aa-step-panel.active{display:block;}
@keyframes jfs-fade-in{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}

.jfs-home .aa-field-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.jfs-home .aa-field{display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:var(--navy);}
.jfs-home .aa-field-wide{grid-column:1 / -1;}
.jfs-home .aa-field input,
.jfs-home .aa-field select,
.jfs-home .aa-field textarea{font:inherit; font-weight:400; padding:12px 14px; min-height:44px; border-radius:10px; border:1.5px solid var(--n200); background:#fff; color:var(--n700); transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);}
.jfs-home .aa-field textarea{min-height:96px; resize:vertical;}
/* focus ring: border + halo, bukan outline:none polos — state fokus harus
   tetap terlihat jelas untuk pengguna keyboard (WCAG 2.4.7). */
.jfs-home .aa-field input:focus-visible,
.jfs-home .aa-field select:focus-visible,
.jfs-home .aa-field textarea:focus-visible{outline:none; border-color:var(--green); box-shadow:0 0 0 4px rgba(22,163,74,.16);}
/* field yang sudah disentuh lalu invalid ditandai merah; sebelum disentuh
   tidak, supaya form tidak terlihat "error" saat baru dibuka. */
.jfs-home .aa-field input:user-invalid,
.jfs-home .aa-field select:user-invalid,
.jfs-home .aa-field textarea:user-invalid{border-color:#DC2626;}
.jfs-home .aa-hint{font-size:12.5px; color:var(--n500); margin-top:14px;}

.jfs-home .aa-step-actions{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px;}
/* tombol Back memakai ikon panah yang sama, diputar — satu keluarga ikon,
   tidak menambah glyph baru. */
.jfs-home .aa-step-actions .icon-back{transform:rotate(180deg);}
.jfs-home .aa-prev:hover .icon-back,
.jfs-home .aa-prev:focus-visible .icon-back{transform:rotate(180deg) translateX(3px);}

.jfs-home .aa-review{display:flex; flex-direction:column; gap:10px; margin-bottom:22px; font-size:13.5px;}
.jfs-home .aa-review-row{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px dashed var(--n200);}
.jfs-home .aa-review-row strong{color:var(--navy); flex-shrink:0;}
.jfs-home .aa-review-row span{color:var(--n500); text-align:right;}
.jfs-home .aa-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.jfs-home .aa-consent{display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--n500); margin-bottom:8px;}
.jfs-home .aa-consent input{margin-top:3px;}

@media(max-width:900px){
  .jfs-home .aa-overview-grid{grid-template-columns:1fr;}
  .jfs-home .aa-form-shell{padding:28px 22px;}
  .jfs-home .aa-field-grid{grid-template-columns:1fr;}
  .jfs-home .aa-hero-shell h1{font-size:30px;}
  .jfs-home .aa-progress-steps li span{width:22px; height:22px;}
}

/* ritme spasi disamakan dengan landing/About */
.jfs-home .aa-form-section{padding:68px 0}
@media(max-width:900px){.jfs-home .aa-form-section{padding:56px 0}}
@media(max-width:600px){.jfs-home .aa-form-section{padding:48px 0}.jfs-home .aa-open-card{padding:26px 22px}}
