/* JSV 2.0.94 — Single-screen mobile/tablet welcome for signed-out visitors.
 * Desktop homepage (>1023px) and account backends are not changed. */
html body.jsv-public-home-page > main#jsv-mobile-welcome {display:none!important}
.jsv-responsive-auth-back {display:none!important}

@media (max-width:1023px) {
  html body.jsv-public-home-page > .jsv-home-header,
  html body.jsv-public-home-page > .jsv-home-footer,
  html body.jsv-public-home-page > .jsv-home-skip {display:none!important}
  html body.jsv-public-home-page > main#jsv-public-home#jsv-public-home#jsv-public-home {display:none!important}
  html body.jsv-public-home-page > main#jsv-mobile-welcome#jsv-mobile-welcome {
    --jsv-app-navy:#092b47;
    --jsv-app-deep:#061d34;
    --jsv-app-gold:#efbd55;
    display:block!important;
    position:relative!important;
    float:none!important;
    clear:both!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:100vh!important;
    min-height:100svh!important;
    height:auto!important;
    overflow-x:clip!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
    background:var(--jsv-app-deep)!important;
    color:#fff!important;
    font:normal 16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  .jsv-public-home-page #jsv-mobile-welcome,
  .jsv-public-home-page #jsv-mobile-welcome *,
  .jsv-public-home-page #jsv-mobile-welcome *::before,
  .jsv-public-home-page #jsv-mobile-welcome *::after {box-sizing:border-box}
  .jsv-public-home-page #jsv-mobile-welcome :is(h1,p) {margin:0;overflow-wrap:break-word}
  .jsv-public-home-page #jsv-mobile-welcome a {text-decoration:none}
  .jsv-public-home-page #jsv-mobile-welcome a:focus-visible {outline:3px solid #9ee0ff!important;outline-offset:3px!important}
  .jsv-public-home-page .jsv-app-welcome-main {display:block;width:100%;min-width:0;max-width:none;margin:0;padding:0}
  .jsv-public-home-page .jsv-app-welcome-hero {
    position:relative;
    isolation:isolate;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-width:0;
    min-height:100vh;
    min-height:100svh;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    overflow:hidden;
    background:#173954;
  }
  .jsv-public-home-page .jsv-app-welcome-scene,
  .jsv-public-home-page .jsv-app-welcome-scene img {
    display:block;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    margin:0;
  }
  .jsv-public-home-page .jsv-app-welcome-scene img {
    max-width:none;
    object-fit:cover;
    object-position:center 45%;
    filter:saturate(1.08) contrast(1.04);
  }
  .jsv-public-home-page .jsv-app-welcome-hero::after {
    position:absolute;
    inset:0;
    z-index:0;
    content:"";
    background:linear-gradient(180deg,rgba(3,19,36,.34) 0%,rgba(4,24,44,.45) 31%,rgba(5,23,43,.81) 68%,rgba(5,22,42,.98) 100%);
    pointer-events:none;
  }
  .jsv-public-home-page .jsv-app-welcome-copy {
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:740px;
    min-width:0;
    padding:32px max(24px,env(safe-area-inset-right)) 44px max(24px,env(safe-area-inset-left));
    margin:0 auto;
    text-align:center;
  }
  .jsv-public-home-page .jsv-app-welcome-copy h1 {
    max-width:11em;
    margin:0 auto 19px!important;
    color:#fff!important;
    font:700 clamp(2.65rem,6.6vw,4rem)/1.04 Georgia,"Times New Roman",serif!important;
    letter-spacing:-.035em;
    text-shadow:0 3px 13px rgba(3,11,24,.56);
  }
  .jsv-public-home-page .jsv-app-welcome-copy h1 span {display:block;color:#f6c867}
  .jsv-public-home-page .jsv-app-welcome-intro {
    max-width:34em;
    color:#f9f2e4;
    font-size:clamp(15px,2.3vw,18px);
    line-height:1.5;
    text-shadow:0 2px 9px rgba(3,11,24,.6);
  }
  .jsv-public-home-page .jsv-app-welcome-cta {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:13px;
    width:min(420px,100%);
    margin:30px auto 18px;
  }
  .jsv-public-home-page .jsv-app-welcome-button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    width:100%;
    min-width:0;
    min-height:58px;
    padding:12px 16px;
    border-radius:12px;
    font:800 17px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    text-align:center;
    touch-action:manipulation;
  }
  .jsv-public-home-page .jsv-app-welcome-button-gold {
    color:#102b45!important;
    border:1px solid #ffdfa0;
    background:linear-gradient(180deg,#ffe09a,#dfb052);
    box-shadow:0 7px 22px rgba(2,16,32,.3);
  }
  .jsv-public-home-page .jsv-app-welcome-button-light {
    color:#fff!important;
    border:1px solid #f1d493;
    background:rgba(8,35,57,.78);
  }
  .jsv-public-home-page .jsv-app-welcome-button:hover {filter:brightness(1.07)}
  .jsv-public-home-page .jsv-app-welcome-button span {font-size:22px;line-height:1}
  .jsv-public-home-page .jsv-app-welcome-member-prompt {
    max-width:38em;
    color:#f5ddac;
    font-size:13px;
    line-height:1.5;
  }
}
@media (max-width:640px) {
  .jsv-public-home-page .jsv-app-welcome-copy {max-width:480px;padding:clamp(20px,5svh,42px) max(22px,env(safe-area-inset-right)) clamp(24px,6svh,52px) max(22px,env(safe-area-inset-left))}
  .jsv-public-home-page .jsv-app-welcome-copy h1 {
    max-width:10em;
    margin:0 auto 18px!important;
    font-size:clamp(2.45rem,10.4vw,3.2rem)!important;
    line-height:1.035!important;
  }
  .jsv-public-home-page .jsv-app-welcome-intro {max-width:30em;font-size:clamp(14px,3.9vw,16px);line-height:1.48}
  .jsv-public-home-page .jsv-app-welcome-cta {gap:11px;width:100%;margin:clamp(20px,4svh,33px) auto 15px}
  .jsv-public-home-page .jsv-app-welcome-button {min-height:clamp(52px,7.5svh,66px);font-size:clamp(15px,4.25vw,18px)}
  .jsv-public-home-page .jsv-app-welcome-member-prompt {font-size:clamp(12px,3.3vw,14px)}
}
@media (max-width:359px), (max-height:620px) and (max-width:640px) {
  .jsv-public-home-page .jsv-app-welcome-copy {padding-top:14px;padding-bottom:18px}
  .jsv-public-home-page .jsv-app-welcome-copy h1 {margin-bottom:12px!important;font-size:clamp(2.08rem,10vw,2.7rem)!important}
  .jsv-public-home-page .jsv-app-welcome-intro {font-size:13px}
  .jsv-public-home-page .jsv-app-welcome-cta {margin-top:17px;margin-bottom:10px;gap:8px}
  .jsv-public-home-page .jsv-app-welcome-button {min-height:50px}
}

/* Short landscape phones keep both entry actions visible without clipping. */
@media (max-width:1023px) and (max-height:520px) and (orientation:landscape) {
  .jsv-public-home-page .jsv-app-welcome-copy {max-width:860px;padding:12px 25px}
  .jsv-public-home-page .jsv-app-welcome-copy h1 {font-size:clamp(1.9rem,4.3vw,2.65rem)!important;margin-bottom:8px!important}
  .jsv-public-home-page .jsv-app-welcome-intro {font-size:13px;max-width:54em}
  .jsv-public-home-page .jsv-app-welcome-cta {grid-template-columns:repeat(2,minmax(0,1fr));width:min(590px,100%);gap:12px;margin:13px auto 8px}
  .jsv-public-home-page .jsv-app-welcome-button {min-height:48px;padding:8px 10px;font-size:15px}
  .jsv-public-home-page .jsv-app-welcome-member-prompt {font-size:12px}
}

/* Account selection is the first screen in the existing five-screen mobile
 * journey (choice + the four live JS Accounts registration chapters). */
@media (max-width:1023px) {
  .jsv-responsive-auth-back {
    display:inline-flex!important;
    align-items:center;
    min-height:44px;
    margin:0 0 12px;
    padding:7px 4px;
    color:#275b78!important;
    font-size:13px;
    font-weight:750;
    text-decoration:none;
  }
  .jsv-responsive-auth-back:focus-visible {outline:3px solid #75aad0;outline-offset:3px}
  .jsv-responsive-choice-back {color:#fff2d1!important;text-shadow:0 1px 8px rgba(0,0,0,.7)}
}
@media (max-width:640px) {
  body .jsf-niagara-login,
  body .jsf-niagara-register {min-width:0!important;padding:12px 9px max(32px,env(safe-area-inset-bottom))!important;background:#f3f1ea!important}
  body .jsf-niagara-auth .jsf-niagara-frame.jsf-openbook-auth.jsf-global-auth {
    width:100%!important;
    max-width:520px!important;
    padding:0 18px 20px!important;
    margin:0 auto!important;
    border-radius:16px!important;
    border:1px solid #dedbd3!important;
    box-shadow:0 10px 28px rgba(12,35,55,.12)!important;
  }
  body .jsf-global-auth .jsf-niagara-brand {min-height:62px!important}
  body .jsf-global-auth .jsf-niagara-card {min-width:0!important}
  body .jsf-global-auth .jsf-auth-primary,
  body .jsf-global-auth .jsf-auth-nav button#jsf-next {
    min-height:50px!important;
    border-radius:10px!important;
    background:#9fc8e8!important;
    border:1px solid #6d9fc3!important;
    color:#102f49!important;
  }
  body .jsf-niagara-login .jsf-niagara-form input:not([type=checkbox]) {min-height:49px!important;border-radius:10px!important}
  body .jsf-niagara-login .jsf-account-switch a {min-height:46px!important;border-radius:8px!important}
  body .jsf-niagara-login .jsf-niagara-card h1,
  body .jsf-niagara-register .jsf-niagara-card h1 {font-size:clamp(25px,7vw,32px)!important;line-height:1.14!important}
  body .jsf-niagara-register .jsf-chapter-nav {max-width:100%;gap:0;overflow:visible}
  body .jsf-niagara-register .jsf-chapter-nav button {min-width:0;min-height:52px}
  body .jsf-niagara-register #jsf-niagara-register-form,
  body .jsf-niagara-login .jsf-niagara-form {min-width:0;max-width:100%}
  body .jsf-niagara-register .jsf-registration-plans {width:100%;max-width:100%;overflow-y:auto;overflow-x:hidden}
  body .jsf-niagara-register .jsf-registration-plan {min-width:0}
  body .jsf-niagara-register #jsf-next {flex:1 1 auto}
  body .jsf-niagara-register .jsf-auth-nav {gap:8px}
  body .jsf-niagara-register #jsf-back {min-width:85px}
  body .jsf-niagara-register .jsf-save-progress {max-width:100%}
  body .jsf-niagara-login input:focus-visible,
  body .jsf-niagara-register input:focus-visible {outline:3px solid #8bc2ee!important;outline-offset:2px}
}

/* The existing /join/ route continues to own account choice; give that
 * experience a compact mobile presentation without changing its links. */
@media (max-width:640px) {
  body .jsf-account-choice-v54 {
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    padding:0 13px 44px!important;
    min-height:calc(100svh - 75px)!important;
    background-color:#0b2a46!important;
  }
  body .jsf-account-choice-v54 > .jsf-account-choice-shade {
    background:linear-gradient(180deg,rgba(5,23,43,.72),rgba(4,22,42,.78) 45%,rgba(4,20,40,.92))!important;
  }
  body .jsf-account-choice-v54 .jsf-account-choice-hero {
    width:100%!important;
    max-width:530px!important;
    padding:18px 0 30px!important;
    margin:0 auto!important;
    text-align:center!important;
  }
  body .jsf-account-choice-v54 .jsf-account-choice-copy > small {font-size:10px!important;letter-spacing:.13em!important;color:#ffdf86!important}
  body .jsf-account-choice-v54 .jsf-account-choice-copy h1 {font-family:Georgia,serif!important;font-size:clamp(31px,8.6vw,42px)!important;line-height:1.07!important;color:#fff!important;margin:12px auto!important}
  body .jsf-account-choice-v54 .jsf-account-choice-copy > p {font-size:13px!important;line-height:1.5!important;color:#f6f5ee!important}
  body .jsf-account-choice-v54 .jsf-account-choice-grid {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    margin:20px auto 0!important;
    gap:12px!important;
  }
  body .jsf-account-choice-v54 .jsf-choice-card {
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr);
    align-items:start;
    min-width:0!important;
    min-height:0!important;
    padding:16px!important;
    gap:4px 12px;
    border:1px solid #f1e1b6!important;
    border-radius:17px!important;
    background:#fffaf0!important;
    color:#102d45!important;
    box-shadow:0 8px 22px rgba(5,14,29,.18)!important;
  }
  body .jsf-account-choice-v54 .jsf-choice-icon {
    grid-column:1;grid-row:1/4;
    width:54px;height:54px;
    display:grid;place-items:center;
    margin:0;
    color:#1c557e;
    background:#f7ead0;
    border:2px solid #dab15b;
    border-radius:50%;
  }
  body .jsf-account-choice-v54 .jsf-choice-card > small {grid-column:2;color:#98702d!important;font-size:10px!important;letter-spacing:.09em!important}
  body .jsf-account-choice-v54 .jsf-choice-card h2 {grid-column:2;margin:1px 0!important;font-size:20px!important;line-height:1.16!important;color:#102d45!important}
  body .jsf-account-choice-v54 .jsf-choice-card p {grid-column:2;margin:0!important;font-size:12px!important;line-height:1.45!important;color:#4b6271!important}
  body .jsf-account-choice-v54 .jsf-choice-card > a {
    grid-column:1/-1;
    min-height:48px!important;
    display:flex!important;
    align-items:center;
    justify-content:center;
    margin-top:9px!important;
    padding:10px 15px!important;
    border:1px solid #d2a74d!important;
    border-radius:11px!important;
    background:#e8b955!important;
    color:#102d45!important;
    font-weight:800!important;
  }
  body .jsf-account-choice-v54 .signin {margin-top:17px!important;color:#fff!important}
  body .jsf-account-choice-v54 .signin a {color:#ffdc7e!important}
}

@media(prefers-reduced-motion:reduce) {
  .jsv-mobile-welcome *,
  .jsf-niagara-auth *,
  .jsf-account-choice-v54 * {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
