/*
 * Stage63 measured visual fidelity layer.
 * Reference: BloomChic PDP at matching 390/402/1200/1440 viewports.
 * BeachNova retains its own brand, media, copy and commerce data.
 */

@media (min-width: 801px) {
	html body:not(.woocommerce-checkout) .site-header .brand-row > .logo-link {
		position: absolute !important;
		left: 50% !important;
		top: 50% !important;
		grid-column: auto !important;
		transform: translate(-50%, -50%) !important;
	}

	html body:not(.woocommerce-checkout) .site-header .brand-row > .logo-link img.logo,
	html body:not(.woocommerce-checkout) .site-header .brand-row > .logo-link img.custom-logo {
		display: block !important;
		width: 150px !important;
		max-width: 150px !important;
		height: auto !important;
		max-height: none !important;
		object-fit: contain !important;
	}
}

/* Stage63 real Gutenberg content fidelity.
 * The live About page uses Hostinger-generated layout classes. Explicitly
 * define the content grid so WordPress layout variables cannot collapse the
 * image, copy, and CTA into narrow side-by-side mobile columns. */
.bn-page-content:has(.hostinger-ai-about-us-2) {
	width: 100%;
	max-width: 1280px;
}

.bn-page-content .hostinger-ai-about-us-2,
.bn-page-content .hostinger-ai-gallery-4,
.bn-page-content .hostinger-ai-customer-reviews-5 {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.bn-page-content .hostinger-ai-about-us-2 .alignwide.is-layout-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(28px, 4vw, 64px);
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding: clamp(28px, 4vw, 64px) 24px !important;
}

.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-image {
	width: 100%;
	margin: 0;
}

.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.bn-page-content .hostinger-ai-about-us-2 .wp-container-content-5e2576f9 {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	min-width: 0;
	padding: 0 !important;
}

.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-title {
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	font-size: clamp(30px, 3.5vw, 52px) !important;
	line-height: 1.06;
	letter-spacing: -.035em;
}

.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-description {
	width: 100%;
	max-width: 520px;
	margin: 0 !important;
	font-size: 15px !important;
	line-height: 1.7;
}

.bn-page-content .hostinger-ai-about-us-2 .wp-block-buttons,
.bn-page-content .hostinger-ai-about-us-2 .wp-block-button {
	display: block;
	width: auto;
	margin: 0;
}

.bn-page-content .hostinger-ai-about-us-2 .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 150px;
	min-height: 46px;
	padding: 0 24px !important;
	border: 1px solid #111 !important;
	border-radius: 0 !important;
	background: #111;
	color: #fff !important;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
}

.bn-page-content .hostinger-ai-gallery-4 {
	padding: clamp(34px, 5vw, 72px) 24px;
	background: #fff;
}

.bn-page-content .hostinger-ai-gallery-4 > .wp-block-group__inner-container {
	max-width: 1180px;
	margin-inline: auto;
}

.bn-page-content .hostinger-ai-gallery-4 .alignwide.hostinger-ai-fade-up {
	padding-block: 0 30px !important;
}

.bn-page-content .hostinger-ai-gallery-4 .hostinger-ai-title {
	margin: 0 0 10px !important;
	font-size: clamp(28px, 3vw, 42px) !important;
	line-height: 1.1;
}

.bn-page-content .hostinger-ai-gallery-4 .hostinger-ai-description {
	margin: 0 !important;
	font-size: 14px !important;
	line-height: 1.6;
}

.bn-page-content .hostinger-ai-gallery-4 .wp-block-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0 0 18px;
}

.bn-page-content .hostinger-ai-gallery-4 .wp-block-column,
.bn-page-content .hostinger-ai-gallery-4 figure {
	min-width: 0;
	margin: 0;
}

.bn-page-content .hostinger-ai-gallery-4 img {
	display: block;
	width: 100%;
	aspect-ratio: 1.18;
	object-fit: cover;
	border-radius: 10px !important;
}

.bn-page-content .hostinger-ai-customer-reviews-5 {
	padding: 52px 24px;
	background: #f6f3ee !important;
}

.bn-page-content .hostinger-ai-customer-reviews-5 .alignwide {
	min-height: 0 !important;
	padding: 0 !important;
}

.bn-page-content .hostinger-ai-customer-reviews-5 .hostinger-ai-testimonial-text {
	max-width: 760px;
	margin: 0 auto !important;
	font-size: clamp(24px, 3vw, 36px) !important;
	line-height: 1.42;
}

@media (max-width: 800px) {
	.bn-page-content:has(.hostinger-ai-about-us-2) {
		max-width: none;
	}

	.bn-page-content .hostinger-ai-about-us-2 .alignwide.is-layout-grid {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 20px 0 34px !important;
	}

	.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-image img {
		aspect-ratio: 4 / 3;
		border-radius: 10px !important;
	}

	.bn-page-content .hostinger-ai-about-us-2 .wp-container-content-5e2576f9 {
		gap: 12px;
	}

	.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-title {
		font-size: 30px !important;
	}

	.bn-page-content .hostinger-ai-about-us-2 .hostinger-ai-description {
		font-size: 14px !important;
		line-height: 1.6;
	}

	.bn-page-content .hostinger-ai-gallery-4 {
		margin-inline: -16px;
		padding: 36px 16px;
	}

	.bn-page-content .hostinger-ai-gallery-4 .alignwide.hostinger-ai-fade-up {
		padding-bottom: 22px !important;
	}

	.bn-page-content .hostinger-ai-gallery-4 .wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		margin-bottom: 8px;
	}

	.bn-page-content .hostinger-ai-gallery-4 img {
		aspect-ratio: 3 / 4;
		border-radius: 8px !important;
	}

	.bn-page-content .hostinger-ai-customer-reviews-5 {
		margin-inline: -16px;
		padding: 38px 20px;
	}

	.bn-page-content .hostinger-ai-customer-reviews-5 .hostinger-ai-testimonial-text {
		font-size: 24px !important;
		line-height: 1.45;
	}
}

@media (min-width: 901px) {
	html body.single-product .woocommerce div.product {
		grid-template-columns: minmax(0, 1fr) clamp(440px, 36.4vw, 524px) !important;
		column-gap: 48px !important;
		row-gap: 0 !important;
	}

	html body.single-product .summary.entry-summary {
		top: 128px !important;
		max-height: calc(100vh - 144px) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		scrollbar-width: thin !important;
		overscroll-behavior: contain !important;
	}

	html body.single-product .summary.entry-summary::-webkit-scrollbar {
		width: 4px !important;
	}

	html body.single-product .summary.entry-summary::-webkit-scrollbar-thumb {
		background: #b8b8b8 !important;
	}
}

@media (max-width: 900px) {
	/*
	 * Lock the mobile menu trigger to one icon layer. Older catalog snapshots
	 * can still match legacy .brand-row .menu::before rules from global.css;
	 * without this guard the pseudo hamburger sits on top of menu.svg and
	 * visually becomes six horizontal strokes.
	 */
	html body:not(.woocommerce-checkout) .site-header .menu::before,
	html body:not(.woocommerce-checkout) .site-header .menu::after,
	html body:not(.woocommerce-checkout) .site-header > .brand-row > .menu::before,
	html body:not(.woocommerce-checkout) .site-header > .brand-row > .menu::after {
		content: none !important;
		display: none !important;
		width: 0 !important;
		height: 0 !important;
		background: none !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	html body:not(.woocommerce-checkout) .site-header .menu > img,
	html body:not(.woocommerce-checkout) .site-header > .brand-row > .menu > img {
		display: block !important;
		width: 22px !important;
		height: 22px !important;
		margin: 0 !important;
		object-fit: contain !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	html body:not(.woocommerce-checkout) .drawer.market-open {
		overflow: hidden !important;
	}

	html body:not(.woocommerce-checkout) .drawer .drawer-market-panel {
		position: absolute !important;
		inset: 0 !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	html body.single-product .site-header,
	html body.single-product .site-header > .brand-row {
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		flex-basis: 52px !important;
	}

	html body.post-type-archive-product .site-header,
	html body.tax-product_cat .site-header,
	html body.search-results .site-header {
		height: 62px !important;
	}

	html body.post-type-archive-product .site-header > .brand-row,
	html body.tax-product_cat .site-header > .brand-row,
	html body.search-results .site-header > .brand-row {
		height: 62px !important;
	}

	html body.post-type-archive-product .bn-mobile-shop-toolbar,
	html body.tax-product_cat .bn-mobile-shop-toolbar,
	html body.search-results .bn-mobile-shop-toolbar {
		top: 62px !important;
		height: 40px !important;
		margin-bottom: 8px !important;
	}

	html body.post-type-archive-product .bn-mobile-shop-toolbar > *,
	html body.tax-product_cat .bn-mobile-shop-toolbar > *,
	html body.search-results .bn-mobile-shop-toolbar > * {
		height: 39px !important;
	}

	html body.post-type-archive-product .woocommerce-area > .section > ul.products,
	html body.tax-product_cat .woocommerce-area > .section > ul.products,
	html body.search-results .woocommerce-area > .section > ul.products {
		gap: 20px 8px !important;
	}

	html body.single-product .bn-mobile-product-head {
		gap: 8px !important;
		padding: 12px 16px 13px !important;
	}

	html body.single-product .summary.entry-summary {
		padding: 0 16px 20px !important;
	}

	html body.single-product .summary form.variations_form,
	html body.single-product .summary .bn-pdp-configurator {
		padding-top: 14px !important;
	}

	html body.single-product .summary table.variations {
		row-gap: 0 !important;
	}

	html body.single-product .summary table.variations tr.bn-color-attribute-row {
		margin-bottom: 0 !important;
	}

	html body.single-product .summary table.variations tr.bn-color-attribute-row > th.label {
		margin-bottom: 8px !important;
	}

	html body.single-product .summary .bn-size-title-row {
		margin-top: 0 !important;
	}

	html body.single-product .summary table.variations tr.bn-size-attribute-row,
	html body.single-product .summary table.variations tr:has(.bn-size-title-row) {
		margin-top: -8px !important;
	}

	html body.single-product > .bn-mobile-buy.visible,
	html body.single-product > .bn-mobile-buy.visible.is-ready,
	html body.single-product > .bn-mobile-buy.visible.is-visible {
		grid-template-columns: 64px minmax(0, 1fr) !important;
		gap: 8px !important;
		min-height: 80px !important;
		padding: 8px max(8px, env(safe-area-inset-right))
			max(8px, env(safe-area-inset-bottom))
			max(8px, env(safe-area-inset-left)) !important;
	}

	html body.single-product > .bn-mobile-buy .bn-mobile-favorite {
		grid-column: 1 !important;
		grid-row: 1 !important;
		width: 64px !important;
		min-width: 64px !important;
		min-height: 64px !important;
	}

	html body.single-product > .bn-mobile-buy .bn-mobile-buy-action {
		grid-column: 2 !important;
		grid-row: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
		min-height: 64px !important;
	}

	html body.single-product > .bn-mobile-buy .bn-mobile-buy-action span {
		width: 100% !important;
		min-height: 64px !important;
	}

	html body.single-product.bn-mobile-buy-ready {
		padding-bottom: 80px !important;
	}

	/*
	 * Stage65 consent interaction lock.
	 * The PDP sticky purchase bar must never cover or intercept the privacy
	 * controls. The runtime toggles this body class while the dialog is open.
	 */
	html body.bn-consent-open > .bn-mobile-buy {
		visibility: hidden !important;
		pointer-events: none !important;
	}

	html body > .bn-consent {
		z-index: 2147483646 !important;
	}

	/*
	 * Stage63 catalog empty-state density lock.
	 * The historical archive shell reserves almost a full viewport height even
	 * when WooCommerce has no products, leaving the recovery card detached from
	 * the newsletter. Collapse that reservation only for the explicit empty
	 * toolbar state; populated catalog/search grids keep their normal flow.
	 */
	html body:has(.bn-mobile-shop-toolbar.bn-empty-catalog) .woocommerce-area {
		min-height: 0 !important;
	}

	html body:has(.bn-mobile-shop-toolbar.bn-empty-catalog)
		.woocommerce-area > .section {
		padding-bottom: 20px !important;
	}
}


/* BeachNova live PDP product head alignment ? 2026-07-29 */
@media (max-width: 767.98px) {
  html body.single-product .bn-mobile-product-head {
    padding: 12px 16px 14px !important;
    row-gap: 8px !important;
    border-bottom: 1px solid #ededed !important;
  }
  html body.single-product .bn-mobile-title-row h1 {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 20px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
  }
  html body.single-product .bn-mobile-meta-row {
    min-height: 28px !important;
    align-items: center !important;
    gap: 12px !important;
  }
  html body.single-product .bn-mobile-meta-row .price,
  html body.single-product .bn-mobile-price {
    margin: 0 !important;
    font-size: 21px !important;
    line-height: 26px !important;
    font-weight: 700 !important;
  }
  html body.single-product .bn-mobile-review-row {
    margin-left: auto !important;
    min-height: 28px !important;
    align-items: center !important;
  }
  html body.single-product .bn-review-trigger {
    min-height: 28px !important;
    padding: 5px 0 !important;
    gap: 4px !important;
  }
}


/* BeachNova live PDP color-size separation ? 2026-07-29 */
@media (max-width: 767.98px) {
  html body.single-product .summary.entry-summary form.cart.bn-pdp-configurator tr.bn-color-attribute-row > td.value {
    height: 66px !important;
  }
}
