/* JSC Institutional Header & Footer - global presentation layer */
:root{
    --jsc-green:#006b3f;
    --jsc-green-dark:#004f2d;
    --jsc-green-deep:#003c23;
    --jsc-gold:#c8a951;
    --jsc-cream:#f7f2e6;
    --jsc-white:#fff;
}
.jsc-global-header{
    position:relative;
    z-index:100;
    background:linear-gradient(90deg,var(--jsc-green-deep),var(--jsc-green) 58%,#0b7448);
    border-bottom:4px solid var(--jsc-gold);
    box-shadow:0 2px 10px rgba(0,0,0,.16);
    color:#fff;
}
.jsc-global-header__inner{
    min-height:82px;
    max-width:1600px;
    margin:0 auto;
    padding:10px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.jsc-global-header__brand{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
    color:#fff!important;
    text-decoration:none!important;
}
.jsc-global-header__logo{height:58px;width:auto;display:block;object-fit:contain}
.jsc-global-header__identity{display:flex;flex-direction:column;line-height:1.2}
.jsc-global-header__identity strong{font-size:18px;letter-spacing:.7px;font-weight:800}
.jsc-global-header__identity small{margin-top:5px;font-size:11px;letter-spacing:.65px;opacity:.92}
.jsc-global-header__context{text-align:right;display:flex;flex-direction:column;gap:5px;white-space:nowrap}
.jsc-global-header__eyebrow{font-size:10px;font-weight:800;letter-spacing:1.4px;opacity:.78}
.jsc-global-header__motto{font-size:14px;font-weight:700}
.jsc-global-footer{
    position:relative;
    min-height:91px;
    background:linear-gradient(90deg,#004d2c,#00663c 60%,#005a35);
    color:#fff;
    border-top:4px solid var(--jsc-gold);
    overflow:hidden;
    background-image:url('../img/jsc-footer-pattern.png');
    background-repeat:no-repeat;
    background-position:right center;
    background-size:auto 100%;
}
.jsc-global-footer__inner{
    min-height:87px;
    max-width:1600px;
    margin:0 auto;
    padding:0 28px;
    display:grid;
    grid-template-columns:minmax(330px,1fr) auto;
    align-items:center;
    gap:22px;
    position:relative;
    z-index:1;
}
.jsc-global-footer__brand{display:flex;align-items:center;gap:13px;min-width:0}
.jsc-global-footer__brand img{height:58px;width:auto;display:block;object-fit:contain}
.jsc-global-footer__brand div{display:flex;flex-direction:column;line-height:1.2}
.jsc-global-footer__brand strong{font-size:14px;letter-spacing:.65px}
.jsc-global-footer__brand span{font-size:10px;letter-spacing:.45px;margin-top:4px;opacity:.9}
.jsc-global-footer__links{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.jsc-global-footer__link{
    display:inline-flex;align-items:center;gap:6px;
    min-height:34px;padding:0 10px;
    border-radius:4px;color:#fff!important;text-decoration:none!important;
    font-size:11px;font-weight:700;
    transition:background .15s ease,transform .15s ease;
}
.jsc-global-footer__link:hover{background:rgba(255,255,255,.12);transform:translateY(-1px)}
.jsc-global-footer__icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.jsc-global-footer__icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer{display:block!important;background:#fff;color:#6f7f87;text-align:center;padding:12px 16px;font-size:11px;border-top:1px solid #e6ece9;box-sizing:border-box}.footer p{margin:0}.footer a{color:#006b3f!important}
@media(max-width:900px){
    .jsc-global-header__inner{padding:9px 16px;min-height:70px}
    .jsc-global-header__logo{height:48px}
    .jsc-global-header__identity strong{font-size:15px}
    .jsc-global-header__context{display:none}
    .jsc-global-footer__inner{grid-template-columns:1fr;padding:10px 16px;gap:6px}
    .jsc-global-footer__links{justify-content:flex-start;flex-wrap:wrap;white-space:normal}
    .jsc-global-footer{min-height:120px}
}
@media(max-width:520px){
    .jsc-global-header__identity small{font-size:9px}
    .jsc-global-footer__brand img{height:48px}
    .jsc-global-footer__link{padding:0 7px;font-size:10px}
}


/* =========================================================
   JSC CUSTOMER HEADER + PRIMARY NAVIGATION
   Customer-facing presentation only. HESK logic remains intact.
   ========================================================= */
.jsc-customer-header{
    position:relative;
    z-index:1000;
    width:100%;
    background:#fff;
    color:#0a5740;
    box-shadow:0 2px 12px rgba(0,0,0,.12);
}
.jsc-customer-header__top{
    position:relative;
    min-height:110px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding:8px 76px 8px 72px;
    box-sizing:border-box;
    overflow:hidden;
    border-bottom:1px solid #e6e6e6;
}
.jsc-customer-header__brand{
    min-width:0;
    display:flex;
    align-items:center;
    gap:18px;
    text-decoration:none!important;
    color:#174c3a!important;
}
.jsc-customer-header__marks-wrap{
    display:flex;
    align-items:center;
    flex:0 0 auto;
    height:94px;
    padding-right:14px;
    border-right:1px solid #dedede;
}
.jsc-customer-header__marks{
    width:184px;
    height:78px;
    object-fit:contain;
    display:block;
}
.jsc-customer-header__identity{
    display:flex;
    flex-direction:column;
    line-height:1.05;
    min-width:0;
}
.jsc-customer-header__identity strong{
    font-family:Georgia,"Times New Roman",serif;
    font-size:26px;
    letter-spacing:.4px;
    color:#0d5a42;
    white-space:nowrap;
}
.jsc-customer-header__identity span{
    margin-top:6px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:16px;
    font-weight:700;
    letter-spacing:1px;
    color:#24483d;
    white-space:nowrap;
}
.jsc-customer-header__identity em{
    margin-top:8px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:13px;
    font-style:italic;
    letter-spacing:.7px;
    color:#b68a00;
    white-space:nowrap;
}
.jsc-customer-header__portal{
    position:relative;
    z-index:2;
    margin-left:auto;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    padding-right:8px;
    text-align:right;
    white-space:nowrap;
}
.jsc-customer-header__eyebrow{
    font-size:11px;
    font-weight:800;
    letter-spacing:3px;
    color:#27473f;
}
.jsc-customer-header__motto{
    margin-top:7px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:18px;
    font-weight:700;
    color:#b68600;
}
.jsc-customer-header__flag{
    position:absolute;
    z-index:1;
    right:0;
    top:0;
    width:92px;
    height:110px;
    object-fit:cover;
    object-position:left top;
    pointer-events:none;
}
.jsc-customer-nav{
    background:linear-gradient(90deg,#005437 0%,#006a43 54%,#005d3a 100%);
    border-bottom:3px solid #caa20b;
}
.jsc-customer-nav__inner{
    width:min(100%,1500px);
    min-height:68px;
    margin:0 auto;
    display:flex;
    align-items:stretch;
    justify-content:center;
    padding:0 18px;
    box-sizing:border-box;
}
.jsc-customer-nav__item{
    position:relative;
    min-height:68px;
    padding:0 28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    color:#fff!important;
    text-decoration:none!important;
    font-size:15px;
    font-weight:700;
    letter-spacing:.15px;
    border-left:1px solid rgba(255,255,255,.22);
    transition:background-color .16s ease, transform .16s ease;
    white-space:nowrap;
}
.jsc-customer-nav__item:last-child{border-right:1px solid rgba(255,255,255,.22)}
.jsc-customer-nav__item:hover{background:rgba(255,255,255,.09)}
.jsc-customer-nav__item.is-active{
    background:linear-gradient(180deg,#d3a812,#bd8e00);
    color:#fff!important;
}
.jsc-customer-nav__item.is-active::after{
    content:"";
    position:absolute;
    left:14px;
    right:14px;
    bottom:0;
    height:3px;
    background:#fff;
    opacity:.92;
}
.jsc-customer-nav__icon{
    width:28px;
    height:28px;
    flex:0 0 28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.jsc-customer-nav__icon svg{
    width:26px;
    height:26px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}
/* Remove HESK's legacy secondary customer navigation; the JSC nav above replaces it. */
.cust-help .main > .header{display:none!important}
.cust-help.jsc-customer-home .breadcrumbs{display:none!important}
@media(max-width:1200px){
    .jsc-customer-header__top{padding-left:30px;padding-right:60px;gap:14px}
    .jsc-customer-header__identity strong{font-size:22px}
    .jsc-customer-header__identity span{font-size:13px}
    .jsc-customer-nav__item{padding-left:18px;padding-right:18px;font-size:14px;gap:9px}
}
@media(max-width:920px){
    .jsc-customer-header__top{min-height:92px;padding:8px 18px}
    .jsc-customer-header__marks-wrap{height:76px;padding-right:10px}
    .jsc-customer-header__marks{width:130px;height:62px}
    .jsc-customer-header__identity strong{font-size:18px}
    .jsc-customer-header__identity span{font-size:11px;letter-spacing:.5px}
    .jsc-customer-header__identity em{font-size:10px}
    .jsc-customer-header__portal{padding-right:34px}
    .jsc-customer-header__eyebrow{font-size:8px;letter-spacing:2px}
    .jsc-customer-header__motto{font-size:14px}
    .jsc-customer-header__flag{width:62px;height:92px}
    .jsc-customer-nav__inner{overflow-x:auto;justify-content:flex-start;padding:0 8px}
    .jsc-customer-nav__item{flex:0 0 auto;min-height:58px;padding:0 17px;font-size:12px}
    .jsc-customer-nav__icon{width:23px;height:23px;flex-basis:23px}
    .jsc-customer-nav__icon svg{width:22px;height:22px}
}
@media(max-width:620px){
    .jsc-customer-header__top{display:block;min-height:106px;padding:8px 58px 8px 12px}
    .jsc-customer-header__brand{gap:10px}
    .jsc-customer-header__marks-wrap{height:67px}
    .jsc-customer-header__marks{width:102px;height:54px}
    .jsc-customer-header__identity strong{font-size:15px}
    .jsc-customer-header__identity span{font-size:9px;margin-top:5px}
    .jsc-customer-header__identity em{display:none}
    .jsc-customer-header__portal{position:absolute;right:50px;bottom:7px;padding:0;align-items:flex-end}
    .jsc-customer-header__eyebrow{font-size:7px}
    .jsc-customer-header__motto{font-size:11px;margin-top:3px}
    .jsc-customer-header__flag{width:48px;height:106px}
    .jsc-customer-nav__item{padding:0 14px;font-size:11px}
}

/* =========================================================
   JSC GLOBAL SHELL — HESK FLEX LAYOUT SAFE POSITIONING
   The HESK wrapper is a horizontal flex container. The
   institutional header/footer must therefore be taken out
   of that flex row so they span the complete viewport.
   ========================================================= */
body:not(.jsc-login-page) .wrapper{
    position:relative;
    padding-top:96px;
    padding-bottom:91px;
    box-sizing:border-box;
}

/* Customer pages render the institutional header and navigation before the HESK wrapper.
 * Do not reserve header/footer height inside the wrapper; doing so creates the large blank
 * band immediately below the navigation. The header/nav/footer are already in document flow. */
body.cust-help .wrapper{
    padding-top:0 !important;
    padding-bottom:0 !important;
}

body:not(.jsc-login-page) .jsc-global-header{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:96px;
    min-height:96px;
    box-sizing:border-box;
}

body:not(.jsc-login-page) .jsc-global-footer{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:91px;
    min-height:91px;
    box-sizing:border-box;
}

/* =========================================================
   LOGIN ROUTE — CLEAN JSC PRESENTATION
   ========================================================= */
html.jsc-login-html,
html.jsc-login-html body{
    width:100%;
    min-height:100%;
    margin:0;
    padding:0;
}

body.jsc-login-page .wrapper{
    display:block;
    width:100%;
    min-height:100vh;
    margin:0;
    padding:0;
    background:var(--jsc-cream);
}

body.jsc-login-page .jsc-login-main{
    width:100%;
    min-height:100vh;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    background:var(--jsc-cream);
}

body.jsc-login-page .jsc-login-header{
    width:100%;
    height:112px;
    min-height:112px;
    display:grid;
    grid-template-columns:280px minmax(0,1fr) 220px;
    align-items:center;
    background:#fff;
    border-bottom:4px solid var(--jsc-gold);
    overflow:hidden;
}

body.jsc-login-page .jsc-login-header-brand{
    height:100%;
    display:flex;
    align-items:center;
    padding:0 24px;
}

body.jsc-login-page .jsc-login-header-logo{
    width:220px;
    max-width:100%;
    height:auto;
    display:block;
    object-fit:contain;
}

body.jsc-login-page .jsc-login-header-title{
    height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:0 20px;
}

body.jsc-login-page .jsc-login-header-title h1{
    margin:0;
    color:#063b31;
    font-family:Georgia,"Times New Roman",serif;
    font-size:29px;
    line-height:1.1;
    font-weight:700;
    letter-spacing:.025em;
    white-space:nowrap;
}

body.jsc-login-page .jsc-login-header-title p{
    margin:8px 0 0;
    color:#536b72;
    font-family:Arial,sans-serif;
    font-size:12px;
    line-height:1.2;
    font-weight:600;
    letter-spacing:.12em;
    white-space:nowrap;
}

body.jsc-login-page .jsc-login-header-motto{
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 18px;
    background:linear-gradient(135deg,#004b39,#00382d);
    color:var(--jsc-gold-light);
    text-align:center;
    font-family:Georgia,"Times New Roman",serif;
    font-size:19px;
    line-height:1.15;
    font-style:italic;
}

body.jsc-login-page .jsc-login-stage{
    flex:1 0 auto;
    width:100%;
    min-height:calc(100vh - 203px);
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(430px,.9fr);
    background:var(--jsc-cream);
    overflow:hidden;
}

body.jsc-login-page .jsc-login-hero{
    position:relative;
    min-height:calc(100vh - 203px);
    overflow:hidden;
    background:#003d30;
}

body.jsc-login-page .jsc-login-hero img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

body.jsc-login-page .jsc-login-hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,40,30,.02),rgba(0,55,40,.72));
    pointer-events:none;
}

body.jsc-login-page .jsc-login-card-area{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:#fff;
}

body.jsc-login-page .jsc-login-card{
    width:min(100%,500px);
    margin:0 auto;
    padding:28px 34px 25px;
    background:#fff;
    border:1px solid #e1e5e3;
    border-top:4px solid var(--jsc-gold);
    border-radius:4px;
    box-shadow:0 8px 28px rgba(0,0,0,.10);
}

body.jsc-login-page .jsc-card-brand{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    margin-bottom:24px;
}

body.jsc-login-page .jsc-card-brand img{
    width:205px;
    height:auto;
    margin-bottom:13px;
}

body.jsc-login-page .jsc-card-kicker{
    color:#66757a;
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

body.jsc-login-page .jsc-card-title{
    margin-top:5px;
    color:#063b31;
    font-size:17px;
    font-weight:700;
}

body.jsc-login-page .jsc-login-form .jsc-field{
    margin-bottom:17px;
}

body.jsc-login-page .jsc-login-card label{
    display:block;
    margin-bottom:7px;
    color:#173d35;
    font-size:13px;
    font-weight:700;
}

body.jsc-login-page .jsc-input-shell{
    position:relative;
}

body.jsc-login-page .jsc-input-icon{
    position:absolute;
    left:13px;
    top:50%;
    transform:translateY(-50%);
    width:20px;
    height:20px;
    color:#64777b;
    pointer-events:none;
}

body.jsc-login-page .jsc-input-icon svg{
    width:100%;
    height:100%;
}

body.jsc-login-page .jsc-login-card input[type="text"],
body.jsc-login-page .jsc-login-card input[type="password"]{
    width:100%;
    height:46px;
    padding:0 42px;
    border:1px solid #cfd9d8;
    border-radius:4px;
    background:#fff;
    color:#173d35;
    font-size:14px;
    outline:none;
}

body.jsc-login-page .jsc-login-card input:focus{
    border-color:#006b4f;
    box-shadow:0 0 0 3px rgba(0,107,79,.10);
}

body.jsc-login-page .jsc-password-toggle{
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    padding:7px;
    border:0;
    background:transparent;
    color:#66777b;
    cursor:pointer;
}

body.jsc-login-page .jsc-login-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin:8px 0 21px;
}

body.jsc-login-page .jsc-remember{
    display:flex!important;
    align-items:center;
    gap:8px;
    margin:0!important;
    font-weight:400!important;
}

body.jsc-login-page .jsc-remember input{
    width:auto!important;
    height:auto!important;
}

body.jsc-login-page .jsc-forgot-link{
    color:#006b4f!important;
    font-size:13px;
    font-weight:700;
}

body.jsc-login-page .jsc-login-button{
    width:100%;
    min-height:47px;
    border:0;
    border-radius:4px;
    background:#006b4f;
    color:#fff;
    font-size:15px;
    font-weight:800;
    letter-spacing:.05em;
    cursor:pointer;
    box-shadow:0 5px 14px rgba(0,75,55,.18);
}

body.jsc-login-page .jsc-login-button:hover{background:#00573f}

body.jsc-login-page .jsc-login-button-icon{
    display:inline-flex;
    width:18px;
    margin-left:7px;
    vertical-align:middle;
}

body.jsc-login-page .jsc-or{
    margin:19px 0 9px;
    text-align:center;
    color:#7b8788;
    font-size:11px;
    font-weight:700;
}

body.jsc-login-page .jsc-public-button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#006b4f!important;
    font-size:13px;
    font-weight:700;
    text-decoration:none!important;
}

body.jsc-login-page .jsc-public-button svg{width:17px;height:17px}

body.jsc-login-page .jsc-card-motto{
    margin-top:24px;
    padding-top:15px;
    border-top:1px solid #e2e6e4;
    color:#a07c35;
    font-family:Georgia,"Times New Roman",serif;
    font-size:12px;
    font-style:italic;
    text-align:center;
}

body.jsc-login-page .jsc-login-footer{
    flex:0 0 91px;
    width:100%;
    height:91px;
    min-height:91px;
    margin:0;
    padding:0;
    background:url('../img/jsc-footer-pattern.png') right center/auto 100% no-repeat,linear-gradient(105deg,#003d31,#004c3a 58%,#00362c);
    border-top:2px solid var(--jsc-gold);
    color:#fff;
    overflow:hidden;
}

body.jsc-login-page .jsc-footer-inner{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 34px;
    box-sizing:border-box;
}

body.jsc-login-page .jsc-footer-brand{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

body.jsc-login-page .jsc-footer-emblem{
    width:88px;
    height:72px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-right:12px;
    border-right:1px solid rgba(255,255,255,.28);
}

body.jsc-login-page .jsc-footer-emblem img{width:72px;height:68px;object-fit:contain}
body.jsc-login-page .jsc-footer-identity{display:flex;flex-direction:column;gap:4px;white-space:nowrap}
body.jsc-login-page .jsc-footer-identity strong{font-size:14px;font-weight:700;letter-spacing:.04em}
body.jsc-login-page .jsc-footer-identity span{font-size:10px;opacity:.86}
body.jsc-login-page .jsc-footer-links{display:flex;align-items:center;gap:0;white-space:nowrap}
body.jsc-login-page .jsc-footer-links a{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;color:#fff!important;text-decoration:none!important;font-size:11px;font-weight:700;border-left:1px solid rgba(255,255,255,.18)}
body.jsc-login-page .jsc-footer-links a:first-child{border-left:0}
body.jsc-login-page .jsc-footer-links a:hover{background:rgba(255,255,255,.08);color:#f2d47b!important}
body.jsc-login-page .jsc-footer-motto{display:none}

@media(max-width:900px){
    body:not(.jsc-login-page) .wrapper{padding-top:82px;padding-bottom:120px}
    body:not(.jsc-login-page) .jsc-global-header{height:82px;min-height:82px}
    body:not(.jsc-login-page) .jsc-global-footer{height:120px;min-height:120px}
    body.jsc-login-page .jsc-login-header{height:auto;min-height:88px;grid-template-columns:1fr 170px}
    body.jsc-login-page .jsc-login-header-brand{padding:10px 16px}
    body.jsc-login-page .jsc-login-header-logo{width:175px}
    body.jsc-login-page .jsc-login-header-title{padding:10px}
    body.jsc-login-page .jsc-login-header-title h1{font-size:20px}
    body.jsc-login-page .jsc-login-header-title p{font-size:9px;letter-spacing:.06em}
    body.jsc-login-page .jsc-login-header-motto{font-size:15px}
    body.jsc-login-page .jsc-login-stage{grid-template-columns:1fr}
    body.jsc-login-page .jsc-login-hero{min-height:300px}
    body.jsc-login-page .jsc-login-card-area{padding:22px 16px}
    body.jsc-login-page .jsc-footer-inner{padding:8px 14px;flex-wrap:wrap;gap:5px}
    body.jsc-login-page .jsc-login-footer{height:auto;min-height:120px;flex-basis:120px}
    body.jsc-login-page .jsc-footer-links{width:100%;justify-content:flex-start;overflow:auto}
}

@media(max-width:520px){
    body.jsc-login-page .jsc-login-header{grid-template-columns:1fr}
    body.jsc-login-page .jsc-login-header-motto{display:none}
    body.jsc-login-page .jsc-login-header-title{align-items:flex-start;text-align:left}
    body.jsc-login-page .jsc-login-stage{min-height:0}
    body.jsc-login-page .jsc-login-hero{min-height:230px}
    body.jsc-login-page .jsc-login-card{padding:22px 18px}
    body.jsc-login-page .jsc-footer-identity span{font-size:9px}
    body.jsc-login-page .jsc-footer-links a{padding:0 8px;font-size:10px}
}

/* =========================================================
   JSC FOOTER FINAL VISUAL OVERRIDE
   Presentation only — do not alter HESK layout.
   ========================================================= */

.jsc-global-footer {
    position: relative;
    width: 100%;
    min-height: 91px;
    height: 91px;
    box-sizing: border-box;

    background-color: #004d2c;

    /* Green base + JSC geometric pattern */
    background-image:
        linear-gradient(
            90deg,
            #004d2c 0%,
            #00663c 58%,
            rgba(0,90,53,.96) 100%
        ),
        url('../img/jsc-footer-pattern.png');

    background-repeat:
        no-repeat,
        no-repeat;

    background-position:
        center center,
        right center;

    background-size:
        100% 100%,
        auto 100%;

    color: #fff;

    border-top: 4px solid var(--jsc-gold);

    overflow: hidden;
}


/* Footer contents */
.jsc-global-footer__inner {
    min-height: 87px;
    height: 87px;

    max-width: 1600px;

    margin: 0 auto;

    padding: 0 28px;

    box-sizing: border-box;

    display: grid;

    grid-template-columns:
        minmax(360px, 1fr)
        auto;

    align-items: center;

    column-gap: 28px;

    position: relative;

    z-index: 2;
}


/* JSC identity */
.jsc-global-footer__brand {
    display: flex;
    align-items: center;

    gap: 13px;

    min-width: 0;

    color: #fff;
}

.jsc-global-footer__brand img {
    height: 58px;
    width: auto;

    display: block;

    object-fit: contain;

    flex: 0 0 auto;
}

.jsc-global-footer__brand div {
    display: flex;
    flex-direction: column;

    line-height: 1.2;

    min-width: 0;
}

.jsc-global-footer__brand strong {
    color: #fff !important;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: .65px;

    white-space: nowrap;
}

.jsc-global-footer__brand span {
    color: #fff !important;

    font-size: 10px;

    letter-spacing: .45px;

    margin-top: 4px;

    opacity: .9;

    white-space: nowrap;
}


/* Footer links */
.jsc-global-footer__links {
    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 4px;

    white-space: nowrap;

    flex-shrink: 0;

    position: relative;

    z-index: 3;
}

.jsc-global-footer__link {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    min-height: 36px;

    padding: 0 9px;

    border-radius: 4px;

    color: #fff !important;

    text-decoration: none !important;

    font-size: 11px;

    font-weight: 700;

    white-space: nowrap;

    box-sizing: border-box;
}

.jsc-global-footer__link:hover {
    background: rgba(255,255,255,.12);

    color: #f2d47b !important;
}

.jsc-global-footer__icon {
    width: 18px;
    height: 18px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 18px;
}

.jsc-global-footer__icon svg {
    width: 17px;
    height: 17px;

    fill: none;

    stroke: currentColor;

    stroke-width: 1.7;

    stroke-linecap: round;

    stroke-linejoin: round;
}


/* Keep the original HESK footer visually suppressed */
.footer {
    display: none !important;
}


/* =========================================================
   RESPONSIVE FOOTER
   ========================================================= */

@media (max-width: 1100px) {

    .jsc-global-footer__inner {
        padding-left: 18px;
        padding-right: 18px;

        column-gap: 12px;
    }

    .jsc-global-footer__link {
        padding-left: 7px;
        padding-right: 7px;

        font-size: 10px;
    }
}


@media (max-width: 900px) {

    .jsc-global-footer {
        height: auto;

        min-height: 120px;
    }

    .jsc-global-footer__inner {
        min-height: 116px;

        height: auto;

        padding: 10px 16px;

        display: flex;

        flex-direction: column;

        align-items: flex-start;

        justify-content: center;

        gap: 7px;
    }

    .jsc-global-footer__brand {
        width: 100%;
    }

    .jsc-global-footer__links {
        width: 100%;

        justify-content: flex-start;

        flex-wrap: wrap;

        white-space: normal;
    }
}


@media (max-width: 520px) {

    .jsc-global-footer__brand img {
        height: 48px;
    }

    .jsc-global-footer__link {
        padding-left: 7px;
        padding-right: 7px;

        font-size: 10px;
    }
}

/* =========================================================
   JSC FOOTER — HESK-SAFE DOCUMENT FLOW
   Keep HESK's .wrapper as the original internal flex layout.
   The page body is block-flow so the institutional footer is
   simply the next document element after the HESK wrapper.
   ========================================================= */
html,
body {
    width: 100%;
    min-height: 100%;
}

body:not(.jsc-login-page) {
    display: block !important;
    min-height: 100vh;
    margin: 0;
}

/* HESK's native .wrapper remains a flex row internally. */
body:not(.jsc-login-page) > .wrapper {
    width: 100%;
    min-height: calc(100vh - 160px);
    margin: 0;
    padding-bottom: 0 !important;
    box-sizing: border-box;
}

body:not(.jsc-login-page) > .jsc-global-footer {
    position: relative !important;
    inset: auto !important;
    display: block;
    clear: both;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    z-index: 1;
}

.jsc-global-footer {
    color: #fff;
    background: #034f34;
    border-top: 4px solid var(--jsc-gold);
    overflow: hidden;
}

.jsc-global-footer__top {
    position: relative;
    background:
        linear-gradient(110deg, #003d28 0%, #005c3a 52%, #006b43 100%),
        url('../img/jsc-footer-pattern.png') right center / auto 100% no-repeat;
}

.jsc-global-footer__top::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,.025), transparent 45%, rgba(255,255,255,.02));
}

.jsc-global-footer__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1600px;
    min-height: 116px;
    margin: 0 auto;
    padding: 24px 28px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto;
    align-items: center;
    gap: 30px;
}

.jsc-global-footer__identity {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.jsc-global-footer__brand {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    width: fit-content;
    max-width: 100%;
    color: #fff !important;
    text-decoration: none !important;
}

.jsc-global-footer__crest {
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 62px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    background: rgba(255,255,255,.05);
}

.jsc-global-footer__crest img {
    width: 49px;
    height: 52px;
    object-fit: contain;
    display: block;
}

.jsc-global-footer__brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    min-width: 0;
}

.jsc-global-footer__brand-text strong {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .08em;
    white-space: nowrap;
}

.jsc-global-footer__brand-text span {
    margin-top: 5px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .07em;
    opacity: .88;
    white-space: nowrap;
}

.jsc-global-footer__service-line {
    margin-left: 77px;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .65;
}

.jsc-global-footer__nav {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
}

.jsc-global-footer__nav-link {
    min-width: 86px;
    min-height: 48px;
    padding: 7px 11px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 5px;
    background: rgba(0,0,0,.08);
    color: #fff !important;
    text-decoration: none !important;
    font-size: 10px;
    font-weight: 700;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.jsc-global-footer__nav-link:hover,
.jsc-global-footer__nav-link.is-current {
    color: #fff !important;
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.25);
    transform: translateY(-1px);
}

.jsc-global-footer__nav-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--jsc-gold);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
}

.jsc-global-footer__bottom {
    background: #023a27;
    border-top: 1px solid rgba(255,255,255,.08);
}

.jsc-global-footer__bottom-inner {
    width: 100%;
    max-width: 1600px;
    min-height: 42px;
    margin: 0 auto;
    padding: 0 28px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: rgba(255,255,255,.72);
    font-size: 9px;
    letter-spacing: .04em;
}

.jsc-global-footer__secure {
    color: rgba(255,255,255,.88);
    font-weight: 700;
}

.jsc-global-footer__secure span {
    color: #a8d9c1;
    margin-right: 4px;
}

@media (max-width: 1100px) {
    .jsc-global-footer__inner {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .jsc-global-footer__nav {
        justify-content: flex-start;
    }
}

@media (max-width: 900px) {
    body:not(.jsc-login-page) > .wrapper {
        min-height: calc(100vh - 120px);
        padding-bottom: 0 !important;
    }
    .jsc-global-footer__inner {
        padding: 18px 16px;
    }
    .jsc-global-footer__brand-text strong {
        font-size: 13px;
    }
    .jsc-global-footer__brand-text span {
        white-space: normal;
    }
    .jsc-global-footer__service-line {
        margin-left: 0;
    }
    .jsc-global-footer__nav-link {
        min-width: 0;
        flex: 1 1 135px;
    }
    .jsc-global-footer__bottom-inner {
        min-height: 0;
        padding: 10px 16px;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
}

@media (max-width: 460px) {
    .jsc-global-footer__crest {
        width: 52px;
        height: 52px;
        flex-basis: 52px;
    }
    .jsc-global-footer__crest img {
        width: 41px;
        height: 43px;
    }
    .jsc-global-footer__nav-link {
        flex-basis: 100%;
        justify-content: flex-start;
    }
}

/* =========================================================
   RC66.2A — CSS GOVERNANCE BOUNDARY

   Authenticated backend geometry, footer suppression and module
   presentation no longer live in this institutional/public stylesheet.
   Backend shared-shell policy is owned by jsc-admin-governance-v66.css;
   navigation is owned by jsc-admin-workspace-v66.css; module layout is
   owned by each module stylesheet.
   ========================================================= */

