/*
 * JustDSL cart + checkout. Same tokens as the shop (shop.css); scoped to
 * .jdsl-cc so no other page is affected.
 */

.jdsl-cc {
	--jd-black: #111;
	--jd-red: var(--e-global-color-adaf8a2, #d10000);
	--jd-text: #2b2b2b;
	--jd-muted: #737373;
	--jd-line: #e5e5e5;
	--jd-soft: #f6f6f6;
	--jd-ok: #1a7f37;
	--jd-radius: 8px;
	--jd-font: "Noto Sans", var(--e-global-typography-primary-font-family, sans-serif), sans-serif;

	max-width: 1240px;
	margin: 0 auto;
	padding: 28px 32px 80px;
	color: var(--jd-text);
	font-family: var(--jd-font);
	font-size: 15px;
	line-height: 1.5;
}

.jdsl-cc *,
.jdsl-cc *::before,
.jdsl-cc *::after {
	box-sizing: border-box;
}

.jdsl-cc a {
	color: inherit;
}

/* ------------------------------------------------------------------ *
 * Head: steps + title
 * ------------------------------------------------------------------ */

.jdsl-cc__head {
	margin-bottom: 28px;
}

.jdsl-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
	font-size: 13px;
	color: var(--jd-muted);
}

.jdsl-steps__item {
	position: relative;
	display: flex;
	align-items: center;
}

.jdsl-steps__item + .jdsl-steps__item::before {
	content: "";
	position: absolute;
	left: -20px;
	top: 50%;
	width: 12px;
	height: 1px;
	background: #c8c8c8;
}

.jdsl-steps__item a {
	display: flex;
	align-items: center;
	text-decoration: none;
}

.jdsl-steps__n {
	display: inline-grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-right: 8px;
	border: 1px solid #c8c8c8;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 600;
}

.jdsl-steps__item.is-current {
	color: var(--jd-black);
	font-weight: 600;
}

.jdsl-steps__item.is-current .jdsl-steps__n {
	border-color: var(--jd-black);
	background: var(--jd-black);
	color: #fff;
}

.jdsl-steps__item.is-done .jdsl-steps__n {
	border-color: var(--jd-black);
	color: var(--jd-black);
}

.jdsl-cc__title {
	margin: 0;
	font-family: var(--jd-font);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--jd-black);
}

/* ------------------------------------------------------------------ *
 * Shared: summary card, rows, buttons, inputs
 * ------------------------------------------------------------------ */

.jdsl-summary {
	padding: 24px;
	border: 1px solid var(--jd-line);
	border-radius: var(--jd-radius);
	background: #fff;
}

.jdsl-summary__title {
	margin: 0 0 16px;
	font-family: var(--jd-font);
	font-size: 17px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-rows {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	border: 0 !important;
}

.jdsl-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
}

.jdsl-row > span:first-child {
	color: var(--jd-muted);
}

.jdsl-row > span:last-child {
	text-align: right;
	font-weight: 500;
	color: var(--jd-black);
}

.jdsl-row--block {
	display: block;
	padding: 6px 0 2px;
}

.jdsl-row__label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--jd-black) !important;
}

.jdsl-row--total {
	margin-top: 6px;
	padding-top: 14px;
	border-top: 1px solid var(--jd-line);
	align-items: baseline;
}

.jdsl-row--total > span:first-child {
	font-size: 15px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-row--total > span:last-child {
	font-size: 20px;
	font-weight: 700;
}

.jdsl-row--total small,
.jdsl-row--total .includes_tax {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--jd-muted);
}

.jdsl-row .woocommerce-remove-coupon {
	margin-left: 6px;
	font-size: 12px;
	color: var(--jd-muted);
}

.jdsl-cc .button,
.jdsl-cc button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 0 20px;
	border: 1px solid var(--jd-black);
	border-radius: var(--jd-radius);
	background: #fff;
	color: var(--jd-black);
	font-family: var(--jd-font);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s, color .15s;
}

.jdsl-cc .button:hover,
.jdsl-cc button.button:hover {
	background: var(--jd-black);
	color: #fff;
}

.jdsl-cc .checkout-button,
.jdsl-cc #place_order {
	width: 100%;
	height: 54px;
	border-color: var(--jd-black) !important;
	background: var(--jd-black) !important;
	color: #fff !important;
	font-size: 16px;
	letter-spacing: .01em;
}

.jdsl-cc .checkout-button:hover,
.jdsl-cc #place_order:hover {
	background: #333 !important;
}

.jdsl-cc .jdsl-btn {
	display: inline-flex;
	align-items: center;
	height: 46px;
	padding: 0 24px;
	border-radius: var(--jd-radius);
	background: var(--jd-black);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.jdsl-cc input.input-text,
.jdsl-cc input[type="text"],
.jdsl-cc input[type="email"],
.jdsl-cc input[type="tel"],
.jdsl-cc input[type="number"],
.jdsl-cc input[type="password"],
.jdsl-cc select,
.jdsl-cc textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #d6d6d6;
	border-radius: var(--jd-radius);
	background: #fff;
	font-family: var(--jd-font);
	font-size: 15px;
	color: var(--jd-text);
	box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}

.jdsl-cc textarea {
	min-height: 96px;
}

.jdsl-cc input:focus,
.jdsl-cc select:focus,
.jdsl-cc textarea:focus {
	border-color: var(--jd-black);
	box-shadow: 0 0 0 3px rgba(17, 17, 17, .08);
	outline: none;
}

.jdsl-cc .select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid #d6d6d6;
	border-radius: var(--jd-radius);
}

.jdsl-cc .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 40px 0 14px;
	line-height: 46px;
	font-size: 15px;
	color: var(--jd-text);
}

.jdsl-cc .select2-container .select2-selection--single .select2-selection__arrow {
	height: 46px;
	right: 8px;
}

.jdsl-summary__secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--jd-muted);
}

/* Notices */
.jdsl-cc .woocommerce-message,
.jdsl-cc .woocommerce-info,
.jdsl-cc .woocommerce-error {
	margin: 0 0 20px;
	padding: 14px 18px 14px 18px;
	border: 1px solid var(--jd-line);
	border-left: 3px solid var(--jd-black);
	border-radius: var(--jd-radius);
	background: var(--jd-soft);
	color: var(--jd-text);
	font-size: 14px;
	list-style: none;
}

.jdsl-cc .woocommerce-message::before,
.jdsl-cc .woocommerce-info::before,
.jdsl-cc .woocommerce-error::before {
	display: none;
}

.jdsl-cc .woocommerce-error {
	border-left-color: var(--jd-red);
}

.jdsl-cc .woocommerce-message {
	border-left-color: var(--jd-ok);
}

.jdsl-cc .woocommerce-error li {
	margin: 0;
}

/* Text left, button right, both vertically centred. */
.jdsl-cc .woocommerce-message,
.jdsl-cc .woocommerce-info {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 16px;
}

.jdsl-cc .woocommerce-message .button,
.jdsl-cc .woocommerce-info .button {
	order: 2;
	float: none;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: 36px;
	margin: 0 0 0 auto;
	padding: 0 16px;
	border: 1px solid var(--jd-black) !important;
	border-radius: var(--jd-radius) !important;
	background: var(--jd-black) !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 600;
	line-height: 1 !important;
	white-space: nowrap;
}

.jdsl-cc .woocommerce-message .button:hover,
.jdsl-cc .woocommerce-info .button:hover {
	background: #333 !important;
	border-color: #333 !important;
}

/* ------------------------------------------------------------------ *
 * Shipping choice cards (cart summary + checkout step)
 * ------------------------------------------------------------------ */

.jdsl-ship__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.jdsl-ship__opt {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #d6d6d6;
	border-radius: var(--jd-radius);
	background: #fff;
	transition: border-color .15s, box-shadow .15s;
}

.jdsl-ship__opt:hover {
	border-color: #9a9a9a;
}

.jdsl-ship__opt.is-selected {
	border-color: var(--jd-black);
	box-shadow: inset 0 0 0 1px var(--jd-black);
}

.jdsl-ship__opt > input.shipping_method {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.jdsl-ship__opt > label {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin: 0 !important;
	padding: 14px 16px;
	cursor: pointer;
}

.jdsl-ship__radio {
	position: relative;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border: 1.5px solid #9a9a9a;
	border-radius: 50%;
}

.jdsl-ship__opt.is-selected .jdsl-ship__radio {
	border-color: var(--jd-black);
}

.jdsl-ship__opt.is-selected .jdsl-ship__radio::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--jd-black);
}

/* Keyboard focus: a soft ring around the whole card, never a box on the label. */
.jdsl-ship__opt > label {
	outline: none !important;
}

.jdsl-ship__opt:has(> input:focus-visible) {
	box-shadow: inset 0 0 0 1px var(--jd-black), 0 0 0 3px rgba(17, 17, 17, .14);
}

.jdsl-ship__text {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.jdsl-ship__name {
	font-size: 14px;
	font-weight: 600;
	color: var(--jd-black);
	line-height: 1.35;
}

.jdsl-ship__detail {
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--jd-muted);
	line-height: 1.4;
}

.jdsl-ship__price {
	font-size: 14px;
	font-weight: 600;
	color: var(--jd-black);
	white-space: nowrap;
}

.jdsl-ship__price.is-free {
	color: var(--jd-ok);
}

/* What courier plugins add under a rate (e.g. the ACS Point picker). */
.jdsl-ship__extra,
.jdsl-ship__later {
	margin: -6px 16px 14px 46px;
	padding: 0;
	font-size: 13px;
	line-height: 1.45;
}

.jdsl-ship__later {
	color: var(--jd-muted);
}

.jdsl-ship__opt [hidden] {
	display: none !important;
}

/* Only under the chosen method. */
.jdsl-ship__opt:not(.is-selected) .jdsl-ship__extra,
.jdsl-ship__opt:not(.is-selected) .jdsl-ship__later {
	display: none;
}

.jdsl-cc .jdsl-ship__extra button,
.jdsl-cc .jdsl-ship__extra .button {
	display: inline-flex;
	align-items: center;
	height: 38px;
	padding: 0 16px;
	border: 1px solid var(--jd-black);
	border-radius: var(--jd-radius);
	background: #fff;
	color: var(--jd-black);
	font-family: var(--jd-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background .15s, color .15s;
}

.jdsl-cc .jdsl-ship__extra button:hover,
.jdsl-cc .jdsl-ship__extra button:focus {
	background: var(--jd-black);
	color: #fff;
}

/* ACS Points */
.jdsl-cc .acs-points-new {
	display: none !important;
}

.jdsl-cc .locker-container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.jdsl-cc .locker-container .point-distance:empty {
	display: none;
}

.jdsl-cc .locker-container .point-distance {
	font-size: 12.5px;
	color: var(--jd-muted);
}

.jdsl-cc .mg-selected-locker-title {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--jd-muted);
}

.jdsl-cc .mg-selected-locker-container {
	width: 100%;
}

.jdsl-cc .mg-selected-locker-link {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 2px 12px;
	align-items: center;
	padding: 10px 12px;
	border: 1px solid var(--jd-line);
	border-radius: var(--jd-radius);
	background: var(--jd-soft);
	text-decoration: none !important;
	color: var(--jd-text) !important;
}

.jdsl-cc .mg-selected-locker-link:hover {
	border-color: var(--jd-black);
}

.jdsl-cc .mg-selected-locker-link img {
	grid-row: span 2;
	width: 32px;
	height: auto;
	margin: 0;
}

.jdsl-cc .mg-selected-locker-content {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--jd-black);
}

.jdsl-cc [class*="mg-selected-locker-payment-status-"] {
	font-size: 12px;
	color: var(--jd-muted);
}

.jdsl-cc .mg-selected-locker-payment-status-yes {
	color: var(--jd-ok);
}

.jdsl-cc .mg-selected-locker-link::after {
	content: "Αλλαγή σημείου";
	grid-column: 2;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 2px;
	color: var(--jd-black);
}

/* The map opens above everything, header included. */
.acs-sp-wrapper {
	z-index: 2147483000 !important;
}

.jdsl-ship__note {
	margin: 0;
	padding: 12px 14px;
	border-radius: var(--jd-radius);
	background: var(--jd-soft);
	font-size: 13px;
	color: var(--jd-muted);
}

/* ------------------------------------------------------------------ *
 * Cart
 * ------------------------------------------------------------------ */

.jdsl-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 40px;
	align-items: start;
}

.jdsl-cart__side {
	position: sticky;
	top: 24px;
	float: none !important;
	width: auto !important;
}

.admin-bar .jdsl-cart__side {
	top: 56px;
}

.jdsl-cc .cart-collaterals .cart_totals {
	float: none;
	width: auto;
}

.jdsl-items {
	border: 0 !important;
	margin: 0 !important;
}

.jdsl-item {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr) auto;
	gap: 18px;
	padding: 20px 0;
	border-bottom: 1px solid var(--jd-line);
}

.jdsl-item:first-child {
	padding-top: 0;
}

.jdsl-item__thumb a,
.jdsl-item__thumb img {
	display: block;
	width: 104px !important;
	height: 140px !important;
	object-fit: cover;
	border-radius: 6px;
	background: var(--jd-soft);
}

.jdsl-item__info {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.jdsl-item__name {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--jd-black);
}

.jdsl-item__name a {
	text-decoration: none;
}

.jdsl-item__name a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.jdsl-item__meta dl.variation {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 12px;
	margin: 0;
	font-size: 13px;
	color: var(--jd-muted);
}

.jdsl-item__meta dl.variation dt,
.jdsl-item__meta dl.variation dd {
	float: none;
	margin: 0;
	padding: 0;
	font-weight: 400;
}

.jdsl-item__meta dl.variation dd p {
	margin: 0;
}

.jdsl-item__meta dl.variation dt {
	margin-right: -8px;
}

.jdsl-item__unit {
	font-size: 13px;
	color: var(--jd-muted);
}

.jdsl-item__unit del {
	margin-right: 6px;
}

.jdsl-item__unit ins {
	text-decoration: none;
	color: var(--jd-red);
	font-weight: 600;
}

.jdsl-item__controls {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: auto;
	padding-top: 6px;
}

.jdsl-qty .quantity {
	display: inline-flex;
	align-items: center;
	height: 40px;
	border: 1px solid #d6d6d6;
	border-radius: var(--jd-radius);
	overflow: hidden;
}

.jdsl-cc .jdsl-qty input.qty {
	width: 44px;
	min-height: 0;
	height: 38px;
	padding: 0;
	border: 0;
	border-radius: 0;
	text-align: center;
	font-weight: 600;
	-moz-appearance: textfield;
}

.jdsl-cc .jdsl-qty input.qty:focus {
	box-shadow: none;
}

.jdsl-qty input.qty::-webkit-outer-spin-button,
.jdsl-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.jdsl-cc .jdsl-step-btn {
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	background: #fff;
	color: var(--jd-black);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.jdsl-cc .jdsl-step-btn:hover,
.jdsl-cc .jdsl-step-btn:focus {
	background: var(--jd-soft);
	color: var(--jd-black);
}

.jdsl-cc .product-remove a.remove,
.jdsl-cc a.jdsl-item__remove {
	display: inline;
	width: auto;
	height: auto;
	border-radius: 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--jd-muted) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	background: none !important;
}

.jdsl-cc a.jdsl-item__remove:hover {
	color: var(--jd-red) !important;
}

.jdsl-item__total {
	font-size: 15px;
	font-weight: 700;
	color: var(--jd-black);
	white-space: nowrap;
	text-align: right;
}

.jdsl-cart__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding-top: 20px;
}

.jdsl-coupon {
	display: flex;
	gap: 8px;
	flex: 1;
	max-width: 420px;
}

.jdsl-cc .jdsl-coupon input.input-text {
	min-height: 44px;
	height: 44px;
	float: none;
	width: 100% !important;
	margin: 0 !important;
}

.jdsl-coupon .button {
	flex: 0 0 auto;
}

.jdsl-coupon.is-loading {
	opacity: .6;
	pointer-events: none;
}

/* Quantities update by themselves; the button stays for no-JS. */
.jdsl-cc .jdsl-cart__update {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.jdsl-cart__continue {
	display: inline-block;
	margin-top: 22px;
	font-size: 14px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.jdsl-cc .wc-proceed-to-checkout {
	margin-top: 20px;
	padding: 0;
}

.jdsl-cc .wc-proceed-to-checkout .checkout-button {
	margin: 0;
}

/* Cross-sells: shop cards */
.jdsl-cart__cross {
	max-width: none;
	margin: 56px 0 0;
	padding: 0;
}

.jdsl-cart__cross .cross-sells > h2 {
	margin: 0 0 4px;
	font-family: var(--jd-font);
	font-size: 20px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-cart__cross .cross-sells {
	width: auto;
	float: none;
}

.jdsl-cart-empty {
	max-width: 520px;
	margin: 12px auto 0;
	padding: 56px 24px;
	text-align: center;
	color: var(--jd-muted);
}

.jdsl-cart-empty svg {
	color: var(--jd-black);
}

.jdsl-cart-empty__title {
	margin: 16px 0 6px;
	font-size: 20px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-cart-empty__text {
	margin: 0 0 22px;
}

.jdsl-cc--cart .return-to-shop {
	display: none;
}

/* ------------------------------------------------------------------ *
 * Checkout
 * ------------------------------------------------------------------ */

.jdsl-co {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 48px;
	align-items: start;
}

/* Notices WooCommerce prepends inside the form span both columns. */
.jdsl-co > :not(.jdsl-co__main):not(.jdsl-co__side) {
	grid-column: 1 / -1;
}

.jdsl-co > .woocommerce-NoticeGroup .woocommerce-error {
	margin: 0;
}

.jdsl-co__main {
	grid-column: 1;
	display: flex;
	flex-direction: column;
	gap: 36px;
	min-width: 0;
}

.jdsl-step__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	font-family: var(--jd-font);
	font-size: 19px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-step__n {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jd-black);
	color: #fff;
	font-size: 13px;
}

/* Fields */
.jdsl-cc #customer_details {
	display: block;
	width: auto;
}

.jdsl-cc #customer_details .col-1,
.jdsl-cc #customer_details .col-2 {
	float: none;
	width: auto;
	max-width: none;
	padding: 0;
}

.jdsl-cc .woocommerce-billing-fields > h3,
.jdsl-cc .woocommerce-additional-fields > h3 {
	display: none;
}

.jdsl-cc .woocommerce-billing-fields__field-wrapper,
.jdsl-cc .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 14px;
}

.jdsl-cc .form-row {
	grid-column: 1 / -1;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.jdsl-cc .form-row-first {
	grid-column: 1;
}

.jdsl-cc .form-row-last {
	grid-column: 2;
}

.jdsl-cc .form-row label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 500;
	color: var(--jd-text);
	line-height: 1.3;
}

.jdsl-cc .form-row label .required {
	color: var(--jd-red);
	text-decoration: none;
}

.jdsl-cc .form-row label .optional {
	font-weight: 400;
	color: var(--jd-muted);
}

.jdsl-cc .form-row.woocommerce-invalid input.input-text,
.jdsl-cc .form-row.woocommerce-invalid select {
	border-color: var(--jd-red);
}

.jdsl-cc .form-row.woocommerce-validated input.input-text {
	border-color: #d6d6d6;
}

.jdsl-cc .checkout-inline-error-message {
	margin: 6px 0 0;
	font-size: 12.5px;
	color: var(--jd-red);
}

.jdsl-cc #ship-to-different-address {
	margin: 22px 0 14px;
	font-family: var(--jd-font);
	font-size: 14px;
	font-weight: 500;
}

.jdsl-cc #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

.jdsl-cc input[type="checkbox"],
.jdsl-cc input[type="radio"] {
	width: 18px;
	height: 18px;
	min-height: 0;
	margin: 0;
	accent-color: var(--jd-black);
}

.jdsl-cc .woocommerce-additional-fields {
	margin-top: 22px;
}

.jdsl-cc .woocommerce-account-fields {
	margin-top: 18px;
}

.jdsl-cc .woocommerce-account-fields .create-account label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
}

/* Pickup: contact details only */
.jdsl-pickup-note {
	display: none;
	margin: -6px 0 18px;
	padding: 12px 14px;
	border-radius: var(--jd-radius);
	background: #edf7ef;
	color: #14532d;
	font-size: 13.5px;
}

.jdsl-co.is-pickup .jdsl-pickup-note {
	display: block;
}

.jdsl-co.is-pickup .jdsl-addr,
.jdsl-co.is-pickup .woocommerce-shipping-fields {
	display: none !important;
}

/* Payment */
.jdsl-cc .jdsl-pay {
	border-radius: 0;
	background: none !important;
}

.jdsl-cc .jdsl-pay ul.payment_methods {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 22px !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none;
}

.jdsl-cc .jdsl-pay ul.payment_methods li.wc_payment_method {
	margin: 0;
	padding: 0;
	border: 1px solid #d6d6d6;
	border-radius: var(--jd-radius);
	background: #fff;
	line-height: 1.4;
}

.jdsl-cc .jdsl-pay ul.payment_methods li.wc_payment_method:has(input:checked) {
	border-color: var(--jd-black);
	box-shadow: inset 0 0 0 1px var(--jd-black);
}

.jdsl-cc .jdsl-pay li.wc_payment_method > input {
	position: absolute;
	margin: 17px 0 0 16px;
}

.jdsl-cc .jdsl-pay li.wc_payment_method > label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 14px 16px 14px 46px;
	font-size: 14px;
	font-weight: 600;
	color: var(--jd-black);
	cursor: pointer;
}

.jdsl-cc .jdsl-pay li.wc_payment_method > label img {
	max-height: 24px;
	margin: 0 0 0 auto;
}

.jdsl-cc .jdsl-pay div.payment_box {
	margin: 0 16px 16px 46px;
	padding: 0;
	background: none;
	font-size: 13.5px;
	color: var(--jd-muted);
}

.jdsl-cc .jdsl-pay div.payment_box::before {
	display: none;
}

.jdsl-cc .jdsl-pay div.payment_box p:last-child {
	margin-bottom: 0;
}

.jdsl-cc .jdsl-pay .place-order {
	margin: 0 !important;
	padding: 0 !important;
}

.jdsl-terms {
	margin: 22px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--jd-muted);
	text-align: center;
}

.jdsl-terms a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.jdsl-cc .woocommerce-privacy-policy-text {
	display: none;
}

/* Summary */
.jdsl-co__side {
	grid-column: 2;
	position: sticky;
	top: 24px;
}

.admin-bar .jdsl-co__side {
	top: 56px;
}

.jdsl-summary__toggle {
	display: none;
}

.jdsl-co .jdsl-summary {
	background: var(--jd-soft);
	border-color: var(--jd-soft);
}

.jdsl-review {
	margin: 0 !important;
	border: 0 !important;
}

.jdsl-review__items {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--jd-line);
}

.jdsl-review__item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
}

.jdsl-review__thumb {
	position: relative;
}

.jdsl-review__thumb img {
	display: block;
	width: 56px !important;
	height: 72px !important;
	object-fit: cover;
	border-radius: 6px;
	background: #fff;
}

.jdsl-review__qty {
	position: absolute;
	top: -7px;
	right: -7px;
	display: grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--jd-black);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.jdsl-review__name {
	display: block;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--jd-black);
}

.jdsl-review__info dl.variation {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
	margin: 2px 0 0;
	font-size: 12px;
	color: var(--jd-muted);
}

.jdsl-review__info dl.variation dt,
.jdsl-review__info dl.variation dd {
	float: none;
	margin: 0;
	padding: 0;
	font-weight: 400;
}

.jdsl-review__info dl.variation dd p {
	margin: 0;
}

.jdsl-review__total {
	font-size: 14px;
	font-weight: 600;
	color: var(--jd-black);
	white-space: nowrap;
}

.jdsl-coupon--checkout {
	max-width: none;
	margin-top: 18px;
}

.jdsl-coupon__notice {
	margin-top: 10px;
}

.jdsl-coupon__notice .woocommerce-message,
.jdsl-coupon__notice .woocommerce-error,
.jdsl-coupon__notice .woocommerce-info {
	margin: 0;
	font-size: 13px;
}

/* Login / coupon toggles WooCommerce prints above the form */
.jdsl-cc .woocommerce-form-login-toggle .woocommerce-info {
	background: #fff;
	border-left-color: var(--jd-line);
}

.jdsl-cc form.woocommerce-form-login {
	margin: 0 0 24px;
	padding: 20px;
	border: 1px solid var(--jd-line);
	border-radius: var(--jd-radius);
}

/* WooCommerce's blockUI while it refreshes */
.jdsl-cc .blockUI.blockOverlay {
	background: rgba(255, 255, 255, .6) !important;
}

/* ------------------------------------------------------------------ *
 * Order received
 * ------------------------------------------------------------------ */

.jdsl-cc--received .woocommerce-order {
	max-width: 760px;
}

.jdsl-cc--received .woocommerce-thankyou-order-received {
	padding: 18px 20px;
	border-radius: var(--jd-radius);
	background: #edf7ef;
	color: #14532d;
	font-size: 15px;
}

.jdsl-cc--received ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
	margin: 22px 0;
	padding: 0;
	list-style: none;
}

.jdsl-cc--received ul.woocommerce-order-overview::before,
.jdsl-cc--received ul.woocommerce-order-overview::after {
	display: none;
}

.jdsl-cc--received ul.woocommerce-order-overview li {
	margin: 0;
	padding: 14px 16px;
	border: 1px solid var(--jd-line) !important;
	border-radius: var(--jd-radius);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--jd-muted);
}

.jdsl-cc--received ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	font-size: 15px;
	text-transform: none;
	letter-spacing: 0;
	color: var(--jd-black);
}

.jdsl-cc--received h2 {
	font-family: var(--jd-font);
	font-size: 18px;
	font-weight: 600;
	color: var(--jd-black);
}

.jdsl-cc--received table.shop_table {
	border: 1px solid var(--jd-line);
	border-radius: var(--jd-radius);
	border-collapse: separate;
	overflow: hidden;
	font-size: 14px;
}

/* ------------------------------------------------------------------ *
 * Responsive
 * ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.jdsl-cc {
		padding: 24px 24px 64px;
	}

	.jdsl-cart,
	.jdsl-co {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 32px;
	}
}

@media (max-width: 860px) {
	.jdsl-cart,
	.jdsl-co {
		grid-template-columns: minmax(0, 1fr);
	}

	.jdsl-cart__side,
	.jdsl-co__side {
		position: static;
	}

	.jdsl-co__main,
	.jdsl-co__side {
		grid-column: 1;
	}

	/* Summary first on the checkout, folded. */
	.jdsl-co__side {
		order: -1;
	}

	.jdsl-co .jdsl-summary {
		padding: 0;
	}

	.jdsl-summary__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 16px 18px;
		border: 0;
		background: none;
		font-family: var(--jd-font);
		font-size: 14px;
		font-weight: 600;
		color: var(--jd-black);
		cursor: pointer;
	}

	.jdsl-summary__toggle > span:first-child::after {
		content: "";
		display: inline-block;
		width: 7px;
		height: 7px;
		margin-left: 10px;
		border-right: 1.6px solid currentColor;
		border-bottom: 1.6px solid currentColor;
		transform: rotate(45deg) translateY(-3px);
		transition: transform .2s;
	}

	.jdsl-summary.is-open .jdsl-summary__toggle > span:first-child::after {
		transform: rotate(-135deg);
	}

	.jdsl-summary__toggle:hover,
	.jdsl-summary__toggle:focus {
		background: none;
		color: var(--jd-black);
	}

	.jdsl-co .jdsl-summary__body {
		display: none;
		padding: 0 18px 18px;
	}

	.jdsl-co .jdsl-summary.is-open .jdsl-summary__body {
		display: block;
	}

	.jdsl-co .jdsl-summary__title {
		display: none;
	}
}

@media (max-width: 600px) {
	.jdsl-cc {
		padding: 16px 16px 48px;
		font-size: 14px;
	}

	.jdsl-steps {
		gap: 6px 22px;
		font-size: 12px;
	}

	.jdsl-steps__item:not(.is-current) .jdsl-steps__label {
		display: none;
	}

	.jdsl-item {
		grid-template-columns: 84px minmax(0, 1fr);
		gap: 14px;
	}

	.jdsl-item__thumb a,
	.jdsl-item__thumb img {
		width: 84px !important;
		height: 112px !important;
	}

	.jdsl-item__total {
		grid-column: 2;
		text-align: left;
	}

	.jdsl-cc .woocommerce-billing-fields__field-wrapper,
	.jdsl-cc .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.jdsl-cc .form-row-first,
	.jdsl-cc .form-row-last {
		grid-column: 1 / -1;
	}

	.jdsl-summary {
		padding: 18px;
	}
}

/* The base theme colours every <button> on hover/focus; keep ours. */
.jdsl-cc .jdsl-summary__toggle:focus-visible,
.jdsl-cc button:focus-visible,
.jdsl-cc a:focus-visible {
	outline: 2px solid var(--jd-black);
	outline-offset: 2px;
}
