/* Home solution hub. Every selector is scoped to this section. */
.v8-solution-hub {
  position: relative; isolation: isolate; overflow: hidden; padding: 100px 0 104px;
  color: #edf6ff;
  background: radial-gradient(circle at 80% 15%,rgba(0,120,255,.12),transparent 35%),radial-gradient(ellipse at 10% 90%,rgba(0,60,120,.08),transparent 60%),linear-gradient(140deg,rgba(2,13,28,.94),rgba(5,26,49,.9)),url('/public/images/scenarios-generated/residential-solar-home.webp') center/cover;
  scroll-margin-top: 90px;
}
.v8-solution-hub * { box-sizing: border-box; }
.v8-solution-hub .v8-container { width: min(1440px,calc(100% - 64px)); }
.v8-solution-hub .v8-hub-heading { max-width: 1020px; margin: 0 auto 44px; text-align: center; }
.v8-solution-hub .v8-hub-eyebrow { color: #38bdf8; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; margin: 0 0 14px; line-height: 1.5; }
.v8-solution-hub .v8-hub-heading h2 { color: #fff; font-size: clamp(50px,3.85vw,56px); font-weight: 700; letter-spacing: -.025em; line-height: 1.15; margin: 0; }
.v8-solution-hub .v8-hub-intro { color: rgba(255,255,255,.68); font-size: 17px; line-height: 1.7; max-width: 760px; margin: 22px auto 0; text-wrap: pretty; }
.v8-solution-hub .v8-hub-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); max-width: 1000px; margin: 0 auto 28px; border: 1px solid rgba(100,175,255,.12); border-radius: 14px; background: rgba(255,255,255,.02); overflow: hidden; }
.v8-solution-hub .v8-hub-tab { display: flex; gap: 12px; justify-content: center; align-items: center; min-height: 58px; padding: 12px 24px; border: 0; border-right: 1px solid rgba(100,175,255,.1); background: transparent; color: #bacee0; font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.35; cursor: pointer; }
.v8-solution-hub .v8-hub-tab:last-child { border-right: 0; }
.v8-solution-hub .v8-hub-tab[aria-selected=true] { color: white; background: linear-gradient(90deg,rgba(20,110,255,.22),rgba(20,110,255,.08)); box-shadow: inset 0 -2px #178bff; }
.v8-solution-hub .v8-hub-icon { display: inline-flex; width: 23px; height: 23px; flex: none; }
.v8-solution-hub svg { width: 20px; height: 20px; flex: none; }
.v8-solution-hub .v8-hub-icon svg { width: 100%; height: 100%; }
.v8-solution-hub .v8-hub-main { display: grid; grid-template-columns: minmax(0,65fr) minmax(0,35fr); gap: 22px; border-radius: 20px; background: rgba(3,20,39,.38); }
.v8-solution-hub .v8-hub-scene { position: relative; min-height: 560px; overflow: hidden; border: 0; border-radius: 20px; background: #07192c; }
.v8-solution-hub .v8-hub-scene-media { position: absolute; inset: 0; }
.v8-solution-hub .v8-hub-scene-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.v8-solution-hub .v8-hub-scene-media:after { content: ''; position: absolute; inset: 0; background: linear-gradient(35deg,rgba(0,15,35,.88) 0%,rgba(0,15,35,.66) 26%,rgba(0,15,35,.12) 60%,transparent 83%); }
.v8-solution-hub .v8-hub-scene-copy { position: relative; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; height: 100%; padding: 42px; }
.v8-solution-hub .v8-hub-scene-copy .v8-hub-eyebrow { color: #acd7f7; font-size: 12px; letter-spacing: .12em; }
.v8-solution-hub .v8-hub-scene h3 { margin: 0; color: #fff; font-size: 40px; font-weight: 700; line-height: 1.2; }
.v8-solution-hub .v8-hub-description { max-width: 420px; color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.65; margin: 14px 0 20px; }
.v8-solution-hub .v8-hub-tags { display: flex; flex-wrap: wrap; gap: 9px; list-style: none; margin: 0; padding: 0; }
.v8-solution-hub .v8-hub-tags li { display: flex; align-items: center; gap: 7px; min-height: 38px; border: 1px solid rgba(88,180,255,.25); background: rgba(6,32,60,.65); border-radius: 999px; color: rgba(255,255,255,.8); padding: 8px 13px; font-size: 13px; backdrop-filter: blur(10px); }
.v8-solution-hub .v8-hub-tags .v8-hub-icon { width: 18px; height: 18px; }
.v8-solution-hub .v8-hub-cta { display: inline-flex; gap: 14px; align-items: center; min-height: 50px; padding: 13px 24px; margin-top: 24px; border-radius: 11px; border: 1px solid rgba(76,165,255,.35); color: white; background: linear-gradient(90deg,#087bff,#159dff); font-size: 14px; font-weight: 700; text-decoration: none; box-shadow: 0 8px 24px rgba(0,80,180,.16); transition: transform .22s,box-shadow .22s,filter .22s; }
.v8-solution-hub .v8-hub-cta:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 12px 28px rgba(0,100,220,.25); }
.v8-solution-hub .v8-hub-products { position: relative; min-width: 0; padding: 22px 0 0; display: flex; flex-direction: column; border: 0; border-radius: 20px; background: linear-gradient(145deg,rgba(9,31,54,.36),rgba(4,20,39,.12)); }
.v8-solution-hub .v8-hub-products h3 { margin: 0 0 22px; color: #fff; font-size: 30px; font-weight: 700; line-height: 1.25; }
.v8-solution-hub .v8-hub-products .v8-hub-eyebrow { margin-bottom: 10px; color: rgba(255,255,255,.5); letter-spacing: .12em; }
.v8-solution-hub .v8-hub-product-list { display: grid; grid-template-columns: minmax(0,57fr) minmax(0,43fr); grid-template-rows: minmax(0,1fr) minmax(0,1fr); gap: 12px; flex: 1; min-height: 0; }
.v8-solution-hub .v8-hub-product { min-width: 0; display: flex; flex-direction: column; padding: 16px; border: 1px solid rgba(100,175,255,.14); border-radius: 15px; box-shadow: 0 12px 30px rgba(0,0,0,.18); background: linear-gradient(145deg,rgba(14,45,76,.85),rgba(4,27,52,.92)); text-decoration: none; transition: transform .22s,border-color .22s; }
.v8-solution-hub .v8-hub-product.is-featured { grid-row: span 2; }
.v8-solution-hub .v8-hub-product:hover { transform: translateY(-3px); border-color: rgba(100,175,255,.28); }
.v8-solution-hub .v8-hub-product-media { display: grid; place-items: center; flex: 1; min-height: 0; background: radial-gradient(circle,rgba(45,150,255,.12),transparent 70%); }
.v8-solution-hub .v8-hub-product-media img { width: 100%; height: 90px; object-fit: contain; transition: transform .22s; }
.v8-solution-hub .is-featured .v8-hub-product-media img { height: 245px; }
.v8-solution-hub .v8-hub-product:hover img { transform: scale(1.04); }
.v8-solution-hub .v8-hub-product-copy h4 { color: #f3f8ff; font-size: 18px; font-weight: 650; line-height: 1.25; margin: 10px 0 6px; }
.v8-solution-hub .v8-hub-type { color: rgba(255,255,255,.5); font-size: 13px; line-height: 1.45; margin: 0 0 5px; }
.v8-solution-hub .v8-hub-parameter { color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.5; margin: 0; }
.v8-solution-hub .v8-hub-link { display: inline-flex; align-items: center; gap: 7px; color: #86c9ff; font-size: 13px; margin-top: 12px; }
.v8-solution-hub .v8-hub-related { position: absolute; right: 0; top: 53px; display: flex; justify-content: flex-end; gap: 6px; align-items: center; margin-top: 0; color: #8dccff; font-size: 13px; text-decoration: none; }
.v8-solution-hub a svg { transition: transform .2s; }
.v8-solution-hub a:hover svg { transform: translateX(3px); }
.v8-solution-hub :is(a,button,[role=tabpanel]):focus-visible { outline: 2px solid #8fceff; outline-offset: 4px; }
@media (max-width:1100px) and (min-width:761px) {
  .v8-solution-hub .v8-hub-main { gap: 16px; grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); }
  .v8-solution-hub .v8-hub-products { padding: 20px 14px; }
  .v8-solution-hub .v8-hub-product { padding: 10px; }
  .v8-solution-hub .v8-hub-scene-copy { padding: 25px; }
}
@media (max-width:760px) {
  .v8-solution-hub { padding: 58px 0; }
  .v8-solution-hub .v8-container { width: calc(100% - 32px); }
  .v8-solution-hub .v8-hub-heading { text-align: left; margin-bottom: 25px; }
  .v8-solution-hub .v8-hub-heading h2 { font-size: 32px; text-wrap: balance; }
  .v8-solution-hub .v8-hub-intro { font-size: 15px; margin-top: 14px; }
  .v8-solution-hub .v8-hub-tabs { display: flex; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #315573 #0b2037; scroll-snap-type: x mandatory; margin-bottom: 20px; }
  .v8-solution-hub .v8-hub-tab { flex: 0 0 auto; min-width: 155px; min-height: 58px; scroll-snap-align: start; font-size: 14px; }
  .v8-solution-hub .v8-hub-main { display: flex; flex-direction: column; gap: 24px; }
  .v8-solution-hub .v8-hub-scene { min-height: 0; }
  .v8-solution-hub .v8-hub-scene-media { position: relative; height: 310px; }
  .v8-solution-hub .v8-hub-scene-media:after { background: linear-gradient(0deg,#07192c,transparent 36%); }
  .v8-solution-hub .v8-hub-scene-copy { padding: 8px 21px 25px; height: auto; }
  .v8-solution-hub .v8-hub-scene h3 { font-size: 29px; }
  .v8-solution-hub .v8-hub-description { font-size: 15px; }
  .v8-solution-hub .v8-hub-tags { gap: 7px; }
  .v8-solution-hub .v8-hub-tags li { padding: 7px 9px; font-size: 12px; }
  .v8-solution-hub .v8-hub-cta { margin-top: 25px; padding: 13px 16px; font-size: 13px; }
  .v8-solution-hub .v8-hub-products { padding: 22px 16px; }
  .v8-solution-hub .v8-hub-product-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; min-height: 0; padding: 5px 0 14px; scrollbar-width: thin; scrollbar-color: #315573 #0b2037; }
  .v8-solution-hub .v8-hub-product { flex: 0 0 82%; min-height: 350px; padding: 20px; scroll-snap-align: start; }
  .v8-solution-hub .v8-hub-product-media img,.v8-solution-hub .is-featured .v8-hub-product-media img { height: 190px; }
  .v8-solution-hub .v8-hub-product-copy h4 { font-size: 19px; }
  .v8-solution-hub .v8-hub-related { justify-content: flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .v8-solution-hub * { transition: none !important; scroll-behavior: auto !important; }
}
/* Give the primary product more visual weight without altering source assets. */
@media (min-width:761px) {
  .v8-solution-hub .is-featured .v8-hub-product-media { overflow: hidden; }
  .v8-solution-hub .is-featured .v8-hub-product-media img { transform: scale(1.45); }
  .v8-solution-hub .is-featured:hover .v8-hub-product-media img { transform: scale(1.5); }
}

/* Optical refinements; decorative layers never affect section structure. */
.v8-solution-hub::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; opacity: .32; background-image: linear-gradient(rgba(103,175,240,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(103,175,240,.06) 1px,transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(transparent,#000 30%,#000 70%,transparent); }
.v8-solution-hub .v8-hub-tab:hover { background: rgba(255,255,255,.05); }
.v8-solution-hub .v8-hub-tab[aria-selected=true]:hover { background: linear-gradient(90deg,rgba(20,110,255,.26),rgba(20,110,255,.1)); }
.v8-solution-hub .is-featured .v8-hub-product-copy h4 { font-size: 21px; }
@media (min-width:1101px) {
  .v8-solution-hub .v8-hub-main { height: 560px; }
  .v8-solution-hub .v8-hub-scene { min-height: 0; }
  .v8-solution-hub .v8-hub-product { padding: 14px; }
  .v8-solution-hub .is-featured { padding: 20px; }
  .v8-solution-hub .v8-hub-products>header { padding-right: 105px; }
}
@media (max-width:1100px) and (min-width:761px) {
  .v8-solution-hub .v8-hub-heading h2 { font-size: 48px; }
  .v8-solution-hub .v8-hub-main { grid-template-columns: minmax(0,64fr) minmax(0,36fr); }
  .v8-solution-hub .v8-hub-products { padding: 18px 0 0; }
  .v8-solution-hub .v8-hub-products h3 { font-size: 26px; margin-bottom: 48px; }
  .v8-solution-hub .v8-hub-related { top: 84px; left: 0; right: auto; }
  .v8-solution-hub .v8-hub-product-list { gap: 8px; grid-template-columns: minmax(0,55fr) minmax(0,45fr); }
  .v8-solution-hub .v8-hub-product-copy h4 { font-size: 17px; }
  .v8-solution-hub .is-featured .v8-hub-product-copy h4 { font-size: 19px; }
  .v8-solution-hub .v8-hub-scene h3 { font-size: 36px; }
}
@media (max-width:760px) {
  .v8-solution-hub .v8-hub-heading { margin-bottom: 36px; }
  .v8-solution-hub .v8-hub-heading h2 { font-size: 34px; line-height: 1.2; }
  .v8-solution-hub .v8-hub-products { padding: 22px 16px; }
  .v8-solution-hub .v8-hub-products h3 { font-size: 28px; }
  .v8-solution-hub .v8-hub-related { position: static; margin-top: 18px; }
  .v8-solution-hub .v8-hub-main { height: auto; }
  .v8-solution-hub .v8-hub-scene-copy { padding: 8px 22px 28px; }
  .v8-solution-hub .v8-hub-scene h3 { font-size: 32px; }
  .v8-solution-hub .v8-hub-scene-copy .v8-hub-eyebrow { font-size: 11px; }
  .v8-solution-hub .v8-hub-tags li { font-size: 12px; min-height: 36px; padding: 7px 9px; }
  .v8-solution-hub .v8-hub-cta { min-height: 50px; border-radius: 11px; }
  .v8-solution-hub .v8-hub-product-media { min-height: 210px; }
  .v8-solution-hub .v8-hub-product-list { min-height: 0; }
}
/* Longer English labels retain a separate optical lane for the existing CTA. */
@media (min-width:1101px) {
  :lang(en) .v8-solution-hub .v8-hub-products>header { padding-right: 165px; }
  :lang(en) .v8-solution-hub .v8-hub-products h3 { font-size: 25px; white-space: normal; }
}
