/* Public and logged-out experience */
body.public-site{
    --public-navy:#14233a;
    --public-blue:#1f5fbf;
    --public-blue-dark:#184e9e;
    --public-teal:#0f766e;
    --public-bg:#f5f7fa;
    --public-border:#dfe5ec;
    --public-copy:#56657a;
    background:var(--public-bg);
    color:var(--public-navy);
    font-size:15px;
    line-height:1.6;
}
body.public-site.candidate-portal{display:block;min-height:100vh;padding-bottom:0}
.public-site .candidate-footer{position:static;inset:auto;min-height:0;margin:0;padding:20px 16px;border-top:1px solid #dfe5ec;box-shadow:none}
.public-site .candidate-footer-inner{min-height:24px;color:#68778a;font-size:13px;font-weight:600}
.public-site .page-shell{min-height:calc(100vh - 148px)}
.public-site .container{--bs-gutter-x:2rem}

/* Header and navigation */
.public-site .site-header{
    position:sticky;
    top:0;
    z-index:1050;
    border-bottom:1px solid rgba(210,219,230,.9);
    background:rgba(255,255,255,.97);
    box-shadow:0 2px 14px rgba(20,35,58,.045);
    backdrop-filter:blur(14px);
}
.public-site .site-nav{min-height:80px;gap:22px}
.public-site .site-logo img{width:auto;height:48px;max-width:155px}
.public-site .site-links{gap:3px}
.public-site .site-links>a{
    padding:10px 12px;
    border-radius:8px;
    color:#3e4d62;
    font-size:14px;
    font-weight:650;
    transition:color .16s ease,background-color .16s ease;
}
.public-site .site-links>a:hover,.public-site .site-links>a.active{background:#f0f5fb;color:var(--public-blue)}
.public-site .site-links>a:after{display:none}
.public-site .language-select-wrap{position:relative;display:block}
.public-site .language-select-wrap>i{
    position:absolute;
    z-index:2;
    inset-inline-start:14px;
    top:50%;
    transform:translateY(-50%);
    color:#59708d;
    font-size:15px;
    pointer-events:none;
}
.public-site .language-select-wrap:after{
    content:"\F282";
    position:absolute;
    z-index:2;
    inset-inline-end:9px;
    top:50%;
    width:25px;
    height:25px;
    display:grid;
    place-items:center;
    transform:translateY(-50%);
    border-radius:7px;
    background:#eef3f8;
    color:#53657a;
    font-family:"bootstrap-icons";
    font-size:10px;
    line-height:1;
    pointer-events:none;
}
.public-site .language-form .language-select-wrap select{
    appearance:none!important;
    -webkit-appearance:none!important;
    min-width:148px;
    height:46px;
    padding-inline:39px 45px!important;
    border:1px solid #d5dee9;
    border-radius:10px;
    background:#fff!important;
    background-image:none!important;
    color:#25354a;
    font-size:14px;
    font-weight:700;
    line-height:1.2;
    text-align:start;
    box-shadow:none;
    cursor:pointer;
    transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.public-site .language-form .language-select-wrap select:hover{border-color:#aebed1;background-color:#f9fbfd!important}
.public-site .language-form .language-select-wrap select:focus{outline:0;border-color:#5787ca;box-shadow:0 0 0 3px rgba(31,95,191,.12)}
.public-site .primary-button{
    min-height:46px;
    padding:10px 18px;
    border:1px solid var(--public-blue);
    border-radius:10px;
    background:var(--public-blue);
    color:#fff!important;
    font-size:14px;
    font-weight:750;
    box-shadow:0 5px 13px rgba(31,95,191,.16);
    transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.public-site .primary-button:hover{transform:translateY(-1px);border-color:var(--public-blue-dark);background:var(--public-blue-dark);box-shadow:0 8px 18px rgba(31,95,191,.21)}
.public-site .secondary-button{
    min-height:46px;
    padding:10px 18px;
    border:1px solid #cbd6e3;
    border-radius:10px;
    background:#fff;
    color:#294663!important;
    font-size:14px;
    box-shadow:none;
}
.public-site .secondary-button:hover{border-color:#aebed1;background:#f5f8fb;color:var(--public-blue)!important}
.public-site .auth-menu summary.primary-button{min-height:46px;border-radius:10px;box-shadow:0 5px 13px rgba(31,95,191,.16)}
.public-site .auth-menu summary.primary-button:hover{box-shadow:0 8px 18px rgba(31,95,191,.21)}
.public-site .auth-menu summary.primary-button>i:last-child{
    width:23px;
    height:23px;
    display:grid;
    place-items:center;
    margin-inline-start:2px;
    border-radius:6px;
    background:rgba(255,255,255,.14);
    font-size:9px;
}
.public-site .auth-menu-popover{top:calc(100% + 10px);width:270px;padding:9px;border-color:#dbe2ea;border-radius:13px;box-shadow:0 18px 45px rgba(20,35,58,.16)}
.public-site .auth-menu-popover:before{display:none}
.public-site .site-links .auth-menu-popover a{min-height:49px;border-radius:9px;color:#314156;font-size:13px;font-weight:650}
.public-site .auth-menu-icon{border-radius:9px;background:#edf3fa;color:var(--public-blue)}

/* Shared surfaces and forms */
.public-site .surface{border:1px solid var(--public-border);border-radius:16px;box-shadow:0 8px 28px rgba(20,35,58,.055)}
.public-site .form-label{margin-bottom:6px;color:#34445a;font-size:13px;font-weight:700}
.public-site .form-control,.public-site .form-select{
    min-height:46px;
    border:1px solid #ced8e4;
    border-radius:9px;
    background-color:#fff;
    color:#1e2d40;
    font-size:14px;
}
.public-site .form-control::placeholder{color:#8a98aa}
.public-site .form-control:focus,.public-site .form-select:focus{border-color:#5f8dcc;box-shadow:0 0 0 3px rgba(31,95,191,.11)}
.public-site a{color:var(--public-blue)}

/* Homepage */
.public-site .public-home-hero{
    position:relative;
    padding:88px 0 94px;
    border-bottom:1px solid #e0e6ed;
    background:linear-gradient(180deg,#fbfcfe 0%,#f3f6fa 100%);
}
.public-site .public-home-hero:after{
    inset-inline-end:4%;
    top:40px;
    width:260px;
    height:260px;
    border:52px solid rgba(31,95,191,.025);
}
.public-site .public-home-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:68px}
.public-site .public-home-kicker{
    margin-bottom:22px;
    padding:7px 11px;
    border:1px solid #cddff5;
    border-radius:8px;
    background:#edf4fb;
    color:#24558e;
    font-size:12px;
    letter-spacing:.055em;
}
.public-site .public-home-kicker i{color:var(--public-teal)}
.public-site .public-home-copy h1{
    max-width:780px;
    margin-bottom:22px;
    color:var(--public-navy);
    font-size:clamp(2.55rem,4.4vw,4.35rem);
    font-weight:800;
    line-height:1.08;
    letter-spacing:-.045em;
}
.public-site .public-home-copy>p{max-width:740px;margin-bottom:29px;color:var(--public-copy);font-size:clamp(1.02rem,1.35vw,1.18rem);line-height:1.72}
.public-site .public-home-actions .primary-button,.public-site .public-home-actions .secondary-button{min-height:49px;border-radius:10px}
.public-site .public-feature-panel{overflow:hidden;padding:9px 25px;border-radius:17px;border-top:3px solid var(--public-blue);box-shadow:0 16px 40px rgba(20,35,58,.08)}
.public-site .feature-panel-glow{display:none}
.public-site .public-feature-item{grid-template-columns:45px minmax(0,1fr);gap:15px;padding:20px 0}
.public-site .public-feature-icon{width:45px;height:45px;border-radius:11px;background:#edf4fb;color:var(--public-blue);font-size:20px}
.public-site .public-feature-item:nth-of-type(2) .public-feature-icon{background:#e9f5f2;color:var(--public-teal)}
.public-site .public-feature-item:nth-of-type(3) .public-feature-icon{background:#fff3df;color:#b86b0a}
.public-site .public-feature-item h2{color:#233349;font-size:1rem;font-weight:750}
.public-site .public-feature-item p{color:#66758a;font-size:.9rem}

/* Information, pricing, program and policy pages */
.public-site .public-hero{
    padding:68px 0 72px;
    border-bottom:1px solid #dfe6ee;
    background:linear-gradient(115deg,#f8fafc 0%,#eef3f8 100%);
    color:var(--public-navy);
}
.public-site .public-hero-inner{grid-template-columns:minmax(0,1fr) 132px;max-width:1180px;gap:55px}
.public-site .public-hero .eyebrow{
    padding:6px 11px;
    border:1px solid #cbdced;
    border-radius:7px;
    background:#fff;
    color:#315c8d;
    font-size:11px;
    letter-spacing:.075em;
}
.public-site .public-hero h1{margin-top:18px!important;color:var(--public-navy);font-size:clamp(2.35rem,4vw,3.65rem);font-weight:800!important;letter-spacing:-.035em}
.public-site .public-hero p{max-width:900px;color:#55667c!important;font-size:1.15rem;line-height:1.65;opacity:1!important}
.public-site .hero-mark{
    width:128px;
    height:128px;
    border:1px solid #d7e1ec;
    border-radius:22px;
    background:#fff;
    color:var(--public-blue);
    font-size:44px;
    box-shadow:0 12px 28px rgba(20,35,58,.07);
    transform:none;
}
.public-site .public-content{position:relative;margin-top:0;padding-top:42px}
.public-site .public-value{padding:25px;border-radius:14px;box-shadow:0 5px 20px rgba(20,35,58,.045)}
.public-site .value-icon{width:47px;height:47px;border-radius:10px;background:#edf4fb;color:var(--public-blue);font-size:21px}
.public-site .public-value h2{color:#233349;font-size:17px;font-weight:750}
.public-site .public-value p{color:#657489!important;font-size:14px;line-height:1.6}
.public-site .public-content .row>div:nth-child(2) .value-icon{background:#e9f5f2;color:var(--public-teal)}
.public-site .public-content .row>div:nth-child(3) .value-icon{background:#fff3df;color:#b86b0a}
.public-site .cta-band{padding:26px 30px;border:0;border-radius:14px;background:var(--public-navy);box-shadow:none}
.public-site .cta-band h2{color:#fff;font-weight:750}
.public-site .cta-band p{color:#c9d4e2!important}
.public-site .cta-band .primary-button{border-color:#fff;background:#fff;color:#183f70!important;box-shadow:none}
.public-site .cta-band .primary-button:hover{border-color:#e8eef5;background:#e8eef5}

/* Login, signup, reset and public assessment entry */
.public-site .auth-shell{
    min-height:calc(100vh - 148px);
    padding:48px 16px;
    background:linear-gradient(135deg,#f6f8fb 0%,#edf2f7 100%);
}
.public-site .auth-card{width:min(100%,445px);padding:32px;border-radius:16px;box-shadow:0 14px 38px rgba(20,35,58,.09)}
.public-site .auth-card-wide{width:min(100%,1000px)}
.public-site .auth-icon{width:58px;height:58px;border-radius:13px;background:#eaf2fb;color:var(--public-blue);font-size:25px}
.public-site .auth-card h1{color:#1c2b3e;font-size:25px;letter-spacing:-.025em}
.public-site .auth-card .text-secondary{color:#6a788b!important}
.public-site .captcha-row{gap:9px}
.public-site .captcha-question{min-width:112px;border-color:#ced8e4;border-radius:9px;background:#f1f5f9;color:#26364b;font-size:17px}
.public-site .auth-aside{position:relative;overflow:hidden;background:#17304f;color:#fff}
.public-site .auth-aside:after{content:"";position:absolute;inset-inline-end:-90px;bottom:-100px;width:240px;height:240px;border:46px solid rgba(255,255,255,.035);border-radius:50%}
.public-site .auth-aside>*{position:relative;z-index:1}
.public-site .auth-aside h1,.public-site .auth-aside h2,.public-site .auth-aside h3{color:#fff!important}
.public-site .auth-aside p{color:#c8d5e4}
.public-site .auth-kicker{padding:6px 10px;border-radius:7px;background:rgba(255,255,255,.08);font-size:11px;letter-spacing:.045em;text-transform:uppercase}
.public-site .auth-benefits i{color:#63c4ba}
.public-site .form-check-input:checked{border-color:var(--public-blue);background-color:var(--public-blue)}

/* Signup */
.public-site .signup-shell{padding:38px 16px;align-items:center}
.public-site .signup-card{display:grid;grid-template-columns:minmax(310px,35%) minmax(0,65%);overflow:hidden;width:min(100%,1120px);padding:0;border-radius:18px}
.public-site .signup-aside{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:34px;padding:40px 36px;background:#173452;color:#fff}
.public-site .signup-aside:after{content:"";position:absolute;inset-inline-end:-88px;bottom:-105px;width:235px;height:235px;border:46px solid rgba(255,255,255,.035);border-radius:50%}
.public-site .signup-aside>*{position:relative;z-index:1}
.public-site .signup-aside .auth-kicker{display:inline-flex;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#dce9f6}
.public-site .signup-mark{width:54px;height:54px;display:grid;place-items:center;margin-top:28px;border-radius:13px;background:#fff;color:#1f5fbf;font-size:23px;box-shadow:0 8px 22px rgba(5,18,32,.16)}
.public-site .signup-aside h1{margin:19px 0 10px;color:#fff!important;font-size:29px;font-weight:800;letter-spacing:-.035em}
.public-site .signup-aside>div>p{max-width:360px;margin:0;color:#cbd8e6;font-size:14px;line-height:1.7}
.public-site .signup-benefits{display:grid;gap:11px}
.public-site .signup-benefits li{display:grid;grid-template-columns:39px minmax(0,1fr);align-items:center;gap:11px;padding:11px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.045)}
.public-site .signup-benefits li>span{width:39px;height:39px;display:grid;place-items:center;border-radius:9px;background:rgba(92,201,189,.13);color:#6ed0c4;font-size:17px}
.public-site .signup-benefits strong,.public-site .signup-benefits small{display:block}
.public-site .signup-benefits strong{color:#fff;font-size:13px;font-weight:750}
.public-site .signup-benefits small{overflow:hidden;margin-top:2px;color:#adbed0;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.public-site .signup-form-panel{padding:34px 40px 30px;background:#fff}
.public-site .signup-form-heading{display:flex;align-items:center;gap:12px;margin-bottom:25px;padding-bottom:18px;border-bottom:1px solid #e7ecf2}
.public-site .signup-form-icon{width:43px;height:43px;display:grid;place-items:center;flex:0 0 43px;border-radius:10px;background:#eaf2fb;color:#1f5fbf;font-size:19px}
.public-site .signup-form-heading h2{margin:0;color:#1e2f44;font-size:19px;font-weight:800;letter-spacing:-.02em}
.public-site .signup-form-heading p{margin:3px 0 0;color:#768498;font-size:11px}
.public-site .signup-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 18px}
.public-site .signup-field-wide{grid-column:1/-1}
.public-site .signup-form-panel>.signup-field-wide{margin-bottom:17px}
.public-site .signup-field .form-control{width:100%}
.public-site .signup-field .form-text{margin-top:6px;color:#718095;font-size:10px;line-height:1.45}
.public-site .signup-security{margin-top:19px;padding:15px;border:1px solid #dde5ee;border-radius:11px;background:#f8fafc}
.public-site .signup-security .captcha-question{background:#fff}
.public-site .signup-terms{margin-top:17px;color:#4d5d72;font-size:12px;line-height:1.5}
.public-site .signup-terms .form-check-input{margin-top:.2em}
.public-site .signup-submit{margin-top:19px}
.public-site .signup-signin{margin-top:17px;font-size:12px}

/* Login portal selection and footer */
.public-site .portal-choice-intro{max-width:650px;margin-inline:auto}
.public-site .portal-choice-card{position:relative;padding:26px!important;border-radius:14px!important;text-align:start!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.public-site .portal-choice-card:hover{transform:translateY(-2px);border-color:#b9c9db;box-shadow:0 12px 28px rgba(20,35,58,.085)}
.public-site .portal-choice-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:11px;background:#edf4fb;color:var(--public-blue);font-size:21px}
.public-site .portal-choice-card[data-portal="candidate"] .portal-choice-icon{background:#e9f5f2;color:var(--public-teal)}
.public-site .portal-choice-card[data-portal="partner"] .portal-choice-icon{background:#fff3df;color:#b86b0a}
.public-site .portal-choice-card h2{font-size:17px!important;font-weight:750}
.public-site .portal-choice-arrow{position:absolute;inset-inline-end:22px;top:27px;color:#94a3b8}
.public-site .site-footer{padding:21px 0;border-top:1px solid #dfe5ec;background:#fff;color:#68778a;font-size:13px}

@media(max-width:1199px){
    .public-site .site-nav{gap:11px}
    .public-site .site-links>a{padding-inline:8px;font-size:13px}
    .public-site .public-home-grid{gap:42px}
}
@media(max-width:991px){
    .public-site .site-nav{min-height:70px;padding-block:10px}
    .public-site .mobile-toggle{width:42px;height:42px;border-color:#d4dde8;border-radius:9px;background:#fff;color:#26364b}
    .public-site .site-links{inset-inline:12px;top:calc(100% + 1px);padding:11px;border-color:#dbe2ea;border-radius:0 0 14px 14px;box-shadow:0 20px 42px rgba(20,35,58,.15)}
    .public-site .site-links>a{min-height:46px;border-radius:9px;font-size:14px}
    .public-site .nav-link-icon{border-radius:8px;background:#f0f4f8;color:#53657a}
    .public-site .language-form .language-select-wrap select{width:100%;min-width:0}
    .public-site .auth-menu summary.primary-button{width:100%;justify-content:flex-start}
    .public-site .auth-menu-popover{position:static;width:100%;margin-top:8px;background:#f6f8fb;box-shadow:none}
    .public-site .public-home-hero{padding:62px 0 68px}
    .public-site .public-home-grid{grid-template-columns:1fr;gap:38px}
    .public-site .public-feature-panel{max-width:none}
    .public-site .public-hero{padding:50px 0 55px}
    .public-site .public-hero-inner{grid-template-columns:1fr}
    .public-site .hero-mark{display:none}
    .public-site .auth-shell{padding:32px 14px}
    .public-site .signup-card{grid-template-columns:1fr;width:min(100%,720px)}
    .public-site .signup-aside{display:block;padding:30px 32px}
    .public-site .signup-mark{margin-top:21px}
    .public-site .signup-benefits{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:25px}
    .public-site .signup-benefits li{display:flex;padding:9px}
    .public-site .signup-benefits li>span{flex:0 0 36px;width:36px;height:36px}
    .public-site .signup-benefits small{display:none}
}
@media(max-width:575px){
    .public-site .container{--bs-gutter-x:1.35rem}
    .public-site .site-logo img{height:42px}
    .public-site .public-home-hero{padding:44px 0 50px}
    .public-site .public-home-copy h1{font-size:clamp(2.1rem,10vw,2.75rem)}
    .public-site .public-home-actions{grid-template-columns:1fr}
    .public-site .public-home-actions a{width:100%}
    .public-site .public-feature-panel{padding:6px 17px}
    .public-site .public-hero h1{font-size:2.2rem}
    .public-site .public-content{padding-top:28px}
    .public-site .cta-band{padding:23px}
    .public-site .auth-card{padding:25px 20px}
    .public-site .captcha-row{flex-direction:column}
    .public-site .captcha-question{min-height:46px}
    .public-site .signup-shell{padding:20px 10px}
    .public-site .signup-card{padding:0;border-radius:14px}
    .public-site .signup-aside{padding:25px 22px}
    .public-site .signup-aside h1{font-size:25px}
    .public-site .signup-benefits{grid-template-columns:1fr;gap:8px}
    .public-site .signup-benefits li{display:grid}
    .public-site .signup-form-panel{padding:25px 20px}
    .public-site .signup-form-grid{grid-template-columns:1fr;gap:15px}
    .public-site .signup-field-wide{grid-column:auto}
}
