#edd_checkout_wrap{
	max-width:100%;
}

#edd_checkout_cart_wrap{
	margin-bottom:2rem;
}

#edd_checkout_cart {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

#edd_checkout_cart{
	--sl-cart-thumb-width:64px;
	--sl-cart-price-width:120px;
	--sl-cart-actions-width:120px;
}
.sl-page-hero, .sl-page-content {
    padding: 0 20px;
}

/*
|--------------------------------------------------------------------------
| Checkout Cart
|--------------------------------------------------------------------------
*/

.sl-cart-header,.sl-cart-items{
	width: 100%;
}

.sl-cart-header,
.sl-cart-item{
	display:grid;
	grid-template-columns:
		var(--sl-cart-thumb-width)
		minmax(0,1fr)
		var(--sl-cart-price-width)
		var(--sl-cart-actions-width);
	gap:1rem;
	align-items:center;
}

.sl-cart-header {
	padding:0 1.5rem;
	font-size:.875rem;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:#64748b;
}

.sl-cart-header-actions, .sl-cart-header-price {
    text-align: center;
}

.sl-cart-items {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}


/*
|--------------------------------------------------------------------------
| Cart Item
|--------------------------------------------------------------------------
*/

.sl-cart-item {
	padding:1.5rem;
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:14px;
	box-shadow:0 1px 2px rgba(15,23,42,.04);
	transition:.2s ease;
}

.sl-cart-item:hover {
	border-color: #d1d5db;
	box-shadow: 0 8px 24px rgba(15,23,42,.06);
}

.sl-cart-item-main {
	display: flex;
	align-items: center;
	gap: 1rem;
	min-width: 0;
}

/*
|--------------------------------------------------------------------------
| Thumbnail
|--------------------------------------------------------------------------
*/

.sl-cart-item-image{
	width:64px;
	height:64px;
}

.sl-cart-item-image img,
.edd_cart_item_image img {
	display:block;
	width:64px;
	height:64px;
	object-fit:cover;
	border-radius:10px;
	border:1px solid #e5e7eb;
}

/*
|--------------------------------------------------------------------------
| Content
|--------------------------------------------------------------------------
*/

.sl-cart-item-content {
	min-width: 0;
}

.sl-cart-item-title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	color: #0f172a;
	word-break: break-word;
}

.sl-cart-item-meta {
	margin-top: .35rem;
	font-size: .875rem;
	color: #64748b;
}

.sl-cart-item-meta > * {
	margin-top: .25rem;
}


/*
|--------------------------------------------------------------------------
| Right Column
|--------------------------------------------------------------------------
*/

.sl-cart-item-price{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:.35rem;
}

.sl-cart-label {
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #94a3b8;
}

.sl-cart-value {
	font-size: 1.125rem;
	font-weight: 700;
	color: #0f172a;
}

/*
|--------------------------------------------------------------------------
| Actions
|--------------------------------------------------------------------------
*/

.sl-cart-item-actions {
    display:flex;
    justify-content:flex-end;
    align-items:center;
}

.sl-cart-quantity {
	display: flex;
	align-items: center;
}

.sl-cart-quantity input,
.edd-item-quantity {
	width: 64px;
	height: 42px;
	margin: 0;
	padding: 0 .5rem;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff;
	font-size: .95rem;
	font-weight: 600;
	text-align: center;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.sl-cart-quantity input:focus,
.edd-item-quantity:focus {
	outline: 0;
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37,99,235,.15);
}

.sl-cart-remove,
.edd_cart_remove_item_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .65rem 1rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	color: #dc2626;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: all .2s ease;
}

.sl-cart-remove:hover,
.edd_cart_remove_item_btn:hover {
	border-color: #fecaca;
	background: #fef2f2;
	color: #b91c1c;
	text-decoration: none;
}

/*
|--------------------------------------------------------------------------
| Summary
|--------------------------------------------------------------------------
*/

.sl-cart-summary {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(15,23,42,.04);
	width: 50%;
}

.sl-cart-summary-buttons {
	margin-bottom: .5rem;
	display:flex;
	justify-content:center;
	gap: 3rem;
}

.sl-cart-summary-row,
.edd_cart_fee {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .75rem 0;
	border-bottom: 1px solid #eef2f7;
}

.sl-cart-summary-row:last-child {
	border-bottom: 0;
}

.sl-summary-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 1rem;
}

.sl-summary-label {
	font-size: .95rem;
	font-weight: 500;
	color: #475569;
}

.sl-summary-value {
	font-size: 1rem;
	font-weight: 600;
	color: #0f172a;
}

.sl-cart-summary-total {
	margin-top: .25rem;
	padding-top: 1rem;
	border-top: 2px solid #e5e7eb;
}

.sl-cart-summary-total .sl-summary-label {
	font-size: 1.05rem;
	font-weight: 700;
	color: #0f172a;
}

.sl-cart-summary-total .sl-summary-value,
.edd_cart_amount {
	font-size: 1.35rem;
	font-weight: 700;
	color: #0f172a;
}

/*
|--------------------------------------------------------------------------
| Fee Rows
|--------------------------------------------------------------------------
*/

.sl-summary-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.sl-summary-remove {
	color: #dc2626;
	font-size: .875rem;
	font-weight: 600;
	text-decoration: none;
}

.sl-summary-remove:hover {
	color: #b91c1c;
	text-decoration: underline;
}


/*
|--------------------------------------------------------------------------
| EDD Components
|--------------------------------------------------------------------------
*/

.edd_cart_discount {
	width: 100%;
}

.edd_cart_discount form,
.edd_cart_discount .edd-cart-discount,
.edd-discount-code-wrap {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

.edd_cart_discount input[type="text"],
.edd_cart_discount input[type="search"],
.edd_cart_discount input[type="email"] {
	flex: 1;
	min-width: 220px;
	height: 44px;
	padding: 0 .9rem;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff;
	font-size: .95rem;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.edd_cart_discount input:focus {
	outline: 0;
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37,99,235,.15);
}


/*
|--------------------------------------------------------------------------
| Buttons
|--------------------------------------------------------------------------
*/

.sl-cart-summary button,
.sl-cart-summary input[type="submit"],
.sl-cart-summary .button,
.sl-cart-summary .edd-submit,
.sl-cart-summary .edd-button,
.sl-cart-summary .edd_cart_discount input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 0 1.25rem;
	border: 0;
	border-radius: 8px;
	background: #2563eb;
	color: #fff;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background .2s ease, transform .15s ease;
}

.sl-cart-summary button:hover,
.sl-cart-summary input[type="submit"]:hover,
.sl-cart-summary .button:hover,
.sl-cart-summary .edd-submit:hover,
.sl-cart-summary .edd-button:hover {
	background: #1d4ed8;
	transform: translateY(-1px);
}


/*
|--------------------------------------------------------------------------
| Empty Messages / Notices
|--------------------------------------------------------------------------
*/

#edd_checkout_cart .edd-alert,
#edd_checkout_cart .edd_errors,
#edd_checkout_cart .edd_success,
#edd_checkout_cart .edd-message {
	margin-bottom: 1rem;
	padding: 1rem 1.25rem;
	border-radius: 10px;
}


/*
|--------------------------------------------------------------------------
| Links
|--------------------------------------------------------------------------
*/

#edd_checkout_cart a {
	transition: color .2s ease;
	width: 100%;
}

#edd_checkout_cart a:not(.sl-cart-remove):not(.sl-summary-remove):hover {
	text-decoration: underline;
}


/*
|--------------------------------------------------------------------------
| Images
|--------------------------------------------------------------------------
*/

.sl-cart-item-content img {
	max-width:100%;
	height:auto;
}


/*
|--------------------------------------------------------------------------
| Checkout Layout
|--------------------------------------------------------------------------
*/
#edd_purchase_submit{
	display:flex;
	flex-direction:column;
	gap:1.5rem;
}

#edd_purchase_form{
	display:grid;
	grid-template-columns:1fr;
	gap:2rem;
}

.edd-alert {
    display: flex;
    grid-column: 1 / -1;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width:992px){

	#edd_purchase_form{
		display:grid;
		grid-template-columns:420px minmax(0,1fr);
		gap:1rem 2rem;
		align-items:stretch; /* Changed from start */
	}

	#edd_discount_code,
	#edd_purchase_submit,
	#edd-stripe-payment-errors{
		grid-column:1 / -1;
	}

	#edd_checkout_user_info{
		grid-column:1;
	}

	#edd_cc_fields{
		grid-column:2;
		display:flex;
		flex-direction:column;
	}

}

#edd_checkout_form_wrap{
	margin:2rem auto 0;
}

#edd_purchase_form fieldset{
	margin:0;
	padding:2rem;
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:16px;
	box-shadow:0 2px 8px rgba(15,23,42,.04);
}

#edd_purchase_form legend{
	padding:0;
	margin:0 0 1.75rem;
	font-size:1.35rem;
	font-weight:700;
	color:#0f172a;
}


/*
|--------------------------------------------------------------------------
| Discount
|--------------------------------------------------------------------------
*/

#edd_show_discount{
	margin:0;
}

.edd-discount-code-field-wrap{
	display:flex;
	align-items:center;
	gap:.75rem;
	flex-wrap:wrap;
	margin-top:1rem;
}

#edd_show_discount a,
.edd_discount_link{
	font-weight:600;
	text-decoration:none;
}

#edd-discount-code-wrap{
	margin-top:1rem;
}

/*
|--------------------------------------------------------------------------
| User Information
|--------------------------------------------------------------------------
*/

#edd_checkout_user_info{
	display:flex;
	flex-direction:column;
	grid-column:1;
	gap:1.25rem;
}

#edd_checkout_user_info p{
	margin:0;
}

#edd-email-wrap,
#edd-first-name-wrap,
#edd-last-name-wrap{
	width:100%;
}

/* Keep only email description */

#edd-first-description,
#edd-last-description{
	display:none;
}

/*
|--------------------------------------------------------------------------
| Credit Card
|--------------------------------------------------------------------------
*/

#edd_secure_site_wrapper{
	display:flex;
	align-items:center;
	gap:.75rem;
	margin-bottom:1.5rem;
	padding:1rem 1.25rem;
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:10px;
	font-weight:600;
}

#edd-card-name-wrap{
	margin:0 0 1.5rem;
	padding:0;
	border:0;
	background:none;
}

#edd_cc_fields p{
	margin:0 0 1.5rem;
}

#edd-stripe-card-element-wrapper{
	padding:.9rem 1rem;
	border:1px solid #d1d5db;
	border-radius:10px;
	background:#fff;
}

#edd-stripe-card-element-wrapper:focus-within{
	border-color:#2563eb;
	box-shadow:0 0 0 3px rgba(37,99,235,.15);
}
/*
|--------------------------------------------------------------------------
| Inputs
|--------------------------------------------------------------------------
*/
.edd-label{
	display:block;
	margin-bottom:.45rem;
	font-size:.95rem;
	font-weight:600;
	color:#0f172a;
}

.edd-description{
	display:block;
	margin:.25rem 0 .75rem;
	font-size:.875rem;
	color:#64748b;
}

.edd-input{
	width:100%;
	height:48px;
	padding:0 1rem;
	border:1px solid #d1d5db;
	border-radius:10px;
	font-size:.95rem;
	background:#fff;
	transition:.2s;
}

.edd-input:focus{
	outline:0;
	border-color:#2563eb;
	box-shadow:0 0 0 3px rgba(37,99,235,.15);
}


/*
|--------------------------------------------------------------------------
| Terms
|--------------------------------------------------------------------------
*/
#edd_terms_agreement,
#edd-privacy-policy-agreement{
	padding:0;
	border:0;
	background:none;
}

.edd-terms-agreement,
.edd-privacy-policy-agreement{
	display:flex;
	align-items:center;
	gap:.75rem;
    align-items: center;
}

#edd_checkout_form_wrap #edd_discount_code, #edd_checkout_form_wrap #edd_purchase_submit, #edd_checkout_form_wrap #edd_register_account_fields {
    padding: 20px;
    border: 1px solid #e5e7eb;
}

fieldset#edd_terms_agreement, fieldset#edd-privacy-policy-agreement {
    box-shadow: none;
}

.edd-terms-agreement label,
.edd-privacy-policy-agreement label{
	margin:0;
	font-weight:500;
}

a.edd_terms_links {
    font-weight: 600;
    display: block;
    color: #2563eb;
}

#edd_show_terms {
    padding: 15px 0 15px 20px;
}

#edd_terms {
    font-style: italic;
}
/*
|--------------------------------------------------------------------------
| Purchase
|--------------------------------------------------------------------------
*/

#edd-purchase-button{
	width:100%;
	height:56px;
	border:0;
	border-radius:12px;
	background:#2563eb;
	color:#fff;
	font-size:1rem;
	font-weight:700;
	transition:.2s;
}

#edd-purchase-button:hover{
	background:#1d4ed8;
}


/*
|--------------------------------------------------------------------------
| Alerts
|--------------------------------------------------------------------------
*/

.edd-alert,
.edd-stripe-alert{
	padding:1rem 1.25rem;
	margin-bottom:1rem;
	border-radius:10px;
	border:1px solid transparent;
	font-size:.95rem;
	line-height:1.6;
}

.edd-alert-error,
.edd-stripe-alert.edd-alert-error{
	background:#fef2f2;
	border-color:#fecaca;
	color:#991b1b;
}

.edd-alert-success{
	background:#ecfdf5;
	border-color:#a7f3d0;
	color:#065f46;
}

.edd-alert-info{
	background:#eff6ff;
	border-color:#bfdbfe;
	color:#1d4ed8;
}

/*
|--------------------------------------------------------------------------
| Loading State
|--------------------------------------------------------------------------
*/

#edd_checkout_cart,
#edd_checkout_cart *,
#edd_checkout_cart *::before,
#edd_checkout_cart *::after {
	box-sizing: border-box;
}
#edd_checkout_cart p,
#edd_checkout_cart h1,
#edd_checkout_cart h2,
#edd_checkout_cart h3,
#edd_checkout_cart h4,
#edd_checkout_cart h5,
#edd_checkout_cart h6 {
	margin: 0;
}
.sl-cart-item-image img {
	vertical-align: middle;
}
.sl-cart-item-title {
	overflow-wrap: anywhere;
}
#edd_checkout_cart a:focus-visible,
#edd_checkout_cart button:focus-visible,
#edd_checkout_cart input:focus-visible{
	outline:2px solid #2563eb;
	outline-offset:2px;
}

.edd_price_options.edd_single_mode {
    font-size: 12px;
}

.sl-download-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 14px;
    box-shadow: 0 2px 12px rgba(15, 23, 42, .04);
}

.sl-card-header h3 {
    text-align: center;
    font-weight: 700;
}

.sl-rvi-checkout-list{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:16px;
}

.sl-rvi-checkout-item{
	flex:0 0 calc((100% - 5 * 16px) / 6);
	max-width:calc((100% - 5 * 16px) / 6);
}

.sl-rvi-checkout-thumb{
	display:block;
	margin-bottom:8px;
}

.sl-rvi-checkout-thumb img{
	display:block;
	width:100%;
	height:auto;
	border-radius:6px;
}

.sl-rvi-checkout-content{
	flex:1;
}

.sl-rvi-checkout-content h4{
	margin:0;
	font-size:12px;
	font-weight:600;
	line-height:1.4;

	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.sl-rvi-checkout-content a{
	color:inherit;
	text-decoration:none;
}

.sl-rvi-checkout-content a:hover{
	text-decoration:underline;
}

.sl-rvi-checkout-actions{
	margin-top:8px;
}

.sl-rvi-checkout-actions .edd_download_purchase_form,
.sl-rvi-checkout-actions .edd_purchase_submit_wrapper{
	margin:0;
}

.sl-rvi-checkout-actions .edd-submit{
	width:100%;
	font-size:12px;
	padding:8px 10px;
	line-height:1.3;
}
				
#edd_checkout_form_wrap input.edd-input, #edd_checkout_form_wrap textarea.edd-input {
	width: 100%;
}

			/*
			|--------------------------------------------------------------------------
			| Responsive
			|--------------------------------------------------------------------------
			*/

			@media (max-width:992px){

				.sl-rvi-checkout-item{
					flex-basis:calc((100% - 2 * 16px) / 3);
					max-width:calc((100% - 2 * 16px) / 3);
				}

			}

			@media (max-width:768px){
				
				.sl-rvi-checkout-item{
					flex-basis:calc((100% - 16px) / 2);
					max-width:calc((100% - 16px) / 2);
				}

				#edd_purchase_form fieldset{
						padding:1.5rem;
					}
					
				.sl-page-main {
					padding: 0;
				}	


				#edd_purchase_form{
					grid-template-columns:1fr;
				}

				.edd-discount-code-field-wrap{
					flex-direction:column;
					align-items:stretch;
				}

				.edd-discount-code-field-wrap input,
				.edd-discount-code-field-wrap .button{
					width:100%;
				}

				.sl-cart-item-actions{
					justify-content:space-between;
				}

				.sl-cart-summary{
					padding:1.25rem;
				}

				.sl-cart-summary-row,
				.edd_cart_fee,
				.sl-summary-item{
					flex-direction:column;
					align-items:flex-start;
				}


				.sl-cart-summary-total .sl-summary-value{
					font-size:1.5rem;
				}
				
				.sl-cart-item-image {
					display: block;
					text-align: center;
					align-items: center;
					margin: 0 auto;
				}

				.sl-cart-item-image img, .edd_cart_item_image img {
				border: none;
				}
				
				.edd_cart_total.sl-summary-item {
					text-align: center;
					align-items: center;
				}
				.sl-cart-item-image img{
					width:56px;
					height:56px;
				}

				.sl-cart-item-title{
					font-size:.95rem;
				}

				.sl-cart-item-meta{
					font-size:.8125rem;
				}

				.sl-cart-quantity input,
				.edd-item-quantity{
					width:58px;
				}

				.edd_cart_discount form,
				.edd_cart_discount .edd-cart-discount,
				.edd-discount-code-wrap{
					flex-direction:column;
					align-items:stretch;
				}

				.edd_cart_discount input[type="text"],
				.edd_cart_discount input[type="search"],
				.edd_cart_discount input[type="email"],
				.sl-cart-summary,
				.sl-cart-summary button,
				.sl-cart-summary input[type="submit"],
				.sl-cart-summary .button,
				.sl-cart-summary .edd-submit,
				.sl-cart-summary .edd-button{
					width:100%;
				}

				.sl-cart-header{
					display:none;
				}

				.sl-cart-item{
					grid-template-columns:1fr;
					gap:1.5rem;
				}

				.sl-cart-item-main{
					align-items:flex-start;
				}

				.sl-cart-item-side{
					grid-template-columns:1fr;
					gap:1rem;
					padding-top:1rem;
					border-top:1px solid #eef2f7;
				}

				.sl-cart-item-price{
					text-align:left;
				}

				.sl-cart-price-inner{
					flex-direction:row;
					align-items:center;
					justify-content:space-between;
				}

			}
			
			

			@media (max-width:520px){
				
				.sl-rvi-checkout-item{
					flex-basis:100%;
					max-width:100%;
				}

			}
