/* Yeshivas Mevakshei Torah — application & payment flow (used by admissions.html) */

/* ---------- Preview notice (removed when payments and email are connected) ---------- */
.preview-note{background:#FFF6DB;border-bottom:1px solid #E6D08A;color:#6B5310;font-size:12.5px;letter-spacing:.03em;text-align:center;padding:9px 16px}
.preview-note b{font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin-right:6px}

/* ---------- Intro + requirements ---------- */
.apply-intro{padding:96px 0 84px}
.req-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);max-width:1060px;margin:0 auto}
.req{background:var(--paper);padding:40px 24px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.req h3{font-size:25px;line-height:1.2;text-wrap:balance}
.req-icon{width:54px;height:54px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;flex:none}
.req-icon svg{width:23px;height:23px;stroke:var(--gold);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.req .amt{display:block;margin-top:8px;font-size:12px;font-weight:600;letter-spacing:.18em;color:var(--gold-dark)}

/* ---------- Choose how to apply ---------- */
.choose{background:var(--cream);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:96px 0 100px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:960px;margin:0 auto}
.choice{background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--gold);padding:44px 40px 40px;text-align:left;display:flex;flex-direction:column;box-shadow:0 18px 40px -32px rgba(11,48,62,.4)}
.choice h3{font-size:34px;margin:10px 0 14px}
.choice p{font-family:var(--text-serif);font-size:19px;line-height:1.6;color:var(--ink-mid);margin-bottom:18px}
.choice .get-pdf{margin-top:auto;padding-top:14px;text-align:center}
.choice .actions{margin-top:auto;padding-top:22px;justify-content:center}
.choice .get-pdf + .actions{margin-top:0;padding-top:18px}
.choice .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.choice .btn{cursor:pointer;font-family:var(--sans)}
.text-link{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid var(--gold);padding-bottom:3px;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;font-family:var(--sans);transition:color .2s}
.text-link:hover{color:var(--gold-dark)}
.other-route{max-width:760px;margin:44px auto 0;text-align:center;font-family:var(--text-serif);font-size:18.5px;line-height:1.65;color:var(--ink-mid)}
.other-route a,.inline-link{color:var(--navy);border-bottom:1px solid var(--gold)}
.other-route a:hover,.inline-link:hover{color:var(--gold-dark)}

/* ---------- Portal shell ---------- */
.portal{background:var(--cream);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:72px 0 110px;scroll-margin-top:70px}
.portal[hidden],.choose[hidden],.panel[hidden],[hidden]{display:none !important}

/* Stepper */
.stepper{max-width:760px;margin:0 auto 22px;position:relative}
.stepper ol{list-style:none;display:grid;grid-template-columns:repeat(3,1fr)}
.stepper::before{content:"";position:absolute;top:21px;left:16.667%;right:16.667%;height:1px;background:#DCCFAE}
.stepper .fill{position:absolute;top:21px;left:16.667%;height:1px;background:var(--navy);width:0;transition:width .5s ease}
.stepper li{text-align:center;position:relative}
.stepper .dot{width:43px;height:43px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:var(--cream);border:1px solid #CDBF9C;font-family:var(--serif);font-size:21px;font-weight:600;color:#A2957A;position:relative;transition:all .3s}
.stepper li[data-state="active"] .dot{border-color:var(--gold);color:var(--navy);box-shadow:0 0 0 5px rgba(197,159,76,.18);background:var(--paper)}
.stepper li[data-state="done"] .dot{background:var(--navy);border-color:var(--navy);color:#fff}
.stepper .dot svg{width:18px;height:18px}
.stepper b{display:block;font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mid)}
.stepper li[data-state="active"] b,.stepper li[data-state="done"] b{color:var(--navy)}
.stepper small{display:block;font-family:var(--text-serif);font-size:16px;color:var(--ink-mid);margin-top:3px}
.step-warning{max-width:760px;margin:0 auto 44px;text-align:center;font-family:var(--text-serif);font-style:italic;font-size:17.5px;color:var(--ink-mid)}

/* Panels */
.panel{max-width:1060px;margin:0 auto}
.panel-grid{display:grid;grid-template-columns:1fr 330px;gap:28px;align-items:start}
.card-box{background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--gold);padding:44px 44px 40px;box-shadow:0 18px 40px -32px rgba(11,48,62,.4)}
.card-box.narrow{max-width:760px;margin:0 auto}
.panel-head{margin-bottom:30px}
.panel-head h2{font-size:clamp(30px,3.4vw,40px);margin:10px 0 12px}
.panel-head p{font-family:var(--text-serif);font-size:19px;line-height:1.6;color:var(--ink-mid)}
.panel-head p strong{color:var(--navy);font-weight:500}
.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:34px;padding-top:28px;border-top:1px solid var(--rule)}
.panel-foot .btn{cursor:pointer;font-family:var(--sans)}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
button.btn-ghost{background:transparent}
button.btn-ghost:hover{background:var(--gold)}
.portal.is-done .stepper{margin-bottom:52px}

/* JotForm frame */
.jf-wrap{border:1px solid var(--rule);background:#fff}
.jf-bar{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--rule);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-mid);background:var(--paper)}
.jf-bar svg{width:14px;height:14px;stroke:var(--gold-dark);fill:none;stroke-width:1.8}
#jf{display:block;width:100%;height:900px;border:0}
.jf-after{margin-top:26px;font-family:var(--text-serif);font-size:18px;color:var(--ink-mid);text-align:center}
.jf-after .btn{margin-top:16px}
.ok-text{color:#2E6B4A;font-weight:500}

/* ---------- Form fields ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}
.field{display:flex;flex-direction:column}
.field.full{grid-column:1/-1}
.group-head{grid-column:1/-1;font-family:var(--serif);font-size:21px;font-weight:600;color:var(--navy);padding-top:18px;margin-bottom:-6px;border-top:1px solid var(--rule)}
.field label,.label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.field label i,.label i{font-style:normal;color:var(--gold-dark);margin-left:3px}
.field label em,.label em{font-style:normal;font-weight:500;letter-spacing:.08em;color:var(--ink-mid);text-transform:none;font-size:12px;margin-left:6px}
.field input{font-family:var(--sans);font-size:15.5px;color:var(--ink);background:#fff;border:1px solid #D6CBAF;padding:13px 14px;border-radius:0;outline:0;transition:border-color .2s,box-shadow .2s;width:100%}
.field input::placeholder{color:#A9A592}
.field select{font-family:var(--sans);font-size:15.5px;color:var(--ink);background:#fff;border:1px solid #D6CBAF;padding:13px 14px;border-radius:0;outline:0;width:100%}
.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,159,76,.2)}
.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,159,76,.2)}
.field .msg{display:none;font-size:12.5px;color:#A33A2B;margin-top:6px}
.field.err input,.field.err select,.field.err .ifield-box,.field.err .drop{border-color:#B8493A}
.field.err .msg{display:block}
.hint{font-family:var(--text-serif);font-size:16.5px;color:var(--ink-mid);margin-top:6px}

/* Secure card field (Sola iFields mounts here) */
.ifield-box{display:flex;align-items:center;gap:10px;border:1px solid #D6CBAF;background:#fff;padding:0 14px;height:48px;color:#A9A592;font-size:15.5px;letter-spacing:.08em}
.ifield-box svg{width:15px;height:15px;stroke:var(--gold-dark);fill:none;stroke-width:1.8;flex:none}
.ifield-box iframe{border:0;width:100%;height:46px}
/* "Secure payment processed by Sola Payments" */
.secure-pay{display:flex;flex-direction:column;gap:8px;margin-top:22px}
.panel-foot.secure-foot{flex-direction:column;align-items:stretch;gap:22px}   /* the secure line, then the button on the right */
.secure-foot .btn{align-self:flex-end}
.secure-foot .secure-pay{margin-top:0}
.secure-pay[hidden]{display:none}
.zelle-simple{font-family:var(--text-serif);font-size:18px;line-height:1.55;color:var(--ink);margin:0 0 14px}
.agree{font-size:12px;color:var(--ink-mid)}
.secure-foot .agree{text-align:right;margin-top:-8px}
.agree a{color:var(--navy);border-bottom:1px solid var(--gold)}
.sp-line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-mid)}
.sp-line svg{width:15px;height:15px;stroke:var(--gold-dark);fill:none;stroke-width:1.8;flex:none}
.sp-line b{color:var(--navy);font-weight:600}
.sp-note{font-size:12px;line-height:1.5;color:var(--ink-mid);max-width:420px}
@media (max-width:600px){.panel-foot.secure-foot{flex-direction:column}.secure-foot .secure-pay{align-items:center;text-align:center}.secure-foot .sp-line{display:block}.secure-foot .sp-line svg{display:inline-block;vertical-align:-2px;margin-right:6px}.secure-foot .btn{align-self:stretch;justify-content:center}}

/* File upload */
.drop{position:relative;border:1px dashed #C9BB93;background:#fff;padding:22px 20px;text-align:center;transition:border-color .2s,background .2s;cursor:pointer}
.drop:hover,.drop.over{border-color:var(--gold);background:#FFFDF6}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.drop b{display:block;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.drop span{display:block;font-size:12.5px;color:var(--ink-mid);margin-top:5px}
.files{list-style:none;margin-top:10px}
.files li{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;padding:9px 12px;background:var(--cream);border:1px solid var(--rule);margin-top:6px}
.files li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.files li small{color:var(--ink-mid);margin-left:8px}
.files li small.bad{color:#A33A2B}
.files button{background:none;border:0;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#A33A2B;flex:none;font-family:var(--sans)}
.sub-head{font-family:var(--serif);font-size:25px;font-weight:600;color:var(--navy);margin:38px 0 6px;padding-top:30px;border-top:1px solid var(--rule)}
.sub-head + .hint{margin:0 0 22px}

/* ---------- Payment method ---------- */
.methods{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:30px}
.method{border:1px solid #D6CBAF;background:#fff;padding:18px 20px;cursor:pointer;text-align:left;font-family:var(--sans);position:relative;transition:border-color .2s,box-shadow .2s}
.method b{display:block;font-family:var(--serif);font-size:23px;font-weight:600;color:var(--navy);line-height:1.2}
.method span{display:block;font-size:12.5px;color:var(--ink-mid);margin-top:4px}
.method::after{content:"";position:absolute;top:18px;right:18px;width:16px;height:16px;border-radius:50%;border:1px solid #C9BB93;background:#fff}
.method[aria-checked="true"]{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.method[aria-checked="true"]::after{border-color:var(--navy);background:radial-gradient(var(--navy) 0 45%,#fff 50%)}

/* Zelle instructions */
.zelle-steps{list-style:none;counter-reset:z;margin-bottom:8px}
.zelle-steps li{counter-increment:z;position:relative;padding:0 0 22px 52px;font-family:var(--text-serif);font-size:19px;line-height:1.55;color:var(--ink)}
.zelle-steps li::before{content:counter(z);position:absolute;left:0;top:-2px;width:34px;height:34px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:18px;color:var(--navy);background:var(--paper)}
.zelle-steps strong{font-weight:500;color:var(--navy)}
.copy-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--cream);border:1px solid var(--rule);padding:12px 16px;margin-top:10px;font-family:var(--sans)}
.copy-row .k{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dark);display:block;margin-bottom:2px}
.copy-row .v{font-size:18px;font-weight:600;color:var(--navy);word-break:break-word}
.copy-row.memo{border-color:var(--gold);background:#FFF9E8}
.copy{background:none;border:1px solid var(--gold);cursor:pointer;font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);padding:8px 12px;flex:none;transition:background .2s}
.copy:hover,.copy.done{background:var(--gold)}
.check{display:flex;gap:12px;align-items:flex-start;font-family:var(--text-serif);font-size:18px;line-height:1.5;color:var(--ink);cursor:pointer;margin-top:22px}
.check input{width:18px;height:18px;margin-top:4px;accent-color:var(--navy);flex:none}
.check.err{color:#A33A2B}

/* ---------- Summary sidebar ---------- */
.summary{background:var(--navy);color:#C9D2D5;padding:32px 28px;position:sticky;top:94px}
.summary h3{color:#fff;font-size:25px;margin-bottom:4px}
.summary .eyebrow{color:var(--gold)}
.summary dl{margin-top:22px;border-top:1px solid rgba(197,159,76,.3)}
.summary dl div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px}
.summary dl div.total{border-bottom:0;padding-top:16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#fff;align-items:baseline}
.summary dl div.total dd{font-family:var(--serif);font-size:32px;letter-spacing:0;color:var(--gold)}
.summary dd{color:#fff;text-align:right}
.summary .ph{margin-top:18px;font-size:12px}
.summary .fee-note{margin-top:18px;font-size:13px;line-height:1.5;color:#C9D2D5}

/* ---------- Review ---------- */
.review{border-top:1px solid var(--rule)}
.review div{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--rule)}
.review dt{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dark);padding-top:4px}
.review dd{font-family:var(--text-serif);font-size:19px;color:var(--ink);word-break:break-word}
.review dd small{display:block;font-size:16px;color:var(--ink-mid)}
.form-error{display:none;margin-top:20px;padding:14px 16px;border:1px solid #D9A79E;background:#FBF0EE;color:#8C2F22;font-size:14px}
.form-error.show{display:block}

/* ---------- Done ---------- */
.done{text-align:center}
.done .seal{width:74px;height:74px;border-radius:50%;background:var(--navy);margin:0 auto 26px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 7px rgba(197,159,76,.22)}
.done .seal svg{width:30px;height:30px;stroke:var(--gold);fill:none;stroke-width:2.4}
.done h2{font-size:clamp(34px,4vw,46px);margin-bottom:14px}
.done > p{font-family:var(--text-serif);font-size:20px;line-height:1.6;color:var(--ink-mid);max-width:560px;margin:0 auto}
p.ref{margin:22px auto 0;font-size:13.5px;color:var(--ink-mid);letter-spacing:.02em}   /* small: the reference is also in the emailed receipt */
p.ref b{font-weight:600;color:var(--navy);letter-spacing:.04em}
.done .ph{max-width:560px;margin:30px auto 0;text-align:center}
.done .panel-foot{justify-content:center}

/* Bot check (only visible if Cloudflare needs a click) and page-level errors */
.bot-check{max-width:760px;margin:0 auto;display:flex;justify-content:center}
.bot-check:not(:empty){margin-bottom:18px}
#payForm .bot-check:not(:empty){margin-top:34px}   /* payments page: room between the card / Zelle fields and the bot check */
.portal-error{max-width:760px;margin:0 auto 24px}

/* Toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--navy);color:#fff;font-size:13px;letter-spacing:.04em;padding:11px 20px;opacity:0;pointer-events:none;transition:all .25s;z-index:90}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .req-grid{grid-template-columns:1fr 1fr}
  .panel-grid{grid-template-columns:1fr}
  .summary{position:static;order:-1}
}
@media (max-width:700px){
  .choices{grid-template-columns:1fr}
}
@media (max-width:600px){
  .apply-intro{padding:64px 0 60px}
  .req-grid{grid-template-columns:1fr}
  .req{padding:26px 20px}
  .choose{padding:64px 0 72px}
  .choice{padding:32px 24px 30px}
  .portal{padding:52px 0 76px;scroll-margin-top:62px}
  .stepper .dot{width:38px;height:38px;font-size:19px}
  .stepper::before,.stepper .fill{top:19px}
  .stepper b{font-size:9.5px;letter-spacing:.1em}
  .stepper small{display:none}
  .card-box{padding:30px 20px 28px}
  .form-grid,.methods{grid-template-columns:1fr}
  .review div{grid-template-columns:1fr;gap:2px}
  .panel-foot{flex-direction:column-reverse;align-items:stretch}
  .panel-foot .btn{justify-content:center}
  .panel-foot .text-link{align-self:center}
  #jf{height:1100px}
  .zelle-steps li{padding-left:46px;font-size:18px}
}
@media print{
  .topbar,header,.page-banner,.apply-intro,.stepper,.step-warning,footer,.panel-foot,.preview-note{display:none !important}
  .portal{border:0;padding:0;background:#fff}
}

/* ---------- Payments & donations page ---------- */
.methods.three{grid-template-columns:repeat(3,1fr)}
.method[hidden]{display:none}
#fMonths{max-width:280px;margin-top:22px}
#fMonths select{width:100%;padding:13px 14px;border:1px solid #D6CBAF;background:#fff;font-family:var(--sans);font-size:16px;color:var(--ink)}
.monthly-note{margin:16px 0 0;padding:14px 18px;background:var(--cream);border-left:2px solid var(--gold);font-family:var(--text-serif);font-size:17px;line-height:1.55;color:var(--ink)}
.method.purpose{padding:22px 40px 22px 18px}
.method.purpose b{font-size:20px;white-space:nowrap}
#fAmount{max-width:280px}
.money{display:flex;align-items:center;border:1px solid #D6CBAF;background:#fff;transition:border-color .2s,box-shadow .2s}
.money:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,159,76,.2)}
.money span{padding:0 2px 0 14px;font-family:var(--serif);font-size:23px;font-weight:600;color:var(--gold-dark)}
.field .money input{border:0;box-shadow:none;font-size:18px;font-weight:500;padding-left:6px}
.field.err .money{border-color:#B8493A}
.field textarea{font-family:var(--sans);font-size:15.5px;color:var(--ink);background:#fff;border:1px solid #D6CBAF;padding:13px 14px;border-radius:0;outline:0;resize:vertical;min-height:84px;width:100%;transition:border-color .2s,box-shadow .2s}
.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,159,76,.2)}
.fixed-amount{display:flex;align-items:baseline;justify-content:space-between;gap:16px;background:var(--cream);border:1px solid var(--rule);padding:18px 22px}
.fixed-amount .k{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dark)}
.fixed-amount .v{font-family:var(--serif);font-size:32px;font-weight:600;color:var(--navy)}
.sub-head + .form-grid,.sub-head + .methods{margin-top:22px}
@media (max-width:600px){
  .methods.three{grid-template-columns:1fr}
  #fAmount,#fMonths{max-width:none}
}
@media (max-width:960px){
  .panel-grid.summary-last .summary{order:0}
}

/* Tuition & Fees (under the requirements) */
.tuition{max-width:1060px;margin:44px auto 0;background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--gold);display:grid;grid-template-columns:280px 1fr;gap:56px;padding:44px 52px;box-shadow:0 18px 40px -32px rgba(11,48,62,.4)}
.tuition h3{font-size:clamp(28px,2.8vw,34px);margin:10px 0 16px}
.tuition .rule{width:60px;height:1px;background:var(--gold)}
.t-list div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;border-bottom:1px solid var(--rule)}
.t-list div:first-child{padding-top:0}
.t-list dt{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.t-list dt small{display:block;margin-top:6px;font-size:10.5px;letter-spacing:.12em;color:var(--gold-dark)}
.t-list dd{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--navy);white-space:nowrap}
.t-notes{margin-top:20px}
.t-notes p{font-family:var(--text-serif);font-size:18px;line-height:1.55;color:var(--ink);margin:0 0 8px}
.t-notes p.small{font-size:16px;color:var(--ink-mid)}
@media (max-width:860px){.tuition{grid-template-columns:1fr;gap:22px;padding:32px 22px}.t-list dd{font-size:26px}}
.zelle-hint{font-family:var(--text-serif);font-style:italic;font-size:17px;line-height:1.45;color:var(--ink);text-align:center;margin:12px 0 20px}
.zelle-hint[hidden]{display:none}
.check[hidden],.zelle-simple[hidden]{display:none}
