/* V644 — Public website cross-platform responsive foundation.
   Goal: same layout behavior on Windows/macOS and sane tablet/mobile rendering. */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
img{height:auto}
input,select,textarea,button{max-width:100%}
*{min-width:0}
:where(.wrap,.container,.sd-wrap,.page-wrap,.content-wrap){max-width:100%}
:where(table){max-width:100%}

/* Public home hero: never crop the uploaded artwork. The remaining space is
   filled by the hero background instead of cutting the top/bottom of artwork. */
body .hero.v456-hero{
  height:min(56.25vw,calc(100dvh - 86px))!important;
  min-height:430px!important;
  max-height:none!important;
  background:#07090c!important;
}
body .v456-hero .v455-hero-visual.visual{height:100%!important;min-height:0!important;background:#07090c!important}
body .v456-hero .v455-hero-slide{
  background-size:contain!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-color:#07090c!important;
}
/* Keep controls inside the visible artwork area. */
body .v460-side-panel{max-height:calc(100% - 38px);overflow:auto;scrollbar-width:none}
body .v460-side-panel::-webkit-scrollbar{display:none}

/* Standard media behavior across client pages. */
@media(max-width:1180px){
  :where(.wrap,.sd-wrap){width:min(94vw,1180px)!important}
}
@media(max-width:980px){
  body .hero.v456-hero{height:min(62vw,calc(100dvh - 78px))!important;min-height:390px!important}
  .infra,.aboutGrid,.sd-two-col,.sd-split,.order-layout,.grid.two-col{grid-template-columns:1fr!important}
  .services,.sd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto!important}
  .gallery .gal{min-height:220px;grid-row:auto!important}
}
@media(max-width:760px){
  body .hero.v456-hero{height:70vw!important;min-height:280px!important;max-height:520px!important}
  body .v456-hero .v455-hero-slide{background-size:contain!important;background-position:center center!important}
  body .v460-hero-tagline{bottom:52px!important}
  header .wrap.nav{width:94vw!important}
  section{padding-top:52px;padding-bottom:52px}
  .statsGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stat{border-right:0!important;border-bottom:1px solid #edf2f7!important;padding:10px}
  .stat:nth-last-child(-n+2){border-bottom:0!important}
  .featureGrid,.services,.sd-grid,.sd-process,.sd-benefits{grid-template-columns:1fr!important}
  .gallery{grid-template-columns:1fr!important}
  .gallery .gal{min-height:235px}
  .actions,.sd-hero-actions,.sd-cta-actions{flex-wrap:wrap}
  .actions>* ,.sd-hero-actions>*{max-width:100%}
  .v456-hero .v455-hero-arrow{display:none!important}
}
@media(max-width:520px){
  body .hero.v456-hero{height:72vw!important;min-height:250px!important}
  .wrap,.sd-wrap{width:92vw!important}
  .statsGrid{grid-template-columns:1fr!important}
  .stat{border-bottom:1px solid #edf2f7!important}
  .stat:last-child{border-bottom:0!important}
  .title h2,.infraText h2{font-size:clamp(25px,8vw,32px)!important}
  .sd-hero h1{font-size:clamp(34px,10vw,46px)!important}
  .v460-hero-tagline{display:none!important}
}
/* Low-height desktop browsers (common on Windows with browser chrome visible). */
@media(min-width:900px) and (max-height:760px){
  body .hero.v456-hero{height:calc(100dvh - 86px)!important;min-height:500px!important}
  body .v456-hero .v455-hero-slide{background-size:contain!important}
  body .v460-side-panel{top:50%!important;transform:translateY(-50%) scale(.90)!important;transform-origin:center right}
}
/* V651 Video Manager runtime */
.v651-video-wrap{position:relative;background:#05080d;border-radius:18px;overflow:hidden}.v651-video{display:block;width:100%;height:100%;object-fit:cover;background:#05080d}.v651-home{position:absolute;inset:0;z-index:3;border-radius:0}.v651-home .v651-video{object-fit:cover}.v651-has-video .v455-hero-track{opacity:0;pointer-events:none}.v651-service-section{padding-top:42px!important}.v651-service{max-width:980px;aspect-ratio:16/9;margin:24px auto 0;box-shadow:0 20px 50px #0b1e3930}.v651-party-section{margin-top:22px;padding:22px;border:1px solid #dce8f6;background:linear-gradient(135deg,#fff,#f5f9ff);border-radius:20px}.v651-party-head span{font-size:10px;font-weight:900;letter-spacing:2px;color:#5b35d5}.v651-party-head h2{margin:7px 0 3px}.v651-party-head p{margin:0;color:#708099}.v651-party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.v651-party-card{background:#fff;border:1px solid #e1e9f2;border-radius:14px;padding:10px}.v651-party-video{aspect-ratio:16/9;border-radius:10px}.v651-party-card h3{font-size:14px;margin:10px 4px 4px}.v651-external{display:grid;place-items:center;min-height:180px;color:#fff;text-decoration:none;font-weight:900;background:linear-gradient(135deg,#112c54,#196dde)}@media(max-width:900px){.v651-party-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.v651-party-grid{grid-template-columns:1fr}.v651-service{border-radius:12px}.v651-home .v651-video{object-fit:contain;background:#000}}
