/* Final Step 2 ticket composition + Step 5 desktop poster guard. */

/* Never show the mobile wrap poster on desktop. */
.overview-poster-mobile { display:none !important; }

@media (min-width:641px){
  .stage-details .overview-poster-mobile { display:none !important; float:none !important; }
  .stage-details .overview-poster-desktop { display:grid !important; }

  /* Use more of the desktop stage without changing the approved ticket structure. */
  .stage.stage-ticket{
    padding-top:calc(var(--stage-top) + 38px) !important;
    align-content:start !important;
  }
  .stage.stage-ticket .ticket-heading{
    margin:0 0 22px !important;
    padding:0 20px !important;
  }
  .stage.stage-ticket .ticket-heading h2{
    font-size:clamp(62px,5.35vw,92px) !important;
    line-height:.84 !important;
  }
  .stage.stage-ticket .ticket-purpose{
    width:min(1120px,90vw) !important;
    margin:0 auto 32px !important;
    padding:0 20px !important;
  }
  .stage.stage-ticket .ticket-purpose span{
    font-size:clamp(19px,1.5vw,24px) !important;
    line-height:1.42 !important;
  }

  /* Keep the poster at the approved size; enlarge the rest of the composition. */
  .stage.stage-ticket .ticket-presentation{
    width:min(1460px,95vw) !important;
    height:auto !important;
    grid-template-columns:minmax(210px,235px) minmax(0,1120px) !important;
    gap:clamp(34px,3vw,52px) !important;
    margin:0 auto !important;
    padding:0 20px 24px !important;
    align-items:center !important;
  }
  .stage.stage-ticket .ticket-poster{
    width:100% !important;
    max-width:235px !important;
    justify-self:end !important;
    padding:5px !important;
  }
  .stage.stage-ticket .ticket-poster .poster-swap,
  .stage.stage-ticket .ticket-poster img{
    width:100% !important;
    height:auto !important;
    max-height:335px !important;
    object-fit:contain !important;
  }
  .stage.stage-ticket .ticket{
    width:100% !important;
  }

  /* Preserve the approved ticket spacing while scaling its contents with the ticket. */
  .stage.stage-ticket .ticket-main{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    padding:24px 36px 25px !important;
  }
  .stage.stage-ticket .ticket-presenter{
    margin:0 0 5px !important;
    font-size:clamp(10px,.75vw,13px) !important;
  }
  .stage.stage-ticket .ticket-main h3{
    margin:0 !important;
    font-size:clamp(60px,4.75vw,84px) !important;
    line-height:.78 !important;
  }
  .stage.stage-ticket .ticket-subtitle{
    margin:10px 0 13px !important;
    font-size:clamp(12px,.92vw,16px) !important;
  }
  .stage.stage-ticket .ticket dl{margin:0 !important;}
  .stage.stage-ticket .ticket dt{font-size:clamp(8px,.58vw,10px) !important;}
  .stage.stage-ticket .ticket dd{
    font-size:clamp(12px,.88vw,15px) !important;
    line-height:1.18 !important;
  }
  .stage.stage-ticket .ticket-rsvp-notice{
    margin-top:10px !important;
    font-size:clamp(9px,.69vw,12px) !important;
  }
}

@media (max-width:640px){
  /* Keep the approved mobile layout unchanged. */
  .stage-details .overview-poster-desktop{display:none !important;}
  .stage-details .overview-poster-mobile{display:block !important;}

  .stage.stage-ticket{padding-top:calc(var(--stage-top) + 4px) !important;}
  .stage.stage-ticket .ticket-poster{max-width:150px !important;margin:0 auto 8px !important;}
  .stage.stage-ticket .ticket-poster .poster-swap,
  .stage.stage-ticket .ticket-poster img{max-height:184px !important;}
  .stage.stage-ticket .ticket-heading{margin:0 0 11px !important;}
  .stage.stage-ticket .ticket-purpose{margin:0 auto 0 !important;}
  .stage.stage-ticket .ticket{margin:26px auto 0 !important;}
  .stage.stage-ticket .ticket-main{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    padding:9px 10px 8px !important;
  }
  .stage.stage-ticket .ticket-presenter{margin-bottom:2px !important;}
  .stage.stage-ticket .ticket-main h3{margin:0 !important;}
  .stage.stage-ticket .ticket-subtitle{margin:3px 0 5px !important;}
  .stage.stage-ticket .ticket dl{margin:0 !important;}
}

@media (max-width:640px) and (max-height:740px){
  .stage.stage-ticket .ticket-poster{max-width:132px !important;}
  .stage.stage-ticket .ticket-poster .poster-swap,
  .stage.stage-ticket .ticket-poster img{max-height:160px !important;}
  .stage.stage-ticket .ticket{margin-top:18px !important;}
}

/* Final desktop-only Step 5 overview scale-up.
   Keep the same single-poster layout and only enlarge the poster + copy block. */
@media (min-width: 900px){
  .stage.stage-details .info-shell{
    width:min(1320px,92vw) !important;
  }
  .stage.stage-details .overview-panel{
    grid-template-columns:minmax(310px,34%) minmax(0,1fr) !important;
    gap:clamp(34px,3.6vw,56px) !important;
    align-items:center !important;
    padding:30px 34px !important;
  }
  .stage.stage-details .overview-poster-frame{
    width:100% !important;
    max-width:360px !important;
    margin:0 !important;
    justify-self:center !important;
    float:none !important;
  }
  .stage.stage-details .overview-poster{
    width:100% !important;
    max-height:64vh !important;
    object-fit:contain !important;
  }
  .stage.stage-details .overview-panel > div:last-child,
  .stage.stage-details .overview-copy-wrap{
    max-width:none !important;
    width:100% !important;
  }
  .stage.stage-details .overview-panel h3{
    font-size:clamp(58px,5.7vw,88px) !important;
    line-height:.84 !important;
    margin:0 0 10px !important;
  }
  .stage.stage-details .overview-panel .nitti-subtitle{
    font-size:clamp(13px,1.08vw,17px) !important;
    line-height:1.2 !important;
    margin:0 0 12px !important;
  }
  .stage.stage-details .overview-panel p:not(.nitti-subtitle){
    font-size:clamp(17px,1.28vw,21px) !important;
    line-height:1.42 !important;
    margin:0 0 12px !important;
  }
}
