/* Control Shift storefront: cart, checkout, account and sign-up pages.
   Colours from the Elementor kit: navy #122C37, green #58C77A, green dark #45B568,
   cream #F5F3EC, cream dark #E3E0D6, text #2A3A42, muted #7A8D96.
   body.cshs-store is added only on these pages, so nothing else on the site is touched. */

body.cshs-store {
	--cshs-navy: var(--e-global-color-primary, #122C37);
	--cshs-green: var(--e-global-color-accent, #58C77A);
	--cshs-green-dark: var(--e-global-color-19d272b, #45B568);
	--cshs-cream: var(--e-global-color-f25ac6a, #F5F3EC);
	--cshs-line: var(--e-global-color-e223baf, #E3E0D6);
	--cshs-text: var(--e-global-color-text, #2A3A42);
	--cshs-muted: var(--e-global-color-8b984a1, #7A8D96);
}

/* Buttons: the site's green pill */
body.cshs-store .woocommerce a.button,
body.cshs-store .woocommerce button.button,
body.cshs-store .woocommerce input.button,
body.cshs-store .woocommerce a.checkout-button,
body.cshs-store .woocommerce #place_order,
body.cshs-store .cshs-addons .cshs-addons__add {
	background: var(--cshs-green) !important;
	color: var(--cshs-navy) !important;
	border: 1px solid var(--cshs-green) !important;
	border-radius: 99px !important;
	font-family: Inter, sans-serif !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background .2s, border-color .2s;
}
body.cshs-store .woocommerce a.button:hover,
body.cshs-store .woocommerce button.button:hover,
body.cshs-store .woocommerce a.checkout-button:hover,
body.cshs-store .woocommerce #place_order:hover,
body.cshs-store .cshs-addons .cshs-addons__add:hover,
body.cshs-store .cshs-addons .cshs-addons__add:focus-visible {
	background: var(--cshs-green-dark) !important;
	border-color: var(--cshs-green-dark) !important;
}
body.cshs-store .woocommerce a.checkout-button,
body.cshs-store .woocommerce #place_order { padding: 16px 30px !important; }
body.cshs-store .cshs-addons .cshs-addons__add { padding: 10px 22px !important; line-height: 1.2; display: inline-block; }

/* Notices: calm card with a coloured edge, not the default red and blue bars */
body.cshs-store .woocommerce-error,
body.cshs-store .woocommerce-info,
body.cshs-store .woocommerce-message {
	background: #fff !important;
	color: var(--cshs-text) !important;
	border: 1px solid var(--cshs-line) !important;
	border-left: 4px solid var(--cshs-green) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
}
body.cshs-store .woocommerce-error { border-left-color: #D98A3D !important; }
body.cshs-store .woocommerce-error::before,
body.cshs-store .woocommerce-info::before,
body.cshs-store .woocommerce-message::before { color: var(--cshs-navy) !important; }
body.cshs-store .woocommerce-error a,
body.cshs-store .woocommerce-info a,
body.cshs-store .woocommerce-message a { color: var(--cshs-green-dark) !important; font-weight: 600; }

/* Cart table: no product images, no empty quantity cells for plans */
body.cshs-store .shop_table .product-thumbnail { display: none !important; }
body.cshs-store .shop_table.cart .product-name > a,
body.cshs-store .shop_table.cart .product-name { color: var(--cshs-navy); font-weight: 600; }
body.cshs-store .shop_table.cart .product-remove a.remove { color: var(--cshs-muted) !important; background: transparent !important; }
body.cshs-store .shop_table.cart .product-remove a.remove:hover { color: #B3261E !important; }

/* Website address and sub-site boxes in the cart */
.cshs-item-field { display: block; margin-top: 12px; font-size: .9em; font-weight: 400; }
.cshs-item-field span { display: block; font-weight: 600; margin-bottom: 6px; color: var(--cshs-navy, #122C37); }
.cshs-item-field input, .cshs-item-field textarea {
	width: 100%; max-width: 360px; background: #fff; color: var(--cshs-text, #2A3A42);
	border: 1px solid var(--cshs-line, #E3E0D6); border-radius: 10px; padding: 10px 14px; font: inherit;
}
.cshs-item-field input:focus, .cshs-item-field textarea:focus { outline: 2px solid var(--cshs-green, #58C77A); outline-offset: 1px; border-color: transparent; }
.cshs-item-status { display: block; min-height: 1.2em; margin-top: 4px; color: var(--cshs-green-dark, #45B568); }
.cshs-item-status.is-error { color: #B3261E; }

/* Add to your plan panel */
.cshs-addons {
	margin: 32px 0 8px; padding: 28px; border: 1px solid var(--cshs-line, #E3E0D6); border-radius: 16px;
	background: #fff; color: var(--cshs-text, #2A3A42); text-align: left;
}
.cshs-addons__title { margin: 0 0 4px; color: var(--cshs-navy, #122C37); font-family: Inter, sans-serif; font-weight: 800; font-size: 1.35rem; }
.cshs-addons__intro { margin: 0 0 12px; color: var(--cshs-muted, #7A8D96); font-size: .95em; }
.cshs-addons__list { list-style: none; margin: 0; padding: 0; }
.cshs-addons__item { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--cshs-line, #E3E0D6); }
.cshs-addons__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cshs-addons__info strong { color: var(--cshs-navy, #122C37); }
.cshs-addons__price { font-weight: 600; color: var(--cshs-text, #2A3A42); }
.cshs-addons__desc { font-size: .9em; color: var(--cshs-muted, #7A8D96); }
.cshs-addons__action { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.cshs-addons__qty { width: 72px; background: #fff; color: var(--cshs-text, #2A3A42); border: 1px solid var(--cshs-line, #E3E0D6); border-radius: 99px; padding: 9px 12px; text-align: center; }
.cshs-addons__added { font-weight: 700; color: var(--cshs-green-dark, #45B568); }
@media (max-width: 600px) { .cshs-addons__item { flex-direction: column; align-items: flex-start; } }

/* Totals: "Due today" row */
.cshs-due-today th, .cshs-due-today td { font-weight: 700; color: var(--cshs-navy, #122C37); }
.cshs-due-today small { display: block; font-weight: 400; color: var(--cshs-muted, #7A8D96); }
body.cshs-store.cshs-nothing-today .cart_totals tr.cart-subtotal:not(.recurring-total),
body.cshs-store.cshs-nothing-today .cart_totals tr.order-total:not(.recurring-total),
body.cshs-store.cshs-nothing-today .woocommerce-checkout-review-order-table tr.cart-subtotal:not(.recurring-total),
body.cshs-store.cshs-nothing-today .woocommerce-checkout-review-order-table tr.order-total:not(.recurring-total) { display: none; }

/* Monthly / Annual switch on the sign-up pages */
.cshs-toggle { display: inline-flex; gap: 4px; padding: 4px; border-radius: 99px; background: var(--cshs-cream, #F5F3EC); border: 1px solid var(--cshs-line, #E3E0D6); margin: 8px auto 0; }
.cshs-toggle__btn { border: 0; border-radius: 99px; padding: 10px 22px; background: transparent; color: var(--cshs-navy, #122C37); font: 700 .95rem/1.2 Inter, sans-serif; cursor: pointer; }
.cshs-toggle__btn.is-active { background: var(--cshs-navy, #122C37); color: #fff; }
.cshs-toggle__btn:focus-visible { outline: 2px solid var(--cshs-green, #58C77A); outline-offset: 2px; }
.cshs-toggle__save { font-size: .8em; font-weight: 500; color: var(--cshs-green, #58C77A); }

/* Checkout: hide the empty second column (no shipping, no order notes) */
body.cshs-store .col2-set .col-2:not(:has(input, select, textarea)) { display: none !important; }
body.cshs-store .woocommerce-account-fields:not(:has(input, select, textarea)) { display: none; }

/* Terms checkbox: left aligned, box beside the text */
body.cshs-store .cshs-terms-sla { text-align: left !important; margin: 0 0 18px !important; }
body.cshs-store .cshs-terms-sla label.checkbox {
	display: flex !important; align-items: flex-start; gap: 10px; justify-content: flex-start;
	text-align: left; font-weight: 400; color: var(--cshs-text); cursor: pointer;
}
body.cshs-store .cshs-terms-sla input[type="checkbox"] {
	flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0 !important; accent-color: var(--cshs-green-dark);
}
body.cshs-store .cshs-terms-sla .woocommerce-terms-and-conditions-checkbox-text { color: var(--cshs-text); }
body.cshs-store .cshs-terms-sla a { color: var(--cshs-green-dark) !important; font-weight: 600; text-decoration: underline; }

/* Product names stand out from the prices and labels */
body.cshs-store .shop_table td.product-name,
body.cshs-store .woocommerce-checkout-review-order-table td.product-name {
	font-weight: 700 !important; color: var(--cshs-navy) !important;
}
body.cshs-store td.product-name .variation,
body.cshs-store td.product-name dl,
body.cshs-store td.product-name .cshs-item-field,
body.cshs-store td.product-name .cshs-item-for { font-weight: 400 !important; }
.cshs-item-for { display: block; margin-top: 8px; font-size: .9em; color: var(--cshs-muted, #7A8D96); }
.cshs-item-for strong { color: var(--cshs-navy, #122C37); font-weight: 600; }

/* Address boxes: clearly visible, green while still empty */
body.cshs-store .cshs-item-field .cshs-item-input {
	display: block; width: 100% !important; max-width: 380px !important;
	background: #fff !important; color: var(--cshs-text) !important;
	border: 1.5px solid #C9D3D6 !important; border-radius: 10px !important;
	padding: 11px 14px !important; font: inherit !important; font-size: .95rem !important;
	box-shadow: none !important; transition: border-color .15s, box-shadow .15s;
}
body.cshs-store .cshs-item-field input.cshs-item-input:placeholder-shown {
	border-color: var(--cshs-green) !important;
	background: rgba(88, 199, 122, .07) !important;
	box-shadow: 0 0 0 3px rgba(88, 199, 122, .15) !important;
}
body.cshs-store .cshs-item-field .cshs-item-input:focus {
	outline: none !important; border-color: var(--cshs-green-dark) !important;
	box-shadow: 0 0 0 3px rgba(88, 199, 122, .3) !important;
}
body.cshs-store .cshs-item-field select.cshs-item-input { appearance: auto; }
body.cshs-store .cshs-item-field .cshs-item-input::placeholder { color: #8A9AA1 !important; opacity: 1; }

/* Quantity box (extra storage): matches the site, centred in its column */
body.cshs-store .shop_table.cart td.product-quantity { vertical-align: middle; }
body.cshs-store .shop_table.cart .quantity input.qty {
	width: 72px !important; height: 42px !important; text-align: center !important;
	background: #fff !important; color: var(--cshs-text) !important;
	border: 1.5px solid #C9D3D6 !important; border-radius: 99px !important;
	padding: 0 8px !important; font: inherit !important; box-shadow: none !important;
}
body.cshs-store .shop_table.cart .quantity input.qty:focus { border-color: var(--cshs-green-dark) !important; outline: none !important; }

/* Monthly / Annual switch: override theme button styles */
body.cshs-store .cshs-toggle { background: #fff !important; border: 1px solid var(--cshs-line) !important; padding: 4px !important; border-radius: 99px !important; }
body.cshs-store .cshs-toggle .cshs-toggle__btn,
body.cshs-store .cshs-toggle .cshs-toggle__btn:hover,
body.cshs-store .cshs-toggle .cshs-toggle__btn:focus {
	background: transparent !important; color: var(--cshs-navy) !important;
	border: 0 !important; border-radius: 99px !important; box-shadow: none !important;
	padding: 10px 24px !important; margin: 0 !important; min-width: 0 !important;
	font: 700 .95rem/1.2 Inter, sans-serif !important; text-transform: none !important; letter-spacing: normal !important;
}
body.cshs-store .cshs-toggle .cshs-toggle__btn:hover { background: var(--cshs-cream) !important; }
body.cshs-store .cshs-toggle .cshs-toggle__btn.is-active,
body.cshs-store .cshs-toggle .cshs-toggle__btn.is-active:hover { background: var(--cshs-navy) !important; color: #fff !important; }
body.cshs-store .cshs-toggle .cshs-toggle__btn:focus-visible { outline: 2px solid var(--cshs-green) !important; outline-offset: 2px !important; }
body.cshs-store .cshs-toggle .cshs-toggle__save { color: var(--cshs-green-dark) !important; font-weight: 600; margin-left: 4px; }
body.cshs-store .cshs-toggle .cshs-toggle__btn.is-active .cshs-toggle__save { color: var(--cshs-green) !important; }

/* Hosting another website? */
.cshs-more-sites {
	display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap;
	margin-top: 8px; padding: 18px 20px; border-radius: 12px; background: var(--cshs-cream, #F5F3EC);
}
.cshs-more-sites__text { display: flex; flex-direction: column; gap: 2px; }
.cshs-more-sites__text strong { color: var(--cshs-navy, #122C37); }
.cshs-more-sites__text span { font-size: .9em; color: var(--cshs-muted, #7A8D96); }
.cshs-more-sites__actions { display: flex; gap: 8px; flex-wrap: wrap; }
body.cshs-store .woocommerce .cshs-addons button.button.cshs-more-sites__add {
	background: #fff !important; color: var(--cshs-navy) !important; border: 1.5px solid var(--cshs-navy) !important;
}
body.cshs-store .woocommerce .cshs-addons button.button.cshs-more-sites__add:hover,
body.cshs-store .woocommerce .cshs-addons button.button.cshs-more-sites__add:focus-visible { background: var(--cshs-navy) !important; color: #fff !important; }
body.cshs-store .shop_table.cart ~ .cshs-addons .cshs-addons__qty, body.cshs-store .cshs-addons__qty { border-radius: 99px !important; border: 1.5px solid #C9D3D6 !important; height: 42px; }
.cshs-more-sites__add span, .cshs-more-sites__add .amount { font-weight: 500; opacity: .8; }

/* Logged-out account pages: hide WooCommerce's own "Login" heading; the login card has its own title */
body.cshs-store:not(.logged-in) .elementor-widget-woocommerce-my-account .woocommerce > h2 { display: none !important; }

/* Checkout payment options: radio beside its label, not floating above it (Paul, 27 Sep 2026). */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 10px;
	text-align: left;
}
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input.input-radio {
	display: inline-block;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 0;
	position: static;
}
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
	display: inline-block;
	flex: 1 1 auto;
	margin: 0;
	font-weight: 600;
	cursor: pointer;
}
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > .payment_box {
	flex: 1 0 100%;
	margin-top: 10px;
}
/* Let Stripe's card fields use the full width. */
.woocommerce-checkout #payment .payment_method_stripe fieldset,
.woocommerce-checkout #payment .payment_method_stripe .wc-stripe-upe-element,
.woocommerce-checkout #payment .payment_method_stripe .wc-stripe-upe-form {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

/* Optional migration access box at checkout. */
.cshs-access-box { margin: 24px 0 8px; padding: 20px; background: #fff; border: 1px solid var(--cream-dark, #e3e0d6); border-radius: 12px; }
.cshs-access-box h3 { margin: 0 0 8px; font-size: 1.1rem; color: var(--navy, #122c37); }
.cshs-access-box__note { font-size: 0.95em; color: #4d6068; margin: 0 0 12px; }
.cshs-access-box textarea { width: 100%; }
