:root{--c-mist:#f5f7fb;--c-fog:#f7f9fc;--c-surface:#f0f4fa;--c-paper:#fff;--c-ink:#0f1f38;--c-ink-mid:#2a3d5e;--c-muted:#60708a;--c-line:#d8e1ef;--c-line-soft:#e7edf6;--c-blue:#1d5fd1;--c-blue-deep:#113f8e;--c-blue-faint:#7ca6e8;--c-blue-wash:#1d5fd114;--c-logo:#2f70d8;--c-logo-deep:#1c4d9f;--c-wa:#25d366;--c-shadow:0 6px 18px #1024480d;--c-shadow-hover:0 12px 24px #10244817;--r-sm:12px;--r-md:16px;--r-lg:20px;--font:Inter, "Google Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--max:1120px;--space:1.625rem;--ease:cubic-bezier(.4, 0, .2, 1);font-family:var(--font);color:var(--c-ink);background:var(--c-fog);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.55}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;overflow-x:clip}#root{min-height:100dvh}a{color:inherit}.page{background:var(--c-fog);min-height:100dvh}.shell{width:100%;max-width:var(--max);padding:3.5rem var(--space);margin:0 auto}img{max-width:100%;height:auto}.shell--narrow{text-align:center;max-width:36rem}.masthead{z-index:50;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--c-line-soft);background:#fffffffa;position:sticky;top:0}.offer-marquee{color:#fff;background:#123f8f;border-top:1px solid #fff3;text-decoration:none;display:block;position:relative;overflow:hidden}.offer-marquee__track{white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;justify-content:flex-start;gap:2.5rem;width:max-content;min-width:100%;padding:.44rem 0;font-size:.76rem;font-weight:800;animation:18s linear infinite offer-marquee-scroll;display:flex}.offer-marquee:hover .offer-marquee__track{animation-play-state:paused}@keyframes offer-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.masthead__in{max-width:var(--max);padding:.7rem var(--space);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.logo{color:var(--c-ink);align-items:center;gap:.55rem;text-decoration:none;display:flex}.logo__mark{aspect-ratio:772/931;background:linear-gradient(165deg, #8ec4b4 0%, var(--c-logo) 42%, var(--c-logo-deep) 100%);filter:drop-shadow(0 1px 2px #3a6b5d2e);flex-shrink:0;width:auto;height:3.75rem;max-height:58px;display:block;-webkit-mask-image:url(/sjv-logo.png);mask-image:url(/sjv-logo.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:alpha;mask-mode:alpha}.logo__wordmark{letter-spacing:.07em;color:var(--c-ink);font-size:clamp(.68rem,2.1vw,.8125rem);font-weight:700;line-height:1.25}.menu{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.menu a{color:var(--c-ink-mid);border-radius:var(--r-sm);transition:background .2s var(--ease), color .2s var(--ease);padding:.5rem .75rem;font-size:.8125rem;font-weight:500;text-decoration:none}.menu a:hover{background:var(--c-line-soft);color:var(--c-ink)}.masthead__cta{align-items:center;gap:.5rem;display:flex}.btn{min-height:44px;font-family:var(--font);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease);touch-action:manipulation;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn--sm{min-height:40px;padding:.5rem 1rem;font-size:.8125rem}.btn--solid{background:var(--c-blue);color:#fff;box-shadow:0 8px 18px #144b9f3d}.btn--solid:hover{background:var(--c-blue-deep);box-shadow:0 10px 24px #144b9f47}.btn--ghost{background:var(--c-paper);color:var(--c-blue-deep);border:1px solid var(--c-line)}.btn--ghost:hover{border-color:var(--c-blue-faint);background:#fff}.btn--light{color:var(--c-blue-deep);background:#fff;margin-top:.25rem;box-shadow:0 6px 28px #0000001f}.btn--light:hover{background:var(--c-line-soft)}.btn--outline{color:var(--c-blue-deep);border:1px solid var(--c-line);background:0 0;margin-top:.85rem;padding:.55rem 1rem;font-size:.8125rem}.btn--outline:hover{background:var(--c-blue-wash);border-color:var(--c-blue-faint)}.btn__ico{flex-shrink:0;width:.85rem;height:.85rem}.hero{border-bottom:1px solid var(--c-line-soft);background:linear-gradient(#f9fbff 0%,#f6f9fd 100%);position:relative;overflow:clip}.hero__in{z-index:1;padding-top:3.1rem;padding-bottom:3.9rem;position:relative}.hero-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);align-items:stretch;gap:1.2rem;display:grid}.hero-main{flex-direction:column;min-width:0;display:flex}.hero-copy{flex-direction:column;display:flex}.hero__tag{letter-spacing:.14em;text-transform:uppercase;color:var(--c-blue);margin:0 0 1rem;font-size:.6875rem;font-weight:600}.promo-strip{border:1px solid var(--c-line);border-radius:var(--r-md);background:#fff;border-left:3px solid #1d5fd1;max-width:44rem;margin:1.1rem 0 0;padding:1.3rem;box-shadow:0 8px 18px #10264c14}.promo-strip__header{max-width:36rem}.promo-strip__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#1d5fd1;margin:0;font-size:.68rem;font-weight:800}.promo-strip__title{color:#0f1f38;letter-spacing:-.02em;margin:.35rem 0 0;font-size:clamp(1.28rem,3.5vw,1.72rem);line-height:1.2}.promo-strip__title-accent{color:#1d5fd1;font-weight:800}.promo-strip__copy{color:#415774;max-width:38rem;margin:.58rem 0 0;font-size:.94rem;line-height:1.55}.promo-strip__trust{flex-wrap:wrap;gap:.55rem;margin-top:.95rem;display:flex}.promo-chip{color:#2a3d5e;letter-spacing:.01em;background:#f8fbff;border:1px solid #dde6f3;border-radius:999px;align-items:center;min-height:30px;padding:.34rem .62rem;font-size:.74rem;font-weight:700;line-height:1.2;display:inline-flex}.promo-strip__footer{border-top:1px solid var(--c-line-soft);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.95rem;padding-top:.95rem;display:flex}.btn--promo{color:#fff;background:#1d5fd1;padding-inline:1.15rem;box-shadow:0 8px 16px #113f8e3d}.btn--promo:hover{background:#164fae}.promo-strip__note{color:#3f5674;letter-spacing:.015em;margin:0;font-size:.77rem;font-weight:700}.hero__title{letter-spacing:-.03em;max-width:22ch;color:var(--c-ink);margin:0;font-size:clamp(2rem,4.2vw,3rem);font-weight:600;line-height:1.12}.hero__accent{color:var(--c-blue-deep);font-weight:700}.hero__lead{max-width:36rem;color:var(--c-ink-mid);margin:1.2rem 0 0;font-size:1rem;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;display:flex}.hero-panel{background:linear-gradient(#fff 0%,#f4f8ff 100%);border:1px solid #b8cdf0;border-top:4px solid #1d5fd1;border-radius:14px;flex-direction:column;align-self:stretch;height:100%;padding:1.2rem 1.1rem;display:flex;box-shadow:0 14px 30px #133f8e29}.hero-panel__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--c-blue);margin:0;font-size:.68rem;font-weight:700}.hero-panel__title{color:var(--c-ink);margin:.35rem 0 0;font-size:1.34rem;line-height:1.2}.hero-panel__sub{color:var(--c-ink-mid);margin:.45rem 0 0;font-size:.9rem;line-height:1.45}.hero-panel__list{margin:.7rem 0 0;padding:0;list-style:none}.hero-panel__list li{color:#1f3f71;margin:0 0 .5rem;padding-left:1rem;font-size:.84rem;font-weight:600;line-height:1.4;position:relative}.hero-panel__list li:before{content:"✓";color:#1d5fd1;font-size:.78rem;font-weight:800;position:absolute;top:.02rem;left:0}.hero-panel__note{letter-spacing:.02em;color:#c67d05;margin:.2rem 0 0;font-size:.76rem;font-weight:700}.hero-panel__cta{color:#fff;background:linear-gradient(#2d73d8 0%,#1d5fd1 100%);border:1px solid #1d5fd1;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:42px;margin-top:auto;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 10px 18px #1d5fd140}.hero-panel__cta:hover{background:linear-gradient(#1f62c7 0%,#154fae 100%)}.hero__cta{flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 0;display:flex}.hero__stats{border-top:1px solid var(--c-line);grid-template-columns:repeat(3,1fr);gap:.8rem;max-width:none;margin-top:1.2rem;padding-top:1rem;display:grid}.hero__stat{border:1px solid var(--c-line);background:#fff;border-top:2px solid #1d5fd1;border-radius:8px;flex-direction:column;justify-content:center;gap:.2rem;min-height:96px;padding:.85rem .95rem .8rem;display:flex;box-shadow:0 2px 8px #1024480a}.hero__stat-value{color:var(--c-blue-deep);letter-spacing:-.02em;margin:0;font-size:1.16rem;font-weight:700;line-height:1.2}.hero__stat-label{color:var(--c-muted);letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:600;line-height:1.4}.band{background:var(--c-surface);border-bottom:1px solid var(--c-line-soft)}.band--tint{background:linear-gradient(180deg, var(--c-mist) 0%, var(--c-fog) 100%)}.band--deep{color:#f5faf8;background:#163d82;border:none}.band--deep .deep__h,.band--deep .deep__p{color:inherit}.band--bottom{background:var(--c-fog);border:none;padding-bottom:0}.deep__h{letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:600}.deep__p{opacity:.92;margin:.85rem 0 0;font-size:.9375rem;line-height:1.6}.eyebrow{background:linear-gradient(90deg, var(--c-blue) 0%, var(--c-blue-faint) 100%);border-radius:2px;width:2.5rem;height:3px;margin:0 0 .85rem}.block-head__h{letter-spacing:-.02em;color:var(--c-ink);margin:0 0 .4rem;font-size:clamp(1.55rem,2.5vw,2rem);font-weight:700}.block-head__p{max-width:34rem;color:var(--c-muted);margin:0;font-size:.92rem;line-height:1.62}.fee-table{border-top:1px solid var(--c-line);margin-top:1rem}.fee-row{border-bottom:1px solid var(--c-line-soft);grid-template-columns:1.2fr .8fr;gap:1rem;padding:1rem .25rem;display:grid}.fee-row--featured{background:#1d5fd10a}.fee-row__title{letter-spacing:.04em;text-transform:uppercase;color:var(--c-muted);margin:0;font-size:.78rem;font-weight:700}.fee-row__subjects{color:var(--c-ink);margin:.35rem 0 0;font-size:1rem}.fee-row__list{margin:.55rem 0 0;padding:0;list-style:none}.fee-row__list li{color:var(--c-ink-mid);margin:0 0 .35rem;font-size:.84rem}.fee-row__aside{text-align:right;justify-self:end;min-width:180px}.fee-row__badge{text-transform:uppercase;letter-spacing:.07em;color:#fff;background:#1d5fd1;border-radius:999px;margin-bottom:.35rem;padding:.16rem .5rem;font-size:.62rem;font-weight:700;display:inline-block}.fee-row__price{color:var(--c-blue-deep);margin:0;font-size:1.5rem;font-weight:700}.fee-row__note{text-transform:uppercase;color:var(--c-muted);margin:.2rem 0 0;font-size:.75rem}.fee-row__cta{border:1px solid var(--c-line);min-height:38px;color:var(--c-blue-deep);background:#fff;border-radius:8px;justify-content:center;align-items:center;margin-top:.7rem;padding:.4rem .85rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.approach-list{border-top:1px solid var(--c-line);margin-top:.85rem}.approach-item{border-bottom:1px solid var(--c-line-soft);padding:.9rem .2rem}.approach-item__h{color:var(--c-ink);margin:0;font-size:.98rem}.approach-item__p{color:var(--c-muted);margin:.3rem 0 0;font-size:.87rem}.faculty-list{border-top:1px solid var(--c-line);margin-top:.75rem}.faculty-row{border-bottom:1px solid var(--c-line-soft);grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1rem .2rem;display:grid}.card{background:var(--c-paper);border:1px solid var(--c-line);transition:box-shadow .2s var(--ease);border-radius:14px;box-shadow:0 8px 20px #1024480f}.pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.pricing-card{border:1px solid var(--c-line);background:#fff;border-radius:14px;flex-direction:column;min-width:0;padding:1.25rem 1.1rem 1rem;display:flex;position:relative}.pricing-card--featured{border-color:#7ea8e5;box-shadow:0 0 0 2px #1d5fd124}.pricing-card__badge{color:#fff;letter-spacing:.07em;text-transform:uppercase;background:#1d5fd1;border-radius:999px;padding:.16rem .55rem;font-size:.58rem;font-weight:700;position:absolute;top:-.58rem;left:50%;transform:translate(-50%)}.pricing-card__title{color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:700}.pricing-card__subjects{color:var(--c-ink);overflow-wrap:anywhere;margin:.35rem 0 0;font-size:.98rem}.pricing-card__price{color:var(--c-blue-deep);margin:.5rem 0 0;font-size:1.5rem;font-weight:700;line-height:1}.pricing-card__note{text-transform:uppercase;color:var(--c-muted);margin:.2rem 0 0;font-size:.72rem}.pricing-card__list{color:var(--c-ink-mid);min-height:7rem;margin:.75rem 0 0;padding-left:1rem;font-size:.8rem;line-height:1.42}.pricing-card__list li{overflow-wrap:anywhere;margin-bottom:.3rem}.pricing-card__cta{border:1px solid var(--c-line);min-height:40px;color:var(--c-blue-deep);background:#fff;border-radius:9px;justify-content:center;align-items:center;margin-top:auto;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-flex}.pricing-card--featured .pricing-card__cta{color:#fff;background:#1d5fd1;border-color:#1d5fd1}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin-top:.75rem;display:grid}.card--tile{padding:1rem}.card--tile__h{color:var(--c-ink);margin:0 0 .35rem;font-size:.92rem}.card--tile__p{color:var(--c-muted);margin:0;font-size:.84rem;line-height:1.48}.fac-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem;display:grid}.card--fac{grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1rem;display:grid}.faculty-card__img,.faculty-card__ph{border-radius:var(--r-md);object-fit:cover;object-position:center top;border:1px solid var(--c-line);background:var(--c-surface);width:118px;height:118px}.faculty-card__ph{color:var(--c-muted);text-align:center;white-space:pre-line;border-style:dashed;justify-content:center;align-items:center;padding:.5rem;font-size:.65rem;font-weight:600;line-height:1.35;display:flex}.faculty-card__role{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin:0 0 .2rem;font-size:.6875rem;font-weight:700}.faculty-card__name{color:var(--c-ink);margin:0 0 .25rem;font-size:1.15rem;font-weight:600}.faculty-card__qual{color:var(--c-muted);margin:0 0 .35rem;font-size:.875rem;font-weight:500}.faculty-card__exp{color:var(--c-ink-mid);margin:0;font-size:.875rem;line-height:1.45}.contact-layout{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}@media (width<=1100px){.hero-layout{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr)}.pricing-grid,.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-panel{border-top:1px solid var(--c-line);padding:1rem .2rem}.card--contact{padding:1rem}.mini-h{letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-mid);align-items:center;gap:.45rem;margin:0;font-size:.6875rem;font-weight:700;display:flex}.mini-h--sp{margin-top:1.65rem}.mini-h__ico{width:1rem;height:1rem;color:var(--c-ink-mid);flex-shrink:0}.contact-addr{color:var(--c-ink);margin:.55rem 0 0;font-size:1rem;font-style:normal;font-weight:600;line-height:1.5}.contact-copy{color:var(--c-muted);margin:.55rem 0 0;font-size:.875rem;line-height:1.55}.contact-copy--tight{margin-top:.4rem;font-size:.8125rem}.dial-list{margin:.6rem 0 0;padding:0;list-style:none}.dial{color:inherit;border-bottom:1px solid var(--c-line-soft);min-height:48px;transition:color .2s var(--ease);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:1rem;padding:.72rem 0;text-decoration:none;display:flex}.dial:first-child{border-top:1px solid var(--c-line-soft)}.dial:hover{color:var(--c-blue-deep)}.dial__num{letter-spacing:.03em;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}.dial__tag{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);font-size:.625rem;font-weight:700}.dial--wa .dial__tag{color:var(--c-wa)}.dial:hover .dial__num{color:var(--c-blue-deep)}.contact-foot{border-top:1px solid var(--c-line-soft);color:var(--c-muted);margin:1.1rem 0 0;padding-top:1rem;font-size:.8125rem;line-height:1.45}.foot{text-align:center;border-top:1px solid var(--c-line);margin-top:2.5rem;padding:1.25rem 0 2.25rem}.foot p{color:var(--c-muted);margin:0;font-size:.75rem}@media (width<=820px){.hero-layout,.pricing-grid,.tile-grid,.fac-grid,.contact-layout{grid-template-columns:1fr}.hero-actions .btn{width:100%}.hero__title{max-width:none}.hero__stats{grid-template-columns:1fr;gap:.75rem;max-width:none;margin-top:1rem}}@media (width<=720px){.masthead__in{padding-left:max(1rem, env(safe-area-inset-left,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));grid-template-columns:1fr auto;grid-template-areas:"logo cta""nav nav";display:grid}.logo{grid-area:logo}.masthead__cta{grid-area:cta;justify-self:end}.menu{border-top:1px solid var(--c-line-soft);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;grid-area:nav;gap:0;margin-top:.25rem;padding:.4rem 0 .2rem;overflow-x:auto}.menu::-webkit-scrollbar{display:none}.menu a{flex-shrink:0}.card--fac{text-align:center;grid-template-columns:1fr}.faculty-card__img,.faculty-card__ph{margin:0 auto}.btn--outline{justify-content:center;width:100%}.shell{padding-left:max(1rem, env(safe-area-inset-left,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));padding-top:2.5rem;padding-bottom:2.5rem}.pricing-card__price{font-size:1.42rem}.hero-panel{padding:1rem}.hero-panel__title{font-size:1.18rem}.hero-panel__sub{font-size:.84rem}.hero__stat-label{font-size:.71rem}}@media (width<=420px){.btn{width:100%}.masthead__cta{justify-content:stretch;width:100%}.masthead__cta .btn{flex:1}}@media (hover:none) and (pointer:coarse){.dial:hover{color:inherit}.dial:hover .dial__num{color:var(--c-ink)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
