/* SJP concept.css v1.0 - 23rd Sep 2026. The approved presentation (v2.2, 17th Sep 2026), loaded after
   theme.css: header, operator strip, footer and the hero, card, split, text, checklist, steps, about, FAQ
   and call-to-action sections. Rules added beyond v2.2 are grouped at the end. */
@font-face{font-family:'Noe Display SJP';src:url('fonts/NoeDisplaySJP-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/Poppins-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/Poppins-Medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/Poppins-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600 800;font-display:swap}
:root{--navy:var(--brand,#0a1428);--accent:#3fdcc8;--ink:#0a1428;--bg:#fff;--card:#fff;--muted:#505e70;--line:#ced5dd;--panel:#f2f5f7;--green:#07685e;--head:'Noe Display SJP',Georgia,serif;--body:Poppins,Arial,sans-serif;--gutter:clamp(22px,5vw,76px);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.8 var(--body);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(3.2rem,5.8vw,6rem)}h2{font-size:clamp(2.4rem,3.6vw,3.75rem)}h3{font-size:clamp(1.65rem,2.3vw,2.4rem)}p+p{margin-top:1.2rem}ul,ol{margin:0;padding:0}li{list-style:none}[hidden]{display:none!important}svg{flex:none}:focus-visible{outline:3px solid var(--green);outline-offset:5px;box-shadow:0 0 0 2px var(--bg)}section{scroll-margin-top:110px}.wrap{width:100%;max-width:1450px;margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(68px,7vw,112px)}.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:22px;font:600 .69rem/1.7 var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.eyebrow:before{content:'';width:24px;height:2px;background:var(--green);flex:none}.lead{font-size:1.05rem;line-height:1.9;color:var(--muted);max-width:620px}.section-head h2+.lead{margin-top:24px}.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:13px 22px;font-size:.8rem;line-height:1.6;font-weight:600;text-decoration:none;border:1px solid transparent;background:var(--accent);color:var(--navy);transition:background .2s,box-shadow .2s}.btn .ic{width:20px;height:20px;transition:transform .2s}.btn:hover{background:#8aeadd;box-shadow:0 5px 18px #0a142815}.btn:hover .ic{transform:translateX(4px)}.btn-secondary{background:transparent;border-color:currentColor;color:inherit}.btn-secondary:hover{background:var(--panel);color:var(--ink)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;border-bottom:1px solid var(--green);text-decoration:none;font-size:.8rem;font-weight:600}.text-link:hover{color:var(--green)}.text-link .ic{transition:transform .2s}.text-link:hover .ic{transform:translate(3px,-2px)}.skip{position:fixed;left:16px;top:-120px;z-index:1000;padding:14px 24px;background:var(--navy);color:#fff}.skip:focus{top:12px}
/* Site identity and shared navigation. */
.operator{background:var(--navy);color:#e4ebf4;font-size:.63rem;line-height:1.5;padding-block:9px;letter-spacing:.015em}.operator .wrap{display:flex;justify-content:space-between;gap:12px}.operator strong{color:#fff;font-weight:500}.bar{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:24px;min-height:106px}.brand{flex:none;display:block}.brand img{width:91px;height:70px;object-fit:contain}.brand-dark{display:none}.brand-label{border-left:1px solid var(--line);padding-left:22px;color:var(--muted);font-size:.73rem;line-height:1.5}.nav{display:flex;align-items:stretch;margin-left:auto;gap:24px;align-self:stretch}.nvi{display:flex;align-items:stretch}.nvi a{display:flex;align-items:center;position:relative;text-decoration:none;font-size:.79rem;white-space:nowrap;padding-block:15px}.nvi a:after{content:'';position:absolute;left:0;right:0;bottom:25px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s}.nvi a:hover:after,.nvi a[aria-current=page]:after{transform:scaleX(1)}.header-cta{font-size:.73rem;min-height:44px;gap:16px;padding:10px 16px;white-space:nowrap}.burger{display:none;width:44px;height:44px;border:1px solid var(--line);background:var(--bg);color:var(--ink);position:relative;flex:none}.burger span,.burger span:before,.burger span:after{position:absolute;left:11px;top:20px;width:20px;height:2px;background:currentColor;content:'';transition:transform .2s}.burger span:before{left:0;top:-6px}.burger span:after{left:0;top:6px}.burger[aria-expanded=true] span{background:transparent}.burger[aria-expanded=true] span:before{transform:translateY(6px) rotate(45deg)}.burger[aria-expanded=true] span:after{transform:translateY(-6px) rotate(-45deg)}
/* Accessibility toolbar retained from the original SJP theme. */
.a11y{position:relative;flex:none}.a11y-btn{width:40px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--ink)}.a11y-btn svg{width:24px;height:24px}.a11y-panel{display:none;position:absolute;right:0;top:calc(100% + 15px);width:350px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 170px);overflow:auto;background:var(--card);color:var(--ink);padding:22px;box-shadow:0 16px 60px #0a14282a;border:1px solid var(--line);z-index:200}.a11y-panel.open{display:block}.a11y-title{font:700 1.7rem var(--head);margin-bottom:12px}.a11y-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line)}.a11y-row .aic{display:flex;width:23px;flex:none}.aic svg{width:23px;height:23px}.a11y-row .lbl{flex:1;font-size:.76rem;line-height:1.5}.lbl small{display:block;color:var(--muted);font-size:.67rem}.tgl{border:1px solid var(--muted);width:40px;height:28px;padding:3px;background:var(--panel);border-radius:20px;position:relative;flex:none}.tgl:before{content:'';position:absolute;left:4px;top:5px;width:16px;height:16px;background:var(--muted);border-radius:50%;transition:transform .2s}.tgl[aria-pressed=true]{background:var(--accent);border-color:var(--green)}.tgl[aria-pressed=true]:before{background:var(--navy);transform:translateX(14px)}.fs-group{display:flex}.fs-group button,.tts-btn{min-width:30px;min-height:36px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:.75rem;padding:4px}.fs-group [aria-pressed=true],.tts-btn[aria-pressed=true]{background:var(--accent);color:var(--navy);border-color:var(--green)}.fs2{font-size:1rem!important}.fs3{font-size:1.18rem!important}
/* Hero: exact SJP type, generous space, photographic emphasis. */
.hero{background:var(--navy);color:#fff;isolation:isolate}.hero-grid{display:grid;grid-template-columns:1fr 1fr;padding-block:62px;gap:6.5%;align-items:center}.hero-feature .hero-grid{min-height:660px}.hero-copy{padding-block:24px}.hero .eyebrow{color:#d0dced}.hero .eyebrow:before{background:var(--accent)}.hero h1{max-width:640px}.hero h1 span{color:var(--accent)}.hero .lead{color:#d6deeb;font-size:.95rem;margin-top:25px;max-width:460px}.hero .btn-secondary{border-color:#8391a7;color:white}.hero .btn-secondary:hover{background:#1c2e47;color:white}.hero .actions{gap:12px}.hero-image{position:relative;align-self:stretch;min-height:480px;margin-right:calc(var(--gutter)*-1);overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.image-rule{position:absolute;left:0;bottom:0;height:5px;width:36%;background:var(--accent)}.hero-facts{display:flex;gap:42px;border-top:1px solid #3e4c61;padding-top:24px;margin:40px 0 0;max-width:460px}.hero-facts dt{font-size:1rem;font-weight:500}.hero-facts dd{margin:5px 0 0;color:#c7d1e1;font-size:.7rem}.hero-pagehead{background:var(--panel);color:var(--ink)}.hero-pagehead .hero-grid{min-height:440px;padding-block:48px;grid-template-columns:1.15fr 1fr;gap:8%}.hero-pagehead h1{font-size:clamp(2.9rem,4.6vw,4.7rem)}.hero-pagehead .eyebrow{color:var(--muted)}.hero-pagehead .eyebrow:before{background:var(--green)}.hero-pagehead .lead{color:var(--muted);max-width:580px}.hero-pagehead .hero-image{min-height:340px;margin-right:0}.hero-pagehead .image-rule{width:26%}.hero :focus-visible,.footer :focus-visible,.cta-band :focus-visible,.checklist :focus-visible{outline-color:#fff;box-shadow:0 0 0 2px var(--navy)}
/* About: supplied copy with a wide, uncropped photograph. */
.about-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:44px 9%;align-items:start}.about h2{max-width:490px}.about-body{font-size:.9rem;color:var(--muted);padding-top:7px}.about-image{grid-column:1/-1;margin-top:12px;position:relative}.about-image img{width:100%;height:auto}.about-image:after{content:'';position:absolute;right:0;bottom:-5px;height:5px;width:25%;background:var(--accent)}
/* The four programme cards use CardCollection Cards, Label, Meta and Link. */
.route-collection{background:var(--panel)}.section-head{max-width:760px;margin-bottom:44px}.cards{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:32px}.route-card{min-width:0;background:var(--card);position:relative;display:flex;flex-direction:column}.card-photo{overflow:hidden;aspect-ratio:1.82}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.route-card:has(a:hover) .card-photo img{transform:scale(1.04)}.card-body{padding:27px 34px 32px;display:flex;flex-direction:column;flex:1}.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.card-number{font:700 1.9rem/1 var(--head);color:var(--green)}.meta{font-size:.69rem;background:var(--panel);color:var(--muted);padding:4px 10px}.card-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;font-weight:500;color:var(--muted);margin-bottom:10px}.route-card h3{margin-bottom:17px}.route-card h3+p{color:var(--muted);font-size:.88rem;line-height:1.85;margin-top:0;margin-bottom:22px;max-width:460px}.route-card .text-link{margin-top:auto}.route-index{padding-block:65px}.route-index .section-head{margin-bottom:32px}.route-index h2{font-size:2.65rem}.route-index .cards{gap:0;border:1px solid var(--line)}.route-index .route-card+.route-card{border-left:1px solid var(--line)}.route-index .card-body{padding:27px 24px}.route-index h3{font-size:1.65rem;min-height:3.6rem}.route-index .card-label{min-height:2.3rem}.route-index .card-top{flex-wrap:wrap;gap:8px}.route-index .meta{font-size:.62rem}.route-index .text-link{font-size:.72rem}
/* MediaText: alternating full-width sections, not additional page types. */
.media-text{border-top:1px solid var(--line)}.media-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%}.media-image{position:relative;aspect-ratio:1.02;overflow:hidden}.media-image img{width:100%;height:100%;object-fit:cover}.media-image:after{content:'';position:absolute;left:0;bottom:0;width:26%;height:5px;background:var(--accent)}.media-copy h2{margin-bottom:25px}.media-copy>p:not(.eyebrow){font-size:.9rem;color:var(--muted)}.media-copy .btn{margin-top:26px}.media-right{background:var(--panel)}.media-right .media-image{order:2}.ticks{display:grid;gap:13px;margin-top:26px}.ticks li{display:flex;align-items:flex-start;gap:12px;font-size:.81rem;line-height:1.7}.ticks .ic{width:19px;height:19px;color:var(--green);margin-top:2px}
/* Checklist and Steps remain authored lists, with presentation owned here. */
.checklist{background:var(--navy);color:#fff}.checklist-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:11%}.checklist .eyebrow{color:#cad6e7}.checklist .eyebrow:before{background:var(--accent)}.checklist h2{max-width:420px}.checklist .lead{color:#cbd5e4;font-size:.92rem}.checklist ul{display:grid;gap:27px}.checklist li{display:flex;align-items:flex-start;gap:22px;border-bottom:1px solid #374459;padding-bottom:27px}.checklist li:last-child{border:0;padding-bottom:0}.list-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #526077;color:var(--accent);flex:none}.checklist h3{font-family:var(--body);font-size:1.03rem;font-weight:500;line-height:1.5;letter-spacing:0;margin-bottom:9px}.checklist li p{font-size:.83rem;line-height:1.8;color:#ccd5e5}.steps-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:11%}.steps .section-head{position:sticky;top:145px;align-self:start}.steps ol{counter-reset:steps}.steps li{display:flex;gap:24px;position:relative;padding:0 0 48px}.steps li:before{content:'';position:absolute;left:22px;top:47px;bottom:0;border-left:1px solid var(--line)}.steps li:last-child{padding-bottom:0}.steps li:last-child:before{display:none}.step-num{display:grid;place-items:center;width:46px;height:46px;flex:none;font:500 .8rem var(--body);border:1px solid var(--line);background:var(--bg);color:var(--green)}.step-copy{padding-top:4px;flex:1}.step-copy h3{font-size:1.7rem;margin-bottom:14px}.step-copy p{font-size:.87rem;color:var(--muted)}.step-icon{padding-top:8px;color:var(--green)}.steps li:last-child .step-num{background:var(--accent);color:var(--navy);border-color:var(--green)}
.cta-band{background:var(--accent);color:var(--navy);position:relative;overflow:hidden}.cta-band .eyebrow{color:var(--navy)}.cta-band .eyebrow:before{background:var(--navy)}.cta-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:10%;align-items:center;position:relative}.cta-band h2{max-width:500px}.cta-copy>p{font-size:.95rem;line-height:1.85}.cta-band .btn{background:var(--navy);color:white}.cta-band .btn:hover{background:#233957}.cta-band .btn-secondary{background:transparent;color:var(--navy);border-color:var(--navy)}.cta-band .btn-secondary:hover{background:#ffffff70}.cta-band .actions{gap:12px}.cta-band:before{content:'';width:360px;height:360px;border:1px solid #0a14281c;position:absolute;left:-260px;top:30px;transform:rotate(45deg);pointer-events:none}
.footer{padding-block:65px 28px;background:var(--navy);color:#fff}.footer-top{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:40px;padding-bottom:50px;align-items:start}.footer-top>a img{width:128px;height:auto}.footer-top>p{font:700 2.25rem/1.16 var(--head);letter-spacing:-.02em}.footer-top>p span{color:var(--accent)}.footer nav{display:grid;justify-self:end;gap:8px;font-size:.8rem}.footer nav a{min-height:28px;display:inline-flex;align-items:center;gap:10px;text-decoration:none}.footer nav .ic{width:16px;height:16px}.footer-bottom{border-top:1px solid #3e4b60;padding-top:26px;display:grid;grid-template-columns:1.6fr 1fr;gap:50px;color:#c7d1e0;font-size:.7rem;line-height:1.9}.footer-bottom p{max-width:680px;margin:0}.footer-bottom .preview-note{text-align:right;color:#c7d1e0}
/* Preference modes preserve text and action contrast, including colour accents. */
html[data-theme=dark]{--ink:#f3f6fa;--bg:#0f1b30;--card:#15243b;--panel:#1b2b43;--muted:#c2cfe0;--line:#61718b;--green:#76e5d8;color-scheme:dark}html[data-theme=dark] .brand-light{display:none}html[data-theme=dark] .brand-dark{display:block}html[data-theme=dark] .btn-secondary:hover{color:var(--ink)}html[data-theme=dark] .hero-pagehead :focus-visible{outline-color:var(--accent)}html[data-theme=dark] .cta-band .btn-secondary:hover{color:var(--navy)}html[data-contrast='1']{--muted:var(--ink);--line:var(--ink)}html[data-contrast='1'] :is(.hero,.checklist,.footer) p{color:#fff}html[data-contrast='1'] .hero-pagehead p{color:var(--ink)}html[data-fs='2']{font-size:18px}html[data-fs='3']{font-size:20px}html[data-fs='3'] .nav{gap:15px}html[data-fs='3'] .brand-label{display:none}
/* Motion is progressive and never hides content if scripts fail. */
.hero-image img{will-change:transform}.reveal-seen{animation:enter .65s cubic-bezier(.2,.65,.3,1) both}@keyframes enter{from{opacity:.75;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(min-width:1450px){.hero-image{margin-right:0}.hero-grid{gap:6%}}
@media(max-width:1100px){.header-inner{gap:16px}.nav{gap:18px}.brand-label{display:none}.hero-grid{gap:5%;padding-block:42px}.hero h1{font-size:4.2rem}.hero .btn{padding-inline:15px;font-size:.76rem;gap:13px}.hero-feature .hero-grid{min-height:610px}.hero-image{min-height:470px}.hero-pagehead .hero-image{min-height:330px}.hero-pagehead h1{font-size:3.5rem}.route-index .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.route-index .route-card:nth-child(3){border-left:0;border-top:1px solid var(--line)}.route-index .route-card:nth-child(4){border-top:1px solid var(--line)}.route-index h3,.route-index .card-label{min-height:0}.route-index .card-body{min-height:220px}.checklist-grid,.steps-grid{gap:6%}.cta-grid{gap:7%}}
@media(max-width:800px){html{scroll-padding-top:90px}.operator .wrap{justify-content:center}.operator .wrap>span:first-child{display:none}.header-inner{min-height:85px;gap:12px}.brand img{width:74px;height:57px}.a11y{margin-left:auto}.header-cta{display:none}.burger{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;max-height:calc(100dvh - 110px);overflow:auto;padding:18px var(--gutter);border-bottom:1px solid var(--line);background:var(--card);box-shadow:0 15px 24px #0a142810;gap:0}.nav.open{display:flex;flex-direction:column}.nvi a{width:100%;padding:15px 0;font-size:.9rem}.nvi a:after{bottom:8px;right:auto;width:36px}.a11y-panel{position:fixed;top:90px;left:auto;right:16px;max-height:calc(100dvh - 110px)}.hero-grid,.hero-pagehead .hero-grid{grid-template-columns:1fr;gap:35px;padding-block:32px 0}.hero-feature .hero-grid{min-height:0}.hero-copy{padding-block:15px 0}.hero h1{font-size:clamp(3.05rem,8vw,4.9rem);max-width:620px}.hero .lead{max-width:540px}.hero .actions{margin-top:25px}.hero-facts{margin-top:30px;max-width:100%}.hero-image{min-height:0;aspect-ratio:1.6;margin-right:0}.hero-pagehead .hero-image{min-height:0;aspect-ratio:2}.hero-pagehead h1{font-size:clamp(2.9rem,7vw,4.4rem);max-width:640px}.hero-pagehead .hero-grid{padding-bottom:36px}.about-grid{grid-template-columns:1fr;gap:28px}.about-body{padding-top:0;max-width:700px}.about h2{max-width:560px}.about-image{margin-top:10px}.media-grid{gap:6%}.media-copy h2{font-size:2.6rem}.media-image{aspect-ratio:.8}.media-copy .btn{font-size:.74rem;padding:12px 14px;gap:12px}.checklist-grid,.steps-grid{grid-template-columns:1fr;gap:0}.checklist h2{max-width:none}.checklist .section-head,.steps .section-head{max-width:620px}.steps .section-head{position:static}.cta-grid{grid-template-columns:1fr;gap:30px}.cta-band h2{max-width:620px}.footer-top{grid-template-columns:1fr 1.2fr;gap:35px}.footer-top>p{font-size:2rem}.footer nav{grid-column:1/-1;justify-self:start;display:flex;flex-wrap:wrap;gap:16px 28px}.footer-bottom{gap:30px}.card-body{padding:23px}.card-label{font-size:.61rem}.route-card h3{font-size:1.9rem}.section{scroll-margin-top:86px}.hero :focus-visible{outline-color:#fff}.hero-pagehead :focus-visible{outline-color:var(--green)}}
@media(max-width:560px){:root{--gutter:22px}.section{padding-block:62px}.operator{font-size:.58rem}.header-inner{min-height:78px}.brand img{width:68px;height:52px}h2{font-size:2.5rem}.hero h1{font-size:3.25rem;line-height:1.07}.hero .eyebrow{font-size:.6rem;letter-spacing:.09em;margin-bottom:18px}.hero .lead{font-size:.87rem;line-height:1.85;margin-top:22px}.hero .actions{gap:11px}.hero .btn{font-size:.72rem;min-height:48px;padding-inline:14px;gap:10px}.hero-facts{gap:30px;padding-top:22px}.hero-facts dt{font-size:.9rem}.hero-facts dd{font-size:.64rem}.hero-image{aspect-ratio:1.25;margin-inline:calc(var(--gutter)*-1)}.hero-pagehead h1{font-size:2.85rem}.hero-pagehead .hero-image{aspect-ratio:1.7;margin-inline:0}.hero-pagehead .hero-grid{padding-bottom:28px}.about-body{font-size:.87rem}.about-image img{min-height:180px;object-fit:cover}.cards{grid-template-columns:1fr;gap:28px}.card-body{padding:24px}.card-photo{aspect-ratio:1.65}.route-card h3{font-size:2rem}.route-index .cards{grid-template-columns:1fr}.route-index .route-card+.route-card{border-left:0;border-top:1px solid var(--line)}.route-index .card-body{min-height:0;padding:23px}.route-index .card-top{margin-bottom:12px}.route-index .text-link{margin-top:12px}.route-index .card-label{font-size:.63rem}.route-index h3{font-size:1.8rem}.route-index h2{font-size:2.5rem}.route-index .lead{font-size:.9rem}.route-index .cards{border:0}.route-index .route-card{border-top:1px solid var(--line)}.route-index .card-body{padding-inline:0}.route-index .meta{font-size:.7rem}.media-grid{grid-template-columns:1fr;gap:34px}.media-right .media-image{order:0}.media-image{aspect-ratio:1.25}.media-copy h2{font-size:2.5rem}.media-copy .eyebrow{font-size:.62rem}.media-copy .btn{min-height:50px;font-size:.77rem}.media-copy>p:not(.eyebrow){font-size:.87rem}.checklist .section-head{margin-bottom:35px}.checklist li{gap:16px}.list-icon{width:36px;height:36px}.list-icon .ic{width:20px;height:20px}.checklist h3{font-size:.95rem}.checklist li p{font-size:.81rem}.steps li{gap:18px}.step-num{width:38px;height:38px;font-size:.72rem}.steps li:before{left:18px;top:39px}.step-copy h3{font-size:1.5rem}.step-copy p{font-size:.83rem}.step-icon{display:none}.faq .section-head{margin-bottom:30px}.cta-copy>p{font-size:.89rem}.cta-band .actions{flex-direction:column;align-items:flex-start}.cta-band .btn{font-size:.76rem}.footer{padding-top:48px}.footer-top{grid-template-columns:1fr;gap:32px;padding-bottom:32px}.footer-top>a img{width:100px}.footer-top>p{font-size:2rem}.footer nav{gap:12px 22px;font-size:.75rem}.footer-bottom{grid-template-columns:1fr;gap:20px}.footer-bottom .preview-note{text-align:left}.a11y-row{gap:9px}.a11y-panel{padding:18px}.a11y-row .aic{display:none}html[data-fs='3'] .hero h1{font-size:2.9rem}html[data-fs='3'] .hero-facts{flex-wrap:wrap;gap:16px}html[data-fs='3'] .hero .actions{flex-direction:column;align-items:flex-start}}
.hero-feature h1 span{display:block}
/* The document scroll padding already clears the sticky navigation. */
section,.section{scroll-margin-top:0}
/* Keep long copy within its column, including increased text sizes. */
.hero-copy,.media-copy,.step-copy,.checklist li>div,.cta-copy,.section-head{min-width:0}
.footer-top>*{min-width:0;overflow-wrap:anywhere}
h1,h2,h3,.btn span{overflow-wrap:anywhere}.btn{max-width:100%}.btn span{min-width:0}
.hero-pagehead :focus-visible{outline-color:var(--green);box-shadow:0 0 0 2px var(--panel)}
.cta-band :focus-visible{outline-color:var(--navy);box-shadow:0 0 0 2px var(--accent)}
@media(max-width:560px){.hero-feature h1{font-size:clamp(2.8rem,12vw,3.25rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image img{transform:none!important;will-change:auto}}
@media(forced-colors:active){.btn,.list-icon,.step-num{border:1px solid ButtonText}.ic{stroke:currentColor}.eyebrow:before,.image-rule{background:CanvasText}}

/* SJP careers details. Actual Personal-1.svg and arrow-right.svg are local assets.
   The span/arrow movement below retains SJP's 10px/5px offsets and 300ms curve. */
.btn{justify-content:center;gap:0;min-height:44px;padding:10px 32px 10px 12px;font-weight:500;font-size:.875rem;line-height:1.5;letter-spacing:.015em;white-space:normal;text-align:left;transition:background-color .18s ease-in-out,color .18s ease-in-out}
.btn:hover{box-shadow:none;background:var(--accent)}
.btn>span{display:inline-block;position:relative;transform:translateX(10px);transition:opacity .3s cubic-bezier(.215,.61,.355,1),transform .3s cubic-bezier(.215,.61,.355,1)}
.btn>span:after{content:'';position:absolute;top:50%;right:-15px;width:16px;height:10px;background:url('assets/arrow-right.svg') center/20px no-repeat;opacity:0;transform:translateX(-10px) translateY(-50%);transition:opacity .3s cubic-bezier(.215,.61,.355,1),transform .3s cubic-bezier(.215,.61,.355,1)}
.btn:hover>span,.btn:focus-visible>span{transform:translateX(0)}
.btn:hover>span:after,.btn:focus-visible>span:after{opacity:1;transform:translateX(5px) translateY(-50%);transition-timing-function:ease-out}
.hero-feature .btn-secondary>span:after,.cta-band .btn:not(.btn-secondary)>span:after{filter:brightness(0) invert(1)}
html[data-theme=dark] .btn-secondary>span:after{filter:brightness(0) invert(1)}
html[data-theme=dark] .cta-band .btn-secondary>span:after{filter:none}
.header-inner{gap:20px}.nav{gap:21px}.brand-label{display:none}.header-cta{font-size:.75rem;white-space:nowrap}
.nav-roles{display:none}
/* Match the navigation to its available space AND the reader's text size. */
.bar{container:site-header / inline-size}
@container site-header (max-width:72rem){
 .nav-roles{display:flex}.header-inner{min-height:85px;gap:12px}.brand img{width:74px;height:57px}.a11y{margin-left:auto}.header-cta{display:none}.burger{display:block}
 .nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;max-height:calc(100dvh - 110px);overflow:auto;padding:18px var(--gutter);border-bottom:1px solid var(--line);background:var(--card);box-shadow:0 15px 24px #0a142810;gap:0}.nav.open{display:flex;flex-direction:column}.nvi a{width:100%;padding:15px 0;font-size:.9rem}.nvi a:after{bottom:8px;right:auto;width:36px}
}
.hero-feature{padding:24px var(--gutter) 18px;background:var(--bg)}
.hero-feature .hero-grid{padding:0;grid-template-columns:minmax(310px,.8fr) minmax(0,1.6fr);gap:0;min-height:660px;max-width:1600px;background:var(--navy);position:relative;isolation:isolate}
.hero-feature .hero-grid:before{content:'';position:absolute;left:-12px;bottom:-12px;width:35%;height:36%;border-left:12px solid var(--accent);border-bottom:12px solid var(--accent);z-index:-1}
.hero-feature .hero-copy{position:relative;z-index:1;align-self:end;padding:44px 34px;background:var(--navy)}
.hero-feature h1{font-size:clamp(3rem,4.2vw,4.4rem)}
.hero-feature .hero-image{margin:0;min-height:660px;z-index:1}
.hero-feature .hero-image:after{content:'';position:absolute;inset:0;mix-blend-mode:color;background-image:linear-gradient(to right,#0a152d 31%,rgba(10,21,45,.3) 69%,rgba(10,21,45,0) 83%),linear-gradient(to bottom,#0a152d,#0a152d);pointer-events:none}
.hero-feature .image-rule{display:none}.hero-feature .eyebrow{font-size:.61rem;letter-spacing:.085em}
.hero-feature .lead{font-size:.86rem}.hero-feature .hero-facts{gap:26px;margin-top:28px}
.hero-feature .btn{padding:11px 32px 11px 12px}.hero-feature .btn-secondary{padding-right:32px}
.media-text{overflow:clip}.media-image{overflow:visible;isolation:isolate}
.media-image:before{content:'';position:absolute;z-index:-1;top:-48px;right:-42px;width:65%;aspect-ratio:1;background:url('assets/Personal-1.svg') center/contain no-repeat;pointer-events:none}
.media-right .media-image:before{right:auto;left:-42px}
.image-tint{position:absolute;inset:0;background:#0a152d;mix-blend-mode:color;pointer-events:none;transition:opacity .5s}.media-image:hover .image-tint{opacity:0}
.richtext{border-top:1px solid var(--line)}.richtext-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:9%}.richtext .section-head{margin-bottom:0}.richtext-body{font-size:.9rem;color:var(--muted);min-width:0;padding-top:6px}
.sjp-ats .sjp-ats-list{padding-top:28px}.sjp-ats-key h3{font-family:var(--body)}
/* Exact SJP circle and chevron geometry/position. Native scroll and focus replace jQuery. */
#auto-top-link{position:fixed;z-index:99;height:40px;width:40px;bottom:30px;right:30px;background:#0a1428;display:inline-block;font-size:0;border-radius:50%;border:2px solid #fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}
#auto-top-link.is-visible{opacity:1;visibility:visible;pointer-events:auto}
#auto-top-link:after{width:15px;height:15px;border:2px solid #fff;content:'';position:absolute;z-index:99;transform:rotate(45deg) translateY(-50%);left:6px;top:50%;border-right:0;border-bottom:0;margin-top:2px}
#auto-top-link:focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media(max-width:1100px){
 .nav-roles{display:flex}
 html{scroll-padding-top:90px}.header-inner{min-height:85px;gap:12px}.brand img{width:74px;height:57px}.a11y{margin-left:auto}.header-cta{display:none}.burger{display:block}
 .nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;max-height:calc(100dvh - 110px);overflow:auto;padding:18px var(--gutter);border-bottom:1px solid var(--line);background:var(--card);box-shadow:0 15px 24px #0a142810;gap:0}.nav.open{display:flex;flex-direction:column}.nvi a{width:100%;padding:15px 0;font-size:.9rem}.nvi a:after{bottom:8px;right:auto;width:36px}
 .hero-feature .hero-grid{grid-template-columns:1fr;min-height:0}.hero-feature .hero-image{order:-1;min-height:0;aspect-ratio:2.1}.hero-feature .hero-copy{padding:38px}.hero-feature h1{max-width:700px}.hero-feature h1 span{display:inline}.hero-feature .lead{max-width:620px}.hero-feature .hero-facts{max-width:620px}.hero-feature .hero-grid:before{width:55%}
}
@media(max-width:800px){.richtext-grid{grid-template-columns:1fr;gap:28px}.media-image:before{top:-30px;right:-22px}.media-right .media-image:before{left:-22px}}
@media(max-width:560px){.hero-feature{padding:0 0 12px}.hero-feature .hero-image{aspect-ratio:1.5}.hero-feature .hero-copy{padding:36px 22px}.hero-feature h1{font-size:clamp(2.6rem,11vw,3.25rem)}.hero-feature h1 span{display:block}.hero-feature .hero-grid:before{left:0;width:70%;border-left:0}.hero-feature .btn{font-size:.8rem}.media-image:before{top:-28px;right:-12px;width:60%}.media-right .media-image:before{left:-12px}.richtext-body{font-size:.87rem}.footer-bottom{padding-bottom:35px}}
@media(max-width:767.98px){#auto-top-link{right:16px}}
@media(hover:none){.btn>span{transform:none}.btn>span:after{opacity:1;transform:translateX(5px) translateY(-50%)}}
/* Keep room for the revealed arrow at every responsive button size. */
.hero .btn,.media-copy .btn,.cta-band .btn,.sjp-ats-card .btn{padding:10px 32px 10px 12px}
@media(prefers-reduced-motion:reduce){.btn>span,.btn>span:after{transition:none}.btn>span{transform:none}.btn>span:after{opacity:1;transform:translateX(5px) translateY(-50%)}#auto-top-link{transition:none}}

/* SJP corporate footer highlight: original gradient, 0%-100% sweep and 0.5s timing.
   Apply to the text span so the surrounding link can keep a generous touch target. */
.footer nav{gap:0}
.footer nav a{min-height:44px;width:fit-content;max-width:100%;text-decoration:none}
.footer nav a>span{position:relative;background-image:linear-gradient(180deg,transparent 2%,#3fdcc8 0);transition:.5s;background-repeat:no-repeat;background-size:0% 100%;border-bottom:1px solid #3fdcc8;line-height:1.6}
.footer nav a:is(:hover,:focus-visible)>span{background-size:100% 100%;color:#0a1428}
/* SJP careers FAQ rules, scoped to the existing FAQ presentation.
   Source: sjp_corp/css/main.css. Rem equivalents retain text-size preferences. */
.faq{background:var(--bg);--faq-open:#f3f3f4;--faq-rule:#a9adb5}
.faq-grid{display:block;max-width:1176px}
.faq .section-head{max-width:850px;margin-bottom:40px}
.questions{width:100%}
.accordion-item{border:0;border-radius:0;width:100%}
.accordion-item h3{font:inherit;letter-spacing:normal;text-wrap:wrap;margin:0}
.accordion-trigger{position:relative;display:block;width:100%;height:auto;min-height:60px;text-align:left;border:0;border-bottom:1px solid var(--faq-rule);border-radius:0;background:transparent;color:var(--ink);font:500 1.375rem/1.64 var(--body);letter-spacing:.05px;padding:16px 55px 15px 40px;transition:background .5s;overflow-wrap:anywhere}
.accordion-trigger:after{position:absolute;bottom:0;left:0;width:0;height:4px;background:#3fdcc8;display:block;content:'';transition:width .3s ease-in-out}
.accordion-trigger:is(:hover,:focus-visible):after,.accordion-trigger[aria-expanded=true]:after{width:100%}
.accordion-trigger[aria-expanded=true],.accordion-item:has(.accordion-trigger[aria-expanded=true]) .accordion-panel{background:var(--faq-open)}
.accordion-trigger svg{height:20px;width:30px;fill:currentColor;position:absolute;right:25px;top:50%;transform:translate(0,-50%);transition:.18s ease-in-out;pointer-events:none}
.accordion-trigger[aria-expanded=true] svg{transform:rotate(-180deg) translate(0,50%)}
.accordion-trigger:focus-visible{z-index:1;outline-offset:-3px;box-shadow:none}
.accordion-panel{padding:0;border-bottom:1px solid var(--faq-rule)}
.accordion-panel .answer{padding:25px 50px;color:var(--ink);font-size:1rem;line-height:1.5}
html[data-theme=dark] .faq{--faq-open:#1b2b43;--faq-rule:#8290a5}
html[data-contrast='1'] .faq{--faq-rule:var(--ink)}
@media(max-width:991.98px){.accordion-trigger{font-size:1.25rem;line-height:1.6;letter-spacing:.04px;padding:16px 45px 15px 20px}.accordion-trigger svg{right:20px}}
@media(max-width:767.98px){.accordion-trigger{font-size:1.125rem;line-height:1.56}.accordion-trigger svg{height:16px}.accordion-panel .answer{padding:25px 20px}}
@media(max-width:800px){.footer nav{gap:0 28px}}
@media(max-width:560px){.footer nav{gap:0 22px}}
@media(prefers-reduced-motion:reduce){.footer nav a>span,.accordion-trigger,.accordion-trigger:after,.accordion-trigger svg{transition:none}}
@media(forced-colors:active){#auto-top-link{background:ButtonFace;border-color:ButtonText}#auto-top-link:after{border-color:ButtonText}.btn>span:after{background:ButtonText;mask:url('assets/arrow-right.svg') center/20px no-repeat}}

/* Added beyond v2.2: theme.css still styles the rotating hero (.hero>.wrap, .hero-copy slides), .hero-facts,
   .btn and list spacing for sections not shown here; these resets keep those rules off the sections above. */
.hero-feature .hero-copy,.hero-pagehead .hero-copy{grid-area:auto;width:auto;display:block;visibility:visible;opacity:1;transition:none}
.hero-pagehead .hero-copy{padding-inline:0}
.hero-feature>.hero-grid,.hero-pagehead>.hero-grid{z-index:auto}
.hero-facts{font-size:1rem;flex-wrap:nowrap;margin-bottom:0}
.btn:hover{transform:none}
.media-copy>.oc-prose{font-size:.9rem;color:var(--muted)}
.hero-pagehead .eyebrow{color:var(--muted)!important}
.ticks li+li,.steps li+li,.checklist li+li{margin-top:0}
