/* ============================================================
   SWISS / interior pages layer. Loads on top of swiss.css.
   Covers /apply (apply-* + form-*) and /next-steps (ns-*).
   ============================================================ */

/* ---------- shared shells ---------- */
.apply-container,.ns-container{
  max-width:820px;margin:0 auto;
  padding:clamp(48px,8vw,110px) clamp(20px,4vw,56px) clamp(56px,8vw,100px);
}
.apply-logo,.ns-logo{
  display:block;margin-bottom:clamp(32px,5vw,56px);
  font-size:16px;font-weight:700;letter-spacing:.02em;
  color:var(--ink);text-decoration:none;
}
.apply-heading,.ns-heading{
  font-size:clamp(36px,5.6vw,74px);
  line-height:1.0;letter-spacing:-.035em;font-weight:700;
  text-wrap:balance;
}
.apply-sub,.ns-sub{
  margin-top:clamp(20px,3vw,32px);
  padding-bottom:clamp(32px,4.5vw,52px);
  border-bottom:1px solid var(--rule);
  font-size:clamp(16px,1.7vw,21px);line-height:1.5;
  max-width:36em;color:var(--muted);
}

/* ---------- /apply card and form ---------- */
.apply-card{
  border:1px solid var(--rule);border-radius:0;
  background:var(--paper);
  padding:clamp(26px,3.6vw,44px);
  margin-top:clamp(32px,4.5vw,52px);
}
.form-group{margin-bottom:clamp(22px,3vw,34px);}
.form-label{
  display:block;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--ink);margin-bottom:11px;line-height:1.5;
}
.form-optional{color:var(--faint);font-weight:500;}
.form-input,.form-select,.form-textarea{
  width:100%;font-family:var(--font);font-size:16px;color:var(--ink);
  background:var(--paper);
  border:1px solid var(--rule);border-radius:0;
  padding:14px 16px;
  transition:border-color .2s ease,background .2s ease;
  -webkit-appearance:none;appearance:none;
}
.form-select{
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;
  padding-right:44px;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--accent);background:var(--tint);
}
.form-textarea{min-height:130px;resize:vertical;line-height:1.5;}
.form-error{
  border-left:3px solid var(--accent);
  padding:12px 0 12px clamp(16px,2.2vw,24px);
  margin-top:14px;
  font-size:14px;line-height:1.5;color:var(--ink);font-weight:600;
}
.btn-submit{
  display:block;width:100%;
  margin-top:clamp(28px,4vw,44px);
  background:var(--ink);color:#fff;
  border:none;border-radius:0;
  padding:21px 36px;
  font-family:var(--font);font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:background .2s ease;
}
.btn-submit:hover{background:var(--accent);}
.btn-submit:disabled{background:rgba(17,24,39,.3);cursor:not-allowed;}

/* ---------- /next-steps options ---------- */
.ns-options{
  border-top:1px solid var(--rule);border-left:1px solid var(--rule);
  margin-top:clamp(32px,4.5vw,52px);
  display:grid;grid-template-columns:1fr;
}
.ns-option{
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
  border-radius:0;background:transparent;
  padding:clamp(24px,3.2vw,40px);
  transition:background .25s ease;
}
.ns-option:hover{background:var(--tint);}
.ns-option h2,.ns-option h3{
  font-size:clamp(21px,2.4vw,30px);font-weight:700;
  letter-spacing:-.02em;line-height:1.12;margin-bottom:12px;text-wrap:balance;
}
.ns-option p{font-size:15px;line-height:1.55;color:var(--muted);max-width:40em;}
.ns-option-badge{
  display:inline-block;margin-bottom:16px;
  border:1px solid var(--rule);border-radius:0;
  padding:7px 13px;background:transparent;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--accent);
}
.ns-check{
  display:flex;gap:12px;align-items:baseline;
  font-size:15px;line-height:1.5;color:var(--muted);
  padding:9px 0;
}
.ns-check::before{content:"+";color:var(--accent);font-weight:700;flex:0 0 auto;}

.btn-primary,.btn-ghost{
  display:inline-block;margin-top:clamp(20px,2.8vw,30px);
  padding:16px 30px;border-radius:0;
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.btn-primary,.primary{background:var(--ink);color:#fff!important;border:1px solid var(--ink);}
.btn-primary:hover,.primary:hover{background:var(--accent);border-color:var(--accent);}
.btn-ghost{background:transparent;color:var(--ink)!important;border:1px solid var(--ink);}
.btn-ghost:hover{background:var(--ink);color:#fff!important;}

/* ---------- footers ---------- */
.apply-footer,.ns-footer{
  border-top:1px solid var(--rule);
  margin-top:clamp(40px,6vw,72px);padding-top:32px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--faint);
}
.apply-footer a,.ns-footer a{
  color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule);
}
.apply-footer a:hover,.ns-footer a:hover{color:var(--accent);border-color:var(--accent);}
