
/* Restart Group accessibility enhancements, November 2026 */
:root{--a11y-scale:1}
html{scroll-padding-top:112px;scroll-behavior:smooth}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;top:9px;right:9px;z-index:150;background:#ffdc42;color:#071b37;border:3px solid #071b37;border-radius:10px;padding:10px 18px;min-height:48px;font-size:16px;font-weight:900;transform:translateY(-160%);transition:transform .15s;text-decoration:underline}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,summary,[tabindex="0"]):focus-visible{outline:3px solid #a65be9!important;outline-offset:3px!important;box-shadow:0 0 0 6px rgba(255,222,69,.6)!important}
:where(a,button){touch-action:manipulation}
button{min-height:44px}
button:disabled{cursor:not-allowed;opacity:.7}
.nav a{display:inline-flex;align-items:center;min-height:44px}
.nav .mobile-menu-phone{display:none}
/* Stronger contrast for 11-13px labels / fine print */
.plan-tax,.plan-foot,.pricing-disclosure{color:#475b75!important}
.featured .plan-tax,.featured .plan-foot{color:#c8d9f2!important}
.payment span{color:#495a74!important}
.featured .payment span{color:#cbd9f1!important}
.privacy-note{color:#4b5c71!important}
.comparison .no{color:#435472!important}
.comparison th[scope="row"]{font-weight:700;background:#fff;color:#193659}
.comparison tr:last-child th,.comparison tr:last-child td{border-bottom:0}
.comparison caption{font-size:1px}
.comparison:focus-visible{outline-offset:5px}
.form-notice a{color:#142e56;text-decoration:underline;font-weight:800}
.field input,.field select{min-height:47px;border-color:#8091ad}
.field-help{display:block;margin-top:5px;font-size:11px;color:#465b73;line-height:1.7}
.field input[aria-invalid="true"]{border:2px solid #b12836}
.field input[aria-invalid="true"],.consent input[aria-invalid="true"]{outline:2px solid #b12836;outline-offset:2px}
.form-status.error{color:#97212b!important;font-weight:700}
.form-status.success{color:#0d6651!important;font-weight:700}
.consent{font-size:12px}.consent input{width:20px;height:20px;flex:none;margin-top:1px}
.modal-close{width:44px;height:44px;background:#e8ecf5;color:#102448;font-weight:900}
.modal{overscroll-behavior:contain;max-height:min(94dvh,850px);overflow-y:auto}
/* Without JS the content stays readable (animations never obscure it). */
html:not(.has-js) .reveal{opacity:1!important;transform:none!important}
/* Accessible controls, not a substitute for semantic accessibility. */
.accessibility-widget{position:fixed;left:16px;bottom:18px;z-index:75;direction:rtl;font-family:Heebo,Assistant,Arial,sans-serif}
.accessibility-launcher{display:inline-flex;align-items:center;gap:9px;justify-content:center;background:#fff;color:#0b2a50;border:2px solid #5e3caa;border-radius:100px;min-height:48px;padding:9px 15px;font-weight:850;font-size:13px;box-shadow:0 6px 24px rgba(2,12,29,.25)}
.accessibility-launcher:hover{background:#fff5d2}
.accessibility-launcher svg{flex:none;color:#673bb8}
.accessibility-panel{position:absolute;bottom:calc(100% + 12px);left:0;width:min(350px,calc(100vw - 28px));max-height:min(75dvh,650px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#102b50;border:2px solid #6041a5;border-radius:19px;box-shadow:0 20px 70px rgba(0,12,39,.35);padding:19px 18px 17px}
.accessibility-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.accessibility-panel h2{font-size:18px;line-height:1.35;margin:0;font-weight:900}
.accessibility-close{width:44px;height:44px;border:0;border-radius:50%;background:#e9edf7;color:#142b51;font-size:24px;font-weight:700;flex:none}
.accessibility-help{margin:7px 0 17px;color:#455a70;font-size:12px;line-height:1.75}
.accessibility-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;color:#112c4d;border:0;border-bottom:1px solid #d6dfea;min-height:56px;padding:9px 1px;text-align:right;font-size:13px;font-weight:800}
.accessibility-font-buttons{display:flex;gap:6px;align-items:center;direction:ltr}
.accessibility-font-buttons button{width:39px;height:40px;min-height:40px;border:1px solid #8d9fbe;border-radius:8px;background:#f0f4fd;color:#143259;font-size:15px;font-weight:900}
.accessibility-font-buttons output{min-width:43px;font-weight:800;font-size:12px;text-align:center}
.accessibility-toggle{cursor:pointer}
.accessibility-switch{position:relative;display:inline-block;flex:none;width:45px;height:25px;border:2px solid #617391;background:#aebcd0;border-radius:30px;transition:background .15s}
.accessibility-switch:after{content:"";position:absolute;top:2px;right:2px;width:17px;height:17px;background:white;border-radius:50%;box-shadow:0 0 2px rgba(0,0,0,.5);transition:transform .15s}
.accessibility-toggle[aria-pressed="true"] .accessibility-switch{background:#5928aa;border-color:#5928aa}
.accessibility-toggle[aria-pressed="true"] .accessibility-switch:after{transform:translateX(-19px)}
.accessibility-reset{display:block;width:100%;margin:16px 0 11px;padding:10px 12px;border:1px solid #98a9c7;border-radius:9px;background:#f0f4fb;color:#1d3b65;font-weight:800;font-size:13px}
.accessibility-statement-link{display:block;text-decoration:underline;text-underline-offset:4px;color:#4e278e;font-size:13px;font-weight:900;padding:10px 0}
html.a11y-underline a:not(.btn):not(.brand){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:4px!important}
html.a11y-reduced *,html.a11y-reduced *:before,html.a11y-reduced *:after{animation-duration:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}
html.a11y-reduced .reveal{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.skip-link{transition:none}.accessibility-switch,.accessibility-switch:after{transition:none}}
/* A non-dark-mode high-contrast option. Native/default contrast already carefully tuned. */
html.a11y-contrast body{background:#fff!important;color:#050c19!important}
html.a11y-contrast .feature,html.a11y-contrast .process-card,html.a11y-contrast .plan:not(.featured),html.a11y-contrast .faq details{background:#fff!important;color:#000!important;border:2px solid #121a30!important}
html.a11y-contrast .section-heading p,html.a11y-contrast .plan-sub,html.a11y-contrast .feature p,html.a11y-contrast .process-card p,html.a11y-contrast .faq details p,html.a11y-contrast .plan-tax,html.a11y-contrast .plan-foot,html.a11y-contrast .pricing-disclosure{color:#101b30!important}
html.a11y-contrast .process,html.a11y-contrast .final-cta,html.a11y-contrast .trust-strip{background:#fff!important}
html.a11y-contrast .trust-item b,html.a11y-contrast .trust-item small{color:#030b1a!important}
html.a11y-contrast .trust-icon{border:2px solid #1a2f52!important}
html.a11y-contrast .hero,html.a11y-contrast .statement,html.a11y-contrast .footer,html.a11y-contrast .final-box{background:#000f29!important}
html.a11y-contrast .hero-description,html.a11y-contrast .statement p,html.a11y-contrast .footer *,html.a11y-contrast .final-box p{color:#fff!important}
html.a11y-contrast .plan.featured{background:#061631!important;border:3px solid #ffe83c!important}
html.a11y-contrast .plan.featured .plan-line,html.a11y-contrast .plan.featured .plan-sub,html.a11y-contrast .plan.featured .payment span{color:#fff!important}
html.a11y-contrast .plan.featured .payment{background:#102c59!important}
html.a11y-contrast .accessibility-panel{border:3px solid #000!important}
/* Mobile control, phone reachable in menu and sticky action not obscuring focus */
@media(max-width:800px){
 html{scroll-padding-top:90px}
 .nav a{min-height:48px}
 .nav .mobile-menu-phone{display:flex;color:#ffe071;font-weight:900}
 .accessibility-widget{left:11px;bottom:calc(87px + env(safe-area-inset-bottom))}
 .accessibility-panel{max-height:min(68dvh,540px)}
 .footer{padding-bottom:115px}
 .modal-overlay{padding:10px}
 .modal{max-height:95dvh;padding:24px 19px;border-radius:15px}
 .modal h2{font-size:24px}
 .comparison{scrollbar-width:thin;scrollbar-color:#4d5a9b #e4ecfa}
 .hero,.pricing,.process,.why,.faq{overflow-wrap:anywhere}
 .header-phone{display:none}
}
@media(max-width:480px){
 .container{width:min(calc(100% - 28px),680px)}
 .header-inner{gap:10px}
 .brand-image{width:133px}
 .hero h1{font-size:clamp(32px,9vw,43px);letter-spacing:-.9px}
 .hero-description{font-size:15px;line-height:1.75}
 .art-stage{min-height:350px}
 .plan{padding:29px 21px 25px}
 .popular-tag{font-size:11px;white-space:normal;text-align:center;max-width:94%}
 .mobile-action{padding-inline:12px;gap:9px}
 .mobile-action .btn{font-size:12px;padding:10px 12px}
 .accessibility-launcher{padding:8px 11px;font-size:12px}
 .accessibility-panel{left:-2px;width:min(340px,calc(100vw - 22px))}
 .footer-contact a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:350px){.art-stage:before,.art-stage:after{width:270px;height:270px}.hero-panel{width:250px;max-width:94%}.floating-pill{font-size:9px;padding:7px}.hero h1{font-size:32px}.hero-note span{font-size:11px}}

/* Text enlargement reflows within the real viewport instead of using CSS zoom. */
.hero-description{font-size:calc(16px * var(--a11y-scale))!important}
.section-heading p{font-size:calc(16px * var(--a11y-scale))!important}
.feature p,.process-card p,.faq details p{font-size:calc(14px * var(--a11y-scale))!important}
.plan-sub,.plan-line,.payment strong,.faq summary{font-size:calc(14px * var(--a11y-scale))!important}
.payment span,.payment-kicker,.plan-foot,.pricing-disclosure,.footer-links,.footer-disclaimer,.footer-contact,.modal .eyebrow,.field label,.field-help,.form-notice,.privacy-note{font-size:calc(12px * var(--a11y-scale))!important}
.modal p,.consent,.form-status,.trust-item small{font-size:calc(13px * var(--a11y-scale))!important}
.trust-item b,.final-box p{font-size:calc(14px * var(--a11y-scale))!important}
.nav a,.btn,.accessibility-option,.accessibility-statement-link{font-size:calc(13px * var(--a11y-scale))!important}
.plan-foot,.pricing-disclosure,.payment span,.footer-disclaimer,.form-notice{line-height:1.9}
@media (max-width:480px){.hero-description{font-size:calc(15px * var(--a11y-scale))!important}}

/* A compact menu on smaller laptops prevents five navigation items from crowding. */
@media(max-width:1050px){
 .header-inner{min-height:76px}
 .nav{display:none;position:absolute;top:calc(100% - 1px);left:0;right:0;background:#061a37;border-bottom:2px solid #8f55dd;box-shadow:0 20px 30px rgba(0,0,0,.3);padding:15px 25px 22px;flex-direction:column;align-items:stretch;gap:0}
 .nav.open{display:flex}
 .nav a{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.14);min-height:46px}
 .nav .mobile-menu-phone{display:flex;color:#ffe271}
 .header-main-cta,.header-phone{display:none}
 .menu-btn{display:block}
}
@media(max-width:960px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:38px}.art-stage{min-height:380px}.hero{padding-top:125px}}
html.a11y-contrast .trust-icon,html.a11y-contrast .trust-icon svg{color:#0c2346!important}
