:root{--ink:#171436;--paper:#fff;--soft:#f5f5f7;--grey:rgba(23,20,54,.72);--line:#d2d2d7;--pink:#ed176f;--pink-deep:#bd0e55;--pink-soft:#ffd9e8;--navy:#171436;--blue:#155cbf;--blue-bright:#1875f0;--sky:#ccecff;--peach:#ffb18e;--lilac:#d9d1ff;--mint:#c7efdf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button, input{font:inherit}:focus-visible{outline:3px solid var(--pink-deep);outline-offset:3px}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:10px 14px;border-radius:8px;background:#fff;color:#000;font-size:14px;font-weight:650;transform:translateY(-150%);transition:transform .2s;box-shadow:0 8px 24px #0000002e}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:50;height:52px;background:#ffffffd6;backdrop-filter:saturate(180%) blur(24px);border-bottom:1px solid rgba(0,0,0,.07)}.nav-shell{width:min(1340px,100%);height:52px;margin:auto;padding:0 22px;display:flex;align-items:center;gap:18px}.wordmark{width:88px;height:34px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none;background:transparent}.wordmark img{width:88px;height:34px;object-fit:contain;transform:none}.nav-links{display:flex;justify-content:center;align-items:center;gap:clamp(12px,1.7vw,25px);flex:1}.nav-links a{font-size:12px;font-weight:500;color:#29292b;transition:opacity .2s}.nav-links a:hover{opacity:.5}.nav-cta{min-height:34px;display:inline-flex;align-items:center;justify-content:center;background:var(--pink-deep);color:#fff;border-radius:999px;padding:0 16px;font-size:12px;line-height:1.5;font-weight:600}.menu-button{display:none;border-radius:8px}.promo-bar{min-height:48px;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 20px;text-align:center;font-size:13px;color:#3f3f46;background:#fff}.promo-bar a{color:var(--blue)}.promo-bar a span{font-size:18px;vertical-align:-1px}.hero{position:relative;min-height:620px;color:#fff;overflow:hidden;display:flex;align-items:flex-start;isolation:isolate;background:linear-gradient(145deg,#301455,#6f1d63 38%,#bd0e55)}.hero:before{content:"";position:absolute;z-index:2;width:520px;height:520px;top:-260px;right:-100px;border-radius:50%;background:radial-gradient(circle,#68beff6b,#fff0 66%);filter:blur(12px);animation:heroAurora 12s ease-in-out infinite alternate}.hero-image, .hero-shade{position:absolute;inset:0}.hero-image{z-index:0;display:block;width:100%;height:100%;transform:none;border-radius:0;overflow:hidden;box-shadow:none;will-change:transform;animation:heroBackgroundIn 1.25s .12s cubic-bezier(.2,.8,.2,1) both}.hero-image img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 0%}.hero-shade{z-index:1;background:linear-gradient(180deg,#120c34c2,#1d0d378a 43%,#260e3c33),radial-gradient(circle at 50% 0,rgba(255,255,255,.12),transparent 46%);pointer-events:none}.hero-content{position:relative;z-index:3;width:min(1180px,100%);margin:0 auto;padding:78px 22px 270px;text-align:center}.kicker, .section-label{margin:0 0 18px;font-size:14px;font-weight:650;letter-spacing:0;color:var(--pink-deep)}.hero .kicker{color:#fff}.hero h1{max-width:900px;margin:0 auto 20px;font-size:clamp(46px,5.8vw,76px);line-height:.96;letter-spacing:-.035em;font-weight:650}.hero h1 em{font-style:normal;color:#ffd6e6}.hero-lead{max-width:700px;margin:0 auto;font-size:clamp(18px,2vw,24px);line-height:1.35;letter-spacing:-.025em;color:#ffffffeb}.hero-content .actions{justify-content:center}.hero-image-actions{position:absolute;z-index:4;left:50%;bottom:52px;transform:translate(-50%);width:min(680px,calc(100% - 48px));display:flex;justify-content:center;align-items:center;gap:14px;padding:10px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#12112761;box-shadow:0 18px 50px #0a061d52;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);animation:heroPhotoIn 1.25s .28s cubic-bezier(.2,.8,.2,1) both}.hero-image-actions a{min-height:52px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 26px;font-size:16px;font-weight:650;line-height:1.2;white-space:nowrap;transition:transform .2s,background .2s,box-shadow .2s}.hero-image-actions a:hover{transform:translateY(-2px)}.hero-action-primary{background:#fff;color:#111;box-shadow:0 8px 24px #0000002e}.hero-action-primary:hover{background:#f2f2f4}.hero-action-secondary{gap:8px;border:1px solid rgba(255,255,255,.55);background:#140e2b9e;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}.hero-action-secondary:hover{background:#140e2bd1}.hero-action-secondary span{font-size:18px}.actions{display:flex;align-items:center;gap:26px;margin-top:34px}.pill{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:0 23px;border-radius:999px;font-size:16px;font-weight:550;transition:transform .2s,background .2s}.pill:hover{transform:translateY(-2px)}.pill-white{background:#fff;color:#000}.pill-white:hover{background:#e9e9eb}.pill-black{background:#000;color:#fff}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:520;border-bottom:1px solid #9a9a9e;padding-bottom:3px}.text-link span{font-size:17px}.text-link.light{border-color:#aaa;color:#fff}.hero-trust{position:relative;z-index:4;min-height:70px;padding:0 max(24px,calc((100vw - 1100px)/2));display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:20px;background:#f2f0fa;color:#171436db;border-top:1px solid rgba(23,20,54,.08);border-bottom:1px solid rgba(23,20,54,.12);font-size:13px;text-align:center}.hero-trust span:before{content:"\2713";margin-right:8px;color:var(--pink-deep);font-weight:800}.situations{padding:130px max(24px,calc((100vw - 1160px)/2));background:linear-gradient(180deg,#fff 0,#fff8fb)}.focused-heading{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:70px;margin-bottom:64px}.focused-heading h2, .difference h2, .home-faq h2{margin:0;font-size:clamp(42px,4.8vw,64px);line-height:1;letter-spacing:-.035em;font-weight:650}.focused-heading h2 em, .section-heading h2 em, .feature-copy h2 em, .process h2 em, .calc-copy h2 em, .home-faq h2 em, .reviews-intro h2 em{color:var(--pink);font-style:normal}.calculator .calc-copy h2 em{color:#ffb8d2}.focused-heading>p{max-width:450px;margin:0 0 8px;font-size:21px;line-height:1.5;letter-spacing:0;color:var(--grey)}.situation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.situation-card{min-height:310px;display:flex;flex-direction:column;padding:30px;border:1px solid rgba(18,17,39,.09);border-radius:24px;background:#fffc;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.situation-card:hover{transform:translateY(-6px);box-shadow:0 24px 55px #4617481c}.situation-card h3{margin:0 0 18px;font-size:28px;line-height:1.05;letter-spacing:-.045em}.situation-card p{margin:0;color:#171436bf;font-size:16px;line-height:1.5}.situation-card>span{margin-top:auto;padding-top:28px;color:var(--ink);font-size:14px;font-weight:650}.difference{padding:140px max(24px,calc((100vw - 1160px)/2));background:linear-gradient(145deg,#171436,#35246e 54%,#661b61);color:#fff}.difference-head{max-width:1080px;margin-bottom:76px}.difference h2{font-size:clamp(38px,3.75vw,52px);line-height:1.1;letter-spacing:-.048em}.difference h2 span{display:block;margin-top:18px;color:#ffb8d2}@media(min-width:1200px){.difference h2 span{white-space:nowrap}}.comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:42px}.comparison-grid article{min-height:330px;padding:34px;border:1px solid rgba(255,255,255,.16);border-radius:26px;background:#ffffff0e}.comparison-grid article.is-bright{background:linear-gradient(145deg,#bd0e55,#6c278c);border-color:transparent;box-shadow:0 25px 70px #00000038}.comparison-grid article>p:first-child{margin:0 0 52px;color:#cbc7db;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.comparison-grid article.is-bright>p:first-child{color:#fff}.comparison-grid h3{margin:0 0 18px;font-size:32px;line-height:1.05;letter-spacing:-.045em}.comparison-grid article>p:last-child{margin:0;color:#d1cede;font-size:16px;line-height:1.5}.comparison-grid article.is-bright>p:last-child{color:#fff}.difference>.text-link{border-color:#ffffff80}.intro{padding:150px max(24px,calc((100vw - 1080px)/2));background:linear-gradient(180deg,#fff 0,#fff8fb)}.intro h2, .section-heading h2, .process h2, .contact h2{margin:0;font-size:clamp(42px,4.8vw,64px);line-height:1;letter-spacing:-.035em;font-weight:650}.intro h2 span{background:linear-gradient(90deg,var(--pink),#7b3df0,var(--blue));background-clip:text;color:transparent}.intro>.text-link{margin-left:calc(100% - 620px)}.services{background:#f5f5f7;color:var(--ink);padding:130px max(24px,calc((100vw - 1160px)/2))}.section-heading{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:60px;margin-bottom:75px}.section-heading>p{margin:0 0 8px;max-width:400px;font-size:21px;line-height:1.5;color:var(--grey);letter-spacing:0}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.service-card{min-height:360px;display:grid;grid-template-columns:54px 1fr;align-content:space-between;padding:38px;border-radius:28px;position:relative;overflow:hidden}.service-card:after{content:"";position:absolute;inset:-60% -90%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.6) 50%,transparent 58%);transform:translate(-38%) rotate(8deg);transition:transform .9s cubic-bezier(.2,.8,.2,1);pointer-events:none}.service-card:hover:after{transform:translate(38%) rotate(8deg)}.service-card:nth-child(1){background:linear-gradient(145deg,#ffcbdf,#fff0f6)}.service-card:nth-child(2){background:linear-gradient(145deg,#c8e7ff,#f1f8ff)}.service-card:nth-child(3){background:linear-gradient(145deg,#ded6ff,#f4f1ff)}.service-card:nth-child(4){background:linear-gradient(145deg,#ffe2c9,#fff6ec)}.service-card:nth-child(5){background:linear-gradient(145deg,#c7efdf,#f1fff9)}.service-card:nth-child(6){background:linear-gradient(145deg,#ffd3cb,#fff3f0)}.service-no{color:#171436b8;font-size:13px}.service-card h3{margin:0 0 16px;font-size:clamp(26px,2.4vw,32px);letter-spacing:-.015em}.service-card p{max-width:430px;margin:0;font-size:18px;line-height:1.5;color:#171436bf;letter-spacing:0}.service-card>a{grid-column:2;font-size:14px;color:var(--blue);font-weight:650}.service-card>a span{margin-left:6px}.section-action{width:max-content;margin-top:46px}.feature{min-height:790px;display:grid;grid-template-columns:1fr 1fr}.feature-media{padding:54px clamp(24px,5vw,72px);background:radial-gradient(circle at 50% 30%,#a082ff,#5433cf 48%,#281769);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative;color:#fff;text-align:center}.feature-age-kicker{margin:0 0 14px;color:#eeeaff;font-size:14px;font-weight:650}.feature-number{font-size:clamp(150px,19vw,300px);line-height:.78;font-weight:700;letter-spacing:-.07em;background:linear-gradient(145deg,#fff,#d6ceff 58%,#8ea3ff);background-clip:text;color:transparent;filter:drop-shadow(0 24px 50px rgba(0,0,0,.25));transition:all .35s cubic-bezier(.2,.8,.2,1)}.feature-media>span{margin-top:22px;font-size:20px;color:#eeeaff}.retirement-stage{width:min(420px,100%);min-height:94px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.26)}.retirement-stage strong{display:block;font-size:18px;letter-spacing:-.02em}.retirement-stage p{margin:7px 0 0;color:#eeeaff;font-size:15px;line-height:1.45}.feature-copy{display:flex;flex-direction:column;justify-content:center;padding:80px max(40px,8vw);background:linear-gradient(145deg,#fff,#faf8ff)}.feature-copy h2{margin:0 0 32px;font-size:clamp(44px,5vw,68px);line-height:.98;letter-spacing:-.035em}.feature-copy>p:not(.section-label){max-width:520px;margin:0;font-size:22px;line-height:1.42;letter-spacing:-.028em;color:#424245}.process{padding:140px max(24px,calc((100vw - 1120px)/2));background:linear-gradient(155deg,#edf7ff,#ece8ff)}.process-head{max-width:760px;margin-bottom:86px}.process-head>p:last-child{font-size:21px;color:var(--grey);margin:28px 0 0}.process ol{list-style:none;padding:0;margin:0;border-top:1px solid #bbb}.process li{display:grid;grid-template-columns:110px 180px 1fr;gap:20px;border-bottom:1px solid #bbb;padding:38px 0;align-items:start}.process li>span{font-size:15px;color:var(--grey)}.process li b{font-size:14px}.process li h3{margin:0 0 10px;font-size:32px;letter-spacing:-.04em}.process li p{margin:0;font-size:17px;color:var(--grey)}.calculator{background:radial-gradient(circle at 80% 15%,#6c39e6,#25145e 45%,#13102b 90%);color:#fff;padding:130px max(24px,calc((100vw - 1160px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.calc-copy h2{margin:0;font-size:clamp(42px,4.8vw,64px);line-height:1;letter-spacing:-.035em}.calc-copy>p:last-child{font-size:19px;line-height:1.5;color:#c9c7d4;max-width:440px}.calc-panel{background:#ffffff1a;border-radius:30px;padding:40px;border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(18px);box-shadow:0 35px 80px #0a03234d}.controls{display:grid;grid-template-columns:1fr 1fr;gap:28px 30px}.controls label span{display:flex;justify-content:space-between;font-size:14px;color:#a1a1a6;margin-bottom:14px}.controls label b{color:#fff;font-size:17px}.controls input{width:100%;accent-color:#fff}.result{padding:48px 0 26px;text-align:center}.result span, .result small{display:block;color:#b8b5c6;font-size:13px}.result strong{display:block;margin:8px 0;font-size:clamp(52px,6vw,76px);letter-spacing:-.035em}.calc-note{margin:14px auto 0;max-width:640px;font-size:13px;line-height:1.5;text-align:center;color:#c9c7d4}.calc-link{width:max-content;display:flex;align-items:center;gap:8px;margin:26px auto 0;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.55);color:#fff;font-size:14px;font-weight:650}.home-faq{padding:140px max(24px,calc((100vw - 1120px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;background:#fff}.faq-intro>.text-link{margin-top:34px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;font-size:23px;line-height:1.25;font-weight:620;letter-spacing:-.025em}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:28px;font-weight:350;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>p{max-width:690px;margin:-4px 46px 30px 0;color:#171436d1;font-size:17px;line-height:1.55}.testimonials{padding:140px max(24px,calc((100vw - 1120px)/2));background:linear-gradient(145deg,#e6f4ff,#f5f1ff 52%,#fff1f6)}.reviews-intro{max-width:720px}.reviews-intro h2{margin:0;font-size:clamp(42px,4.8vw,64px);line-height:1;letter-spacing:-.035em;font-weight:680}.reviews-intro>p:last-child{max-width:550px;margin:28px 0 0;font-size:20px;line-height:1.5;color:var(--grey)}.trust-stats{display:flex;flex-wrap:wrap;gap:44px;margin:58px 0 42px;padding:30px 0;border-top:1px solid rgba(23,20,54,.14);border-bottom:1px solid rgba(23,20,54,.14)}.trust-stats div{min-width:150px}.trust-stats b, .trust-stats span{display:block}.trust-stats b{color:var(--pink-deep);font-size:29px;line-height:1;letter-spacing:-.04em}.trust-stats div:first-child b{color:var(--pink);font-size:21px;letter-spacing:.1em}.trust-stats span{margin-top:9px;color:var(--grey);font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.reviews-carousel{overflow:hidden}.reviews-track{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review{min-height:300px;display:flex;flex-direction:column;margin:0;padding:30px;border:1px solid rgba(23,20,54,.1);border-radius:26px;background:#fff;box-shadow:0 14px 35px #1714360f;transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease}.review:nth-child(2){background:linear-gradient(145deg,#fff0f6,#fff)}.review:nth-child(3){background:linear-gradient(145deg,#edf7ff,#fff)}.review:hover{transform:translateY(-7px);box-shadow:0 24px 55px #1714361f}.review .stars{margin:0 0 22px;color:var(--pink-deep);font-size:14px;letter-spacing:.14em}.review blockquote{margin:0;color:var(--ink);font-size:clamp(20px,1.8vw,27px);line-height:1.28;letter-spacing:-.035em;font-weight:560}.review cite{margin-top:auto;padding-top:26px;color:var(--grey);font-size:14px;font-style:normal;font-weight:650}.review-nav{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:28px}.review-nav button{width:44px;height:44px;border:1px solid rgba(23,20,54,.13);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;transition:transform .2s,background .2s}.review-nav .review-pause{width:auto;min-width:112px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:650}.review-nav button:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.review-nav span{min-width:92px;color:var(--grey);font-size:13px;text-align:center}.reviews-disclaimer{max-width:800px;margin:28px auto 0;color:var(--grey);font-size:12px;line-height:1.55;text-align:center}.team-title .section-label{grid-column:1/-1;margin-bottom:-45px}.initials{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:650;font-size:21px;margin-bottom:70px}.contact{min-height:720px;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden;isolation:isolate}.contact-bg{position:absolute;inset:0;z-index:0;display:block}.contact-bg img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.contact:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#190d40f0,#84145e8c,#10385f1f)}.contact-content{position:relative;z-index:2;width:min(1160px,100%);margin:auto;padding:80px 24px}.contact h2{font-size:clamp(60px,9vw,118px)}.contact h2 em{color:#ffd6e6;font-style:normal}.contact-content>p:not(.section-label){max-width:550px;font-size:22px;color:#eee}.contact-content>small{display:block;margin-top:42px;color:#ddd}footer{background:var(--navy);color:#bcb9ce;padding:75px max(24px,calc((100vw - 1100px)/2)) 32px;font-size:12px}.footer-main{display:grid;grid-template-columns:1fr 1fr;padding-bottom:60px}.footer-brand img{width:150px;filter:none;margin-bottom:20px;border-radius:12px}.footer-brand p{max-width:350px;line-height:1.5}.footer-brand>a{color:#fff;font-size:17px}.footer-links{display:grid;grid-template-columns:1fr 1fr}.footer-links b, .footer-links a{display:block;margin-bottom:12px}.footer-links b, .footer-links a:hover{color:#fff}.regulatory{border-top:1px solid #4a4667;padding-top:22px;line-height:1.5}.regulatory>div{display:flex;justify-content:space-between;border-top:1px solid #4a4667;margin-top:18px;padding-top:18px}.regulatory a{color:#fff}.home-panel{opacity:.72;transform:translateY(42px) scale(.99);transition:opacity .72s cubic-bezier(.2,.8,.2,1),transform .72s cubic-bezier(.2,.8,.2,1)}.home-panel.home-visible{opacity:1;transform:none}.home-panel img{transform:scale(1.025);transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}.home-panel.home-visible img{transform:scale(1)}.service-card, .review-card{transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease}.service-card:hover{transform:translateY(-7px) scale(1.008);box-shadow:0 25px 55px #1714361f}@keyframes heroPhotoIn{0%{opacity:0;transform:translate(-50%,48px) scale(.97)}to{opacity:1;transform:translate(-50%,var(--hero-parallax,0px)) scale(1)}}@keyframes heroBackgroundIn{0%{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes heroAurora{0%{transform:translate3d(-30px,0,0) scale(.92)}to{transform:translate3d(55px,42px,0) scale(1.08)}}@media(max-width:900px){.nav-links{display:none}.nav-cta{margin-left:auto;font-size:11px;padding:0 12px}.menu-button{display:block;width:24px;height:22px;border:0;background:none;position:relative}.menu-button i{position:absolute;left:2px;width:20px;height:1px;background:#000}.menu-button i:first-child{top:7px}.menu-button i:last-child{top:14px}.nav-links.open{position:absolute;top:52px;left:0;right:0;display:flex;flex-direction:column;align-items:flex-start;background:#fffffffa;padding:25px 28px 35px;gap:0}.nav-links.open a{font-size:27px;font-weight:600;padding:8px 0}.focused-heading, .comparison-grid, .section-heading, .feature, .calculator, .home-faq{grid-template-columns:1fr}.focused-heading, .section-heading{gap:30px}.situation-grid{grid-template-columns:1fr 1fr}.comparison-grid{gap:14px}.comparison-grid article{min-height:260px}.service-grid{grid-template-columns:1fr}.service-card, .service-card:nth-child(2n){grid-column:auto;padding:34px}.calculator, .home-faq{gap:60px}.reviews-track{grid-template-columns:1fr 1fr}.review:last-child{display:none}.team-title .section-label{margin:0}}@media(max-width:600px){.nav-shell{padding:0 16px}.wordmark{width:96px}.nav-cta{font-size:11px;padding:0 12px}.promo-bar{font-size:12px}.hero{min-height:640px}.hero-image{width:100%;height:100%;bottom:auto;border-radius:0}.hero-image img{object-position:55% 0%}.hero-shade{background:linear-gradient(180deg,#120c34cc,#1d0d378c 48%,#260e3c33)}.hero-content{padding:62px 20px 235px}.hero h1{font-size:clamp(42px,11vw,56px)}.hero-lead{font-size:17px}.hero-image-actions{bottom:18px;width:calc(100% - 36px);flex-direction:column;border-radius:28px;padding:9px;gap:8px}.hero-image-actions a{width:100%;min-height:44px;padding:0 18px;font-size:15px}.hero-trust{grid-template-columns:1fr;gap:6px;min-height:160px;padding:14px 16px}.hero-trust span{min-height:28px;display:flex;align-items:center;justify-content:center}.actions{align-items:flex-start;flex-direction:column;gap:20px}.hero .actions{align-items:center}.situations, .difference, .services, .process, .calculator, .home-faq, .testimonials{padding-top:90px;padding-bottom:90px}.focused-heading h2, .section-heading h2, .process h2, .home-faq h2, .contact h2, .reviews-intro h2{font-size:48px}.difference h2{font-size:40px;letter-spacing:-.035em}.difference h2 span{margin-top:14px}.focused-heading>p{font-size:18px}.situation-grid{grid-template-columns:1fr}.situation-card{min-height:260px}.difference-head{margin-bottom:48px}.comparison-grid article{min-height:250px;padding:28px}.comparison-grid article>p:first-child{margin-bottom:35px}.service-card{min-height:310px;grid-template-columns:42px 1fr}.feature{min-height:auto}.feature-media{min-height:470px}.feature-copy{padding:80px 24px}.feature-copy h2{font-size:56px}.process li{grid-template-columns:45px 1fr}.process li>div{grid-column:2}.controls{grid-template-columns:1fr}.calc-panel{padding:28px 20px}.result strong{font-size:52px}.faq-list summary{min-height:82px;font-size:19px}.faq-list details>p{margin-right:20px;font-size:16px}.reviews-track{grid-template-columns:1fr}.review-secondary{display:none}.review{min-height:280px;padding:28px}.trust-stats{gap:26px;margin:40px 0 30px}.trust-stats div{min-width:130px}.footer-main{grid-template-columns:1fr;gap:50px}.regulatory>div{flex-direction:column;gap:10px}}@media(max-width:390px){.nav-cta{display:none}.menu-button{margin-left:auto}.hero h1{font-size:46px}.hero-content{padding-left:16px;padding-right:16px}.situation-card, .comparison-grid article, .service-card{border-radius:20px}.service-card{padding:26px!important}.service-card h3{font-size:31px}.result strong{font-size:46px}.contact h2{font-size:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.home-panel{opacity:1!important;transform:none!important}.home-panel img{transform:none!important}}.bw-reveal{opacity:0;transform:translateY(28px);will-change:opacity,transform}.bw-reveal.bw-in{opacity:1;transform:none;transition:opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1)}.process ol li.bw-reveal>span{opacity:0;transform:translate(-12px)}.process ol li.bw-reveal.bw-in>span{opacity:1;transform:none;transition:opacity .6s ease .12s,transform .6s cubic-bezier(.2,.8,.2,1) .12s}@media(prefers-reduced-motion:reduce){.bw-reveal, .bw-reveal.bw-in, .process ol li.bw-reveal>span{opacity:1!important;transform:none!important;transition:none!important}}
/* ---------- Hero height parity with the inner pages ----------
   Inner pages resolve to clamp(620px, 90vh, 900px) on desktop (site-theme.css, !important), 680px at <=900px wide and 620px at <=560px. The homepage was
   left on a flat 620px that never scales, so on a tall desktop window its hero
   rendered up to ~280px shorter than every other page. These three rules mirror
   the inner-page ladder exactly. Appended last so they win on source order. */
.hero{min-height:clamp(620px,90vh,900px)}
@media(max-width:900px){.hero{min-height:680px}}
@media(max-width:560px){.hero{min-height:620px}}
/* Drop the hero lead two lines below the headline. 2.7em == 2 x the element's
   own 1.35 line-height, so the gap stays exactly two lines at every font size
   the clamp() produces, on desktop and mobile alike. */
.hero-lead{margin-top:2.7em}
/* ---------- Situation cards: colour-coded by life stage ----------
   Treatment B: the card surface stays white, matching the restraint of the
   rest of the site. Colour appears in three small places only — a short rule
   above the heading, a hint in the border, and the link. Enough to tell the
   cards apart at a glance; not enough to turn the section into a chart.

   A tinted-panel version was tried and rejected: four coloured surfaces
   introduced more colour variety than the rest of the site carries, and sat
   awkwardly on the white-to-blush gradient behind them.

   Hues map to meaning rather than being picked at random, and all clear
   WCAG AA against the white card (5.0:1 to 9.2:1). */
.situation-card{
  --accent:#bd0e55;
  position:relative;
  background:#fffffff2;
  border-color:color-mix(in srgb, var(--accent) 20%, rgba(18,17,39,.09));
}
@supports not (color: color-mix(in srgb, red 50%, blue)){
.situation-card{border-color:rgba(18,17,39,.12)}
}
.situation-card::before{
  content:"";
  display:block;
  width:44px;
  height:4px;
  margin-bottom:22px;
  border-radius:2px;
  background:var(--accent);
  transition:width .35s cubic-bezier(.2,.8,.2,1);
}
.situation-card:hover::before{width:76px}
.situation-card>span{color:var(--accent)}
.situation-card:hover{box-shadow:0 24px 55px color-mix(in srgb, var(--accent) 14%, transparent)}
.situation-card:nth-child(1){--accent:#9a5b12}/* bronze   — approaching retirement */
.situation-card:nth-child(2){--accent:#40404d}/* graphite — pensions in different places */
.situation-card:nth-child(3){--accent:#155cbf}/* blue     — business owners */
.situation-card:nth-child(4){--accent:#5b3fb5}/* violet   — received an inheritance */
.situation-card:nth-child(5){--accent:#bd0e55}/* pink     — passing wealth on */
.situation-card:nth-child(6){--accent:#17556b}/* petrol   — not sure where to start */

@media(prefers-reduced-motion:reduce){
  .situation-card::before{transition:none}
}
/* Five situation cards. A fixed 4-column grid would strand the fifth card on
   its own row, so the track count follows the available width instead: five
   across on a wide screen, then three, then two, then one. minmax keeps a card
   from ever becoming too narrow to read. */
.situation-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.situation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.situation-grid{grid-template-columns:1fr}}
.situation-card h3{font-size:25px}
/* ---------- Square-edged buttons, applied consistently ----------
   Matches the inner pages. Buttons, CTAs and the hero action bar are squared;
   avatar initials and decorative circles stay round. */
.nav-cta, .pill, .pill-black, .pill-white, .hero-image-actions, .hero-image-actions a, .review-nav .review-pause, .review-nav button, .hero-action-primary, .hero-action-secondary{border-radius:0}
/* ---------- Situation cards: shorter ----------
   min-height was 310px while the content only needs about 270px, so every
   card carried ~40px of empty space at the foot. Height now comes from the
   content, with the internal spacing tightened a little. The grid still makes
   all six the same height as the tallest, so the row stays even. */
.situation-card{min-height:275px;padding:28px}
.situation-card::before{margin-bottom:19px}
.situation-card>span{padding-top:24px}
.situation-card h3{margin-bottom:8px}
@media(max-width:860px){.situation-card{min-height:0;padding:24px}}
.hero-trust span, .review-nav button, .review-nav .review-pause{min-height:44px}
.review-nav button{min-width:44px}
.hero-trust{min-height:44px}
/* Seven cards: a fixed 3-column grid would leave the seventh alone on a row.
   auto-fit lets the last card stretch to fill the remaining track instead. */
.situation-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.situation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.situation-grid{grid-template-columns:1fr}}
/* ---------- Trust bar: centre the four items as a group ----------
   Was a 4-column grid, so each item sat in the middle of its own quarter
   of the viewport and the row read as four separate columns rather than
   one centred strip. Flex centres the set and keeps the 44px target size. */
.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:10px clamp(22px,3.4vw,46px);min-height:70px;padding:12px max(20px,calc((100vw - 1100px)/2));
  text-align:center}
.hero-trust span{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
@media(max-width:600px){
.hero-trust{flex-direction:column;gap:2px;min-height:0;padding:14px 16px}
.hero-trust span{min-height:34px}
}

/* ---------- Situation cards: accent bar ----------
   RESTORED. The base rule that draws the short coloured bar above each card
   heading was lost when I ran an automated dead-rule pass over this file —
   the :hover and margin variants survived but the rule carrying content:""
   and the default --accent did not, so the bars vanished and the "read more"
   line lost its colour. Re-added here. */
.situation-card{
  --accent:#bd0e55;
  position:relative;
  background:#fffffff2;
  border-color:color-mix(in srgb, var(--accent) 20%, rgba(18,17,39,.09));
}
.situation-card::before{
  content:"";
  display:block;
  width:44px;
  height:4px;
  margin-bottom:19px;
  border-radius:2px;
  background:var(--accent);
  transition:width .35s cubic-bezier(.2,.8,.2,1);
}
.situation-card:hover::before{width:76px}
@media(prefers-reduced-motion:reduce){.situation-card::before{transition:none}}
/* One accent per card, in reading order. */
.situation-card:nth-child(1){--accent:#9a5b12}
.situation-card:nth-child(2){--accent:#40404d}
.situation-card:nth-child(3){--accent:#155cbf}
.situation-card:nth-child(4){--accent:#5b3fb5}
.situation-card:nth-child(5){--accent:#bd0e55}
.situation-card:nth-child(6){--accent:#17556b}
.situation-card>span{color:var(--accent)}
.situation-card:hover{box-shadow:0 24px 55px color-mix(in srgb, var(--accent) 14%, transparent)}
/* Six cards, three across. */
.situation-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:860px){.situation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.situation-grid{grid-template-columns:1fr}}

/* ---------- Utility classes ----------
   These replace the 114 inline style="..." attributes that used to sit in the
   markup. Each declaration is copied verbatim, so rendering is unchanged; the
   point is that the Content-Security-Policy can now forbid inline styles.
   Named by what they do, and only ever used where the inline version was. */
.u-anchor-110{scroll-margin-top:110px;}
.u-anchor-110-mt-54{scroll-margin-top:110px; margin-top:54px;}
.u-anchor-90{scroll-margin-top:90px;}
.u-center-60ch{margin-top:30px; max-width:60ch; margin-left:auto; margin-right:auto;}
.u-cols-2{grid-template-columns:repeat(2,1fr);}
.u-em-glow{font-style:italic; color:var(--glow-soft);}
.u-glow{color:var(--glow-soft);}
.u-glow-link{color:var(--glow-soft); text-decoration:underline;}
.u-h-display{font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,3vw,2.1rem); line-height:1.2; margin-bottom:14px;}
.u-h-section{font-family:var(--serif); font-weight:600; font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:8px;}
.u-lede-tight{margin-bottom:-14px; font-size:0.86rem;}
.u-mb-14{margin-bottom:14px;}
.u-mb-20{margin-bottom:20px;}
.u-mb-22{margin-bottom:22px;}
.u-mb-34{margin-bottom:34px;}
.u-mh-44{min-height:44vh;}
.u-mt-18{margin-top:18px;}
.u-mt-26{margin-top:26px;}
.u-mt-28{margin-top:28px;}
.u-mt-30{margin-top:30px;}
.u-mt-32{margin-top:32px;}
.u-mt-34{margin-top:34px;}
.u-mt-34-92{margin-top:34px; font-size:0.92rem;}
.u-mt-34-dim{margin-top:34px; font-size:0.86rem; opacity:0.8;}
.u-mt-40{margin-top:40px;}
.u-mt-44{margin-top:44px;}
.u-mt-70{margin-top:70px;}
.u-mt-70-only{margin:70px 0 0;}
.u-mw-760{max-width:760px;}
.u-mw-800{max-width:800px;}
.u-mw-820{max-width:820px;}
.u-mw-860{max-width:860px;}
.u-mw-900{max-width:900px;}
.u-mw-960{max-width:960px;}
.u-note-44{font-size:0.78rem; margin-top:44px; color:var(--paper-faint);}
.u-note-68{margin-top:34px; font-size:0.68rem; color:var(--paper-faint); max-width:70ch;}
.u-offscreen{position:absolute; left:-9999px;}
.u-pt-2{padding-top:2vh;}
.u-pt-4{padding-top:4vh;}
.u-pt-6{padding-top:6vh;}
.u-row-26{margin-top:26px; display:flex; gap:14px; flex-wrap:wrap;}
.u-row-30{margin-top:30px; display:flex; gap:14px; flex-wrap:wrap;}
.u-stack-640{display:grid; gap:14px; margin-top:22px; max-width:640px;}
.u-sub-95{font-size:0.95rem; color:var(--paper-dim);}
.u-underline{text-decoration:underline;}
.u-w-full{width:100%;}

/* ---------------------------------------------------------------------------
   Contact call-to-action inside the testimonials section.
   The standalone .contact band was removed on 24 Aug 2026, taking the only
   in-body CTA and phone number with it. This puts them back at the foot of
   "Trusted by clients".

   Colours are chosen for THIS section's pale gradient background
   (#e6f4ff -> #f5f1ff -> #fff1f6), not the dark photo the old band used:
     .pill-black   #fff on #000                       21.0:1
     .section-label #bd0e55 on #fff1f6                 5.6:1
     small          rgba(23,20,54,.72) on #fff1f6      6.7:1
   Reusing the old .pill-white / .text-link.light would have rendered white
   text on a near-white background.
   ------------------------------------------------------------------------ */
.reviews-contact{
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid rgba(23,20,54,.14);
}
.reviews-contact .section-label{margin-bottom:14px}
.reviews-contact h3{
  margin:0 0 16px;
  font-size:clamp(32px,3.6vw,46px);
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:650;
}
.reviews-contact h3 em{font-style:normal;color:var(--pink)}
.reviews-contact-lead{
  max-width:520px;
  margin:0;
  font-size:19px;
  line-height:1.5;
  color:var(--grey);
}
.reviews-contact .actions{margin-top:30px}
.reviews-contact small{
  display:block;
  margin-top:20px;
  font-size:13px;
  color:var(--grey);
}
@media(max-width:600px){
  .reviews-contact{margin-top:44px;padding-top:32px}
  .reviews-contact h3{font-size:34px}
  .reviews-contact-lead{font-size:17px}
}

/* ============================================================================
   No-JavaScript fallback for the homepage reveal
   ----------------------------------------------------------------------------
   .bw-reveal starts at opacity 0 and .home-panel at 0.72; reveal.js and home.js
   add .bw-in / .home-visible once an element scrolls into view.

   reveal.js already guards itself (it only applies .bw-reveal after confirming
   IntersectionObserver exists, and has a 3-second failsafe), so the realistic
   gap is narrow: the stylesheet arriving but the script not. This mirrors the
   @media (scripting: none) rule that site-theme.css uses for .fade on the inner
   pages, so the homepage behaves the same way. Content on a financial advice
   site must never depend on a script to become visible.
   ========================================================================== */
@media (scripting: none) {
  .bw-reveal,
  .bw-reveal.bw-in,
  .process ol li.bw-reveal > span { opacity: 1 !important; transform: none !important; transition: none !important; }
  .home-panel { opacity: 1 !important; transform: none !important; }
  .home-panel img { transform: none !important; }
}

/* ---------- Hero action bar: give the short label room ----------
   The buttons were squared off further up this file. On a pill the rounded
   ends give a short label visual breathing room; on a square box the padding
   is all there is, so "Contact us" rendered as a stubby white block next to
   the much longer "How we plan retirement". More horizontal padding, plus a
   minimum width on the primary so the two read as a matched pair.
   Both still sit well inside the 680px bar (approx 200px + 285px + gaps). */
.hero-image-actions a{ padding: 0 34px; }
.hero-action-primary{ min-width: 240px; }

@media (max-width: 600px){
  /* Stacked and full width on phones, so the minimum would only fight the
     layout. Padding stays tighter to suit the smaller type. */
  .hero-image-actions a{ padding: 0 18px; }
  .hero-action-primary{ min-width: 0; }
}
