:root {
	--szlco-ivory: #f7f1e8;
	--szlco-paper: #fffdf9;
	--szlco-wine: #4b1724;
	--szlco-brown: #5a3a29;
	--szlco-gold: #c6a15b;
	--szlco-line: #dfcfb4;
	--szlco-muted: #806b5c;
}

body.szl-checkout-page {
	background:
		radial-gradient(circle at 85% 8%, rgba(198,161,91,.12), transparent 24%),
		#f5ede2;
}

body.szl-checkout-page .site-main,
body.szl-checkout-page .entry-content,
body.szl-checkout-page main {
	max-width: 1240px;
	margin-inline: auto;
}
body.szl-checkout-page .entry-title { display: none; }

.szl-checkout-hero {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr) auto;
	gap: 22px;
	align-items: center;
	width: min(1180px, 94%);
	margin: 18px auto 19px;
	padding: 31px 36px;
	color: #fff;
	border: 1px solid #bf944c;
	border-radius: 23px;
	background:
		radial-gradient(circle at 86% 10%, rgba(224,188,117,.23), transparent 31%),
		linear-gradient(135deg, #351019, #4b1724 56%, #6a3b2b);
	box-shadow: 0 22px 52px rgba(55,23,24,.18);
}
.szl-checkout-hero__seal {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	color: #e0bd76;
	border: 1px solid #d4ad63;
	border-radius: 50%;
	background: rgba(255,255,255,.06);
	box-shadow: inset 0 0 0 6px rgba(255,255,255,.025);
}
.szl-checkout-hero__seal svg {
	display: block;
	width: 42px !important;
	height: 42px !important;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.szl-checkout-hero > div:nth-child(2) > span {
	display: block;
	margin-bottom: 4px;
	color: #dfbc76;
	font: 800 9px Arial, sans-serif;
	letter-spacing: .2em;
}
.szl-checkout-hero h1 {
	margin: 0 0 6px;
	color: #fff;
	font: 500 clamp(31px, 4vw, 47px)/1.05 Georgia, serif;
}
.szl-checkout-hero p { margin: 0; color: rgba(255,255,255,.76); font-size: 13px; }
.szl-checkout-secure {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 12px 15px;
	border: 1px solid rgba(221,184,110,.5);
	border-radius: 13px;
	background: rgba(35,8,14,.24);
}
.szl-checkout-secure b { color: #e0bd76; font-size: 22px; }
.szl-checkout-secure span,
.szl-checkout-secure strong,
.szl-checkout-secure small { display: block; }
.szl-checkout-secure strong { color: #fff; font: 600 12px Georgia, serif; }
.szl-checkout-secure small { margin-top: 2px; color: #d8c5ac; font-size: 8px; }

.szl-checkout-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 13px;
	margin: 0 auto 30px;
	color: #9b8879;
	font: 700 10px Arial, sans-serif;
	text-transform: uppercase;
	letter-spacing: .07em;
}
.szl-checkout-progress span { display: inline-flex; align-items: center; gap: 7px; }
.szl-checkout-progress b {
	display: grid;
	place-items: center;
	width: 25px;
	height: 25px;
	border: 1px solid #d6c6ad;
	border-radius: 50%;
	background: #fff;
}
.szl-checkout-progress .is-active { color: var(--szlco-wine); }
.szl-checkout-progress .is-active b { color: #fff; border-color: var(--szlco-wine); background: var(--szlco-wine); }
.szl-checkout-progress .is-done { color: #85652e; }
.szl-checkout-progress .is-done b { color: #fff; border-color: #b48d48; background: #b48d48; }
.szl-checkout-progress i { width: 48px; height: 1px; background: #d9cbb5; }

body.szl-checkout-page form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
	gap: 25px;
	align-items: start;
	width: min(1180px, 94%);
	margin: 0 auto;
}
body.szl-checkout-page form.checkout::before,
body.szl-checkout-page form.checkout::after { display: none; }

body.szl-checkout-page #customer_details,
body.szl-checkout-page #order_review {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 25px;
	border: 1px solid var(--szlco-line);
	border-radius: 20px;
	background: var(--szlco-paper);
	box-shadow: 0 17px 43px rgba(69,41,25,.08);
}
body.szl-checkout-page #customer_details { grid-column: 1; }
body.szl-checkout-page form.checkout > .szl-checkout-section-title:not(.szl-checkout-section-title--order) { grid-column: 1; }
body.szl-checkout-page #order_review_heading,
body.szl-checkout-page .szl-checkout-section-title--order,
body.szl-checkout-page #order_review { grid-column: 2; }
body.szl-checkout-page #order_review_heading { display: none; }
body.szl-checkout-page .szl-checkout-section-title--order { margin-bottom: -11px; z-index: 2; }

body.szl-checkout-page #customer_details .col-1,
body.szl-checkout-page #customer_details .col-2 {
	float: none;
	width: 100%;
}
body.szl-checkout-page #customer_details .col-2 { margin-top: 20px; }
body.szl-checkout-page #customer_details h3 {
	margin: 0 0 17px;
	color: var(--szlco-brown);
	font: 500 22px Georgia, serif;
}

.szl-checkout-section-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 17px;
}
.szl-checkout-section-title > span,
.szl-checkout-payment-title > span {
	display: grid;
	flex: 0 0 40px;
	place-items: center;
	height: 40px;
	color: #9c7433;
	border: 1px solid #d6b672;
	border-radius: 50%;
	background: #fbf4e8;
	font: 700 11px Georgia, serif;
}
.szl-checkout-section-title small,
.szl-checkout-section-title h2 { display: block; margin: 0; }
.szl-checkout-section-title small { color: #9d7c48; font: 800 8px Arial, sans-serif; letter-spacing: .14em; }
.szl-checkout-section-title h2 { margin-top: 3px; color: var(--szlco-brown); font: 500 23px Georgia, serif; }

body.szl-checkout-page form .form-row { margin-bottom: 13px; }
body.szl-checkout-page form .form-row label {
	margin-bottom: 5px;
	color: #766253;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
}
body.szl-checkout-page form .form-row label .required { color: #9c3e4e; }
body.szl-checkout-page form .input-text,
body.szl-checkout-page form select,
body.szl-checkout-page .select2-container .select2-selection--single {
	box-sizing: border-box;
	min-height: 47px;
	padding: 10px 12px;
	color: #49382f;
	border: 1px solid #d6c5aa;
	border-radius: 9px;
	background: #fff;
	box-shadow: inset 0 1px 2px rgba(55,34,22,.04);
}
body.szl-checkout-page .select2-container .select2-selection--single .select2-selection__rendered { line-height: 25px; }
body.szl-checkout-page .select2-container .select2-selection--single .select2-selection__arrow { height: 45px; }
body.szl-checkout-page form .input-text:focus,
body.szl-checkout-page form select:focus {
	outline: none;
	border-color: #b9914b;
	box-shadow: 0 0 0 3px rgba(198,161,91,.12);
}

body.szl-checkout-page #order_review table.shop_table {
	margin: 0 0 18px;
	border: 0;
}
body.szl-checkout-page #order_review table.shop_table th,
body.szl-checkout-page #order_review table.shop_table td {
	padding: 12px 5px;
	border-color: #eadfce;
	color: #695447;
	font-size: 11px;
}
body.szl-checkout-page #order_review table.shop_table thead th {
	color: #9b8066;
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: .1em;
}
body.szl-checkout-page #order_review .product-name { font-family: Georgia, serif; }
body.szl-checkout-page #order_review .product-total,
body.szl-checkout-page #order_review tfoot td { text-align: right; }
body.szl-checkout-page #order_review .order-total th,
body.szl-checkout-page #order_review .order-total td { color: var(--szlco-wine); font: 700 18px Georgia, serif; }
.szl-checkout-pet { display: block; margin-top: 4px; color: #9b7538; font: 700 8px Arial, sans-serif; }

.szl-checkout-payment-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 5px 0 14px;
}
.szl-checkout-payment-title small,
.szl-checkout-payment-title h3,
.szl-checkout-payment-title p { display: block; margin: 0; }
.szl-checkout-payment-title small { color: #9d7c48; font: 800 8px Arial, sans-serif; letter-spacing: .14em; }
.szl-checkout-payment-title h3 { margin: 2px 0; color: var(--szlco-brown); font: 500 22px Georgia, serif; }
.szl-checkout-payment-title p { color: #907b69; font-size: 9px; }

body.szl-checkout-page #payment {
	border: 1px solid #dfceb2;
	border-radius: 15px;
	background: #f9f2e7;
}
body.szl-checkout-page #payment ul.payment_methods {
	padding: 10px;
	border-bottom: 1px solid #dfceb2;
}
body.szl-checkout-page #payment ul.payment_methods > li {
	position: relative;
	margin: 7px 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid #dfd1bd;
	border-radius: 11px;
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
body.szl-checkout-page #payment ul.payment_methods > li.is-selected {
	border-color: #b88c43;
	box-shadow: 0 0 0 3px rgba(198,161,91,.12);
}
body.szl-checkout-page #payment ul.payment_methods > li > input {
	position: absolute;
	left: 15px;
	top: 20px;
	accent-color: var(--szlco-wine);
}
body.szl-checkout-page #payment ul.payment_methods > li > label {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	min-height: 54px;
	margin: 0;
	padding: 13px 43px 13px 42px;
	color: var(--szlco-brown);
	font: 600 13px Georgia, serif;
	cursor: pointer;
}
body.szl-checkout-page #payment ul.payment_methods > li > label::before {
	content: "◇";
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	margin-right: 9px;
	color: #9d7536;
	border: 1px solid #d7bc83;
	border-radius: 7px;
	background: #fff9ee;
	font-family: Arial, sans-serif;
}
body.szl-checkout-page #payment li[data-szl-gateway="card"] > label::before { content: "▣"; }
body.szl-checkout-page #payment li[data-szl-gateway="bank"] > label::before { content: "▥"; }
body.szl-checkout-page #payment li[data-szl-gateway="oxxo"] > label::before { content: "O"; font-weight: 800; }
body.szl-checkout-page #payment li[data-szl-gateway="paypal"] > label::before { content: "P"; font-weight: 800; }
body.szl-checkout-page #payment li[data-szl-gateway="google"] > label::before { content: "G"; font-weight: 800; }
body.szl-checkout-page #payment li[data-szl-gateway="apple"] > label::before { content: "A"; font-weight: 800; }
.szl-gateway-check {
	display: none;
	position: absolute;
	right: 14px;
	width: 23px;
	height: 23px;
	color: #fff;
	border-radius: 50%;
	background: var(--szlco-wine);
	font: normal 13px/23px Arial, sans-serif;
	text-align: center;
}
body.szl-checkout-page #payment li.is-selected .szl-gateway-check { display: block; }

body.szl-checkout-page #payment div.payment_box {
	width: auto;
	margin: 0;
	padding: 14px 16px 16px 42px;
	color: #735f51;
	border-top: 1px solid #e9decd;
	background: #fdf9f3;
	font-size: 10px;
	line-height: 1.55;
}
body.szl-checkout-page #payment div.payment_box::before { display: none; }
body.szl-checkout-page #payment .place-order { padding: 18px; }
body.szl-checkout-page #payment .woocommerce-privacy-policy-text {
	color: #887465;
	font-size: 9px;
	line-height: 1.55;
}
body.szl-checkout-page #payment #place_order {
	width: 100%;
	min-height: 52px;
	margin-top: 11px;
	color: #fff;
	border: 1px solid #956b2f;
	border-radius: 10px;
	background: linear-gradient(135deg, #a87833, #d1ac63);
	box-shadow: 0 11px 24px rgba(129,91,37,.2);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .09em;
}
body.szl-checkout-page #payment #place_order:hover {
	background: linear-gradient(135deg, #805b28, #b88a42);
	transform: translateY(-1px);
}

.szl-checkout-assurances {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 13px;
	width: min(1180px, 94%);
	margin: 24px auto 55px;
}
.szl-checkout-assurances > div {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 16px;
	border: 1px solid #dfcfb8;
	border-radius: 14px;
	background: #fffaf3;
}
.szl-checkout-assurances b {
	display: grid;
	flex: 0 0 35px;
	place-items: center;
	height: 35px;
	color: #a57c39;
	border: 1px solid #d5b877;
	border-radius: 50%;
	background: #fff;
}
.szl-checkout-assurances span,
.szl-checkout-assurances strong,
.szl-checkout-assurances small { display: block; }
.szl-checkout-assurances strong { color: var(--szlco-brown); font: 600 13px Georgia, serif; }
.szl-checkout-assurances small { margin-top: 3px; color: #897565; font-size: 9px; line-height: 1.35; }

body.szl-checkout-page .woocommerce-order {
	box-sizing: border-box;
	width: min(900px, 94%);
	margin: 30px auto 60px;
	padding: 30px;
	border: 1px solid var(--szlco-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 20px 50px rgba(65,38,25,.1);
}

@media (max-width: 900px) {
	body.szl-checkout-page form.checkout { grid-template-columns: 1fr; }
	body.szl-checkout-page #customer_details,
	body.szl-checkout-page #order_review,
	body.szl-checkout-page #order_review_heading,
	body.szl-checkout-page .szl-checkout-section-title--order { grid-column: 1; }
	body.szl-checkout-page .szl-checkout-section-title--order { margin: 10px 0 -11px; }
	.szl-checkout-assurances { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.szl-checkout-hero { grid-template-columns: 55px 1fr; gap: 14px; padding: 23px 19px; border-radius: 18px; }
	.szl-checkout-hero__seal { width: 55px; height: 55px; }
	.szl-checkout-hero__seal svg { width: 31px !important; height: 31px !important; }
	.szl-checkout-hero h1 { font-size: 31px; }
	.szl-checkout-secure { grid-column: 1 / -1; justify-content: center; }
	.szl-checkout-progress { gap: 6px; font-size: 8px; }
	.szl-checkout-progress i { width: 13px; }
	body.szl-checkout-page #customer_details,
	body.szl-checkout-page #order_review { padding: 17px 14px; border-radius: 16px; }
	.szl-checkout-section-title h2 { font-size: 19px; }
	.szl-checkout-section-title > span,
	.szl-checkout-payment-title > span { flex-basis: 34px; width: 34px; height: 34px; }
	body.szl-checkout-page #payment ul.payment_methods > li > label { font-size: 12px; }
	.szl-checkout-assurances { margin-bottom: 35px; }
}
