/* UniHub unified platform + visual showcase */
#platform .section-head{margin-bottom:44px}
#platform .product-showcase{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-bottom:0}
#platform .product-grid{display:contents}
#platform .product{grid-column:span 4;min-height:0;padding:26px 28px;display:block}
#platform .product-feature{grid-column:span 8;min-height:0;display:block}
#platform .product-shot,#platform .mini-shot,#platform .portfolio-product-shot,#platform .insight-line{display:none!important}
#platform .product-meta{margin-bottom:22px}
#platform .product h3{font-size:clamp(25px,2.6vw,38px);margin-bottom:14px}
#platform .product p{font-size:13px;line-height:1.65;max-width:54ch}
#platform .product-feature .product-copy{display:block}
#platform .chips{margin-top:20px}

.portfolio-showcase{scroll-margin-top:96px;margin-top:72px;padding-top:68px;border-top:1px solid #dfe5ea}
.portfolio-head{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:48px;align-items:start;margin-bottom:34px}
.portfolio-overline{display:flex;align-items:center;gap:11px;padding-top:8px;color:#738295;font-size:9px;font-weight:800;letter-spacing:.13em}
.portfolio-overline i{display:block;width:24px;height:1px;background:#ff5a00}
.portfolio-head h3{margin:0 0 14px;color:#061f3a;font-size:clamp(2rem,3.8vw,3.9rem);line-height:1;letter-spacing:-.052em}
.portfolio-head p{max-width:760px;margin:0;color:#657487;font-size:15px;line-height:1.7}
.portfolio-grid{display:flex;gap:18px;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:8px 2px 20px;scroll-snap-type:x mandatory;scroll-padding-inline:2px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.portfolio-grid::-webkit-scrollbar{display:none;width:0;height:0}
.portfolio-card{position:relative;display:flex;flex-direction:column;align-items:stretch;flex:0 0 52%;min-width:0;padding:0;overflow:hidden;text-align:left;color:#061f3a;background:#fff;border:1px solid #dfe5ea;border-radius:18px;box-shadow:0 16px 44px rgba(8,31,56,.06);cursor:zoom-in;scroll-snap-align:start;scroll-snap-stop:always;opacity:.84;transform:scale(.992);transform-origin:center;transition:opacity .22s ease,transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,border-color .28s ease}
.portfolio-card.is-carousel-active{opacity:1;transform:none;border-color:#c8d1da;box-shadow:0 22px 62px rgba(8,31,56,.11)}
.portfolio-card:hover{opacity:1;transform:translateY(-3px);border-color:#c8d1da;box-shadow:0 22px 62px rgba(8,31,56,.10)}
.portfolio-card:focus-visible{outline:3px solid #f59a23;outline-offset:4px;opacity:1}
.portfolio-copy{position:relative;display:flex;flex-direction:column;gap:8px;width:100%;min-height:142px;padding:22px 23px 20px}
.portfolio-copy small{font-size:.68rem;letter-spacing:.13em;font-weight:800;color:#8b98a6}
.portfolio-copy strong{font-size:clamp(1.15rem,1.6vw,1.55rem);line-height:1.08;letter-spacing:-.035em;padding-right:28px}
.portfolio-copy>span{max-width:34ch;color:#687687;font-size:.86rem;line-height:1.45}
.portfolio-copy i{position:absolute;top:21px;right:21px;color:#ef8c17;font-style:normal;font-size:1.05rem}
.portfolio-media{display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:410px;padding:18px;background:linear-gradient(145deg,#f8fafb,#edf1f4);border-top:1px solid #e7ebef}
.portfolio-shot{display:block;width:auto;height:min(390px,100%);max-width:100%;object-fit:contain;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(26,44,64,.08)}
.portfolio-carousel-ui{display:flex;align-items:center;gap:10px;margin-top:3px;min-height:44px}
.portfolio-carousel-count{flex:none;min-width:62px;color:#687687;font-size:.72rem;font-weight:800;line-height:1;letter-spacing:.13em;font-variant-numeric:tabular-nums}
.portfolio-carousel-dots{display:flex;align-items:center;justify-content:center;gap:0;flex:1}
.portfolio-carousel-dot{width:23px;height:32px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;border-radius:999px}
.portfolio-carousel-dot::before{content:"";display:block;width:5px;height:5px;border-radius:999px;background:#aeb8c2;transition:width .24s ease,background-color .24s ease}
.portfolio-carousel-dot[aria-current="true"]::before{width:17px;background:#ef8c17}
.portfolio-carousel-dot:hover::before{background:#758392}
.portfolio-carousel-dot[aria-current="true"]:hover::before{background:#ef8c17}
.portfolio-carousel-dot:focus-visible{outline:2px solid #ef8c17;outline-offset:0}
.portfolio-carousel-nav{flex:none;width:39px;height:39px;border:1px solid #d5dde5;border-radius:999px;background:#fff;color:#061f3a;cursor:pointer;display:grid;place-items:center;font-size:1rem;transition:border-color .2s ease,color .2s ease,transform .2s ease}
.portfolio-carousel-nav:hover:not(:disabled){border-color:#ef8c17;color:#ef8c17;transform:translateY(-1px)}
.portfolio-carousel-nav:disabled{opacity:.28;cursor:default}
.portfolio-carousel-nav:focus-visible,.portfolio-grid:focus-visible{outline:2px solid #ef8c17;outline-offset:3px}

html.lightbox-open,html.lightbox-open body{overflow:hidden}
.portfolio-lightbox[hidden]{display:none}
.portfolio-lightbox{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:24px}
.portfolio-lightbox-backdrop{position:absolute;inset:0;background:rgba(3,15,28,.92);backdrop-filter:blur(10px)}
.portfolio-lightbox-panel{position:relative;z-index:1;width:min(1180px,96vw);height:min(92vh,920px);display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center}
.portfolio-lightbox figure{min-width:0;height:100%;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:16px;place-items:center}
.portfolio-lightbox-image{height:100%;width:auto;max-width:100%;object-fit:contain;box-shadow:0 28px 90px rgba(0,0,0,.28)}
.portfolio-lightbox figcaption{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:24px;color:#fff}
.portfolio-lightbox figcaption strong{font-size:1.08rem}.portfolio-lightbox figcaption span{color:#b8c4cf;font-size:.9rem;text-align:right}
.portfolio-lightbox button{border:0;color:#fff;background:transparent;cursor:pointer}
.portfolio-lightbox-close{position:absolute;right:0;top:-6px;transform:translateY(-100%);font-size:2rem;line-height:1;padding:10px}
.portfolio-lightbox-nav{width:48px;height:48px;border:1px solid rgba(255,255,255,.24)!important;border-radius:999px!important;font-size:1.2rem;justify-self:center}
.portfolio-lightbox-nav:hover,.portfolio-lightbox-close:hover{color:#f5a33b}.portfolio-lightbox-count{position:absolute;left:64px;bottom:-32px;color:#92a2b1;font:700 .76rem/1 sans-serif;letter-spacing:.14em}

@media(max-width:980px){
  #platform .product,#platform .product-feature{grid-column:span 6}
  .portfolio-card{flex-basis:62%}
  .portfolio-head{grid-template-columns:1fr;gap:16px}
  .portfolio-media{min-height:380px}
}
@media(max-width:620px){
  #platform .section-head{margin-bottom:30px}
  #platform .product,#platform .product-feature{grid-column:span 12;padding:23px 22px}
  #platform .product-meta{margin-bottom:16px}
  #platform .product h3{font-size:1.65rem}
  .portfolio-showcase{margin-top:52px;padding-top:48px}
  .portfolio-head{margin-bottom:24px}
  .portfolio-head h3{font-size:clamp(2rem,10vw,2.75rem)}
  .portfolio-grid{gap:14px;padding-bottom:15px}
  .portfolio-card{flex-basis:84%;border-radius:16px}
  .portfolio-copy{min-height:132px;padding:20px 20px 18px}
  .portfolio-copy i{top:19px;right:19px}
  .portfolio-media{min-height:0;aspect-ratio:4/5;padding:14px}
  .portfolio-shot{height:100%;max-height:390px}
  .portfolio-carousel-nav{display:none}
  .portfolio-carousel-count{min-width:58px}
  .portfolio-carousel-dots{justify-content:flex-end}
  .portfolio-lightbox{padding:14px}.portfolio-lightbox-panel{width:100%;height:90vh;grid-template-columns:38px minmax(0,1fr) 38px}.portfolio-lightbox-nav{width:34px;height:34px}.portfolio-lightbox-count{left:38px}.portfolio-lightbox figcaption{align-items:flex-start;flex-direction:column;gap:4px}.portfolio-lightbox figcaption span{text-align:left}
}
@media(prefers-reduced-motion:reduce){.portfolio-card,.portfolio-carousel-dot::before,.portfolio-carousel-nav{transition:none!important}}
