/* ============================================================
   BSQUARE — inner pages (news, events, projects, downloads,
   careers, contact). Same tokens and rhythm as the homepage;
   nothing here overrides the design system, it extends it.
   ============================================================ */

main.inner{padding-top:var(--header-h)}

/* ---------- page header ---------- */
.ph-head{background:var(--ivory);border-bottom:1px solid var(--line);
  padding:clamp(40px,6vw,84px) 0 clamp(32px,4vw,56px)}
.ph-head h1{font-size:clamp(1.9rem,4vw,3rem);max-width:20ch}
.ph-lede{margin-top:16px;max-width:64ch;color:var(--body)}

/* ---------- breadcrumb ---------- */
.crumb{margin:clamp(28px,4vw,52px) 0 18px}
.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;
  font-size:.9375rem;color:var(--muted)}
.crumb li+li::before{content:"/";margin-right:8px;color:var(--line)}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--gold-ink)}
.crumb [aria-current]{color:var(--ink)}

/* ---------- card grids ---------- */
.ngrid{display:grid;gap:clamp(28px,3.4vw,44px);padding:clamp(40px,5vw,72px) 0}
@media(min-width:700px){.ngrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1060px){.ngrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ncard{display:flex;flex-direction:column;gap:16px;min-width:0}
.ncard-media{display:block}
.ncard-body{display:flex;flex-direction:column;gap:10px}
.ncard-meta{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ncard h2,.ncard h3{font-size:clamp(1.15rem,1.6vw,1.375rem);line-height:1.3}
.ncard h2 a:hover,.ncard h3 a:hover{color:var(--gold-ink)}
.ncard p{color:var(--body)}

.pjgrid{display:grid;gap:clamp(28px,3vw,40px);padding:clamp(40px,5vw,72px) 0}
@media(min-width:700px){.pjgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.pjgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pjcard{display:flex;flex-direction:column;gap:14px;min-width:0}
.pjcard h2{font-size:clamp(1.15rem,1.6vw,1.375rem)}
.pjcard h2 a:hover{color:var(--gold-ink)}
.pjcard .a-dev{color:var(--gold-ink);font-weight:500}

.empty{padding:clamp(50px,7vw,90px) 0;color:var(--muted)}

/* ---------- article ---------- */
.post{padding-bottom:clamp(50px,7vw,100px)}
.post h1{font-size:clamp(1.9rem,3.8vw,2.9rem);max-width:22ch;margin-bottom:14px}
.post .a-dev{color:var(--gold-ink);font-weight:500;font-size:1.0625rem}
.post-lede{font-size:clamp(1.0625rem,1.5vw,1.25rem);max-width:62ch;margin-top:16px;color:var(--body)}
.post-cover{margin:clamp(28px,4vw,48px) auto}
.post-body{max-width:min(860px,100%)}
.post-body>*{max-width:68ch}
.post-body h2{font-size:clamp(1.35rem,2.2vw,1.75rem);margin:clamp(34px,4vw,52px) 0 10px}
.post-body h3{font-size:1.1875rem;margin:28px 0 8px}
.post-body p{margin:14px 0}
.post-body ul,.post-body ol{margin:14px 0;padding-left:22px}
.post-body li{margin:6px 0}
.post-body blockquote{margin:26px 0;padding:4px 0 4px 22px;border-left:2px solid var(--gold);
  font-size:clamp(1.0625rem,1.5vw,1.1875rem);color:var(--ink)}
.post-body .rt-img{margin:clamp(26px,3vw,40px) 0;max-width:100%}
.post-body .rt-video{position:relative;aspect-ratio:16/9;margin:clamp(26px,3vw,40px) 0;
  max-width:100%;background:var(--ivory)}
.post-body .rt-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.post-body .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.post-body .tags span{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--line);padding:5px 10px}
.post .back{margin-top:40px}
.post .a-facts.wide{margin-bottom:clamp(28px,3vw,40px)}
.post .a-attrib{margin-top:32px;color:var(--muted);font-size:.9375rem}
.gal{display:grid;gap:clamp(18px,2vw,28px);margin-top:clamp(30px,4vw,50px)}
@media(min-width:800px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rel{background:var(--ivory);padding:clamp(44px,6vw,80px) 0;margin-top:clamp(50px,7vw,90px)}
.rel .ngrid{padding:24px 0 0}

/* ---------- lists (downloads, jobs) ---------- */
.dllist{list-style:none;margin:0;padding:clamp(40px,5vw,72px) 0;display:grid;gap:0}
.dl{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;
  padding:24px 0;border-top:1px solid var(--line)}
.dl:last-child{border-bottom:1px solid var(--line)}
.dl h3{font-size:1.125rem}
.dl>div{min-width:0;flex:1 1 320px}

/* ---------- contact ---------- */
.contact-grid{display:grid;gap:clamp(36px,5vw,64px);padding:clamp(40px,5vw,76px) 0}
@media(min-width:900px){.contact-grid{grid-template-columns:1.25fr .75fr;align-items:start}}
.cform{display:grid;gap:18px;max-width:640px}
.cform label{display:grid;gap:7px;font-size:.9375rem;font-weight:500;color:var(--ink)}
.cform .lb{display:block}
.cform .rq{color:var(--muted);font-weight:400}
.cform input,.cform textarea{font:inherit;font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);padding:13px 14px;min-height:52px;width:100%}
.cform textarea{min-height:132px;resize:vertical}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--gold);outline-offset:1px;
  border-color:var(--gold)}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cform button{justify-self:start;margin-top:4px}
.cform .fmsg{font-size:.9375rem;min-height:1.4em}
.cform .fmsg.ok{color:var(--ok)}
.cform .fmsg.err{color:var(--err)}
.cinfo{border-top:2px solid var(--gold);padding-top:22px;display:grid;gap:14px;align-content:start}
.cinfo p{color:var(--body)}

/* ---------- legal / 404 chrome (shared with the bare shell) ---------- */
.legal{padding:calc(var(--header-h) + 48px) 0 clamp(60px,8vw,110px);background:#fff}
.legal .wrap{max-width:860px}
.legal h1{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:10px}
.legal h2{font-size:clamp(1.3rem,2.2vw,1.7rem);margin:clamp(38px,5vw,60px) 0 6px;
  padding-top:24px;border-top:1px solid var(--line)}
.legal h3{font-size:1.125rem;margin:26px 0 8px}
.legal p{margin:12px 0;max-width:68ch}
.legal .upd{color:var(--muted);font-size:.9375rem}
.legal .back{display:inline-block;margin-top:44px}
.lhdr{position:fixed;inset:0 0 auto;height:var(--header-h);background:#fff;
  border-bottom:1px solid var(--line);z-index:60;display:flex;align-items:center}
.lhdr .wrap{display:flex;align-items:center;justify-content:space-between;max-width:var(--maxw)}
.lhdr img{height:30px;width:auto}
@media(min-width:768px){.lhdr img{height:38px}}
.lhdr .lang a{padding:8px 6px;opacity:.55;font-size:.9375rem;font-weight:600}
.lhdr .lang a.on{opacity:1;color:var(--gold-ink)}

/* ---------- mobile type floor for these pages ---------- */
@media(max-width:767px){
  .legal p,.legal .upd,.crumb ol,.ncard-meta,.post .a-attrib,.cform label,
  .cform .fmsg,.cform .lb,.post-body .tags span,.dl .ncard-meta,.lhdr .lang a,
  .legal li,.legal td,.legal th{font-size:1rem}
}
