/* =========================================================
   v105 — proportional responsive integrity pass
   Loaded AFTER every page-specific style block.
   Goal: narrow windows scale the approved desktop composition
   without unexpected stacking, clipping or element swapping.
   ========================================================= */

html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%}

/* Grid/flex children are allowed to shrink instead of pushing the page wider. */
.academy-grid>*,.academy-copy,.education-apply-actions>*,
.two-col>*,.win-core>*,.statement>*,.recognition-card>*,
.portal-grid>*,.feature-grid>*,.product-grid>*,.review-grid>*,
.leader-grid>*,.history-grid>*,.about-list>*,.recognition-gallery>*,
.programs-hub-page .hub-grid>*,.games-page .games-overview-grid>*,
.leaders-heading-row>*,.contact-panel>*{min-width:0!important}

@media(max-width:1240px){
  /* Academy / Education: preserve image-left + copy-right composition. */
  .academy-section .container{overflow:visible!important}
  .academy-grid{
    display:grid!important;
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;
    gap:clamp(8px,2.4vw,38px)!important;
    align-items:center!important;
  }
  .academy-logo-card{
    width:100%!important;
    padding:clamp(6px,1.25vw,18px)!important;
    border-radius:clamp(12px,2.5vw,34px)!important;
  }
  .academy-logo-card img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    border-radius:clamp(9px,1.8vw,23px)!important;
  }
  .academy-copy{width:100%!important;max-width:none!important}
  .academy-copy .kicker{font-size:clamp(6px,.9vw,11px)!important;letter-spacing:.12em!important}
  .academy-copy h2{
    font-size:clamp(20px,5.05vw,64px)!important;
    line-height:.91!important;
    letter-spacing:-.035em!important;
    margin:clamp(5px,1.15vw,14px) 0 clamp(7px,1.55vw,20px)!important;
    max-width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  .academy-copy p{
    font-size:clamp(8px,1.4vw,17px)!important;
    line-height:1.4!important;
    max-width:100%!important;
    margin:0!important;
  }
  .education-apply-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:clamp(5px,1.15vw,14px)!important;
    margin-top:clamp(9px,1.8vw,26px)!important;
    width:100%!important;
    max-width:none!important;
  }
  .education-apply-actions .btn-3d{
    width:100%!important;
    min-width:0!important;
    min-height:clamp(36px,5.1vw,64px)!important;
    height:auto!important;
    padding:clamp(5px,1vw,10px) clamp(5px,1.15vw,14px)!important;
    font-size:clamp(5.7px,.88vw,10.5px)!important;
    line-height:1.22!important;
    border-radius:clamp(9px,1.45vw,18px)!important;
    white-space:normal!important;
    text-align:center!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  /* Keep the program hub in the same 4-column architecture. */
  .programs-hub-page .hub-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:clamp(6px,1.2vw,14px)!important;
  }
  .programs-hub-page .hub-wrap{padding:clamp(10px,1.8vw,20px)!important}
  .programs-hub-page .hub-card{min-height:0!important;padding:clamp(8px,1.6vw,18px)!important}
  .programs-hub-page .hub-card h2,.programs-hub-page .hub-card h3{font-size:clamp(10px,2.2vw,26px)!important;line-height:1.02!important}
  .programs-hub-page .hub-card p{font-size:clamp(6px,.95vw,12px)!important;line-height:1.38!important}
  .programs-hub-page .hub-footer{flex-direction:row!important;align-items:center!important}

  /* Games overview always keeps its 3-column card geometry. */
  .games-page .portal-grid.games-overview-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:clamp(7px,1.35vw,18px)!important;
  }
  .games-page .portal-card.games-card{
    min-height:0!important;
    padding:clamp(9px,1.65vw,18px)!important;
  }
  .games-page .portal-card.games-card h3{font-size:clamp(12px,2.25vw,25px)!important;line-height:1.03!important}
  .games-page .portal-card.games-card p{font-size:clamp(6.5px,1vw,12px)!important;line-height:1.37!important}

  /* Leaders heading stays a two-part row instead of jumping to a new layout. */
  .leaders-heading-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:clamp(8px,2.2vw,32px)!important;
    align-items:center!important;
  }
  .leaders-heading-action{justify-self:end!important}
}

@media(max-width:720px){
  /* Explicitly neutralise the old education breakpoint that stacked actions. */
  .education-apply-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:600px){
  /* Same composition, simply smaller. */
  .academy-grid{
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;
    gap:6px!important;
  }
  .academy-logo-card{padding:5px!important;border-radius:10px!important}
  .academy-logo-card img{border-radius:8px!important}
  .academy-copy .kicker{font-size:5.5px!important}
  .academy-copy h2{
    font-size:clamp(17px,5.2vw,24px)!important;
    line-height:.91!important;
    margin:4px 0 6px!important;
  }
  .academy-copy p{font-size:clamp(6.8px,2vw,9px)!important;line-height:1.35!important}
  .education-apply-actions{gap:4px!important;margin-top:7px!important}
  .education-apply-actions .btn-3d{
    min-height:32px!important;
    padding:4px 5px!important;
    font-size:clamp(5px,1.55vw,6.8px)!important;
    line-height:1.16!important;
    border-radius:8px!important;
  }

  .programs-hub-page .hub-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}
  .programs-hub-page .hub-card{padding:6px!important;border-radius:10px!important}
  .programs-hub-page .hub-card h2,.programs-hub-page .hub-card h3{font-size:clamp(8px,2.7vw,12px)!important}
  .programs-hub-page .hub-card p{font-size:5.6px!important}
  .programs-hub-page .hub-footer{gap:5px!important}

  .games-page .portal-grid.games-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
  .games-page .portal-card.games-card{padding:7px!important;border-radius:10px!important}
  .games-page .portal-card.games-card h3{font-size:clamp(9px,3vw,13px)!important}
  .games-page .portal-card.games-card p{font-size:5.8px!important}

  .leaders-heading-row{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;margin-bottom:18px!important}
  .leaders-heading-action{justify-self:end!important}
}
