:root{
  --navy:#16274F; --navy-2:#0F1C3A; --navy-lt:#2C4278; --navy-soft:#E8EEF8;
  --gold:#B8871F; --gold-dk:#8F6812; --gold-lt:#E9C05A; --gold-soft:#FBF3E0;
  --ink:#1B2330; --text:#465065; --muted:#5B6580;
  --bg:#FFFFFF; --alt:#EFF4FA; --line:#D8E1EE;
  --sans:"Source Sans 3",system-ui,-apple-system,sans-serif;
  --head:"Archivo",system-ui,sans-serif;
  --maxw:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overscroll-behavior-x:none}
body{overscroll-behavior-x:none;overflow-x:clip}
@supports not (overflow-x:clip){body{overflow-x:hidden}}
img,svg,iframe{max-width:100%}
.hero-photo,.overlap{max-width:none}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);overflow-wrap:break-word;
  font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:var(--head);color:var(--ink);margin:0;line-height:1.18;font-weight:700;letter-spacing:-.015em}
p{margin:0 0 1em}
a{color:var(--navy-lt)}
img{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--head);font-size:13px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-dk);margin:0 0 14px}
.eyebrow.on-navy{color:var(--gold-lt)}
h1{font-size:clamp(1.95rem,4.6vw,3.85rem);letter-spacing:-.025em}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}
h3{font-size:1.35rem}
.lede{font-size:1.16rem;color:var(--text);max-width:64ch;line-height:1.7}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
.sec{padding:84px 0}
.sec-alt{background:var(--alt)}
.sec-navy{background:var(--navy);color:#DCE4F1}
.sec-navy h2,.sec-navy h3,.sec-navy h4{color:#fff}
.sec-navy p{color:#C6D1E4}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--head);font-weight:700;
  font-size:16px;padding:15px 28px;border-radius:4px;text-decoration:none;cursor:pointer;
  border:2px solid transparent;transition:all .18s;line-height:1.2}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-2)}
.btn-gold{background:var(--gold-lt);color:var(--navy-2)}
.btn-gold:hover{background:#F2CE77}
.btn-out{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-out:hover{background:var(--navy);color:#fff}
.btn-out-w{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-out-w:hover{background:#fff;color:var(--navy)}
.btn .ar{font-size:15px}

/* utility bar + header */
.util{background:var(--navy-2);color:#DCE4F1;font-size:15px}
.util .wrap{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;padding-top:11px;padding-bottom:11px}
.util b{font-family:var(--head);color:#fff;font-weight:700}
.util a{color:var(--gold-lt);text-decoration:none;font-weight:600}
.util a:hover{text-decoration:underline}
@media(max-width:820px){.util{font-size:14px}.util .wrap{gap:14px}}
@media(max-width:640px){.util{display:none}}
header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);
  box-shadow:0 1px 6px rgba(22,39,79,.06)}

nav.tabs{display:flex;gap:4px;margin-left:auto;align-items:center}
.tab{background:none;border:0;font-family:var(--head);font-size:16px;font-weight:600;color:var(--ink);
  padding:12px 16px;cursor:pointer;position:relative;border-radius:4px}
.tab:hover{color:var(--navy-lt);background:var(--navy-soft)}
.tab[aria-selected="true"]{color:var(--navy)}
.tab[aria-selected="true"]::after{content:"";position:absolute;left:16px;right:16px;bottom:2px;height:3px;background:var(--gold);border-radius:2px}



.panel{display:none}
.panel.active{display:block}

/* hero */
.hero{position:relative;background:var(--alt)}
.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;min-height:560px}
.hero-copy{background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:center;
  padding:60px 56px 84px;position:relative}
.hero-copy::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt))}
.hero-copy h1{color:#fff;margin-bottom:20px}
.hero-copy .sub{color:#C6D1E4;font-size:1.12rem;margin-bottom:14px;max-width:50ch}
.hero-copy .tagline{font-family:var(--head);font-weight:600;color:var(--gold-lt);font-size:1.02rem;
  letter-spacing:.02em;margin-bottom:28px}
.hero-photo{background-size:cover;background-position:center 28%;min-height:320px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:940px){.hero-grid{grid-template-columns:1fr}.hero-copy{padding:48px 30px;order:2}
  .hero-photo{order:1;min-height:260px}}

/* quick actions */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;
  border:1px solid var(--line);border-radius:6px;overflow:hidden;
  box-shadow:0 6px 26px rgba(22,39,79,.09);margin-top:-46px;position:relative;z-index:5}
.qa{padding:34px 26px;border-right:1px solid var(--line);text-align:center;display:flex;
  flex-direction:column;align-items:center}
.qa:last-child{border-right:0}
.qa h3{font-size:1.28rem;margin-bottom:9px}
.qa p{font-size:1rem;color:var(--muted);margin-bottom:20px;flex:1}
.qa .btn{padding:12px 22px;font-size:15px}
@media(max-width:900px){.quick{grid-template-columns:1fr 1fr;margin-top:-30px}
  .qa{border-bottom:1px solid var(--line)}.qa:nth-child(2){border-right:0}}
@media(max-width:560px){.quick{grid-template-columns:1fr}.qa{border-right:0}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{text-align:center;padding:8px}
.stat b{display:block;font-family:var(--head);font-size:2.7rem;font-weight:700;color:var(--navy);line-height:1;margin-bottom:8px}
.sec-navy .stat b{color:var(--gold-lt)}
.stat span{font-size:1rem;color:var(--muted);display:block;line-height:1.5}
.sec-navy .stat span{color:#C6D1E4}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr;gap:30px}}

/* photo cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c2{grid-template-columns:repeat(2,1fr)}
@media(max-width:1000px){.cards,.cards.c3{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.cards,.cards.c3,.cards.c2{grid-template-columns:1fr}}
.pcard{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.pcard:hover{box-shadow:0 10px 28px rgba(22,39,79,.13);transform:translateY(-3px)}
.pcard img{width:100%;height:196px;object-fit:cover;display:block;background:var(--navy-soft)}
.pcard .body{padding:26px 24px 28px}
.pcard h3{margin-bottom:10px;font-size:1.24rem}
.pcard p{font-size:1rem;color:var(--text);margin:0}
.pcard .kicker{font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dk);display:block;margin-bottom:9px}
.pcard .more{display:inline-flex;gap:7px;align-items:center;margin-top:16px;font-family:var(--head);
  font-weight:700;color:var(--navy);text-decoration:none;font-size:15.5px}
.pcard .more:hover{color:var(--gold-dk)}

/* icon list panel over photo */
.overlap{position:relative;background-size:cover;background-position:center;padding:70px 0}
.overlap::before{content:"";position:absolute;inset:0;background:rgba(15,28,58,.30)}
.overlap .wrap{position:relative}
.opanel{background:#fff;border-radius:6px;padding:48px 46px;max-width:620px;box-shadow:0 14px 40px rgba(15,28,58,.24)}
@media(max-width:620px){.opanel{padding:32px 24px}}
.ilist{list-style:none;margin:22px 0 0;padding:0}
.ilist li{display:flex;gap:18px;padding:16px 0;border-top:1px solid var(--line)}
.ilist li .ico{width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--navy-soft);
  display:grid;place-items:center;color:var(--navy);font-family:var(--head);font-weight:700;font-size:15px}
.ilist li b{display:block;font-family:var(--head);color:var(--ink);font-size:1.08rem;margin-bottom:2px}
.ilist li span{font-size:1rem;color:var(--muted)}

/* interactive: pathway */
.tool{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.tool-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:var(--alt);border-bottom:1px solid var(--line)}
@media(max-width:760px){.tool-tabs{grid-template-columns:1fr 1fr}}
.tool-tabs button{background:none;border:0;border-right:1px solid var(--line);padding:18px 16px;
  cursor:pointer;font-family:var(--head);font-size:15.5px;font-weight:600;color:var(--text);text-align:left;line-height:1.3}
.tool-tabs button:last-child{border-right:0}
.tool-tabs button small{display:block;font-size:12.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-top:5px}
.tool-tabs button:hover{background:#fff}
.tool-tabs button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:inset 0 3px 0 var(--gold)}
.tool-tabs button[aria-pressed="true"] small{color:var(--gold-dk)}
.cols{display:grid;grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.col{padding:30px 26px;border-right:1px solid var(--line)}
.col:last-child{border-right:0}
@media(max-width:900px){.col{border-right:0;border-bottom:1px solid var(--line)}}
.col h4{font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--navy);margin-bottom:16px}
.col.stop h4{color:#A8332A}
.col ul{list-style:none;margin:0;padding:0}
.col li{padding:9px 0 9px 24px;position:relative;font-size:1rem;color:var(--text);border-bottom:1px solid #EDF1F7}
.col li:last-child{border-bottom:0}
.col li::before{content:"";position:absolute;left:2px;top:17px;width:9px;height:9px;border-radius:50%;
  background:var(--navy-soft);border:2px solid var(--navy-lt)}
.col.stop li::before{border-color:#A8332A;background:#FBECEA}
.col .meta{font-size:.95rem;color:var(--muted);margin-top:16px;line-height:1.6}
.tool-foot{padding:24px 26px;border-top:1px solid var(--line);background:var(--gold-soft);
  display:flex;gap:16px;align-items:flex-start;font-size:1rem;color:#4A4028}
.tool-foot .badge{font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#fff;background:var(--gold-dk);padding:6px 11px;border-radius:3px;white-space:nowrap;flex-shrink:0}

/* ladder */
.ladder{border-top:1px solid var(--line)}
.rung{display:grid;grid-template-columns:56px 1fr;gap:22px;padding:22px 4px;border-bottom:1px solid var(--line);
  cursor:pointer;align-items:start;background:none;border-left:0;border-right:0;width:100%;text-align:left;font-family:inherit}
.rung:hover{background:#fff}
.rung .rn{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;
  font-family:var(--head);font-weight:700;font-size:1.15rem}
.rung[aria-expanded="true"] .rn{background:var(--gold-dk)}
.rung h4{font-size:1.22rem;margin-bottom:3px;color:var(--ink)}
.rung .hint{font-size:1rem;color:var(--muted)}
.rung .detail{max-height:0;overflow:hidden;transition:max-height .35s ease}
.rung[aria-expanded="true"] .detail{max-height:340px}
.rung .detail p{margin:12px 0 0;font-size:1.02rem;color:var(--text)}

/* calculator */
.calc{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.calc-top{padding:34px 32px}
.calc-top label{display:block;font-family:var(--head);font-weight:700;font-size:1.05rem;color:var(--ink);margin-bottom:20px}
.calc-top label span{color:var(--navy-lt)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:99px;
  background:var(--navy-soft);outline:none;margin:0 0 10px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;
  cursor:pointer;background:var(--navy);border:4px solid #fff;box-shadow:0 1px 6px rgba(22,39,79,.4)}
input[type=range]::-moz-range-thumb{width:30px;height:30px;border-radius:50%;cursor:pointer;
  background:var(--navy);border:4px solid #fff}
.ticks{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);font-weight:600}
.calc-out{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
@media(max-width:640px){.calc-out{grid-template-columns:1fr}}
.co{padding:28px 32px;border-right:1px solid var(--line)}
.co:last-child{border-right:0}
.co .k{display:block;font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.co .v{font-family:var(--head);font-weight:700;font-size:2.4rem;color:var(--navy);line-height:1.1}
.co .v small{font-size:1.05rem;color:var(--muted);font-family:var(--sans);font-weight:400}
.co .cite{display:block;margin-top:10px;font-size:.95rem;color:var(--gold-dk);font-weight:600}
.calc-note{padding:24px 32px;border-top:1px solid var(--line);background:var(--alt);font-size:1rem;color:var(--text)}

/* bios */
.bios{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
@media(max-width:860px){.bios{grid-template-columns:1fr}}
.bio{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.bio-hd{display:flex;gap:20px;padding:26px;align-items:center;cursor:pointer;width:100%;background:none;
  border:0;text-align:left;font-family:inherit}
.av{width:64px;height:64px;flex-shrink:0;border-radius:50%;background:var(--navy);color:#fff;
  display:grid;place-items:center;font-family:var(--head);font-weight:700;font-size:1.25rem}
.bio-hd .who{flex:1;min-width:0}
.bio-hd .who b{display:block;font-family:var(--head);font-size:1.24rem;color:var(--ink);margin-bottom:3px}
.bio-hd .who span{font-size:.98rem;color:var(--gold-dk);font-weight:600}
.bio-hd .chev{color:var(--navy);font-size:1.1rem;transition:transform .3s;flex-shrink:0;font-family:var(--head);font-weight:700}
.bio[data-open="true"] .chev{transform:rotate(180deg)}
.bio-body{max-height:0;overflow:hidden;transition:max-height .45s ease}
.bio[data-open="true"] .bio-body{max-height:1500px}
.bio-inner{padding:0 26px 26px}
.bio-inner p{font-size:1rem}
.creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cred{font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  background:var(--navy-soft);color:var(--navy);padding:6px 11px;border-radius:3px}
.bio.ph{border-style:dashed;background:#FCFDFF}
.bio.ph .av{background:#6E7B95}

/* quote */
.quote{max-width:820px;margin:0 auto;text-align:center}
.quote img{width:124px;height:124px;border-radius:50%;object-fit:cover;margin:0 auto 24px;display:block;
  border:5px solid #fff;box-shadow:0 4px 18px rgba(22,39,79,.18)}
.quote blockquote{margin:0 0 20px;font-family:var(--head);font-weight:600;font-size:clamp(1.3rem,2.4vw,1.75rem);
  line-height:1.45;color:var(--ink)}
.quote cite{font-style:normal;font-size:1rem;color:var(--muted);font-weight:600}

/* services list */
.svc{border-top:1px solid var(--line)}
.svc-item{display:grid;grid-template-columns:150px 1fr 260px;gap:30px;padding:28px 0;
  border-bottom:1px solid var(--line);align-items:start}
@media(max-width:900px){.svc-item{grid-template-columns:1fr;gap:10px}}
.svc-item .cite2{font-family:var(--head);font-weight:700;font-size:14px;color:var(--navy);
  background:var(--navy-soft);padding:6px 10px;border-radius:3px;display:inline-block}
.svc-item h3{margin-bottom:8px}
.svc-item p{margin:0;font-size:1.02rem}
.svc-item .deliv{font-size:.97rem;color:var(--muted);line-height:1.7}
.svc-item .deliv b{display:block;font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:6px}

/* checklist */
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:14px 0 14px 34px;position:relative;border-bottom:1px solid var(--line);font-size:1rem}
.checklist li:last-child{border-bottom:0}
.checklist li::before{content:"";position:absolute;left:3px;top:21px;width:13px;height:7px;
  border-left:2.5px solid var(--gold-dk);border-bottom:2.5px solid var(--gold-dk);transform:rotate(-45deg)}
.checklist li b{display:block;font-family:var(--head);color:var(--ink)}
.checklist li span{color:var(--muted);font-size:.95rem}

/* note */
.note{border-left:4px solid var(--gold);background:var(--gold-soft);padding:18px 24px;
  font-size:1rem;color:#4A4028;margin-top:26px}
.sec-navy .note{background:rgba(255,255,255,.08);color:#C6D1E4;border-left-color:var(--gold-lt)}

/* two col */
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;align-items:start}
@media(max-width:960px){.two{grid-template-columns:1fr;gap:32px}}
.infobox{background:var(--navy);color:#DCE4F1;border-radius:6px;padding:34px 30px}
.infobox h3{color:#fff;margin-bottom:8px}
.infobox p{color:#C6D1E4;font-size:1rem}
.chan{display:flex;gap:16px;padding:15px 0;border-top:1px solid rgba(255,255,255,.16);align-items:flex-start}
.chan .ci{font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-lt);width:58px;flex-shrink:0;padding-top:5px}
.chan .cv b{display:block;font-family:var(--head);font-size:1.14rem;color:#fff}
.chan .cv small{color:#B4C1D8;font-size:.94rem}
.chan .cv a{color:#fff;text-decoration:underline}
.whitebox{background:#fff;border:1px solid var(--line);border-radius:6px;padding:32px 30px}

/* referral wizard */
.wiz{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;max-width:940px;
  box-shadow:0 4px 20px rgba(22,39,79,.07)}
.wiz-top{padding:26px 34px 0}
.wiz-prog{height:10px;background:var(--alt);border-radius:99px;overflow:hidden}
.wiz-bar{height:100%;background:var(--navy);width:16.6%;transition:width .35s ease;border-radius:99px}
.wiz-count{font-family:var(--head);font-weight:700;font-size:1.02rem;color:var(--navy);margin:14px 0 0}
.stepdots{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.stepdot{font-family:var(--sans);font-size:14px;color:var(--muted);padding:6px 12px;border:1px solid var(--line);
  border-radius:99px;background:#fff;cursor:pointer}
.stepdot.done{color:var(--navy);border-color:var(--navy-lt)}
.stepdot.cur{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
.wiz-step{display:none;padding:24px 34px 8px}
.wiz-step.on{display:block}
.wiz-step h3{font-size:1.7rem;margin-bottom:8px}
.wiz-step .help{font-size:1.06rem;color:var(--text);margin-bottom:24px;max-width:60ch}
.bf{margin-bottom:20px}
.bf label{display:block;font-family:var(--head);font-size:16.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.bf .hint{display:block;font-size:14.5px;color:var(--muted);margin-bottom:7px;font-weight:400;font-family:var(--sans)}
.bf input,.bf select,.bf textarea{width:100%;padding:14px 15px;font-size:17.5px;font-family:var(--sans);
  color:var(--ink);background:#fff;border:2px solid #BCC7D8;border-radius:4px;min-height:56px}
.bf input:focus,.bf select:focus,.bf textarea:focus{outline:none;border-color:var(--navy);
  box-shadow:0 0 0 4px rgba(22,39,79,.15)}
.bf textarea{min-height:118px;resize:vertical;line-height:1.55}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
@media(max-width:760px){.g2,.g3{grid-template-columns:1fr;gap:0}}
.optional{font-weight:400;color:var(--muted);font-size:14.5px;font-family:var(--sans)}
.wiz-nav{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:22px 34px 30px;
  border-top:1px solid var(--line);margin-top:14px;background:#FAFCFE}
.wbtn{font-family:var(--head);font-size:17px;font-weight:700;padding:16px 30px;border-radius:4px;cursor:pointer;
  border:2px solid transparent;min-height:56px}
.wbtn.next{background:var(--navy);color:#fff;margin-left:auto}
.wbtn.next:hover{background:var(--navy-2)}
.wbtn.done{background:var(--gold-lt);color:var(--navy-2)}
.wbtn.back{background:#fff;border-color:#BCC7D8;color:var(--text)}
.wbtn.back:hover{border-color:var(--navy);color:var(--navy)}
.wbtn.back[disabled]{opacity:.4;cursor:not-allowed}
.bigchecks{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.bigchecks{grid-template-columns:1fr}}
.bigchk{display:flex;align-items:center;gap:14px;padding:15px 17px;border:2px solid #BCC7D8;border-radius:4px;
  cursor:pointer;font-size:16.5px;color:var(--ink);background:#fff;min-height:60px}
.bigchk:hover{border-color:var(--navy-lt)}
.bigchk input{width:24px;height:24px;accent-color:#16274F;cursor:pointer;flex-shrink:0;margin:0}
.bigchk:has(input:checked){border-color:var(--navy);background:var(--navy-soft)}
.attach{border-left:4px solid var(--gold);background:var(--gold-soft);padding:18px 22px;font-size:1.03rem;
  color:#4A4028;margin-bottom:22px}
.out-box{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px;display:none;max-width:940px}
.out-box.on{display:block}
.out-box h4{font-family:var(--head);font-size:1.25rem;color:var(--ink);margin-bottom:14px}
.out-box pre{font-family:ui-monospace,Menlo,monospace;font-size:13.5px;line-height:1.75;color:var(--text);
  white-space:pre-wrap;margin:0 0 18px;max-height:360px;overflow:auto;background:#FAFCFE;padding:18px;
  border:1px solid var(--line);border-radius:4px}
.out-actions{display:flex;gap:10px;flex-wrap:wrap}
.out-actions .btn{font-size:15px;padding:13px 22px}

/* contact + footer */
.map{border:1px solid var(--line);border-radius:6px;overflow:hidden;height:400px}
.map iframe{width:100%;height:100%;border:0;display:block}
footer{background:var(--navy-2);color:#B4C1D8;padding:58px 0 30px}
.ft{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:44px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.14)}
@media(max-width:860px){.ft{grid-template-columns:1fr;gap:30px}}
.ft img{margin-bottom:0}
.ft p{font-size:.99rem;max-width:44ch;color:#B4C1D8}
.ft h5{font-family:var(--head);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--gold-lt);margin:0 0 14px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin-bottom:11px;font-size:1rem;color:#B4C1D8}
.ft a{color:#B4C1D8;text-decoration:none}
.ft a:hover{color:#fff;text-decoration:underline}
.ft-btm{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-top:22px;font-size:.94rem;color:#8E9CB8}

/* ===== uniform CTA buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--head);
  font-weight:700;font-size:17px;line-height:1.15;min-height:56px;padding:0 28px;min-width:218px;
  border-radius:4px;text-decoration:none;cursor:pointer;border:2px solid transparent;
  transition:background .18s,color .18s,border-color .18s;text-align:center;white-space:nowrap}
.btn-gold{background:var(--gold-lt);color:var(--navy-2);border-color:var(--gold-lt)}
.btn-gold:hover{background:#F5D486;border-color:#F5D486}
.btn-call,.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-call:hover,.btn-primary:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn-white{background:#fff;color:var(--navy);border-color:#fff}
.btn-white:hover{background:#EDF2FA}
.btn-out{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-out:hover{background:var(--navy);color:#fff}
.btn-out-w{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-out-w:hover{background:#fff;color:var(--navy)}

/* ===== header ===== */
header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(22,39,79,.08)}
.hdr{display:flex;align-items:center;gap:18px;min-height:92px;padding-top:12px;padding-bottom:12px}
.brand{flex:0 0 auto;display:block}

nav.tabs{display:flex;align-items:center;gap:0;margin-left:auto;flex:0 0 auto}
.tab{background:none;border:0;font-family:var(--head);font-size:15.5px;font-weight:600;color:var(--ink);
  padding:12px 11px;flex:0 0 auto;cursor:pointer;position:relative;border-radius:4px;white-space:nowrap}
.tab:hover{color:var(--navy);background:var(--navy-soft)}
.tab[aria-selected="true"]{color:var(--navy)}
.tab[aria-selected="true"]::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:3px;
  background:var(--gold);border-radius:2px}
.drawer-cta{display:none}
.hdr-call{min-width:auto;padding:0 20px;min-height:56px;font-size:16px;flex:0 0 auto}
.burger{display:inline-flex;flex:0 0 auto;align-items:center;gap:10px;background:var(--navy);border:2px solid var(--navy);
  color:#fff;font-family:var(--head);font-weight:700;font-size:15px;padding:0 18px;min-height:56px;
  border-radius:4px;cursor:pointer}
.burger:hover{background:var(--navy-2)}
.burger .bars{display:flex;flex-direction:column;gap:4px;width:20px}
.burger .bars i{display:block;height:2.5px;background:#fff;border-radius:2px;transition:transform .25s,opacity .2s}
.burger[aria-expanded="true"] .bars i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] .bars i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .bars i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:1439px){
  .hdr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
  .brand{justify-self:start;min-width:0}
  .hdr-call{justify-self:center;margin:0}
  .burger{justify-self:end}
  nav.tabs{position:fixed;top:var(--hdrH,92px);left:0;right:0;background:#fff;flex-direction:column;
    align-items:stretch;gap:0;padding:12px 18px 24px;margin-left:0;border-bottom:3px solid var(--gold);
    transform:translateY(-140%);transition:transform .3s ease;box-shadow:0 14px 26px rgba(22,39,79,.18);
    max-height:calc(100vh - var(--hdrH,92px));overflow-y:auto}
  nav.tabs.open{transform:translateY(0)}
  .tab{text-align:center;padding:17px;font-size:18px;border-bottom:1px solid var(--line)}
  .tab[aria-selected="true"]::after{left:50%;right:auto;transform:translateX(-50%);width:40px;bottom:8px}
  .drawer-cta{display:inline-flex;margin-top:18px;width:100%}
}
@media(max-width:560px){
  .hdr{min-height:74px;gap:7px}
  .wrap{padding-left:16px;padding-right:16px}
  .hdr-call{padding:0 16px;min-width:0;font-size:15px}
  .burger{padding:0 13px;font-size:14px}
  .burger .bword{display:none}
}

/* ===== sticky bottom CTA bar ===== */
/* sticky refer bar: tablet and phone only, never on laptop/desktop */
.cta-bar{display:none}
@media(max-width:1023px){
  body{padding-bottom:104px}
  .cta-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--navy);
    border-top:4px solid var(--gold);box-shadow:0 -4px 20px rgba(15,28,58,.28)}
  .cta-in{display:flex;align-items:center;justify-content:center;padding-top:13px;padding-bottom:13px}
  .cta-in .btn{width:100%;max-width:520px;min-width:0}
}

/* ===== phone + tablet centering ===== */
@media(max-width:1439px){
  .wrap{padding-left:22px;padding-right:22px}
  .sec{padding:56px 0}
  h1,h2,h3{text-align:center}
  .eyebrow,.lede,.sec p,.note{text-align:center}
  .lede{margin-left:auto;margin-right:auto}
  .note{max-width:640px;margin-left:auto;margin-right:auto;border-left:0;border-top:4px solid var(--gold)}
  .hero-copy{align-items:center;text-align:center;padding:44px 24px 72px}
  .hero-copy .sub,.hero-copy .tagline{max-width:52ch}
  .hero-btns{justify-content:center;width:100%}
  .hero-btns .btn,.qa .btn,.out-actions .btn{width:100%;max-width:340px}
  .quick{margin-top:-24px}
  .qa p{text-align:center}
  .pcard .body{text-align:center}
  .pcard .kicker{text-align:center}
  .opanel{margin:0 auto;text-align:center}
  .ilist li{flex-direction:column;align-items:center;text-align:center;gap:8px}
  .ilist li b,.ilist li span{text-align:center}
  .areas li{text-align:center;padding-left:0}
  .areas li::before{display:none}
  .quote blockquote,.quote cite{text-align:center}
  .stat{text-align:center}
  .rung{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px}
  .rung h4,.rung .hint,.rung .detail p{text-align:center}
  .fq{text-align:center;padding:22px 0}
  .fq h3{text-align:center;padding:0 40px}
  .fq .sign{right:50%;transform:translateX(50%);top:auto;bottom:-4px;position:relative;margin:10px auto 0;display:grid}
  .fq[aria-expanded="true"] .sign{transform:translateX(50%) rotate(45deg)}
  .res{text-align:center;border-left:0;border-top:4px solid var(--gold)}
  .svc-item{justify-items:center;text-align:center}
  .svc-item .deliv{text-align:center}
  .checklist li{padding-left:0;text-align:center}
  .checklist li::before{display:none}
  .chan{flex-direction:column;align-items:center;text-align:center;gap:6px}
  .chan .ci{width:auto}
  .infobox,.whitebox{text-align:center}
  .col h4,.col .meta{text-align:center}
  .cta-btns{justify-content:center}
  .ft{text-align:center;justify-items:center}
  .ft img{margin-left:auto;margin-right:auto}
  .ft p{margin-left:auto;margin-right:auto}
  .ft-btm{justify-content:center;text-align:center}
  /* forms stay left-aligned for usability */
  .wiz,.wiz *,.bf,.bf label,.bf .hint,.bigchk,.wiz-step h3,.wiz-step .help{text-align:left}
  .wiz-step h3,.wiz-step .help{text-align:left}
  .out-box,.out-box h4,.out-box pre{text-align:left}
  .bio-hd,.bio-inner,.bio-inner p{text-align:left}
}

.btn .bi{width:19px;height:19px;flex:0 0 auto;fill:currentColor;display:block}
.btn>span{display:inline-block}
.hdr-call .num{font-variant-numeric:tabular-nums}
@media(max-width:1439px){
  .hdr-call{padding:0 16px;font-size:15.5px;gap:8px}
}
@media(max-width:700px){
  .hdr{grid-template-columns:auto 1fr auto}
  .brand{min-width:0}
  .brand img{max-width:100%}
}
@media(max-width:640px){
  /* header: logo, phone icon + number, hamburger */
  .wrap{padding-left:12px;padding-right:12px}
  .hdr{gap:6px;min-height:72px}
  .hdr-call{padding:0 11px;font-size:14px;gap:6px;min-height:52px;letter-spacing:-.01em}
  .hdr-call .bi{width:16px;height:16px}
  .burger{padding:0 11px;min-height:52px}
}
@media(max-width:400px){
  .hdr-call{font-size:13.5px;padding:0 9px;gap:5px}
  .burger{padding:0 10px}
}

/* ---- "Las Vegas" accent in the hero H1 ---- */
.lv{position:relative;display:inline-block;color:var(--gold-lt);font-size:1.13em;
  line-height:1;padding-bottom:.04em}
.lv-txt{display:inline-block}
.lv::after{content:"";position:absolute;left:0;right:0;bottom:-.02em;height:.075em;min-height:3px;
  border-radius:3px;background:linear-gradient(90deg,var(--gold) 0%,var(--gold-lt) 55%,#FFF0C4 100%);
  transform:scaleX(0);transform-origin:left center}
.lv.play .lv-txt{animation:lvRise .65s cubic-bezier(.2,.75,.3,1) both}
.lv.play::after{animation:lvDraw .7s .38s cubic-bezier(.2,.75,.3,1) forwards,
  lvGlow 3.6s 1.3s ease-in-out infinite}
@keyframes lvRise{from{opacity:0;transform:translateY(.22em)}to{opacity:1;transform:none}}
@keyframes lvDraw{to{transform:scaleX(1)}}
@keyframes lvGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45)}}
@media(prefers-reduced-motion:reduce){
  .lv.play .lv-txt{animation:none}
  .lv.play::after{animation:none;transform:scaleX(1)}
}

/* ---- brand logo (white backgrounds only) ---- */
.brand img{height:90px;width:auto;aspect-ratio:2/1;object-fit:contain;display:block}
.hdr{min-height:114px}
.ft-logo{display:inline-block;background:#fff;border-radius:6px;padding:12px 16px;margin-bottom:18px;
  box-shadow:0 2px 10px rgba(0,0,0,.22)}
.ft-logo img{height:74px;width:auto;aspect-ratio:2/1;object-fit:contain;display:block;margin:0}
@media(max-width:1439px){
  .brand img{height:76px}
  .hdr{min-height:100px}
}
@media(max-width:700px){
  .brand img{height:58px}
  .hdr{min-height:84px}
  .ft-logo img{height:62px}
}
@media(max-width:400px){.brand img{height:50px}}
@media(max-width:340px){.brand img{height:44px}}

.hdr-refer{min-width:auto;padding:0 18px;min-height:56px;font-size:16px;flex:0 0 auto;gap:8px}
@media(max-width:1439px){.hdr-refer{display:none}}
.quickstart-sec{padding-top:58px;padding-bottom:58px;background:var(--alt)}
.quickstart{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:center;background:#fff;
  border:1px solid var(--line);border-radius:8px;padding:32px 34px;box-shadow:0 6px 26px rgba(22,39,79,.08)}
@media(max-width:900px){.quickstart{grid-template-columns:1fr;gap:20px;padding:24px 20px;text-align:center}}
.qs-copy h2{font-size:1.7rem;margin-bottom:8px}.qs-copy p{font-size:1.02rem;margin:0}
.qs-form .bf{margin-bottom:12px}.qs-form .bf label{font-size:14.5px;margin-bottom:5px}
.qs-form input{min-height:50px;padding:11px 13px;font-size:16.5px}
.qs-form .btn{width:100%;margin-top:4px}
.modal{position:fixed;inset:0;z-index:200}.modal[hidden]{display:none}
.modal-back{position:absolute;inset:0;background:rgba(11,20,42,.62);animation:mFade .2s ease both}
.modal-panel{position:relative;margin:3vh auto;max-width:1040px;width:calc(100% - 32px);background:#fff;
  border-radius:10px;box-shadow:0 24px 70px rgba(11,20,42,.45);max-height:94vh;display:flex;
  flex-direction:column;overflow:hidden;animation:mRise .26s cubic-bezier(.2,.75,.3,1) both}
@keyframes mFade{from{opacity:0}to{opacity:1}}
@keyframes mRise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:flex-start;gap:18px;padding:20px 26px 16px;background:var(--navy);color:#fff}
.modal-head h2{color:#fff;font-size:1.45rem;margin-bottom:3px}
.modal-head p{color:#C6D1E4;font-size:.94rem;margin:0}
.modal-x{margin-left:auto;background:rgba(255,255,255,.14);border:0;color:#fff;font-size:26px;line-height:1;
  width:42px;height:42px;border-radius:6px;cursor:pointer;flex:0 0 auto}
.modal-x:hover{background:rgba(255,255,255,.26)}
.modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}
.modal-body .wiz{border:0;box-shadow:none;border-radius:0;max-width:none;overflow:visible}
.modal-body .out-box{margin:0 26px 26px}
body.modal-open{overflow:hidden}
@media(max-width:700px){.modal-panel{margin:0;width:100%;max-height:100vh;height:100vh;border-radius:0}
  .modal-head{padding:14px 16px}.modal-head h2{font-size:1.2rem}.modal-head p{display:none}}
.wiz-top{padding:16px 26px 0}.wiz-count{font-size:.97rem;margin-top:9px}
.stepdots{margin-top:9px}.stepdot{font-size:12.5px;padding:5px 10px}
.wiz-step{padding:16px 26px 4px}
.wiz-step h3{font-size:1.3rem;margin-bottom:4px}
.wiz-step .help{font-size:.99rem;margin-bottom:14px}
.wiz .bf{margin-bottom:12px}
.wiz .bf label{font-size:14.5px;margin-bottom:4px}
.wiz .bf .hint{font-size:12.5px;margin:-2px 0 5px}
.wiz .bf input,.wiz .bf select,.wiz .bf textarea{min-height:46px;padding:9px 12px;font-size:16px;border-width:1.5px}
.wiz .bf textarea{min-height:74px}
.wiz .g2,.wiz .g3{gap:14px}
.wiz .span3{grid-column:1/-1}
.wiz .bigchecks{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:14px}
.wiz .bigchk{min-height:48px;padding:9px 12px;font-size:14.8px;border-width:1.5px}
.wiz .bigchk input{width:20px;height:20px}
.wiz .attach{padding:12px 16px;font-size:.96rem;margin:0 0 14px}
.wiz-nav{padding:14px 26px 20px;margin-top:6px}
.wbtn{min-height:52px;padding:0 26px;font-size:16px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:900px){.wiz .bigchecks{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.wiz .g3,.wiz .g2{grid-template-columns:1fr;gap:0}
  .wiz .bigchecks{grid-template-columns:1fr}
  .wiz-step,.wiz-top,.wiz-nav{padding-left:18px;padding-right:18px}
  .wiz-step h3,.wiz-step .help{text-align:left}}
.launch{background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;max-width:640px;
  box-shadow:0 4px 20px rgba(22,39,79,.07)}
.launch h3{font-size:1.4rem;margin-bottom:8px}

/* modal compacts itself on short screens so no step ever scrolls */
@media(max-height:880px){
  .modal-panel{margin:1.5vh auto;max-height:97vh}
  .modal-head{padding:14px 26px 12px}
  .modal-head h2{font-size:1.28rem}
  .modal-head p{font-size:.88rem}
  .wiz-top{padding-top:12px}
  .stepdots{display:none}
  .wiz-count{margin-top:8px;font-size:.93rem}
  .wiz-step{padding-top:12px}
  .wiz-step h3{font-size:1.18rem}
  .wiz-step .help{font-size:.94rem;margin-bottom:11px}
  .wiz .bf{margin-bottom:9px}
  .wiz .bf label{font-size:14px;margin-bottom:3px}
  .wiz .bf .hint{font-size:12px;margin-bottom:4px}
  .wiz .bf input,.wiz .bf select,.wiz .bf textarea{min-height:42px;padding:8px 11px;font-size:16px}
  .wiz .bf textarea{min-height:60px}
  .wiz .g2,.wiz .g3{gap:11px}
  .wiz .bigchk{min-height:44px;font-size:14.2px}
  .wiz .attach{padding:10px 14px;font-size:.92rem;margin-bottom:10px}
  .wiz-nav{padding:12px 26px 15px;margin-top:4px}
  .wbtn{min-height:46px;font-size:15.5px}
}


/* ---------- scroll animations ---------- */
.anim .reveal{opacity:0;transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1);
  transition-delay:var(--d,0ms);will-change:opacity,transform}
.anim .reveal.rv-left{transform:translateX(-28px)}
.anim .reveal.rv-right{transform:translateX(28px)}
.anim .reveal.rv-zoom{transform:scale(.955)}
.anim .reveal.in{opacity:1;transform:none}
/* image cards get a gentle inner zoom as they arrive */
.anim .pcard.reveal img{transform:scale(1.06);transition:transform 1.1s cubic-bezier(.2,.7,.3,1);transition-delay:var(--d,0ms)}
.anim .pcard.reveal.in img{transform:scale(1)}
/* scroll progress bar sits on the header's bottom edge */
.scrollbar{position:absolute;left:0;bottom:-1px;height:3px;width:0%;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt));transition:width .12s linear;z-index:5}
@media(prefers-reduced-motion:reduce){
  .anim .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .anim .pcard.reveal img{transform:none!important}
  .scrollbar{display:none}
}

/* inline call + form CTA rows placed through the page */
.cta-row{margin-top:38px;text-align:center}
.cta-lead{font-family:var(--head);font-weight:700;font-size:1.12rem;color:var(--ink);margin:0 0 16px}
.sec-navy .cta-lead{color:#fff}
.cta-row-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@media(max-width:560px){.cta-row-btns .btn{width:100%;max-width:340px}}

/* the Continue button stays visible at all times */
.wiz-nav{position:sticky;bottom:0;z-index:6;background:#FAFCFE;
  border-top:1px solid var(--line);box-shadow:0 -6px 16px rgba(22,39,79,.07)}
.modal-body{scroll-behavior:smooth}
/* "there is more below" nudge, shown only when the step actually scrolls */
.scroll-hint{position:absolute;right:20px;bottom:98px;z-index:8;width:46px;height:46px;border-radius:50%;
  border:0;cursor:pointer;display:none;place-items:center;padding:0;
  background:linear-gradient(160deg,var(--gold-lt),var(--gold));
  box-shadow:0 6px 18px rgba(22,39,79,.30)}
.scroll-hint.show{display:grid;animation:hintBob 1.5s ease-in-out infinite}
.scroll-hint svg{width:26px;height:26px;fill:var(--navy-2)}
@keyframes hintBob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.scroll-hint.show{animation:none}}
@media(max-width:700px){.scroll-hint{right:14px;bottom:92px;width:42px;height:42px}}

.req-star{color:#B3261E;margin-left:3px;font-weight:700}
.bf .err{display:none;color:#B3261E;font-size:13.5px;font-weight:600;margin-top:6px}
.bf.invalid .err{display:block}
.bf.invalid label{color:#B3261E}
.bf.invalid input,.bf.invalid select,.bf.invalid textarea{
  border-color:#B3261E;background:#FFF7F6;box-shadow:0 0 0 3px rgba(179,38,30,.15)}
@keyframes shakeX{0%,100%{transform:translateX(0)}18%{transform:translateX(-7px)}
  38%{transform:translateX(6px)}58%{transform:translateX(-4px)}78%{transform:translateX(3px)}}
.bf.shake{animation:shakeX .45s cubic-bezier(.36,.07,.19,.97)}
.wiz-nav{flex-wrap:wrap}
.nav-msg{display:none;flex:1 1 100%;order:-1;margin:0 0 12px;color:#B3261E;font-weight:600;
  font-size:.98rem;background:#FDECEA;border-left:4px solid #B3261E;padding:10px 14px;border-radius:4px}
.wiz-nav.err .nav-msg{display:block}
@media(prefers-reduced-motion:reduce){.bf.shake{animation:none}}

/* ---- iOS: browser chrome must never cover the buttons ---- */
@media(max-width:700px){
  .modal-panel{
    height:100vh;               /* fallback */
    height:100dvh;              /* shrinks/grows with Safari's toolbars */
    max-height:100vh;
    max-height:100dvh;
  }
}
/* sticky form nav clears the home indicator and toolbar */
.wiz-nav{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
@media(max-width:700px){
  .wiz-nav{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .scroll-hint{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}
/* site-wide sticky refer bar, same problem */
@media(max-width:1023px){
  .cta-bar{padding-bottom:env(safe-area-inset-bottom,0px)}
  body{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
}
/* modal body gets a little breathing room so the last field is never hidden
   behind the sticky nav on a short screen */
.modal-body{padding-bottom:0}
.wiz-step{padding-bottom:8px}

/* ---- zoom control ---- */
/* kills the double-tap-to-zoom gesture without breaking taps */
html{touch-action:manipulation}
body,button,a,input,select,textarea,label,.btn,.tab,.bigchk,.fq,.rung,.stepdot{touch-action:manipulation}
/* iOS force-zooms whenever a focused control is under 16px, so nothing goes below it */
input,select,textarea{font-size:16px}
.wiz .bf input,.wiz .bf select,.wiz .bf textarea{font-size:16px}
.qs-form input{font-size:16.5px}
@media(max-height:880px){
  .wiz .bf input,.wiz .bf select,.wiz .bf textarea{font-size:16px}
}
input[type=range]{font-size:16px}

/* ---- team grid with real photographs ---- */
.bios{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1180px){.bios{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.bios{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.bios{grid-template-columns:1fr}}
.tcard{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;transition:box-shadow .22s,transform .22s}
.tcard:hover{box-shadow:0 12px 30px rgba(22,39,79,.14);transform:translateY(-3px)}
.tcard[data-open="true"]{grid-column:1/-1;transform:none;display:grid;
  grid-template-columns:300px 1fr;gap:0 30px;align-items:start}
.tcard[data-open="true"] .tcard-hd{display:contents}
.tcard[data-open="true"] .tphoto{grid-column:1;grid-row:1/span 2;align-self:start}
.tcard[data-open="true"] .tmeta{grid-column:2;grid-row:1;padding:26px 26px 0 0}
.tcard[data-open="true"] .tbody{grid-column:2;grid-row:2}
.tcard[data-open="true"] .tinner{padding:14px 26px 26px 0}
@media(max-width:760px){
  .tcard[data-open="true"]{grid-template-columns:1fr;gap:0}
  .tcard[data-open="true"] .tphoto{grid-column:1;grid-row:1}
  .tcard[data-open="true"] .tmeta{grid-column:1;grid-row:2;padding:20px 20px 0}
  .tcard[data-open="true"] .tbody{grid-column:1;grid-row:3}
  .tcard[data-open="true"] .tinner{padding:12px 20px 22px}
}
.tcard-hd{display:block;width:100%;background:none;border:0;padding:0;cursor:pointer;
  text-align:left;font-family:inherit;color:inherit}
.tphoto{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--navy-soft)}
.tmeta{display:block;padding:20px 20px 22px}
.tmeta b{display:block;font-family:var(--head);font-weight:700;font-size:1.12rem;color:var(--ink);
  line-height:1.25;margin-bottom:5px}
.trole{display:block;font-size:.94rem;color:var(--gold-dk);font-weight:600;line-height:1.45}
.tmore{display:inline-block;margin-top:12px;font-family:var(--head);font-weight:700;
  font-size:.95rem;color:var(--navy)}
.tmore .chev{display:inline-block;transition:transform .25s}
.tcard[data-open="true"] .tmore .chev{transform:rotate(90deg)}
.tbody{max-height:0;overflow:hidden;transition:max-height .5s ease;grid-column:1/-1}
.tcard[data-open="true"] .tbody{max-height:2200px}
.tinner{padding:0 26px 26px}
.tinner p{font-size:1.02rem;color:var(--text);margin-bottom:.9em}
.tinner p:last-of-type{margin-bottom:0}
.creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.cred{font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;background:var(--navy-soft);color:var(--navy);padding:6px 11px;border-radius:3px}
.officeband{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;margin-top:32px}
@media(max-width:820px){.officeband{grid-template-columns:1fr}}
.officeband figure{margin:0;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff}
.officeband img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:16/10}

.temail{margin:14px 0 0;font-size:1rem}
.temail a{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(22,39,79,.3)}
.temail a:hover{color:var(--gold-dk);border-bottom-color:var(--gold-dk)}
/* intake packet downloads */
.packet{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:26px}
@media(max-width:820px){.packet{grid-template-columns:1fr}}
.pk{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--gold);border-radius:6px;padding:20px 22px;text-decoration:none;
  transition:box-shadow .2s,transform .2s}
.pk:hover{box-shadow:0 10px 26px rgba(22,39,79,.13);transform:translateY(-2px)}
.pk .pkico{width:44px;height:44px;flex:0 0 auto;border-radius:6px;background:var(--navy-soft);
  display:grid;place-items:center;color:var(--navy)}
.pk .pkico svg{width:22px;height:22px;fill:currentColor}
.pk b{display:block;font-family:var(--head);font-size:1.06rem;color:var(--ink);margin-bottom:3px;line-height:1.3}
.pk span{display:block;font-size:.94rem;color:var(--muted)}
.pk .pktype{margin-left:auto;font-family:var(--head);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold-dk);flex:0 0 auto}
@media(max-width:1199px){.pk{text-align:left}}

/* attachment picker */
.dropzone{display:block;border:2px dashed #BCC7D8;border-radius:6px;background:#FAFCFE;
  padding:18px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.dropzone:hover,.dropzone.over{border-color:var(--navy);background:var(--navy-soft)}
.dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.dz-in{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  font-size:15.5px;color:var(--text)}
.dz-in svg{width:22px;height:22px;fill:var(--navy);flex:0 0 auto}
.dz-in b{font-family:var(--head);color:var(--navy);font-size:16px}
.filelist{list-style:none;margin:12px 0 0;padding:0}
.filelist li{display:flex;align-items:center;gap:12px;padding:9px 12px;background:#fff;
  border:1px solid var(--line);border-radius:4px;margin-bottom:8px;font-size:15px}
.filelist .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.filelist .fs{color:var(--muted);font-size:13.5px;flex:0 0 auto}
.filelist .fx{flex:0 0 auto;width:30px;height:30px;border:0;border-radius:4px;cursor:pointer;
  background:var(--navy-soft);color:var(--navy);font-size:19px;line-height:1}
.filelist .fx:hover{background:#FDECEA;color:#B3261E}

/* areas + faq + resources */
.areas{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 28px;margin-top:24px;list-style:none;padding:0}
@media(max-width:860px){.areas{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.areas{grid-template-columns:1fr}}
.areas li{padding:11px 0 11px 26px;position:relative;border-bottom:1px solid var(--line);font-size:1.02rem;color:var(--ink)}
.areas li::before{content:"";position:absolute;left:2px;top:16px;width:11px;height:11px;border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);background:var(--gold);border:2px solid var(--gold-dk)}
.faq{border-top:1px solid var(--line);margin-top:8px}
.fq{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:22px 44px 22px 0;
  cursor:pointer;position:relative;font-family:inherit;display:block}
.fq:hover{background:#fff}
.fq h3{font-size:1.2rem;color:var(--ink);margin:0}
.fq .sign{position:absolute;right:8px;top:24px;width:26px;height:26px;border-radius:50%;background:var(--navy);
  color:#fff;font-family:var(--head);font-weight:700;font-size:16px;display:grid;place-items:center;transition:transform .25s}
.fq[aria-expanded="true"] .sign{transform:rotate(45deg);background:var(--gold-dk)}
.fq .ans{display:block;max-height:0;overflow:hidden;transition:max-height .35s ease}
.fq[aria-expanded="true"] .ans{max-height:460px}
.fq .ans p{margin:14px 0 0;font-size:1.04rem;color:var(--text);max-width:82ch}
.reslist{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
@media(max-width:860px){.reslist{grid-template-columns:1fr}}
.res{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:5px;
  padding:24px 24px;text-decoration:none;transition:box-shadow .2s,transform .2s}
.res:hover{box-shadow:0 8px 22px rgba(22,39,79,.12);transform:translateY(-2px)}
.res b{display:block;font-family:var(--head);font-size:1.1rem;color:var(--ink);margin-bottom:6px}
.res span{display:block;font-size:.98rem;color:var(--text)}
.res .go{display:inline-block;margin-top:12px;font-family:var(--head);font-weight:700;font-size:15px;color:var(--navy)}
@media(max-width:340px){
  .hdr{gap:4px}
  .hdr-call{font-size:12.5px;padding:0 7px;gap:4px}
  .hdr-call .bi{width:14px;height:14px}
  .burger{padding:0 8px}
}

/* ---- phone header: ~25% shorter ---- */
@media(max-width:700px){
  .hdr{min-height:63px;padding-top:8px;padding-bottom:8px;gap:6px}
  .brand img{height:44px}
  .hdr-call{min-height:44px;font-size:14px;padding:0 11px;gap:6px}
  .hdr-call .bi{width:16px;height:16px}
  .burger{min-height:44px;padding:0 11px}
  .burger .bars{width:19px;gap:3.5px}
}
@media(max-width:400px){
  .hdr{min-height:58px}
  .brand img{height:40px}
  .hdr-call{font-size:13.5px;padding:0 9px}
  .burger{padding:0 10px}
}
@media(max-width:340px){
  .hdr{min-height:54px}
  .brand img{height:36px}
  .hdr-call{font-size:12.5px;padding:0 7px}
}
:focus-visible{outline:3px solid var(--gold-dk);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* ============ generated page types ============ */
.crumbs{font-size:.95rem;color:var(--muted);margin:0 0 14px}
.crumbs a{color:var(--navy-lt);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{margin:0 7px;color:#9AA4B8}
.pagehead{background:var(--navy);color:#fff;padding:52px 0 56px;position:relative}
.pagehead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;z-index:3;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt))}
.pagehead h1{color:#fff;margin-bottom:14px;font-size:clamp(1.9rem,3.6vw,2.9rem)}
.pagehead p{color:#DCE4F2;font-size:1.12rem;max-width:62ch;margin:0}
.pagehead .crumbs{color:#C3CFE4}
.pagehead .crumbs a{color:#E7EDF8}
/* Current page in the trail: readable, still clearly not a link. */
.pagehead .crumbs .cur{color:#C3CFE4}
.pagehead .crumbs span{color:#8FA0BC}
.pagehead .eyebrow{color:var(--gold-lt)}
.linkgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1000px){.linkgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.linkgrid{grid-template-columns:1fr}}
.lcard{display:block;background:#fff;border:1px solid var(--line);border-radius:7px;padding:24px 24px 26px;
  text-decoration:none;transition:box-shadow .2s,transform .2s;border-top:4px solid var(--gold)}
.lcard:hover{box-shadow:0 10px 28px rgba(22,39,79,.13);transform:translateY(-3px)}
.lcard b{display:block;font-family:var(--head);font-size:1.18rem;color:var(--ink);margin-bottom:7px}
.lcard span{display:block;font-size:.99rem;color:var(--text)}
.lcard .go{display:inline-block;margin-top:13px;font-family:var(--head);font-weight:700;
  font-size:.95rem;color:var(--navy)}
.lcard .cite3{display:inline-block;font-family:var(--head);font-size:12px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:8px}
.prose p{font-size:1.06rem;max-width:70ch}
.prose h3{font-size:1.35rem;margin:26px 0 10px}
.kv{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:26px}
@media(max-width:820px){.kv{grid-template-columns:1fr 1fr}}
.kv div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:18px 20px}
.kv b{display:block;font-family:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:6px}
.kv span{font-size:1.02rem;color:var(--ink)}
.bio-lead{display:grid;grid-template-columns:300px 1fr;gap:34px;align-items:start}
@media(max-width:760px){.bio-lead{grid-template-columns:1fr;gap:20px}}
.bio-lead img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:8px;
  border:1px solid var(--line);background:var(--navy-soft)}
@media(max-width:1199px){.crumbs,.pagehead p,.prose p,.lcard,.kv div{text-align:left}}

/* value cards without photography */
.pcard.nophoto{border-top:4px solid var(--gold)}
.pcard.nophoto .body{padding-top:26px}

/* close control inside an opened bio */
.bioclose{display:none;margin-top:22px}
.tcard[data-open="true"] .bioclose{display:inline-flex}
.bioclose .bi{width:16px;height:16px;fill:currentColor}

/* grid items must be allowed to shrink below their content width */
.two>*,.bio-lead>*,.cards>*,.linkgrid>*,.bios>*,.packet>*,.kv>*{min-width:0}
.prose,.prose *{max-width:100%;overflow-wrap:break-word}
.bio-lead img{max-width:100%}

.infobox,.whitebox{max-width:100%;min-width:0}
.chan,.chan *,.infobox *,.whitebox *{min-width:0;overflow-wrap:break-word}
.two,.linkgrid,.cards,.bios,.packet{max-width:100%}

/* side-slide reveals must not push the page sideways on small screens */
@media(max-width:1199px){
  .anim .reveal.rv-left,.anim .reveal.rv-right{transform:translateY(24px)}
  .anim .reveal.rv-left.in,.anim .reveal.rv-right.in{transform:none}
}

/* ==========================================================================
   Imagery, resources grid and the inline client form.
   Appended last so these rules win where they overlap earlier ones.
   ========================================================================== */

/* --- page header with a photograph behind it --- */
/* Layered with positive z-index only. Negative-z pseudo-elements were being
   reordered by the stacking contexts that filter/backdrop-filter/isolation
   create, so the scrim silently did not paint and small text sat on a bare
   photo at about 1.1:1 contrast. Explicit order: photo 0, scrim 1, text 2. */
.pagehead-img{position:relative;overflow:hidden}
.pagehead-img .ph-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.pagehead-img .ph-media img,
.pagehead-img .ph-img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.03);filter:saturate(.68) contrast(.94) brightness(.80)}
/* ::before, not ::after - .pagehead::after is already the gold bottom bar,
   and an element has only one of each. Sharing it made the scrim 5px tall. */
.pagehead-img .ph-scrim,
.pagehead-img::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(9,18,40,.80),rgba(9,18,40,.70) 55%,rgba(9,18,40,.86)),
    linear-gradient(100deg,rgba(9,18,40,.62) 0 46%,rgba(9,18,40,.12) 84%)}
.pagehead-img .wrap{position:relative;z-index:2}
@media(prefers-reduced-motion:no-preference){
  .anim .pagehead-img .ph-img{animation:phDrift 18s ease-out forwards}
  @keyframes phDrift{from{transform:scale(1.10)}to{transform:scale(1.01)}}
}

/* --- figure inside prose --- */
.fig{margin:26px 0 30px}
.fig img,.fig .fig-img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;
  border-radius:10px;display:block;background:var(--alt,#EFF4FA)}
.fig figcaption{margin-top:10px;font-size:.92rem;line-height:1.5;color:#5A6580}

/* --- image beside copy --- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:38px;align-items:center;margin:8px 0}
.split-flip .split-media{order:2}
.split-media img,.split-media .split-img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
  border-radius:10px;display:block;background:var(--alt,#EFF4FA)}
.split-copy{min-width:0}
@media(max-width:900px){
  .split{grid-template-columns:1fr;gap:24px}
  .split-flip .split-media{order:0}
}

/* --- full-width photographic band --- */
.photoband{position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(240px,34vw,420px);display:grid;align-items:end}
.photoband img,.photoband .band-img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:-2;display:block}
.photoband::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(11,22,48,.28),rgba(11,22,48,.88))}
.pb-copy{padding:34px 0 40px;position:relative;z-index:1}
.pb-copy .eyebrow{color:var(--gold-lt,#E9C05A)}
.pb-line{color:#fff;font-family:Archivo,system-ui,sans-serif;font-weight:600;
  font-size:clamp(1.15rem,2.5vw,1.72rem);line-height:1.34;max-width:34ch;margin:6px 0 0}

/* --- card grid with images (services, locations, resources) --- */
.postgrid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
@media(max-width:620px){.postgrid{grid-template-columns:1fr;gap:20px}}
.postgrid .pcard{display:flex;flex-direction:column;min-width:0;text-decoration:none;
  background:#fff;border:1px solid #DCE4F0;border-radius:12px;overflow:hidden;
  box-shadow:0 1px 2px rgba(22,39,79,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.postgrid .pcard:hover,.postgrid .pcard:focus-visible{transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(22,39,79,.14);border-color:#B8871F}
.postgrid .pcard img,.postgrid .pcard .pc-img{width:100%;height:auto;aspect-ratio:16/9;
  object-fit:cover;display:block;background:var(--alt,#EFF4FA)}
.pc-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;min-width:0;flex:1}
.pc-body b{font-family:Archivo,system-ui,sans-serif;font-size:1.08rem;line-height:1.3;color:var(--navy,#16274F)}
.pc-body>span:not(.cite3):not(.go){color:#4A5468;font-size:.96rem;line-height:1.55}
.pc-body .go{margin-top:auto;padding-top:6px;font-weight:600;color:#8A6410;
  display:flex;align-items:center;justify-content:space-between;gap:10px}
.pc-body .go em{font-style:normal;font-weight:400;color:#6B7688;font-size:.88rem}
.sec-alt .postgrid .pcard{background:#fff}

/* --- article --- */
.article{max-width:74ch;margin:0 auto}
.artmeta{color:#6B7688;font-size:.92rem;margin:0 0 6px;letter-spacing:.02em}
.article .prose h2{margin-top:34px}
.article .prose>p:first-child{font-size:1.09rem}

/* --- sticky sidebar box on two-column pages --- */
@media(min-width:1000px){
  .two .infobox.stick{position:sticky;top:calc(var(--hdrH,84px) + 18px)}
}
.btn.wfull{width:100%;justify-content:center}

/* --- the inline client form --- */
.formwrap{max-width:900px;margin:0 auto}
/* No clipping anywhere between the sticky action bar and the viewport. */
.formwrap,.formcard,.form-body,.formcard .wiz{overflow:visible}
.formcard{background:#fff;border:1px solid #DCE4F0;border-radius:14px;
  box-shadow:0 8px 30px rgba(22,39,79,.09)}
.form-head{background:var(--navy,#16274F);color:#fff;padding:24px 26px;
  border-radius:13px 13px 0 0}
.form-head h2{margin:0;color:#fff;font-size:clamp(1.2rem,3vw,1.6rem)}
.form-head p{margin:8px 0 0;color:#C3CCDE;font-size:.97rem;line-height:1.55;max-width:62ch}
.form-body{padding:24px 26px 30px}
@media(max-width:600px){
  .form-head{padding:20px 18px}
  .form-body{padding:20px 16px 26px}
}
/* The wizard was built for a modal; inline it just flows in the page. */
.formcard .wiz{max-height:none;height:auto;overflow:visible}
.formcard .wiz-nav{position:sticky;bottom:0;z-index:40;background:#fff;
  padding:16px 0 calc(16px + env(safe-area-inset-bottom));
  margin:0 -26px -30px;padding-left:26px;padding-right:26px;
  border-top:1px solid #E3E9F3;box-shadow:0 -8px 20px rgba(22,39,79,.06)}
@media(max-width:600px){
  .formcard .wiz-nav{margin:0 -16px -26px;padding-left:16px;padding-right:16px}
}
/* Keep the sticky page CTA bar from sitting on top of the form's own nav. */
body:has(#clientForm) .cta-bar{display:none}

/* --- closing CTA section --- */
.endcta h2{color:#fff;font-size:clamp(1.4rem,3.4vw,2.1rem);margin:0}
.endcta .lede{color:#C3CCDE;max-width:56ch;margin:14px auto 0}
.endcta .cta-row-btns{flex-wrap:wrap}

/* --- resources cards keep working inside the light alt section --- */
.sec-alt .pc-body b{color:var(--navy,#16274F)}

/* --- desktop header: the inline nav and the hamburger are alternatives, never
   both. Without this the burger sits past the right edge and the whole page
   scrolls sideways at 1440px. --- */
@media(min-width:1440px){
  .burger{display:none}
  .hdr{flex-wrap:nowrap}
  nav.tabs{min-width:0}
}
@media(min-width:1440px) and (max-width:1620px){
  .tab{padding:12px 8px;font-size:15px}
  .hdr{gap:12px}
  .hdr-call{padding:0 15px}
}

/* Thank-you page: they just submitted, so the sticky "New Client Form" bar
   is noise. The closing CTA in the page covers sending another one. */
body:has(#tyBox) .cta-bar{display:none}
#tyBox pre{white-space:pre-wrap;word-break:break-word}

/* ==========================================================================
   Legibility on dark panels.
   .btn-out and .go are navy-on-transparent, which disappears completely inside
   a navy box — that is why the "Call" button and the "All services in …" link
   were invisible until hover. Anything sitting on navy gets a light treatment.
   ========================================================================== */
.infobox .btn-out,
.sec-navy .btn-out,
.endcta .btn-out,
.opanel .btn-out,
.hero-copy .btn-out,
.photoband .btn-out{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.72)}
.infobox .btn-out:hover,.infobox .btn-out:focus-visible,
.sec-navy .btn-out:hover,.sec-navy .btn-out:focus-visible,
.endcta .btn-out:hover,.endcta .btn-out:focus-visible,
.opanel .btn-out:hover,.opanel .btn-out:focus-visible,
.hero-copy .btn-out:hover,.hero-copy .btn-out:focus-visible,
.photoband .btn-out:hover,.photoband .btn-out:focus-visible{
  background:#fff;color:var(--navy);border-color:#fff}
.infobox .btn-out svg,.sec-navy .btn-out svg,.endcta .btn-out svg{fill:currentColor}

/* Links and "go" affordances on navy */
.infobox a:not(.btn),
.sec-navy a:not(.btn),
.endcta a:not(.btn),
.opanel a:not(.btn),
.photoband a:not(.btn){color:#E9C05A}
.infobox a:not(.btn):hover,
.sec-navy a:not(.btn):hover,
.endcta a:not(.btn):hover,
.opanel a:not(.btn):hover{color:#fff}
.infobox .go,.sec-navy .go,.endcta .go,.opanel .go{color:#E9C05A;font-weight:700}
.infobox .chan a,.infobox .chan b a{color:#fff}
.infobox .chan a:hover{color:#E9C05A}
.infobox small,.infobox .cv small{color:#AFBDD6}

/* Focus rings have to be visible on navy too */
.infobox :focus-visible,.sec-navy :focus-visible,.endcta :focus-visible{
  outline:2px solid #E9C05A;outline-offset:2px}

/* ==========================================================================
   Centred text is for phones and tablets, not laptops.
   The block above centres everything up to 1439px so the drawer nav can stay,
   but at 1025-1439px (most laptops) centred body copy is hard to read and the
   checklist ticks lose their hanging indent. Restore normal alignment there;
   the header keeps its drawer.
   ========================================================================== */
@media(min-width:1025px) and (max-width:1439px){
  h1,h2,h3{text-align:left}
  .eyebrow,.lede,.sec p,.note{text-align:left}
  .qa p,.pcard .body,.pcard .kicker{text-align:left}
  .opanel{text-align:left}
  .ilist li{flex-direction:row;align-items:flex-start;text-align:left}
  .ilist li b,.ilist li span{text-align:left}
  .areas li{text-align:left}
  .stat{text-align:center}                       /* stat tiles stay centred */
  .rung{grid-template-columns:auto 1fr;justify-items:start;text-align:left}
  .rung h4,.rung .hint,.rung .detail p{text-align:left}
  .fq{text-align:left}
  .fq h3{text-align:left;padding:0 40px 0 0}
  .res{text-align:left}
  .svc-item{justify-items:start;text-align:left}
  .svc-item .deliv{text-align:left}
  .checklist li{padding-left:34px;text-align:left}
  .checklist li::before{display:block}
  .chan{flex-direction:row;align-items:flex-start;text-align:left}
  .infobox,.whitebox{text-align:left}
  .col h4,.col .meta{text-align:left}
  .ft{text-align:left;justify-items:start}
  .ft-btm{justify-content:space-between;text-align:left}
  /* Anything explicitly marked centre still is. */
  .center,.center h2,.center p,.endcta,.endcta h2,.endcta p{text-align:center}
}

/* ==========================================================================
   Team contact actions — click to call, click to email, more info.
   ========================================================================== */
.tcard-link{display:block;text-decoration:none;color:inherit}
.tcard{display:flex;flex-direction:column}
.tcard .tmeta{flex:1}

.tacts{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 18px;margin-top:auto}
.tacts-sm{border-top:1px solid var(--line);padding-top:14px}
.tact{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  flex:1 1 auto;min-height:42px;padding:0 12px;border-radius:5px;
  font-family:var(--head);font-weight:700;font-size:14px;text-decoration:none;
  border:2px solid var(--navy);color:var(--navy);background:#fff;
  transition:background .18s,color .18s,border-color .18s;white-space:nowrap}
.tact .bi{width:16px;height:16px;fill:currentColor;flex:0 0 auto}
.tact:hover,.tact:focus-visible{background:var(--navy);color:#fff}
.tact-call{background:var(--navy);color:#fff}
.tact-call:hover,.tact-call:focus-visible{background:var(--navy-2,#0F1C3A)}
.tact-more{flex-basis:100%;border-color:var(--gold);color:#8A6410}
.tact-more:hover,.tact-more:focus-visible{background:var(--gold);color:var(--navy);border-color:var(--gold)}
@media(max-width:420px){.tact{flex-basis:100%}}

/* Contact block on a person's own page and in the expanded home bio */
.pcontact{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.pc-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:7px 0}
.pc-k{flex:0 0 96px;font-family:var(--head);font-weight:700;font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#6B7688)}
.pc-v{font-family:var(--head);font-weight:700;font-size:1.12rem;color:var(--navy);
  text-decoration:none;border-bottom:2px solid var(--gold)}
.pc-v:hover{color:#8A6410}
.pc-mail{font-size:.98rem;word-break:break-all}
.pc-note{font-size:.86rem;color:var(--muted,#6B7688)}
.pcontact .tacts{padding:16px 0 0;margin-top:0;border-top:0}
.pcontact .tact{flex:0 1 auto}

/* The expanded home-page bio keeps the same treatment */
.tinner .pcontact{margin-top:18px}
@media(min-width:1025px) and (max-width:1439px){
  .pc-row{text-align:left}
}

/* ==========================================================================
   Declarative form fields.
   ========================================================================== */
.bf-wide{grid-column:1/-1}
.flab{display:block;font-family:var(--head);font-weight:700;font-size:14.5px;
  color:var(--navy);margin-bottom:8px}
.fhint{display:block;font-size:13px;color:var(--muted,#6B7688);margin:-2px 0 8px;line-height:1.5}

/* Yes / No pairs */
.bf-yn{display:flex;flex-direction:column;gap:6px}
.ynwrap{display:flex;gap:10px;flex-wrap:wrap}
.ynopt{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;
  border:2px solid var(--line);border-radius:6px;cursor:pointer;background:#fff;
  font-family:var(--head);font-weight:600;font-size:15px;flex:1 1 auto;justify-content:center;
  transition:border-color .16s,background .16s,color .16s}
.ynopt input{accent-color:var(--navy);width:18px;height:18px;margin:0}
.ynopt:hover{border-color:var(--navy)}
.ynopt:has(input:checked){border-color:var(--navy);background:var(--navy);color:#fff}
.ynopt:has(input:checked) input{accent-color:#fff}

/* A single "I agree" tick */
.bf-agree .bigchk{align-items:flex-start}
.agree1 span{font-size:15px;line-height:1.55}

/* Legal text to read before signing */
.fstate{grid-column:1/-1;background:var(--alt,#EFF4FA);border:1px solid #DCE4F0;
  border-left:4px solid var(--gold);border-radius:8px;padding:22px 24px;margin-bottom:6px;
  max-height:340px;overflow-y:auto}
.fstate h4{font-family:var(--head);color:var(--navy);margin:16px 0 8px;font-size:1.02rem}
.fstate h4:first-child{margin-top:0}
.fstate p{font-size:14.5px;line-height:1.62;color:#3A4459;margin:0 0 10px}
.fstate p:last-child{margin-bottom:0}

/* Repeating tables */
.ftable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:6px}
.ftable{border-collapse:collapse;width:100%;min-width:520px}
.ftable th{background:var(--alt,#EFF4FA);text-align:left;padding:10px 12px;
  font-family:var(--head);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--navy);border-bottom:1px solid var(--line);white-space:nowrap}
.ftable td{padding:0;border-bottom:1px solid var(--line)}
.ftable td input{border:0;border-radius:0;min-height:46px;width:100%;background:#fff;font-size:16px;padding:0 12px}
.ftable td input:focus{outline:2px solid var(--navy);outline-offset:-2px;position:relative;z-index:1}
.ftable tr:last-child td{border-bottom:0}
.fmore{margin-top:10px;min-height:40px;font-size:14px}

/* Hub notes */
.formnote{max-width:900px;margin:0 auto 22px}
@media(max-width:600px){
  .fstate{padding:18px 16px;max-height:300px}
  .ynopt{flex-basis:calc(50% - 5px)}
}

/* The final step's Submit button was resolving to navy text on a navy
   background, so the label vanished. State it explicitly. */
.wiz-nav .wbtn.next.done,
.wbtn.next.done{background:#E9C05A;color:#16274F;border-color:#E9C05A}
.wiz-nav .wbtn.next.done:hover,
.wbtn.next.done:hover{background:#DDAE3C;color:#0F1C3A}
.wbtn.next.done[disabled]{opacity:.65;cursor:progress}
.upnote{margin:10px 0 0;font-size:13.5px;font-weight:600;color:var(--navy)}

/* ==========================================================================
   Home quick links: navy band, separate white cards.
   ========================================================================== */
.quick-sec{background:var(--navy);padding:58px 0;margin-bottom:0}
/* .quick carries a negative top margin so it can overlap a hero. Inside this
   band there is nothing to overlap, and it was eating 46px of the top padding
   while the bottom kept all of its own - hence 8px above, 62px below. */
.quick-sec .quick{background:transparent;border:0;border-radius:0;box-shadow:none;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;overflow:visible;
  margin-top:0}
.quick-sec .qa{background:#fff;border:1px solid transparent;border-right:0;border-radius:10px;
  padding:30px 24px 28px;box-shadow:0 10px 26px rgba(8,16,36,.24);
  transition:transform .22s ease,box-shadow .22s ease}
.quick-sec .qa:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(8,16,36,.32)}
.quick-sec .qa:last-child{border-right:0}
.quick-sec .qa h3{color:var(--navy)}
.quick-sec .qa p{color:var(--text)}
@media(max-width:1024px){
  .quick-sec .quick{grid-template-columns:repeat(2,1fr);gap:18px}
  .quick-sec{padding:46px 0}
}
@media(max-width:620px){
  .quick-sec .quick{grid-template-columns:1fr;gap:16px}
  .quick-sec{padding:38px 0}
}

/* ==========================================================================
   Team card actions: stacked, and the number spelled out where you cannot tap
   it. A laptop visitor has to be able to read the number to dial it manually.
   ========================================================================== */
.tacts{flex-direction:column;gap:8px}
.tacts .tact{flex:0 0 auto;width:100%}
.tact-more{flex-basis:auto}

/* Phones tap through, so the short label is enough and keeps cards compact. */
.lbl-lg{display:none}
.lbl-sm{display:inline}
@media(min-width:600px){
  .lbl-lg{display:inline}
  .lbl-sm{display:none}
}
/* Long labels must not push the card sideways. */
.tact{white-space:normal;text-align:center;line-height:1.25;padding:10px 12px}
.tact>span{min-width:0;overflow-wrap:break-word}

/* The contact block on a bio page keeps its buttons side by side where there
   is room, since the number is already printed above them. */
.pcontact .tacts{flex-direction:row;flex-wrap:wrap}
.pcontact .tacts .tact{width:auto;flex:1 1 auto}
@media(max-width:480px){
  .pcontact .tacts{flex-direction:column}
  .pcontact .tacts .tact{width:100%}
}

/* ==========================================================================
   Review page.
   ========================================================================== */
.ratecard{background:#fff;border:1px solid #DCE4F0;border-radius:14px;padding:38px 30px 32px;
  text-align:center;box-shadow:0 8px 30px rgba(22,39,79,.09)}
.rate{display:flex;justify-content:center;gap:6px;margin-bottom:18px}
.rate-star{background:none;border:0;padding:4px;cursor:pointer;line-height:0;border-radius:6px}
.rate-star svg{width:46px;height:46px;fill:#DCE4F0;transition:fill .15s,transform .15s}
.rate-star:hover svg,.rate-star:focus-visible svg{transform:scale(1.08)}
.rate-star.on svg{fill:#E9C05A}
.rate-star:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.rate-label{font-family:var(--head);font-weight:600;font-size:1.06rem;color:var(--navy);
  margin:0 0 20px;min-height:1.6em}
.rate-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
/* An explicit display beats the hidden attribute's UA rule, so the button
   would otherwise show before a star is tapped. */
.rate-actions[hidden]{display:none}
.rate-actions .btn{flex:0 1 auto}
.rate-note{margin:22px auto 0;max-width:52ch;font-size:13.5px;line-height:1.6;color:var(--muted)}
@media(max-width:600px){
  .ratecard{padding:28px 18px 26px}
  .rate-star svg{width:38px;height:38px}
  .rate-actions .btn{flex:1 1 100%}
}

/* ==========================================================================
   Survey layout for /feedback/ — a plain card on a plain page, the way a
   questionnaire should look. Branded as VRS throughout: it is their form on
   their own site, not an imitation of anyone else's product.
   ========================================================================== */
/* VRS's own neutral, not another product's tint. */
body.bare{background:#EEF2F8}
body.bare .cta-bar{display:none}
.gform-page{padding:28px 16px 64px;min-height:100vh}
.gform-wrap{max-width:660px;margin:0 auto}
.gform-card{background:#fff;border:1px solid #DADCE0;border-radius:10px;
  padding:24px 26px;margin-bottom:14px}
.gform-head{border-top:10px solid var(--navy);padding-top:24px;position:relative}
.gform-head::after{content:"";position:absolute;left:0;right:0;top:-10px;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--gold-lt))}
.gform-logo{height:54px;width:auto;display:block;margin:0 0 18px;object-fit:contain}
.gform-head h1{font-size:1.85rem;line-height:1.25;margin:0 0 12px;color:var(--ink);text-align:left}
.gform-head p{font-size:15px;line-height:1.6;color:#4A5468;margin:0 0 10px;text-align:left}
.gform-req{color:#B32D2E;font-size:13.5px;margin:16px 0 0!important;
  border-top:1px solid #DADCE0;padding-top:14px}

/* The wizard itself reads as one plain card too. */
body.bare .formwrap{max-width:none}
body.bare .formcard{border:1px solid #DADCE0;border-radius:10px;box-shadow:none;margin-bottom:14px}
body.bare .form-head{display:none}
body.bare .form-body{padding:8px 26px 26px}
body.bare .wiz-top{padding-top:18px}
body.bare .wiz-step h3{font-size:1.12rem}
body.bare .g3{grid-template-columns:1fr}
body.bare .bf{grid-column:1/-1}
body.bare .formcard .wiz-nav{margin:0 -26px -26px;padding-left:26px;padding-right:26px;
  border-top:1px solid #DADCE0;box-shadow:none;position:static}
body.bare .scroll-hint{display:none}

.gform-foot p{font-size:14.5px;line-height:1.6;color:#4A5468;margin:0 0 8px;text-align:left}
.gform-foot p:last-child{margin-bottom:0}
.gform-note{font-size:12.5px;line-height:1.55;color:#5F6368;margin:18px 4px 6px;text-align:left}
.gform-back{margin:0 4px;font-size:13.5px}
.gform-back a{color:var(--navy);font-weight:600}
@media(max-width:600px){
  .gform-page{padding:14px 10px 48px}
  .gform-card{padding:20px 18px;border-radius:8px}
  body.bare .form-body{padding:8px 18px 20px}
  body.bare .formcard .wiz-nav{margin:0 -18px -20px;padding-left:18px;padding-right:18px}
  .gform-head h1{font-size:1.5rem}
}

/* ============================================================
   Careers page — positions on the left, application on the right.
   The form column is sticky so it stays in view while the role
   description is read.
   ============================================================ */
.applytwo{grid-template-columns:1fr 1.05fr;gap:40px}

/* "Open to" promoted to the top of the left column. */
.openbox{background:var(--alt,#EFF4FA);border:1px solid #DCE4F0;border-left:4px solid var(--gold,#B8871F);
  border-radius:10px;padding:22px 24px;margin:0 0 30px}
.openbox h3{margin:0;font-size:1.05rem;color:var(--navy,#16274F)}
.openbox p{margin-bottom:0;font-size:.96rem}
.openbox .checklist li{margin-bottom:5px}

.applyform{min-width:0}
.applyform .formwrap{max-width:none;margin:0}
.applycall{margin:16px 0 0;text-align:center;font-size:.95rem;color:#5B6580}
.applycall .btn{margin-top:8px}

@media(min-width:1000px){
  .applytwo .applyform.stick{position:sticky;top:calc(var(--hdrH,84px) + 18px)}
  /* No inner scrollbox. A nested scroll area plus the sticky Continue bar
     left the bar floating over the fields underneath it - the signature pad
     especially. Three short steps fit, so the page just scrolls normally. */
  .applytwo .applyform.stick .formcard{box-shadow:0 6px 22px rgba(22,39,79,.10)}
  .applytwo .applyform.stick .wiz-nav{position:static;box-shadow:none;background:transparent}
}
@media(max-width:999px){
  .applytwo{grid-template-columns:1fr}
  .applyform{order:-1;margin-bottom:34px}
}

/* ============================================================
   One-page forms: no progress bar, no step dots, no Back button.
   ============================================================ */
.formcard.onepage .wiz-top,
.formcard.onepage .wbtn.back{display:none}
.formcard.onepage .wiz-step{padding-top:26px}
.formcard.onepage .wiz-nav{justify-content:flex-end}
/* Short answers sit two-up so the form stays a readable height. */
@media(min-width:620px){
  .formcard.onepage .g3{grid-template-columns:1fr 1fr}
  /* bf-wide (textarea, uploads, yes/no) already spans; nothing to add. */
}

/* ============================================================
   Survey layout: one question per card.
   This is the generic single-column survey pattern — plain white
   cards on a light page, required marks in red, a footer note.
   The VRS logo and name stay at the top: it is clearly this
   firm's own form, not an imitation of anyone else's product.
   ============================================================ */
body.bare .formcard{border:0;border-radius:0;box-shadow:none;background:transparent;margin:0}
body.bare .form-body{padding:0}
body.bare .formcard .wiz{display:block}
body.bare .wiz-step{padding:0}
body.bare .wiz-step .g3{display:block}

/* Each field becomes its own card. */
body.bare .wiz-step .bf,
body.bare .wiz-step .fstate{
  background:#fff;border:1px solid #DADCE0;border-radius:10px;
  padding:22px 24px;margin:0 0 14px;display:block}
body.bare .wiz-step .bf:hover{border-color:#C6CAD0}
body.bare .wiz-step .bf>label,
body.bare .wiz-step .bf>.flab{
  display:block;font-size:15.5px;line-height:1.5;font-weight:500;
  color:var(--ink);margin:0 0 14px;letter-spacing:0}
body.bare .wiz-step .bf .fhint{display:block;font-size:13.5px;color:#5F6368;
  margin:-8px 0 14px;font-weight:400}
body.bare .wiz-step .req-star{color:#B32D2E;margin-left:3px}

/* Inputs read as a ruled line rather than a boxed control. */
body.bare .wiz-step .bf input[type=text],
body.bare .wiz-step .bf input[type=tel],
body.bare .wiz-step .bf input[type=email],
body.bare .wiz-step .bf select,
body.bare .wiz-step .bf textarea{
  border:0;border-bottom:1px solid #C4C7C5;border-radius:0;
  padding:6px 2px;background:transparent;font-size:15px;box-shadow:none}
body.bare .wiz-step .bf input:focus,
body.bare .wiz-step .bf select:focus,
body.bare .wiz-step .bf textarea:focus{
  border-bottom:2px solid var(--navy);outline:0;box-shadow:none}
body.bare .wiz-step .bf textarea{min-height:76px}

/* Yes/No reads as two stacked choices. */
body.bare .wiz-step .bf-yn .ynwrap{display:block}
body.bare .wiz-step .bf-yn .ynopt{display:flex;align-items:center;gap:12px;
  border:0;padding:7px 0;background:transparent;font-size:15px}

body.bare .wiz-step .dropzone{border:1px dashed #C4C7C5;border-radius:8px;background:#FAFAFA}

/* Submit sits on the page, not in a bar. */
body.bare .formcard .wiz-nav{margin:0;padding:4px 0 0;border:0;background:transparent;
  position:static;box-shadow:none;justify-content:flex-start}
body.bare .wbtn.next{border-radius:6px;padding:11px 26px}

/* ============================================================
   Submission confirmation panel.
   Replaces the redirect for every form except private feedback.
   ============================================================ */
body.vrs-done-open{overflow:hidden}
.vrs-done{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-start;
  justify-content:center;padding:32px 16px;overflow-y:auto;
  background:rgba(9,18,40,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  animation:vrsDoneIn .18s ease-out}
@keyframes vrsDoneIn{from{opacity:0}to{opacity:1}}
.vrs-done-card{position:relative;background:#fff;border-radius:14px;max-width:620px;width:100%;
  padding:38px 34px 32px;box-shadow:0 24px 70px rgba(9,18,40,.38);margin:auto;outline:0}
.vrs-done-card h2{font-size:1.5rem;line-height:1.25;color:var(--navy);margin:0 0 10px;text-align:left}
.vrs-done-lead{font-size:1.02rem;line-height:1.6;color:var(--text);margin:0 0 14px}
.vrs-done-ref{font-size:.95rem;color:var(--text);margin:0 0 20px}
.vrs-done-ref b{font-family:"SF Mono",Menlo,Consolas,monospace;color:var(--navy);
  background:var(--alt);padding:2px 8px;border-radius:4px}
.vrs-done-tick{width:46px;height:46px;border-radius:50%;background:var(--navy);
  display:flex;align-items:center;justify-content:center;margin:0 0 16px}
.vrs-done-tick svg{width:24px;height:24px;fill:none;stroke:var(--gold-lt);
  stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.vrs-done-copy{border:1px solid var(--line);border-radius:9px;background:#FBFCFE;
  padding:14px 16px;margin:0 0 22px}
.vrs-done-copyh{font-family:var(--head);font-size:12px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--gold-dk);margin:0 0 8px}
.vrs-done-copy pre{margin:0;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;
  font-size:12.5px;line-height:1.6;color:var(--text);
  font-family:"SF Mono",Menlo,Consolas,monospace}
.vrs-done-acts{display:flex;gap:12px;flex-wrap:wrap}
.vrs-done-acts .btn{flex:1 1 auto;justify-content:center;min-width:180px}
/* Outline button on white: navy on navy would vanish. */
.vrs-done-acts .vrs-done-alt{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.vrs-done-acts .vrs-done-alt:hover{background:var(--navy);color:#fff}
.vrs-done-note{font-size:.92rem;color:var(--muted);margin:14px 0 0}
.vrs-done-x{position:absolute;top:12px;right:14px;width:34px;height:34px;border:0;border-radius:50%;
  background:transparent;color:#7A8499;font-size:24px;line-height:1;cursor:pointer}
.vrs-done-x:hover{background:var(--alt);color:var(--navy)}
@media(max-width:560px){
  .vrs-done{padding:14px 10px}
  .vrs-done-card{padding:30px 20px 24px;border-radius:12px}
  .vrs-done-card h2{font-size:1.28rem}
  .vrs-done-acts .btn{flex:1 1 100%;min-width:0}
}

/* ---- tap-to-rate inside a form ---- */
.bf-stars .starpick{display:flex;gap:6px;margin:4px 0 6px}
.starbtn{background:none;border:0;padding:4px;cursor:pointer;line-height:0;border-radius:6px}
.starbtn svg{width:38px;height:38px;fill:#D7DCE4;transition:fill .12s,transform .12s}
.starbtn:hover svg{transform:scale(1.07)}
.starbtn.on svg{fill:var(--gold)}
.starbtn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.starlab{margin:0;font-size:14px;color:#5F6368;min-height:20px}
@media(max-width:480px){.starbtn svg{width:34px;height:34px}}

/* ============================================================
   /bad-review/ — standalone review card, no site chrome.
   Compact enough to sit on one screen on a laptop.
   ============================================================ */
body.bare .card{max-width:620px;margin:0 auto;background:#fff;border:1px solid #E2E6EC;
  border-radius:16px;box-shadow:0 2px 12px rgba(22,39,79,.08);overflow:hidden}
body.bare .card-top{display:flex;align-items:center;gap:13px;padding:11px 22px;
  border-bottom:1px solid #EDF0F5;border-top:5px solid var(--navy)}
body.bare .card-top img{height:36px;width:auto;display:block}
body.bare .card-top div{min-width:0}
body.bare .card-top strong{display:block;font-size:.98rem;color:var(--navy);font-family:var(--head)}
body.bare .card-top span{font-size:.82rem;color:#6B7280}
body.bare .card-body{padding:14px 22px 18px}
body.bare .card-body h1{font-size:1.22rem;font-weight:800;color:var(--navy);margin:0 0 4px;text-align:left}
body.bare .sub{color:#5C6473;font-size:.89rem;margin:0 0 9px;line-height:1.42}
body.bare .stars{display:flex;gap:3px;margin:0 0 4px}
body.bare .star{font-size:1.9rem;line-height:1;background:none;border:0;padding:0 2px;
  color:#D9DDE4;cursor:pointer;transition:color .12s,transform .12s}
body.bare .star:hover{transform:translateY(-2px)}
body.bare .star.on{color:var(--gold)}
body.bare .star-note{font-size:.83rem;color:#6B7280;min-height:18px;margin:0 0 10px}
body.bare .card-body label{display:block;font-weight:600;font-size:.85rem;color:#2A3242;margin:0 0 4px}
body.bare .f{margin-bottom:9px}
body.bare .row{display:grid;grid-template-columns:1fr 1fr;gap:11px}
body.bare .card-body input,
body.bare .card-body select,
body.bare .card-body textarea{width:100%;font:inherit;font-size:1rem;padding:9px 12px;
  border:1px solid #D3D8E0;border-radius:10px;background:#fff;color:var(--ink)}
body.bare .card-body textarea{min-height:62px;resize:vertical}
body.bare .card-body input:focus,
body.bare .card-body select:focus,
body.bare .card-body textarea:focus{outline:none;border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(22,39,79,.16)}
body.bare .card-body input.bad,
body.bare .card-body textarea.bad{border-color:#DC2626;background:#FEF2F2}
body.bare .err{display:none;color:#B91C1C;font-weight:600;font-size:.89rem;margin:0 0 12px}
body.bare .err.show{display:block}
body.bare .hint{font-size:.8rem;color:#7A8192;margin-top:6px}
body.bare .submit{width:100%;font:inherit;font-weight:700;font-size:1rem;color:#fff;
  background:var(--navy);border:0;border-radius:999px;padding:12px 24px;cursor:pointer;
  transition:background .2s}
body.bare .submit:hover{background:var(--gold-dk,#8A6417)}
body.bare .submit:disabled{opacity:.6;cursor:default}
body.bare .foot{max-width:620px;margin:10px auto 0;text-align:center;font-size:.82rem;color:#7A8192}
body.bare .foot a{color:#7A8192;text-decoration:none;border-bottom:1px solid #D6DBE3}
body.bare .done{display:none;text-align:center;padding:12px 0 6px}
body.bare .done.show{display:block}
body.bare .tick{width:58px;height:58px;border-radius:50%;background:var(--navy);color:var(--gold-lt);
  display:grid;place-items:center;font-size:1.7rem;margin:0 auto 14px}
body.bare .done h2{font-size:1.25rem;color:var(--navy);margin:0 0 8px}
body.bare .done p{color:#5C6473;margin:0 0 16px}
body.bare .done .submit{display:inline-flex;align-items:center;justify-content:center;
  width:auto;padding:13px 28px;text-decoration:none}
@media(max-width:540px){
  body.bare .row{grid-template-columns:1fr}
  body.bare .card-body{padding:18px 18px 22px}
  body.bare .star{font-size:2.1rem}
}

/* ---- signature pad ---- */
.signwrap{position:relative;border:1px solid #D3D8E0;border-radius:10px;background:#fff;
  overflow:hidden;margin-top:4px}
.signpad{display:block;width:100%;height:112px;touch-action:none;cursor:crosshair}
.signbase{position:absolute;left:24px;right:24px;bottom:36px;border-bottom:1px dashed #C3C9D4;
  pointer-events:none}
.signclear{position:absolute;right:10px;bottom:9px;font:inherit;font-size:.82rem;font-weight:600;
  color:var(--navy);background:#fff;border:1px solid #D3D8E0;border-radius:999px;
  padding:5px 14px;cursor:pointer}
.signclear:hover{background:var(--alt)}
.bf-sign.invalid .signwrap{border-color:#DC2626;background:#FEF2F2}
.signed-note{font-size:.84rem;color:var(--gold-dk);font-weight:600;margin-top:7px}

/* The review card is meant to be read without scrolling. */
body.bare{padding:12px 16px 18px}

/* ============================================================
   Footer — a working close to the page, not just a sitemap.
   ============================================================ */
/* Four columns: who we are, where to go, what we do, how to reach us. */
.ft{grid-template-columns:1.5fr 1fr 1.15fr 1.1fr}
@media(max-width:1100px){.ft{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.ft{grid-template-columns:1fr}}
.ft-top-in{display:grid;grid-template-columns:1.4fr auto;gap:34px;align-items:center;
  padding:34px 0}
.ft-eyebrow{font-family:var(--head);font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-lt);margin:0 0 7px}
.ft-top-copy h3{color:#fff;font-size:1.5rem;line-height:1.25;margin:0 0 8px}
.ft-top-copy p{color:#C3CFE4;font-size:1rem;margin:0;max-width:54ch}
.ft-top-acts{display:flex;gap:12px;flex-wrap:wrap}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.42)}
.btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
@media(max-width:900px){
  .ft-top-in{grid-template-columns:1fr;gap:20px;padding:28px 0}
  .ft-top-acts .btn{flex:1 1 100%;justify-content:center}
}
.ft-hours{margin-top:16px;font-size:.93rem;line-height:1.6;color:#C3CFE4}
.ft-hours b{color:#fff;font-family:var(--head)}
.ft-hours span{color:#93A2BC}
.ft-h5b{margin-top:22px}
.ft-tag{font-family:var(--head);color:var(--gold-lt)}

/* Who built it, and a way to ask for the same. */
.ft-made{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:14px;padding-top:16px;border-top:1px solid rgba(255,255,255,.10);
  font-size:.9rem;color:#93A2BC}
.ft-made a{color:#D8E2F2}
.ft-made a:hover{color:#fff}
.btn-made{background:transparent;color:var(--gold-lt);border:1.5px solid rgba(233,192,90,.55);
  padding:9px 18px;font-size:.9rem;border-radius:999px}
.btn-made:hover{background:var(--gold);color:var(--navy);border-color:var(--gold)}
@media(max-width:600px){
  .ft-made{flex-direction:column;align-items:flex-start;gap:12px}
  .btn-made{width:100%;justify-content:center}
}

/* The careers form is meant to be taken in at a glance on a laptop:
   shorter inputs, a shorter pad, a slimmer dropzone. */
.applyform .wiz textarea{min-height:0;height:64px}
.applyform .signpad{height:92px}
.applyform .signbase{bottom:30px}
.applyform .dropzone{padding:10px 14px}
.applyform .dropzone .btn{padding:7px 14px;font-size:.88rem}
.applyform .dropzone .dz-in p{display:none}
.applyform .bf-sign .fhint,.applyform .dropzone+.fhint{font-size:.8rem}
.applyform .bf{margin-bottom:2px}
.applyform .wiz-step .fhint{font-size:.82rem}
/* The page heading already says what this is; the card repeating it just
   costs vertical space the form needs. */
.applyform .form-head{display:none}
.applyform .wiz-top{padding-top:18px}

/* A submission that did not reach the office must not look like one that did. */
.vrs-done-bad .vrs-done-tick{background:#8A1F1F}
.vrs-done-bad .vrs-done-tick svg{stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round}
.vrs-done-bad .vrs-done-card h2{color:#8A1F1F}
.vrs-done-bad .vrs-done-lead b{color:#8A1F1F}
.vrs-done-bad .vrs-done-lead a{color:var(--navy);font-weight:600}

/* ============================================================
   Focus rings.
   A 3px gold ring at a 3px offset reads as a second border on a
   navy button. Keep a clearly visible indicator, but draw it as a
   ring that belongs to the button: a white gap, then the ring.
   ============================================================ */
.wbtn:focus-visible,
.btn:focus-visible,
.submit:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--navy)}
.wbtn.next:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--navy), 0 0 0 5px rgba(22,39,79,.22)}
.wbtn.back:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--navy)}
/* On dark panels the white gap would glow, so invert it. */
.infobox .btn:focus-visible,
.sec-navy .btn:focus-visible,
.endcta .btn:focus-visible,
.hero-copy .btn:focus-visible,
footer .btn:focus-visible{
  box-shadow:0 0 0 2px var(--navy-2,#0F1C3A), 0 0 0 4px var(--gold-lt)}

/* ---- the "rather talk first" call, under the careers form ----
   It was a full-width gold bar, which outweighed the Continue button
   it sits beneath. Secondary action, secondary weight. */
.applycall{display:flex;flex-direction:column;align-items:center;gap:2px;
  margin-top:18px;font-size:.93rem;color:#5B6580}
.applycall .btn.wfull{width:auto;background:#fff;color:var(--navy);
  border:2px solid #D3DAE6;padding:11px 22px;font-size:.98rem;box-shadow:none}
.applycall .btn.wfull:hover{border-color:var(--navy);background:var(--alt)}
.applycall .btn.wfull svg{opacity:.75}
@media(max-width:560px){ .applycall .btn.wfull{width:100%;justify-content:center} }

/* ============================================================
   Wizard nav on the careers form.
   The buttons were sitting 2px off the card's bottom edge, crowding
   its 14px corner radius, and step 1 showed a dead Back button at
   40% opacity that reads as broken rather than inactive.
   ============================================================ */
.applyform .wiz-nav{padding:18px 26px 24px;align-items:center}
.applyform .wbtn{min-height:50px;border-radius:6px}
/* Nothing to go back to on the first step, so do not draw one. */
.applyform .wbtn.back[disabled]{display:none}
.applyform .wbtn.back{background:#fff;border:1.5px solid #CBD4E1;color:#45506A;font-weight:600}
.applyform .wbtn.back:hover{border-color:var(--navy);color:var(--navy);background:var(--alt)}
.applyform .wbtn.next{box-shadow:0 2px 8px rgba(22,39,79,.18)}
.applyform .wbtn.next:hover{box-shadow:0 4px 14px rgba(22,39,79,.26)}
