:root{
  --brown-950:#241209;
  --brown-900:#3a2013;
  --brown-800:#4e2c18;
  --brown-700:#6b3d21;
  --brown-500:#8a5530;
  --gold-500:#d9a441;
  --gold-300:#eecb84;
  --cream-50:#faf6ec;
  --cream-100:#f4ecda;
  --cream-200:#ecdfc2;
  --ink:#2a1a10;
  --ok-green:#3f6b3f;
  --err-red:#8a3a3a;
  --line:#d8c6a3;
  --shadow: 0 10px 30px rgba(36,18,9,0.18);
}
.apply-wrap *{box-sizing:border-box;}
.apply-wrap{
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  padding:28px 14px 60px;
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(217,164,65,0.10), transparent 60%),
    radial-gradient(1200px 600px at 90% 0%, rgba(107,61,33,0.10), transparent 55%),
    var(--cream-50);
}
.apply-wrap .sheet{
  max-width:980px;
  margin:0 auto;
  background:var(--cream-50);
  border:2px solid var(--brown-900);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
}
.apply-wrap .sheet:before{
  content:"";
  position:absolute; inset:10px;
  border:1.5px solid var(--gold-500);
  border-radius:12px;
  pointer-events:none;
  opacity:.55;
}

/* HEADER */
.apply-wrap header.form-head{
  background:linear-gradient(160deg, var(--brown-950) 0%, var(--brown-900) 45%, var(--brown-800) 100%);
  color:var(--cream-100);
  padding:30px 22px 26px;
  position:relative;
  overflow:hidden;
}
.apply-wrap header.form-head:after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:8px;
  background:repeating-linear-gradient(90deg, var(--gold-500) 0 18px, var(--brown-700) 18px 36px);
}
.apply-wrap .brand-name{
  text-align:center;
  font-family:'Fraunces', serif;
  font-weight:900;
  font-size:clamp(24px,3.6vw,36px);
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--cream-50);
  line-height:1.15;
  text-shadow:0 3px 10px rgba(0,0,0,.35);
  margin-bottom:22px;
}
.apply-wrap .brand-name .sub{
  display:block;
  font-family:'Work Sans', sans-serif;
  font-weight:700;
  font-size:12px;
  letter-spacing:.42em;
  color:var(--gold-300);
  margin-top:6px;
  text-shadow:none;
}
.apply-wrap .emblem-row{
  display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap;
}
.apply-wrap .emblem{
  width:112px; height:112px;
  border-radius:50%;
  border:4px solid var(--gold-500);
  overflow:hidden;
  flex:0 0 auto;
  box-shadow:0 4px 16px rgba(0,0,0,.4);
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.apply-wrap .emblem:before{
  content:"";
  position:absolute; inset:-4px;
  border-radius:50%;
  border:1px solid rgba(238,203,132,.55);
}
.apply-wrap .emblem img{width:100%;height:100%;object-fit:cover;display:block;}
.apply-wrap .emblem.logo-emblem img{object-fit:contain; padding:8px; background:#fff;}
.apply-wrap .emblem-divider{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--gold-300);
  min-width:120px;
  text-align:center;
}
.apply-wrap .emblem-divider .rule{
  width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold-500) 25%, var(--gold-500) 75%, transparent);
  position:relative;
}
.apply-wrap .emblem-divider .rule:before{
  content:"✦";
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  background:var(--brown-900);
  padding:0 8px;
  font-size:12px;
  color:var(--gold-500);
}
.apply-wrap .emblem-divider .motto-txt{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.03em;
  color:var(--gold-300);
}
.apply-wrap .addr{
  font-size:12.5px;
  color:var(--cream-200);
  margin-top:20px;
  line-height:1.55;
  text-align:center;
}
.apply-wrap .form-banner{text-align:center; margin-top:16px;}
.apply-wrap .form-banner span{
  font-family:'Fraunces', serif;
  font-weight:700;
  font-size:20px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brown-950);
  background:var(--gold-500);
  padding:8px 30px;
  border-radius:999px;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  display:inline-block;
}

/* BODY */
.apply-wrap .body{padding:26px 26px 10px;}
.apply-wrap .top-strip{
  display:flex; gap:20px; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap; margin-bottom:6px;
}
.apply-wrap .motto{
  font-family:'Fraunces', serif; font-style:italic; font-weight:600;
  color:var(--brown-700); font-size:14px;
}
.apply-wrap .photo-box{
  width:118px; height:140px;
  border:2.5px dashed var(--brown-500);
  border-radius:10px;
  background:var(--cream-100);
  display:flex; align-items:center; justify-content:center;
  text-align:center; font-size:11px; color:var(--brown-700);
  cursor:pointer; position:relative; overflow:hidden;
  flex:0 0 auto; font-weight:600; padding:6px; transition:.2s;
}
.apply-wrap .photo-box:hover{background:var(--cream-200);}
.apply-wrap .photo-box img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.apply-wrap .photo-box input{position:absolute;inset:0;opacity:0;cursor:pointer;}

.apply-wrap section.card{
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:14px;
  padding:20px 22px 22px;
  margin:20px 0;
  box-shadow:0 3px 10px rgba(36,18,9,0.06);
}
.apply-wrap .sec-head{
  display:flex; align-items:center; gap:12px;
  margin-bottom:16px; padding-bottom:10px;
  border-bottom:2px solid var(--brown-900);
}
.apply-wrap .sec-num{
  width:34px; height:34px; border-radius:9px;
  background:var(--brown-900); color:var(--gold-300);
  font-family:'Fraunces', serif; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; flex:0 0 auto;
}
.apply-wrap .sec-head h2{
  font-family:'Fraunces', serif; font-weight:800; font-size:19px;
  letter-spacing:.03em; text-transform:uppercase; color:var(--brown-950); margin:0;
}
.apply-wrap .sec-sub{font-size:12px; color:var(--brown-700); margin:-10px 0 14px 46px;}

.apply-wrap .grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:14px 20px;}
.apply-wrap .grid.g3{grid-template-columns:repeat(3, 1fr);}
.apply-wrap .field{display:flex; flex-direction:column; gap:5px;}
.apply-wrap .field.full{grid-column:1/-1;}
.apply-wrap label{
  font-size:11.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; color:var(--brown-800);
}
.apply-wrap input[type=text], .apply-wrap input[type=date], .apply-wrap input[type=tel],
.apply-wrap input[type=email], .apply-wrap input[type=number], .apply-wrap select, .apply-wrap textarea{
  border:none; border-bottom:2px solid var(--line); background:transparent;
  padding:8px 4px; font-family:'Work Sans', sans-serif; font-size:14.5px;
  color:var(--ink); outline:none; transition:.18s; width:100%;
}
.apply-wrap input:focus, .apply-wrap select:focus, .apply-wrap textarea:focus{
  border-bottom-color:var(--gold-500); background:var(--cream-100);
}
.apply-wrap textarea{resize:vertical; min-height:44px; border:2px solid var(--line); border-radius:8px; padding:8px;}
.apply-wrap textarea:focus{border-color:var(--gold-500);}

.apply-wrap .choice-row{display:flex; gap:14px; align-items:center;}
.apply-wrap .choice-row .tag{
  font-family:'Fraunces', serif; font-weight:800; color:#fff; background:var(--brown-700);
  border-radius:8px; width:30px; height:30px; display:flex;
  align-items:center; justify-content:center; flex:0 0 auto; font-size:14px;
}

.apply-wrap .course-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(210px,1fr)); gap:14px;
}
.apply-wrap .course-card{
  border:2px solid var(--line); border-radius:12px; padding:13px 14px;
  background:var(--cream-50); transition:.18s;
}
.apply-wrap .course-card:hover{border-color:var(--gold-500); background:var(--cream-100);}
.apply-wrap .course-top{display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.apply-wrap .course-top svg{width:26px;height:26px; flex:0 0 auto; color:var(--brown-800);}
.apply-wrap .course-top .cname{font-weight:700; font-size:14px; color:var(--brown-950);}
.apply-wrap .subopts{display:flex; gap:14px; flex-wrap:wrap; margin-left:36px;}
.apply-wrap .sub-hint{font-size:10.5px; font-style:italic; color:var(--brown-500); margin:2px 0 8px 36px;}
.apply-wrap .chk{display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--brown-800); cursor:pointer;}
.apply-wrap .chk input{accent-color:var(--brown-700); width:15px; height:15px; cursor:pointer;}
.apply-wrap .chk-main{display:flex; align-items:center; gap:6px;}
.apply-wrap .chk-main input{accent-color:var(--gold-500); width:17px; height:17px; cursor:pointer;}

.apply-wrap .duration-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:6px;}
.apply-wrap .dur-fixed{
  border:2px solid var(--brown-900); background:var(--brown-900); color:var(--gold-300);
  border-radius:999px; padding:10px 22px; font-weight:800; font-size:13.5px;
  letter-spacing:.03em; display:inline-flex; align-items:center; gap:8px;
}
.apply-wrap .dur-fixed:before{content:"✓"; font-size:13px;}
.apply-wrap .req-note{
  font-size:12px; color:var(--brown-700); background:var(--cream-100);
  border-left:3px solid var(--gold-500); padding:10px 12px; border-radius:6px; margin-top:14px; line-height:1.6;
}

.apply-wrap .med-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px 16px;}
.apply-wrap .med-item{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--brown-900);}
.apply-wrap .med-item input{width:16px;height:16px; accent-color:var(--brown-700);}

/* Payment / account details section */
.apply-wrap .account-card{
  background:var(--brown-950);
  color:var(--cream-100);
}
.apply-wrap .account-card .sec-head{border-bottom-color:var(--gold-500);}
.apply-wrap .account-card .sec-num{background:var(--gold-500); color:var(--brown-950);}
.apply-wrap .account-box{
  display:flex; flex-wrap:wrap; gap:20px 34px;
  background:rgba(255,255,255,.06);
  border:1.5px solid var(--gold-500);
  border-radius:12px;
  padding:16px 20px;
  margin-bottom:18px;
}
.apply-wrap .account-item{display:flex; flex-direction:column; gap:4px;}
.apply-wrap .account-item .a-label{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-300); font-weight:700;
}
.apply-wrap .account-item .a-value{
  font-family:'Fraunces', serif; font-weight:700; font-size:17px; color:#fff;
}
.apply-wrap .receipt-upload{
  border:2.5px dashed var(--gold-500);
  border-radius:10px;
  padding:16px;
  background:rgba(255,255,255,.04);
  display:flex; flex-direction:column; gap:8px;
}
.apply-wrap .receipt-upload label{color:var(--gold-300);}
.apply-wrap .receipt-upload input[type=file]{
  color:var(--cream-100);
  font-size:13px;
}
.apply-wrap .receipt-note{font-size:11.5px; color:var(--cream-200); line-height:1.5;}

.apply-wrap .declare{
  display:flex; gap:10px; align-items:flex-start;
  background:var(--cream-100);
  border:1.5px dashed var(--brown-500);
  border-radius:10px;
  padding:14px 16px; margin:22px 0;
  font-size:13px; color:var(--brown-900); line-height:1.6;
}
.apply-wrap .declare input{margin-top:3px; width:16px; height:16px; accent-color:var(--brown-700); flex:0 0 auto;}

.apply-wrap .actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; padding:8px 26px 30px;}
.apply-wrap button.btn{
  font-family:'Work Sans', sans-serif; font-weight:700; font-size:14px;
  letter-spacing:.03em; padding:13px 26px; border-radius:999px;
  border:2px solid var(--brown-900); cursor:pointer; transition:.18s;
}
.apply-wrap .btn-primary{background:var(--brown-900); color:var(--gold-300);}
.apply-wrap .btn-primary:hover{background:var(--brown-950);}
.apply-wrap .btn-ghost{background:transparent; color:var(--brown-900);}
.apply-wrap .btn-ghost:hover{background:var(--cream-200);}

.apply-wrap .form-message{
  text-align:center; font-size:14px; font-weight:700;
  padding:14px 18px; border-radius:10px; margin:20px 26px;
}
.apply-wrap .form-message.success{background:#e5f1e5; color:var(--ok-green); border:1.5px solid var(--ok-green);}

/* Success modal (registration confirmation) */
.success-modal-overlay{
  position:fixed; inset:0; background:rgba(36,18,9,.72);
  display:flex; align-items:center; justify-content:center;
  z-index:9999; padding:20px;
}
.success-modal{
  background:var(--cream-50); border:2px solid var(--gold-500); border-radius:16px;
  max-width:420px; width:100%; padding:34px 28px 28px; text-align:center;
  box-shadow:0 20px 60px rgba(36,18,9,.45);
  font-family:'Work Sans', sans-serif; color:var(--ink);
  animation:successPop .25s ease-out;
}
@keyframes successPop{ from{ transform:scale(.9); opacity:0; } to{ transform:scale(1); opacity:1; } }
.success-modal .s-icon{
  width:64px; height:64px; border-radius:50%; background:var(--ok-green);
  color:#fff; font-size:34px; line-height:64px; margin:0 auto 16px; font-weight:700;
}
.success-modal h3{
  margin:0 0 10px; font-family:'Fraunces', serif; color:var(--brown-900); font-size:22px;
}
.success-modal p{ margin:0 0 22px; color:var(--brown-700); font-size:14.5px; line-height:1.5; }
.success-modal button{
  background:var(--brown-800); color:#fff; border:none; border-radius:8px;
  padding:11px 26px; font-size:14px; font-weight:600; cursor:pointer; letter-spacing:.02em;
}
.success-modal button:hover{ background:var(--brown-900); }
.success-modal .s-note{ margin-top:14px; font-size:12px; color:var(--brown-500); }
.apply-wrap .form-message.error{background:#f6e6e6; color:var(--err-red); border:1.5px solid var(--err-red);}

.apply-wrap footer.foot{
  text-align:center; padding:16px; font-size:11px; color:var(--brown-700);
  border-top:1px solid var(--line);
}

@media (max-width:640px){
  .apply-wrap .grid, .apply-wrap .grid.g3{grid-template-columns:1fr;}
  .apply-wrap .top-strip{flex-direction:column-reverse; align-items:center;}
  .apply-wrap .emblem{width:78px; height:78px;}
  .apply-wrap .emblem-divider{min-width:80px;}
}