/**
 * Revenza Product Shop — front-end styles.
 * Class-scoped so it never leaks into the theme or other widgets.
 */

.revenza-ps {
	--revenza-arrow: #e8542f;
}

/* ----------------------------------------------------------------------- *
 * Toolbar (result count + sorting)
 * ----------------------------------------------------------------------- */
.revenza-ps-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.revenza-ps-result-count {
	margin: 0;
	font-size: 14px;
	opacity: .85;
}

.revenza-ps-orderby-wrap {
	position: relative;
	display: inline-block;
}

.revenza-ps-orderby-form {
	margin: 0;
}

/* The clean, single-arrow select. We hide the native arrow on every browser
 * and draw exactly ONE chevron with a background SVG — this fixes the
 * "double arrow" problem the theme creates. */
.revenza-ps-orderby {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: none !important; /* kill any theme-injected arrow */
	background-color: #fff;
	border: 1px solid #e6e6e6;
	border-radius: 8px;
	padding: 12px 44px 12px 18px;
	font-size: 15px;
	line-height: 1.2;
	color: inherit;
	cursor: pointer;
	min-width: 200px;
	max-width: 100%;
	box-shadow: none;
	outline: none;
}

/* Remove the default arrow in IE / old Edge. */
.revenza-ps-orderby::-ms-expand {
	display: none;
}

/* The single custom chevron — drawn as a filled triangle so exactly one
 * arrow ever appears, in whatever colour the widget sets. */
.revenza-ps-orderby-wrap::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 12px;
	height: 12px;
	transform: translateY(-50%);
	pointer-events: none;
	background-color: var(--revenza-arrow);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L2 4h12z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L2 4h12z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ----------------------------------------------------------------------- *
 * Grid
 * ----------------------------------------------------------------------- */
.revenza-ps-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

/* ----------------------------------------------------------------------- *
 * Card
 * ----------------------------------------------------------------------- */
.revenza-ps-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 12px;
	padding: 16px;
	text-align: left;
}

/* Block-level children should fill the card so their own text-align works,
 * while the alignment control positions auto-width items via align-items. */
.revenza-ps-card .revenza-ps-title,
.revenza-ps-card .revenza-ps-price,
.revenza-ps-card .revenza-ps-thumb {
	width: 100%;
}

.revenza-ps-thumb {
	position: relative;
	display: block;
	margin-bottom: 14px;
	overflow: hidden;
	border-radius: 8px;
}

.revenza-ps-thumb img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	transition: transform .35s ease;
}

.revenza-ps-card:hover .revenza-ps-thumb img {
	transform: scale(1.04);
}

.revenza-ps-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: #e8542f;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 4px 10px;
	border-radius: 999px;
}

.revenza-ps-badge-icon {
	font-size: 12px;
	line-height: 1;
}

.revenza-ps-rating {
	margin-bottom: 8px;
}

.revenza-ps-rating .star-rating {
	display: inline-block;
	font-size: 14px;
}

.revenza-ps-title {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.3;
}

.revenza-ps-title a {
	text-decoration: none;
	color: inherit;
	transition: color .2s ease;
}

.revenza-ps-price {
	margin-bottom: 14px;
	font-weight: 700;
}

.revenza-ps-price del {
	opacity: .6;
	font-weight: 400;
	margin-right: 6px;
}

.revenza-ps-price ins {
	text-decoration: none;
}

/* Push the button to the bottom so cards of unequal height line up. */
.revenza-ps-card .revenza-ps-button {
	margin-top: auto;
}

/* ----------------------------------------------------------------------- *
 * Button
 * ----------------------------------------------------------------------- */
.revenza-ps-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: 16px;
	padding: 14px 20px;
	border: none;
	border-radius: 8px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: filter .2s ease, transform .2s ease, opacity .2s ease;
}

.revenza-ps-button:hover {
	filter: brightness(1.06);
	color: #fff;
}

.revenza-ps-button.loading {
	opacity: .7;
	pointer-events: none;
}

.revenza-ps-button.added::after {
	content: "✓";
	margin-left: 8px;
}

/* ----------------------------------------------------------------------- *
 * Pagination
 * ----------------------------------------------------------------------- */
.revenza-ps-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-top: 32px;
}

.revenza-ps-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid #e6e6e6;
	border-radius: 8px;
	text-decoration: none;
	color: inherit;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.revenza-ps-pagination .current {
	background: #e8542f;
	border-color: #e8542f;
	color: #fff;
}

.revenza-ps-empty {
	padding: 40px 0;
	text-align: center;
	opacity: .75;
}

/* ----------------------------------------------------------------------- *
 * Responsive fallbacks (Elementor injects the column rules; these are
 * sensible defaults if a breakpoint control is left empty).
 * ----------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.revenza-ps-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.revenza-ps-grid {
		grid-template-columns: 1fr;
	}
	.revenza-ps-toolbar {
		justify-content: flex-start;
	}
}

/* ======================================================================= *
 * SINGLE PRODUCT WIDGET
 * ======================================================================= */
.revenza-sp {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 40px;
}

.revenza-sp-media {
	flex: 0 0 auto;
	width: 45%;
	max-width: 100%;
	border-radius: 18px;
	overflow: hidden;
}

.revenza-sp-media img {
	display: block;
	width: 100%;
	height: auto;
}

.revenza-sp-summary {
	flex: 1 1 auto;
	min-width: 0;
}

.revenza-sp-breadcrumb {
	font-size: 13px;
	margin-bottom: 14px;
	opacity: .85;
}

.revenza-sp-title {
	margin: 0 0 12px;
	line-height: 1.15;
}

.revenza-sp-price {
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 16px;
}

.revenza-sp-price del {
	opacity: .55;
	font-weight: 400;
	margin-right: 8px;
}

.revenza-sp-price ins {
	text-decoration: none;
}

.revenza-sp-excerpt {
	margin-bottom: 20px;
	line-height: 1.7;
}

/* Attributes / meta as a clean label : value list. */
.revenza-sp-meta {
	margin: 0 0 22px;
}

.revenza-sp-meta-row {
	display: flex;
	gap: 10px;
	margin-bottom: 10px;
}

.revenza-sp-meta dt {
	flex: 0 0 38%;
	max-width: 38%;
	margin: 0;
	font-weight: 700;
	position: relative;
}

.revenza-sp-meta dd {
	margin: 0;
	flex: 1 1 auto;
}

.revenza-sp-meta dd::before {
	content: ": ";
	opacity: .6;
}

/* Stacked layout: label sits above the value, full width, no colon. */
.revenza-sp-meta.layout-stacked .revenza-sp-meta-row {
	flex-direction: column;
	gap: 2px;
}

.revenza-sp-meta.layout-stacked dt {
	flex: none;
	max-width: 100%;
}

.revenza-sp-meta.layout-stacked dd::before {
	content: "";
}

/* Add-to-cart form (wraps WooCommerce's native form). */
.revenza-sp-form {
	margin-bottom: 18px;
}

.revenza-sp-form .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid #e2e2e2;
	border-radius: 10px;
	overflow: hidden;
	vertical-align: middle;
	margin-right: 12px;
}

.revenza-sp-form .quantity input.qty {
	width: 56px;
	border: 0;
	text-align: center;
	background: transparent;
	-moz-appearance: textfield;
	font-size: 16px;
	padding: 12px 4px;
}

.revenza-sp-form .quantity input.qty::-webkit-outer-spin-button,
.revenza-sp-form .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.revenza-sp-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	width: 40px;
	height: 44px;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	color: inherit;
	flex: 0 0 auto;
	transition: filter .2s ease;
}

.revenza-sp-qty-btn:hover {
	filter: brightness(1.08);
}

.revenza-sp-form .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 15px 34px;
	border: none;
	border-radius: 10px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: filter .2s ease, transform .2s ease;
	vertical-align: middle;
}

.revenza-sp-form .single_add_to_cart_button:hover {
	filter: brightness(1.07);
}

/* Variation rows. */
.revenza-sp-form .variations {
	width: 100%;
	margin-bottom: 16px;
	border: 0;
}

.revenza-sp-form .variations th,
.revenza-sp-form .variations td {
	display: block;
	text-align: left;
	padding: 0 0 8px;
}

.revenza-sp-form .variations label {
	font-weight: 700;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: .03em;
}

/* Variation pills (progressive enhancement of the native <select>). */
.revenza-sp-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 6px;
}

.revenza-sp-pill {
	border: 1px solid #d9c2ff;
	background: transparent;
	color: inherit;
	border-radius: 10px;
	padding: 10px 18px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.2;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.revenza-sp-pill:hover {
	border-color: #8b3df4;
}

.revenza-sp-pill.is-active {
	background: #8b3df4;
	border-color: #8b3df4;
	color: #fff;
}

/* When pills are active, visually hide the native select but keep it usable. */
.revenza-sp-form[data-revenza-pills="1"] .variations select {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	opacity: 0;
	pointer-events: none;
}

.revenza-sp-stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 18px;
	font-weight: 600;
}

.revenza-sp-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #28a745;
	display: inline-block;
}

.revenza-sp-stock.out-of-stock .revenza-sp-dot {
	background: #d63638;
}

.revenza-sp-features {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	padding-top: 18px;
	border-top: 1px solid rgba(0, 0, 0, .08);
}

.revenza-sp-feature {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
}

.revenza-sp-feature i,
.revenza-sp-feature svg {
	width: 1em;
	height: 1em;
	font-size: 18px;
}


/* ======================================================================= *
 * PRODUCT TABS WIDGET
 * ======================================================================= */
.revenza-tabs {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	padding: 28px;
}

.revenza-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	border: 0;
}

/* Strip WooCommerce/theme default tab chrome (the lines & borders that cause
 * the stray "blue line" on the active tab) so our styling is the only source. */
.revenza-tabs ul.tabs::before,
.revenza-tabs ul.tabs li::before,
.revenza-tabs ul.tabs li::after {
	display: none !important;
	content: none !important;
	border: 0 !important;
}

.revenza-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 999px;
	overflow: hidden;
}

.revenza-tabs ul.tabs li a {
	display: block;
	padding: 14px 28px;
	text-decoration: none;
	color: #e8542f;
	font-weight: 600;
}

.revenza-tabs ul.tabs li.active {
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
}

.revenza-tabs ul.tabs li.active a {
	color: #fff;
}

.revenza-tabs .woocommerce-Tabs-panel {
	line-height: 1.7;
}

.revenza-tabs .woocommerce-Tabs-panel > h2:first-child {
	display: none; /* avoid duplicate "Description" heading */
}

/* Vertical layout. */
.revenza-tabs--vertical .panel,
.revenza-tabs--vertical {
	overflow: hidden;
}

@media (min-width: 768px) {
	.revenza-tabs--vertical {
		display: grid;
		grid-template-columns: 240px 1fr;
		gap: 24px;
	}
	.revenza-tabs--vertical ul.tabs {
		flex-direction: column;
		margin-bottom: 0;
	}
}

/* ----------------------------------------------------------------------- *
 * Reviews tab — clean, brand-matched defaults (Elementor controls override)
 * ----------------------------------------------------------------------- */
.revenza-tabs #reviews {
	max-width: 100%;
}

.revenza-tabs .comment-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.revenza-tabs .comment-form-rating,
.revenza-tabs .comment-form-comment,
.revenza-tabs .comment-form-author,
.revenza-tabs .comment-form-email {
	margin: 0;
}

.revenza-tabs .comment-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.revenza-tabs .comment-form input[type="text"],
.revenza-tabs .comment-form input[type="email"],
.revenza-tabs .comment-form textarea,
.revenza-tabs .comment-form-rating select {
	width: 100%;
	max-width: 100%;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	padding: 12px 14px;
	background: #fff;
	box-shadow: none;
}

.revenza-tabs .comment-form textarea {
	min-height: 120px;
}

.revenza-tabs .comment-form .form-submit input,
.revenza-tabs #respond #submit {
	display: inline-block;
	width: auto;
	border: none;
	border-radius: 8px;
	padding: 14px 30px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: filter .2s ease;
}

.revenza-tabs .comment-form .form-submit input:hover,
.revenza-tabs #respond #submit:hover {
	filter: brightness(1.07);
}

.revenza-tabs #reviews ol.commentlist {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

/* ======================================================================= *
 * CART WIDGET — clean, brand-matched defaults (Elementor controls override)
 * ======================================================================= */
.revenza-cart {
	width: 100%;
}

.revenza-cart table.cart {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #eee;
	margin-bottom: 24px;
}

.revenza-cart table.cart thead th {
	text-align: left;
	padding: 16px;
	font-weight: 600;
	background: #fafafa;
	border-bottom: 1px solid #eee;
}

.revenza-cart table.cart td {
	padding: 16px;
	border-top: 1px solid #eee;
	vertical-align: middle;
}

.revenza-cart td.product-thumbnail img {
	width: 64px;
	height: auto;
	border-radius: 8px;
}

.revenza-cart td.product-name a {
	text-decoration: none;
	font-weight: 600;
}

.revenza-cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}

.revenza-cart .quantity input.qty {
	width: 72px;
	padding: 10px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	text-align: center;
	background: #fff;
	-moz-appearance: textfield;
}

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

/* Coupon row */
.revenza-cart .actions {
	padding: 16px;
}

.revenza-cart .coupon {
	display: inline-flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}

.revenza-cart .coupon input#coupon_code {
	padding: 12px 16px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #fff;
}

/* Apply coupon + Update cart + checkout — neutral brand defaults */
.revenza-cart .coupon button,
.revenza-cart button[name="update_cart"],
.revenza-cart button[name="apply_coupon"],
.revenza-cart .wc-proceed-to-checkout a.checkout-button {
	display: inline-block;
	border: none;
	border-radius: 8px;
	padding: 13px 26px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: filter .2s ease;
}

.revenza-cart .coupon button:hover,
.revenza-cart button[name="update_cart"]:hover,
.revenza-cart button[name="apply_coupon"]:hover,
.revenza-cart .wc-proceed-to-checkout a.checkout-button:hover {
	filter: brightness(1.07);
	color: #fff;
}

.revenza-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	padding: 16px 24px;
	font-size: 16px;
	text-decoration: none;
}

/* Cart totals box */
.revenza-cart .cart_totals {
	border: 1px solid #eee;
	border-radius: 12px;
	padding: 24px;
}

.revenza-cart .cart_totals h2 {
	margin-top: 0;
	margin-bottom: 16px;
}

.revenza-cart .cart_totals table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 18px;
}

.revenza-cart .cart_totals table th,
.revenza-cart .cart_totals table td {
	text-align: left;
	padding: 14px 0;
	border-top: 1px solid #eee;
}

.revenza-cart .cart-collaterals {
	overflow: hidden;
}

/* Empty-cart state — brand the notice + "Return to shop" button. */
.revenza-cart .cart-empty,
.revenza-cart .woocommerce-info.cart-empty {
	position: relative;
	display: flex;
	align-items: center;
	background: #f7f7f7;
	border-top: 3px solid #e8542f;
	border-radius: 8px;
	padding: 18px 18px 18px 52px;
	list-style: none;
	margin: 0 0 24px;
}

.revenza-cart .cart-empty::before {
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	color: #e8542f;
}

.revenza-cart .return-to-shop {
	margin: 0;
}

.revenza-cart .return-to-shop .button,
.revenza-cart .wc-backward {
	display: inline-block;
	border: none;
	border-radius: 8px;
	padding: 14px 28px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transition: filter .2s ease;
}

.revenza-cart .return-to-shop .button:hover,
.revenza-cart .wc-backward:hover {
	filter: brightness(1.07);
	color: #fff;
}

@media (max-width: 767px) {
	.revenza-cart .cart-collaterals .cart_totals {
		width: 100% !important;
		float: none !important;
	}
	.revenza-cart table.cart thead {
		display: none;
	}
	.revenza-cart table.cart td {
		display: block;
		text-align: right;
	}
}

/* ======================================================================= *
 * CHECKOUT WIDGET — clean, brand-matched defaults (Elementor controls win)
 * ======================================================================= */
.revenza-checkout {
	width: 100%;
}

.revenza-checkout .form-row {
	margin: 0 0 16px;
}

.revenza-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.revenza-checkout .input-text,
.revenza-checkout textarea,
.revenza-checkout select {
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #f7f7f7;
	box-shadow: none;
	line-height: 1.4;
}

.revenza-checkout textarea {
	min-height: 96px;
}

.revenza-checkout .input-text:focus,
.revenza-checkout textarea:focus,
.revenza-checkout select:focus {
	border-color: #e8542f;
	outline: none;
}

/* select2 (country / state) match the native inputs */
.revenza-checkout .select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #f7f7f7;
	display: flex;
	align-items: center;
	padding: 0 10px;
}

.revenza-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.4;
	padding: 0;
	color: inherit;
}

/* Coupon toggle notice — leave room on the left for WooCommerce's icon so it
 * never overlaps the text, and vertically centre that icon. */
.revenza-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	position: relative;
	background: #f7f7f7;
	border-top: 3px solid #e8542f;
	padding: 14px 18px 14px 52px;
	border-radius: 6px;
	list-style: none;
	margin: 0 0 20px;
}

.revenza-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
}

/* Expanded coupon form (Have a coupon? → input + Apply).
 * WooCommerce wraps the input and the button in TWO separate .form-row
 * elements, so we make the form itself a flex row with a controllable gap. */
.revenza-checkout .checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	border: 1px solid #eee;
	border-radius: 10px;
	padding: 18px;
	margin-bottom: 24px;
}

.revenza-checkout .checkout_coupon .form-row {
	margin: 0;
	padding: 0;
	width: auto;
	flex: 0 0 auto;
	float: none;
}

.revenza-checkout .checkout_coupon .form-row-last {
	margin: 0;
}

.revenza-checkout .checkout_coupon .clear {
	display: none;
}

.revenza-checkout .checkout_coupon input#coupon_code,
.revenza-checkout .checkout_coupon .input-text {
	width: auto;
	min-width: 200px;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #f7f7f7;
}

.revenza-checkout .checkout_coupon button[name="apply_coupon"],
.revenza-checkout .checkout_coupon button {
	border: none;
	border-radius: 8px;
	padding: 13px 26px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: filter .2s ease;
}

.revenza-checkout .checkout_coupon button:hover {
	filter: brightness(1.07);
	color: #fff;
}

/* Order review table */
.revenza-checkout #order_review {
	border: 1px solid #eee;
	border-radius: 12px;
	padding: 24px;
}

.revenza-checkout #order_review table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.revenza-checkout #order_review th,
.revenza-checkout #order_review td {
	padding: 14px 8px;
	text-align: left;
	border-top: 1px solid #eee;
}

.revenza-checkout #order_review td.product-total,
.revenza-checkout #order_review .amount {
	text-align: right;
}

/* Payment box */
.revenza-checkout #payment {
	background: #fbfbfb;
	border-radius: 10px;
}

.revenza-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 18px;
	border: 0;
}

.revenza-checkout #payment .payment_box {
	background: #fff;
	border-radius: 8px;
	padding: 14px;
}

/* Place order button — brand gradient, overrides the theme's yellow */
.revenza-checkout #place_order {
	display: block;
	width: 100%;
	border: none;
	border-radius: 10px;
	padding: 16px 28px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
	transition: filter .2s ease;
}

.revenza-checkout #place_order:hover {
	filter: brightness(1.07);
	color: #fff;
}

/* Two-column layout safety on smaller screens */
@media (max-width: 991px) {
	.revenza-checkout #order_review,
	.revenza-checkout #order_review_heading {
		width: 100% !important;
		float: none !important;
	}
}

/* ======================================================================= *
 * MY ACCOUNT WIDGET — clean, brand-matched defaults (Elementor controls win)
 * ======================================================================= */
.revenza-account {
	width: 100%;
	/* Padding (not margin) so the block-alignment margin control never wipes it. */
	padding-top: 50px;
	padding-bottom: 50px;
}

@media (max-width: 767px) {
	.revenza-account {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}

/* Block by default — so the logged-out login/register/reset card centres
 * reliably with margin:auto (no flex auto-margin quirks). */
.revenza-account .woocommerce {
	width: 100%;
	display: block;
}

/* Logged in only → switch to the two-column flex layout. */
.revenza-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
}

.revenza-account .woocommerce-MyAccount-navigation + .woocommerce-MyAccount-content {
	flex: 1 1 0;
}

/* Centre the login column wrapper if the theme provides one. */
.revenza-account #customer_login,
.revenza-account .woocommerce > .u-columns {
	max-width: 460px;
	margin-left: auto;
	margin-right: auto;
}

.revenza-account #customer_login .col-1,
.revenza-account #customer_login .col-2,
.revenza-account #customer_login .u-column1,
.revenza-account #customer_login .u-column2 {
	width: 100%;
	max-width: 100%;
	float: none;
	margin: 0;
}

.revenza-account #customer_login h2,
.revenza-account .woocommerce > h2 {
	text-align: center;
	margin: 0 0 18px;
}

.revenza-account .woocommerce-MyAccount-navigation {
	flex: 0 0 28%;
	max-width: 28%;
}

.revenza-account .woocommerce-MyAccount-content {
	flex: 1 1 0;
	min-width: 0;
}

/* Navigation menu */
.revenza-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid #eee;
	border-radius: 10px;
	overflow: hidden;
}

.revenza-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	border-bottom: 1px solid #eee;
}

.revenza-account .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: 0;
}

.revenza-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 14px 18px;
	text-decoration: none;
	font-weight: 600;
	color: #e8542f;
	transition: background-color .2s ease, color .2s ease;
}

.revenza-account .woocommerce-MyAccount-navigation ul li.is-active,
.revenza-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link.is-active {
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
}

/* Some themes paint the active <a> with a light background that hides the row
 * gradient (and makes the white text vanish). Force it transparent so the
 * gradient — or whatever the widget sets on the row — always shows through. */
.revenza-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: transparent !important;
	color: #fff;
}

/* Content area */
.revenza-account .woocommerce-MyAccount-content {
	line-height: 1.7;
}

.revenza-account .woocommerce-MyAccount-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

.revenza-account .woocommerce-MyAccount-content table thead th {
	text-align: left;
	padding: 14px;
	background: #fafafa;
	border-bottom: 1px solid #eee;
}

.revenza-account .woocommerce-MyAccount-content table td {
	padding: 14px;
	border-top: 1px solid #eee;
	vertical-align: middle;
}

/* Form fields */
.revenza-account .woocommerce-MyAccount-content .input-text,
.revenza-account .woocommerce-MyAccount-content input[type="text"],
.revenza-account .woocommerce-MyAccount-content input[type="email"],
.revenza-account .woocommerce-MyAccount-content input[type="tel"],
.revenza-account .woocommerce-MyAccount-content input[type="password"],
.revenza-account .woocommerce-MyAccount-content select,
.revenza-account form.woocommerce-form-login input.input-text,
.revenza-account form.woocommerce-form-register input.input-text {
	width: 100%;
	max-width: 100%;
	min-height: 46px;
	padding: 11px 14px;
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	background: #f7f7f7;
	box-shadow: none;
}

.revenza-account .woocommerce-MyAccount-content .input-text:focus,
.revenza-account form input.input-text:focus {
	border-color: #e8542f;
	outline: none;
}

/* Buttons — brand gradient, overrides theme defaults */
.revenza-account .woocommerce-MyAccount-content button[type="submit"],
.revenza-account .woocommerce-Button,
.revenza-account .woocommerce-MyAccount-content .button,
.revenza-account form.woocommerce-form-login button,
.revenza-account form.woocommerce-form-register button {
	display: inline-block;
	border: none;
	border-radius: 8px;
	padding: 13px 26px;
	background: linear-gradient(90deg, #2c7a7b 0%, #e8542f 100%);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: filter .2s ease;
}

.revenza-account .woocommerce-MyAccount-content button[type="submit"]:hover,
.revenza-account .woocommerce-Button:hover,
.revenza-account .woocommerce-MyAccount-content .button:hover,
.revenza-account form.woocommerce-form-login button:hover,
.revenza-account form.woocommerce-form-register button:hover {
	filter: brightness(1.07);
	color: #fff;
}

/* ----------------------------------------------------------------------- *
 * Login / Register / Lost-password forms (logged-out account page)
 * A polished, centred "auth card" by default — Elementor controls override.
 * ----------------------------------------------------------------------- */
.revenza-account .woocommerce-form-login,
.revenza-account .woocommerce-form-register,
.revenza-account .woocommerce-ResetPassword {
	display: block;
	width: 100%;
	max-width: 460px;
	margin: 0 auto;
	text-align: left;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 8px;
	box-shadow: 0 12px 34px rgba(0, 0, 0, .07);
	padding: 34px 32px;
}

.revenza-account form.woocommerce-form .form-row,
.revenza-account .woocommerce-ResetPassword .form-row {
	display: block;
	margin: 0 0 18px;
}

.revenza-account form .form-row > label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 600;
}

.revenza-account form .form-row input.input-text,
.revenza-account .woocommerce-ResetPassword .form-row input.input-text,
.revenza-account .woocommerce-ResetPassword input.input-text {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid #e3e6ea;
	border-radius: 8px;
	background: #f7f8fa;
	font-size: 15px;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.revenza-account form .form-row input.input-text:focus,
.revenza-account .woocommerce-ResetPassword input.input-text:focus {
	border-color: #e8542f;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(232, 84, 47, .12);
	outline: none;
}

/* WooCommerce gives the first/last rows a 47% float (that's why the reset
 * field looked half-width). Inside our auth cards every row is full width. */
.revenza-account .woocommerce-form .form-row-first,
.revenza-account .woocommerce-form .form-row-last,
.revenza-account .woocommerce-ResetPassword .form-row,
.revenza-account .woocommerce-ResetPassword .form-row-first,
.revenza-account .woocommerce-ResetPassword .form-row-last {
	width: 100%;
	float: none;
	margin-right: 0;
}

.revenza-account .woocommerce-ResetPassword::after,
.revenza-account .woocommerce-form .clear {
	display: none;
}

/* Optional bold heading rendered INSIDE the login card at the top. */
.revenza-account .woocommerce-form-login::before {
	content: var(--rv-login-title, "Welcome Back");
	display: var(--rv-login-title-display, none);
	text-align: center;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0 0 22px;
	color: inherit;
}

/* Password field + show/hide eye — keep the eye inside the field, no box. */
.revenza-account .password-input {
	display: block;
	position: relative;
}

.revenza-account .password-input input.input-text {
	padding-right: 46px;
}

.revenza-account .show-password-input {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: auto;
	height: auto;
	padding: 0;
	margin: 0;
	background: transparent !important;
	border: 0 !important;
	color: #9aa0a6;
	cursor: pointer;
}

/* "Remember me" reads as plain muted text, not a heading */
.revenza-account .woocommerce-form-login__rememberme,
.revenza-account form .form-row label.checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 400;
	color: #666;
	margin: 2px 0 18px;
}

.revenza-account .woocommerce-form-login__rememberme input,
.revenza-account form .form-row label.checkbox input {
	width: auto;
	min-height: 0;
	margin: 0;
}

/* Full-width primary buttons make the card look intentional */
.revenza-account .woocommerce-form-login__submit,
.revenza-account .woocommerce-form-register button,
.revenza-account .woocommerce-ResetPassword button {
	display: block;
	width: 100%;
	justify-content: center;
	text-align: center;
	padding: 14px 24px;
	border-radius: 8px;
	font-size: 15px;
}

.revenza-account .lost_password {
	margin: 16px 0 0;
	text-align: center;
}

.revenza-account .lost_password a {
	font-size: 14px;
}

/* Lost-password intro text sits above its own card nicely */
.revenza-account .woocommerce-ResetPassword > p:first-child {
	margin-top: 0;
}

/* Info / notice boxes inside the account content ("No order has been made
 * yet", etc.) — neutralise the theme's stray blue top border and stop the
 * icon overlapping the text. */
.revenza-account .woocommerce-MyAccount-content .woocommerce-info,
.revenza-account .woocommerce-MyAccount-content .woocommerce-message,
.revenza-account .woocommerce-MyAccount-content .woocommerce-error {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	background: #f7f7f7;
	border-top: 3px solid #e8542f;
	border-radius: 6px;
	padding: 16px 18px 16px 52px;
	list-style: none;
	margin: 0 0 20px;
}

.revenza-account .woocommerce-MyAccount-content .woocommerce-info::before,
.revenza-account .woocommerce-MyAccount-content .woocommerce-message::before {
	left: 20px;
	top: 26px;
	margin: 0;
	color: #e8542f;
}

.revenza-account .woocommerce-MyAccount-content .woocommerce-info .button,
.revenza-account .woocommerce-MyAccount-content .woocommerce-message .button {
	margin-left: auto;
}

/* Stack on small screens */
@media (max-width: 767px) {
	.revenza-account .woocommerce {
		flex-direction: column !important;
	}
	.revenza-account .woocommerce-MyAccount-navigation {
		flex: 0 0 100%;
		max-width: 100%;
	}
}
