/* Sovereo Web Works pages (/web-works/). Palette shared with the Retirement Decision Lab:
   navy and night for authority, warm ivory paper, muted gold for detail,
   signal gold reserved for the primary call to action. */
:root{
  --paper:#FAF8F3; --card:#FFFFFF; --paper-2:#F1ECE1; --ink:#0B0D12; --ink-dim:#4D5263; --rule:#DDD5C4;
  --navy:#0E1B4D; --navy-deep:#070F30; --gold:#B8963A; --gold-ink:#7A611A; --signal:#F2C14E; --signal-hover:#FFD36B;
  --night:#07090F; --on-dark:#F4F1EA; --on-dark-dim:#A9AEBD; --night-rule:#23283A; --ok:#1F6B45; --warn:#8A4B12;
  --f-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --f-body:"Spectral",Georgia,"Times New Roman",serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
html{-webkit-text-size-adjust:100%}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:19px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
[hidden]{display:none!important}
a{color:var(--navy)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:1100px;margin:0 auto;padding-inline:20px}
.mono{font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}
h1{font-weight:900;font-size:clamp(38px,6vw,68px);line-height:1.02;letter-spacing:-.015em}
h2{font-weight:800;font-size:clamp(28px,3.6vw,42px);line-height:1.1}
h3{font-weight:700;font-size:22px;line-height:1.25}
.kicker{color:var(--navy);margin:0}
.dim{color:var(--ink-dim)}
section{padding-block:60px;border-bottom:1px solid var(--rule)}

.topbar{background:var(--night)}
.topbar .wrap{display:flex;align-items:center;gap:18px;padding-block:12px;flex-wrap:wrap}
.topbar img{height:44px;width:auto;display:block}
.classline{font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);display:flex;flex-wrap:wrap;gap:6px 18px}
.classline span:not(:first-child){color:var(--on-dark-dim)}

.btn{display:inline-block;font-family:var(--f-mono);font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:16px 24px;border:0;cursor:pointer;text-decoration:none}
.btn.signal{background:var(--signal);color:var(--ink);box-shadow:0 2px 0 rgba(0,0,0,.25)}
.btn.signal:hover{background:var(--signal-hover);color:var(--ink)}
.btn.navy{background:var(--navy);color:var(--on-dark)}
.btn.navy:hover{background:var(--navy-deep);color:var(--on-dark)}
.btn.line{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.btn.line:hover{background:var(--navy);color:var(--on-dark)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:44px;align-items:center;padding-block:52px 60px}
.hero h1{margin:14px 0 18px}
.hero h1 em{font-style:italic;color:var(--navy)}
.hero .lede{font-size:clamp(19px,2.2vw,22px);max-width:34em;margin:0 0 26px}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.proof{background:var(--night);color:var(--on-dark);padding:22px;display:grid;gap:12px}
.proof .mono{color:var(--signal)}
.proof .q{font-family:var(--f-display);font-size:21px;line-height:1.3}
.proof .a{border-left:4px solid var(--gold);padding-left:12px;color:var(--on-dark);font-size:17px}
.proof .meta{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--on-dark-dim)}
.proof a{color:var(--signal)}

/* shift */
.shift{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px}
.shift div{min-width:0;padding:22px;border:1px solid var(--rule);background:var(--card)}
.shift .mono{color:var(--gold-ink)}
.shift p{margin:8px 0 0}
.shift .new{border-color:var(--navy);box-shadow:inset 0 4px 0 var(--navy)}

/* parts */
.parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:28px}
.parts div{border-top:3px solid var(--navy);padding-top:12px;min-width:0}
.parts .mono{color:var(--navy)}
.parts h3{margin:8px 0 6px}
.parts p{margin:0;font-size:17px;color:var(--ink-dim)}

/* demo */
.demo{background:var(--night);color:var(--on-dark);border-bottom:0}
.demo .kicker{color:var(--signal)}
.demo h2{color:var(--on-dark);margin:8px 0 10px}
.demo .intro{color:var(--on-dark-dim);max-width:40em;margin:0 0 26px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--night-rule);border:1px solid var(--night-rule)}
.steps li{background:var(--night);padding:22px;min-width:0;display:grid;gap:8px;align-content:start}
.steps .n{font-family:var(--f-mono);font-size:12px;color:var(--signal);letter-spacing:.1em}
.steps h3{color:var(--on-dark);font-size:21px}
.steps p{margin:0;color:var(--on-dark-dim);font-size:17px}
.steps a{color:var(--signal);font-family:var(--f-mono);font-size:13px;letter-spacing:.04em;overflow-wrap:anywhere}
.demo .ctas{margin-top:26px}

/* fields */
.fields{width:100%;border-collapse:collapse;margin-top:24px;font-size:17px}
.fields th{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:10px 12px;border-bottom:2px solid var(--ink)}
.fields td{padding:14px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.fields td:first-child{font-family:var(--f-display);font-weight:700;font-size:19px;white-space:nowrap}
.table-scroll{overflow-x:auto}
.note{font-size:16px;color:var(--ink-dim);margin:16px 0 0}

/* process */
.process{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;counter-reset:p}
.process li{min-width:0;border-top:3px solid var(--gold);padding-top:12px}
.process .mono{color:var(--gold-ink)}
.process p{margin:6px 0 0;font-size:17px;color:var(--ink-dim)}

/* faq */
.faq{border-top:2px solid var(--ink);margin-top:22px;max-width:820px}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:18px 36px 18px 0;position:relative;font-family:var(--f-display);font-weight:700;font-size:21px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font-family:var(--f-mono);font-size:24px;color:var(--navy)}
.faq details[open] summary::after{content:"\2212"}
.faq p{margin:0 0 18px;color:var(--ink-dim);max-width:40em}

/* who */
.who{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;align-items:center}
.who img{width:200px;height:200px;object-fit:cover;display:block;background:var(--night)}
.who p{margin:8px 0 0}

/* inquiry */
.inquiry{background:var(--navy-deep);color:var(--on-dark);border-bottom:0}
.inquiry .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.inquiry .kicker{color:var(--signal)}
.inquiry h2{color:var(--on-dark);margin:10px 0 12px}
.inquiry p{color:var(--on-dark-dim)}
.form{background:var(--paper);color:var(--ink);padding:26px;display:grid;gap:14px}
.form label{display:grid;gap:6px;font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}
.form input,.form textarea{font:inherit;font-family:var(--f-body);font-size:18px;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--card);border:1px solid var(--rule);padding:12px 14px;width:100%;min-width:0}
.form textarea{min-height:110px;resize:vertical}
.form .btn{width:100%}
.form .out{font-size:16px;margin:0;color:var(--ink-dim)}
.form .ok{color:var(--ok);font-weight:600}
.form .err{color:var(--warn);font-weight:600}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}

footer{padding-block:28px 44px;font-size:15px;color:var(--ink-dim)}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer a{color:var(--ink-dim)}

@media (max-width:900px){
  .hero,.inquiry .grid{grid-template-columns:1fr}
  .parts{grid-template-columns:1fr 1fr}
  .process{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
}
@media (max-width:600px){
  body{font-size:18px}
  .shift,.parts,.process{grid-template-columns:1fr}
  .who{grid-template-columns:1fr}
  .who img{width:140px;height:140px}
  .ctas .btn{flex:1;text-align:center}
  .fields td:first-child{white-space:normal}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- Web Works additions ---- */
.topbar .home{margin-left:auto;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-dim);text-decoration:none}
.topbar .home:hover{color:var(--signal)}
.crumbs{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 14px}
.crumbs a{color:var(--ink-dim)}
.updated{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--ink-dim);margin:18px 0 0}

/* fit checks */
.fit{background:var(--card)}
.checks{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.checks li{border-top:3px solid var(--navy);padding-top:12px;min-width:0}
.checks strong{display:block;font-family:var(--f-display);font-size:19px;line-height:1.25}
.checks span{display:block;font-size:16px;color:var(--ink-dim);margin-top:4px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:26px}
.stats div{min-width:0;border-left:4px solid var(--gold);padding-left:14px}
.stats .big{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(34px,4.5vw,48px);line-height:1}
.stats p{margin:8px 0 0;font-size:16px;color:var(--ink-dim)}
.stats a{color:var(--ink-dim)}

/* report */
.report{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center}
.report ol{list-style:none;margin:0;padding:22px;background:var(--night);color:var(--on-dark);display:grid;gap:14px}
.report ol li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;font-size:17px}
.report ol .n{font-family:var(--f-mono);color:var(--signal);font-size:13px;padding-top:3px}
.report ol strong{color:var(--on-dark)}
.report ol span{color:var(--on-dark-dim)}
.report .mono.cap{color:var(--signal);display:block;margin-bottom:4px}

/* industry cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px}
.card{background:var(--card);border:1px solid var(--rule);padding:22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.card.feat{box-shadow:inset 0 4px 0 var(--navy);border-color:var(--navy)}
.card .mono{color:var(--gold-ink)}
.card p{margin:0;font-size:16px;color:var(--ink-dim)}
.card p b{color:var(--ink);font-weight:600}
.card a{margin-top:auto;padding-top:8px;font-family:var(--f-mono);font-size:13px;letter-spacing:.06em;font-weight:600}
.band{margin-top:26px;background:var(--navy);color:var(--on-dark);padding:22px 24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.band p{margin:0;color:var(--on-dark-dim)}
.band strong{display:block;font-family:var(--f-display);font-size:22px;color:var(--on-dark)}

/* scorecard */
.score{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.score li{min-width:0;background:var(--card);border:1px solid var(--rule);padding:20px}
.score p{margin:6px 0 0;font-size:16px;color:var(--ink-dim)}

/* pricing */
.tier-h{font-family:var(--f-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:30px 0 12px}
.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.price{background:var(--card);border:1px solid var(--rule);padding:22px;min-width:0}
.price.mid{border-color:var(--navy);box-shadow:inset 0 4px 0 var(--navy)}
.price .amt{display:block;font-family:var(--f-display);font-weight:900;font-size:38px;line-height:1.1;margin:6px 0 8px}
.price .amt small{font-family:var(--f-body);font-weight:400;font-size:17px;color:var(--ink-dim)}
.price p,.price li{font-size:16px;color:var(--ink-dim)}
.price p{margin:0}
.price ul{margin:0;padding-left:18px}
.extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.extras p{margin:0;background:var(--paper-2);padding:16px 18px;font-size:16px}

/* directory */
.tools{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between;margin-top:8px}
.tools label{display:grid;gap:6px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);flex:1 1 320px}
.tools input{font:inherit;font-family:var(--f-body);font-size:18px;letter-spacing:0;text-transform:none;padding:12px 14px;border:1px solid var(--rule);background:var(--card);color:var(--ink);min-width:0}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills button{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;min-height:44px;border:1px solid var(--rule);background:var(--card);color:var(--ink);cursor:pointer}
.pills button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-dark)}
.count{font-size:15px;color:var(--ink-dim);margin:14px 0 0}
.jump{display:flex;flex-wrap:wrap;gap:8px 18px;margin:18px 0 0;padding:0;list-style:none;font-size:15px}
.group{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr);gap:28px 40px;padding:28px 0;border-top:1px solid var(--rule)}
.group:first-of-type{border-top:2px solid var(--ink)}
.group h2{font-size:clamp(24px,2.8vw,32px);margin:6px 0 8px}
.group .why{margin:0 0 14px;color:var(--ink-dim)}
.tier{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;display:inline-block}
.tier.t1{background:var(--navy);color:var(--on-dark)}
.tier.t2{box-shadow:inset 0 0 0 1px var(--navy);color:var(--navy)}
.tier.t3{box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink-dim)}
.niches{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 22px;font-size:17px}
.niches li{padding-left:16px;position:relative}
.niches li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;background:var(--gold)}
.facts{margin:0;background:var(--card);border:1px solid var(--rule);padding:20px;display:grid;gap:12px;align-content:start;font-size:16px}
.facts dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}
.facts dd{margin:2px 0 0}
.excl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;list-style:none;margin:18px 0 0;padding:0}
.excl li{padding:12px 0;border-bottom:1px solid var(--rule)}

/* tracks */
.tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px}
.tracks article{background:var(--card);border:1px solid var(--rule);padding:22px;min-width:0}
.tracks article.mid{border-color:var(--navy);box-shadow:inset 0 4px 0 var(--navy)}
.tracks .mono{color:var(--gold-ink)}
.tracks h3{margin:6px 0 6px}
.tracks p{margin:0 0 10px;font-size:16px;color:var(--ink-dim)}
.tracks ul{margin:0;padding-left:18px;font-size:16px}
.tracks li{margin:4px 0}

.foot-links{display:flex;flex-wrap:wrap;gap:16px}

@media (max-width:900px){
  .checks,.cards,.prices,.tracks{grid-template-columns:1fr 1fr}
  .report,.group{grid-template-columns:1fr}
  .score,.stats{grid-template-columns:1fr}
  .excl{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .checks,.cards,.prices,.tracks,.extras,.niches,.excl{grid-template-columns:1fr}
}
