        /* ── Hero ── */
        .service-hero {
            background: #1e293b; position: relative; overflow: hidden;
            min-height: 88vh; display: flex; flex-direction: column; justify-content: center;
        }
        .hero-bg {
            position: absolute; inset: 0;
            background-image: url('../asset/Images/retirement-planning.webp');
            background-size: cover; background-position: center 40%; opacity: .10;
        }
        .hero-grid {
            position: absolute; inset: 0;
            background-image: linear-gradient(rgba(201,168,76,.045) 1px,transparent 1px),
                              linear-gradient(90deg,rgba(201,168,76,.045) 1px,transparent 1px);
            background-size: 56px 56px;
        }
        .hero-gradient {
            position: absolute; inset: 0;
            background: linear-gradient(140deg,#1e293b 0%,rgba(12,20,30,.2) 55%,#1e293b 100%);
        }
        .hero-accent-line {
            position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
            background: linear-gradient(180deg,transparent 0%,#d4af37 30%,#d4af37 70%,transparent 100%);
        }
        .hero-float {
            position: absolute; right: 4%; top: 50%; transform: translateY(-50%);
            font-family: 'Cormorant Garamond',serif;
            font-size: clamp(6rem,18vw,20rem); font-weight: 300;
            color: rgba(212,175,55,.04); line-height: 1; user-select: none; pointer-events: none;
        }
        .hero-glow {
            position: absolute; left: -8%; bottom: -15%;
            width: 55vw; height: 55vw; border-radius: 50%;
            background: radial-gradient(circle,rgba(212,175,55,.055) 0%,transparent 70%);
            pointer-events: none;
        }

        /* ── Shared atoms ── */
        .section-label {
            display: inline-flex; align-items: center; gap: .5rem;
            font-size: .68rem; font-weight: 700; letter-spacing: .25em;
            text-transform: uppercase; color: #d4af37;
        }
        .section-label::before { content:''; width:2rem; height:2px; background:#d4af37; }

        .animated-underline { position: relative; display: inline-block; }
        .animated-underline::after {
            content:''; position:absolute; bottom:-4px; left:0; width:100%; height:2px;
            background:linear-gradient(90deg,#d4af37,#e8c97a);
            transform:scaleX(0); transform-origin:left;
            transition:transform .4s cubic-bezier(.34,1.56,.64,1);
        }
        .animated-underline:hover::after { transform:scaleX(1); }

        /* ── Reveal ── */
        .reveal      { opacity:0; transform:translateY(28px); transition:opacity .65s,transform .65s; }
        .reveal.visible { opacity:1; transform:none; }
        .reveal-left { opacity:0; transform:translateX(-28px); transition:opacity .65s,transform .65s; }
        .reveal-left.visible { opacity:1; transform:none; }
        .reveal-right{ opacity:0; transform:translateX(28px); transition:opacity .65s,transform .65s; }
        .reveal-right.visible{ opacity:1; transform:none; }

        /* ── Scroll dot ── */
        .scroll-indicator {
            position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
            display:flex; flex-direction:column; align-items:center; gap:.5rem;
        }
        .scroll-dot {
            width:1px; height:50px; background:linear-gradient(180deg,#d4af37,transparent);
            animation:scrollDot 2s ease-in-out infinite;
        }
        @keyframes scrollDot { 0%,100%{opacity:.3;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.2)} }

        /* ── Marquee ── */
        .marquee-wrap { overflow:hidden; }
        .marquee-track { display:flex; animation:marquee 34s linear infinite; }
        @keyframes marquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

        /* ── Tabs ── */
        .s-tab {
            cursor:pointer; border-bottom:3px solid transparent;
            transition:all .3s; padding:.9rem 1.4rem;
            font-weight:600; font-size:.82rem;
            text-transform:uppercase; letter-spacing:.07em; color:#64748b; white-space:nowrap;
        }
        .s-tab:hover { color:#1e293b; }
        .s-tab.active { border-bottom-color:#d4af37; color:#d4af37; }
        .s-panel { display:none; }
        .s-panel.active { display:grid; }

        /* ── Feature card ── */
        .f-card {
            position:relative; overflow:hidden;
            transition:transform .3s,box-shadow .3s,border-color .3s;
            border-bottom:3px solid transparent;
        }
        .f-card:hover { transform:translateY(-5px); box-shadow:0 20px 50px rgba(201,168,76,.13); border-bottom-color:#d4af37; }
        .f-icon {
            width:3rem; height:3rem; background:linear-gradient(135deg,#1e293b,#162030);
            border-radius:.75rem; display:flex; align-items:center; justify-content:center;
            margin-bottom:1rem; transition:transform .3s; flex-shrink:0;
        }
        .f-card:hover .f-icon { transform:rotate(-6deg) scale(1.1); }

        /* ── Life stage cards ── */
        .stage-card {
            position:relative; overflow:hidden;
            transition:transform .3s, box-shadow .3s;
            border-top: 3px solid transparent;
        }
        .stage-card:hover { transform:translateY(-5px); box-shadow:0 22px 55px rgba(0,0,0,.10); }
        .stage-card.active-stage { border-top-color:#d4af37; box-shadow:0 22px 55px rgba(201,168,76,.12); }
        .stage-num {
            font-family:'Cormorant Garamond',serif; font-size:3.5rem;
            font-weight:300; line-height:1; color:rgba(212,175,55,.18);
            position:absolute; top:.5rem; right:1rem;
        }

        /* ── Account comparison ── */
        .acct-card {
            position:relative; overflow:hidden;
            transition:transform .3s, box-shadow .3s, border-color .3s;
            border:2px solid transparent;
        }
        .acct-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,.1); border-color:rgba(212,175,55,.3); }
        .acct-card.highlight { border-color:#d4af37; }

        /* ── Timeline ── */
        .timeline-item { position:relative; padding-left:2.5rem; }
        .timeline-item::before {
            content:''; position:absolute; left:.6rem; top:1.4rem; bottom:-1rem;
            width:2px; background:linear-gradient(180deg,#d4af37,rgba(212,175,55,.1));
        }
        .timeline-item:last-child::before { display:none; }
        .timeline-dot {
            position:absolute; left:0; top:1rem;
            width:1.25rem; height:1.25rem; border-radius:50%;
            background:#d4af37; display:flex; align-items:center; justify-content:center;
            flex-shrink:0;
        }
        .timeline-dot::after {
            content:''; width:.5rem; height:.5rem; border-radius:50%; background:#1e293b;
        }

        /* ── Stat card ── */
        .stat-card { position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
        .stat-card::before {
            content:''; position:absolute; inset:0;
            background:linear-gradient(135deg,rgba(201,168,76,.08) 0%,transparent 60%);
            opacity:0; transition:opacity .3s;
        }
        .stat-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,.14); }
        .stat-card:hover::before { opacity:1; }

        /* ── Package card ── */
        .pkg-card {
            position:relative; overflow:hidden;
            transition:transform .4s,box-shadow .4s; border:2px solid transparent;
        }
        .pkg-card:hover { transform:translateY(-6px); box-shadow:0 28px 70px rgba(0,0,0,.12); }
        .pkg-card.featured { border-color:#d4af37; }
        .pkg-card.featured::before {
            content:'Most Popular'; position:absolute; top:1.25rem; right:-2rem;
            background:#d4af37; color:#1e293b; font-size:.6rem; font-weight:700;
            letter-spacing:.15em; text-transform:uppercase; padding:.3rem 3.5rem;
            transform:rotate(35deg);
        }
        .pkg-check { display:flex; align-items:flex-start; gap:.65rem; }
        .pkg-check::before {
            content:''; width:1rem; height:1rem; flex-shrink:0; margin-top:.15rem;
            background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4af37' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
            background-repeat:no-repeat; background-size:contain;
        }

        /* ── Diff card ── */
        .diff-card { transition:all .3s; border:1px solid rgba(255,255,255,.08); }
        .diff-card:hover { border-color:rgba(212,175,55,.4); background:rgba(255,255,255,.06) !important; }

        /* ── FAQ ── */
        .faq-item { border-bottom:1px solid #e2e8f0; }
        .faq-q {
            width:100%; text-align:left; display:flex; justify-content:space-between;
            align-items:center; padding:1.2rem 0; cursor:pointer; transition:color .3s;
            font-weight:600; color:#1e293b; gap:1rem;
        }
        .faq-q:hover { color:#d4af37; }
        .faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease,padding .4s; }
        .faq-a.open { max-height:420px; padding-bottom:1.1rem; }
        .faq-ico { transition:transform .3s; flex-shrink:0; }
        .faq-ico.open { transform:rotate(45deg); }

        /* ── CTA ── */
        .cta-wrap { background:#1e293b; position:relative; overflow:hidden; }
        .cta-wrap::before {
            content:''; position:absolute; inset:0;
            background:radial-gradient(ellipse at 20% 50%,rgba(201,168,76,.10) 0%,transparent 60%);
        }
        .cta-pattern {
            position:absolute; inset:0;
            background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c9a84c' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        }

        /* ── Side CTA ── */
        .side-cta {
            position:fixed; right:0; top:50%; transform:translateY(-50%) rotate(180deg);
            writing-mode:vertical-rl; background:#d4af37; color:#1e293b;
            padding:1.2rem .6rem; font-size:.68rem; font-weight:700; letter-spacing:.15em;
            text-transform:uppercase; z-index:40; transition:background .3s;
            border-radius:0 0 6px 6px; text-decoration:none;
        }
        .side-cta:hover { background:#1e293b; color:#d4af37; }

        /* ── Section numbers ── */
        .sec-num {
            position:absolute; right:1rem; top:1.5rem;
            font-family:'Cormorant Garamond',serif;
            font-size:clamp(6rem,12vw,10rem); font-weight:700; line-height:1;
            user-select:none; pointer-events:none; color:#f1f5f9;
        }
        .sec-num-dark {
            position:absolute; right:1rem; top:1.5rem;
            font-family:'Cormorant Garamond',serif;
            font-size:clamp(6rem,12vw,10rem); font-weight:700; line-height:1;
            user-select:none; pointer-events:none; color:rgba(255,255,255,.03);
        }

        /* ── Pill badge ── */
        .rp-badge {
            display:inline-flex; align-items:center; gap:.4rem;
            padding:.35rem .85rem;
            background:rgba(212,175,55,.08); border:1px solid rgba(212,175,55,.2);
            border-radius:9999px; font-size:.72rem; font-weight:600;
            color:#d4af37; white-space:nowrap;
        }

        /* ── Progress bar ── */
        .progress-bar-wrap { height:6px; background:#e2e8f0; border-radius:9999px; overflow:hidden; }
        .progress-bar { height:100%; border-radius:9999px; background:linear-gradient(90deg,#d4af37,#e8c97a); transition:width 1s ease; }

        /* ── Account type pill ── */
        .acct-tag {
            display:inline-block; font-size:.65rem; font-weight:700;
            padding:.2rem .65rem; border-radius:9999px; letter-spacing:.05em;
            text-transform:uppercase;
        }
        .acct-tag.ca { background:rgba(212,175,55,.12); color:#d4af37; }
        .acct-tag.us { background:rgba(30,41,59,.08); color:#1e293b; }
        .acct-tag.both { background:rgba(212,175,55,.2); color:#b8951f; }

        /* mobile */
        #mobile-services-panel.open { display:flex; }
        .hero-stat { border-right:1px solid rgba(255,255,255,.1); }
        .hero-stat:last-child { border-right:none; }
        @media (max-width:767px) { .hero-float { display:none; } }