.woocommerce-cart,
.woocommerce-checkout {
	padding-bottom: clamp(5rem, 15vh, 10rem);
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	margin-bottom: clamp(3rem, 8vh, 6rem);
}

.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table {
	border-collapse: separate;
	border-spacing: 0;
	line-height: 1.45;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
	padding: 0.9rem 1rem;
	vertical-align: middle;
}

.woocommerce-cart table.shop_table .product-name,
.woocommerce-checkout table.shop_table .product-name {
	word-break: normal;
	overflow-wrap: anywhere;
}

.woocommerce-cart .cart_totals {
	margin-top: 2rem;
	padding-top: 1.25rem;
}

.woocommerce-cart .cart_totals h2 {
	margin-bottom: 1rem;
}

.woocommerce-cart .wc-proceed-to-checkout {
	display: flex;
	justify-content: flex-end;
	margin-top: 1.5rem;
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-checkout #place_order {
	box-sizing: border-box;
	min-height: 3rem;
	padding: 0.95rem 1.4rem;
	border: 1px solid #111;
	border-radius: 3px;
	background: #111;
	color: #fff;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: normal;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus,
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus {
	background: #333;
	color: #fff;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button:visited,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt:visited {
	background-color: #111;
	border-color: #111;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button:hover,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button:focus,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button:active,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt:hover,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt:focus,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt:active {
	background-color: #333;
	border-color: #333;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.disabled,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button:disabled,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt.disabled,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt:disabled {
	background-color: #555;
	border-color: #555;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	cursor: not-allowed;
	opacity: 0.75;
}

body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button *,
body.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button.button.alt * {
	color: #fff !important;
	-webkit-text-fill-color: #fff;
}

.woocommerce-cart table.shop_table th.product-thumbnail,
.woocommerce-cart table.shop_table td.product-thumbnail {
	display: none;
}

.woocommerce-checkout form.checkout {
	margin-bottom: clamp(4rem, 12vh, 8rem);
}

.woocommerce-checkout form.checkout .col2-set {
	width: 100%;
	margin-bottom: 1.75rem;
}

.woocommerce-checkout form.checkout .col2-set::before,
.woocommerce-checkout form.checkout .col2-set::after {
	content: "";
	display: table;
}

.woocommerce-checkout form.checkout .col2-set::after {
	clear: both;
}

.woocommerce-checkout form.checkout .col2-set .col-1 {
	float: none;
	width: 100%;
}

.woocommerce-checkout form.checkout .col2-set .col-2,
.woocommerce-checkout .woocommerce-additional-fields {
	display: none;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout h3#order_review_heading {
	margin: 0 0 1rem;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
	float: none;
	width: 100%;
	margin: 0;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper #billing_email_field,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper #billing_phone_field,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper #billing_country_field {
	grid-column: 1 / -1;
}

.woocommerce-checkout .form-row label {
	margin-bottom: 0.35rem;
	font-weight: 600;
	line-height: 1.35;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 2.75rem;
	border: 1px solid #bbb;
	border-radius: 3px;
	background-color: #fff;
	color: #111;
	line-height: 1.4;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
	padding: 0.7rem 0.8rem;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0.45rem 0.8rem;
	color: #111;
	line-height: 1.8;
}

.woocommerce-checkout #order_review {
	margin-top: 1.5rem;
}

.woocommerce-checkout #payment {
	margin-top: 1.5rem;
	border-radius: 4px;
	background: #f6f4ef;
	color: #111;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 1.25rem;
	border-bottom-color: #d8d2c5;
}

.woocommerce-checkout #payment div.payment_box {
	margin: 1rem 0 0;
	padding: 1rem;
	background: #fff;
	color: #111;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

.woocommerce-checkout .wc-stripe-elements-field,
.woocommerce-checkout .wc-stripe-iban-element-field {
	min-height: 2.75rem;
	padding: 0.8rem;
	border: 1px solid #aaa;
	border-radius: 3px;
	background: #fff;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-top: 1.25rem;
	color: #111;
	line-height: 1.5;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
	text-decoration: underline;
}

.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-weight: 600;
	line-height: 1.45;
}

.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	flex: 0 0 auto;
	margin-top: 0.2rem;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"].input-checkbox,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	appearance: auto;
	display: inline-block;
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	margin: 0.15rem 0 0;
	opacity: 1;
	visibility: visible;
	accent-color: #111;
	cursor: pointer;
}

.woocommerce-checkout #payment .place-order {
	margin: 0;
	padding: 1.25rem;
}

.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	margin-top: 1.25rem;
}

@media (min-width: 769px) {
	.woocommerce-cart .cart_totals {
		max-width: 28rem;
		margin-left: auto;
	}
}

@media (max-width: 768px) {
	.woocommerce-cart,
	.woocommerce-checkout {
		padding-bottom: 9rem;
	}

	.woocommerce-cart .wc-proceed-to-checkout {
		display: block;
	}

	.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
		display: block;
		width: 100%;
	}

	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr;
		gap: 0.9rem;
	}

	.woocommerce-cart table.shop_table th,
	.woocommerce-cart table.shop_table td,
	.woocommerce-checkout table.shop_table th,
	.woocommerce-checkout table.shop_table td {
		padding: 0.75rem;
	}
}
