/* Apply page: landing-page funnel structure with the reset's type system. The
   bar is white because the UBIS wordmark is navy: on the navy hero it vanished.
   `frame` supplies the same gutter padding as the rest of the site. */
.apply-header{background:white;color:var(--navy);border-bottom:1px solid var(--line);padding-block:16px;position:relative;z-index:5}
.apply-header .brand img{filter:none}
.apply-header nav a{color:var(--navy)}
.apply-header .mobile-menu summary{color:var(--navy)}
.apply-header .mobile-menu nav{top:100%}
.apply-header .header-apply{background:var(--green);color:var(--white)}
.apply-header .header-apply:hover{background:#08572f}
.apply-hero{background:var(--navy);color:white;padding-block:42px}
.apply-frame{width:min(100%,1180px);padding-inline:var(--gutter);margin-inline:auto}.apply-hero>.apply-frame{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.82fr);gap:64px;align-items:center}
.apply-kicker{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4FD68C}
.apply-hero h1{font-size:clamp(38px,4.3vw,62px);margin-top:14px}
.apply-hero h1 em{font:400 1em/1.08 Newsreader,Georgia,serif;color:var(--blue);letter-spacing:-.02em}
.apply-deck{margin-top:18px;font-size:17px;color:#e0eaf9;max-width:56ch}
.apply-quickfacts{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;border-top:1px solid #738cac;padding-top:22px}
.apply-quickfacts strong{display:block;font-size:30px;line-height:1.1;letter-spacing:-.02em}
.apply-quickfacts span{display:block;font-size:13px;color:#b9d9ff;margin-top:6px;line-height:1.5}
.apply-start{width:280px;margin-top:28px}.apply-hero-media{margin:0;width:100%;box-shadow:none}.apply-hero-media .hero-window{aspect-ratio:4/3}.apply-hero-media img{object-position:50% 34%}
.apply-band{background:#eef3fb;border-block:1px solid var(--line);padding-block:16px}
body:not(.campaign-page) main .apply-band p{font-size:14px!important;line-height:1.5!important;font-weight:700;color:var(--navy);max-width:54ch}
.apply-docs{background:white;padding-block:64px}
.apply-docs h2,.apply-process h2{font-size:clamp(30px,3vw,42px)}
.apply-docs-deck{margin-top:14px;color:var(--muted);max-width:56ch}
.apply-checklist{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:0}
.apply-checklist li{display:flex;align-items:flex-start;gap:16px;padding-block:16px;border-top:1px solid var(--line);font-size:17px;line-height:1.6}
.apply-checklist li:first-child{border-top:0}
.apply-checklist svg{width:22px;height:22px;flex:none;color:var(--green);margin-top:3px}
.apply-checklist strong{font-weight:700}
.apply-checklist li p{font-size:15px;color:var(--muted);margin-top:2px;line-height:1.55}
.apply-note{margin-top:20px;font-size:14px;color:var(--muted);max-width:56ch}
.apply-process{background:var(--surface);padding-block:64px 72px}
.apply-steps{list-style:none;padding:0;margin:26px 0 0;counter-reset:step;display:grid;gap:0}
.apply-steps li{counter-increment:step;display:grid;grid-template-columns:52px 1fr;gap:20px;padding-block:22px;border-top:1px solid var(--line)}
.apply-steps li::before{content:counter(step,decimal-leading-zero);font:700 26px/1 Manrope,Arial,sans-serif;color:var(--green);padding-top:2px}
.apply-steps p{font-size:16px;color:var(--muted);margin-top:6px;max-width:56ch}
.apply-cta{margin-top:36px;background:var(--navy);color:white;border-radius:7px;padding:36px}
.apply-cta .button{min-width:320px}
.apply-cta-note{margin-top:16px;font-size:14px;color:#e0eaf9}
.apply-cta-note strong{color:#4FD68C}
@media(max-width:760px){.apply-hero{padding-block:32px}.apply-hero>.apply-frame{grid-template-columns:1fr;gap:30px}.apply-quickfacts{grid-template-columns:1fr;gap:18px}.apply-start{width:100%}.apply-hero-media .hero-window{aspect-ratio:3/2}.apply-cta{padding:26px}.apply-cta .button{width:100%;min-width:0}}

/* Application form: the landing-page field set in the redesign's visual language. */
.apply-form-section{background:white;padding-block:72px 64px}
.apply-form-heading{font-size:clamp(30px,3vw,42px)}
.apply-form-deck{margin-top:14px;color:var(--muted);max-width:62ch}
.form-card{background:white;border:1px solid var(--line);border-radius:8px;padding:36px 38px 34px;margin-top:32px;max-width:820px;box-shadow:none}
.form-progress{display:grid;gap:6px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.form-progress .progress-count{font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--green)}
.form-progress strong{font-size:20px;color:var(--navy)}
.progress-track{display:block;height:3px;background:#e3e9f2;border-radius:3px;overflow:hidden;margin-top:6px}
.progress-track b{display:block;height:100%;width:100%;background:var(--navy);border-radius:3px;transform:scaleX(.25);transform-origin:left center;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.hp-field{position:absolute;left:-9999px}
.form-step{display:none}
.form-step.is-active{display:block;animation:applyStep .38s cubic-bezier(.22,1,.36,1) both}
@keyframes applyStep{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.form-step.is-active .field{animation:applyField .34s cubic-bezier(.22,1,.36,1) both}
.form-step.is-active .field:nth-child(2){animation-delay:.03s}
.form-step.is-active .field:nth-child(3){animation-delay:.06s}
.form-step.is-active .field:nth-child(4){animation-delay:.09s}
.form-step.is-active .field:nth-child(5){animation-delay:.12s}
@keyframes applyField{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.step-heading{font-size:22px;color:var(--navy);margin:26px 0 6px}
.form-step .sub{font-size:15px;color:var(--muted);margin:0 0 18px;line-height:1.6;max-width:58ch}
.form-step .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-step .row-full{grid-template-columns:1fr}
.field{margin-bottom:26px;position:relative}
.field>label{display:block;font-size:15px;font-weight:700;color:var(--navy);margin-bottom:8px}
.field .opt{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--dark-rule);border-radius:7px;background:white;color:var(--navy);font-size:16px;font-family:inherit}
.field input:focus-visible,.field select:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--navy)}
.field .fdesc{font-size:14px;color:var(--muted);margin-top:7px;line-height:1.5}
body:not(.campaign-page) main .form-step .step-note{font-size:13px!important;line-height:1.5!important;color:var(--muted);max-width:58ch;margin:0 0 14px}
.optional-details{border-block:1px solid var(--rule);margin:0 0 24px;padding:0}
.optional-details summary{cursor:pointer;color:var(--navy);font-size:15px;font-weight:800;line-height:1.4;padding:14px 0}
.optional-details summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.optional-details-body{padding:6px 0 2px}
.field-error,.ferr{font-size:13px;font-weight:700;color:#b3261e;margin-top:7px}
/* Reserve the error line inside the field's own margin so showing an error never
   moves the buttons below it. A click in progress stays on its target. */
.field .field-error{position:absolute;left:0;bottom:-19px;margin-top:0;line-height:1.35}
.phone-row{display:grid;grid-template-columns:130px 1fr;gap:10px}
.file{position:relative;border:1px dashed var(--line);border-radius:7px;padding:16px;background:var(--surface)}
.file .file-native-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.file-upload-button{min-height:44px;padding:8px 18px;border:1px solid var(--navy);border-radius:7px;background:white;color:var(--navy);font:700 14px Manrope,Arial,sans-serif;cursor:pointer}
.file-upload-button:hover{background:var(--navy);color:white}
.file-rows{display:grid;gap:8px;margin-top:10px}
.file-rows:empty{margin-top:0}
.file-row{display:flex;gap:8px;align-items:center}
.file-name-input{flex:1;min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;font-size:14px;color:var(--navy);background:#f7f9fc}
.file-name-input[readonly]{cursor:default}
.file-name-input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.file-remove{flex:none;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--navy);font-size:14px;font-weight:700;cursor:pointer}
.file-remove:hover{border-color:var(--error,#b3261e);color:#b3261e}
.file .fname{display:block;font-size:15px;font-weight:700;color:var(--navy);overflow-wrap:anywhere}
.file .fdesc{margin-top:6px}
.file.has-file{border-style:solid;border-color:var(--navy);background:#eef3fb}
.step-actions{display:flex;align-items:center;gap:12px;margin-top:12px}
.step-next,.step-back,form#apply-application .submit{min-width:150px;min-height:50px;padding:12px 24px;border:1px solid var(--navy);border-radius:7px;font:700 15px Manrope,Arial,sans-serif;cursor:pointer}
.step-next,form#apply-application .submit{background:var(--navy);color:white}
.step-next:hover,form#apply-application .submit:hover{background:var(--navy-hover)}
.step-back{background:white;color:var(--navy)}
.step-back:hover{background:#eef3fb}
.step-next:focus-visible,.step-back:focus-visible,.file-upload-button:focus-visible,form#apply-application .submit:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
form#apply-application .submit:disabled{cursor:wait;opacity:.68}
.variant[hidden]{display:none!important}
@media(max-width:760px){.mobile-menu:not([open]) nav{display:none}.form-card{padding:20px}.form-progress{padding-bottom:18px}.form-step .row{grid-template-columns:1fr}.field{margin-bottom:20px}.phone-row{grid-template-columns:112px 1fr}.step-actions{margin-top:8px}.step-back,.step-next{min-width:0;flex:1}body:not(.campaign-page) main .form-step .step-note{font-size:13px!important;margin-bottom:10px}}
@media(max-width:340px){.phone-row{grid-template-columns:84px 1fr}}
@media(prefers-reduced-motion:reduce){.form-step.is-active,.form-step.is-active .field{animation:none}.progress-track b{transition:none}form#apply-application .submit::after{display:none}}
