:root{ --ec-main:var(--color-main, #D10024); --ec-bg:#f6f7fb; --ec-card:#fff; --ec-border:#eef0f6; --ec-text:#161927; --ec-muted:#74798c; --ec-shadow:0 14px 40px rgba(20,25,40,.07); }

.section{ background:linear-gradient(180deg,#f8f9fd 0%,#f3f5fa 100%); padding:38px 0; min-height:70vh; }
form.row{ align-items:flex-start; }

.billing-details{ background:var(--ec-card); border:1px solid var(--ec-border); border-radius:24px; box-shadow:var(--ec-shadow); padding:26px!important; margin-bottom:18px; }
.section-title{ width:100%; margin-bottom:16px; }
.section-title .title,.title{ margin:0!important; font-size:24px; font-weight:900; color:var(--ec-text); text-transform:none; letter-spacing:-.4px; display:flex; align-items:center; gap:10px; }
.section-title .title:before{ content:''; width:10px; height:34px; border-radius:999px; background:var(--ec-main); display:inline-block; box-shadow:0 8px 18px rgba(209,0,36,.22); }

.form-group{ margin-top:10px; margin-bottom:8px; position:relative; }
.input{ width:100%; height:48px; border:1px solid #e7eaf3; border-radius:16px; padding:0 15px; font-size:14px; font-weight:600; color:var(--ec-text); background:#fbfcff; transition:.2s; box-shadow:none; }
.input::placeholder{ color:#9aa1b5; font-weight:500; }
.input:hover{ border-color:#d9deea; background:#fff; }
.input:focus{ border-color:var(--ec-main); background:#fff; outline:none; box-shadow:0 0 0 4px rgba(209,0,36,.10); }

.invalid-feedback{ display:block; position:relative!important; color:var(--ec-main); font-size:12px; font-weight:700; margin-top:5px; }

.select2-container{ width:100%!important; }
.select2-container .select2-selection--single{ height:48px!important; border:1px solid #e7eaf3!important; border-radius:16px!important; background:#fbfcff!important; }
.select2-selection__rendered{ line-height:48px!important; padding-left:15px!important; color:var(--ec-text)!important; font-size:14px!important; font-weight:600!important; }
.select2-selection__arrow{ height:48px!important; right:8px!important; }
.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--single{ border-color:var(--ec-main)!important; box-shadow:0 0 0 4px rgba(209,0,36,.10)!important; }

.input-checkbox{ margin-top:18px; background:#fff; border:1px solid var(--ec-border); border-radius:18px; padding:14px 16px; display:flex; align-items:flex-start; gap:8px; }
.input-checkbox input[type="checkbox"]{ accent-color:var(--ec-main); width:18px; height:18px; margin-top:2px; flex:0 0 auto; }
.input-checkbox label{ margin:0; font-size:14px; color:#4b5163; line-height:1.45; font-weight:600; }
.input-checkbox label span{ display:none; }
.input-checkbox a,label a{ color:var(--ec-main)!important; font-weight:800; text-decoration:none; }
.input-checkbox a:hover,label a:hover{ text-decoration:underline; }

.primary-btn.order-submit,.order-submit{ width:100%; height:52px; border:0; border-radius:18px; background:linear-gradient(135deg,var(--ec-main),#a9001d); color:#fff; font-size:15px; font-weight:900; text-transform:uppercase; letter-spacing:.3px; margin-top:18px; box-shadow:0 12px 26px rgba(209,0,36,.22); transition:.2s; display:flex; align-items:center; justify-content:center; }
.primary-btn.order-submit:hover,.order-submit:hover{ transform:translateY(-1px); box-shadow:0 16px 32px rgba(209,0,36,.28); color:#fff; }
.primary-btn.order-submit:active,.order-submit:active{ transform:scale(.99); }

.order-summary{ margin-top:10px; border:1px solid var(--ec-border); border-radius:20px; overflow:hidden; background:#fbfcff; }
.order-col{ display:flex; justify-content:space-between; gap:12px; padding:13px 15px; font-size:14px; color:#4b5163; border-bottom:1px solid var(--ec-border); }
.order-col:last-child{ border-bottom:0; background:#fff; }
.order-col strong{ color:var(--ec-text); font-weight:900; }
.order-products{ max-height:260px; overflow:auto; }
.order-products .order-col div:first-child{ max-width:70%; line-height:1.35; }
.order-total{ color:var(--ec-main)!important; font-size:24px; font-weight:900!important; }

.billing-details.col-md-5{ position:sticky; top:20px; }
.billing-details > label{ display:block; margin:12px 0 0!important; color:var(--ec-muted); font-size:14px; font-weight:600; text-align:center; }

.modal-content{ border:0; border-radius:22px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.18); }
.modal-header{ border-bottom:1px solid var(--ec-border); padding:18px 22px; }
.modal-title{ font-weight:900; color:var(--ec-text); }
.modal-body{ padding:22px; color:#4b5163; line-height:1.6; }
.modal-footer{ border-top:1px solid var(--ec-border); padding:14px 22px; }
.modal-footer .btn{ border-radius:14px; font-weight:800; padding:10px 18px; }
.close{ outline:none!important; }

@media(max-width:768px){
  .section{ padding:20px 0; }
  .billing-details{ border-radius:20px; padding:18px!important; }
  .section-title .title,.title{ font-size:22px; }
  .input,.select2-container .select2-selection--single{ height:46px!important; border-radius:15px!important; }
  .select2-selection__rendered{ line-height:46px!important; }
  .select2-selection__arrow{ height:46px!important; }
  .billing-details.col-md-5{ position:relative; top:auto; margin-top:16px; }
  .order-col{ font-size:13px; padding:12px; }
  .order-total{ font-size:21px; }
}

.order-card-premium{
  position:sticky;
  top:20px;
}

.pedido-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
  padding-bottom:18px;
  border-bottom:1px solid #eef0f6;
}

.pedido-badge{
  display:inline-flex;
  padding:5px 12px;
  background:#fff1f3;
  color:var(--ec-main);
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  margin-bottom:8px;
}

.pedido-total-topo{
  font-size:24px;
  font-weight:900;
  color:var(--ec-main);
  letter-spacing:-1px;
}

.order-products{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-height:380px;
  overflow:auto;
  padding-right:4px;
}

.pedido-item{
  display:flex;
  align-items:center;
  gap:14px;
  background:#fbfcff;
  border:1px solid #eef0f6;
  border-radius:20px;
  padding:12px;
  transition:.2s;
}

.pedido-item:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 25px rgba(20,25,40,.06);
  background:#fff;
}

.pedido-item-img{
  width:78px;
  height:78px;
  min-width:78px;
  border-radius:18px;
  background:#fff;
  border:1px solid #eef0f6;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.pedido-item-img img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.pedido-item-info{
  flex:1;
  min-width:0;
}

.pedido-item-info h5{
  margin:0;
  font-size:15px;
  font-weight:800;
  color:#161927;
  line-height:1.3;
}

.pedido-item-info small{
  display:block;
  color:#7b8195;
  margin-top:3px;
  font-size:12px;
  font-weight:600;
}

.pedido-qtd{
  margin-top:8px;
  display:inline-flex;
  padding:4px 10px;
  background:#f3f5fa;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  color:#5d6477;
}

.pedido-item-price{
  font-size:15px;
  font-weight:900;
  color:var(--ec-main);
  text-align:right;
  line-height:1.3;
}

.pedido-resumo{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid #eef0f6;
}

.pedido-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  font-size:14px;
  color:#5f6679;
  font-weight:700;
}

.pedido-line strong{
  color:#161927;
  font-size:15px;
  font-weight:900;
}

.pedido-line.total{
  margin-top:5px;
  padding-top:16px;
  border-top:1px dashed #dfe3ec;
}

.pedido-line.total span{
  font-size:16px;
  font-weight:900;
  color:#161927;
}

.pedido-line.total strong{
  font-size:26px;
  color:var(--ec-main);
  letter-spacing:-1px;
}

.login-link{
  text-align:center;
  margin-top:16px;
  font-size:14px;
  font-weight:600;
  color:#6b7280;
}

.login-link a{
  color:var(--ec-main);
  font-weight:800;
  text-decoration:none;
}

.login-link a:hover{
  text-decoration:underline;
}

@media(max-width:768px){

  .order-card-premium{
    position:relative;
    top:auto;
  }

  .pedido-header{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .pedido-total-topo{
    font-size:28px;
  }

  .pedido-item{
    padding:10px;
    border-radius:18px;
  }

  .pedido-item-img{
    width:65px;
    height:65px;
    min-width:65px;
    border-radius:15px;
  }

  .pedido-item-info h5{
    font-size:14px;
  }

  .pedido-line.total strong{
    font-size:23px;
  }
}