:root{
  --page:#f3f5f7;
  --surface:#fbfaf6;
  --navy:#263d78;
  --button-text:#1c6382;
  --muted:#7d8791;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  min-height:100%;
}

body{
  background:var(--page);
  color:#111;
  font-family:Arial,Helvetica,sans-serif;
}

button,input{font:inherit}

.page{
  min-height:100dvh;
  display:flex;
  justify-content:center;
  align-items:flex-start;
}

.portal{
  width:100%;
  max-width:390px;
  min-height:100dvh;
  padding:20px 20px 24px;
  background:var(--surface);
  display:flex;
  flex-direction:column;
}

.brand{
  display:flex;
  justify-content:center;
}

.brand-logo{
  display:block;
  width:100%;
  max-width:310px;
  height:auto;
}

.menu{
  margin-top:24px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

.main-button{
  width:82%;
  min-height:58px;
  margin:0 auto;
  padding:8px 18px;
  border:4px solid var(--navy);
  border-radius:999px;
  background:#fff;
  color:var(--button-text);
  font-size:1.18rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
}

.main-button:not(:disabled):hover{
  background:#f3f7fb;
}

.main-button:focus-visible,
.source-option input:focus-visible + .radio-circle{
  outline:3px solid rgba(38,61,120,.22);
  outline-offset:3px;
}

.main-button.disabled{
  opacity:.58;
  cursor:not-allowed;
}

.prices-launcher{
  width:82%;
  margin:0 auto;
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:12px;
  align-items:center;
}

.source-selector{
  border:0;
  padding:0;
  margin:0;
  min-width:0;
}

.source-selector legend{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.source-option{
  min-height:31px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.94rem;
  font-weight:700;
  cursor:pointer;
  user-select:none;
}

.source-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.radio-circle{
  flex:0 0 auto;
  width:22px;
  height:22px;
  border:3px solid var(--navy);
  border-radius:50%;
  background:#fff;
  display:grid;
  place-items:center;
}

.source-option input:checked + .radio-circle::after{
  content:"";
  width:12px;
  height:12px;
  border-radius:50%;
  background:#102e73;
}

.source-disabled{
  opacity:.55;
  cursor:not-allowed;
}

.prices-button{
  width:100%;
  min-height:58px;
}

.products-art{
  flex:1;
  min-height:205px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-top:18px;
}

.products-art img{
  display:block;
  width:100%;
  max-width:285px;
  height:auto;
  max-height:210px;
  object-fit:contain;
}

/* Escritorio: misma proporción visual, centrada y sin simular un teléfono. */
@media (min-width:600px){
  .page{
    align-items:center;
    padding:28px;
  }

  .portal{
    min-height:auto;
    padding:24px 22px 26px;
    border-radius:24px;
    box-shadow:0 10px 28px rgba(20,39,58,.09);
  }
}
