/* checkout.css */
.checkout__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.checkout__title{
  font-family:"Playfair Display", serif;
  font-size:40px;
  margin:0;
}

.checkout__sub{
  margin:6px 0 0;
  opacity:.8;
  font-size:14px;
}

.checkout__steps{
  display:flex;
  gap:10px;
  align-items:center;
}

.step{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:18px;
  background: rgba(255,255,255,.18);
}

.step span{
  width:28px;height:28px;
  display:grid;place-items:center;
  border-radius:999px;
  border:1px solid var(--border);
  font-weight:600;
}

.step small{ font-size:12px; opacity:.85; }

.step.active span{
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.35);
}

.step.done span{
  background: rgba(255,255,255,.25);
}

.checkout__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:start;
}

.panel{
  background: rgba(255,255,255,.20);
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 12px 28px rgba(30, 15, 8, .06);
  overflow:hidden;
}

.panel__head{
  padding:16px 16px 12px;
  border-bottom:1px solid var(--border);
  background: rgba(255,255,255,.12);
}

.panel__title{
  margin:0;
  font-size:18px;
}

.panel__hint{
  margin:6px 0 0;
  font-size:12px;
  opacity:.8;
}

.panel--sticky{
  position: sticky;
  top: 86px;
}

.form{
  padding:16px;
}

.form__row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-bottom:10px;
}

.form__group{ margin-bottom:10px; }

.form__label{
  display:block;
  font-size:12px;
  opacity:.85;
  margin-bottom:6px;
}

.form__input{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.18);
  outline: none;
}

.form__input:focus{
  border-color: rgba(255,255,255,.45);
}

.form__actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
}

.form__msg{
  margin:12px 0 0;
  font-size:13px;
  opacity:.9;
}

.summary__list{
  padding:12px 16px 6px;
  display:flex;
  flex-direction:column;
  gap:12px;
  max-height: 360px;
  overflow:auto;
}

.summary__item{
  display:grid;
  grid-template-columns: 62px 1fr auto;
  gap:10px;
  align-items:center;
}

.summary__img{
  width:62px;height:54px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--border);
}

.summary__name{ font-size:14px; font-weight:600; }
.summary__shop{ font-size:12px; opacity:.8; margin-top:2px; }
.summary__qty{ font-size:12px; opacity:.85; margin-top:2px; }
.summary__price{ font-weight:700; }

.summary__totals{
  padding:12px 16px 14px;
  border-top:1px solid var(--border);
  background: rgba(255,255,255,.10);
}

.summary__totals .row{
  display:flex;
  justify-content:space-between;
  margin-top:8px;
  opacity:.9;
}

.summary__totals .total{
  margin-top:12px;
  font-size:18px;
  opacity:1;
  font-weight:700;
}

.summary__note{
  padding:12px 16px 16px;
  font-size:12px;
  opacity:.85;
}


/* LOGIN layout: desktop a 2 columnas, móvil apilado (crear cuenta abajo) */
.login-grid{
  grid-template-columns: 1fr .8fr;
  grid-template-areas: "login register";
}

.login-grid .login-panel{ grid-area: login; }
.login-grid .register-panel{ grid-area: register; }

/* En móvil: crear cuenta siempre abajo */
@media (max-width: 980px){
  .login-grid{
    grid-template-columns: 1fr;
    grid-template-areas:
      "login"
      "register";
  }
}

@media (max-width: 640px){
  .register-panel{
    background: rgba(255,255,255,.14);
  }
}



@media (max-width: 980px){
  .checkout__grid{
    grid-template-columns: 1fr;
  }
  .panel--sticky{
    position: static;
  }
  .summary__list{
    max-height: none;
  }
}

@media (max-width: 640px){
  .checkout__title{ font-size:34px; }
  .form__row{ grid-template-columns: 1fr; }
}
