/* Bversity Apply: standalone styles (no dependency on the main site, so this folder can move to apply.bversity.io) */
:root{
  --ink:#0B1D1A; --ink-2:#3F504C; --ink-3:#6C7B77;
  --paper:#F8F6F3; --card:#fff; --line:#DCE6E3; --line-2:#C9D8D4;
  --teal:#176E66; --teal-d:#0D423E; --teal-l:#E1F3EF; --mint:#2BB3A3;
  --err:#B42318; --err-bg:#FEF3F2; --ok-bg:#ECF8F5;
  --r:8px; --f:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.55 var(--f); -webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%; display:block}
[hidden]{display:none!important}
.wrap{width:min(1180px,100% - 32px); margin-inline:auto}

/* header */
.top{border-bottom:1px solid var(--line); background:var(--paper)}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px}
.top .logo img{height:40px; width:auto}
.top nav{display:flex; gap:22px; font-size:.92rem; color:var(--ink-2)}
.top nav a{text-decoration:none} .top nav a:hover{color:var(--teal)}
@media (max-width:560px){ .top nav .hide-s{display:none} }

/* layout */
.page{display:grid; grid-template-columns:1fr minmax(0,560px); gap:clamp(28px,5vw,72px); padding:clamp(32px,6vw,72px) 0 clamp(56px,8vw,96px); align-items:start}
@media (max-width:960px){ .page{grid-template-columns:1fr} }
.intro .kicker{font-size:.95rem; color:var(--teal); font-weight:500}
.intro h1{font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.04; letter-spacing:-.045em; font-weight:300; margin:12px 0 0}
.intro h1 b{font-weight:700}
.intro .lede{font-size:clamp(1.02rem,1.4vw,1.15rem); color:var(--ink-2); margin:18px 0 0; max-width:46ch}
.facts{margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line)}
.facts div{padding:14px 12px 14px 0; border-bottom:1px solid var(--line)}
.facts dt{font-size:.82rem; color:var(--ink-3)}
.facts dd{margin:2px 0 0; font-weight:500; letter-spacing:-.01em}
.next{margin-top:32px}
.next h2{font-size:1.05rem; font-weight:600; margin:0 0 10px; letter-spacing:-.01em}
.next ol{margin:0; padding:0; list-style:none; counter-reset:n; display:grid; gap:12px}
.next li{counter-increment:n; display:grid; grid-template-columns:28px 1fr; gap:10px; color:var(--ink-2); font-size:.95rem}
.next li::before{content:counter(n); width:24px; height:24px; border-radius:50%; border:1px solid var(--line-2); display:grid; place-items:center; font-size:.78rem; color:var(--teal); font-weight:600}
.next li b{color:var(--ink); font-weight:600}
.help{margin-top:28px; font-size:.92rem; color:var(--ink-2)}
.help a{color:var(--teal); font-weight:500}
@media (max-width:960px){ .intro .next,.intro .help{display:none} .after .next,.after .help{display:block} }
@media (min-width:961px){ .after{display:none} }

/* form card */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:clamp(22px,3.4vw,36px)}
.steps{display:flex; gap:18px; font-size:.86rem; color:var(--ink-3); margin-bottom:22px; padding-bottom:16px; border-bottom:1px solid var(--line)}
.steps span{display:flex; align-items:center; gap:8px}
.steps span::before{content:attr(data-n); width:22px; height:22px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line-2); font-size:.75rem; font-weight:600}
.steps span.on{color:var(--ink); font-weight:500}
.steps span.on::before{background:var(--teal); border-color:var(--teal); color:#fff}
.steps span.done::before{content:'✓'; background:var(--teal-l); border-color:var(--teal-l); color:var(--teal)}
.card h2{font-size:1.45rem; letter-spacing:-.03em; line-height:1.2; margin:0; font-weight:600}
.card .sub{color:var(--ink-2); margin:6px 0 0; font-size:.95rem}
form{display:grid; gap:16px; margin-top:22px}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media (max-width:520px){ .row2{grid-template-columns:1fr} }
.fld{display:grid; gap:6px; min-width:0}
.fld > label,.fld legend{font-size:.9rem; font-weight:500; padding:0}
.fld .opt{color:var(--ink-3); font-weight:400}
.fld .hint{font-size:.82rem; color:var(--ink-3)}
fieldset{border:0; margin:0; padding:0; min-width:0}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=search],select,textarea{
  width:100%; font:inherit; font-size:16px; color:var(--ink); background:#fff; border:1px solid var(--line-2); border-radius:6px; padding:11px 12px; outline:none; transition:border-color .2s, box-shadow .2s}
textarea{min-height:96px; resize:vertical}
select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236C7B77' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:34px}
input:focus,select:focus,textarea:focus{border-color:var(--teal); box-shadow:0 0 0 3px rgba(23,110,102,.15)}
.bad input,.bad select,.bad textarea,.bad .file{border-color:var(--err)}
.err-t{font-size:.82rem; color:var(--err)}
.phone{display:grid; grid-template-columns:86px 1fr; gap:8px}
.choices{display:grid; gap:8px; margin-top:4px}
.choices label{display:flex; gap:12px; align-items:flex-start; border:1px solid var(--line-2); border-radius:6px; padding:12px 14px; cursor:pointer; transition:border-color .2s, background .2s}
.choices label:hover{border-color:var(--teal)}
.choices input{margin:3px 0 0; accent-color:var(--teal); width:16px; height:16px; flex:none}
.choices b{display:block; font-weight:500; font-size:.95rem}
.choices small{display:block; color:var(--ink-3); font-size:.84rem}
.choices label:has(input:checked){border-color:var(--teal); background:var(--ok-bg)}
.check{display:flex; gap:10px; align-items:flex-start; font-size:.88rem; color:var(--ink-2); cursor:pointer}
.check input{margin:3px 0 0; accent-color:var(--teal); width:16px; height:16px; flex:none}
.file{display:flex; align-items:center; gap:12px; border:1px dashed var(--line-2); border-radius:6px; padding:14px; cursor:pointer; transition:border-color .2s, background .2s}
.file:hover,.file.drag{border-color:var(--teal); background:var(--ok-bg)}
.file input{position:absolute; width:1px; height:1px; opacity:0}
.file .fi{width:36px; height:36px; border-radius:6px; background:var(--teal-l); color:var(--teal); display:grid; place-items:center; flex:none}
.file .fi svg{width:18px; height:18px}
.file b{display:block; font-weight:500; font-size:.94rem; word-break:break-all}
.file small{color:var(--ink-3); font-size:.82rem}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; height:48px; padding:0 22px; border-radius:6px; border:0; font:600 .98rem var(--f); cursor:pointer; text-decoration:none; transition:background .2s, opacity .2s}
.btn svg{width:14px; height:14px}
.btn-p{background:var(--teal); color:#fff} .btn-p:hover{background:var(--teal-d)}
.btn-s{background:#fff; color:var(--ink); box-shadow:inset 0 0 0 1px var(--line-2)} .btn-s:hover{box-shadow:inset 0 0 0 1px var(--teal)}
.btn[disabled]{opacity:.6; cursor:progress}
.btn-row{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.fine{font-size:.8rem; color:var(--ink-3)}
.msg{border-radius:6px; padding:12px 14px; font-size:.9rem}
.msg.err{background:var(--err-bg); color:var(--err)}
.msg.note{background:var(--teal-l); color:var(--teal-d)}

.ready{display:grid; gap:16px; margin-top:20px}
.dl{display:flex; align-items:center; gap:14px; border:1px solid var(--line); border-radius:6px; padding:14px 16px; text-decoration:none; transition:border-color .2s}
.dl:hover{border-color:var(--teal)}
.dl .fi{width:40px; height:40px; border-radius:6px; background:var(--teal-l); color:var(--teal); display:grid; place-items:center; flex:none}
.dl .fi svg{width:18px; height:18px}
.dl b{display:block; font-weight:600}
.dl small{color:var(--ink-3); font-size:.84rem}
.dl .go{margin-left:auto; color:var(--teal)}
.divider{height:1px; background:var(--line); margin:6px 0}
.who{font-size:.9rem; color:var(--ink-2); background:var(--paper); border-radius:6px; padding:10px 12px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap}
.who button{background:none; border:0; color:var(--teal); font:500 .88rem var(--f); cursor:pointer; padding:0}

.done{text-align:left}
.done .tick{width:48px; height:48px; border-radius:50%; background:var(--teal-l); color:var(--teal); display:grid; place-items:center; margin-bottom:16px}
.done .tick svg{width:22px; height:22px}

.foot{border-top:1px solid var(--line); padding:22px 0 32px; font-size:.82rem; color:var(--ink-3)}
.foot .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 20px}
.foot a{text-decoration:none} .foot a:hover{color:var(--teal)}

/* ===== Native brochure and application forms ===== */
.card{border-radius:14px; box-shadow:0 20px 50px rgba(4,33,30,.07)}
.af{display:grid; gap:16px; margin:0}
.af[hidden]{display:none}
.af-head h2{font-size:1.4rem; font-weight:700; letter-spacing:-.025em; margin:0}
.af-head p{margin:6px 0 0; color:var(--ink-2); font-size:.92rem}
.af-f{display:grid; gap:6px; border:0; margin:0; padding:0; min-width:0}
.af-f > span,.af-f legend{font-size:.84rem; font-weight:600; color:#2B3A37; padding:0}
.af-f legend{margin-bottom:6px}
.af-f i{font-style:normal; font-weight:400; color:var(--ink-3)}
.af input:not([type=radio]):not([type=file]),.af select{height:48px; padding:0 14px; font:500 16px var(--f); color:var(--ink); background:#F6F8F7; border:1.5px solid #D5E2DF; border-radius:10px; outline:none; transition:border-color .15s, background .15s, box-shadow .15s; width:100%}
.af select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236C7B77' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px}
.af input::placeholder{color:#9AA7A4; font-weight:400}
.af input:focus,.af select:focus{background:#fff; border-color:#2BB3A3; box-shadow:0 0 0 4px rgba(43,179,163,.16)}
.af-ph{display:flex}
.af-ph i{display:grid; place-items:center; padding:0 13px; font-style:normal; font-weight:700; color:var(--ink); background:#E8F1EF; border:1.5px solid #D5E2DF; border-right:0; border-radius:10px 0 0 10px}
.af-ph input{border-radius:0 10px 10px 0 !important}
.af-chips{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.af-chips.sm{display:flex; flex-wrap:wrap; gap:6px}
.af-chips label{position:relative; cursor:pointer}
.af-chips input{position:absolute; opacity:0; pointer-events:none}
.af-chips span{display:flex; align-items:center; justify-content:center; min-height:46px; padding:8px 12px; text-align:center; font-size:.92rem; font-weight:600; color:#2B3A37; background:#F6F8F7; border:1.5px solid #D5E2DF; border-radius:10px; transition:all .15s}
.af-chips.sm span{min-height:40px; padding:6px 14px; font-size:.88rem; border-radius:999px}
.af-chips label:hover span{border-color:#9FD9CF}
.af-chips input:checked + span{background:#E3F6F2; border-color:#2BB3A3; color:var(--ink); box-shadow:inset 0 0 0 1px #2BB3A3}
.af-chips input:focus-visible + span{box-shadow:0 0 0 4px rgba(43,179,163,.25)}
.af-f.bad input:not([type=radio]),.af-f.bad select,.af-f.bad .af-chips span,.af-f.bad .af-file{border-color:#E5484D}
.af-2{display:grid; grid-template-columns:1fr 1.4fr; gap:12px}
.af-sep{display:flex; align-items:center; gap:12px; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-top:4px}
.af-sep::after{content:""; flex:1; height:1px; background:var(--line)}
.af-who{display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; background:#F1FAF8; border:1px solid #CFE7E2}
.af-who[hidden]{display:none}
.af-av{flex:none; width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#17A595,#0A4A44); color:#fff; font-weight:800; display:grid; place-items:center}
.af-who b{display:block; font-size:.95rem}
.af-who small{display:block; color:var(--ink-3); font-size:.82rem; margin-top:1px}
.af-who button{margin-left:auto; background:none; border:0; color:var(--teal); font:600 .85rem var(--f); cursor:pointer; white-space:nowrap}
.af-file{position:relative; display:flex; align-items:center; gap:12px; padding:14px; border:1.5px dashed #BFD6D1; border-radius:12px; background:#FAFCFB; cursor:pointer; transition:all .15s}
.af-file:hover,.af-file.drag{border-color:#2BB3A3; background:#F1FAF8}
.af-file.has{border-style:solid; border-color:#2BB3A3; background:#F1FAF8}
.af-file input{position:absolute; width:1px; height:1px; opacity:0}
.af-file .fi{width:40px; height:40px; border-radius:10px; background:#E3F4F0; color:var(--teal); display:grid; place-items:center; flex:none}
.af-file .fi svg{width:18px; height:18px}
.af-file b{display:block; font-size:.92rem; word-break:break-all} .af-file small{color:var(--ink-3); font-size:.8rem}
.af-err{margin:-4px 0 0; padding:10px 12px; border-radius:8px; background:#FDECEC; color:#B42318; font-size:.88rem}
.af-btn{display:flex; align-items:center; justify-content:center; gap:10px; width:100%; height:54px; border:0; border-radius:11px; cursor:pointer; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#0F6E64 0%,#0A4A44 55%,#04211E 100%); color:#fff; font:700 1rem var(--f); box-shadow:0 10px 24px rgba(4,33,30,.25), inset 0 1px 0 rgba(255,255,255,.12); transition:transform .15s, box-shadow .15s}
.af-btn::after{content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent); transform:skewX(-20deg); transition:left .6s}
.af-btn:hover{transform:translateY(-1px)} .af-btn:hover::after{left:130%}
.af-btn svg{width:15px; height:15px}
.af-btn.busy{opacity:.75; pointer-events:none} .af-btn.busy span::after{content:'…'}
.af-fine{margin:-4px 0 0; font-size:.78rem; color:var(--ink-3); line-height:1.45}
.af-fine a{color:var(--teal)}
.af-hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}
.af-ok{display:flex; gap:14px; align-items:flex-start; margin-bottom:16px}
.af-ok h2{font-size:1.3rem; margin:0; font-weight:700; letter-spacing:-.02em}
.af-ok p{margin:4px 0 0; color:var(--ink-2); font-size:.92rem}
.af-tick{flex:none; width:40px; height:40px; border-radius:50%; background:#2BB3A3; color:#04211E; display:grid; place-items:center}
.af-tick svg{width:20px; height:20px}
.af-next{margin-top:18px; padding-top:18px; border-top:1px solid var(--line); display:grid; gap:12px}
.af-next p{margin:0; color:var(--ink-2); font-size:.92rem}
@media (max-width:520px){ .af-2{grid-template-columns:1fr} .card{padding:20px 16px} }
