/* Global WooCommerce card alignment: keep every shop card action row level, regardless of product type. */
.woocommerce ul.products li.product{display:flex;flex-direction:column}
.woocommerce ul.products li.product .astra-shop-summary-wrap{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}
.woocommerce ul.products li.product .woocommerce-loop-product__title{min-height:2.8em;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.woocommerce ul.products li.product .price,.woocommerce ul.products li.product .utr-loop-rental-price{min-height:1.7em;margin-bottom:0}
.woocommerce ul.products li.product .utr-loop-rental-price small{font-size:.82em;font-weight:500}
.woocommerce ul.products li.product .utr-loop-actions,.woocommerce ul.products li.product .utqv-loop-actions{margin-top:auto;padding-top:10px}

/* UpahTukang Rentals */
.utr-loop-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto}
.utr-loop-actions .button{width:100%;min-height:42px;display:flex;align-items:center;justify-content:center;text-align:center}
.utr-view-product{background:transparent!important;color:var(--ast-global-color-0,#1559ed)!important;border:1px solid currentColor!important}

.utr-modal[hidden]{display:none!important}
.utr-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px}
.utr-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.64);backdrop-filter:blur(2px)}
.utr-modal__dialog{position:relative;width:min(680px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.25);padding:24px}
.utr-modal__close{position:absolute;right:14px;top:12px;border:0;background:#f1f5f9;width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;z-index:2}
body.utr-modal-open{overflow:hidden}
.utr-loading{padding:38px;text-align:center}

.utr-booking{--utr-blue:#1559ed;color:#182033}
.utr-booking__head{display:flex;gap:16px;align-items:center;padding-right:42px;margin-bottom:18px}
.utr-booking__image{width:110px;height:110px;object-fit:contain;background:#f8fafc;border-radius:12px}
.utr-booking h2{font-size:22px;line-height:1.2;margin:0 0 5px}
.utr-rate{font-size:20px;font-weight:800;color:#111827}
.utr-rate span{font-size:13px;font-weight:500;color:#64748b}
.utr-deposit-note{font-size:13px;color:#64748b;margin-top:4px}

.utr-variation-wrap{border-top:1px solid #e5e7eb;padding-top:14px;margin-bottom:14px}
.utr-variation-wrap table{margin:0!important}
.utr-variation-wrap th,.utr-variation-wrap td{padding:5px 0!important;border:0!important}
.utr-variation-wrap select{width:100%;min-height:42px}

.utr-date-grid{display:grid;grid-template-columns:1fr 1fr .65fr;gap:10px}
.utr-date-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#475569}
.utr-date-grid input{width:100%;min-height:44px;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;background:#fff}

.utr-summary{margin-top:16px;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;background:#f8fafc}
.utr-summary>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px}
.utr-summary__total{border-top:1px solid #cbd5e1;margin-top:5px;padding-top:11px!important;font-size:17px!important}
.utr-summary__total strong{color:var(--utr-blue)}

.utr-message{min-height:22px;margin:10px 0 4px;font-size:13px}
.utr-message--ok{color:#15803d}
.utr-message--error{color:#dc2626}
.utr-message--loading{color:#64748b}

.utr-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.utr-actions .button{min-height:46px;display:flex!important;align-items:center;justify-content:center}
.utr-actions button:disabled{opacity:.48;cursor:not-allowed}

.utr-single-booking{margin-top:10px;padding:16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.utr-single-booking .utr-booking__head{padding-right:0}
.utr-single-booking .utr-booking__head img{display:none}

@media(max-width:620px){
	.utr-modal{align-items:flex-end;padding:0}
	.utr-modal__dialog{width:100%;max-height:88vh;border-radius:18px 18px 0 0;padding:20px 16px 24px}
	.utr-booking__head{padding-right:36px}
	.utr-booking__image{width:82px;height:82px}
	.utr-booking h2{font-size:18px}
	.utr-date-grid{grid-template-columns:1fr 1fr}
	.utr-date-grid label:last-child{grid-column:1/-1}
	.utr-actions{grid-template-columns:1fr}
}


/* v1.1.0 - Buy + Rent dual-purpose rental products */
.utr-loop-actions--dual{
	display:grid!important;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
	gap:8px!important;
	width:100%!important;
	margin-top:auto!important;
}
.utr-loop-actions--dual .utr-buy-action,
.utr-loop-actions--dual .utr-rent-action{min-width:0}
.utr-loop-actions--dual .utr-buy-action>* ,
.utr-loop-actions--dual .utr-rent-action>*{
	width:100%!important;
	min-height:42px!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	margin:0!important;
	padding-left:8px!important;
	padding-right:8px!important;
	text-align:center!important;
	white-space:normal!important;
}
.utr-loop-actions--dual .utr-view-product{
	grid-column:1/-1;
	width:100%!important;
	min-height:42px!important;
}

/* Keep every Astra/WooCommerce card's content stack predictable. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
	display:flex!important;
	flex-direction:column!important;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap{
	display:flex!important;
	flex-direction:column!important;
	flex:1 1 auto!important;
	width:100%!important;
}
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce-page ul.products li.product .ast-woo-product-category{
	min-height:1.45em!important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title{
	height:2.9em!important;
	min-height:2.9em!important;
	line-height:1.45em!important;
	display:-webkit-box!important;
	-webkit-line-clamp:2!important;
	-webkit-box-orient:vertical!important;
	overflow:hidden!important;
	margin-bottom:6px!important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
	height:3.2em!important;
	min-height:3.2em!important;
	display:flex!important;
	align-items:flex-start!important;
	align-content:flex-start!important;
	flex-wrap:wrap!important;
	margin-bottom:8px!important;
}
.woocommerce ul.products li.product .utqv-loop-actions,
.woocommerce-page ul.products li.product .utqv-loop-actions,
.woocommerce ul.products li.product .utr-loop-actions,
.woocommerce-page ul.products li.product .utr-loop-actions{
	margin-top:auto!important;
}

.utr-rental-section-title{
	padding-bottom:10px;
	margin-bottom:12px;
	border-bottom:1px solid #e5e7eb;
}
.utr-rental-section-title .utr-rental-kicker{
	display:inline-block;
	font-size:11px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--utr-blue,#1559ed);
	margin-bottom:3px;
}
.utr-rental-section-title h3{font-size:19px;line-height:1.25;margin:0 0 3px}
.utr-rental-section-title p{font-size:12px;color:#64748b;margin:0}
.utr-single-booking .utr-booking__head{display:none}

@media(max-width:620px){
	.utr-loop-actions--dual{grid-template-columns:1fr 1fr!important}
	.woocommerce ul.products li.product .price,
	.woocommerce-page ul.products li.product .price{height:auto!important;min-height:3.2em!important}
}


/* v1.1.1 — Astra product-grid baseline alignment */
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap{
	min-height:210px;
	display:flex!important;
	flex-direction:column!important;
	box-sizing:border-box;
}
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce-page ul.products li.product .ast-woo-product-category{
	min-height:20px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title{
	min-height:44px!important;
	max-height:44px!important;
	line-height:22px!important;
	margin-bottom:6px!important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
	min-height:58px!important;
	margin:0 0 10px!important;
	display:block!important;
}
.utr-loop-rental-rate{
	display:block;
	margin-top:4px;
	font-size:12px;
	line-height:1.35;
	font-weight:500;
	color:#475569;
}
.utr-loop-rental-rate strong{
	color:#111827;
	font-weight:800;
}
.utr-loop-rental-rate__suffix{
	margin-left:1px;
}
.woocommerce ul.products li.product .utr-loop-actions,
.woocommerce-page ul.products li.product .utr-loop-actions,
.woocommerce ul.products li.product .ast-loop-product__link + .button,
.woocommerce-page ul.products li.product .ast-loop-product__link + .button{
	margin-top:auto!important;
}
.utr-loop-actions--rental{
	grid-template-columns:1fr 1fr!important;
}
.utr-loop-actions--rental .utr-buy-action > *,
.utr-loop-actions--rental .utr-rent-action > *{
	height:42px!important;
	min-height:42px!important;
	padding-top:0!important;
	padding-bottom:0!important;
	white-space:nowrap;
}
.utr-loop-actions--rental .utr-view-product{
	height:42px!important;
	min-height:42px!important;
}

/* Keep quick-variation and normal WooCommerce actions visually equal. */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button{
	min-height:42px;
	box-sizing:border-box;
}
@media(max-width:921px){
	.woocommerce ul.products li.product .astra-shop-summary-wrap,
	.woocommerce-page ul.products li.product .astra-shop-summary-wrap{
		min-height:200px;
	}
}


/* v1.1.2 — Shop-only rental label cleanup */
.woocommerce ul.products li.product .utr-loop-rental-rate,
.woocommerce-page ul.products li.product .utr-loop-rental-rate{
	display:block!important;
	white-space:nowrap!important;
	overflow:visible!important;
	text-overflow:clip!important;
	margin-top:4px!important;
	font-size:12px!important;
	line-height:18px!important;
	min-height:18px!important;
}
.woocommerce ul.products li.product .utr-loop-rental-rate .woocommerce-Price-amount,
.woocommerce-page ul.products li.product .utr-loop-rental-rate .woocommerce-Price-amount,
.woocommerce ul.products li.product .utr-loop-rental-rate__suffix,
.woocommerce-page ul.products li.product .utr-loop-rental-rate__suffix{
	display:inline!important;
	white-space:nowrap!important;
}
.woocommerce ul.products li.product .utr-loop-actions--rental .utr-buy-action > *,
.woocommerce-page ul.products li.product .utr-loop-actions--rental .utr-buy-action > *,
.woocommerce ul.products li.product .utr-loop-actions--rental .utr-rent-action > *,
.woocommerce-page ul.products li.product .utr-loop-actions--rental .utr-rent-action > *{
	width:100%!important;
	height:42px!important;
	min-height:42px!important;
	padding:0 10px!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	line-height:1!important;
	white-space:nowrap!important;
	font-size:13px!important;
}


/* v1.1.3 — exact two-row rental action layout */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
	display:flex!important;
	flex-direction:column!important;
	height:100%!important;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap{
	display:flex!important;
	flex-direction:column!important;
	flex:1 1 auto!important;
	min-height:230px!important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title{
	min-height:44px!important;
	max-height:44px!important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
	min-height:58px!important;
}
.woocommerce ul.products li.product .utr-loop-actions,
.woocommerce-page ul.products li.product .utr-loop-actions{
	margin-top:auto!important;
	width:100%!important;
}

/* Rental cards: first row Buy + Rent, second row View Product. */
.utr-loop-actions--rental{
	display:flex!important;
	flex-direction:column!important;
	gap:8px!important;
}
.utr-loop-primary-row{
	display:grid!important;
	grid-template-columns:1fr 1fr!important;
	gap:8px!important;
	width:100%!important;
}
.utr-loop-secondary-row{
	display:block!important;
	width:100%!important;
}
.utr-loop-primary-row .utr-buy-action,
.utr-loop-primary-row .utr-rent-action{
	min-width:0!important;
	width:100%!important;
}
.utr-loop-primary-row .utr-buy-action > *,
.utr-loop-primary-row .utr-rent-action > *,
.utr-loop-secondary-row > *{
	width:100%!important;
	height:42px!important;
	min-height:42px!important;
	max-height:42px!important;
	padding:0 10px!important;
	margin:0!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	box-sizing:border-box!important;
	line-height:1!important;
	white-space:nowrap!important;
}

/* Remove accidental/legacy spacing or blank pseudo/action rows. */
.utr-loop-actions--rental::before,
.utr-loop-actions--rental::after,
.utr-loop-primary-row::before,
.utr-loop-primary-row::after,
.utr-loop-secondary-row::before,
.utr-loop-secondary-row::after{
	content:none!important;
	display:none!important;
}
.utr-loop-actions--rental > :empty{
	display:none!important;
}

/* Match regular product action rows visually. */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button{
	box-sizing:border-box!important;
	min-height:42px!important;
}


/* v1.1.4 — live-DOM fix for coexistence with UpahTukang Shop Quick Variations */

/* Undo earlier fixed summary height hacks. Alignment comes from fixed content slots instead. */
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap{
	min-height:0!important;
	height:auto!important;
	display:flex!important;
	flex-direction:column!important;
}

/* Reserve the same vertical content slots on every product card. */
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce-page ul.products li.product .ast-woo-product-category{
	min-height:18px!important;
	line-height:18px!important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title{
	min-height:44px!important;
	max-height:44px!important;
	line-height:22px!important;
	margin:0 0 5px!important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
	min-height:58px!important;
	margin:0 0 10px!important;
	display:block!important;
}

/* Normal Quick Variations cards and rental cards use the same two-row rhythm. */
.woocommerce ul.products li.product .utqv-loop-actions,
.woocommerce-page ul.products li.product .utqv-loop-actions,
.woocommerce ul.products li.product .utr-loop-actions,
.woocommerce-page ul.products li.product .utr-loop-actions{
	margin-top:0!important;
	width:100%!important;
}

.utr-loop-actions--rental{
	display:flex!important;
	flex-direction:column!important;
	gap:8px!important;
}
.utr-loop-primary-row{
	display:grid!important;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
	gap:8px!important;
	width:100%!important;
}
.utr-loop-primary-row > div,
.utr-loop-secondary-row{
	width:100%!important;
	min-width:0!important;
}
.utr-loop-primary-row .button,
.utr-loop-secondary-row .button{
	width:100%!important;
	height:42px!important;
	min-height:42px!important;
	max-height:42px!important;
	margin:0!important;
	padding:0 8px!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	box-sizing:border-box!important;
	line-height:1!important;
	white-space:nowrap!important;
	font-size:12px!important;
}
.utr-loop-secondary-row{
	display:block!important;
}
.utr-loop-secondary-row .utr-view-product{
	background:transparent!important;
	color:var(--ast-global-color-0,#1559ed)!important;
	border:1px solid currentColor!important;
}

/* Rental price is one compact line inside the reserved price slot. */
.woocommerce ul.products li.product .utr-loop-rental-rate,
.woocommerce-page ul.products li.product .utr-loop-rental-rate{
	display:block!important;
	white-space:nowrap!important;
	line-height:18px!important;
	margin-top:3px!important;
	font-size:11px!important;
	min-height:18px!important;
}


/* v1.1.5 — match rental button sizing to Astra / Quick Variations exactly */
.woocommerce ul.products li.product .utr-loop-primary-row .button,
.woocommerce-page ul.products li.product .utr-loop-primary-row .button,
.woocommerce ul.products li.product .utr-loop-secondary-row .button,
.woocommerce-page ul.products li.product .utr-loop-secondary-row .button{
	font-size:inherit!important;
	line-height:inherit!important;
	padding:inherit!important;
	height:auto!important;
	min-height:0!important;
	max-height:none!important;
}

.woocommerce ul.products li.product .utr-loop-primary-row .utr-buy-action > *,
.woocommerce-page ul.products li.product .utr-loop-primary-row .utr-buy-action > *,
.woocommerce ul.products li.product .utr-loop-primary-row .utr-rent-action > *,
.woocommerce-page ul.products li.product .utr-loop-primary-row .utr-rent-action > *,
.woocommerce ul.products li.product .utr-loop-secondary-row > *,
.woocommerce-page ul.products li.product .utr-loop-secondary-row > *{
	font-size:inherit!important;
	line-height:inherit!important;
	padding:inherit!important;
	height:auto!important;
	min-height:0!important;
	max-height:none!important;
}

.woocommerce ul.products li.product .utr-loop-primary-row,
.woocommerce-page ul.products li.product .utr-loop-primary-row{
	align-items:stretch!important;
}

.woocommerce ul.products li.product .utr-loop-primary-row .button,
.woocommerce-page ul.products li.product .utr-loop-primary-row .button,
.woocommerce ul.products li.product .utr-loop-secondary-row .button,
.woocommerce-page ul.products li.product .utr-loop-secondary-row .button{
	width:100%!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	box-sizing:border-box!important;
	margin:0!important;
	white-space:nowrap!important;
}

/* Use the same vertical rhythm as Quick Variations' two-row actions. */
.utr-loop-actions--rental{
	gap:8px!important;
}


/* v1.1.6 — measured live computed-style match */
.woocommerce ul.products li.product .utr-loop-primary-row .button,
.woocommerce-page ul.products li.product .utr-loop-primary-row .button,
.woocommerce ul.products li.product .utr-loop-secondary-row .button,
.woocommerce-page ul.products li.product .utr-loop-secondary-row .button{
	height:50px!important;
	min-height:50px!important;
	max-height:50px!important;
	padding:17px 24px!important;
	font-size:16px!important;
	line-height:16px!important;
	font-weight:400;
	margin-top:0!important;
	margin-bottom:0!important;
	box-sizing:border-box!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	white-space:nowrap!important;
}

.woocommerce ul.products li.product .utr-loop-primary-row,
.woocommerce-page ul.products li.product .utr-loop-primary-row{
	align-items:stretch!important;
}

.woocommerce ul.products li.product .utr-loop-primary-row > div,
.woocommerce-page ul.products li.product .utr-loop-primary-row > div,
.woocommerce ul.products li.product .utr-loop-secondary-row,
.woocommerce-page ul.products li.product .utr-loop-secondary-row{
	min-height:50px!important;
}
