/* Gloom Habit 2.9.74 — compact, premium mobile product purchase flow.
 * Product photography keeps its native size. The sticky controller delegates
 * to WooCommerce's real add-to-cart form and never touches PayPal.
 */

.gh-mobile-sticky-atc[hidden] {
	display: none !important;
}

.gh-cart-count.is-empty {
	display: none !important;
}

@media (max-width: 820px) {
	body.single-product {
		padding-bottom: calc(78px + env(safe-area-inset-bottom));
	}

	body.single-product .product-entry-wrapper {
		gap: 0 !important;
	}

	body.single-product .gh-gallery-dots {
		margin: 12px 0 18px !important;
	}

	body.single-product .gh-gallery-dots button {
		width: 7px;
		height: 7px;
		background: #cfcfcf;
	}

	body.single-product .gh-gallery-dots button.is-active {
		background: #171717;
	}

	body.single-product div.product .summary {
		padding: 0 4px !important;
	}

	body.single-product div.product .product_title {
		margin: 0 0 9px !important;
		font-size: clamp(23px, 6.6vw, 27px) !important;
		letter-spacing: -0.035em !important;
		line-height: 1.08 !important;
	}

	body.single-product div.product p.price,
	body.single-product div.product > .summary > span.price {
		margin: 0 0 16px !important;
		font-size: 17px !important;
		line-height: 1.3 !important;
	}

	body.single-product form.variations_form table.variations {
		margin: 0 0 10px !important;
	}

	body.single-product form.variations_form table.variations tr {
		margin: 0 0 14px !important;
	}

	body.single-product form.variations_form table.variations th label {
		margin: 0 0 8px !important;
		font-size: 13px !important;
		font-weight: 600 !important;
	}

	body.single-product form.variations_form table.variations tr.gh-single-option-row {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 12px;
		margin-bottom: 13px !important;
	}

	body.single-product form.variations_form table.variations tr.gh-single-option-row th,
	body.single-product form.variations_form table.variations tr.gh-single-option-row td {
		display: block !important;
		width: auto !important;
	}

	body.single-product form.variations_form table.variations tr.gh-single-option-row th label {
		margin: 0 !important;
	}

	body.single-product form.variations_form table.variations tr.gh-single-option-row .gh-variation-swatches {
		justify-content: flex-start;
	}

	body.single-product .gh-variation-swatches {
		gap: 7px !important;
	}

	body.single-product .gh-variation-swatch {
		min-width: 48px !important;
		height: 40px !important;
		padding: 0 12px !important;
		border-radius: 12px !important;
		font-size: 13px !important;
	}

	body.single-product tr.gh-single-option-row .gh-variation-swatch {
		min-width: 76px !important;
		height: 38px !important;
	}

	body.single-product .woocommerce-variation-add-to-cart {
		grid-template-columns: 96px minmax(0, 1fr) !important;
		gap: 8px !important;
		margin-top: 2px !important;
	}

	body.single-product .quantity,
	body.single-product div.product form.cart .single_add_to_cart_button {
		height: 50px !important;
		min-height: 50px !important;
		border-radius: 12px !important;
	}

	body.single-product div.product form.cart .single_add_to_cart_button {
		font-size: 15px !important;
		font-weight: 650 !important;
	}

	body.single-product .gh-product-assurance {
		margin-top: 24px !important;
		border-color: #e1e1e1 !important;
		border-radius: 10px !important;
		overflow: hidden;
	}

	body.single-product .gh-product-assurance p {
		min-height: 38px !important;
		padding: 7px 11px !important;
		font-size: 10px !important;
	}

	body.single-product .gh-product-accordions {
		margin-top: 24px !important;
	}

	body.single-product .gh-product-accordions summary {
		min-height: 54px !important;
	}

	body.single-product .gh-mobile-sticky-atc {
		position: fixed;
		z-index: 998;
		right: 0;
		bottom: 0;
		left: 0;
		box-sizing: border-box;
		padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
		border-top: 1px solid rgba(17, 17, 17, 0.1);
		background: rgba(255, 255, 255, 0.96);
		box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.09);
		backdrop-filter: blur(14px);
		-webkit-backdrop-filter: blur(14px);
		transform: translateY(115%);
		transition: transform 180ms ease;
	}

	body.single-product .gh-mobile-sticky-atc.is-visible {
		transform: translateY(0);
	}

	.gh-mobile-sticky-atc__inner {
		display: grid;
		grid-template-columns: auto minmax(190px, 1fr);
		align-items: center;
		gap: 13px;
		width: 100%;
		max-width: 560px;
		margin: 0 auto;
	}

	.gh-mobile-sticky-atc__price {
		display: grid;
		gap: 1px;
		min-width: 68px;
		color: #151515;
		line-height: 1.2;
		white-space: nowrap;
	}

	.gh-mobile-sticky-atc__price small {
		color: #777;
		font-size: 9px;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.gh-mobile-sticky-atc__price strong,
	.gh-mobile-sticky-atc__price .price,
	.gh-mobile-sticky-atc__price .amount {
		font-size: 15px !important;
		font-weight: 650 !important;
		line-height: 1.25 !important;
	}

	.gh-mobile-sticky-atc__button {
		min-width: 0;
		min-height: 52px;
		padding: 0 20px;
		border: 1px solid #171717;
		border-radius: 13px;
		background: #171717;
		color: #fff;
		font: 650 15px/1 "DM Sans", sans-serif;
		letter-spacing: -0.01em;
		cursor: pointer;
	}

	.gh-mobile-sticky-atc__button:active {
		transform: translateY(1px);
	}

	.gh-mobile-sticky-atc__button:focus-visible {
		outline: 2px solid #171717;
		outline-offset: 3px;
	}

	.gh-mobile-sticky-atc__status {
		position: absolute;
		right: 14px;
		bottom: calc(100% + 8px);
		max-width: calc(100% - 28px);
		margin: 0;
		padding: 7px 10px;
		border-radius: 8px;
		background: #171717;
		color: #fff;
		box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
		font-size: 12px;
		line-height: 1.35;
	}

	.gh-mobile-sticky-atc__status:empty {
		display: none;
	}

	body.single-product tr.gh-option-required .gh-variation-swatches {
		padding: 5px;
		border-radius: 14px;
		box-shadow: 0 0 0 2px #171717;
	}
}

@media (min-width: 821px) {
	.gh-mobile-sticky-atc {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gh-mobile-sticky-atc {
		transition: none !important;
	}
}
