*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:#f6f5f1;overflow-x:hidden;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#1e293b}
.ap-top{background:#090a0b;color:#fff;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,4vw)}
.ap-top img{height:40px;width:auto;display:block}
.ap-top span{font:700 10px/1 Arial,Helvetica,sans-serif;letter-spacing:2.2px;color:#b9b6a8}
.ap-main{max-width:720px;margin:0 auto;padding:30px max(16px,4vw) 40px}
.ap-foot{text-align:center;font-size:12px;color:#8b8b84;padding:10px 16px 30px}
h1{font-size:26px;line-height:1.2;font-weight:800;letter-spacing:-.01em;color:#0b1a33;margin:0;overflow-wrap:anywhere}
.ap-desc{margin:10px 0 0;color:#475569;white-space:pre-line}
.ap-note{margin:16px 0 0;padding:12px 14px;border:1px solid #e3e6ec;background:#fff;border-radius:12px;font-size:14px;color:#334155}
.ap-note.warn{border-color:#fcd34d;background:#fffbeb;color:#92400e}
.ap-note.ok{border-color:#a7f3d0;background:#ecfdf5;color:#065f46}
.ap-note.err{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.ap-req{margin:12px 0 0;font-size:12px;color:#64748b}
.ap-star{color:#dc2626;font-weight:700;margin-left:2px}
.ap-sec{margin-top:20px;background:#fff;border:1px solid #e3e6ec;border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(11,26,51,.04)}
.ap-sec h2{margin:0 0 14px;font-size:17px;color:#0b1a33;overflow-wrap:anywhere}
.ap-q{margin-top:18px}.ap-q:first-of-type{margin-top:0}
.ap-label{display:block;margin-bottom:6px;font-weight:600;font-size:14px;color:#1e293b;overflow-wrap:anywhere}
.ap-input{width:100%;border:1px solid #e3e6ec;border-radius:8px;background:#fff;padding:9px 12px;font:inherit;font-size:16px;color:#1e293b;outline:none;transition:border-color .15s,box-shadow .15s}
.ap-input:focus{border-color:#d4a72c;box-shadow:0 0 0 3px #fbf1d3}
textarea.ap-input{min-height:110px;resize:vertical}
select.ap-input{appearance:auto}
.ap-opt{display:flex;align-items:center;gap:10px;min-height:42px;margin-top:6px;padding:0 12px;border:1px solid #e3e6ec;border-radius:8px;background:#fff;font-size:14px;color:#334155;cursor:pointer}
.ap-opt input,.ap-check input{width:18px;height:18px;accent-color:#0b1a33;flex:none}
.ap-check{display:flex;align-items:flex-start;gap:10px;font-weight:600;font-size:14px;cursor:pointer}
.ap-check input{margin-top:1px}
.ap-file{display:flex;gap:10px;align-items:center;border:1px dashed #cbd5e1;background:#f8fafc;border-radius:8px;padding:12px;color:#64748b;font-size:14px}
.ap-hint{margin:-2px 0 4px;font-size:12px;color:#64748b}
.ap-q.bad .ap-input,.ap-q.bad .ap-opt{border-color:#f87171}
.ap-err{margin:6px 0 0;font-size:13px;color:#b91c1c;font-weight:600}
.ap-bar{position:sticky;bottom:0;z-index:5;margin:22px -4px 0;padding:12px 4px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#f6f5f1 75%,rgba(246,245,241,0));display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ap-status{flex:1 1 100%;font-size:12px;color:#64748b;min-height:18px}
.ap-btn{height:44px;padding:0 20px;border:1px solid transparent;border-radius:8px;font-family:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s,opacity .15s}
.ap-btn:disabled{opacity:.55;cursor:not-allowed}
/* i-5 premium buttons: same rounded corners, pressed and focus states as the rest of the app. */
.ap-btn{border-radius:10px;letter-spacing:.01em;transition:background .15s,border-color .15s,opacity .15s,transform .1s}.ap-btn:active:not(:disabled){transform:translateY(1px)}.ap-btn:focus-visible{outline:2px solid #e8b93a;outline-offset:2px}
.ap-btn.primary{background:#0b1a33;color:#fff}.ap-btn.primary:hover:not(:disabled){background:#132a4f}
.ap-btn.gold{background:#e8b93a;color:#0b1a33}.ap-btn.gold:hover:not(:disabled){background:#f0c95c}
.ap-btn.secondary{background:#fff;color:#334155;border-color:#e3e6ec}.ap-btn.secondary:hover:not(:disabled){background:#f8fafc}
.ap-link{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ap-link input{flex:1 1 240px;min-width:0;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;color:#334155;background:#f8fafc}
.ap-review dl{margin:0}
.ap-review dt{margin-top:12px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.ap-review dt:first-child{margin-top:0}
.ap-review dd{margin:2px 0 0;white-space:pre-line;overflow-wrap:anywhere}
.ap-review dd.empty{color:#94a3b8;font-style:italic}
.ap-loading,.ap-missing{text-align:center;padding:60px 10px;color:#64748b}
.ap-missing h1,.ap-done h1{font-size:22px}
.ap-done{text-align:center;padding:30px 10px}
.ap-ref{display:inline-block;margin-top:12px;padding:8px 14px;border-radius:10px;background:#0b1a33;color:#f0c95c;font:700 18px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:640px){.ap-top span{display:none}.ap-main{padding:18px 14px 30px}.ap-sec{padding:16px}h1{font-size:22px}.ap-bar .ap-btn{flex:1 1 calc(50% - 5px)}}
.ap-turnstile{flex:1 1 100%;display:flex;justify-content:center}

/* Embedded on another website (?embed=1, apply/embed.js): the host page provides the frame. */
.ap-embed body{background:transparent}.ap-embed .ap-top,.ap-embed .ap-foot{display:none}.ap-embed .ap-main{padding-top:4px;padding-bottom:12px}
.ap-confirm{white-space:pre-line;margin-top:12px}

/* Application journeys (Form Builder: steps, design and routing). Without a journey none of
   these classes are set and the page looks exactly as before. */
.ap-banner{display:block;width:100%;height:220px;object-fit:cover;border-radius:16px;margin:0 0 22px;background:#e5e3dc}
.ap-sec-img{display:block;width:calc(100% + 40px);height:150px;object-fit:cover;margin:-20px -20px 16px;border-radius:16px 16px 0 0}
.ap-progress{margin-top:18px}
.ap-progress-top{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#475569}
.ap-progress-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;font-weight:600}
.ap-progress-bar{margin-top:8px;height:6px;border-radius:99px;background:#e3e6ec;overflow:hidden}
.ap-progress-bar span{display:block;height:100%;border-radius:99px;background:#0b1a33;transition:width .3s}
a.ap-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* i-5 gold accents */
.ap-gold .ap-progress-bar span{background:linear-gradient(90deg,#d4a72c,#f0c95c)}
.ap-gold .ap-btn.primary{background:#e8b93a;color:#0b1a33}.ap-gold .ap-btn.primary:hover:not(:disabled){background:#f0c95c}
.ap-gold h1::after{content:"";display:block;width:48px;height:3px;margin-top:12px;border-radius:3px;background:#e8b93a}
.ap-gold .ap-sec{border-top:3px solid #e8b93a}
.ap-gold .ap-sec:has(.ap-sec-img){border-top:1px solid #e3e6ec}

/* Dark presentation */
.ap-dark,.ap-dark body{background:#0d0f10;color:#e5e7eb}
.ap-dark h1,.ap-dark .ap-sec h2{color:#fff}
.ap-dark .ap-desc,.ap-dark .ap-req,.ap-dark .ap-status,.ap-dark .ap-hint,.ap-dark .ap-progress-top{color:#a8adb5}
.ap-dark .ap-sec{background:#15181b;border-color:#262a2f;box-shadow:none}
.ap-dark .ap-label,.ap-dark .ap-check{color:#e5e7eb}
.ap-dark .ap-input,.ap-dark .ap-opt{background:#0f1214;border-color:#2c3137;color:#f1f5f9}
.ap-dark .ap-opt{color:#d1d5db}
.ap-dark .ap-note{background:#15181b;border-color:#262a2f;color:#d1d5db}
.ap-dark .ap-note.warn{background:#2a2310;border-color:#5c4a14;color:#f6d77c}
.ap-dark .ap-note.ok{background:#0f2a20;border-color:#1d5b44;color:#9ee6c3}
.ap-dark .ap-note.err{background:#2c1414;border-color:#6b2424;color:#fca5a5}
.ap-dark .ap-file{background:#0f1214;border-color:#2c3137;color:#a8adb5}
.ap-dark .ap-review dd{color:#e5e7eb}
.ap-dark .ap-progress-bar{background:#262a2f}
.ap-dark .ap-btn.secondary{background:#15181b;color:#e5e7eb;border-color:#2c3137}.ap-dark .ap-btn.secondary:hover:not(:disabled){background:#1c2024}
.ap-dark:not(.ap-gold) .ap-btn.primary{background:#fff;color:#0b1a33}
.ap-dark .ap-bar{background:linear-gradient(to top,#0d0f10 75%,rgba(13,15,16,0))}
.ap-dark .ap-done h1{color:#fff}.ap-dark .ap-done p{color:#d1d5db}
.ap-dark .ap-foot{color:#6b7076}
.ap-dark .ap-banner{background:#15181b}
.ap-dark.ap-embed body{background:transparent}

/* Premium split screen (desktop): image and form details beside the questions. Phones and
   narrow embeds show the image as a banner above the form. */
.ap-hero{position:relative;overflow:hidden;border-radius:18px;background:#090a0b;color:#fff;min-height:240px;display:flex;align-items:flex-end;margin-bottom:20px}
.ap-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ap-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.35) 55%,rgba(0,0,0,.05))}
.ap-hero.plain{background:radial-gradient(120% 90% at 0% 100%,#2a2414 0%,#090a0b 60%)}
.ap-hero-text{position:relative;z-index:1;padding:26px}
.ap-hero h1{color:#fff}.ap-hero .ap-desc{color:#e2e2dc}
.ap-pane{min-width:0}
@media(min-width:960px){
  .ap-split .ap-main.ap-framed{max-width:1180px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:36px;align-items:start}
  .ap-split .ap-framed .ap-hero{position:sticky;top:24px;min-height:calc(100vh - 150px);max-height:760px;margin:0}
  .ap-split .ap-framed .ap-hero-text{padding:40px}
  .ap-split .ap-framed .ap-hero h1{font-size:34px}
}
@media(max-width:640px){.ap-banner{height:160px;border-radius:12px}.ap-sec-img{width:calc(100% + 32px);margin:-16px -16px 14px;height:120px}.ap-hero{min-height:200px}.ap-hero-text{padding:20px}.ap-bar a.ap-btn{flex:1 1 100%}}

/* Opportunity cards (Form Builder: Opportunity routing → Show as opportunity cards). A radio
   group drawn as cards: the whole card is the selectable area, one choice only.
   The layout follows the width of the card area itself (a container query), not the device:
   - by default (narrow areas, the desktop split screen, and browsers without container
     queries) each card is a compact row: image on the left, title and description on the right;
   - side by side only when the card area is at least 600px wide, so every card is wide enough
     (190px or more) for its title and description. Works for any number of options. */
.ap-cards-set{container:ap-cards / inline-size;min-width:0;border:0;margin:0;padding:0}
.ap-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:4px}
.ap-card{position:relative;display:flex;flex-direction:row;align-items:stretch;min-height:112px;overflow:hidden;border:2px solid #e3e6ec;border-radius:16px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.ap-card:hover{border-color:#e8b93a;transform:translateY(-2px)}
.ap-card:focus-within{outline:3px solid #e8b93a;outline-offset:2px}
.ap-card.on{border-color:#e8b93a;box-shadow:0 0 0 3px rgba(232,185,58,.28),0 10px 28px rgba(0,0,0,.18)}
.ap-card-img{position:relative;display:block;flex:none;width:clamp(112px,32%,184px);min-height:112px;overflow:hidden;background:#0d0f10}
.ap-card-img img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .35s}
.ap-card:hover .ap-card-img img{transform:scale(1.05)}
.ap-card-img.empty{background:radial-gradient(120% 90% at 0% 100%,#3a2f10 0%,#0d0f10 65%) center/cover no-repeat;position:relative}
.ap-card-img.empty::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23e8b93a' stroke-width='2.2' stroke-linejoin='round'%3E%3Ccircle cx='32' cy='32' r='22'/%3E%3Cpath d='M32 21l9 6.5-3.4 10.5H26.4L23 27.5z'/%3E%3Cpath d='M32 21V10M41 27.5l10.5-3.4M37.6 38l6.5 9M26.4 38l-6.5 9M23 27.5l-10.5-3.4'/%3E%3C/svg%3E") center/56px no-repeat;opacity:.85}
.ap-card-tick{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.75);background:rgba(9,10,11,.35)}
.ap-card.on .ap-card-tick{border-color:#e8b93a;background:#e8b93a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1a33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px no-repeat}
.ap-card-body{display:block;min-width:0;align-self:center;padding:14px 50px 14px 18px}
/* Titles wrap only between words, never inside one ("USA Scholarships"). */
.ap-card-title{display:block;font-weight:800;font-size:15px;line-height:1.25;letter-spacing:.04em;text-transform:uppercase;color:#0b1a33;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}
.ap-card-desc{display:block;margin-top:5px;font-size:13.5px;line-height:1.45;color:#64748b}
.ap-q.bad .ap-card{border-color:#f87171}
.ap-dark .ap-card{background:#101316;border-color:#262a2f}
.ap-dark .ap-card:hover{border-color:rgba(232,185,58,.7)}
.ap-dark .ap-card.on{border-color:#e8b93a}
.ap-dark .ap-card-title{color:#fff}.ap-dark .ap-card-desc{color:#a8adb5}
@container ap-cards (min-width:600px){
  .ap-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
  .ap-card{flex-direction:column;min-height:0}
  .ap-card-img{width:auto;min-height:0;aspect-ratio:16/10}
  .ap-card-body{align-self:stretch;padding:14px 16px 16px}
}
/* Desktop split screen: always one card beneath another, however wide the pane. */
@media(min-width:960px){
  .ap-split .ap-framed .ap-cards{grid-template-columns:minmax(0,1fr);gap:12px}
  .ap-split .ap-framed .ap-card{flex-direction:row;min-height:112px}
  .ap-split .ap-framed .ap-card-img{width:clamp(120px,30%,184px);min-height:112px;aspect-ratio:auto}
  .ap-split .ap-framed .ap-card-body{align-self:center;padding:14px 50px 14px 18px}
}
