/*
 * cjpt-site: cart, checkout and thank-you (order received). Loaded only there (inc/checkout.php).
 * Styles WooCommerce's own classic markup and NextMove's thank-you page; nothing is moved in the DOM.
 * Look: the approved checkout-v2 mockup (member-area v2 style): page #F5F5F5, white 12px cards, Josefin Sans headings and
 * labels, Open Sans body, brand-teal (#56C6D6) square buttons with dark text (lime on hover), dark #262626 links and
 * focus rings. No other teal or blue is used here.
 * Checkout layout: form.checkout becomes a 2-column grid at 981px+ (details and payment left, sticky order summary
 * right); #order_review is display:contents so its table and #payment can sit in different columns.
 * The coupon prompt lives inside the order summary (a row printed by inc/checkout.php); WooCommerce's own coupon field
 * stays in the page and is hidden while html.cjpt-co-js is set (checkout-ui.js drives it).
 */

.cjpt-co {
	--co-ink: #262626;
	--co-text: #262626;
	--co-muted: #656563;
	--co-line: #e3e8e8;
	--co-line-strong: #c9d1d1;
	--co-bg: #f5f5f5;
	--co-card: #fff;
	--co-mist: #ecf7f7;
	--co-brand: #56c6d6;
	--co-lime: #c3e800;
	--co-lime-2: #d9f113;
	--co-error: #b42318;
	--co-error-bg: #fdf1f0;
	--co-ok-bg: #f1f9e3;
	--co-radius: 12px;
	--co-radius-sm: 6px;
	--co-shadow: 0 1px 2px rgba(38, 38, 38, .05), 0 6px 22px rgba(38, 38, 38, .06);
	--co-head: "Josefin Sans", Helvetica, Arial, sans-serif;
	--co-body: "Open Sans", Helvetica, Arial, sans-serif;
	--co-label: 700 13px/1 var(--co-head);
}

/* ------------------------------------------------------------------ */
/* Shared: type, links, focus, notices, buttons, fields                */
/* ------------------------------------------------------------------ */

.cjpt-co .woocommerce,
.cjpt-co .cjpt-ty {
	font-family: var(--co-body);
	font-size: 16px;
	line-height: 1.55;
	color: var(--co-text);
	letter-spacing: 0;
}

.cjpt-co .woocommerce *,
.cjpt-co .woocommerce *::before,
.cjpt-co .woocommerce *::after,
.cjpt-co .cjpt-ty * {
	box-sizing: border-box;
}

.cjpt-co .woocommerce h2,
.cjpt-co .woocommerce h3,
.cjpt-co .cjpt-ty h1,
.cjpt-co .cjpt-ty h2,
.cjpt-co .cjpt-ty h3 {
	font-family: var(--co-head);
	font-weight: 700;
	color: var(--co-ink);
	letter-spacing: 0;
	line-height: 1.18;
	margin: 0 0 16px;
}

.cjpt-co .woocommerce h3 {
	font-size: 22px;
}

.cjpt-co .woocommerce a,
.cjpt-co .cjpt-ty a {
	color: var(--co-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.cjpt-co .woocommerce a:hover,
.cjpt-co .cjpt-ty a:hover {
	color: var(--co-ink);
	text-decoration-thickness: 2px;
}

.cjpt-co .woocommerce a:focus-visible,
.cjpt-co .woocommerce button:focus-visible,
.cjpt-co .woocommerce input:focus-visible,
.cjpt-co .woocommerce select:focus-visible,
.cjpt-co .woocommerce textarea:focus-visible,
.cjpt-co .cjpt-ty a:focus-visible,
.cjpt-co .cjpt-co-sumtoggle:focus-visible,
.cjpt-co .cjpt-co-coupon-toggle:focus-visible,
.cjpt-co .cjpt-co-coupon-apply:focus-visible,
.cjpt-co .cjpt-co-coupon-input:focus-visible,
.cjpt-co--cart header.elementor-location-header a:focus-visible,
.cjpt-co--checkout header.elementor-location-header a:focus-visible,
.cjpt-co--thankyou header.elementor-location-header a:focus-visible,
.cjpt-co footer.elementor-location-footer a:focus-visible {
	outline: 2px solid var(--co-ink);
	outline-offset: 2px;
	box-shadow: none;
}

.cjpt-co .cjpt-co-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	flex: none;
}

.cjpt-co .cjpt-co-nw {
	white-space: nowrap;
}

/* WooCommerce notices (info / message / error), incl. the ones WooCommerce inserts after AJAX */
.cjpt-co .woocommerce-info,
.cjpt-co .woocommerce-message,
.cjpt-co .woocommerce-error,
.cjpt-co .woocommerce-notice {
	position: relative;
	margin: 0 0 16px;
	padding: 14px 16px 14px 48px;
	list-style: none;
	border: 1px solid var(--co-line);
	border-left-width: 4px;
	border-radius: var(--co-radius-sm);
	background: var(--co-card);
	color: var(--co-text);
	font-size: 15px;
	line-height: 1.5;
	width: auto;
}

.cjpt-co .woocommerce-info::before,
.cjpt-co .woocommerce-message::before,
.cjpt-co .woocommerce-error::before {
	position: absolute;
	top: 14px;
	left: 16px;
	width: 20px;
	height: 20px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
	border-radius: 50%;
	color: #fff;
}

.cjpt-co .woocommerce-info { border-left-color: var(--co-brand); }
.cjpt-co .woocommerce-info::before { content: "i"; background: var(--co-ink); }
.cjpt-co .woocommerce-message { border-left-color: #6a8f00; background: var(--co-ok-bg); }
.cjpt-co .woocommerce-message::before { content: "\2713"; background: #4f6b00; }
.cjpt-co .woocommerce-error { border-left-color: var(--co-error); background: var(--co-error-bg); }
.cjpt-co .woocommerce-error::before { content: "!"; background: var(--co-error); }
.cjpt-co .woocommerce-error li { margin: 0; padding: 2px 0; list-style: none; }
.cjpt-co .woocommerce .woocommerce-error a,
.cjpt-co .woocommerce-error a { color: #7a1a14 !important; font-weight: 700; text-decoration: underline; }
.cjpt-co .woocommerce-error li + li { border-top: 1px solid rgba(180, 35, 24, .12); padding-top: 6px; margin-top: 4px; }
.cjpt-co .woocommerce-message .button,
.cjpt-co .woocommerce-info .button { float: none; margin: 0 0 0 8px; }

/* Buttons: secondary (white, dark outline) by default; primary (.alt, checkout buttons) brand teal, lime on hover.
   Square corners, Josefin Sans 700 capitals, letter-spaced (the site's one label style). */
.cjpt-co .woocommerce button.button,
.cjpt-co .woocommerce a.button,
.cjpt-co .woocommerce input.button,
.cjpt-co .cjpt-co-coupon-apply {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	margin: 0;
	padding: 3px 22px 0;
	border: 1.5px solid var(--co-ink);
	border-radius: 0;
	background: var(--co-card);
	color: var(--co-ink);
	font: 700 13px/1 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	text-shadow: none;
	white-space: nowrap;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.cjpt-co .woocommerce button.button:hover,
.cjpt-co .woocommerce a.button:hover,
.cjpt-co .woocommerce input.button:hover,
.cjpt-co .cjpt-co-coupon-apply:hover {
	background: var(--co-mist);
	border-color: var(--co-ink);
	color: var(--co-ink);
	text-decoration: none;
}

.cjpt-co .woocommerce button.button:disabled,
.cjpt-co .woocommerce button.button[disabled],
.cjpt-co .cjpt-co-coupon-apply:disabled {
	opacity: .55;
	cursor: not-allowed;
	background: var(--co-card);
	color: var(--co-muted);
	padding: 3px 22px 0;
}

.cjpt-co .woocommerce #place_order,
.cjpt-co .woocommerce a.checkout-button,
.cjpt-co .woocommerce button.button.alt,
.cjpt-co .woocommerce a.button.alt,
.cjpt-co .woocommerce form.woocommerce-form-login .woocommerce-form-login__submit {
	width: 100%;
	min-height: 48px;
	padding: 3px 26px 0;
	border: 1.5px solid var(--co-brand);
	border-radius: 0;
	background: var(--co-brand);
	color: var(--co-ink);
	font: 700 14px/1 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	float: none;
}

.cjpt-co .woocommerce #place_order {
	min-height: 56px;
	font-size: 15px;
}

.cjpt-co .woocommerce #place_order:hover,
.cjpt-co .woocommerce a.checkout-button:hover,
.cjpt-co .woocommerce button.button.alt:hover,
.cjpt-co .woocommerce a.button.alt:hover,
.cjpt-co .woocommerce form.woocommerce-form-login .woocommerce-form-login__submit:hover {
	background: var(--co-lime);
	border-color: var(--co-lime);
	color: var(--co-ink);
}

/* Lock before "Place order", arrow after "Proceed to checkout" (drawn by CSS: the button markup belongs to WooCommerce and its payment plugins) */
.cjpt-co .woocommerce #place_order::before,
.cjpt-co .woocommerce a.checkout-button::after {
	content: "";
	flex: none;
	width: 17px;
	height: 17px;
	margin-top: -3px;
	background: currentColor;
	-webkit-mask: var(--co-mask) center / contain no-repeat;
	mask: var(--co-mask) center / contain no-repeat;
}

.cjpt-co .woocommerce #place_order::before {
	--co-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}

.cjpt-co .woocommerce a.checkout-button::after {
	--co-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
}

/* Form fields */
.cjpt-co .woocommerce form .form-row {
	margin: 0 0 20px;
	padding: 0;
}

.cjpt-co .woocommerce form .form-row label,
.cjpt-co .woocommerce form label {
	display: block;
	margin: 0 0 7px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--co-ink);
}

.cjpt-co .woocommerce form .form-row .required {
	color: var(--co-error);
	text-decoration: none;
	border: 0;
}

.cjpt-co .woocommerce form .form-row .optional {
	color: var(--co-muted);
	font-weight: 400;
}

.cjpt-co .woocommerce form .form-row span.description {
	position: static;
	display: block;
	width: auto;
	margin: 7px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--co-muted);
}

.cjpt-co .woocommerce form .form-row span.description::before,
.cjpt-co .woocommerce form .form-row span.description::after {
	display: none;
}

.cjpt-co .woocommerce form .form-row input.input-text,
.cjpt-co .woocommerce form .form-row textarea,
.cjpt-co .woocommerce form .form-row select,
.cjpt-co .woocommerce .coupon input.input-text,
.cjpt-co .woocommerce form.checkout_coupon input.input-text,
.cjpt-co .woocommerce form.login input.input-text,
.cjpt-co .cjpt-co-coupon-input {
	display: block;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 12px 16px;
	border: 1.5px solid var(--co-line-strong);
	border-radius: var(--co-radius-sm);
	background: #fff;
	color: var(--co-ink);
	font-family: var(--co-body);
	font-size: 16px; /* 16px: no zoom-on-focus on iOS */
	line-height: 1.4;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.cjpt-co .woocommerce ::placeholder,
.cjpt-co .cjpt-co-coupon-input::placeholder {
	color: #737371;
	opacity: 1;
}

.cjpt-co .woocommerce form .form-row input.input-text:focus,
.cjpt-co .woocommerce form .form-row select:focus,
.cjpt-co .woocommerce .coupon input.input-text:focus,
.cjpt-co .woocommerce form.checkout_coupon input.input-text:focus,
.cjpt-co .woocommerce form.login input.input-text:focus,
.cjpt-co .cjpt-co-coupon-input:focus {
	border-color: var(--co-ink);
	box-shadow: 0 0 0 3px rgba(86, 198, 214, .55);
}

/* selectWoo (country / state) */
.cjpt-co .select2-container .select2-selection--single {
	height: 52px;
	border: 1.5px solid var(--co-line-strong);
	border-radius: var(--co-radius-sm);
	background: #fff;
}

.cjpt-co .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 44px 0 16px;
	line-height: 49px;
	color: var(--co-ink);
	font-size: 16px;
}

.cjpt-co .select2-container .select2-selection--single .select2-selection__arrow {
	height: 49px;
	right: 10px;
}

.cjpt-co .select2-container--focus .select2-selection--single,
.cjpt-co .select2-container--open .select2-selection--single {
	border-color: var(--co-ink);
	box-shadow: 0 0 0 3px rgba(86, 198, 214, .55);
}

.cjpt-co .select2-container--focus .select2-selection--single:focus-visible {
	outline: 2px solid var(--co-ink);
	outline-offset: 2px;
}

.select2-dropdown {
	border-color: var(--co-line-strong);
	border-radius: var(--co-radius-sm);
	overflow: hidden;
}

.select2-results__option {
	padding: 10px 14px;
	font-size: 16px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--co-ink);
	color: #fff;
}

/* Invalid fields (WooCommerce adds .woocommerce-invalid and, in 9+, an inline message) */
.cjpt-co .woocommerce form .form-row.woocommerce-invalid input.input-text,
.cjpt-co .woocommerce form .form-row.woocommerce-invalid select,
.cjpt-co .woocommerce form .form-row.woocommerce-invalid .select2-selection {
	border-color: var(--co-error);
	border-width: 2px;
}

.cjpt-co .woocommerce form .form-row.woocommerce-invalid label {
	color: var(--co-error);
}

.cjpt-co .woocommerce form .form-row.woocommerce-validated input.input-text {
	border-color: var(--co-line-strong);
}

.cjpt-co .woocommerce .checkout-inline-error-message {
	margin: 6px 0 0;
	color: var(--co-error);
	font-size: 14px;
	font-weight: 600;
}

/* Checkboxes (terms, remember me) and radios: drawn as in the mockup, big hit area */
.cjpt-co .woocommerce form .form-row input[type="checkbox"],
.cjpt-co .woocommerce input[type="radio"],
.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: none;
	margin: 0;
	background-color: #fff;
	border: 1.5px solid var(--co-muted);
	cursor: pointer;
}

.cjpt-co .woocommerce form .form-row input[type="checkbox"],
.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
	width: 22px;
	height: 22px;
	border-radius: 4px;
}

.cjpt-co .woocommerce form .form-row input[type="checkbox"]:checked,
.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"]:checked {
	border-color: var(--co-ink);
	background-color: var(--co-brand);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23262626' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	background-position: center;
	background-size: 16px;
	background-repeat: no-repeat;
}

.cjpt-co .woocommerce input[type="radio"] {
	width: 20px;
	height: 20px;
	border-radius: 50%;
}

.cjpt-co .woocommerce input[type="radio"]:checked {
	border: 2px solid var(--co-ink);
	background-image: radial-gradient(circle, var(--co-ink) 0 4.5px, #fff 5px);
}

.cjpt-co .woocommerce form .form-row label.checkbox,
.cjpt-co .woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	position: relative;
	display: block;
	min-height: 44px;
	padding: 9px 0 9px 34px;
	font-weight: 400;
	font-size: 15px;
	line-height: 1.5;
	cursor: pointer;
}

.cjpt-co .woocommerce form .form-row label.checkbox input,
.cjpt-co .woocommerce form .form-row .woocommerce-form__label-for-checkbox input {
	position: absolute;
	top: 10px;
	left: 0;
}

/* Screen-reader text inside WooCommerce markup */
.cjpt-co .woocommerce .screen-reader-text,
.cjpt-co .cjpt-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Cards */
.cjpt-co .woocommerce .cjpt-card,
.cjpt-co #customer_details,
.cjpt-co .woocommerce-checkout #payment,
.cjpt-co .cart_totals,
.cjpt-co .woocommerce-cart-form {
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

/* Reassurance line under Place order. WooCommerce floats #place_order (#payment #place_order beats our rule above), so the
   line clears the float or its 14px margin has no effect and it touches the button. */
.cjpt-co #payment #place_order {
	float: none;
}

.cjpt-co .cjpt-co-reassure {
	clear: both;
	display: flex;
	flex: 1 1 100%;
	width: 100%;
	align-items: flex-start;
	gap: 8px;
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--co-muted);
}

.cjpt-co .cjpt-co-reassure .cjpt-co-icon {
	flex: none;
	margin-top: 3px;
	font-size: 14px;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-reassure a {
	font-weight: 600;
}

.cjpt-co .cjpt-co-sep {
	display: none;
}

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

/* Returning customer bar (a card, user icon at the left) */
.cjpt-co .cjpt-co-returning,
.cjpt-co .woocommerce-form-login-toggle .woocommerce-info {
	position: relative;
	margin: 0 0 24px;
	padding: 16px 22px 16px 54px;
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	background: var(--co-card);
	font-size: 15px;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-returning::before,
.cjpt-co .woocommerce-form-login-toggle .woocommerce-info::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 22px;
	width: 18px;
	height: 18px;
	margin: -9px 0 0;
	border-radius: 0;
	background: var(--co-muted);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
}

.cjpt-co .cjpt-co-returning__q {
	font-weight: 700;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-returning a.cjpt-co-returning__link,
.cjpt-co .woocommerce-form-coupon-toggle a.showcoupon {
	display: inline-block;
	padding: 11px 2px;
	margin: -11px 0;
	font-weight: 600;
}

.cjpt-co .cjpt-co-returning__why {
	color: var(--co-muted);
}

/* WooCommerce's own "Have a coupon code?" link (no-JavaScript fallback; with JavaScript the summary's row replaces it) */
.cjpt-co .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	font-size: 15px;
}

.cjpt-co .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none;
}

.cjpt-co .woocommerce-form-coupon-toggle a.showcoupon {
	font-weight: 600;
}

/* Login form (revealed from the bar) */
.cjpt-co .woocommerce form.woocommerce-form-login,
.cjpt-co .woocommerce form.checkout_coupon {
	margin: 0 0 24px;
	padding: 24px;
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	background: var(--co-card);
	box-shadow: var(--co-shadow);
}

.cjpt-co .woocommerce form.woocommerce-form-login .form-row-first,
.cjpt-co .woocommerce form.woocommerce-form-login .form-row-last {
	float: none;
	width: auto;
}

@media (min-width: 600px) {
	.cjpt-co .woocommerce form.woocommerce-form-login {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 16px;
	}
	.cjpt-co .woocommerce form.woocommerce-form-login[style*="display: none"],
	.cjpt-co .woocommerce form.woocommerce-form-login[style*="display:none"] {
		display: none;
	}
	.cjpt-co .woocommerce form.woocommerce-form-login > * {
		grid-column: 1 / -1;
	}
	.cjpt-co .woocommerce form.woocommerce-form-login > .form-row-first { grid-column: 1; }
	.cjpt-co .woocommerce form.woocommerce-form-login > .form-row-last { grid-column: 2; }
	.cjpt-co .woocommerce form.woocommerce-form-login > .clear { display: none; }
}

.cjpt-co .woocommerce form.woocommerce-form-login .form-row:last-of-type {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
}

.cjpt-co .woocommerce form.woocommerce-form-login .woocommerce-form-login__submit {
	order: 2;
	width: auto;
	min-width: 140px;
	float: none;
	margin: 0;
}

.cjpt-co .woocommerce form.woocommerce-form-login .woocommerce-form-login__rememberme {
	margin: 0;
	font-weight: 400;
}

.cjpt-co .woocommerce form.woocommerce-form-login .lost_password {
	margin: 0;
	font-size: 14px;
}

.cjpt-co .woocommerce form.woocommerce-form-login .lost_password a {
	display: inline-block;
	padding: 11px 0;
}

/* WooCommerce's coupon form (no-JavaScript fallback) */
.cjpt-co .woocommerce form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

.cjpt-co .woocommerce form.checkout_coupon[style*="display: none"],
.cjpt-co .woocommerce form.checkout_coupon[style*="display:none"] {
	display: none;
}

.cjpt-co .woocommerce form.checkout_coupon .form-row {
	float: none;
	width: auto;
	margin: 0;
}

.cjpt-co .woocommerce form.checkout_coupon .form-row-first { flex: 1 1 220px; }
.cjpt-co .woocommerce form.checkout_coupon .clear { display: none; }
.cjpt-co .woocommerce form.checkout_coupon .coupon-error-notice { flex-basis: 100%; }

/* With JavaScript the coupon lives in the order summary: WooCommerce's own toggle and form stay in the page (checkout-ui.js
   clicks its Apply button) but are not shown. html.cjpt-co-js is set in the <head>. */
.cjpt-co-js .cjpt-co .woocommerce-form-coupon-toggle,
.cjpt-co-js .cjpt-co form.checkout_coupon,
.cjpt-co-js .cjpt-co--cart td.actions .coupon {
	display: none !important;
}

html:not(.cjpt-co-js) .cjpt-co-coupon-row {
	display: none;
}

/* WooCommerce shows the login and coupon forms (and hides the coupon link) while <body> still has .woocommerce-no-js,
   which its footer script swaps for .woocommerce-js only at the end of the page: on a slow connection the page first
   paints with both forms open, then they snap shut (a big layout jump). html.cjpt-co-js is set in the <head>, so when
   JavaScript runs the forms start closed, as they end up anyway. Without JavaScript WooCommerce's behaviour stays. */
.cjpt-co-js .woocommerce-no-js form.woocommerce-form-login[style*="display:none"],
.cjpt-co-js .woocommerce-no-js form.woocommerce-form-login[style*="display: none"] {
	display: none !important;
}

/* Tablet / phone "Show order summary" bar (printed by inc/checkout.php; shown only with JS: html.cjpt-co-js) */
.cjpt-co .cjpt-co-sumtoggle {
	display: none;
}

/* The checkout form itself */
.cjpt-co .woocommerce form.checkout {
	margin: 0;
}

.cjpt-co .woocommerce form.checkout::before,
.cjpt-co .woocommerce form.checkout::after {
	display: none;
}

.cjpt-co #customer_details {
	padding: 28px 32px 10px;
	margin: 0 0 24px;
}

.cjpt-co #customer_details::before,
.cjpt-co #customer_details::after {
	display: none;
}

.cjpt-co #customer_details .col-1,
.cjpt-co #customer_details .col-2 {
	float: none;
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0;
}

.cjpt-co #customer_details .col-2:empty,
.cjpt-co #customer_details .woocommerce-additional-fields:empty,
.cjpt-co #customer_details .woocommerce-account-fields:empty,
.cjpt-co #customer_details .woocommerce-shipping-fields:empty {
	display: none;
}

.cjpt-co #customer_details h3 {
	margin: 0 0 20px;
}

.cjpt-co .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
}

.cjpt-co .woocommerce-billing-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	float: none;
	width: auto;
}

.cjpt-co .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
.cjpt-co .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 2; }

.cjpt-co #order_review_heading {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	margin: 0;
	padding: 0;
}

/* "Payment" heading + the payment box read as one card */
.cjpt-co .woocommerce .cjpt-co-payhead {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 28px 32px 6px;
	font-size: 22px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-bottom: 0;
	border-radius: var(--co-radius) var(--co-radius) 0 0;
	box-shadow: var(--co-shadow);
	clip-path: inset(-30px -30px 0 -30px);
}

.cjpt-co .woocommerce .cjpt-co-payhead + #payment {
	clip-path: inset(0 -30px -30px -30px);
	margin-top: -1px; /* no hairline between the heading and the box at fractional pixel positions */
	border-top: 0;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	padding-top: 14px;
}

/* Order summary (the review table, as a card) */
.cjpt-co table.woocommerce-checkout-review-order-table {
	display: block;
	width: 100%;
	margin: 0 0 24px;
	padding: 24px 28px 24px;
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	background: var(--co-card);
	box-shadow: var(--co-shadow);
	border-collapse: separate;
	font-size: 15px;
}

.cjpt-co table.woocommerce-checkout-review-order-table thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.cjpt-co table.woocommerce-checkout-review-order-table tbody,
.cjpt-co table.woocommerce-checkout-review-order-table tfoot {
	display: block;
}

.cjpt-co table.woocommerce-checkout-review-order-table tr {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	border: 0;
}

.cjpt-co table.woocommerce-checkout-review-order-table th,
.cjpt-co table.woocommerce-checkout-review-order-table td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	font-weight: 400;
	text-align: left;
	line-height: 1.45;
	color: var(--co-ink);
}

/* First row: "Order summary" + "Edit cart" */
.cjpt-co table.woocommerce-checkout-review-order-table tr.cjpt-co-sum-head {
	display: block;
	margin: 0 0 18px;
}

.cjpt-co table.woocommerce-checkout-review-order-table tr.cjpt-co-sum-head td {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.cjpt-co .cjpt-co-sum-title {
	font: 700 22px/1.18 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co a.cjpt-co-editcart {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	font-size: 14px;
	font-weight: 600;
}

.cjpt-co table.woocommerce-checkout-review-order-table tr.cart_item {
	padding: 0 0 16px;
	border-bottom: 1px solid var(--co-line);
}

/* Second and later items: the same space above the line as below it. */
.cjpt-co table.woocommerce-checkout-review-order-table tr.cart_item + tr.cart_item {
	padding-top: 16px;
}

.cjpt-co table.woocommerce-checkout-review-order-table td.product-name {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 54px;
	padding-left: 86px;
	font-size: 0; /* the "&nbsp;" WooCommerce prints after the name would otherwise make an empty line; children set their size */
	line-height: 0;
}

.cjpt-co table.woocommerce-checkout-review-order-table td.product-name > * {
	font-size: 15px;
	line-height: 1.35;
}

.cjpt-co table.woocommerce-checkout-review-order-table td.product-name .product-quantity:not(.cjpt-sr) {
	display: block;
	font-size: 13.5px;
}

.cjpt-co table.woocommerce-checkout-review-order-table td.product-total {
	flex: none;
	font-weight: 600;
	color: var(--co-ink);
	white-space: nowrap;
}

.cjpt-co .cjpt-co-thumb {
	position: absolute;
	top: 0;
	left: 0;
	width: 72px;
	height: 54px;
	border-radius: 6px;
	overflow: hidden;
	background: var(--co-mist);
}

.cjpt-co .cjpt-co-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	margin: 0;
}

.cjpt-co .cjpt-co-thumb__tile {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	background: var(--co-mist);
}

.cjpt-co .cjpt-co-thumb__tile::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 38%;
	height: 50%;
	background: var(--co-ink);
	-webkit-mask: var(--co-icon) center / contain no-repeat;
	mask: var(--co-icon) center / contain no-repeat;
}

.cjpt-co .cjpt-co-thumb__tile--play { --co-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M7 4.5v15a1 1 0 0 0 1.5.86l12.2-7.5a1 1 0 0 0 0-1.72L8.5 3.64A1 1 0 0 0 7 4.5Z'/%3E%3C/svg%3E"); }
.cjpt-co .cjpt-co-thumb__tile--calendar { --co-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.cjpt-co .cjpt-co-thumb__tile--file { --co-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3Cpath d='M10 9H8'/%3E%3C/svg%3E"); }

.cjpt-co .cjpt-co-name {
	display: block;
	font-weight: 700;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-what,
.cjpt-co table.woocommerce-checkout-review-order-table td.product-name > .cjpt-co-what {
	display: block;
	margin-top: 2px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--co-muted);
}

.cjpt-co table.woocommerce-checkout-review-order-table .product-quantity {
	font-weight: 600;
	color: var(--co-muted);
}

.cjpt-co table.woocommerce-checkout-review-order-table dl.variation,
.cjpt-co table.woocommerce-checkout-review-order-table td.product-name > dl.variation {
	margin: 4px 0 0;
	font-size: 13.5px;
	color: var(--co-muted);
}

.cjpt-co table.woocommerce-checkout-review-order-table dl.variation dt,
.cjpt-co table.woocommerce-checkout-review-order-table dl.variation dd {
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
	font-weight: 400;
}

.cjpt-co table.woocommerce-checkout-review-order-table dl.variation dd p {
	display: inline;
	margin: 0;
}

.cjpt-co table.woocommerce-checkout-review-order-table dl.variation dd::after {
	content: "";
	display: block;
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot {
	padding-top: 12px;
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot tr {
	padding: 5px 0;
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	white-space: nowrap;
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot small {
	display: block;
	font-size: 12.5px;
	color: var(--co-muted);
}

/* Coupon row inside the summary (checkout and cart share these rules; see also the cart totals below) */
.cjpt-co .cjpt-co-coupon-row {
	display: block;
	margin-top: 8px;
	padding: 8px 0 12px;
	border-top: 1px solid var(--co-line);
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot tr.cjpt-co-coupon-row {
	display: block;
	padding: 8px 0 12px;
}

.cjpt-co .cjpt-co-coupon-row td {
	display: block;
	text-align: left !important;
	white-space: normal !important;
}

.cjpt-co .cjpt-co-coupon-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--co-ink);
	font: 400 15px/1.4 var(--co-body);
	letter-spacing: 0;
	text-transform: none;
	text-align: left;
	box-shadow: none;
	cursor: pointer;
}

.cjpt-co .cjpt-co-coupon-toggle:hover,
.cjpt-co .cjpt-co-coupon-toggle:focus {
	background: none;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-coupon-toggle span {
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.cjpt-co .cjpt-co-coupon-toggle:hover span {
	text-decoration-thickness: 2px;
}

.cjpt-co .cjpt-co-coupon-toggle .cjpt-co-icon {
	font-size: 17px;
}

.cjpt-co .cjpt-co-coupon-panel {
	padding: 6px 0 4px;
}

.cjpt-co .cjpt-co-coupon-panel[hidden] {
	display: none;
}

.cjpt-co .cjpt-co-coupon-label {
	display: block;
	margin: 0 0 7px;
	font-size: 14px;
	font-weight: 600;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-coupon-fields {
	display: flex;
	gap: 10px;
}

.cjpt-co .cjpt-co-coupon-input {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	min-height: 44px;
	padding: 8px 12px;
	font-size: 16px;
	letter-spacing: .04em;
}

.cjpt-co .cjpt-co-coupon-apply {
	flex: none;
	min-height: 44px;
}

/* A rejected code (checkout-ui.js moves WooCommerce's message here from its hidden coupon field) */
.cjpt-co .cjpt-co-coupon-input.has-error,
.cjpt-co .cjpt-co-coupon-input.has-error:focus {
	border-color: var(--co-error);
	border-width: 2px;
}

.cjpt-co .cjpt-co-coupon-error {
	margin: 8px 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--co-error);
}

/* Applied coupon: "Coupon [CODE]  -$x" and, under it, Remove */
.cjpt-co .cjpt-co-chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	height: 24px;
	margin-left: 6px;
	padding: 3px 9px 0;
	border-radius: 4px;
	background: var(--co-mist);
	color: var(--co-ink);
	font: 700 11px/1 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	vertical-align: middle;
}

.cjpt-co .cjpt-co-chip::before {
	content: "";
	width: 12px;
	height: 12px;
	margin-top: -3px;
	background: var(--co-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.cjpt-co .woocommerce table.shop_table tr.cart-discount {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 12px;
	row-gap: 0;
}

.cjpt-co .woocommerce table.shop_table tr.cart-discount th {
	grid-column: 1;
	grid-row: 1;
}

.cjpt-co .woocommerce table.shop_table tr.cart-discount td {
	display: contents;
}

.cjpt-co .cjpt-co-cpn-amt {
	grid-column: 2;
	grid-row: 1;
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
}

.cjpt-co .woocommerce a.woocommerce-remove-coupon {
	grid-column: 1 / -1;
	grid-row: 2;
	justify-self: start;
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--co-ink);
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot .order-total {
	margin-top: 0;
	padding-top: 16px;
	border-top: 1px solid var(--co-line);
	align-items: baseline;
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot .order-total th {
	font: 700 18px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot .order-total td {
	font: 700 28px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co table.woocommerce-checkout-review-order-table tfoot .order-total td small,
.cjpt-co table.woocommerce-checkout-review-order-table tfoot .order-total .includes_tax {
	display: block;
	margin-top: 6px;
	font: 400 13px/1.3 var(--co-body);
	color: var(--co-muted);
}

/* Payment box: works for any gateway (Stripe card element, PayPal redirect, test gateway) */
.cjpt-co .woocommerce-checkout #payment,
.cjpt-co #payment.woocommerce-checkout-payment {
	padding: 20px 32px 30px;
	margin: 0 0 24px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.cjpt-co #payment ul.payment_methods {
	margin: 0 0 12px;
	padding: 0;
	border: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.cjpt-co #payment ul.payment_methods::before,
.cjpt-co #payment ul.payment_methods::after {
	display: none;
}

.cjpt-co #payment ul.payment_methods > li {
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 0 0 1.5px var(--co-line-strong);
	list-style: none;
	line-height: 1.4;
}

.cjpt-co #payment ul.payment_methods > li:has(> input:checked),
.cjpt-co #payment ul.payment_methods > li:only-child {
	box-shadow: 0 0 0 2px var(--co-brand);
}

.cjpt-co #payment ul.payment_methods > li > input[type="radio"] {
	position: absolute;
	top: 19px;
	left: 18px;
	margin: 0;
}

.cjpt-co #payment ul.payment_methods > li > input[type="radio"][style*="display: none"] + label,
.cjpt-co #payment ul.payment_methods > li > input[type="radio"][style*="display:none"] + label {
	padding-left: 18px;
}

.cjpt-co #payment ul.payment_methods > li > label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-height: 58px;
	margin: 0;
	padding: 8px 18px 8px 50px;
	font-size: 16px;
	font-weight: 600;
	color: var(--co-ink);
	cursor: pointer;
}

.cjpt-co #payment ul.payment_methods > li > label img {
	float: none;
	max-height: 24px;
	width: auto;
	margin: 0 0 0 auto;
	vertical-align: middle;
}

.cjpt-co #payment ul.payment_methods > li > label img + img {
	margin-left: 4px;
}

.cjpt-co #payment div.payment_box {
	position: relative;
	width: auto;
	margin: 0;
	padding: 2px 18px 18px 50px;
	border-radius: 0;
	background: none;
	color: var(--co-ink);
	font-size: 15px;
}

.cjpt-co #payment ul.payment_methods > li > input[type="radio"][style*="display: none"] ~ div.payment_box,
.cjpt-co #payment ul.payment_methods > li > input[type="radio"][style*="display:none"] ~ div.payment_box {
	padding-left: 18px;
}

.cjpt-co #payment div.payment_box::before {
	display: none;
}

.cjpt-co #payment div.payment_box p:last-child {
	margin-bottom: 0;
}

.cjpt-co #payment div.payment_box fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.cjpt-co #payment .place-order,
.cjpt-co #payment div.form-row.place-order {
	margin: 0;
	padding: 0;
	float: none;
}

/* Core "Save to account" checkbox (WC_Payment_Gateway::save_payment_method_checkbox, used by Stripe for logged-in
   customers): inline styles width:auto / display:inline, so the size needs !important. */
.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	margin: 12px 0 0;
	padding: 0;
}

.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
	width: 22px !important;
	height: 22px;
	margin: 0;
	flex: none;
}

.cjpt-co #payment p.woocommerce-SavedPaymentMethods-saveNew label {
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	cursor: pointer;
}

.cjpt-co #payment .woocommerce-privacy-policy-text p {
	margin: 20px 0 8px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--co-muted);
}

.cjpt-co #payment .woocommerce-privacy-policy-text a {
	font-weight: 600;
}

.cjpt-co #payment .woocommerce-terms-and-conditions-wrapper {
	margin: 0;
}

.cjpt-co #payment .woocommerce-terms-and-conditions-wrapper .form-row {
	margin: 0;
}

/* The terms text comes from a setting with an inline link colour: override it (same dark underlined link as elsewhere). */
.cjpt-co #payment .woocommerce-terms-and-conditions-checkbox-text a {
	color: var(--co-ink) !important;
	font-weight: 400 !important;
}

/* Total right above Place order */
.cjpt-co #payment .cjpt-co-paytotal {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0 12px;
	margin: 20px 0 16px;
	padding: 20px 0 0;
	border-top: 1px solid var(--co-line);
	font: 700 18px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co #payment .cjpt-co-paytotal__value {
	font: 700 28px/1 var(--co-head);
	text-align: right;
}

.cjpt-co #payment .cjpt-co-paytotal__tax {
	display: block;
	margin-top: 6px;
	font: 400 13px/1.3 var(--co-body);
	color: var(--co-muted);
}

/* Order-pay (/checkout-2/order-pay/<id>/: retrying a failed or pending payment): the same cards as the checkout.
   Its #payment has no .woocommerce-checkout-payment class and its button row is a plain div.form-row. */
.woocommerce-order-pay.cjpt-co #order_review {
	max-width: 760px;
}

.woocommerce-order-pay.cjpt-co #order_review table.shop_table {
	width: 100%;
	margin: 0 0 24px;
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--co-card);
	box-shadow: var(--co-shadow);
	font-size: 15px;
}

.woocommerce-order-pay.cjpt-co #order_review table.shop_table th,
.woocommerce-order-pay.cjpt-co #order_review table.shop_table td {
	padding: 12px 16px;
	border: 0;
	border-top: 1px solid var(--co-line);
	background: none;
	color: var(--co-ink);
	font-weight: 400;
	vertical-align: top;
}

.woocommerce-order-pay.cjpt-co #order_review table.shop_table thead th {
	border-top: 0;
	font: 700 12px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

.woocommerce-order-pay.cjpt-co #order_review table.shop_table td.product-name {
	font-weight: 600;
	color: var(--co-ink);
}

.woocommerce-order-pay.cjpt-co #order_review table.shop_table tfoot tr:last-child th,
.woocommerce-order-pay.cjpt-co #order_review table.shop_table tfoot tr:last-child td {
	font-size: 18px;
	font-weight: 700;
	color: var(--co-ink);
}

.woocommerce-order-pay.cjpt-co #payment {
	padding: 20px 24px 24px;
	margin: 0 0 24px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.woocommerce-order-pay.cjpt-co #payment div.form-row {
	margin: 0;
	padding: 0;
}

@media (max-width: 767px) {
	.woocommerce-order-pay.cjpt-co #payment {
		padding: 16px;
	}
	.woocommerce-order-pay.cjpt-co #order_review table.shop_table th,
	.woocommerce-order-pay.cjpt-co #order_review table.shop_table td {
		padding: 10px 12px;
	}
}

/* WooCommerce's "Show password" eye in the login form: a 44px target (it was 22px) */
.cjpt-co .woocommerce form .password-input input.input-text {
	padding-right: 52px;
}

.cjpt-co .woocommerce form .show-password-input {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	right: 2px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--co-radius-sm);
	background: transparent;
	color: var(--co-ink);
}

/* ---- Checkout layout: 2 columns at 981px+ ---- */
@media (min-width: 981px) {
	/* Only the summary is placed (column 2, all rows). Everything else flows down column 1 in source order: both
	   WooCommerce notice groups (order-review and checkout errors) stack instead of overlapping, and anything a
	   plugin adds to the form lands where it was printed. Extra rows are empty (0 high); the last row is 1fr so a
	   summary taller than the left column adds its extra height there, not between the left column's blocks. */
	.cjpt-co .woocommerce form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
		grid-template-rows: repeat(10, auto) 1fr;
		column-gap: 32px;
		align-items: start;
	}

	.cjpt-co .woocommerce form.checkout > *,
	.cjpt-co .woocommerce form.checkout .cjpt-co-payhead,
	.cjpt-co .woocommerce form.checkout #payment {
		grid-column: 1;
		min-width: 0;
	}

	.cjpt-co .woocommerce form.checkout #order_review {
		display: contents;
	}

	.cjpt-co .woocommerce form.checkout table.woocommerce-checkout-review-order-table {
		grid-column: 2;
		grid-row: 1 / -1;
		position: sticky;
		top: 24px;
		align-self: start;
	}

	.admin-bar.cjpt-co .woocommerce form.checkout table.woocommerce-checkout-review-order-table {
		top: 56px;
	}
}

/* ---- Tablet / phone: one column, summary first (collapsible) ---- */
@media (max-width: 980px) {
	.cjpt-co .woocommerce form.checkout {
		display: flex;
		flex-direction: column;
	}

	.cjpt-co .woocommerce form.checkout #order_review {
		display: contents;
	}

	.cjpt-co .woocommerce form.checkout .woocommerce-NoticeGroup {
		order: -2;
	}

	.cjpt-co .woocommerce form.checkout table.woocommerce-checkout-review-order-table {
		order: -1;
	}

	.cjpt-co-js .cjpt-co .cjpt-co-sumtoggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		min-height: 52px;
		margin: 0 0 16px;
		padding: 12px 16px;
		border: 1px solid var(--co-line);
		border-radius: var(--co-radius);
		background: var(--co-mist);
		color: var(--co-ink);
		font-family: var(--co-body);
		font-size: 15px;
		font-weight: 600;
		letter-spacing: 0;
		text-transform: none;
		text-align: left;
		box-shadow: none;
		cursor: pointer;
	}

	.cjpt-co .cjpt-co-sumtoggle:hover,
	.cjpt-co .cjpt-co-sumtoggle:focus {
		background: #e0f2f2;
		color: var(--co-ink);
	}

	.cjpt-co .cjpt-co-sumtoggle__label {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		color: var(--co-ink);
	}

	.cjpt-co .cjpt-co-sumtoggle__label::after {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform .15s ease;
	}

	.cjpt-co .cjpt-co-sumtoggle[aria-expanded="true"] .cjpt-co-sumtoggle__label::after {
		transform: translateY(2px) rotate(-135deg);
	}

	.cjpt-co .cjpt-co-sumtoggle__total {
		font: 700 17px/1 var(--co-head);
		white-space: nowrap;
	}

	.cjpt-co-js .cjpt-co .woocommerce form.checkout:not(.cjpt-co-sum-open) table.woocommerce-checkout-review-order-table {
		display: none;
	}
}

@media (max-width: 767px) {
	.cjpt-co .woocommerce .cjpt-co-payhead {
		padding: 20px 16px 4px;
		font-size: 20px;
	}
	.cjpt-co #customer_details,
	.cjpt-co #payment.woocommerce-checkout-payment {
		padding-left: 16px;
		padding-right: 16px;
	}
	.cjpt-co #customer_details {
		padding-top: 20px;
	}
	.cjpt-co #customer_details h3 {
		font-size: 20px;
		margin-bottom: 16px;
	}
	.cjpt-co table.woocommerce-checkout-review-order-table {
		padding: 20px 16px;
	}
	.cjpt-co #payment ul.payment_methods > li > label {
		padding-left: 46px;
		padding-right: 13px;
	}
	.cjpt-co #payment ul.payment_methods > li > input[type="radio"] {
		left: 14px;
	}
	.cjpt-co #payment div.payment_box {
		padding: 2px 13px 14px;
	}
	.cjpt-co .cjpt-co-returning,
	.cjpt-co .woocommerce-form-login-toggle .woocommerce-info {
		margin-bottom: 16px;
		padding: 14px 16px 14px 46px;
		font-size: 14.5px;
	}
	.cjpt-co .cjpt-co-returning::before {
		left: 16px;
		top: 22px;
	}
}

@media (max-width: 359px) {
	.cjpt-co .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}
	.cjpt-co .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.cjpt-co .woocommerce-billing-fields__field-wrapper > .form-row-last {
		grid-column: 1;
	}
}

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

.cjpt-co--cart .woocommerce-cart-form {
	padding: 28px;
	margin: 0 0 24px;
}

.cjpt-co--cart table.shop_table.cart {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	border-collapse: separate;
	background: none;
}

.cjpt-co--cart table.shop_table.cart thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.cjpt-co--cart table.shop_table.cart tbody {
	display: block;
}

.cjpt-co--cart table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr) auto;
	grid-template-areas: "thumb name subtotal" "thumb name remove" "thumb qty qty";
	align-items: start;
	column-gap: 24px;
	padding: 0;
	border: 0;
}

.cjpt-co--cart table.shop_table.cart tr.cart_item + tr.cart_item {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--co-line);
}

.cjpt-co--cart table.shop_table.cart td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	float: none;
	width: auto;
}

.cjpt-co--cart .woocommerce table.shop_table.cart tr td,
.cjpt-co--cart .woocommerce table.shop_table.cart tr:nth-child(2n) td {
	text-align: left !important;
	background: none !important;
}

.cjpt-co--cart .woocommerce table.shop_table.cart tr td.product-subtotal,
.cjpt-co--cart .woocommerce table.shop_table.cart tr td.product-remove {
	text-align: right !important;
}

.cjpt-co--cart table.shop_table.cart td::before {
	content: none !important;
	display: none !important;
}

.cjpt-co--cart table.shop_table.cart td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

.cjpt-co--cart table.shop_table.cart td.product-thumbnail a,
.cjpt-co--cart table.shop_table.cart td.product-thumbnail > img {
	display: block;
	width: 168px;
	height: 120px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--co-mist);
}

.cjpt-co--cart table.shop_table.cart td.product-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	margin: 0;
	box-shadow: none;
}

.cjpt-co--cart table.shop_table.cart td.product-name {
	grid-area: name;
	align-self: center;
	min-width: 0;
	font-size: 14px;
	line-height: 1.5;
}

.cjpt-co--cart table.shop_table.cart td.product-name {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.cjpt-co--cart table.shop_table.cart td.product-name .cjpt-co-kick {
	order: -1;
	display: block;
	margin: 0 0 6px;
	font: 700 12.5px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

.cjpt-co--cart table.shop_table.cart td.product-name > a {
	display: inline-block;
	font: 700 24px/1.18 var(--co-head);
	color: var(--co-ink);
	text-decoration: none;
}

.cjpt-co--cart table.shop_table.cart td.product-name > a:hover {
	color: var(--co-ink);
	text-decoration: underline;
}

.cjpt-co--cart table.shop_table.cart td.product-name .cjpt-co-what {
	order: 1;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 400;
}

.cjpt-co--cart table.shop_table.cart td.product-name dl.variation {
	margin: 4px 0 0;
	font-size: 13.5px;
	font-weight: 400;
	color: var(--co-muted);
}

.cjpt-co--cart table.shop_table.cart td.product-name dl.variation dt,
.cjpt-co--cart table.shop_table.cart td.product-name dl.variation dd {
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
	font-weight: 400;
}

.cjpt-co--cart table.shop_table.cart td.product-name dl.variation dd p {
	display: inline;
	margin: 0;
}

.cjpt-co--cart table.shop_table.cart td.product-name dl.variation dd::after {
	content: "";
	display: block;
}

.cjpt-co--cart table.shop_table.cart td.product-price {
	display: none;
}

.cjpt-co--cart table.shop_table.cart td.product-subtotal {
	grid-area: subtotal;
	padding-top: 4px;
	font: 700 24px/1.18 var(--co-head);
	color: var(--co-ink);
	white-space: nowrap;
	text-align: right;
}

.cjpt-co--cart table.shop_table.cart td.product-quantity {
	grid-area: qty;
	margin-top: 12px;
}

.cjpt-co--cart table.shop_table.cart td.product-quantity:not(:has(input[type="number"])) {
	display: none;
}

.cjpt-co--cart table.shop_table.cart .quantity {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.cjpt-co--cart table.shop_table.cart .quantity::before {
	content: "Qty";
	content: "Qty" / "";
	font-size: 14px;
	font-weight: 600;
	color: var(--co-muted);
}

.cjpt-co--cart table.shop_table.cart .quantity input.qty {
	width: 76px;
	min-height: 44px;
	padding: 8px 10px;
	border: 1.5px solid var(--co-line-strong);
	border-radius: var(--co-radius-sm);
	font-size: 16px;
	text-align: center;
}

.cjpt-co--cart table.shop_table.cart td.product-remove {
	grid-area: remove;
	justify-self: end;
	align-self: start;
}

.cjpt-co--cart .woocommerce table.shop_table.cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	width: auto;
	height: auto;
	min-height: 32px;
	margin: 0;
	border-radius: 0;
	color: var(--co-ink) !important;
	background: transparent !important;
	font: 600 14px/1.3 var(--co-body);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.cjpt-co--cart .woocommerce table.shop_table.cart td.product-remove a.remove:hover {
	color: var(--co-ink) !important;
	background: transparent !important;
	text-decoration-thickness: 2px;
}

/* Actions row: WooCommerce's coupon field (hidden while JavaScript is on: the coupon prompt is in the order summary) + update cart */
.cjpt-co--cart table.shop_table.cart tbody tr:not(.cart_item) {
	display: block;
}

.cjpt-co--cart table.shop_table.cart td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 0 0;
}

.cjpt-co--cart table.shop_table.cart td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	flex: 1 1 320px;
	float: none;
	padding: 0;
	margin: 0;
	border: 0;
}

.cjpt-co--cart .woocommerce table.shop_table.cart td.actions .coupon .input-text {
	flex: 1 1 180px;
	width: auto;
	margin: 0;
	float: none;
}

.cjpt-co--cart .woocommerce table.shop_table.cart td.actions .coupon .button {
	flex: none;
	width: auto;
	float: none;
	display: inline-flex;
}

.cjpt-co--cart .woocommerce table.shop_table.cart td.actions .coupon::before,
.cjpt-co--cart .woocommerce table.shop_table.cart td.actions .coupon::after {
	display: none;
}

.cjpt-co--cart table.shop_table.cart td.actions > .button[name="update_cart"] {
	float: none;
	margin-left: auto;
}

.cjpt-co--cart table.shop_table.cart td.actions > .button[name="update_cart"]:disabled {
	display: none;
}

/* Nothing left in the actions row (coupon hidden, Update cart disabled): drop it so the card has no empty strip */
.cjpt-co-js .cjpt-co--cart table.shop_table.cart td.actions:has(> .button[name="update_cart"]:disabled) {
	display: none;
}

/* Order summary card (WooCommerce's cart totals) */
.cjpt-co .cart-collaterals {
	width: 100%;
}

.cjpt-co .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	padding: 24px 28px;
}

.cjpt-co .cart_totals h2 {
	font-size: 22px;
	margin: 0 0 18px;
}

.cjpt-co .cart_totals table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
}

.cjpt-co .cart_totals table.shop_table tbody {
	display: block;
}

.cjpt-co .cart_totals table.shop_table tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 5px 0;
	border: 0;
	font-size: 15px;
}

.cjpt-co .cart_totals table.shop_table th,
.cjpt-co .cart_totals table.shop_table td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	font-weight: 400;
	color: var(--co-ink);
	text-align: left;
	width: auto;
}

.cjpt-co .cart_totals table.shop_table td {
	text-align: right;
}

.cjpt-co .woocommerce .cart_totals table.shop_table tr td,
.cjpt-co .woocommerce .cart_totals table.shop_table tr:nth-child(2n) td {
	background: none !important;
	text-align: right !important;
}

.cjpt-co .cart_totals table.shop_table td::before {
	content: none !important;
	display: none !important;
}

.cjpt-co .cart_totals table.shop_table th small,
.cjpt-co .cart_totals table.shop_table td small {
	display: block;
	font-size: 12.5px;
	color: var(--co-muted);
	font-weight: 400;
}

.cjpt-co .cart_totals table.shop_table tr.cjpt-co-coupon-row {
	display: block;
	padding: 8px 0 12px;
}

.cjpt-co .cart_totals table.shop_table tr.cjpt-co-coupon-row td {
	display: block;
	text-align: left !important;
}

.cjpt-co .cart_totals table.shop_table .order-total {
	margin-top: 0;
	padding-top: 16px;
	border-top: 1px solid var(--co-line);
}

.cjpt-co .cart_totals table.shop_table .order-total th {
	font: 700 18px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co .cart_totals table.shop_table .order-total td {
	font: 700 28px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co .cart_totals .wc-proceed-to-checkout {
	padding: 20px 0 0;
	margin: 0;
}

.cjpt-co .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	margin: 0;
}

.cjpt-co .cjpt-co-secure-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px 14px;
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--co-muted);
	text-align: center;
}

.cjpt-co .cjpt-co-secure-line > span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cjpt-co .cjpt-co-secure-line .cjpt-co-icon {
	font-size: 14px;
	color: var(--co-ink);
}

.cjpt-co .cjpt-co-secure-line a {
	font-weight: 600;
}

.cjpt-co .cross-sells {
	display: none;
}

@media (min-width: 981px) {
	.cjpt-co--cart .woocommerce:has(> .woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
		column-gap: 32px;
		align-items: start;
	}
	.cjpt-co--cart .woocommerce:has(> .woocommerce-cart-form) > * {
		grid-column: 1 / -1;
		min-width: 0;
	}
	.cjpt-co--cart .woocommerce:has(> .woocommerce-cart-form) > .woocommerce-cart-form {
		grid-column: 1;
	}
	.cjpt-co--cart .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals {
		grid-column: 2;
		position: sticky;
		top: 24px;
	}
}

@media (max-width: 767px) {
	.cjpt-co--cart .woocommerce-cart-form {
		padding: 16px;
	}
	.cjpt-co--cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 104px minmax(0, 1fr);
		grid-template-areas: "thumb name" "subtotal subtotal" "remove remove" "qty qty";
		column-gap: 14px;
	}
	.cjpt-co--cart table.shop_table.cart td.product-thumbnail a,
	.cjpt-co--cart table.shop_table.cart td.product-thumbnail > img {
		width: 104px;
		height: 78px;
	}
	.cjpt-co--cart table.shop_table.cart td.product-name > a {
		font-size: 20px;
	}
	.cjpt-co--cart table.shop_table.cart td.product-name .cjpt-co-kick {
		margin-bottom: 4px;
	}
	.cjpt-co--cart table.shop_table.cart td.product-name .cjpt-co-what {
		margin-top: 4px;
	}
	.cjpt-co--cart .woocommerce table.shop_table.cart tr td.product-subtotal {
		margin-top: 14px;
		padding-top: 12px;
		border-top: 1px solid var(--co-line);
		font-size: 22px;
		text-align: right !important;
	}
	.cjpt-co--cart .woocommerce table.shop_table.cart tr td.product-remove {
		justify-self: end;
		margin-top: 4px;
	}
	.cjpt-co--cart .woocommerce table.shop_table.cart td.actions .coupon .button,
	.cjpt-co--cart .woocommerce table.shop_table.cart td.actions > .button {
		width: 100%;
	}
	.cjpt-co .cart-collaterals .cart_totals {
		padding: 20px 16px;
	}
}

/* Empty cart */
.cjpt-co .cjpt-cart-empty {
	max-width: 640px;
	margin: 0;
	padding: 28px 28px 20px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.cjpt-co .cjpt-cart-empty__title {
	font-size: 26px;
	margin: 0 0 6px;
}

.cjpt-co .cjpt-cart-empty__lead {
	margin: 0 0 16px;
	color: var(--co-muted);
}

.cjpt-co .cjpt-cart-empty__links {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.cjpt-co .cjpt-cart-empty__links li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cjpt-co .cjpt-cart-empty__links a {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 64px;
	padding: 12px 16px;
	border: 1px solid var(--co-line);
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease;
}

.cjpt-co .cjpt-cart-empty__links a:hover {
	border-color: var(--co-ink);
	background: var(--co-mist);
}

.cjpt-co .cjpt-cart-empty__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--co-mist);
	color: var(--co-ink);
	font-size: 18px;
}

.cjpt-co .cjpt-cart-empty__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cjpt-co .cjpt-cart-empty__name {
	font-weight: 700;
	color: var(--co-ink);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 3px;
}

.cjpt-co .cjpt-cart-empty__links a:hover .cjpt-cart-empty__name {
	text-decoration-color: currentColor;
}

.cjpt-co .cjpt-cart-empty__meta {
	font-size: 14px;
	color: var(--co-muted);
}

.cjpt-co .cjpt-cart-empty__home {
	margin: 0;
	font-size: 15px;
	line-height: 1.4;
}

.cjpt-co .cjpt-cart-empty__home a {
	display: inline-block;
	padding: 11px 0;
}

.cjpt-co--cart .return-to-shop,
.cjpt-co--cart .wc-empty-cart-message:not(.cjpt-cart-empty) {
	display: none;
}

@media (max-width: 767px) {
	.cjpt-co .cjpt-cart-empty {
		padding: 22px 16px 14px;
	}
}

/* ------------------------------------------------------------------ */
/* Header (cart / checkout / thank-you site part) + minimal footer     */
/* ------------------------------------------------------------------ */

/* [cjpt_checkout_badge]: "Secure checkout", right side of the checkout header */
.cjpt-co .cjpt-co-secure {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding-top: 3px;
	font: 700 12.5px/1 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
	white-space: nowrap;
}

.cjpt-co .cjpt-co-secure .cjpt-co-icon {
	margin-top: -3px;
	font-size: 16px;
	color: var(--co-ink);
}

/* [cjpt_back_link]: the arrow of the phone bar only (hidden from 768px: on desktop the logo is the way home) */
.cjpt-co a.cjpt-co-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font: 600 14px/1.3 var(--co-body);
	color: var(--co-muted);
	text-decoration: none;
	white-space: nowrap;
}

.cjpt-co a.cjpt-co-back .cjpt-co-icon {
	font-size: 16px;
}

/* Header logo: a 44px tap target, and it keeps its size next to the badge / back link on phones */
.cjpt-co--cart header.elementor-location-header .e-image-link-base,
.cjpt-co--checkout header.elementor-location-header .e-image-link-base,
.cjpt-co--thankyou header.elementor-location-header .e-image-link-base {
	display: flex;
	align-items: center;
	min-height: 44px;
	flex: 0 1 auto;
	min-width: 150px;
}

@media (max-width: 479px) {
	/* Phones: just "Secure" beside the lock (" checkout" stays for screen readers), so the logo isn't squeezed */
	.cjpt-co .cjpt-co-secure__more {
		position: absolute !important;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
}

/* ------------------------------------------------------------------ */
/* Thank-you page (NextMove page, our markup)                          */
/* ------------------------------------------------------------------ */

body.cjpt-co--thankyou {
	background: var(--co-bg);
}

body.cjpt-co--thankyou .site-main {
	max-width: none;
	width: 100%;
	padding: 0;
	margin: 0;
}

body.cjpt-co--thankyou .page-header {
	display: none;
}

body.cjpt-co--thankyou .page-content {
	padding: 0;
}

.cjpt-co .cjpt-ty {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 32px;
	align-items: start;
	max-width: 1248px;
	margin: 0 auto;
	padding: 44px 24px 80px;
}

.cjpt-co .cjpt-ty-main {
	min-width: 0;
}

.cjpt-co .cjpt-ty p {
	margin: 0 0 10px;
}

.cjpt-co .cjpt-ty-hero {
	position: relative;
	padding: 32px 32px 28px;
	margin: 0;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.cjpt-co .cjpt-ty-hero__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0 0 18px;
	border-radius: 50%;
	background: var(--co-lime-2);
	color: var(--co-ink);
	font-size: 26px;
}

.cjpt-co .cjpt-ty-hero__icon .cjpt-co-icon {
	stroke-width: 2.6;
}

.cjpt-co .cjpt-ty-hero--pending .cjpt-ty-hero__icon {
	background: var(--co-mist);
}

.cjpt-co .cjpt-ty .cjpt-ty-hero__title {
	margin: 0 0 10px;
	font-size: 34px;
	line-height: 1.12;
}

.cjpt-co .cjpt-ty-hero__lead {
	font-size: 16px;
	color: var(--co-text);
}

.cjpt-co .cjpt-ty-hero__lead strong {
	color: var(--co-ink);
	overflow-wrap: anywhere;
}

.cjpt-co .cjpt-ty-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin: 24px 0 0;
	padding: 0;
	border-top: 1px solid var(--co-line);
}

.cjpt-co .cjpt-ty-facts > div {
	padding: 16px 16px 0 0;
	min-width: 0;
}

.cjpt-co .cjpt-ty-facts > div + div {
	padding-left: 16px;
	border-left: 1px solid var(--co-line);
}

.cjpt-co .cjpt-ty-facts dt {
	margin: 0 0 6px;
	font: 700 11.5px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty-facts dd {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--co-ink);
	overflow-wrap: anywhere;
}

.cjpt-co .cjpt-ty .cjpt-ty-h2 {
	font-size: 22px;
	margin: 0 0 16px;
}

.cjpt-co .cjpt-ty .cjpt-ty-h3 {
	font-size: 20px;
	margin: 0 0 10px;
}

.cjpt-co .cjpt-ty-next,
.cjpt-co .cjpt-ty-receipt {
	margin-top: 44px;
}

/* "What happens next" cards: media column (mint) + text */
.cjpt-co .cjpt-ty-card {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	margin: 0 0 24px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
	overflow: hidden;
}

.cjpt-co .cjpt-ty-card:last-child {
	margin-bottom: 0;
}

.cjpt-co .cjpt-ty-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100%;
	padding: 16px;
	background: var(--co-mist);
}

.cjpt-co .cjpt-ty-card__media img.cjpt-ty-card__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 190px;
	object-fit: contain;
}

.cjpt-co .cjpt-ty-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #fff;
	color: var(--co-ink);
	font-size: 26px;
}

.cjpt-co .cjpt-ty-card__body {
	min-width: 0;
	padding: 28px 32px;
}

.cjpt-co .cjpt-ty-card__kicker {
	margin: 0 0 6px !important;
	font: 700 12.5px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty .cjpt-ty-card__title {
	font-size: 24px;
	margin: 0 0 10px;
}

.cjpt-co .cjpt-ty-card__body > p {
	font-size: 15.5px;
}

.cjpt-co .cjpt-ty strong,
.cjpt-co .cjpt-ty-card__note {
	overflow-wrap: anywhere;
}

.cjpt-co .cjpt-ty-card__body > p.cjpt-ty-card__note {
	margin: 8px 0 0;
	font-size: 14px;
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty-card__note strong {
	color: var(--co-ink);
}

.cjpt-co .cjpt-ty-card__note a {
	color: var(--co-ink);
}

.cjpt-co .cjpt-ty-card__actions {
	margin: 20px 0 0 !important;
}

.cjpt-co .cjpt-ty-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 32px;
	margin: 0 0 12px;
}

.cjpt-co .cjpt-ty-card__facts dt {
	font: 700 11.5px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty-card__facts dd {
	margin: 2px 0 0;
	font-weight: 600;
	color: var(--co-ink);
}

/* Buttons: primary brand teal (lime on hover); "ghost" is the white outlined secondary */
.cjpt-co .cjpt-ty a.cjpt-ty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 3px 26px 0;
	border: 1.5px solid var(--co-brand);
	border-radius: 0;
	background: var(--co-brand);
	color: var(--co-ink);
	font: 700 14px/1 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease;
}

.cjpt-co .cjpt-ty a.cjpt-ty-btn:hover {
	background: var(--co-lime);
	border-color: var(--co-lime);
	color: var(--co-ink);
	text-decoration: none;
}

.cjpt-co .cjpt-ty a.cjpt-ty-btn .cjpt-co-icon {
	margin-top: -3px;
	font-size: 16px;
}

.cjpt-co .cjpt-ty a.cjpt-ty-btn--ghost {
	background: #fff;
	border-color: var(--co-ink);
}

.cjpt-co .cjpt-ty a.cjpt-ty-btn--ghost:hover {
	background: var(--co-mist);
	border-color: var(--co-ink);
}

.cjpt-co .cjpt-ty a.cjpt-ty-btn--small {
	min-height: 44px;
	padding: 3px 18px 0;
	font-size: 12.5px;
	white-space: nowrap;
}

.cjpt-co .cjpt-ty .cjpt-ty-receipt__pdf {
	margin: 20px 0 0;
}

.cjpt-co .cjpt-ty-downloads {
	margin: 4px 0 10px;
	padding: 0;
	list-style: none;
}

.cjpt-co .cjpt-ty-downloads li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 12px 0;
	border-top: 1px solid var(--co-line);
	list-style: none;
}

.cjpt-co .cjpt-ty-downloads li:last-child {
	border-bottom: 1px solid var(--co-line);
}

.cjpt-co .cjpt-ty-downloads__name {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cjpt-co .cjpt-ty-downloads__product {
	font-weight: 600;
	color: var(--co-ink);
}

.cjpt-co .cjpt-ty-downloads__file {
	font-size: 13.5px;
	color: var(--co-muted);
	overflow-wrap: anywhere;
}

/* Receipt */
.cjpt-co .cjpt-ty-rc {
	padding: 24px 32px 26px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.cjpt-co .cjpt-ty-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.cjpt-co .cjpt-ty-table thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.cjpt-co .cjpt-ty-table th,
.cjpt-co .cjpt-ty-table td {
	padding: 6px 0;
	border: 0;
	background: none;
	vertical-align: top;
	text-align: left;
	font-weight: 400;
	color: var(--co-ink);
}

.cjpt-co .cjpt-ty-table tbody tr {
	border-bottom: 1px solid var(--co-line);
}

.cjpt-co .cjpt-ty-table tbody tr:nth-child(odd) > *,
.cjpt-co .cjpt-ty-table tbody tr:nth-child(even) > * {
	background: none;
}

.cjpt-co .cjpt-ty-table tbody th,
.cjpt-co .cjpt-ty-table tbody td {
	padding-top: 0;
	padding-bottom: 14px;
}

/* Second and later items: the same space above the line as below it. */
.cjpt-co .cjpt-ty-table tbody tr + tr > th,
.cjpt-co .cjpt-ty-table tbody tr + tr > td {
	padding-top: 14px;
}

.cjpt-co .cjpt-ty-table .cjpt-ty-num {
	width: 38%;
	text-align: right;
	padding-left: 12px;
	overflow-wrap: anywhere;
}

.cjpt-co .cjpt-ty-table .woocommerce-Price-amount {
	white-space: nowrap;
}

.cjpt-co .cjpt-ty-table tbody td.cjpt-ty-num {
	font-weight: 600;
}

.cjpt-co .cjpt-ty-item__name {
	display: block;
	font-size: 15.5px;
	font-weight: 700;
	color: var(--co-ink);
}

.cjpt-co .cjpt-ty-item__qty {
	color: var(--co-muted);
	font-weight: 600;
}

.cjpt-co .cjpt-ty-item__meta {
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
	font-size: 13.5px;
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty-item__meta li {
	margin: 0;
	list-style: none;
}

.cjpt-co .cjpt-ty-item__meta p {
	display: inline;
	margin: 0;
}

.cjpt-co .cjpt-ty-table tfoot tr:first-child > * {
	padding-top: 14px;
}

.cjpt-co .cjpt-ty-total--order_total th,
.cjpt-co .cjpt-ty-total--order_total td {
	padding-top: 16px !important;
	padding-bottom: 16px;
	border-top: 1px solid var(--co-line);
}

.cjpt-co .cjpt-ty-total--order_total th {
	font: 700 18px/1 var(--co-head) !important;
	color: var(--co-ink) !important;
}

.cjpt-co .cjpt-ty-total--order_total td {
	font: 700 28px/1 var(--co-head) !important;
	color: var(--co-ink) !important;
}

.cjpt-co .cjpt-ty-total--order_total small {
	display: block;
	margin-top: 6px;
	font: 400 13px/1.3 var(--co-body);
	color: var(--co-muted);
}

.cjpt-co .cjpt-ty .cjpt-ty-billed {
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid var(--co-line);
	font-size: 14px;
	color: var(--co-muted);
	overflow-wrap: anywhere;
}

.cjpt-co .cjpt-ty-billed__k {
	margin-right: 10px;
	font: 700 11.5px/1.3 var(--co-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--co-muted);
}

/* "Need help?" side card */
.cjpt-co .cjpt-ty-box {
	padding: 24px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	box-shadow: var(--co-shadow);
}

.cjpt-co .cjpt-ty-box p {
	font-size: 15px;
}

.cjpt-co .cjpt-ty-box p:last-child {
	margin-bottom: 0;
}

/* NextMove's "Additional information" component (gateway instructions; hidden by NextMove when empty) */
.cjpt-co .cjpt-ty-extra {
	margin-top: 24px;
}

.cjpt-co .cjpt-ty-extra:empty {
	display: none;
}

.cjpt-co .cjpt-ty-extra .xlwcty_Box {
	padding: 18px 24px;
	background: var(--co-card);
	border: 1px solid var(--co-line);
	border-radius: var(--co-radius);
	font-size: 15px;
}

.cjpt-co .cjpt-ty-extra .xlwcty_Box p:last-child {
	margin-bottom: 0;
}

@media (max-width: 980px) {
	.cjpt-co .cjpt-ty {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
	.cjpt-co .cjpt-ty-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 14px;
	}
	.cjpt-co .cjpt-ty-facts > div:nth-child(3) {
		padding-left: 0;
		border-left: 0;
	}
}

@media (max-width: 767px) {
	.cjpt-co .cjpt-ty {
		padding: 24px 16px 48px;
	}
	.cjpt-co .cjpt-ty-hero {
		padding: 22px 16px 20px;
	}
	.cjpt-co .cjpt-ty .cjpt-ty-hero__title {
		font-size: 27px;
	}
	.cjpt-co .cjpt-ty-hero__lead {
		font-size: 15px;
	}
	.cjpt-co .cjpt-ty-next,
	.cjpt-co .cjpt-ty-receipt {
		margin-top: 32px;
	}
	.cjpt-co .cjpt-ty .cjpt-ty-h2 {
		font-size: 20px;
		margin-bottom: 14px;
	}
	.cjpt-co .cjpt-ty-card {
		display: block;
	}
	.cjpt-co .cjpt-ty-card__media {
		min-height: 0;
		height: 150px;
		padding: 12px;
	}
	.cjpt-co .cjpt-ty-card__media img.cjpt-ty-card__img {
		height: 100%;
		width: auto;
		max-width: 100%;
		max-height: none;
	}
	.cjpt-co .cjpt-ty-card__body {
		padding: 18px 16px 20px;
	}
	.cjpt-co .cjpt-ty .cjpt-ty-card__title {
		font-size: 21px;
	}
	.cjpt-co .cjpt-ty-rc {
		padding: 18px 16px 20px;
	}
	.cjpt-co .cjpt-ty-box {
		padding: 20px 16px;
	}
	.cjpt-co .cjpt-ty-billed__k {
		display: block;
		margin-bottom: 4px;
	}
	.cjpt-co .cjpt-ty-downloads li {
		flex-wrap: wrap;
	}
}

@media (max-width: 359px) {
	.cjpt-co .cjpt-ty-facts {
		grid-template-columns: minmax(0, 1fr);
	}
	.cjpt-co .cjpt-ty-facts > div,
	.cjpt-co .cjpt-ty-facts > div + div {
		padding: 12px 0 0;
		border-left: 0;
	}
	.cjpt-co .cjpt-ty a.cjpt-ty-btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cjpt-co * {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* ------------------------------------------------------------------ */
/* Specificity fixes over WooCommerce's own table rules                */
/* ------------------------------------------------------------------ */

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table th,
.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table td,
.cjpt-co .woocommerce .cart_totals table.shop_table th,
.cjpt-co .woocommerce .cart_totals table.shop_table td {
	border: 0;
	padding: 0;
	background: none;
	font-weight: 400;
}

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table td.product-total,
.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table td .cjpt-co-cpn-amt {
	font-weight: 600;
}

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table .order-total th,
.cjpt-co .woocommerce .cart_totals table.shop_table .order-total th {
	font: 700 18px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table .order-total td,
.cjpt-co .woocommerce .cart_totals table.shop_table .order-total td {
	font: 700 28px/1 var(--co-head);
	color: var(--co-ink);
}

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr.cjpt-co-coupon-row td,
.cjpt-co .woocommerce .cart_totals table.shop_table tr.cjpt-co-coupon-row td {
	text-align: left;
}

.cjpt-co .woocommerce table.shop_table.woocommerce-checkout-review-order-table td.product-name {
	padding-left: 86px;
}

/* Elementor's image widgets carry the old kit link colour (#2EA3F2) as their text colour; nothing is drawn with it, but keep it off these pages */
.cjpt-co .e-image-link-base,
.cjpt-co .e-image-base {
	color: var(--co-ink);
}

/* Header: the site header's tablet rule centres the logo; this header keeps it left */
.cjpt-co header.elementor-location-header .e-image-link-base {
	margin-left: 0;
	margin-right: 0;
}

/* Phones (767px and below): the STANDARD PHONE BAR (assets/css/phone-bar.css): back arrow LEFT | logo CENTRED | lock RIGHT, no menu (the one
 * exception). Equal left / right slots keep the logo centred even when a slot is empty (thank-you has no arrow, cart has no lock).
 * Cart: arrow to the site. Checkout: arrow to the cart, lock. Thank-you: no arrow. */
@media (max-width: 767px) {
	body.cjpt-co header.elementor-location-header .e-image-link-base {
		order: 0;
		flex: 0 1 var(--cjpt-bar-logo-w);
		min-width: 0;
		margin: 0 auto;
		min-height: var(--cjpt-bar-tap);
	}

	body.cjpt-co header.elementor-location-header .e-image-link-base img {
		width: var(--cjpt-bar-logo-w);
		max-width: 100%;
	}

	.cjpt-co a.cjpt-co-back,
	.cjpt-co .cjpt-co-secure {
		position: relative;
		box-sizing: border-box;
		width: var(--cjpt-bar-tap);
		height: var(--cjpt-bar-tap);
		margin: 0;
		padding: 0;
		justify-content: center;
		color: var(--cjpt-bar-ink);
		text-decoration: none;
	}

	.cjpt-co a.cjpt-co-back:focus-visible {
		outline-offset: -4px;
	}

	.cjpt-co a.cjpt-co-back .cjpt-co-icon,
	.cjpt-co .cjpt-co-secure .cjpt-co-icon {
		width: var(--cjpt-bar-icon);
		height: var(--cjpt-bar-icon);
		margin: 0;
		font-size: var(--cjpt-bar-icon);
		vertical-align: 0;
		stroke-width: var(--cjpt-bar-stroke);
		color: var(--cjpt-bar-ink);
	}

	/* the words stay for screen readers */
	.cjpt-co a.cjpt-co-back span,
	.cjpt-co .cjpt-co-secure__t {
		position: absolute !important;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

}

@media (min-width: 768px) {
	.cjpt-co a.cjpt-co-back--phone {
		display: none;
	}
}

/* The error group is focused by checkout-notices.js so screen readers announce it; the red box is the visual cue. */
.cjpt-co .woocommerce-NoticeGroup:focus {
	outline: none;
}
