/* BLACKSNOW V30 | responsive, edge-to-edge brand heroes and unified surfaces */
:root{--v30-max:1320px;--v30-inset:42px;--v30-border:#E8E1E6;--v30-text:#171820;--v30-bordeaux:#783847}
html,body{max-width:100%;overflow-x:clip}
/* All public hero variants occupy the viewport width, independent of the .wrap container. */
body:not(.portal-body) .v29-hero,
body:not(.portal-body) .site-pagehero,
body:not(.portal-body) .hero.hero-bleed{
  width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;border-radius:0!important;
}
body:not(.portal-body) .v29-hero{min-height:570px;isolation:isolate}
body:not(.portal-body) .v29-hero-inner{
  width:100%;max-width:var(--v30-max);margin:0 auto;
  padding:clamp(68px,7vw,110px) var(--v30-inset);
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  align-items:center;
}
/* Drop the V29 orbit silhouette. Editorial typography and product previews do the work. */
body:not(.portal-body) .v29-hero:after,
body:not(.portal-body) .site-pagehero:after{display:none!important;content:none!important}
body:not(.portal-body) .v29-hero h1{font-size:clamp(58px,5.7vw,88px);line-height:1.01;letter-spacing:-.06em}
body:not(.portal-body) .v29-hero p{max-width:570px}
body:not(.portal-body) .v29-hero-art{min-width:0;width:100%}
body:not(.portal-body) .v29-hosting-board,
body:not(.portal-body) .v29-portfolio-feature,
body:not(.portal-body) .v29-event-board,
body:not(.portal-body) .v29-software-panel,
body:not(.portal-body) .v29-support-panel{max-width:100%}
body:not(.portal-body) .v29-container{width:100%;max-width:1240px}
/* Give all hero pages a visible but subtle consistent bottom transition. */
body:not(.portal-body) .v29-hero::before,
body:not(.portal-body) .site-pagehero::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);pointer-events:none;
}
/* One navigation rhythm across every public brand. */
body:not(.portal-body) .top{max-width:var(--v30-max);margin:0 auto}
body:not(.portal-body) .top .nav a:focus-visible,
body:not(.portal-body) .top .nav a:hover{outline-offset:3px}
body:not(.portal-body) .top .nav a.nav-active{background:#F0E5E9;color:#783847}
/* Consistent buttons and cards. Brand colour drives local hero only. */
body:not(.portal-body) .v29-button{min-height:46px}
body:not(.portal-body) .v29-info-card,
body:not(.portal-body) .v29-study,
body:not(.portal-body) .v29-support-grid a{border-color:var(--v30-border)}
body:not(.portal-body) .v29-cta{margin-bottom:28px}
/* Portal: keep Perfex page hierarchy and prevent compressed grids. */
body.portal-body .portal-main{min-width:0}
body.portal-body :where(.panel,.metric,.table-wrap,.table-scroll,.detail-hero){min-width:0}
body.portal-body table{max-width:none}
body.portal-body :where(.table-wrap,.table-scroll){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.portal-body .panel,body.portal-body .metric{border-color:var(--v30-border)}
body.portal-body .side-nav a.active{background:#783847;color:white}
/* Responsive grids stay useful without introducing global horizontal scrolling. */
@media(max-width:1100px){
  body:not(.portal-body) .v29-hero-inner{gap:30px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  body:not(.portal-body) .v29-hero h1{font-size:clamp(48px,5.6vw,72px)}
}
@media(max-width:800px){
  :root{--v30-inset:24px}
  body:not(.portal-body) .v29-hero{min-height:0}
  body:not(.portal-body) .v29-hero-inner{grid-template-columns:1fr;padding:66px var(--v30-inset) 70px;gap:38px}
  body:not(.portal-body) .v29-hero h1{font-size:clamp(48px,10vw,72px)}
  body:not(.portal-body) .v29-container{padding-left:var(--v30-inset);padding-right:var(--v30-inset)}
  body:not(.portal-body) .v29-hero-art{max-width:650px}
}
@media(max-width:500px){
  :root{--v30-inset:18px}
  body:not(.portal-body) .v29-hero-inner{padding-top:52px;padding-bottom:62px}
  body:not(.portal-body) .v29-hero h1{font-size:clamp(43px,12vw,57px)}
  body:not(.portal-body) .v29-hero p{font-size:16px;line-height:1.6}
  body:not(.portal-body) .v29-board-title{font-size:29px}
  body:not(.portal-body) .v29-portfolio-art{height:285px}
  body:not(.portal-body) .v29-event-board{height:330px}
  body:not(.portal-body) .v29-support-panel>strong{font-size:36px}
  body:not(.portal-body) .v29-hero .v29-button{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
