/* Website 2026 — responsive/mobile consistency pass (v5_820)
   Conservative cross-site normalization for tablet/mobile behavior.
   Preserves bespoke desktop art direction and page-specific component logic. */

/* Keep media and long inline content inside the viewport everywhere. */
img,svg,video,canvas{max-width:100%;}
pre,code{overflow-wrap:anywhere;}

/* Tablet: allow action rows and shared multi-column component families to wrap cleanly. */
@media (max-width: 980px){
  :where(.actions,.hero-actions,.bank-hero-actions,.ppf-hero-actions,.cta-actions,.final-cta-actions,.button-row){
    flex-wrap:wrap !important;
  }

  :where(
    .dm-implementation-band,
    .lb-implementation-band,
    .solution-implementation-band
  ){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  :where(
    .related-finance-grid,
    .platform-capability-card-grid,
    .solutions-portfolio-grid
  ){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  :where(.company-hero-grid,.careers-hero-grid,.contact-hero-grid,.contact-layout){
    grid-template-columns:1fr !important;
  }

  :where(.company-hero-image,.careers-hero-image){
    width:100%;
  }
}

/* Mobile: common spacing, wrapping, grids, and CTA behavior. */
@media (max-width: 760px){
  html,body{max-width:100%;overflow-x:hidden;}

  :where(h1,h2,h3,.iz-typo-h2-32){
    overflow-wrap:break-word;
    word-break:normal;
  }

  /* Desktop-specific no-wrap rules should never force horizontal overflow on phones. */
  :where(.lead,.hero-copy p,.section-head p,.ppf-section-head h2,.platform-heading p){
    white-space:normal !important;
  }

  :where(
    .dm-implementation-band,
    .lb-implementation-band,
    .solution-implementation-band,
    .related-finance-grid,
    .platform-capability-card-grid,
    .solutions-portfolio-grid,
    .bank-benefits-grid,
    .bank-solution-groups-grid,
    .afs-service-grid,
    .afs-capacity-grid,
    .afs-focused-grid,
    .afs-econ-grid,
    .afs-econ-grid-three,
    .cft-proof-band
  ){
    grid-template-columns:1fr !important;
  }

  /* Shared Business Outcomes rows: icon + content, with explainer/tag below content. */
  :where(.dm-benefit-row,.lb-benefit-row,.ap2-outcome-row,.solution-outcome-row){
    grid-template-columns:48px minmax(0,1fr) !important;
    gap:12px 14px !important;
    align-items:start !important;
  }
  :where(.dm-benefit-row p,.lb-benefit-row p,.ap2-outcome-row p,.solution-outcome-row p,
         .dm-benefit-result,.lb-benefit-result,.ap2-outcome-result,.solution-outcome-result){
    grid-column:2 !important;
  }
  :where(.dm-benefit-result,.lb-benefit-result,.ap2-outcome-result,.solution-outcome-result){
    justify-self:start !important;
    width:auto !important;
    max-width:100% !important;
  }

  /* Integration section CTA becomes left-aligned on narrow layouts. */
  .implementation-integrations-cta{
    align-items:flex-start !important;
    text-align:left !important;
  }

  /* Buttons remain touch-friendly without being forced into awkward overflow. */
  :where(.button,.btn,.talk-to-itemize-button){
    max-width:100%;
  }
  :where(.actions,.hero-actions,.bank-hero-actions,.ppf-hero-actions,.cta-actions,.final-cta-actions,.button-row){
    align-items:stretch !important;
    gap:10px !important;
  }
  :where(.actions,.hero-actions,.bank-hero-actions,.ppf-hero-actions,.cta-actions,.final-cta-actions,.button-row) > :where(.button,.btn,a.button,a.btn){
    width:100% !important;
    justify-content:center !important;
    text-align:center !important;
  }

  /* Large content tables/flows should scroll rather than enlarge the page. */
  :where(table,.table-wrap,.comparison-table,.data-table){max-width:100%;}
  :where(.table-wrap,.comparison-table,.data-table){overflow-x:auto;-webkit-overflow-scrolling:touch;}

  /* Footer link grids are easier to scan as one column at phone widths. */
  .admin-footer-nav{grid-template-columns:1fr !important;}
}

/* Small phones: tighten large card/panel padding without altering desktop rhythm. */
@media (max-width: 520px){
  :where(
    .solution-portfolio-card,
    .platform-specialized-card,
    .resource-card,
    .contact-path-card,
    .bank-benefit-card,
    .bank-solution-group-head
  ){
    padding-left:18px !important;
    padding-right:18px !important;
  }

  :where(.contact-form-card){
    padding-left:18px !important;
    padding-right:18px !important;
  }
}

/* Touch devices: never hide useful content behind hover-only behavior. */
@media (hover:none), (pointer:coarse){
  .bank-solution-mini span{
    max-height:none !important;
    opacity:1 !important;
    overflow:visible !important;
    margin-top:7px !important;
  }
  .bank-pressure-card p,
  .bank-impact-card p{
    max-height:none !important;
    opacity:1 !important;
    overflow:visible !important;
    transform:none !important;
    margin-top:8px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto !important;}
}
