/* container-fluid alone only fills whatever width the theme's own page
   content wrapper allows, which is usually narrower than the viewport -
   this breaks the checkout section out of that wrapper so it actually
   spans the full page width, the same way the site header does. */
.checkout.container-fluid{
width:100vw;
max-width:100vw;
position:relative;
left:50%;
right:50%;
margin-left:-50vw;
margin-right:-50vw;
padding-top:32px;
padding-left:40px;
padding-right:40px;
box-sizing:border-box;
}

.checkout .card{
border:1px solid #eef0f3;
border-left:none;
border-radius:14px;
box-shadow:0 4px 18px rgba(20,40,80,.06);
}

.checkout .card h4{
font-size:16px;
font-weight:700;
color:#142850;
margin-bottom:16px;
}

.checkout .table{
margin-bottom:0;
}

.checkout .table th{
font-size:18px;
text-transform:uppercase;
letter-spacing:.04em;
color:#8a8f98;
border-top:none;
font-weight:600;
padding:12px 8px;
}

.checkout .table td{
vertical-align:middle;
color:#142850;
font-size:16px;
padding:14px 8px;
}

.checkout .table tbody tr:nth-child(even){
background:#f7f8fa;
}

.checkout .table th.text-end,
.checkout .table td.text-end{
text-align:right !important;
}

.checkout .table th.peercore-checkout-qty-th{
padding-right:15px !important;
}

.peercore-checkout-remove-wrap{
position:relative;
display:inline-flex;
}

.peercore-checkout-remove-btn{
display:inline-flex;
align-items:center;
justify-content:center;
color:#b3261e;
cursor:pointer;
}

.peercore-checkout-remove-btn:hover{
color:#7a1a14;
}

.checkout .table tbody tr.is-loading{
opacity:.5;
pointer-events:none;
}

/* Inline remove confirm - absolutely positioned right over the trash icon
   (which is hidden, not removed, while this is showing) so it overlays in
   the same spot instead of shifting the row's layout. */
.peercore-checkout-confirm-inline{
position:absolute;
top:50%;
left:-20px;
transform:translateY(-50%);
display:inline-flex;
align-items:center;
gap:10px;
white-space:nowrap;
background:#fff;
padding:10px 10px;
border-radius:8px;
box-shadow:0 2px 10px rgba(20,40,80,.18);
z-index:2;
}

.peercore-checkout-confirm-icon{
display:inline-flex;
align-items:center;
justify-content:center;
cursor:pointer;
}

.peercore-checkout-confirm-icon--yes{
color:#1e8e3e;
}

.peercore-checkout-confirm-icon--yes:hover{
color:#146c2e;
}

.peercore-checkout-confirm-icon--no{
color:#8a8f98;
}

.peercore-checkout-confirm-icon--no:hover{
color:#5a5f68;
}

.peercore-checkout-customer{
color:#142850;
padding:4px 0;
}

.peercore-checkout-row{
display:flex;
align-items:baseline;
justify-content:space-between;
gap:12px;
padding:6px 0;
color:#142850;
}

.peercore-checkout-row--total{
font-weight:700;
font-size:17px;
padding-bottom:12px;
border-bottom:4px double #c4c9d2;
}

#peercore-place-order{
border-radius:10px;
padding:12px;
font-weight:600;
font-size:15px;
background:#142850 !important;
background-image:none !important;
border-color:#142850 !important;
}

#peercore-place-order:hover,
#peercore-place-order:focus{
background:#0d1c3a !important;
background-image:none !important;
border-color:#0d1c3a !important;
}

/* Loader shown while the cart is being fetched; the real checkout layout
   stays hidden the whole time so nothing empty/half-built flashes on
   screen before the data arrives. */
.checkout-loader{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:14px;
padding:100px 20px;
color:#8a8f98;
}

.checkout-loader__spinner{
width:36px;
height:36px;
border:3px solid #d7dae0;
border-top-color:#046bd2;
border-radius:50%;
animation:peercore-checkout-spin .8s linear infinite;
}

.checkout-loader__text{
margin:0;
font-size:14px;
}
#peercore-checkout-items table{
   border-left: 0;
}

.peercore-checkout-notes-status{
font-size:12px;
color:#8a8f98;
margin-top:6px;
min-height:14px;
}

@keyframes peercore-checkout-spin{
to{ transform:rotate(360deg); }
}

/* Success panel shown in place of the checkout content once the order is
   placed. */
.checkout-success{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:10px;
padding:100px 20px;
text-align:center;
}

.checkout-success__icon{
color:#1e8e3e;
margin-bottom:6px;
}

.checkout-success h3{
margin:0;
color:#142850;
font-weight:700;
}

.checkout-success p{
margin:0 0 10px;
color:#8a8f98;
}

.checkout-success .btn-primary{
border-radius:10px;
padding:12px 28px;
font-weight:600;
background:#142850;
border-color:#142850;
}

.checkout-success .btn-primary:hover{
background:#0d1c3a;
border-color:#0d1c3a;
}

/* Full-screen overlay shown while the order is being placed. */
.peercore-placing-order-overlay{
display:none;
position:fixed;
inset:0;
z-index:100020;
align-items:center;
justify-content:center;
flex-direction:column;
gap:14px;
background:rgba(255,255,255,.85);
}

.peercore-placing-order-overlay.is-active{
display:flex;
}

.peercore-placing-order-overlay__spinner{
width:40px;
height:40px;
border:3px solid #d7dae0;
border-top-color:#046bd2;
border-radius:50%;
animation:peercore-checkout-spin .8s linear infinite;
}

.peercore-placing-order-overlay__text{
margin:0;
font-size:14px;
color:#142850;
font-weight:600;
}
