/* FSE-only safeguards while visual templates are being migrated. */
.wp-site-blocks { overflow: hidden; }
.site-header .wp-block-navigation { margin-inline: auto; }
.header-account-link { margin: 0; font-size: 14px; font-weight: 720; white-space: nowrap; }

/* Match the article opening to the standard page rhythm. */
.article-section { padding-top: 52px; }

.shop-category-tiles { margin: 0 0 56px; }
.shop-category-tiles__title { margin: 0 0 26px; font-size: clamp(32px, 4vw, 46px); }
.shop-category-tiles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 24px; }
.shop-category-tile { color: var(--text); text-decoration: none; }
.shop-category-tile.service-detail-box { min-height: 134px; }
.shop-category-tile strong { display: block; margin: 0; max-width: 440px; font-size: 18px; line-height: 1.25; }
.shop-category-tile small { display: block; margin: 0; color: var(--muted); font-size: 14px; font-weight: 600; }
.shop-category-tile:hover { border-color: rgba(255, 102, 0, 0.48); box-shadow: 0 16px 36px rgba(17, 19, 24, 0.08); transform: translateY(-2px); }

/* Flexible Shipping block, rendered from the ESTYMA template override. */
.woocommerce-section .woocommerce-notices-wrapper:has(.flexible-shipping-free-shipping-root) {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.flexible-shipping-free-shipping-root .woocommerce-info,
.woocommerce-section .woocommerce-info:has(.estyma-shipping-progress) {
	margin: 0 0 48px !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--text) !important;
}
.flexible-shipping-free-shipping-root .woocommerce-info::before,
.flexible-shipping-free-shipping-root .woocommerce-info::after,
.woocommerce-section .woocommerce-info:has(.estyma-shipping-progress)::before,
.woocommerce-section .woocommerce-info:has(.estyma-shipping-progress)::after { display: none !important; content: none !important; }
.estyma-shipping-progress {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 36px;
	padding: 24px 28px;
	border: 1px solid var(--line);
	border-left: 4px solid var(--accent);
	background: var(--white);
}
.estyma-shipping-progress__content { display: grid; gap: 13px; max-width: 650px; }
.estyma-shipping-progress__message { font-size: 18px; line-height: 1.4; }
.estyma-shipping-progress__message strong,
.estyma-shipping-progress__message .amount { color: var(--accent); font-weight: 800; }
.estyma-shipping-progress__values { display: flex; justify-content: space-between; color: var(--accent); font-size: 14px; font-weight: 800; }
.estyma-shipping-progress__track { height: 9px; overflow: hidden; border-radius: 999px; background: #eceef0; }
.estyma-shipping-progress__track > span { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width 180ms ease; }
.estyma-shipping-progress__button { min-width: 216px; margin: 0 !important; text-align: center; }

/* Login and registration are complete panels, including their headings. */
.woocommerce-account .woocommerce-section .u-columns > .u-column1,
.woocommerce-account .woocommerce-section .u-columns > .u-column2,
.woocommerce-account .woocommerce-section .u-columns > .col-1,
.woocommerce-account .woocommerce-section .u-columns > .col-2 {
	border: 1px solid var(--line);
	background: var(--white);
}

.woocommerce-account .woocommerce-section .u-columns form.login,
.woocommerce-account .woocommerce-section .u-columns form.register {
	min-height: 0;
	border: 0 !important;
}

/* Reset password uses the same centred form language without the account grid. */
.woocommerce-lost-password .woocommerce-section .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) {
	display: block !important;
}

.woocommerce-lost-password .woocommerce-section .woocommerce-ResetPassword {
	width: min(640px, 100%);
	max-width: none;
	margin: 0 auto;
	padding: 36px 40px;
}

.woocommerce-lost-password .woocommerce-section .woocommerce-ResetPassword h1 { font-size: 36px; }

/* On overview pages the first grid follows breadcrumbs directly. */
.estyma-overview-page > .wp-block-post-content > .section:first-child,
.estyma-overview-page > .entry-content > .section:first-child {
	padding-top: 40px;
}

/* Empty-cart recommendations need the same density as the shop grid. */
.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__product {
	width: auto !important;
	max-width: none;
	margin: 0 !important;
}

/* Addresses are individual action panels, not one oversized empty card. */
.woocommerce-account .woocommerce-section .woocommerce-MyAccount-content:has(.woocommerce-Addresses) {
	min-height: 0;
	overflow: visible;
	padding: 0;
	border: 0;
	background: transparent;
}

.woocommerce-account .woocommerce-section .woocommerce-MyAccount-content > p:first-child {
	margin: 0 0 24px;
	color: var(--muted);
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses .woocommerce-Address {
	float: none !important;
	width: auto !important;
	margin: 0;
	padding: 28px 32px;
	border: 1px solid var(--line);
	background: var(--white);
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin: 0 0 18px;
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses .woocommerce-Address-title h2 {
	margin: 0;
	padding: 0;
	font-size: 25px;
	line-height: 1.2;
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses .woocommerce-Address-title .edit {
	float: none;
	white-space: nowrap;
	color: var(--accent);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses .woocommerce-Address-title .edit::after {
	margin-left: 6px;
	content: "→";
}

.woocommerce-account .woocommerce-section .woocommerce-Addresses address {
	margin: 0;
	color: var(--muted);
	font-size: 16px;
	font-style: normal;
	line-height: 1.65;
}

@media (max-width: 760px) {
	.shop-category-tiles__grid { grid-template-columns: 1fr; }
	.estyma-shipping-progress { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
	.estyma-shipping-progress__button { width: 100%; }
	.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-account .woocommerce-section .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-section .woocommerce-MyAccount-content {
		width: auto !important;
	}

	.woocommerce-account .woocommerce-section .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 761px) and (max-width: 1080px) {
	.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* On phones the recommendations stack, so names, images and the call to action
   keep the full card width. */
@media (max-width: 640px) {
	.woocommerce-cart .wc-block-grid.has-4-columns .wc-block-grid__products {
		grid-template-columns: minmax(0, 1fr);
	}
}
