/* ===================================================================
   Pipxcel shared stylesheet (light theme)
   Used by services.html, index.html, express-zbt.html, services/*.html
   =================================================================== */

:root{
  --cream:#ebebe1; --cream-2:#f4f2e8; --paper:#fafafa;
  --navy:#252638; --navy-2:#3a3c56;
  --royal:#2f5f98; --royal-dark:#1f4a7d; --royal-tint:#e7eef7;
  --lime:#cfde51; --lime-dark:#b8c840;
  --ink:#252638; --ink-soft:#5a5d75; --hair:#d8d8cc;
  --up:#3ddc97; --down:#e15b6c;
  --shadow:0 8px 30px rgba(37,38,56,.08);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif; background:var(--cream); color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
a{color:var(--royal); text-decoration:none}
a:hover{color:var(--royal-dark)}
img{max-width:100%; height:auto; display:block}
.container{max-width:1200px; margin:0 auto; padding:0 24px}
.container-narrow{max-width:1080px; margin:0 auto; padding:0 24px}

/* ---------- Top nav ---------- */
.nav{position:sticky; top:0; z-index:80; background:rgba(235,235,225,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--hair)}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; max-width:1440px; margin:0 auto; gap:16px}
.brand{display:flex; align-items:center; gap:12px; color:var(--navy)}
.brand-mark{height:40px; width:auto; display:block}
.brand-lockup{display:flex; align-items:center; line-height:1}
.brand-lockup .s{font-size:10px; font-weight:600; letter-spacing:.22em; color:var(--ink-soft); text-transform:uppercase; padding-left:12px; border-left:1px solid var(--hair); white-space:nowrap}
.nav-links{display:flex; align-items:center; gap:4px; flex-wrap:nowrap}
.nav-link{padding:8px 10px; border-radius:999px; font-size:14px; font-weight:500; color:var(--navy); transition:background .15s; white-space:nowrap}
.nav-link:hover{background:rgba(47,95,152,.08); color:var(--royal-dark)}
.nav-link.active{background:var(--royal); color:#fff}
.nav-cta{padding:9px 18px; background:var(--lime); color:var(--navy); border-radius:999px; font-weight:700; font-size:13.5px; letter-spacing:.02em; box-shadow:0 4px 14px rgba(207,222,81,.4); transition:transform .15s, box-shadow .15s}
.nav-cta:hover{transform:translateY(-1px); box-shadow:0 6px 20px rgba(207,222,81,.55); color:var(--navy)}
.nav-toggle{display:none; background:transparent; border:0; padding:8px; cursor:pointer}

/* Dropdown */
.nav-dd{position:relative}
.nav-dd-btn{display:inline-flex; align-items:center; background:transparent; border:0; cursor:pointer; font-family:inherit}
.nav-dd-menu{position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(-4px); min-width:520px; background:var(--paper); border:1px solid var(--hair); border-radius:16px; box-shadow:0 24px 60px rgba(37,38,56,.18); padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:4px; opacity:0; visibility:hidden; transition:opacity .18s, transform .18s, visibility .18s}
.nav-dd.open .nav-dd-menu{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0)}
.drop-item{display:block; padding:12px 14px; border-radius:10px; transition:background .15s; color:var(--navy)}
.drop-item:hover{background:var(--royal-tint); color:var(--navy)}
.drop-item.active{background:var(--royal-tint)}
.drop-item.active .drop-item-title{color:var(--royal-dark)}
.drop-item-title{font-weight:700; font-size:14.5px; color:var(--navy); margin-bottom:2px}
.drop-item-sub{font-size:12.5px; color:var(--ink-soft); line-height:1.4}
.drop-item--all{grid-column:1 / -1; background:linear-gradient(135deg, var(--royal) 0%, var(--royal-dark) 100%); padding:14px 16px}
.drop-item--all .drop-item-title{color:#fff}
.drop-item--all .drop-item-sub{color:rgba(255,255,255,.75)}
.drop-item--all:hover{background:linear-gradient(135deg, var(--royal-dark) 0%, var(--navy) 100%); color:#fff}
.drop-divider{grid-column:1 / -1; height:1px; background:var(--hair); margin:4px 0}

@media(max-width:1350px){.brand-lockup{display:none}}
@media(max-width:1200px){
  .nav-toggle{display:block}
  .nav-links{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; background:var(--cream); border-top:1px solid var(--hair); padding:12px 24px; gap:4px; max-height:calc(100dvh - 70px); overflow-y:auto}
  .nav-links.open{display:flex}
  .nav-dd-menu{position:static; transform:none; min-width:0; grid-template-columns:1fr; box-shadow:none; border:1px solid var(--hair); margin-top:4px; padding:8px; opacity:1; visibility:visible; display:none}
  .nav-dd.open .nav-dd-menu{display:grid; transform:none}
  .nav-dd-btn{width:100%; justify-content:space-between; padding:10px 14px}
}

/* ---------- Hero ---------- */
.hero{padding:80px 0 40px; position:relative; overflow:hidden}
.hero::before{content:""; position:absolute; top:-100px; right:-80px; width:400px; height:400px; background:radial-gradient(circle, rgba(207,222,81,.3), transparent 65%); pointer-events:none}
.hero::after{content:""; position:absolute; bottom:-100px; left:-80px; width:400px; height:400px; background:radial-gradient(circle, rgba(47,95,152,.14), transparent 65%); pointer-events:none}
.hero-inner{position:relative; z-index:1; max-width:900px; margin:0 auto}
.hero-inner.center{text-align:center}
.eyebrow{display:inline-flex; align-items:center; gap:8px; padding:6px 14px; background:var(--royal-tint); border:1px solid rgba(47,95,152,.2); border-radius:999px; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--royal-dark); text-transform:uppercase; margin-bottom:22px}
.eyebrow .dot{width:6px; height:6px; background:var(--royal); border-radius:50%}
.hero h1{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(38px,6vw,68px); line-height:1.05; letter-spacing:-.02em; margin:0 0 18px; color:var(--navy)}
.hero h1 .accent{color:var(--royal); font-style:italic}
.hero-sub{font-size:clamp(16px,1.8vw,19px); color:var(--ink-soft); line-height:1.6; max-width:660px; margin:0 auto 14px}
.hero-tagline{font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.18em; color:var(--royal); text-transform:uppercase; margin:0 0 32px}
.hero-cta-row{display:flex; gap:12px; flex-wrap:wrap}
.hero-inner.center .hero-cta-row{justify-content:center}

.btn-primary{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; background:var(--navy); color:#fff; border-radius:999px; font-weight:600; font-size:15px; box-shadow:var(--shadow); transition:transform .15s, background .15s}
.btn-primary:hover{background:var(--royal); transform:translateY(-1px); color:#fff}
.btn-outline{display:inline-flex; align-items:center; gap:8px; padding:13px 24px; background:transparent; color:var(--navy); border:1.5px solid var(--navy); border-radius:999px; font-weight:600; font-size:15px}
.btn-outline:hover{background:var(--navy); color:#fff}
.btn-lime{display:inline-flex; align-items:center; gap:9px; padding:14px 26px; background:var(--lime); color:var(--navy); border-radius:999px; font-weight:700; font-size:15px; box-shadow:0 8px 26px rgba(207,222,81,.42); transition:transform .15s}
.btn-lime:hover{transform:translateY(-1px); color:var(--navy)}

/* ---------- Section shell ---------- */
.band{background:linear-gradient(90deg, var(--royal) 0%, var(--royal-dark) 100%); color:#fff; padding:14px 0; text-align:center; margin:30px 0}
.band h2{font-family:'Playfair Display',serif; font-weight:700; font-size:clamp(20px,2.5vw,28px); margin:0; letter-spacing:.01em}
section{padding:32px 0}
.kicker{font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:30px; letter-spacing:0; color:var(--royal); text-transform:none; margin:0 0 14px}
.sec-title{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(30px,4vw,44px); line-height:1.15; letter-spacing:-.015em; margin:0 0 14px; color:var(--navy)}
.sec-lead{font-size:16px; color:var(--ink-soft); max-width:680px; line-height:1.65; margin:0 auto}
.sec-center{text-align:center}

/* ---------- Value strip ---------- */
.value-strip{background:var(--paper); border:1px solid var(--hair); border-radius:24px; padding:28px 32px; margin:24px 0 60px; box-shadow:var(--shadow); position:relative; overflow:hidden}
.value-strip::before{content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--royal), var(--lime))}
.value-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; text-align:center}
.value-grid.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.value-grid, .value-grid.four{grid-template-columns:1fr 1fr}}
.value-cell .v{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(28px,3.5vw,42px); line-height:1; color:var(--navy); white-space:nowrap}
.value-cell .l{font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); margin-top:10px}

/* ---------- Benefits grid ---------- */
.benefit-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:36px}
@media(max-width:820px){.benefit-grid{grid-template-columns:1fr}}
.benefit{position:relative; padding:28px 26px; background:var(--paper); border:1px solid var(--hair); border-radius:18px; transition:transform .2s, box-shadow .2s}
.benefit:hover{transform:translateY(-2px); box-shadow:0 12px 30px rgba(37,38,56,.1)}
.benefit .b-ico{width:44px; height:44px; border-radius:12px; background:var(--royal-tint); display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:var(--royal-dark)}
.benefit.gold .b-ico{background:rgba(207,222,81,.25); color:var(--lime-dark)}
.benefit h3{font-family:'Playfair Display',serif; font-weight:700; font-size:20px; margin:0 0 8px; color:var(--navy); line-height:1.25}
.benefit p{font-size:14.5px; color:var(--ink-soft); margin:0; line-height:1.6}

/* ---------- Two-column feature ---------- */
.feature-row{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; padding:32px 0}
.feature-row.reverse{direction:rtl}
.feature-row.reverse > *{direction:ltr}
@media(max-width:820px){.feature-row{grid-template-columns:1fr; gap:24px} .feature-row.reverse{direction:ltr}}
.feature-row h2{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(28px,3.5vw,38px); line-height:1.15; margin:0 0 14px; color:var(--navy)}
.feature-row p{font-size:15.5px; color:var(--ink-soft); line-height:1.7; margin:0 0 12px}
.feature-row ul{list-style:none; padding:0; margin:14px 0 0}
.feature-row ul li{position:relative; padding:6px 0 6px 22px; font-size:15px; color:var(--ink); line-height:1.6}
.feature-row ul li::before{content:""; position:absolute; left:0; top:14px; width:8px; height:8px; background:var(--lime); border-radius:2px; transform:rotate(45deg)}
.feature-visual{background:linear-gradient(135deg, var(--royal-tint), var(--cream-2)); border:1px solid var(--hair); border-radius:20px; padding:36px; min-height:280px; display:flex; align-items:center; justify-content:center; text-align:center; box-shadow:var(--shadow)}
.feature-visual .big-num{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(80px,10vw,140px); line-height:1; color:var(--royal); letter-spacing:-.03em}
.feature-visual .big-lbl{font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.2em; color:var(--ink-soft); text-transform:uppercase; margin-top:8px}
.feature-visual .stack-num{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(44px,5vw,64px); line-height:1; color:var(--navy)}

/* ---------- Included list (checkmark rows) ---------- */
.included{background:var(--paper); border:1px solid var(--hair); border-radius:20px; padding:32px; box-shadow:var(--shadow)}
.included h3{font-family:'Playfair Display',serif; font-weight:800; font-size:24px; margin:0 0 8px; color:var(--navy)}
.included .sub{font-size:14px; color:var(--ink-soft); margin-bottom:20px}
.included ul{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 28px}
@media(max-width:820px){.included ul{grid-template-columns:1fr}}
.included ul li{position:relative; padding:8px 0 8px 30px; font-size:14.5px; color:var(--ink); line-height:1.55; border-bottom:1px solid var(--hair)}
.included ul li:last-child, .included ul li:nth-last-child(2):nth-child(odd){border-bottom:none}
.included ul li::before{content:""; position:absolute; left:0; top:11px; width:18px; height:18px; background:var(--royal-tint); border-radius:50%}
.included ul li::after{content:""; position:absolute; left:5px; top:15px; width:8px; height:4px; border-left:2px solid var(--royal-dark); border-bottom:2px solid var(--royal-dark); transform:rotate(-45deg)}

/* ---------- Testimonial block ---------- */
.pull-quote{max-width:820px; margin:36px auto; padding:32px 36px; background:var(--paper); border:1px solid var(--hair); border-left:4px solid var(--lime); border-radius:16px; box-shadow:var(--shadow)}
.pull-quote blockquote{font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(20px,2.4vw,26px); line-height:1.4; color:var(--navy); margin:0 0 14px}
.pull-quote cite{font-style:normal; font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.16em; color:var(--ink-soft); text-transform:uppercase}

/* ---------- CTA band ---------- */
.cta-band{padding:64px 0; text-align:center; background:linear-gradient(135deg, var(--navy) 0%, var(--royal-dark) 60%, var(--royal) 100%); color:#fff; margin-top:40px; position:relative; overflow:hidden}
.cta-band::before{content:""; position:absolute; top:-100px; right:-100px; width:340px; height:340px; background:radial-gradient(circle, rgba(207,222,81,.32), transparent 65%); pointer-events:none}
.cta-band::after{content:""; position:absolute; bottom:-100px; left:-100px; width:340px; height:340px; background:radial-gradient(circle, rgba(255,255,255,.08), transparent 65%); pointer-events:none}
.cta-band .container{position:relative; z-index:1}
.cta-band img.wordmark{height:56px; margin:0 auto 24px; opacity:.95}
.cta-band .kicker{color:var(--lime)}
.cta-band h3{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(28px,4vw,42px); margin:0 0 12px; color:#fff}
.cta-band h3 .accent{color:var(--lime); font-style:italic}
.cta-band p{color:rgba(255,255,255,.82); font-size:16px; margin:0 0 26px; max-width:580px; margin-left:auto; margin-right:auto; line-height:1.6}
.cta-band .cta-row{display:flex; justify-content:center; gap:12px; flex-wrap:wrap}
.cta-band .btn-lime{background:var(--lime); color:var(--navy); box-shadow:0 8px 30px rgba(207,222,81,.35)}
.cta-band .btn-lime:hover{background:var(--lime-dark); color:var(--navy)}
.cta-band .btn-ghost{display:inline-flex; align-items:center; gap:8px; padding:13px 24px; background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4); border-radius:999px; font-weight:600; font-size:15px}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,.1); color:#fff; border-color:#fff}

/* ---------- Footer ---------- */
footer{background:var(--navy); color:#fff; padding:60px 0 30px}
footer .foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:36px; margin-bottom:36px}
@media(max-width:820px){footer .foot-grid{grid-template-columns:1fr 1fr; gap:28px}}
footer .foot-brand img{height:44px; margin-bottom:14px; filter:brightness(1.1)}
footer .foot-brand p{font-size:13px; color:rgba(255,255,255,.6); line-height:1.65; margin:0}
footer .foot-col h4{font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; color:#8b93a8; text-transform:uppercase; margin:0 0 14px}
footer .foot-col a{display:block; padding:5px 0; color:rgba(255,255,255,.7); font-size:14px; transition:color .15s}
footer .foot-col a:hover{color:var(--lime)}
.foot-mm{border-top:1px solid rgba(255,255,255,.08); padding:20px 0; margin-bottom:4px}
.foot-mm-inner{display:inline-flex; align-items:center; gap:14px; padding:10px 20px 10px 12px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:999px}
.foot-mm-inner img{height:32px; width:auto; display:block; border-radius:6px}
.foot-mm-txt{display:flex; flex-direction:column; line-height:1.2}
.foot-mm-lbl{font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#8b93a8; font-weight:600}
.foot-mm-val{font-size:13px; color:rgba(255,255,255,.9); font-weight:600}
.foot-mm-val em{font-style:normal; color:var(--lime)}
.foot-legal{border-top:1px solid rgba(255,255,255,.08); padding-top:20px; font-size:12px; color:rgba(255,255,255,.4); line-height:1.6}
.foot-legal .uen{color:var(--lime); font-family:'Inter',sans-serif; letter-spacing:.05em}

/* ---------- Callout ---------- */
.callout{display:flex; gap:16px; align-items:flex-start; padding:24px; background:var(--royal-tint); border:1px solid rgba(47,95,152,.2); border-radius:16px; margin:24px 0}
.callout.gold{background:rgba(207,222,81,.2); border-color:rgba(207,222,81,.4)}
.callout .ico{flex-shrink:0}
.callout h3{font-family:'Playfair Display',serif; font-size:20px; margin:0 0 6px; color:var(--navy)}
.callout p{margin:0; font-size:14.5px; color:var(--ink-soft); line-height:1.6}
.callout a{color:var(--royal-dark); font-weight:600}

/* ---------- Reveal ---------- */
.related-guides{padding:48px 24px;background:var(--cream-2)}
.related-guides h2{font-family:'Playfair Display',serif;font-size:clamp(24px,2.6vw,32px);line-height:1.25;margin:0 0 12px;color:var(--navy)}
.related-guides p{max-width:680px;line-height:1.7;margin:0 0 16px;color:var(--ink-soft)}
.related-guides ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 32px}
.related-guides a{display:inline-block;padding:10px 0;color:var(--royal-dark);font-weight:600;text-decoration:underline;text-underline-offset:4px;line-height:1.6}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .55s, transform .55s}
.reveal.in{opacity:1; transform:none}

/* ===================================================================
   Partner page (services/partner.html)
   =================================================================== */

.progress-bar{position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg, var(--royal), var(--lime)); z-index:100; transition:width .1s}

.lime-txt{color:var(--lime-dark)}
.royal-txt{color:var(--royal)}

/* ---------- Stack diagram ---------- */
.stack-diagram{display:grid; grid-template-columns:1fr 60px 1fr 60px 1fr; gap:0; align-items:center; margin:40px 0 24px; max-width:1100px; margin-left:auto; margin-right:auto}
.stack-node{background:var(--paper); border:1px solid var(--hair); border-radius:20px; padding:24px 22px; box-shadow:var(--shadow); text-align:center; position:relative; overflow:hidden}
.stack-node::before{content:""; position:absolute; inset:0 0 auto 0; height:3px}
.stack-node--mm::before{background:linear-gradient(90deg, #ff9040, #ff6b1a)}
.stack-node--px::before{background:linear-gradient(90deg, var(--royal), var(--royal-dark))}
.stack-node--you::before{background:linear-gradient(90deg, var(--lime), var(--lime-dark))}
.stack-tag{font-size:10.5px; font-weight:700; letter-spacing:.16em; color:var(--ink-soft); text-transform:uppercase; margin-bottom:8px}
.stack-name{font-family:'Playfair Display',serif; font-weight:700; font-size:20px; color:var(--navy); margin-bottom:14px}
.stack-amount{display:flex; align-items:baseline; justify-content:center; gap:4px; margin-bottom:12px}
.stack-amount--split{flex-wrap:wrap; row-gap:2px}
.stack-pre{width:100%; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin-bottom:2px}
.stack-num{font-family:'Playfair Display',serif; font-weight:800; font-size:44px; color:var(--navy); line-height:1}
.stack-num--range{font-size:34px}
.stack-unit{font-size:14px; color:var(--ink-soft); font-weight:600}
.stack-note{font-size:12.5px; color:var(--ink-soft); line-height:1.5}
.stack-arrow{display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--royal); padding:0 4px}
.stack-arrow svg{width:100%; height:20px}
.stack-arrow-lbl{font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; white-space:nowrap; text-align:center; line-height:1.2}
@media(max-width:900px){
  .stack-diagram{grid-template-columns:1fr; gap:12px}
  .stack-arrow{transform:rotate(90deg); padding:8px 0}
  .stack-arrow svg{width:40px}
}

/* ---------- Doc notes ---------- */
.doc-note{display:flex; gap:14px; align-items:flex-start; padding:20px 22px; background:var(--paper); border:1px solid var(--hair); border-left:4px solid var(--royal); border-radius:12px; margin:26px 0; font-size:14.5px; color:var(--ink); line-height:1.65}
.doc-note--blue{border-left-color:var(--royal); background:var(--royal-tint)}
.doc-note--small{font-size:13px; padding:14px 18px}
.doc-note-icon{flex-shrink:0; font-size:20px; color:var(--royal); font-weight:700; line-height:1}

/* ---------- Tier grid ---------- */
.tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:32px 0}
.tier-card{background:var(--paper); border:1px solid var(--hair); border-radius:20px; padding:24px; box-shadow:var(--shadow); position:relative; overflow:hidden}
.tier-card::before{content:""; position:absolute; inset:0 0 auto 0; height:3px; background:var(--hair)}
.tier-card--mid::before{background:var(--royal)}
.tier-card--top{background:linear-gradient(180deg, #f8faff 0%, var(--paper) 100%); border-color:rgba(47,95,152,.25)}
.tier-card--top::before{background:linear-gradient(90deg, var(--royal), var(--lime))}
.tier-band{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:6px}
.tier-range{font-size:14px; color:var(--ink); font-weight:600; margin-bottom:14px}
.tier-rate{display:flex; align-items:baseline; gap:4px; margin-bottom:16px}
.tier-num{font-family:'Playfair Display',serif; font-weight:800; font-size:52px; color:var(--navy); line-height:1}
.tier-card--top .tier-num{color:var(--royal-dark)}
.tier-unit{font-size:15px; color:var(--ink-soft); font-weight:600}
.tier-list{margin:0 0 16px; padding:0; list-style:none}
.tier-list li{padding:6px 0 6px 20px; position:relative; font-size:13.5px; color:var(--ink); line-height:1.5}
.tier-list li::before{content:"→"; position:absolute; left:0; color:var(--royal); font-weight:700}
.tier-progress{height:6px; background:var(--hair); border-radius:999px; overflow:hidden}
.tier-fill{display:block; height:100%; background:var(--ink-soft); border-radius:999px}
.tier-fill--mid{background:var(--royal)}
.tier-fill--top{background:linear-gradient(90deg, var(--royal), var(--lime))}
@media(max-width:820px){ .tier-grid{grid-template-columns:1fr} }

/* ---------- Zack proposal · lever cards (scoped to #levers) ---------- */
#levers .tier-card{padding:32px 28px 28px; background:linear-gradient(180deg, #ffffff 0%, var(--paper) 100%)}
#levers .tier-card::before{height:4px; background:linear-gradient(90deg, var(--royal), rgba(47,95,152,.25))}
#levers .tier-card--mid::before{background:linear-gradient(90deg, var(--royal), var(--royal-dark))}
#levers .tier-card--top::before{background:linear-gradient(90deg, var(--royal), var(--lime))}
#levers .tier-card-num{font-family:'Playfair Display',serif; font-weight:700; font-style:italic; font-size:72px; line-height:.9; color:var(--royal); letter-spacing:-.02em; margin-bottom:6px; display:block}
#levers .tier-card-num::after{content:""; display:block; width:44px; height:2px; background:linear-gradient(90deg, var(--royal), var(--lime)); margin-top:10px; border-radius:2px; opacity:.7}
#levers .tier-card-title{font-family:'Playfair Display',serif; font-weight:600; font-size:24px; color:var(--navy); line-height:1.15; margin:14px 0 12px; letter-spacing:-.01em}
#levers .tier-card-body{font-size:14px; color:var(--ink); line-height:1.65; margin:0 0 16px}
#levers .tier-card-list{margin:0; padding:0; list-style:none}
#levers .tier-card-list li{position:relative; padding:7px 0 7px 22px; font-size:13.5px; color:var(--ink); line-height:1.5; border-bottom:1px dashed var(--hair)}
#levers .tier-card-list li:last-child{border-bottom:0}
#levers .tier-card-list li::before{content:""; position:absolute; left:0; top:15px; width:10px; height:10px; border-radius:50%; background:var(--royal); box-shadow:0 0 0 3px rgba(47,95,152,.12)}
#levers .tier-card--top .tier-card-list li::before{background:var(--lime); box-shadow:0 0 0 3px rgba(207,222,81,.22)}
@media(max-width:820px){
  #levers .tier-card-num{font-size:56px}
  #levers .tier-card-title{font-size:20px}
  #levers .tier-card{padding:26px 22px}
}

/* ---------- Doc table ---------- */
.doc-table-wrap{margin:26px 0; background:var(--paper); border:1px solid var(--hair); border-radius:16px; overflow:hidden; box-shadow:var(--shadow)}
.doc-table{width:100%; border-collapse:collapse; font-size:14px}
.doc-table th{background:var(--royal-tint); text-align:left; padding:14px 18px; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--royal-dark); font-weight:700; border-bottom:1px solid var(--hair)}
.doc-table td{padding:14px 18px; border-bottom:1px solid var(--hair); color:var(--ink)}
.doc-table tbody tr:last-child td{border-bottom:0}
.doc-caption{padding:12px 18px; background:var(--cream-2); font-size:12.5px; color:var(--ink-soft); font-style:italic; border-top:1px solid var(--hair)}

/* ---------- Support hero ---------- */
.support-hero{display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; background:linear-gradient(135deg, var(--royal) 0%, var(--royal-dark) 100%); color:#fff; border-radius:24px; padding:32px 36px; margin:32px 0; box-shadow:0 20px 50px rgba(47,95,152,.24)}
.support-eyebrow{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.7); font-weight:700; margin-bottom:8px}
.support-max{font-family:'Playfair Display',serif; font-weight:800; font-size:clamp(28px,3.5vw,42px); line-height:1.1; margin-bottom:8px}
.support-max .royal-txt{color:var(--lime)}
.support-sub{font-size:14px; color:rgba(255,255,255,.8)}
.support-split{display:flex; flex-direction:column; gap:14px}
.split-row{display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; font-size:13px}
.split-lbl{color:rgba(255,255,255,.9); display:flex; align-items:center; gap:8px; font-weight:600; white-space:nowrap}
.split-dot{width:10px; height:10px; border-radius:50%}
.split-bar{height:8px; background:rgba(255,255,255,.15); border-radius:999px; overflow:hidden}
.split-fill{display:block; height:100%; border-radius:999px}
.split-val{color:#fff; font-weight:700; font-family:'Playfair Display',serif; font-size:16px}
@media(max-width:820px){ .support-hero{grid-template-columns:1fr; padding:26px 22px} }

/* ---------- Support grid ---------- */
.support-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:24px 0}
.support-card{background:var(--paper); border:1px solid var(--hair); border-radius:20px; padding:22px; box-shadow:var(--shadow); position:relative}
.support-card--px{border-color:rgba(207,222,81,.5); background:linear-gradient(180deg, rgba(207,222,81,.06) 0%, var(--paper) 100%)}
.support-card-head{margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--hair)}
.support-tag{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:6px}
.support-tag--px{color:var(--lime-dark)}
.support-title{font-family:'Playfair Display',serif; font-weight:700; font-size:18px; color:var(--navy); margin-bottom:6px}
.support-max-lbl{font-size:12.5px; color:var(--ink-soft)}
.support-max-lbl b{color:var(--navy); font-weight:700}
.support-table{width:100%; border-collapse:collapse; font-size:13px}
.support-table th{text-align:left; padding:6px 4px; color:var(--ink-soft); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--hair)}
.support-table td{padding:8px 4px; color:var(--ink); border-bottom:1px dashed var(--hair)}
.support-table tbody tr:last-child td{border-bottom:0; font-weight:700}
.px-badge{display:inline-block; margin-top:12px; padding:4px 10px; background:var(--lime); color:var(--navy); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; border-radius:999px}
@media(max-width:900px){ .support-grid{grid-template-columns:1fr} }

/* ---------- QND card ---------- */
.qnd-card{display:grid; grid-template-columns:minmax(340px, 1.15fr) 1fr; gap:36px; align-items:start; background:var(--paper); border:1px solid var(--hair); border-radius:24px; padding:36px; margin:32px 0; box-shadow:var(--shadow); position:relative; overflow:hidden}
.qnd-card::before{content:""; position:absolute; inset:0 auto 0 0; width:6px; background:linear-gradient(180deg, var(--royal), var(--lime))}
.qnd-left{padding-right:24px; border-right:1px solid var(--hair)}
.qnd-pct{font-family:'Playfair Display',serif; font-weight:800; font-size:88px; color:var(--royal); line-height:1; letter-spacing:-.02em}
.qnd-pct-lbl{font-size:14px; color:var(--ink-soft); margin-top:4px; margin-bottom:18px}
.qnd-explain{font-size:13.5px; color:var(--ink); line-height:1.65; margin-bottom:12px}
.qnd-explain b{font-weight:700}
.qnd-freq{font-size:13px; color:var(--ink-soft); line-height:1.6; padding-top:14px; border-top:1px solid var(--hair); margin-top:6px; font-style:italic}
.qnd-right{display:flex; flex-direction:column; gap:16px}
.qnd-item{display:grid; grid-template-columns:180px 1fr; gap:20px; padding:10px 0; border-bottom:1px dashed var(--hair)}
.qnd-item:last-child{border-bottom:0}
.qnd-item-lbl{font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; padding-top:2px}
.qnd-item-val{font-size:14px; color:var(--ink); line-height:1.55}
@media(max-width:900px){
  .qnd-card{grid-template-columns:1fr; padding:26px 22px}
  .qnd-left{border-right:0; border-bottom:1px solid var(--hair); padding-right:0; padding-bottom:20px; text-align:center}
  .qnd-item{grid-template-columns:1fr; gap:4px}
}

/* ---------- Calculator ---------- */
.calc{display:grid; grid-template-columns:1fr 1.2fr; gap:32px; margin:32px 0; background:var(--paper); border:1px solid var(--hair); border-radius:24px; padding:32px; box-shadow:var(--shadow)}
.calc-inputs{display:flex; flex-direction:column; gap:24px}
.calc-input-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px}
.calc-input-head label{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:700}
.calc-input-val{font-family:'Playfair Display',serif; font-weight:700; font-size:28px; color:var(--royal-dark); line-height:1}
.calc-input input[type=range]{width:100%; height:6px; background:var(--hair); border-radius:999px; appearance:none; -webkit-appearance:none; outline:none; cursor:pointer}
.calc-input input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:var(--royal); border:3px solid #fff; box-shadow:0 2px 8px rgba(47,95,152,.4); cursor:pointer}
.calc-input input[type=range]::-moz-range-thumb{width:22px; height:22px; border-radius:50%; background:var(--royal); border:3px solid #fff; box-shadow:0 2px 8px rgba(47,95,152,.4); cursor:pointer}
.calc-input-ticks{display:flex; justify-content:space-between; margin-top:8px; font-size:11px; color:var(--ink-soft); font-weight:600}

.calc-outputs{display:flex; flex-direction:column; gap:18px}
.calc-tier{padding:16px 18px; background:var(--royal-tint); border:1px solid rgba(47,95,152,.2); border-radius:14px}
.calc-tier-lbl{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--royal-dark); font-weight:700; margin-bottom:4px}
.calc-tier-val{font-family:'Playfair Display',serif; font-weight:700; font-size:20px; color:var(--navy); margin-bottom:10px}
.calc-tier-bar{height:6px; background:rgba(255,255,255,.6); border-radius:999px; overflow:hidden; margin-bottom:8px}
.calc-tier-fill{display:block; height:100%; background:linear-gradient(90deg, var(--royal), var(--lime)); border-radius:999px; transition:width .3s}
.calc-tier-hint{font-size:12.5px; color:var(--ink-soft)}
.calc-rows{display:flex; flex-direction:column; gap:0}
.calc-row{display:flex; justify-content:space-between; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--hair)}
.calc-row:last-child{border-bottom:0}
.calc-row-lbl{font-size:13px; color:var(--ink); font-weight:600; display:flex; flex-direction:column; gap:2px}
.calc-row-sub{font-size:11px; color:var(--ink-soft); font-weight:500; letter-spacing:.06em; text-transform:uppercase}
.calc-row-val{font-family:'Playfair Display',serif; font-weight:700; font-size:20px; color:var(--navy)}
.calc-row--total{background:linear-gradient(135deg, rgba(47,95,152,.06), rgba(207,222,81,.06)); border:1px solid var(--hair); border-radius:12px; padding:14px 16px; margin-top:6px}
.calc-row-val--big{font-size:28px; color:var(--royal-dark)}
.calc-breakdown{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:14px 0 0}
.bd-item{padding:10px 12px; background:var(--cream-2); border:1px solid var(--hair); border-radius:10px; text-align:center}
.bd-lbl{display:block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:4px}
.bd-val{display:block; font-family:'Playfair Display',serif; font-weight:700; font-size:16px; color:var(--navy)}
@media(max-width:820px){
  .calc{grid-template-columns:1fr; padding:22px}
  .calc-breakdown{grid-template-columns:repeat(3,1fr); gap:6px}
  .bd-item{padding:8px 6px}
}

/* ---------- CTA band (bottom apply) ---------- */
.cta-band{background:linear-gradient(135deg, var(--navy) 0%, var(--royal-dark) 100%); color:#fff; padding:60px 0; margin-top:40px; position:relative; overflow:hidden}
.cta-band::before{content:""; position:absolute; top:-100px; right:-80px; width:400px; height:400px; background:radial-gradient(circle, rgba(207,222,81,.14), transparent 65%); pointer-events:none}
.cta-band .kicker{color:var(--lime); font-family:'Playfair Display',serif; font-style:italic}

/* ---------- VVIP teaser card ---------- */
.vvip-card{background:linear-gradient(135deg, var(--navy) 0%, #1a2947 55%, var(--royal-dark) 100%); color:#f5f7fb; border-radius:20px; padding:36px 40px; box-shadow:0 20px 45px -20px rgba(31,74,125,.5); position:relative; overflow:hidden; margin:20px 0}
.vvip-card::before{content:""; position:absolute; top:-80px; right:-60px; width:340px; height:340px; background:radial-gradient(circle, rgba(207,222,81,.14), transparent 68%); pointer-events:none}
.vvip-card::after{content:""; position:absolute; inset:0 auto 0 0; width:5px; background:linear-gradient(180deg, var(--lime), var(--royal))}
.vvip-badge{display:flex; align-items:center; gap:14px; margin-bottom:22px; position:relative}
.vvip-lock{display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:rgba(207,222,81,.14); color:var(--lime); border:1px solid rgba(207,222,81,.3)}
.vvip-badge-txt{display:flex; flex-direction:column; gap:2px}
.vvip-tag{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--lime); font-weight:700}
.vvip-title{font-family:'Playfair Display',serif; font-weight:700; font-size:22px; color:#fff}
.vvip-list{list-style:none; padding:0; margin:0 0 26px; display:flex; flex-direction:column; gap:12px; position:relative}
.vvip-list li{display:flex; align-items:flex-start; gap:12px; font-size:14.5px; line-height:1.55; color:#e0e5ee}
.vvip-dot{flex-shrink:0; width:6px; height:6px; margin-top:9px; border-radius:50%; background:var(--lime)}
.vvip-cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px; position:relative}
.btn-primary--royal{background:var(--lime); color:var(--navy) !important; border-color:var(--lime)}
.btn-primary--royal:hover{background:var(--lime-dark); border-color:var(--lime-dark)}
.vvip-card .btn-outline{color:#fff; border-color:rgba(255,255,255,.35); background:transparent}
.vvip-card .btn-outline:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.6)}
.vvip-note{font-size:12.5px; color:rgba(255,255,255,.6); line-height:1.6; padding-top:16px; border-top:1px solid rgba(255,255,255,.12); font-style:italic; position:relative}
@media(max-width:640px){
  .vvip-card{padding:26px 22px}
  .vvip-title{font-size:19px}
  .vvip-cta-row{flex-direction:column}
  .vvip-cta-row a{width:100%; text-align:center}
}

/* ---------- VVIP gate (partner-vvip.html) ---------- */
.vvip-gate{max-width:520px; margin:80px auto; padding:44px 40px; background:var(--paper); border:1px solid var(--hair); border-radius:20px; box-shadow:var(--shadow); text-align:center}
.vvip-gate-lock{display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:16px; background:linear-gradient(135deg, var(--royal), var(--royal-dark)); color:var(--lime); margin-bottom:20px}
.vvip-gate h1{font-family:'Playfair Display',serif; font-size:32px; color:var(--navy); margin:0 0 10px}
.vvip-gate .vvip-gate-sub{color:var(--ink-soft); font-size:14.5px; line-height:1.55; margin-bottom:26px}
.vvip-gate-form{display:flex; flex-direction:column; gap:12px}
.vvip-gate-form input[type="password"]{width:100%; padding:14px 16px; font-family:inherit; font-size:15px; border:1.5px solid var(--hair); border-radius:12px; background:#fff; color:var(--navy); transition:border-color .2s, box-shadow .2s; letter-spacing:.02em}
.vvip-gate-form input[type="password"]:focus{outline:none; border-color:var(--royal); box-shadow:0 0 0 3px rgba(47,95,152,.12)}
.vvip-gate-form button{width:100%; padding:14px 20px; background:var(--navy); color:#fff; border:0; border-radius:12px; font-family:inherit; font-size:14.5px; font-weight:700; letter-spacing:.02em; cursor:pointer; transition:background .2s}
.vvip-gate-form button:hover{background:var(--royal-dark)}
.vvip-gate-err{color:#c62828; font-size:13px; min-height:18px; margin-top:-2px; font-weight:500}
.vvip-gate-hint{margin-top:24px; padding-top:20px; border-top:1px solid var(--hair); font-size:12.5px; color:var(--ink-soft); line-height:1.55}
.vvip-gate-hint a{color:var(--royal); font-weight:600; text-decoration:none}
.vvip-gate-hint a:hover{text-decoration:underline}

/* ---------- VVIP: flow diagram ---------- */
.vvip-flow{display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:16px; align-items:center; margin:32px 0; background:var(--paper); border:1px solid var(--hair); border-radius:24px; padding:36px 28px; box-shadow:var(--shadow); position:relative; overflow:hidden}
.vvip-flow::before{content:""; position:absolute; inset:0 auto 0 0; width:6px; background:linear-gradient(180deg, var(--royal), var(--lime))}
.vvip-flow-node{display:flex; flex-direction:column; align-items:center; text-align:center; padding:20px 14px; background:var(--cream-2); border:1px solid var(--hair); border-radius:18px; min-height:180px; justify-content:center}
.vvip-flow-node--mid{background:linear-gradient(160deg, rgba(47,95,152,.06), rgba(207,222,81,.05)); border-color:rgba(47,95,152,.18)}
.vvip-flow-node--you{background:linear-gradient(160deg, var(--navy), var(--royal-dark)); color:#fff; border-color:var(--navy)}
.vvip-flow-node--you .vvip-flow-eyebrow{color:var(--lime)}
.vvip-flow-node--you .vvip-flow-title{color:#fff}
.vvip-flow-node--you .vvip-flow-num{color:#fff}
.vvip-flow-node--you .vvip-flow-sub{color:rgba(255,255,255,.7)}
.vvip-flow-eyebrow{font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:8px}
.vvip-flow-title{font-family:'Playfair Display',serif; font-weight:600; font-size:18px; color:var(--navy); margin-bottom:12px}
.vvip-flow-num{font-family:'Playfair Display',serif; font-weight:800; font-style:italic; font-size:64px; line-height:1; color:var(--royal); letter-spacing:-.02em}
.vvip-flow-num-unit{font-size:.5em; font-weight:700; margin-left:2px; letter-spacing:0}
.vvip-flow-sub{font-size:12px; color:var(--ink-soft); margin-top:10px; line-height:1.4; max-width:160px}
.vvip-flow-arrow{color:var(--royal); opacity:.55; width:60px; height:14px; display:flex; align-items:center; justify-content:center}
.vvip-flow-arrow svg{width:100%; height:100%}
@media(max-width:820px){
  .vvip-flow{grid-template-columns:1fr; gap:14px; padding:24px 18px}
  .vvip-flow-node{min-height:auto; padding:18px 14px}
  .vvip-flow-arrow{transform:rotate(90deg); width:24px; height:24px; margin:0 auto}
}

/* ---------- VVIP: worked example ---------- */
.worked{margin:32px 0 0; background:linear-gradient(160deg, #fff 0%, var(--cream) 100%); border:1px solid var(--hair); border-radius:24px; padding:32px 32px 28px; box-shadow:var(--shadow); position:relative; overflow:hidden}
.worked::before{content:""; position:absolute; inset:0 auto 0 0; width:6px; background:linear-gradient(180deg, var(--lime), var(--royal))}
.worked-head{text-align:center; margin-bottom:26px; padding-bottom:22px; border-bottom:1px dashed var(--hair)}
.worked-eyebrow{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--royal); font-weight:700; margin-bottom:8px}
.worked-title{font-family:'Playfair Display',serif; font-weight:600; font-size:24px; color:var(--navy); line-height:1.3}
.worked-row{display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:16px; align-items:center}
.worked-cell{text-align:center; padding:8px 4px}
.worked-cell--out{padding:14px 8px; background:linear-gradient(160deg, rgba(47,95,152,.05), rgba(207,222,81,.05)); border-radius:14px; border:1px solid rgba(47,95,152,.15)}
.worked-cell-lbl{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:6px}
.worked-cell-val{font-family:'Playfair Display',serif; font-weight:700; font-size:26px; color:var(--navy); line-height:1.1}
.worked-cell-val--mid{color:var(--royal-dark)}
.worked-cell-val--big{font-size:34px; font-style:italic; color:var(--royal); background:linear-gradient(135deg, var(--royal), var(--royal-dark)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent}
.worked-cell-sub{font-size:11.5px; color:var(--ink-soft); line-height:1.45; margin-top:8px; max-width:180px; margin-left:auto; margin-right:auto}
.worked-cell-arrow{font-family:'Playfair Display',serif; font-size:26px; color:var(--royal); opacity:.5; font-weight:400}
.worked-foot{margin-top:22px; padding-top:20px; border-top:1px dashed var(--hair); font-size:13px; color:var(--ink); line-height:1.55; text-align:center; font-style:italic}
.worked-foot b{font-weight:700; font-style:normal; color:var(--navy)}
@media(max-width:820px){
  .worked{padding:24px 20px 20px}
  .worked-title{font-size:19px}
  .worked-row{grid-template-columns:1fr; gap:14px}
  .worked-cell-arrow{transform:rotate(90deg); font-size:22px}
  .worked-cell-sub{max-width:none}
}
