/* v121 site-wide mobile layout overhaul */
@media (max-width: 980px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  body{min-width:0!important}
  body *,body *::before,body *::after{box-sizing:border-box}
  body img{max-width:100%;height:auto}

  /* Shared content width */
  html body .container.container,
  html body .siteFooter.v28Footer .container,
  html body .widePhoto .content,
  html body .nav .v119NavInner,
  html body .nav .navin,
  html body .pageHero .container,
  html body .strategyHero .container,
  html body .opHero .container,
  html body .platformHero .container,
  html body .hero .container,
  html body .aiecHeroVisual .container{
    width:calc(100% - 36px)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important
  }

  /* Primary navigation */
  html body .nav.v119Nav{height:72px!important}
  html body .nav.v119Nav .v119NavInner{height:72px!important;min-height:72px!important}
  html body .nav.v119Nav .v119DesktopNav{display:none!important}
  html body .nav.v119Nav .v119MobileToggle{display:flex!important}
  html body .nav.v119Nav .v119MobilePanel{top:72px!important;max-width:100vw!important}
  html body .v119MobileInner{width:calc(100% - 32px)!important;max-width:none!important}

  /* All hero families */
  html body header.hero,
  html body section.hero,
  html body header.strategyHero,
  html body header.pageHero,
  html body header.opHero,
  html body header.platformHero,
  html body section.aiecHeroVisual{
    height:auto!important;min-height:500px!important;padding:116px 0 54px!important;display:flex!important;align-items:flex-end!important;background-position:center center!important;overflow:hidden!important
  }
  html body header.hero.homeHero{min-height:560px!important;padding:118px 0 58px!important}
  html body header.hero.homeHero>.container{transform:none!important;padding:0!important}
  html body header.hero .heroPanel{max-width:none!important;width:100%!important}
  html body .heroImageLayer,
  html body .homeHeroImage,
  html body .opHeroImage,
  html body .platformHeroImage,
  html body .aiecHeroImage,
  html body .researchHeroImage,
  html body .newsHeroImage{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important
  }
  html body header.hero h1,
  html body section.hero h1,
  html body header.strategyHero h1,
  html body header.pageHero h1,
  html body header.opHero h1,
  html body header.platformHero h1,
  html body section.aiecHeroVisual h1{
    font-size:clamp(40px,10.8vw,50px)!important;line-height:1.03!important;letter-spacing:-1.2px!important;max-width:none!important;margin-top:10px!important;margin-bottom:18px!important
  }
  html body header.hero p,
  html body section.hero p,
  html body header.strategyHero p,
  html body header.pageHero p,
  html body header.opHero p,
  html body header.platformHero p,
  html body section.aiecHeroVisual p{
    font-size:17px!important;line-height:1.58!important;max-width:none!important;margin-bottom:0!important
  }
  html body .eyebrow,html body .breadcrumb,html body .kicker{font-size:10.5px!important;letter-spacing:.16em!important}
  html body .btns,html body .ctaRow{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:24px!important}
  html body .btn{min-height:46px!important;padding:13px 18px!important}

  /* Home metrics and visual bands */
  html body .metrics.metrics{position:relative!important;left:auto!important;bottom:auto!important;transform:none!important;width:calc(100% - 36px)!important;margin:24px auto 0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;border-radius:16px!important}
  html body .metric.metric{min-height:104px!important;padding:20px!important}
  html body .widePhoto.widePhoto{min-height:0!important;padding:72px 0!important;display:block!important}
  html body .widePhoto h2{font-size:40px!important;line-height:1.06!important;letter-spacing:-1px!important}
  html body .widePhoto p{font-size:16px!important}
  html body .photoBand.photoBand{min-height:0!important;padding:72px 0!important;background-position:center center!important}
  html body .footerHero.footerHero{min-height:0!important;padding:72px 0!important;display:block!important;background-position:center center!important}
  html body .footerHero h2{font-size:38px!important;line-height:1.08!important;letter-spacing:-.8px!important;max-width:none!important;margin-bottom:18px!important}
  html body .footerHero p{max-width:none!important;font-size:16px!important;line-height:1.6!important}

  /* Shared section spacing and headings */
  html body .section.section,
  html body .pageSection.pageSection,
  html body .opSection.opSection,
  html body .platformSection.platformSection,
  html body .strategyBand.strategyBand,
  html body .archBand.archBand,
  html body .slnBand.slnBand{
    padding:68px 0!important
  }
  html body .section.first{padding-top:68px!important}
  html body .head.head,
  html body .sectionIntro.sectionIntro,
  html body .opHead.opHead,
  html body .platformHead.platformHead,
  html body .archHeader.archHeader,
  html body .slnIntro.slnIntro{
    display:block!important;grid-template-columns:1fr!important;margin-bottom:28px!important;gap:0!important
  }
  html body .head>p,
  html body .sectionIntro>p,
  html body .opHead>p,
  html body .platformHead>p,
  html body .archHeader>p,
  html body .slnIntro>p{
    max-width:none!important;margin-top:14px!important
  }
  html body .head h2,
  html body .sectionIntro h2,
  html body .opHead h2,
  html body .platformHead h2,
  html body .archHeader h2,
  html body .slnIntro h2{
    font-size:36px!important;line-height:1.08!important;letter-spacing:-.8px!important;max-width:none!important
  }

  /* Force all major split layouts to stack */
  html body .whygrid.whygrid,
  html body .bridge.bridge,
  html body .platform.platform,
  html body .tokenGrid.tokenGrid,
  html body .coe.coe,
  html body .corridorDetail.corridorDetail,
  html body .corridorDetail.reverse,
  html body .heritageBand.heritageBand,
  html body .platformPositioning.platformPositioning,
  html body .contactPanel.contactPanel,
  html body .formGridRight.formGridRight,
  html body .themeGrid.themeGrid,
  html body .modelGrid.modelGrid,
  html body .returnGrid.returnGrid,
  html body .returnPrinciple.returnPrinciple,
  html body .slnIntro.slnIntro,
  html body .archModel.archModel,
  html body .archHeader.archHeader,
  html body .platformModelGrid.platformModelGrid,
  html body .sleeveRow.sleeveRow{
    display:grid!important;grid-template-columns:1fr!important;gap:22px!important;align-items:stretch!important
  }

  /* Multi-card grids: 2 columns on tablets */
  html body .sleeves.sleeves,
  html body .corridors.corridors,
  html body .v118Corridors.v118Corridors,
  html body .opps.opps,
  html body .reports.reports,
  html body .logos.logos,
  html body .corridorMatrix.corridorMatrix,
  html body .detailList.detailList,
  html body .bullets.bullets,
  html body .platformSnapshot.platformSnapshot,
  html body .gpGrid.gpGrid,
  html body .corridorGrid.corridorGrid,
  html body .regionExpansionGrid.regionExpansionGrid,
  html body .pillarGrid.pillarGrid,
  html body .ringFencedGrid.ringFencedGrid,
  html body .returnEngineGrid.returnEngineGrid,
  html body .riskGrid.riskGrid,
  html body .opGrid.opGrid,
  html body .connectivityGrid.connectivityGrid,
  html body .enableThemeGrid.enableThemeGrid,
  html body .stageGrid.stageGrid,
  html body .platformGrid.platformGrid,
  html body .stackFlow.stackFlow,
  html body .opsGrid.opsGrid,
  html body .slnGrid.slnGrid,
  html body .cardGrid.cardGrid,
  html body .cardgrid.cardgrid,
  html body .grid3.grid3,
  html body .grid4.grid4,
  html body .steps.steps,
  html body .executionGrid.executionGrid,
  html body .leadershipGrid.leadershipGrid,
  html body .profileGrid.profileGrid,
  html body .opStats.opStats,
  html body .archConnector.archConnector,
  html body .platformModelOutcome.platformModelOutcome{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important
  }

  /* Card sizing */
  html body .photoPanel.photoPanel{min-height:360px!important}
  html body .corridorPhoto.corridorPhoto{min-height:340px!important}
  html body .coe .portrait{height:390px!important;min-height:0!important}
  html body .sleeve.sleeve{height:330px!important;min-height:0!important}
  html body .opCard.opCard{min-height:330px!important}
  html body .report.report{min-height:250px!important}
  html body .platformCard.platformCard,
  html body .card.card,
  html body .darkCard.darkCard,
  html body .infocard.infocard,
  html body .opsItem.opsItem,
  html body .stage.stage,
  html body .risk.risk,
  html body .pillar.pillar,
  html body .stackNode.stackNode{min-height:0!important}
  html body .detailCard.detailCard,
  html body .modelPanel.modelPanel,
  html body .themePanel.themePanel,
  html body .returnPanel.returnPanel,
  html body .platformPositioning.platformPositioning,
  html body .archThesis.archThesis{padding:26px!important;border-radius:22px!important}
  html body .detailCard h3,html body .modelPanel h3,html body .returnPanel h3{font-size:28px!important}
  html body .allocation.allocation{text-align:left!important;font-size:34px!important}
  html body .sleeveImg.sleeveImg{height:220px!important}

  /* Platform architecture internals */
  html body .archLayer.archLayer{grid-template-columns:64px minmax(0,1fr)!important;gap:16px!important;padding:20px!important;min-height:0!important}
  html body .archRole.archRole{grid-column:2!important}
  html body .archBadge.archBadge{width:64px!important;height:64px!important;min-width:64px!important}
  html body .archConnector.archConnector{grid-template-columns:1fr!important}

  /* CTA/footer bands that were desktop flex layouts */
  html body .ctaBand .container,
  html body .platformCta .container,
  html body .strategyCTA .container,
  html body .cta .container{
    display:block!important
  }
  html body .ctaBand.ctaBand,
  html body .platformCta.platformCta,
  html body .strategyCTA.strategyCTA,
  html body .cta.cta{
    padding:70px 0!important
  }
  html body .ctaBand h2,
  html body .platformCta h2,
  html body .strategyCTA h2,
  html body .cta h2{
    font-size:38px!important;line-height:1.08!important;letter-spacing:-.8px!important;max-width:none!important
  }
  html body .ctaBand p,
  html body .platformCta p,
  html body .strategyCTA p,
  html body .cta p{max-width:none!important;font-size:16px!important}

  /* Research / investor rows and tables */
  html body .indexRow.indexRow{grid-template-columns:1fr!important;gap:8px!important;padding:20px!important}
  html body .indexTable.indexTable{overflow:hidden!important}
  html body table{display:block!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}

  /* Forms and modals */
  html body input,html body textarea,html body select,html body button{max-width:100%!important}
  html body .modalCard.modalCard{width:calc(100% - 28px)!important;max-width:none!important;max-height:calc(100vh - 28px)!important;overflow:auto!important}

  /* Footer: override older high-specificity desktop !important rules */
  html body .siteFooter.v28Footer{padding:48px 0 26px!important}
  html body .siteFooter.v28Footer .footerTop{
    display:block!important;grid-template-columns:1fr!important;gap:0!important;width:calc(100% - 36px)!important
  }
  html body .siteFooter.v28Footer .footerBrand{max-width:none!important;width:100%!important;margin-bottom:30px!important}
  html body .siteFooter.v28Footer .footerCols{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:26px 22px!important;width:100%!important
  }
  html body .siteFooter.v28Footer .footerBottom{
    width:calc(100% - 36px)!important;margin-top:30px!important;padding-top:18px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:8px!important;line-height:1.5!important
  }
  html body .siteFooter.v28Footer .footerMeta.emailLine{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  html body .siteFooter.v28Footer .footerBrand p{max-width:none!important}
}

@media (max-width: 700px){
  html body .container.container,
  html body .siteFooter.v28Footer .container,
  html body .widePhoto .content,
  html body .nav .v119NavInner,
  html body .nav .navin,
  html body .pageHero .container,
  html body .strategyHero .container,
  html body .opHero .container,
  html body .platformHero .container,
  html body .hero .container,
  html body .aiecHeroVisual .container{
    width:calc(100% - 28px)!important
  }
  html body header.hero,
  html body section.hero,
  html body header.strategyHero,
  html body header.pageHero,
  html body header.opHero,
  html body header.platformHero,
  html body section.aiecHeroVisual{
    min-height:470px!important;padding:104px 0 44px!important
  }
  html body header.hero.homeHero{min-height:520px!important;padding:108px 0 48px!important}
  html body header.hero h1,
  html body section.hero h1,
  html body header.strategyHero h1,
  html body header.pageHero h1,
  html body header.opHero h1,
  html body header.platformHero h1,
  html body section.aiecHeroVisual h1{font-size:clamp(36px,10.5vw,44px)!important}

  html body .section.section,
  html body .pageSection.pageSection,
  html body .opSection.opSection,
  html body .platformSection.platformSection,
  html body .strategyBand.strategyBand,
  html body .archBand.archBand,
  html body .slnBand.slnBand{padding:54px 0!important}
  html body .head h2,
  html body .sectionIntro h2,
  html body .opHead h2,
  html body .platformHead h2,
  html body .archHeader h2,
  html body .slnIntro h2{font-size:32px!important}

  /* One column on phones */
  html body .sleeves.sleeves,
  html body .corridors.corridors,
  html body .v118Corridors.v118Corridors,
  html body .opps.opps,
  html body .reports.reports,
  html body .logos.logos,
  html body .corridorMatrix.corridorMatrix,
  html body .detailList.detailList,
  html body .bullets.bullets,
  html body .platformSnapshot.platformSnapshot,
  html body .gpGrid.gpGrid,
  html body .corridorGrid.corridorGrid,
  html body .regionExpansionGrid.regionExpansionGrid,
  html body .pillarGrid.pillarGrid,
  html body .ringFencedGrid.ringFencedGrid,
  html body .returnEngineGrid.returnEngineGrid,
  html body .riskGrid.riskGrid,
  html body .opGrid.opGrid,
  html body .connectivityGrid.connectivityGrid,
  html body .enableThemeGrid.enableThemeGrid,
  html body .themeGrid.themeGrid,
  html body .stageGrid.stageGrid,
  html body .platformGrid.platformGrid,
  html body .stackFlow.stackFlow,
  html body .opsGrid.opsGrid,
  html body .slnGrid.slnGrid,
  html body .cardGrid.cardGrid,
  html body .cardgrid.cardgrid,
  html body .grid3.grid3,
  html body .grid4.grid4,
  html body .pillgrid.pillgrid,
  html body .steps.steps,
  html body .executionGrid.executionGrid,
  html body .leadershipGrid.leadershipGrid,
  html body .profileGrid.profileGrid,
  html body .opStats.opStats,
  html body .archConnector.archConnector,
  html body .platformModelOutcome.platformModelOutcome{
    grid-template-columns:1fr!important;gap:14px!important
  }
  html body .metrics.metrics{width:calc(100% - 28px)!important;grid-template-columns:1fr!important}
  html body .metric.metric{border-right:0!important;border-bottom:1px solid #e5edf6!important;min-height:0!important}
  html body .metric.metric:last-child{border-bottom:0!important}
  html body .widePhoto.widePhoto,html body .photoBand.photoBand,html body .footerHero.footerHero{padding:56px 0!important}
  html body .widePhoto h2,html body .footerHero h2{font-size:34px!important}
  html body .photoPanel.photoPanel{min-height:300px!important}
  html body .corridorPhoto.corridorPhoto{min-height:290px!important}
  html body .coe .portrait{height:320px!important}
  html body .sleeve.sleeve{height:300px!important}
  html body .opCard.opCard{min-height:300px!important}
  html body .gpTop.gpTop{height:250px!important}
  html body .platformMetric.platformMetric,
  html body .gpBody.gpBody,
  html body .heritageStory.heritageStory,
  html body .panel.panel,
  html body .infocard.infocard,
  html body .platformCard.platformCard,
  html body .card.card,
  html body .darkCard.darkCard{padding:22px!important}
  html body .siteFooter.v28Footer .footerTop,html body .siteFooter.v28Footer .footerBottom{width:calc(100% - 28px)!important}
  html body .siteFooter.v28Footer .footerCols{grid-template-columns:1fr 1fr!important;gap:24px 18px!important}
}

@media (max-width: 480px){
  html body .v119Brand span{display:none!important}
  html body .v119Brand{min-width:0!important}
  html body .btns,html body .ctaRow{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  html body .btn{width:100%!important}
  html body .siteFooter.v28Footer .footerCols{grid-template-columns:1fr!important}
  html body .siteFooter.v28Footer .footerLogoRow b{font-size:20px!important}
  html body .footerLogoRow span{font-size:9.5px!important}
  html body .archLayer.archLayer{grid-template-columns:56px minmax(0,1fr)!important;padding:18px!important}
  html body .archBadge.archBadge{width:56px!important;height:56px!important;min-width:56px!important}
  html body .detailCard.detailCard,
  html body .modelPanel.modelPanel,
  html body .themePanel.themePanel,
  html body .returnPanel.returnPanel,
  html body .platformPositioning.platformPositioning,
  html body .archThesis.archThesis{padding:22px!important}
}

/* Additional v121 coverage for legacy layout families */
@media (max-width:980px){
  html body .aiec-mini-grid.aiec-mini-grid,
  html body .operatingStrip.operatingStrip,
  html body .process.process,
  html body .footerGrid.footerGrid,
  html body .footgrid.footgrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important
  }
  html body .networkPanel.networkPanel,
  html body .platformCoreBanner.platformCoreBanner,
  html body .platformCoreBanner.v118CoreBanner{
    display:grid!important;grid-template-columns:1fr!important;gap:12px!important
  }
  html body .networkPanel.networkPanel{padding:28px!important}
  html body .legal.legal{padding:30px!important;border-radius:22px!important}
  html body .legal h2{font-size:27px!important}
  html body .content.content,html body .cap.cap,html body .heroLead.heroLead{max-width:100%!important}
}
@media (max-width:700px){
  html body .aiec-mini-grid.aiec-mini-grid,
  html body .operatingStrip.operatingStrip,
  html body .process.process,
  html body .footerGrid.footerGrid,
  html body .footgrid.footgrid{
    grid-template-columns:1fr!important
  }
  html body .legal.legal{padding:22px!important}
}

/* v121 high-specificity fixes for legacy hero locks and intrinsic-width overflow */
@media (max-width:980px){
  html body .strategyHero#top,
  html body header.hero#top,
  html body .hero.aiecHeroVisual,
  html body .hero.researchHeroVisual,
  html body .newsHeroVisual.newsHeroVisual,
  html body .teamHeroVisual.teamHeroVisual,
  html body .contactHeroVisual.contactHeroVisual,
  html body .opHeroVisual.opHeroVisual,
  html body .platformHeroVisual.platformHeroVisual{
    height:auto!important;min-height:500px!important;padding-top:116px!important;padding-bottom:54px!important;align-items:flex-end!important
  }
  html body .platformModelIntro.platformModelIntro:after{display:none!important;content:none!important}
  html body .platformModelIntro.platformModelIntro{min-width:0!important;max-width:100%!important;overflow:hidden!important}
  html body .platform.platform>* ,
  html body .platformModelGrid.platformModelGrid>* ,
  html body .whygrid.whygrid>* ,
  html body .bridge.bridge>* ,
  html body .tokenGrid.tokenGrid>* ,
  html body .coe.coe>* ,
  html body .corridorDetail.corridorDetail>* ,
  html body .themeGrid.themeGrid>* ,
  html body .modelGrid.modelGrid>* ,
  html body .returnGrid.returnGrid>* ,
  html body .archModel.archModel>*{
    min-width:0!important;max-width:100%!important
  }
  html body .flow.flow{min-width:0!important;max-width:100%!important}
  html body .heroActions.heroActions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:24px!important}
}
@media (max-width:700px){
  html body .strategyHero#top,
  html body header.hero#top,
  html body .hero.aiecHeroVisual,
  html body .hero.researchHeroVisual,
  html body .newsHeroVisual.newsHeroVisual,
  html body .teamHeroVisual.teamHeroVisual,
  html body .contactHeroVisual.contactHeroVisual,
  html body .opHeroVisual.opHeroVisual,
  html body .platformHeroVisual.platformHeroVisual{
    min-height:470px!important;padding-top:104px!important;padding-bottom:44px!important
  }
  html body .flow.flow{grid-template-columns:1fr!important;gap:12px!important}
  html body .flow .step:after{display:none!important;content:none!important}
  /* Keep the four compact opportunity stats to a 2x2 block so the hero stays phone-sized. */
  html body .opHero .opStats.opStats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1px!important;margin-top:28px!important}
  html body .opHero .opStat.opStat{padding:16px!important}
  html body .opHero .opStat b{font-size:22px!important}
  html body .opHero .opStat span{font-size:10px!important;letter-spacing:.08em!important}
}
@media (max-width:480px){
  html body .heroActions.heroActions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  html body .heroActions .btn{width:100%!important}
}

/* Final v121 phone-width cleanup */
@media (max-width:700px){
  html body .platformModelSection:before,
  html body .platformModelSection:after{display:none!important;content:none!important}
  html body section h2{max-width:100%!important;overflow-wrap:anywhere!important;word-break:normal!important}
  html body .section h2,
  html body .pageSection h2,
  html body .opSection h2,
  html body .platformSection h2{font-size:32px!important;line-height:1.1!important;letter-spacing:-.6px!important}
  html body #platform .container.platform h2{font-size:32px!important;line-height:1.1!important;max-width:100%!important}
  html body #platform .container.platform>div{min-width:0!important;max-width:100%!important;overflow:hidden!important}
}
