/* BYTE-CON v1.3.7 · fluid desktop responsive layout across zoom/scaling */

@media(min-width:901px){
  /*
   * La pantalla de escritorio sigue dividida en dos: izquierda fija y registro
   * con scroll propio. A partir de esta versión, tamaños y espacios responden
   * de forma continua a la altura/ancho útil del navegador en vez de saltar
   * entre una versión "normal" y otra "compacta" por un breakpoint de altura.
   */
  body.public-page{
    height:100vh;
    height:100dvh;
    min-height:0;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
  }

  .public-page .public-nav-compact{
    width:100%;
    max-width:1540px;
    padding:clamp(6px,1.15vh,14px) clamp(16px,2.2vw,30px) clamp(5px,.9vh,10px);
  }

  .public-page .landing-compact{
    width:100%;
    max-width:1540px;
    height:100%;
    min-height:0!important;
    padding:clamp(3px,.8vh,10px) clamp(16px,2.2vw,30px) clamp(9px,1.6vh,20px);
    display:grid;
    grid-template-columns:minmax(330px,42%) minmax(430px,1fr);
    gap:clamp(20px,3vw,52px);
    align-items:stretch;
    overflow:hidden!important;
  }

  /* Panel informativo fijo: escala suavemente con ancho Y altura disponible. */
  .public-page .hero-copy-clean{
    position:static!important;
    top:auto!important;
    align-self:stretch;
    min-width:0;
    min-height:0;
    height:100%;
    padding:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
  }

  .public-page .hero-copy-clean .eyebrow{
    margin-bottom:clamp(5px,.9vh,9px);
    font-size:clamp(.64rem,1.35vh,.72rem);
  }

  .public-page .hero-copy-clean h1{
    max-width:100%;
    margin-bottom:clamp(9px,1.7vh,20px);
    font-size:clamp(2.5rem,min(5vw,7.4vh),5rem);
    line-height:1.01;
  }

  .public-page .countdown-compact{
    margin:clamp(8px,1.6vh,16px) 0;
    gap:clamp(7px,.8vw,11px);
  }

  .public-page .countdown-compact>div{
    padding:clamp(7px,1.15vh,11px) clamp(5px,.7vw,10px);
    border-radius:clamp(11px,1.1vw,14px);
  }

  .public-page .countdown-compact strong{
    font-size:clamp(1.15rem,2.35vh,1.45rem);
  }

  .public-page .countdown-compact span{
    font-size:clamp(.58rem,1.25vh,.68rem);
  }

  .public-page .event-facts-compact{
    margin:clamp(8px,1.7vh,16px) 0 0;
    gap:clamp(7px,.8vw,11px);
  }

  .public-page .event-facts-compact>div{
    padding:clamp(8px,1.25vh,12px);
    border-radius:clamp(11px,1vw,15px);
  }

  .public-page .event-facts-compact span{
    font-size:clamp(.62rem,1.2vh,.72rem);
  }

  .public-page .event-facts-compact strong{
    font-size:clamp(.78rem,1.65vh,.92rem);
    line-height:1.35;
  }

  .public-page .entry-price{
    margin:clamp(1px,.45vh,4px) 0 clamp(4px,.8vh,7px);
  }

  .public-page .entry-price strong{
    font-size:clamp(1.55rem,3.2vh,2rem);
  }

  /* Registro: altura natural; scroll solo si realmente excede el viewport. */
  .public-page .purchase-card-compact{
    align-self:center!important;
    width:min(100%,clamp(530px,44vw,620px))!important;
    max-width:620px!important;
    height:auto!important;
    min-height:0!important;
    max-height:100%!important;
    margin-inline:auto;
    padding:clamp(12px,1.8vh,20px) clamp(14px,1.4vw,22px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }

  .public-page .purchase-brand{
    margin:clamp(-8px,-.7vh,-3px) 0 clamp(4px,.8vh,8px);
  }

  .public-page .purchase-brand img{
    width:clamp(66px,9.5vh,92px);
    height:clamp(66px,9.5vh,92px);
    border-radius:clamp(14px,1.2vw,18px);
  }

  .public-page .purchase-card-compact .card-heading{
    margin-bottom:clamp(7px,1.15vh,10px);
  }

  .public-page .purchase-card-compact .card-heading .eyebrow{
    margin-bottom:clamp(3px,.65vh,7px);
    font-size:clamp(.64rem,1.3vh,.72rem);
  }

  .public-page .purchase-card-compact .card-heading h2{
    margin:0;
    font-size:clamp(1.5rem,3.25vh,2rem);
    line-height:1.06;
  }

  .public-page .lookup-box-top{
    margin:0 0 clamp(7px,1.15vh,10px);
    border-radius:clamp(10px,.9vw,12px);
  }

  .public-page .lookup-box-top>summary{
    min-height:0;
    padding:clamp(7px,1.05vh,9px) clamp(9px,.8vw,12px);
    font-size:clamp(.7rem,1.4vh,.77rem);
  }

  .public-page .lookup-box-top .lookup-form{
    padding:0 clamp(8px,.75vw,10px) clamp(8px,1.05vh,10px);
    gap:clamp(6px,.7vw,8px);
  }

  .public-page .lookup-box-top .lookup-form input,
  .public-page .lookup-box-top .lookup-form .btn{
    min-height:clamp(34px,4.4vh,40px);
    padding:clamp(7px,.9vh,9px) clamp(9px,.8vw,12px);
    font-size:clamp(.7rem,1.4vh,.78rem);
  }

  .public-page .compact-form{
    gap:clamp(7px,1.15vh,10px) clamp(8px,.8vw,10px);
  }

  .public-page .compact-form label{
    gap:clamp(3px,.6vh,5px);
    font-size:clamp(.76rem,1.6vh,.88rem);
    line-height:1.3;
  }

  .public-page .compact-form input,
  .public-page .compact-form select{
    min-height:clamp(36px,5vh,42px);
    padding:clamp(7px,.95vh,9px) clamp(9px,.8vw,11px);
    border-radius:clamp(9px,.8vw,12px);
    font-size:clamp(.82rem,1.65vh,.95rem);
  }

  .public-page .shirt-size-field small{
    margin-top:0;
    font-size:clamp(.61rem,1.2vh,.69rem);
    line-height:1.25;
  }

  .public-page .registration-context{
    min-height:clamp(29px,4vh,34px);
    padding:clamp(5px,.8vh,7px) clamp(8px,.8vw,10px);
    border-radius:clamp(9px,.8vw,10px);
  }

  .public-page .registration-context span{
    padding:2px clamp(5px,.5vw,7px);
    font-size:clamp(.57rem,1.1vh,.63rem);
  }

  .public-page .registration-context strong{
    font-size:clamp(.64rem,1.3vh,.71rem);
  }

  .public-page .compact-form>.btn{
    min-height:clamp(36px,4.8vh,42px);
    padding:clamp(8px,1vh,11px) clamp(12px,1vw,16px);
    border-radius:clamp(10px,.8vw,12px);
    font-size:clamp(.82rem,1.65vh,.95rem);
  }
}

/* En anchos de laptop el split se mantiene, pero el formulario recibe más aire útil. */
@media(min-width:901px) and (max-width:1120px){
  .public-page .landing-compact{
    grid-template-columns:minmax(315px,39%) minmax(430px,1fr);
    gap:clamp(16px,2vw,24px);
  }

  .public-page .purchase-card-compact{
    width:min(100%,570px)!important;
  }
}

/* Móvil/tablet: flujo vertical normal, sin paneles fijos ni scroll interno. */
@media(max-width:900px){
  body.public-page{
    height:auto;
    min-height:100vh;
    overflow-x:hidden;
    overflow-y:auto;
    display:block;
  }

  .public-page .landing-compact{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }

  .public-page .hero-copy-clean{
    height:auto;
    overflow:visible;
  }

  .public-page .purchase-card-compact{
    align-self:auto!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin-inline:0;
  }
}
