.cp-checkout-wrap{
  --cp-border:#dbe4f0;
  --cp-border-strong:#c4d3e6;
  --cp-text:#0f172a;
  --cp-muted:#64748b;
  --cp-bg:#f7f9fc;
  --cp-card:#ffffff;
  --cp-primary:#2563eb;
  --cp-primary-dark:#1d4ed8;
  --cp-success:#16a34a;
  --cp-shadow:0 10px 30px rgba(15,23,42,.06);
  color:var(--cp-text);
}

.cp-checkout-wrap .woocommerce-error,
.cp-checkout-wrap .woocommerce-info,
.cp-checkout-wrap .woocommerce-message{
  margin:0 0 18px;
  border-radius:16px;
  border:1px solid var(--cp-border);
  box-shadow:var(--cp-shadow);
}

.cp-shell{
  max-width:1360px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:28px;
  align-items:start;
}

.cp-main{min-width:0;}

.cp-steps{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
  margin-bottom:22px;
}

.cp-step{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  min-height:72px;
  padding:14px 18px;
  border:1px solid var(--cp-border);
  border-radius:22px;
  background:#fff;
  color:var(--cp-text);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cp-step:hover{
  border-color:var(--cp-border-strong);
  box-shadow:0 6px 18px rgba(37,99,235,.06);
  transform:translateY(-1px);
}

.cp-step.is-active{
  border-color:#b9cffc;
  box-shadow:0 10px 24px rgba(37,99,235,.10);
}

.cp-step.is-complete .cp-step__num{
  background:var(--cp-success);
}

.cp-step__num{
  width:40px;
  height:40px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--cp-primary);
  color:#fff;
  font-weight:800;
  font-size:18px;
  flex:0 0 40px;
}

.cp-step__label{
  font-size:16px;
  font-weight:700;
  line-height:1.2;
}

.cp-card-stack{
  display:grid;
  gap:22px;
}

.cp-panel,
.cp-order-card{
  background:var(--cp-card);
  border:1px solid var(--cp-border);
  border-radius:28px;
  box-shadow:var(--cp-shadow);
}

.cp-panel{padding:28px 28px 24px;}
.cp-panel[hidden]{display:none !important;}
.cp-panel__head{margin-bottom:22px;}
.cp-panel__head h2{
  margin:0 0 8px;
  font-size:clamp(28px,2.4vw,40px);
  line-height:1.05;
}
.cp-panel__head p{
  margin:0;
  font-size:16px;
  color:var(--cp-muted);
}
.cp-kicker{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 14px;
  border-radius:999px;
  background:#e8f0ff;
  color:#5274a8;
  font-size:14px;
  font-weight:700;
  margin-bottom:16px;
}

.cp-panel__actions{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:24px;
}
.cp-panel__actions--right{justify-content:flex-end;}

.cp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 22px;
  border-radius:16px;
  border:1px solid transparent;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.cp-btn:hover{transform:translateY(-1px);}
.cp-btn--primary{
  background:var(--cp-primary);
  color:#fff;
  box-shadow:0 12px 24px rgba(37,99,235,.18);
}
.cp-btn--primary:hover{background:var(--cp-primary-dark);}
.cp-btn--ghost{
  background:#fff;
  border-color:var(--cp-border);
  color:var(--cp-text);
}

.cp-checkout-wrap .form-row{
  float:none !important;
  width:100% !important;
  margin:0 0 16px !important;
}

.cp-checkout-wrap .col-sm-6,
.cp-checkout-wrap .form-row-first,
.cp-checkout-wrap .form-row-last{
  width:calc(50% - 8px) !important;
  display:inline-block;
  vertical-align:top;
}
.cp-checkout-wrap .form-row-first,
.cp-checkout-wrap .col-sm-6:nth-of-type(odd){margin-right:12px !important;}

.cp-checkout-wrap .woocommerce-billing-fields h3,
.cp-checkout-wrap .woocommerce-shipping-fields h3,
.cp-checkout-wrap .woocommerce-additional-fields h3,
.cp-checkout-wrap #ship-to-different-address{
  margin:0 0 16px;
  font-size:18px;
  font-weight:800;
}

.cp-checkout-wrap label{
  display:block;
  margin:0 0 8px;
  font-size:14px;
  font-weight:700;
  color:var(--cp-text);
}

.cp-checkout-wrap .woocommerce-input-wrapper,
.cp-checkout-wrap .select2-container{width:100% !important;}

.cp-checkout-wrap input.input-text,
.cp-checkout-wrap input[type="tel"],
.cp-checkout-wrap input[type="email"],
.cp-checkout-wrap input[type="text"],
.cp-checkout-wrap select,
.cp-checkout-wrap textarea,
.cp-checkout-wrap .select2-selection{
  min-height:54px;
  width:100%;
  border-radius:16px !important;
  border:1px solid var(--cp-border) !important;
  background:#fff;
  box-shadow:none !important;
  font-size:15px;
  color:var(--cp-text);
  padding:14px 16px !important;
}

.cp-checkout-wrap textarea{min-height:110px; resize:vertical;}
.cp-checkout-wrap .select2-selection__rendered{line-height:24px !important; padding-left:0 !important;}
.cp-checkout-wrap .select2-selection__arrow{height:54px !important; right:10px !important;}

.cp-checkout-wrap .cp-invalid input,
.cp-checkout-wrap .cp-invalid select,
.cp-checkout-wrap .cp-invalid textarea,
.cp-checkout-wrap .cp-invalid .select2-selection{
  border-color:#ef4444 !important;
  box-shadow:0 0 0 4px rgba(239,68,68,.08) !important;
}

.cp-checkout-wrap #ship-to-different-address label,
.cp-checkout-wrap .woocommerce-form__label-for-checkbox,
.cp-checkout-wrap .woocommerce-terms-and-conditions-checkbox-text{
  display:flex;
  align-items:center;
  gap:10px;
}

.cp-checkout-wrap input[type="checkbox"],
.cp-checkout-wrap input[type="radio"]{
  width:18px;
  height:18px;
  accent-color:var(--cp-primary);
}

.cp-review-box{
  border:1px solid var(--cp-border);
  border-radius:22px;
  overflow:hidden;
}

.cp-checkout-wrap table.shop_table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin:0;
  border:none;
}

.cp-checkout-wrap .shop_table th,
.cp-checkout-wrap .shop_table td{
  padding:16px 18px;
  border-bottom:1px solid #edf2f7;
}

.cp-checkout-wrap .shop_table thead th{
  background:#f8fbff;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--cp-muted);
}

.cp-checkout-wrap .shop_table tr:last-child td,
.cp-checkout-wrap .shop_table tr:last-child th{border-bottom:none;}

.cp-payment-wrap .cp-payment-box{
  border:1px solid var(--cp-border);
  border-radius:22px;
  padding:20px;
  background:#fff;
}

.cp-checkout-wrap .woocommerce-checkout-payment{background:transparent !important; border:none !important; margin:0;}
.cp-checkout-wrap .wc_payment_methods{list-style:none; margin:0; padding:0;}
.cp-checkout-wrap .wc_payment_method{
  border:1px solid var(--cp-border);
  border-radius:18px;
  padding:16px;
  margin-bottom:14px;
  background:#fff;
}
.cp-checkout-wrap .wc_payment_method > label{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  font-size:16px;
  font-weight:800;
}
.cp-checkout-wrap .payment_box{
  margin-top:14px !important;
  border-radius:16px !important;
  background:#f8fbff !important;
  border:1px solid var(--cp-border);
  color:var(--cp-text) !important;
}
.cp-checkout-wrap .payment_box::before{display:none !important;}
.cp-checkout-wrap .woocommerce-privacy-policy-text{margin:18px 0; color:var(--cp-muted);}
.cp-checkout-wrap .place-order{padding:0 !important;}
.cp-checkout-wrap #place_order{
  width:100%;
  min-height:58px;
  border:none;
  border-radius:18px;
  background:linear-gradient(180deg,#2563eb 0%,#1d4ed8 100%);
  color:#fff;
  font-size:16px;
  font-weight:800;
  box-shadow:0 14px 30px rgba(37,99,235,.24);
}

.cp-order-sidebar{position:sticky; top:24px;}
.cp-order-card{padding:22px;}
.cp-order-card__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding-bottom:16px;
  border-bottom:1px solid #edf2f7;
}
.cp-order-card__head h3{
  margin:0;
  font-size:clamp(24px,2vw,32px);
  line-height:1.05;
}
.cp-order-card__head span{color:var(--cp-muted); font-size:14px; font-weight:700;}
.cp-order-items{display:grid; gap:14px; margin:20px 0;}
.cp-order-item{
  display:grid;
  grid-template-columns:76px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid var(--cp-border);
  border-radius:20px;
}
.cp-order-item__thumb img{
  width:76px;
  height:76px;
  object-fit:contain;
  border-radius:14px;
  background:#fff;
}
.cp-order-item__meta{min-width:0;}
.cp-order-item__meta strong{
  display:block;
  font-size:15px;
  line-height:1.35;
  margin-bottom:6px;
}
.cp-order-item__meta span{display:block; color:var(--cp-muted); font-size:14px;}
.cp-order-item__price{font-size:14px; font-weight:800; white-space:nowrap;}
.cp-order-totals{border-top:1px solid #edf2f7; padding-top:16px; display:grid; gap:10px;}
.cp-order-total-row{display:flex; justify-content:space-between; gap:16px; font-size:14px;}
.cp-order-total-row span:last-child{text-align:right; font-weight:700;}
.cp-order-total-row--discount{color:#0f766e;}
.cp-order-total-row--grand{
  padding-top:12px;
  border-top:1px solid #edf2f7;
  font-size:18px;
  font-weight:800;
}
.cp-empty-cart{
  padding:22px;
  border:1px solid var(--cp-border);
  border-radius:20px;
  background:#fff;
}

@media (max-width: 1200px){
  .cp-shell{grid-template-columns:minmax(0,1fr) 380px;}
}

@media (max-width: 980px){
  .cp-shell{grid-template-columns:1fr;}
  .cp-order-sidebar{position:static; order:-1;}
  .cp-order-card{padding:18px;}
}

@media (max-width: 767px){
  .cp-steps{grid-template-columns:1fr 1fr;}
  .cp-panel{padding:20px 16px 18px; border-radius:22px;}
  .cp-order-item{grid-template-columns:64px minmax(0,1fr);}
  .cp-order-item__price{grid-column:2;}
  .cp-checkout-wrap .col-sm-6,
  .cp-checkout-wrap .form-row-first,
  .cp-checkout-wrap .form-row-last{width:100% !important; margin-right:0 !important;}
  .cp-panel__actions{flex-direction:column-reverse;}
  .cp-btn{width:100%;}
}
.cp-shipping-only .shop_table,
.cp-shipping-only table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 14px;
}

.cp-shipping-only ul#shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cp-shipping-only ul#shipping_method li {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 14px;
    background: #fff;
}

.cp-payment-box .wc_payment_methods {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cp-payment-box .wc_payment_method {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 14px;
    background: #fff;
}

.cp-payment-box .payment_box {
    margin-top: 12px;
}

.cp-payment-box .place-order {
    margin-top: 20px;
}

.cp-payment-box #place_order {
    width: 100%;
}