/*
Theme Name: LightBridge Personal Brand
Theme URI: https://virtucom.net
Update URI: https://api.virtucom.net/theme/version?theme=lightbridge-personal-brand
Author: Virtucom
Description: LightBridge template line, Personal Brand. One person's site (executive, founder, advisor, speaker): photo hero with portrait, figures strip, numbered sections, roles list, results ledger, two-column lists, image-backed contact band with a hardened form, profile links, news headlines panel, Person schema from Site Info, one-page anchor menus. Every fact about the person comes from Appearance > Site Info (also settable over REST); a person's skin is a :root token block pushed as lbp_extra_css.
Version: 1.1.1
Requires PHP: 8.0
License: Proprietary, Virtucom
Text Domain: lightbridge-personal-brand
*/

/* ============ tokens (a person's skin overrides these in lbp_extra_css) ============ */
:root{
  --brand:#2C3C52; --brand-deep:#1F2B3B; --brand-2:#4A5E7E; --brand-soft:#C9D3E2;
  --ink:#16191E; --body:#2E333B; --soft:#5A6270;
  --paper:#FBFAF7; --paper-2:#ECEFF4; --rule:#D9DDE3;
  --overlay:28,38,52; /* rgb of the hero/contact scrim */
  --font-display:'Raleway','Segoe UI',system-ui,sans-serif;
  --font-body:'Public Sans','Segoe UI',system-ui,sans-serif;
  --wrap:1180px; --radius:6px; --gutter:72px; --space:84px; --hero-dark:.9; --footer-bg:var(--ink);
}

/* ============ base ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.1;color:var(--ink);margin:0;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}
.skip{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.skip:focus{left:12px;top:12px;width:auto;height:auto;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}
[id]{scroll-margin-top:120px}

/* ============ buttons + links ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;text-decoration:none;font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:.05em;text-transform:uppercase;padding:17px 34px;border:0;border-radius:var(--radius);cursor:pointer;transition:background .15s}
.btn:hover{background:var(--ink);color:#fff}
.link-underline{font-family:var(--font-display);font-weight:500;font-size:18px;color:var(--brand);text-decoration:none;border-bottom:1px solid var(--brand-2);padding-bottom:2px}
.link-underline:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ============ masthead + category bar ============ */
.masthead{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--rule)}
.mh-top{display:flex;align-items:center;gap:24px;max-width:var(--wrap);margin:0 auto;padding:14px 40px;min-width:0}
.brand{text-decoration:none;min-width:0;flex:1 1 auto}
.brand img{height:50px;width:auto}
.brand .wordmark{display:block;font-family:var(--font-display);font-weight:600;font-size:24px;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .wordmark small{display:block;font-family:var(--font-body);font-weight:500;font-size:12px;letter-spacing:.04em;color:var(--soft);margin-top:2px}
.mh-utility{margin-left:auto;display:flex;align-items:center;gap:22px;flex:0 1 auto;min-width:0}
.headbtn{padding:11px 20px;font-size:12.5px}
.navtoggle{display:none}
.catbar{background:var(--brand);color:#fff}
.catbar-in{max-width:var(--wrap);margin:0 auto;padding:0 40px;display:flex;align-items:center}
.catbar .mainnav{display:flex;gap:0;list-style:none;margin:0;padding:0}
.catbar .mainnav li{display:flex;margin:0}
.catbar .mainnav a{display:block;color:var(--brand-soft);text-decoration:none;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:13px 18px 12px;border-bottom:3px solid transparent;white-space:nowrap}
.catbar .mainnav li:first-child a{padding-left:0}
.catbar .mainnav a:hover,.catbar .mainnav a:focus-visible,.catbar .mainnav .current-menu-item>a,.catbar .mainnav a[aria-current]{color:#fff;border-bottom-color:#fff}
.catbar .navfoot{display:none}
@media(max-width:920px){
  .mh-top{padding:12px 22px;gap:14px}
  .mh-utility .headbtn{display:none}
  .navtoggle{display:inline-flex;flex:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:0;cursor:pointer;padding:10px;margin-left:8px}
  .navtoggle .nb{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .2s}
  .masthead.nav-open .navtoggle .nb:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .masthead.nav-open .navtoggle .nb:nth-child(2){opacity:0}
  .masthead.nav-open .navtoggle .nb:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .catbar{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .masthead.nav-open .catbar{max-height:80vh}
  .catbar-in{flex-direction:column;align-items:stretch;padding:0}
  .catbar .mainnav{flex-direction:column;width:100%}
  .catbar .mainnav li{display:block;width:100%}
  .catbar .mainnav a{width:100%}
  .catbar .mainnav li:first-child a,.catbar .mainnav a{padding:15px 22px;border-bottom:1px solid rgba(255,255,255,.18)}
  .catbar .navfoot{display:flex;padding:16px 22px}
  .catbar .navfoot .headbtn{background:#fff;color:var(--brand)}
}

/* ============ footer ============ */
.site-foot{background:var(--footer-bg);color:rgba(255,255,255,.62);padding:64px 0 28px}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;align-items:start}
.site-foot .np{display:flex;flex-direction:column;gap:4px;font-size:15px;line-height:1.6}
.site-foot .np b{color:#fff;font-family:var(--font-display);font-size:21px;font-weight:600;margin-bottom:4px}
.site-foot .np a{color:var(--brand-soft);text-decoration:none}
.foot-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot-nav a{color:rgba(255,255,255,.72);text-decoration:none;font-size:15px}
.foot-nav a:hover{color:#fff}
.foot-social .pb-social{flex-direction:column;gap:12px;margin:0}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px}
.foot-bottom .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;padding-top:22px}
.foot-bottom .fb-copy{font-size:13px;color:rgba(255,255,255,.5)}
.foot-bottom .fb-vc{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:rgba(255,255,255,.32);font-size:11.5px}
.foot-bottom .fb-vc:hover{color:rgba(255,255,255,.6)}
/* footer mark (Customize > Footer) */
.foot-mark{margin:0 0 18px}
.foot-mark img{display:block;width:120px;height:auto}

/* footer widget areas (1.1.0) */
.foot-widget{font-size:15px;line-height:1.7;color:rgba(255,255,255,.72)}
.foot-widget+.foot-widget{margin-top:22px}
.foot-widget .foot-wtitle,.foot-widget h2,.foot-widget h3{font-family:var(--font-display);color:#fff;font-size:17px;font-weight:600;margin:0 0 12px}
.foot-widget p{margin:0 0 .8em}
.foot-widget a{color:var(--brand-soft);text-decoration:none}
.foot-widget a:hover{color:#fff;text-decoration:underline}
.foot-widget ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot-widget img{max-width:100%;height:auto}
.foot-bottom .fb-left{font-size:13px;color:rgba(255,255,255,.5)}
.foot-bottom .foot-widget{font-size:13px;color:rgba(255,255,255,.5)}
.foot-bottom .foot-widget p{margin:0}
@media(max-width:820px){.foot-top{grid-template-columns:1fr;gap:28px}}

/* ============ profile links ============ */
.pb-social{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px}
.pb-social a{display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:500}
.pb-social a:hover{text-decoration:underline;text-underline-offset:4px}
.pb-social svg{flex:none}
.pb-social.on-dark a,.pb-hero .pb-social a,.pb-contact .pb-social a{color:#fff;opacity:.88}
.pb-social.on-dark a:hover,.pb-hero .pb-social a:hover,.pb-contact .pb-social a:hover{opacity:1}

/* ============ hero: photo + scrim, copy left, portrait right at natural size ============ */
.pb-hero{position:relative;background:var(--brand);overflow:hidden;color:#fff}
.pb-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.pb-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--overlay),var(--hero-dark)) 0%,rgba(var(--overlay),calc(var(--hero-dark) * .67)) 50%,rgba(var(--overlay),.15) 100%)}
.pb-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:center;max-width:var(--wrap);margin:0 auto;padding:96px 40px 88px}
.pb-hero h1{font-size:clamp(46px,6vw,80px);font-weight:600;line-height:1;margin:0 0 18px;color:#fff}
.pb-role{font-family:var(--font-display);font-weight:500;font-size:22px;color:var(--brand-soft);margin:0 0 22px}
.pb-lede{font-size:19px;line-height:1.65;color:rgba(255,255,255,.86);max-width:52ch;margin:0 0 32px}
.pb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px}
.pb-hero .btn{background:#fff;color:var(--brand)}
.pb-hero .btn:hover{background:var(--paper-2);color:var(--ink)}
.pb-hero .link-underline{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
.pb-portrait{margin:0;justify-self:end;max-width:380px;width:100%}
.pb-portrait img{display:block;width:100%;height:auto;max-height:70vh;object-fit:cover;border:6px solid #fff;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.pb-motif{display:block;margin-top:18px}
.pb-motif polyline{fill:none;stroke:var(--brand-soft);stroke-width:1.4;stroke-linejoin:round}

/* ============ figures strip ============ */
.pb-figs{background:var(--brand-deep);border-top:1px solid rgba(255,255,255,.12)}
.pb-figs ul{list-style:none;margin:0 auto;padding:0 40px;max-width:var(--wrap);display:grid;grid-template-columns:repeat(4,1fr)}
.pb-figs li{padding:30px 24px 28px 0;border-right:1px solid rgba(255,255,255,.14);margin-right:24px}
.pb-figs li:last-child{border-right:0;margin-right:0}
.pb-figs b{display:block;font-family:var(--font-display);font-weight:600;font-size:44px;line-height:1;color:#fff}
.pb-figs span{display:block;margin-top:8px;font-size:14.5px;line-height:1.45;color:#B9C4D4}

/* ============ numbered sections ============ */
.pb-sec{max-width:var(--wrap);margin:0 auto;padding:var(--space) 40px 0}
.pb-head{display:grid;grid-template-columns:var(--gutter) 1fr;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:8px}
.pb-head .n{font-family:var(--font-display);font-size:22px;color:var(--brand-2)}
.pb-head h2{font-size:clamp(30px,3.4vw,42px)}
.pb-intro{font-size:18px;color:var(--body);max-width:62ch;margin:22px 0 8px var(--gutter)}
.pb-group{margin:34px 0 0 var(--gutter);font-family:var(--font-display);font-size:22px;color:var(--ink)}
.pb-note{margin:18px 0 0 var(--gutter);font-size:15.5px;color:var(--soft);max-width:70ch}

/* roles list */
.pb-roles{list-style:none;margin:0 0 0 var(--gutter);padding:0}
.pb-group+.pb-roles{margin-top:6px;border-top:1px solid var(--ink)}
.pb-roles li{display:grid;grid-template-columns:1fr 200px;gap:32px;padding:22px 0;border-bottom:1px solid var(--rule)}
.pb-roles h3{font-family:var(--font-body);font-size:18px;font-weight:700;margin:0 0 4px;letter-spacing:0}
.pb-roles .where{display:block;font-size:15px;color:var(--soft);margin:0 0 6px}
.pb-roles p{margin:0;font-size:16.5px;line-height:1.6;color:var(--body);max-width:64ch}
.pb-roles .when{font-family:var(--font-display);font-size:17px;color:var(--brand);text-align:right}

/* results ledger */
.pb-ledger{width:calc(100% - var(--gutter));margin:18px 0 0 var(--gutter);border-collapse:collapse;font-size:16.5px}
.pb-ledger th{text-align:left;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);padding:12px 18px 12px 0;border-bottom:1px solid var(--ink)}
.pb-ledger td{padding:20px 18px 20px 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--body);line-height:1.55}
.pb-ledger td:first-child{font-weight:700;color:var(--ink);width:28%}
.pb-ledger td:first-child span{display:block;font-weight:400;color:var(--soft);font-size:14.5px}
.pb-ledger td:last-child{font-family:var(--font-display);font-size:19px;color:var(--brand);width:30%}

/* two-column ruled lists */
.pb-cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-left:var(--gutter)}
.pb-cols h3{font-family:var(--font-display);font-size:22px;margin:30px 0 4px}
.pb-cols ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.pb-cols li{padding:13px 0;border-bottom:1px solid var(--rule);font-size:16.5px;line-height:1.5;color:var(--body)}
.pb-cols li b{color:var(--ink);font-weight:600}
.pb-cols-tight{margin-top:6px}

/* ============ news headlines panel ([news_panel]) ============ */
.news-panel{margin-top:var(--space);padding:64px 0 72px;background:#fff;border-top:1px solid var(--rule)}
.news-panel .np-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:6px}
.news-panel .np-head h2{font-size:clamp(28px,3.2vw,40px)}
.news-panel .np-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:48px}
.news-panel .np-item{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:start;padding:20px 0;border-bottom:1px solid var(--rule)}
.news-panel .np-item.no-thumb{grid-template-columns:1fr}
.news-panel .np-thumb img{display:block;width:96px;height:96px;object-fit:cover}
.news-panel h3{font-size:18px;line-height:1.35;margin:0 0 6px}
.news-panel h3 a{color:var(--ink);text-decoration:none}
.news-panel h3 a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.news-panel time{font-size:14px;color:var(--soft)}

/* ============ contact band: image behind a scrim, form on a card ============ */
.pb-contact{position:relative;background:var(--brand);margin-top:var(--space);overflow:hidden}
.news-panel+.pb-contact{margin-top:0}
.pb-contact-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pb-contact::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--overlay),.55) 0%,rgba(var(--overlay),.92) 55%)}
.pb-contact .in{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;padding:88px 40px 96px;display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.pb-contact h2{font-size:clamp(32px,3.6vw,46px);margin:0 0 14px;color:#fff}
.pb-contact p{font-size:18px;color:rgba(255,255,255,.86);max-width:40ch}
.pb-contact .link-underline{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
.pb-contact .cform{background:var(--paper);padding:32px;max-width:none}

/* ============ contact form ============ */
.cform{max-width:720px;display:grid;gap:18px}
.cform label{display:grid;gap:6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--soft)}
.cform input,.cform textarea,.cform select{font-family:var(--font-body);font-size:17px;color:var(--ink);background:#fff;border:1px solid #C3CAD4;border-radius:var(--radius);padding:13px 14px;width:100%}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.cform textarea{min-height:160px;resize:vertical}
.cform .row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .btn{justify-self:start}
.cform-note{border-left:3px solid var(--brand-2);background:var(--paper-2);color:var(--ink);padding:14px 18px;border-radius:0 var(--radius) var(--radius) 0;max-width:720px;margin:0 0 24px}
.cform-note.err{border-left-color:#9B2C2C}

/* ============ posts page + single post ============ */
.section{padding:72px 0}
.h-lead{font-size:clamp(34px,4.2vw,52px)}
.news-intro{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:32px}
.news-intro .lede{font-size:19px;color:var(--soft);max-width:60ch;margin:14px 0 0}
.prose{font-size:18px;color:var(--body)}
.postlist{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pcard{background:#fff;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.pcard>a{display:block;line-height:0}
.pcard img{width:100%;aspect-ratio:3/2;object-fit:cover;border-bottom:1px solid var(--rule)}
.pcard .b{padding:22px 24px 26px;flex:1;display:flex;flex-direction:column}
.pcard .date{font-size:13px;color:var(--soft);margin:0 0 10px}
.pcard h2{font-size:21px;line-height:1.2;margin:0 0 10px}
.pcard h2 a{color:var(--ink);text-decoration:none}
.pcard:hover h2 a{color:var(--brand)}
.pcard p{font-size:15.5px;line-height:1.6;margin:0}
.pagination-wrap{margin-top:40px}
.single .article{max-width:780px;margin:56px auto 96px;padding:0 24px}
.single .article .backlink{display:block;font-weight:600;font-size:13px;color:var(--brand);text-decoration:none;margin:0 0 20px}
.single .article h1{font-size:clamp(30px,4.2vw,46px);line-height:1.1;margin:0 0 14px}
.single .article .meta{color:var(--soft);font-size:15px;margin:0 0 30px}
.single .article .wp-post-image{width:100%;border-radius:var(--radius);margin:0 0 34px}
.single .article p{font-size:18px;line-height:1.75;margin:0 0 1.3em}
.single .article h2{font-size:28px;margin:1.5em 0 .5em}
.single .article h3{font-size:22px;margin:1.3em 0 .4em}
.single .article ul,.single .article ol{padding-left:1.3em;margin:0 0 1.3em}
.single .article blockquote{border-left:3px solid var(--brand-2);margin:1.5em 0;padding:2px 0 2px 22px;color:var(--ink)}
.dateline{font-size:14px;color:var(--soft)}

/* ============ phones ============ */
@media(max-width:900px){
  .wrap{padding:0 22px}
  .pb-hero-in{grid-template-columns:1fr;gap:36px;padding:52px 22px 56px}
  .pb-hero::after{background:linear-gradient(180deg,rgba(var(--overlay),.9),rgba(var(--overlay),.8))}
  .pb-portrait{justify-self:start;max-width:260px}
  .pb-figs ul{grid-template-columns:1fr 1fr;padding:0 22px}
  .pb-figs li{border-right:0;margin-right:0;border-bottom:1px solid rgba(255,255,255,.14);padding:22px 12px 20px 0}
  .pb-figs b{font-size:36px}
  .pb-sec{padding:60px 22px 0}
  .pb-head{grid-template-columns:44px 1fr}
  .pb-intro,.pb-roles,.pb-group,.pb-note,.pb-cols{margin-left:0}
  .pb-roles li{grid-template-columns:1fr;gap:6px}
  .pb-roles .when{text-align:left;order:-1;font-size:15px}
  .pb-ledger{width:100%;margin-left:0}
  .pb-ledger thead{display:none}
  .pb-ledger tr{display:block;border-bottom:1px solid var(--rule);padding:14px 0}
  .pb-ledger td{display:block;width:auto!important;border:0;padding:3px 0}
  .pb-cols{grid-template-columns:1fr;gap:0}
  .news-panel{margin-top:60px;padding:44px 0}
  .news-panel .np-list{grid-template-columns:1fr}
  .news-panel .np-item{grid-template-columns:72px 1fr;gap:14px}
  .news-panel .np-thumb img{width:72px;height:72px}
  .pb-contact::after{background:rgba(var(--overlay),.9)}
  .pb-contact .in{grid-template-columns:1fr;gap:28px;padding:56px 22px 64px}
  .pb-contact .cform{padding:22px}
  .cform .row2{grid-template-columns:1fr}
  .postlist{grid-template-columns:1fr}
}
