
:root{
  --bg:#07090b;--panel:#0c1115;--panel2:#10171c;--line:#1d2a32;
  --text:#f2efe8;--muted:#95a6b0;--accent:#4bcdd2;
}
.pv-wrap{
  min-height:100vh;color:var(--text);
  background:
    radial-gradient(circle at 77% 4%,rgba(61,198,203,.035),transparent 23%),
    #07090b;
}

/* Header: approved horizontal JM Forge logo, slightly stronger presence */
[data-site-header] .pv-brand-link{
  display:flex!important;align-items:center!important;min-width:184px!important;text-decoration:none!important;
}
[data-site-header] .pv-brand-link>*{display:none!important}
[data-site-header] .pv-header-logo{
  display:block!important;width:168px!important;height:auto!important;max-height:46px!important;object-fit:contain!important;
}

/* HERO — approved composition, slightly tighter vertically */
.pv-hero{
  max-width:1180px;margin:0 auto;padding:70px 24px 72px;
  display:grid;grid-template-columns:minmax(0,700px) 1fr;gap:86px;
  min-height:430px;align-items:center;
}
.pv-kicker{
  font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:#58d5d9;margin:0 0 15px;
}
.pv-hero h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(51px,5.2vw,72px);line-height:.99;letter-spacing:-.047em;
  margin:0 0 22px;
}
.pv-hero p{
  font-size:16.7px;line-height:1.69;color:#a8b6bf;margin:0;max-width:650px;
}
.pv-hero-space{min-height:260px}

/* Catalog shell */
.pv-section{border-top:1px solid #162028;padding:68px 0 78px}
.pv-container{max-width:1180px;margin:0 auto;padding:0 24px}
.pv-section-head{
  display:grid;grid-template-columns:1fr .72fr;gap:48px;align-items:end;margin-bottom:23px;
}
.pv-section-head h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(36px,3.9vw,52px);line-height:1.02;letter-spacing:-.042em;margin:5px 0 0;
}
.pv-section-head p{color:#91a2ad;font-size:13.6px;line-height:1.65;margin:0}

/* Family navigation */
.pv-family-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:25px 0 26px}
.pv-tab{
  appearance:none;border:1px solid #24323b;background:#090e12;color:#91a3ae;
  border-radius:999px;padding:9px 12px;font-size:10.4px;line-height:1;
  cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.pv-tab:hover{border-color:#3a555e;color:#dde7ea}
.pv-tab.active{
  border-color:#53d2d6;color:#f3fbfb;background:#0f1b1f;
  box-shadow:0 0 0 1px rgba(83,210,214,.08),0 6px 18px rgba(0,0,0,.12);
}
.pv-tab:focus-visible{outline:2px solid #65d9dd;outline-offset:3px}

.pv-search{
  display:flex;align-items:center;gap:10px;
  border:1px solid #22313a;background:#090e12;border-radius:11px;
  padding:10px 13px;max-width:510px;margin-bottom:31px;
}
.pv-search svg{width:16px;height:16px;opacity:.57}
.pv-search input{
  border:0!important;outline:0!important;background:transparent!important;color:#eef3f5!important;
  padding:0!important;box-shadow:none!important;width:100%;font-size:13.2px;
}
.pv-search input::placeholder{color:#687984}

.pv-family-panel{display:none}
.pv-family-panel.active{display:block;animation:pvFade .16s ease}
@keyframes pvFade{from{opacity:.78;transform:translateY(2px)}to{opacity:1;transform:none}}

.pv-family-title{
  display:grid;grid-template-columns:1fr .72fr;gap:38px;align-items:end;
  border-bottom:1px solid #19262e;padding-bottom:17px;margin-bottom:17px;
}
.pv-family-title h3{
  font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.06;
  letter-spacing:-.029em;margin:0;
}
.pv-family-title p{margin:0;color:#8d9faa;font-size:12.3px;line-height:1.56}

/* Cards */
.pv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.pv-card{
  display:flex;flex-direction:column;position:relative;min-height:220px;
  border:1px solid #1f2d35;border-radius:15px;
  background:linear-gradient(145deg,#0d1419,#090d11);
  padding:20px 80px 19px 20px;text-decoration:none!important;color:inherit!important;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.pv-card:hover{
  transform:translateY(-2px);border-color:#34535b;
  background:linear-gradient(145deg,#0f171c,#090e12);
  box-shadow:0 12px 30px rgba(0,0,0,.19);
}
.pv-card:focus-visible{outline:2px solid #58d5d9;outline-offset:3px}

/* Balance the single fifth e-commerce card without making it look oversized */
.pv-card-balance{
  grid-column:1 / -1;
  width:calc(50% - 6.5px);
  justify-self:center;
}

.pv-icon{
  position:absolute;top:19px;right:19px;width:50px;height:50px;
  border:1px solid #27363f;border-radius:12px;overflow:hidden;background:#091015;
  display:grid;place-items:center;
  box-shadow:0 6px 16px rgba(0,0,0,.14);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.pv-icon img{
  width:100%;height:100%;object-fit:contain;display:block;
  padding:4px;box-sizing:border-box;filter:saturate(.91) brightness(.985);
}
.pv-card:hover .pv-icon{
  transform:translateY(-1px);
  border-color:#35535c;
  box-shadow:0 7px 18px rgba(0,0,0,.18);
}

.pv-card small{
  display:block;color:#56cdd2;font-size:8.5px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;
}
.pv-card h4{
  font-family:Georgia,"Times New Roman",serif;font-size:21.5px;line-height:1.1;
  letter-spacing:-.023em;margin:0 0 10px;color:#f4f0e8;max-width:350px;
}
.pv-card p{
  font-size:12.2px;line-height:1.56;color:#a0aeb7;margin:0 0 13px;max-width:395px;
}
.pv-fit{
  font-size:9.5px;line-height:1.46;color:#728590;border-top:1px solid #1a262e;
  padding-top:9px;margin-top:auto;max-width:395px;
}
.pv-fit::before{content:"Best for: ";color:#8da2ac;font-weight:700}
.pv-link{
  display:inline-flex;align-items:center;gap:6px;margin-top:11px;
  font-size:11.3px;font-weight:800;color:#eaf4f5;
}
.pv-link b{color:#55cfd4;transition:transform .15s ease}
.pv-card:hover .pv-link b{transform:translateX(2px)}
.pv-empty{display:none;border:1px solid #26353e;border-radius:13px;padding:25px;color:#93a4ae}

/* Custom-work CTA — slightly smaller and cleaner */
.pv-cta{border-top:1px solid #162028;padding:54px 0 66px}
.pv-cta-box{
  display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;
  border:1px solid #22323b;border-radius:16px;background:#0a1014;padding:25px 28px;
}
.pv-cta-box h2{
  font-family:Georgia,"Times New Roman",serif;font-size:29px;line-height:1.07;
  letter-spacing:-.032em;margin:4px 0 8px;
}
.pv-cta-box p{color:#90a1ac;line-height:1.58;margin:0;font-size:13.1px}
.pv-btns{display:flex;gap:8px;flex-wrap:wrap}
.pv-btn{
  display:inline-flex;padding:10px 13px;border:1px solid #30414a;border-radius:9px;
  color:#e8eff1!important;text-decoration:none!important;font-size:11.3px;font-weight:800;
  transition:border-color .15s ease,background .15s ease;
}
.pv-btn:hover{border-color:#4b6b74;background:#0e161a}
.pv-btn.primary{background:#eee9df;color:#0a0d0f!important;border-color:#eee9df}

/* Detail pages */
.pv-detail-hero{
  max-width:1180px;margin:0 auto;padding:68px 24px 64px;
  display:grid;grid-template-columns:76px minmax(0,700px) 1fr;gap:25px;align-items:start;
}
.pv-detail-icon{
  width:68px;height:68px;border:1px solid #27363f;border-radius:16px;overflow:hidden;background:#091015;
  box-shadow:0 8px 21px rgba(0,0,0,.16);
}
.pv-detail-icon img{width:100%;height:100%;object-fit:contain;padding:5px;box-sizing:border-box}
.pv-breadcrumb{font-size:9.5px;color:#70838e;margin-bottom:15px}
.pv-breadcrumb a{color:#65d7db!important;text-decoration:none!important}
.pv-detail-copy h1{
  font-family:Georgia,"Times New Roman",serif;font-size:clamp(40px,4.3vw,57px);
  line-height:1;letter-spacing:-.043em;margin:0 0 17px;
}
.pv-detail-copy .lead{font-size:15.6px;line-height:1.64;color:#abb8c0;margin:0}
.pv-detail-content{border-top:1px solid #162028;padding:56px 0 62px}
.pv-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.pv-info{
  border:1px solid #1f2e36;border-radius:14px;background:#0b1115;padding:23px;
}
.pv-info-core{min-height:215px}
.pv-info h2{
  font-family:Georgia,"Times New Roman",serif;font-size:24.5px;line-height:1.09;margin:5px 0 12px;
}
.pv-info p,.pv-info li{color:#9ba9b2;line-height:1.62;font-size:12.4px}
.pv-info ul{margin:0;padding-left:18px}.pv-info li+li{margin-top:5px}
.pv-info-wide{
  grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;
  min-height:auto;
}
.pv-info-wide .pv-btns{align-self:center}

/* Mobile */
@media(max-width:900px){
  .pv-hero{grid-template-columns:1fr;min-height:auto;padding-top:58px;padding-bottom:60px;gap:0}
  .pv-hero-space{display:none}
  .pv-section-head,.pv-family-title,.pv-cta-box{grid-template-columns:1fr}
  .pv-grid{grid-template-columns:1fr}
  .pv-card-balance{grid-column:auto;width:auto;justify-self:stretch}
  .pv-section-head{gap:14px}.pv-family-title{gap:8px}
  .pv-detail-hero{grid-template-columns:66px 1fr;padding-top:56px}
  .pv-detail-hero>div:last-child{display:none}
}
@media(max-width:700px){
  .pv-family-tabs{
    flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin-right:-24px;padding-right:24px;
    scrollbar-width:none;
  }
  .pv-family-tabs::-webkit-scrollbar{display:none}
  .pv-tab{white-space:nowrap}
}
@media(max-width:620px){
  [data-site-header] .pv-header-logo{width:148px!important}
  .pv-hero h1{font-size:46px}
  .pv-hero p{font-size:15px}
  .pv-section{padding-top:56px}
  .pv-card{padding:18px 68px 17px 18px;min-height:210px}
  .pv-icon{width:45px;height:45px;top:17px;right:17px}
  .pv-card h4{font-size:20.5px}
  .pv-detail-hero{grid-template-columns:1fr;gap:16px}
  .pv-detail-icon{width:60px;height:60px}
  .pv-detail-grid{grid-template-columns:1fr}
  .pv-info-wide{grid-column:auto;grid-template-columns:1fr}
}

/* ============================================================
   FULL LAUNCH PATCH 01 — PRODUCT PORTFOLIO ARCHITECTURE
   ============================================================ */
.pv-portfolio-hero{min-height:500px;padding-bottom:64px}
.pv-portfolio-map{min-height:325px;position:relative;border:1px solid #202d36;border-radius:22px;background:linear-gradient(145deg,#10161c,#080c10);overflow:hidden;box-shadow:0 26px 70px rgba(0,0,0,.24)}
.pv-portfolio-map::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:36px 36px;opacity:.55}
.pv-portfolio-map::after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(113,143,255,.15),transparent 68%)}
.pv-portfolio-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:116px;height:116px;border-radius:50%;border:1px solid rgba(113,143,255,.45);display:grid;place-content:center;text-align:center;background:radial-gradient(circle,rgba(113,143,255,.12),#090d12 70%);z-index:2}.pv-portfolio-core strong{font:400 20px/1 var(--serif)}.pv-portfolio-core small{margin-top:8px;color:#8095d9;font:700 7px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.pv-portfolio-node{position:absolute;z-index:3;width:150px;padding:12px;border:1px solid #23313a;border-radius:10px;background:rgba(7,11,15,.94)}.pv-portfolio-node small,.pv-portfolio-node strong,.pv-portfolio-node span{display:block}.pv-portfolio-node small{color:#5fd3d7;font:700 7px/1 var(--mono)}.pv-portfolio-node strong{font-size:11px;margin-top:7px}.pv-portfolio-node span{font-size:8px;color:#73838e;margin-top:3px}.pv-portfolio-node.node-software{left:18px;top:54px}.pv-portfolio-node.node-api{right:18px;top:54px}.pv-portfolio-node.node-research{left:50%;bottom:18px;transform:translateX(-50%);width:190px;text-align:center}
.pv-product-lines{border-top:1px solid #162028;padding:18px 0 70px}
.pv-product-line-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.pv-product-line{display:flex;flex-direction:column;min-height:330px;padding:21px;border:1px solid #1f2d35;border-radius:16px;background:linear-gradient(145deg,#0f151b,#090d11);color:inherit!important;text-decoration:none!important;transition:transform .18s ease,border-color .18s ease,background .18s ease}.pv-product-line:hover{transform:translateY(-2px);border-color:#35505a;background:linear-gradient(145deg,#111920,#090e12)}
.pv-product-line-top{display:flex;justify-content:space-between;align-items:center;color:#718391;font:800 7.5px/1 var(--mono);letter-spacing:.1em}.pv-product-line-top b{padding:5px 7px;border:1px solid rgba(75,205,210,.22);border-radius:999px;color:#5ed4d8;font-size:7px}
.pv-product-line h2{font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.08;letter-spacing:-.028em;margin:24px 0 9px}.pv-product-line p{margin:0;color:#91a2ad;font-size:11.5px;line-height:1.58}.pv-product-line-link{margin-top:auto;padding-top:18px;color:#e9f3f4;font-size:10.5px;font-weight:800}
.pv-software-ui{height:96px;margin-top:22px;border:1px solid #202c34;border-radius:10px;background:#080c10;display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:12px}.pv-software-ui i{border:1px solid #222e38;border-radius:7px;background:linear-gradient(145deg,#111823,#0a0e13);position:relative}.pv-software-ui i::after{content:"";position:absolute;left:9px;right:18px;top:11px;height:2px;background:#354575;box-shadow:0 8px 0 #242d38}
.pv-api-ui{height:96px;margin-top:22px;border:1px solid #202c34;border-radius:10px;background:#080c10;display:grid;grid-template-columns:1fr 28px 70px 28px 1fr;align-items:center;padding:12px;gap:5px}.pv-api-ui span{padding:8px 5px;border:1px solid #202d36;border-radius:7px;text-align:center;color:#738590;font:700 7px/1 var(--mono)}.pv-api-ui i{height:1px;background:linear-gradient(90deg,#425794,#4bcdd2)}.pv-api-ui strong{width:60px;height:60px;border-radius:50%;border:1px solid #405391;display:grid;place-items:center;font:500 16px/1 var(--serif);color:#e9eef8;background:rgba(113,143,255,.07)}
.pv-research-ui{height:96px;margin-top:22px;border:1px solid #202c34;border-radius:10px;background:#080c10;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px}.pv-research-ui>div{display:grid;align-content:center;padding:8px;border:1px solid #202d36;border-radius:7px}.pv-research-ui small{color:#6e8190;font:700 6.5px/1 var(--mono)}.pv-research-ui strong{font:400 19px/1 var(--serif);margin-top:8px}.pv-research-ui>div:last-child strong{color:#65d5c8;font-size:13px}
/* Single cards stay aligned with the grid instead of floating in the center. */
.pv-card-balance{grid-column:auto;width:auto;justify-self:stretch}
@media(max-width:900px){.pv-product-line-grid{grid-template-columns:1fr}.pv-portfolio-map{min-height:300px}}
@media(max-width:620px){.pv-portfolio-hero{min-height:auto}.pv-portfolio-map{min-height:410px;margin-top:8px}.pv-portfolio-node{width:125px}.pv-portfolio-node.node-software{left:10px;top:48px}.pv-portfolio-node.node-api{right:10px;top:48px}.pv-portfolio-node.node-research{width:180px;bottom:18px}.pv-product-lines{padding-bottom:56px}}
