/*
 * Final visual contract for the storefront.
 * This file loads after every prototype and WooCommerce bridge stylesheet so
 * brand-critical components cannot fall back to plugin or block defaults.
 */

body {
	--text-on-accent: var(--color-white);
	--text-on-accent-alt: var(--color-white);
	--text-on-accent-secondary: var(--color-white);
	--card-radius: var(--radius-2);
	--font-icon: "Material Symbols Outlined";
	font-synthesis: none;
}

html {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

button,
input,
select,
textarea {
	font-synthesis: none;
}

/* Un solo radio para todas las superficies que funcionan como card. */
.flow-card,
.category-card,
.product-card,
.map-product-card,
.map-card,
.info-card,
.service-card,
.blog-card,
.useful-document-card,
.solution-space-card,
.solution-product-card,
.help-category,
.contact-method,
.addon-item,
.quote-steps > div,
.confirmation-card,
.order-card {
	border-radius: var(--card-radius);
}

/* Solution cards share the product-card surface and hover language. */
.solution-space-card {
	border: 1px solid var(--accent-3);
	box-shadow: var(--shadow-1);
}

.solution-space-card:focus-visible {
	outline: 3px solid var(--accent-alt);
	outline-offset: 3px;
}

body.home-page .map-card.map-card-image {
	border-radius: var(--card-radius);
}

.product-card > .product-media {
	overflow: hidden;
	border-radius: var(--card-radius) var(--card-radius) 0 0;
}

.product-card > .product-body:last-child {
	border-radius: 0 0 var(--card-radius) var(--card-radius);
}

body .btn.btn-primary:not(.btn-icon),
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link),
.wp-block-button__link,
.wp-element-button {
	border-color: var(--accent-alt) !important;
	background: var(--accent-alt) !important;
	color: var(--color-white) !important;
}

body .btn.btn-secondary:not(.btn-icon) {
	color: var(--color-white);
}

.shop-page .filters-panel {
	border-radius: var(--radius-2);
}

.shop-page .filters-panel .panel-header {
	min-height: 48px;
	padding-inline: var(--space-1);
	border-bottom: 1px solid var(--color-corporate-orange);
}

.category-listing-page .filters-panel .panel-header {
	min-height: 58px;
}

.shop-page .filters-panel .panel-header h2 {
	font-family: var(--font-heading);
	font-size: 19px;
	font-weight: var(--font-bold);
	line-height: 20.52px;
}

.shop-page .filters-panel .panel-header .catalog-clear-filters {
	display: inline-flex;
	min-height: 19px;
	align-items: center;
	justify-content: center;
	padding: 0 var(--space-2);
	color: var(--accent-alt);
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: var(--font-bold);
	line-height: 16.5px;
	text-decoration: none;
}

.shop-page .filters-panel .panel-header .catalog-clear-filters:hover,
.shop-page .filters-panel .panel-header .catalog-clear-filters:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.shop-page .shop-filter-group summary {
	min-height: 48px;
	padding: var(--space-3) var(--space-8) var(--space-3) var(--space-1);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: var(--font-medium);
	line-height: 19.5px;
}

.shop-page .shop-filter-group summary::after {
	right: 12px;
	width: 12px;
	height: 12px;
	font-size: 10px;
	line-height: 10px;
}

.shop-page .shop-filter-group .filter-options {
	gap: 0;
	padding: var(--space-2) var(--space-1) var(--space-3);
}

.shop-page .shop-filter-group .filter-options label {
	min-height: 29px;
	gap: var(--space-2);
	margin: 0;
	padding-top: var(--space-2);
	font-size: 14px;
	font-weight: var(--font-regular);
	line-height: 21px;
}

.shop-page .catalog-filter-form > .btn.btn-secondary:not(.btn-icon) {
	width: 100%;
	min-height: 43px;
	height: 43px;
	margin-top: var(--space-5);
	padding: var(--space-2) var(--space-5);
	border-width: 2px;
	border-radius: 6px;
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: var(--font-semibold);
	line-height: 17.5px;
	letter-spacing: 2px;
	white-space: nowrap;
	overflow-wrap: normal;
}

.shop-page .shop-filter-group summary .filter-selection-count {
	display: inline-grid;
	min-width: 24px;
	height: 24px;
	margin-left: auto;
	margin-right: var(--space-2);
	place-items: center;
	border-radius: var(--radius-pill);
	background: var(--accent-alt);
	color: var(--color-white);
	font-size: var(--text-xs);
	font-style: normal;
	font-weight: var(--font-bold);
	line-height: var(--leading-none);
}

.shop-page .shop-filter-group summary .filter-selection-count[hidden] {
	display: none;
}

.shop-page .product-area .catalog-active-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	margin: calc(-1 * var(--space-2)) 0 var(--space-6);
	padding: 0;
	border: 0;
	background: transparent;
}

.shop-page .catalog-active-filters > strong {
	margin-right: var(--space-1);
	color: var(--text-heading);
	font-size: var(--text-sm);
}

.shop-page .catalog-active-filters ul {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.shop-page .catalog-active-filters li {
	margin: 0;
}

.shop-page .catalog-active-filters li > a {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-pill);
	background: var(--color-white);
	color: var(--text-heading);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	text-decoration: none;
	box-shadow: none;
}

.shop-page .catalog-active-filters li > a:hover,
.shop-page .catalog-active-filters li > a:focus-visible {
	border-color: var(--accent-alt);
	background: var(--color-orange-50);
	color: var(--text-heading);
}

.shop-page .catalog-active-filters li > a .material-symbols-outlined {
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--accent-alt);
	font-size: var(--text-base);
	box-shadow: none;
}

.shop-page .catalog-active-filters .catalog-clear-all {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: var(--space-2);
	border: 0;
	background: transparent;
	color: var(--accent-alt);
	font-size: var(--text-sm);
	font-weight: var(--font-bold);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.shop-page .catalog-empty-state {
	margin-top: 0;
}

.shop-page .catalog-empty-state h3 {
	margin: 0;
	color: var(--text-heading);
	font-family: var(--font-heading);
	font-size: var(--text-xl);
}

/* Product information tabs: keep the complete visual tab as the link target. */
.gt-single-product .pdp-information .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	overflow-x: auto;
	list-style: none;
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs::before,
.gt-single-product .pdp-information .woocommerce-tabs ul.tabs::after,
.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li::before,
.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li::after {
	display: none;
	content: none;
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li {
	position: relative;
	z-index: 0;
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius-2) var(--radius-2) 0 0;
	background: var(--color-white);
	color: var(--accent-4);
	overflow: hidden;
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li > a {
	display: flex;
	width: 100%;
	min-height: 56px;
	align-items: center;
	justify-content: center;
	padding: var(--space-3);
	color: inherit;
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	line-height: var(--leading-heading);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li:hover {
	z-index: 1;
	border-color: var(--accent-alt);
	background: var(--color-orange-50);
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li.active {
	z-index: 2;
	border-color: var(--accent-alt);
	background: var(--accent-alt);
	color: var(--text-on-accent-alt);
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li.active:hover {
	background: var(--accent-alt);
}

.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li > a:focus-visible {
	position: relative;
	z-index: 3;
	outline: 3px solid var(--accent-4);
	outline-offset: -4px;
}

.gt-single-product .pdp-information .woocommerce-tabs .woocommerce-Tabs-panel {
	min-height: 180px;
	margin: 0;
	padding: var(--space-7);
	border: 1px solid var(--border);
	border-radius: 0 0 var(--radius-2) var(--radius-2);
	font-size: var(--text-sm);
}

.gt-single-product .pdp-information .woocommerce-tabs .woocommerce-Tabs-panel > :first-child {
	margin-top: 0;
}

.gt-single-product .pdp-information .woocommerce-tabs .woocommerce-Tabs-panel > :last-child {
	margin-bottom: 0;
}

.shop-page .mobile-filter-actions {
	display: none;
}

@media (max-width: 980px) {
	.gt-single-product .pdp-information .woocommerce-tabs ul.tabs {
		padding: var(--space-1);
	}

	.gt-single-product .pdp-information .woocommerce-tabs ul.tabs li {
		flex: 0 0 180px;
	}

	.shop-page .filters-panel {
		padding: var(--space-5) var(--space-5) var(--space-23);
	}

	.shop-page .filters-panel .panel-header,
	.category-listing-page .filters-panel .panel-header {
		top: calc(-1 * var(--space-5));
		min-height: 76px;
		margin: calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) var(--space-4);
		padding: var(--space-4) var(--space-5);
	}

	.shop-page .catalog-filter-form > .btn.btn-secondary:not(.btn-icon) {
		display: none;
	}

	.shop-page .mobile-filter-actions {
		display: block;
	}

}

@media (hover: hover) and (pointer: fine) {
	body .btn.btn-primary:not(.btn-icon):hover,
	.woocommerce a.button:hover,
	.woocommerce button.button:hover,
	.woocommerce input.button:hover,
	.woocommerce #respond input#submit:hover,
	.wc-block-components-button:not(.is-link):hover,
	.wp-block-button__link:hover,
	.wp-element-button:hover {
		border-color: var(--accent-alt-hover) !important;
		background: var(--accent-alt-hover) !important;
		color: var(--color-white) !important;
	}
}

body .btn:disabled,
body .btn.disabled,
body .btn[aria-disabled="true"],
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button.disabled,
.wc-block-components-button:disabled,
.wc-block-components-button[aria-disabled="true"] {
	border-color: var(--border-subtle) !important;
	background: var(--surface-subtle) !important;
	color: var(--text-muted) !important;
	cursor: not-allowed;
	opacity: .7;
}

/* Interactive house: the heading occupies the image's built-in white area. */
.solutions-showcase.solutions-showcase {
	position: relative;
	padding-top: 0;
}

.solutions-showcase .section-heading {
	position: absolute;
	top: var(--space-20);
	left: 50%;
	z-index: var(--z-control);
	width: min(100% - calc(var(--layout-gutter) * 2), var(--container));
	margin: 0;
	transform: translateX(-50%);
}

.solutions-house-figure {
	position: relative;
	width: min(100%, 1920px);
	margin: 0 auto;
}

.solutions-house-figure > img {
	display: block;
	width: 100%;
	height: auto;
	max-height: none;
	margin: 0;
	object-fit: contain;
}

.solutions-house-label {
	position: absolute;
	z-index: var(--z-content);
	color: #303d46;
	font-family: var(--font-handwritten);
	font-size: clamp(.5rem, 1.72vw, 2.0625rem);
	font-weight: var(--font-regular);
	line-height: 1;
	text-align: center;
	white-space: nowrap;
	transform: translate(-50%, -50%);
}

.solutions-house-label--pool-railings { top: 60.15%; left: 4.44%; }
.solutions-house-label--glass-curtain { top: 60.15%; left: 14.7%; }
.solutions-house-label--glass-table { top: 52.15%; left: 20.2%; }
.solutions-house-label--skylights { top: 45.08%; left: 27.2%; }
.solutions-house-label--windows { top: 39.08%; left: 27.08%; }
.solutions-house-label--mirrors { top: 33.08%; left: 39.01%; }
.solutions-house-label--showerdoor { top: 38.08%; left: 46.05%; }
.solutions-house-label--curtain-wall { top: 29.08%; left: 53.4%; }
.solutions-house-label--automation { top: 38.08%; left: 66.58%; }
.solutions-house-label--thermopanes { top: 43.58%; left: 77.5%; }
.solutions-house-label--railings { top: 51.58%; left: 89.56%; }
.solutions-house-label--tempered-doors { top: 65.15%; left: 92.07%; }

/* WordPress menus wrap the footer links in a list; the prototype uses anchors. */
.footer-reference-column .footer-link-list,
.footer-reference-column .menu {
	display: grid;
	gap: var(--footer-link-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-reference-social img {
	display: block;
	width: 32px;
	height: 32px;
	font-size: 32px;
	line-height: 1;
	object-fit: contain;
}

.footer-reference-contact,
.footer-reference-contact a,
.footer-reference-contact .material-symbols-outlined {
	color: var(--color-corporate-blue);
}

@media (max-width: 640px) {
	.gt-single-product .pdp-information .woocommerce-tabs .woocommerce-Tabs-panel {
		padding: var(--space-5);
	}

	.solutions-showcase .section-heading {
		position: relative;
		top: auto;
		left: auto;
		width: min(100% - calc(var(--layout-gutter) * 2), var(--container));
		margin: 0 auto;
		padding-top: var(--space-6);
		transform: none;
	}

	.solutions-house-figure {
		margin-top: calc(var(--space-6) * -1);
	}

	.solutions-house-label {
		font-size: clamp(.5rem, 2.25vw, .875rem);
	}
}
/* Breadcrumb shared by editorial, Blog and WooCommerce templates. */
body .section-breadcrumb.section-breadcrumb {
  padding: var(--space-5) 0 var(--space-2);
  border: 0;
  background: var(--color-white);
  box-shadow: none;
}

body .section-breadcrumb.section-breadcrumb > .container {
  width: min(calc(100% - 32px), 1180px);
}

/* Keep service media inside its grid column at desktop widths. */
body.service-product-page .service-pdp .pdp-gallery-main {
  min-height: 0;
}

.service-pdp-information {
  display: grid;
  gap: var(--space-3);
  padding-block: var(--space-8) var(--space-12);
  border-top: 1px solid var(--border);
}

.service-pdp-information h2 {
  margin: 0;
  color: var(--accent-4);
  font-family: var(--font-heading);
  font-size: var(--text-3xl);
  line-height: var(--leading-heading);
}

.service-pdp-information p {
  max-width: 72ch;
  margin: 0;
  color: var(--text-primary);
  font-size: var(--text-base);
  line-height: var(--leading-body);
}

body .breadcrumb.breadcrumb,
body .woocommerce-breadcrumb.woocommerce-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
  color: var(--color-bluegray-600);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: var(--font-medium);
  line-height: 19.5px;
}

body .breadcrumb a,
body .woocommerce-breadcrumb a {
  color: var(--accent-alt);
  font-weight: var(--font-medium);
  text-decoration: none;
  transition: color var(--duration-normal) ease;
}

body .breadcrumb a:hover,
body .woocommerce-breadcrumb a:hover {
  color: var(--accent-alt);
  text-decoration: underline;
  text-underline-offset: 3px;
}

body .breadcrumb [aria-current="page"],
body .woocommerce-breadcrumb [aria-current="page"] {
  color: var(--color-bluegray-700);
  font-weight: var(--font-medium);
}

body .breadcrumb-separator {
  color: var(--color-bluegray-500);
  font-size: 13px;
  font-weight: var(--font-medium);
  line-height: 19.5px;
}

@media (max-width: 640px) {
  body .section-breadcrumb.section-breadcrumb { padding: var(--space-4) 0 var(--space-2); }
  body .section-breadcrumb.section-breadcrumb > .container { width: min(calc(100% - 24px), 1180px); }
  body .breadcrumb.breadcrumb,
  body .woocommerce-breadcrumb.woocommerce-breadcrumb { gap: var(--space-1); font-size: 12px; line-height: 18px; }
  body .breadcrumb-separator { font-size: 12px; line-height: 18px; }
}

/* Every primary-navigation control remains legible over the dark sticky header. */
.has-transparent-header .site-header.is-scrolled .header-main .category-nav-inner > a,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown > summary {
  color: var(--color-white);
}

.has-transparent-header .site-header.is-scrolled .header-main .category-nav-inner > a:hover,
.has-transparent-header .site-header.is-scrolled .header-main .category-nav-inner > a:focus-visible,
.has-transparent-header .site-header.is-scrolled .header-main .category-nav-inner > a.is-active,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown > summary:hover,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown > summary:focus-visible,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown[open] > summary,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown.is-active > summary,
.has-transparent-header .site-header.is-scrolled .header-main .nav-dropdown > summary.is-active {
  color: var(--accent-alt);
}

/* WooCommerce account endpoints keep their native URLs inside the prototype layout. */
body.logged-in.account-page .woocommerce-shell {
  padding-block: var(--space-14);
  background: var(--background-alt);
  box-shadow: 0 0 0 100vmax var(--background-alt);
  clip-path: inset(0 -100vmax);
}

body.logged-in.woocommerce-account .woocommerce-shell > .woocommerce {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu {
  position: sticky;
  top: 128px;
  overflow: hidden;
  border: 1px solid var(--accent-3);
  border-radius: var(--card-radius);
  background: var(--color-white);
  box-shadow: var(--shadow-1);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav {
  display: grid;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav a {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 48px;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--accent-3);
  color: var(--accent-4);
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav a:last-child { border-bottom: 0; }
body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav a:hover,
body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav a:focus-visible,
body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav a.is-active {
  background: rgba(var(--color-orange-500-rgb), .1);
  color: var(--accent-alt);
  box-shadow: none;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
  display: grid;
  gap: var(--space-5);
  min-width: 0;
}

body.logged-in.woocommerce-account .account-welcome,
body.logged-in.woocommerce-account .account-summary-grid > div {
  border-radius: var(--card-radius);
}

body.woocommerce-order-received .woocommerce-shell {
  padding-block: var(--space-14);
  background: var(--background-alt);
  box-shadow: 0 0 0 100vmax var(--background-alt);
  clip-path: inset(0 -100vmax);
}

body.woocommerce-order-received .woocommerce-order {
  padding: clamp(var(--space-6), 4vw, var(--space-9));
  border: 1px solid var(--accent-3);
  border-radius: var(--card-radius);
  background: var(--color-white);
  box-shadow: var(--shadow-1);
}

@media (max-width: 980px) {
  body.logged-in.woocommerce-account .woocommerce-shell > .woocommerce { grid-template-columns: 1fr; }
  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu { position: static; }
  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation.account-menu nav { grid-template-columns: 1fr; }
  .woocommerce-orders-table thead { display: none; }
  .woocommerce-orders-table,
  .woocommerce-orders-table tbody,
  .woocommerce-orders-table tr,
  .woocommerce-orders-table td { display: block; width: 100%; }
  .woocommerce-orders-table tr { margin-bottom: var(--space-4); padding: var(--space-4); border: 1px solid var(--accent-3); border-radius: var(--card-radius); background: var(--color-white); }
  .woocommerce-orders-table td { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-3); padding: var(--space-2) 0; border: 0; text-align: right; overflow-wrap: anywhere; }
  .woocommerce-orders-table td::before { content: attr(data-title); color: var(--accent-4); font-weight: var(--font-bold); text-align: left; }
  .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions { display: flex; justify-content: flex-end; }
  .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before { margin-right: auto; }
}

/* Header variants from the Figma DS: shared frame, route-specific actions. */
.site-header,
.has-transparent-header .site-header,
.has-transparent-header .site-header.is-scrolled {
  border-bottom: 0;
  box-shadow: inset 0 -1px 0 rgba(var(--color-navy-900-rgb), 0.1), var(--elevation-subtle);
}

.has-transparent-header .site-header.is-scrolled {
  box-shadow: inset 0 -1px 0 rgba(var(--color-white-rgb), 0.16), 0 8px 24px rgba(var(--color-navy-900-rgb), 0.2);
}

@media (min-width: 981px) {
  .main-actions,
  .has-transparent-header .main-actions,
  .has-transparent-header .site-header.is-scrolled .main-actions {
    gap: var(--space-4);
  }

  .home-page .site-header:not(.is-scrolled) .main-actions {
    gap: var(--space-6);
  }

  .home-page.has-transparent-header .site-header.is-scrolled .main-actions {
    gap: var(--space-4);
  }

  .home-page.has-transparent-header .site-header.is-scrolled .main-actions .icon-link,
  .home-page.has-transparent-header .site-header.is-scrolled .corporate-link {
    width: 38px;
    height: 38px;
    min-height: 38px;
    flex-basis: 38px;
    border-width: 1px;
  }

  .home-page .top-strip {
    height: 38px;
    overflow: hidden;
    border: 0;
    box-shadow: none;
    color: var(--color-white);
  }

  .home-page .top-strip .top-strip-inner {
    height: 38px;
    min-height: 38px;
    gap: var(--space-11);
    padding-block: var(--space-1);
    font-size: var(--header-promo-size);
    line-height: var(--leading-none);
    letter-spacing: var(--tracking-wider);
  }

  .home-page .top-strip .top-strip-inner a {
    min-height: 24px;
    padding: var(--space-1) var(--space-4);
    border-radius: 12px;
    border-color: var(--color-white);
    color: var(--color-white);
    font-size: 11px;
    line-height: 11px;
    letter-spacing: 1.1px;
  }

  .home-page .top-strip .top-strip-inner,
  .home-page .top-strip .top-strip-inner strong,
  .home-page .top-strip .top-strip-inner strong span,
  .home-page .top-strip .top-strip-inner a span {
    color: var(--color-white);
  }

  .home-page .top-strip .top-strip-inner a:hover,
  .home-page .top-strip .top-strip-inner a:hover span {
    color: var(--color-corporate-blue-dark);
  }
}

/* Service cards: visual icon, commercial benefit and explicit CTA. */
body.services-page .services-section .services-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: stretch;
}

body.services-page .services-section .service-card {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: var(--space-4);
  align-content: start;
  align-items: start;
  min-height: 310px;
  padding: var(--space-7);
  border: 1px solid var(--accent-3);
  border-radius: var(--card-radius);
  background: var(--color-white);
  color: var(--text-primary);
  text-align: left;
  text-decoration: none;
  box-shadow: var(--shadow-1);
}

body.services-page .services-section .service-card-support {
  background: var(--color-white);
}

body.services-page .service-card .service-card-icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: var(--radius-round);
  background: rgba(var(--color-orange-500-rgb), 0.1);
}

body.services-page .service-card .service-card-icon-image {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

body.services-page .service-card h3 {
  margin: 0;
  color: var(--accent-4);
  font-family: var(--font-body);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  line-height: var(--leading-tight);
  text-transform: none;
}

body.services-page .service-card p {
  margin: 0;
  color: var(--color-bluegray-600);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

body.services-page .service-card .service-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 44px;
  margin-top: var(--space-2);
  padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-2);
  background: var(--accent-alt);
  color: var(--color-white);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-none);
  text-transform: uppercase;
  transition: background var(--duration-normal) ease, transform var(--duration-normal) ease;
}

body.services-page .service-card:hover .service-card-cta,
body.services-page .service-card:focus-visible .service-card-cta {
  background: var(--color-corporate-orange-dark, #d86800);
  transform: translateX(2px);
}

body.services-page .service-card:focus-visible {
  outline: 3px solid var(--accent-4);
  outline-offset: 4px;
}

@media (max-width: 900px) {
  body.services-page .services-section .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.services-page .services-section .services-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.services-page .services-section .service-card {
    min-height: 0;
    padding: var(--space-6);
  }

  body.services-page .service-card .service-card-icon {
    width: 56px;
    height: 56px;
  }

  body.services-page .service-card .service-card-icon-image {
    width: 38px;
    height: 38px;
  }
}

/* PDP discovery: real catalog categories and the shared WooCommerce card. */
.product-page .related-solutions .related-products-title {
	max-width: 980px;
	margin: 0 auto var(--space-10);
	text-align: center;
}

.product-page .related-solutions .related-tabs {
	justify-content: center;
	margin-bottom: var(--space-10);
}

.product-page .related-solutions .related-products-grid {
	width: min(100%, 1280px);
	margin-inline: auto;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-6);
	align-items: stretch;
}

@media (min-width: 1101px) {
	.product-page .related-solutions .related-products-grid:has(> :first-child:last-child) {
		width: min(100%, 302px);
		grid-template-columns: minmax(0, 1fr);
	}

	.product-page .related-solutions .related-products-grid:has(> :first-child:nth-last-child(2)) {
		width: min(100%, 628px);
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.product-page .related-solutions .related-products-grid:has(> :first-child:nth-last-child(3)) {
		width: min(100%, 954px);
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.product-page .related-products-grid .product-card {
	display: grid;
	height: 100%;
	grid-template-rows: auto 1fr;
	align-content: stretch;
}

.product-page .related-products-grid .product-card .product-media {
	display: block;
	min-height: 0;
	aspect-ratio: 4 / 3;
}

.product-page .related-products-grid .product-card .product-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-page .related-products-grid .product-card .product-body {
	display: grid;
	height: 100%;
	grid-template-rows: auto auto minmax(0, 1fr) auto auto;
	align-content: stretch;
	gap: var(--space-2);
	padding: var(--space-4) var(--space-5) var(--space-5);
}

.product-page .related-products-grid .product-card h3 {
	display: -webkit-box;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	font-size: var(--text-lg);
	line-height: var(--leading-heading);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.product-page .related-products-grid .product-card p {
	display: -webkit-box;
	min-height: 0;
	max-width: none;
	margin: 0;
	overflow: hidden;
	font-size: var(--text-sm);
	line-height: var(--leading-body);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.product-page .related-products-grid .product-card .btn {
	justify-self: stretch;
	width: 100%;
	min-width: 0;
}

@media (max-width: 1100px) {
	.product-page .related-solutions .related-products-grid {
		width: min(100%, 640px);
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-flow: row;
		grid-auto-columns: auto;
		padding-bottom: 0;
		overflow-x: visible;
	}

	.product-page .related-solutions .related-products-grid > :only-child {
		width: min(100%, 308px);
		grid-column: 1 / -1;
		justify-self: center;
	}
}

@media (max-width: 640px) {
	.product-page .related-solutions .related-products-grid {
		width: min(100%, 360px);
		grid-template-columns: minmax(0, 1fr);
	}

	.product-page .related-solutions .related-products-grid > :only-child {
		width: 100%;
		grid-column: auto;
	}
}

/* Carrito: correspondencia con la composición aprobada en el prototipo. */
body.cart-page .page-hero.image-hero {
	min-height: 240px;
	padding: var(--space-10) 0 var(--space-8);
}

body.cart-page .page-hero.image-hero .section-hero-content {
	gap: var(--heading-subtitle-gap);
}

body.cart-page .page-hero.image-hero .section-hero-content h1 {
	font-size: clamp(var(--text-4xl), 3vw, var(--text-5xl));
}

body.cart-page .page-hero.image-hero .section-hero-content p:not(.eyebrow) {
	max-width: 560px;
	font-size: var(--text-base);
	line-height: var(--leading-body);
}

body.cart-page .section-breadcrumb.section-breadcrumb {
	padding: var(--space-3) 0 0;
}

body.cart-page .woocommerce-shell {
	padding-block: var(--space-4) var(--space-18);
}

.cart-page .gt-cart-coupon-tools {
	margin-bottom: var(--space-8);
}

.cart-page .gt-cart-coupon-tools .woo-notice {
	margin: 0 0 var(--space-4);
}

.cart-page .gt-cart-coupon-tools .coupon-row {
	margin: 0;
}

.cart-page .gt-cart-coupon-tools .coupon-row input {
	min-height: var(--space-13);
	border-color: var(--accent-3);
	border-radius: var(--radius-sm);
	background: var(--color-white);
}

.cart-page .gt-cart-coupon-tools .coupon-row .btn {
	min-width: var(--space-37);
	min-height: var(--space-13);
	border-color: var(--accent);
	background: var(--accent);
	color: var(--text-on-accent);
}

.cart-page .gt-cart-coupon-tools .coupon-row .btn:hover {
	border-color: var(--accent-4);
	background: var(--accent-4);
	color: var(--text-on-dark);
}

.cart-page .wp-block-woocommerce-cart {
	margin: 0;
}

.cart-page .wc-block-components-sidebar-layout.wc-block-cart {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(calc(var(--space-64) + var(--space-16)), .9fr);
	gap: var(--space-6);
	align-items: start;
}

.cart-page .wc-block-cart__main,
.cart-page .wc-block-cart__sidebar {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cart-page table.wc-block-cart-items,
.cart-page table.wc-block-cart-items tbody {
	display: block;
	width: 100%;
}

/* The final cart card already closes the list visually. */
.cart-page table.wc-block-cart-items {
	border-bottom: 0;
}

.cart-page table.wc-block-cart-items thead {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.cart-page table.wc-block-cart-items tbody {
	display: grid;
	gap: 0;
}

.cart-page table.wc-block-cart-items .wc-block-cart-items__row {
	position: relative;
	display: grid;
	grid-template-columns: var(--space-24) minmax(0, 1fr) auto;
	gap: var(--space-4);
	align-items: center;
	min-height: var(--space-39);
	padding: var(--space-4);
	border: 1px solid var(--accent-3);
	border-radius: var(--radius-md);
	background: var(--color-white);
	box-shadow: var(--shadow-1);
	margin-bottom: var(--space-4);
}

/* Shipping choices sit below the section heading in the form hierarchy. */
.cart-page .wc-block-components-shipping-rates-control__package,
.checkout-page .wc-block-components-shipping-rates-control__package {
	--shipping-option-label-size: var(--text-base);
	--shipping-option-detail-size: var(--text-sm);
	--shipping-option-price-size: var(--text-sm);
}

:is(.cart-page, .checkout-page) .wc-block-components-shipping-rates-control__package :is(
	.wc-block-components-radio-control__label,
	.wc-block-components-shipping-rates-control__package-title
) {
	color: var(--text-heading);
	font-size: var(--shipping-option-label-size);
	font-weight: var(--font-semibold);
	line-height: var(--leading-snug);
}

:is(.cart-page, .checkout-page) .wc-block-components-shipping-rates-control__package :is(
	.wc-block-components-radio-control__description,
	.wc-block-components-radio-control__secondary-description,
	.wc-block-components-shipping-rates-control__package-items
) {
	color: var(--text-secondary);
	font-size: var(--shipping-option-detail-size);
	line-height: var(--leading-body);
}

:is(.cart-page, .checkout-page) .wc-block-components-shipping-rates-control__package :is(
	.wc-block-components-radio-control__secondary-label,
	.wc-block-components-shipping-rates-control__package__description--free
) {
	color: var(--text-heading);
	font-size: var(--shipping-option-price-size);
	font-weight: var(--font-bold);
	line-height: var(--leading-snug);
}

/* Linked services remain separate cart lines, but read as one purchase group. */
.cart-page table.wc-block-cart-items .gt-cart-group-parent {
	margin-bottom: 0;
	border-bottom-right-radius: 0;
	border-bottom-left-radius: 0;
	box-shadow: none;
}

.cart-page table.wc-block-cart-items .gt-cart-group-child {
	grid-template-columns: var(--space-20) minmax(0, 1fr) auto;
	min-height: var(--space-31);
	margin-bottom: 0;
	padding-left: var(--space-6);
	border-top: 0;
	border-left: 3px solid var(--accent-alt);
	border-radius: 0;
	background: var(--background-alt);
	box-shadow: none;
}

.cart-page table.wc-block-cart-items .gt-cart-group-child .wc-block-cart-item__image img {
	width: var(--space-20);
	height: var(--space-18);
}

.cart-page table.wc-block-cart-items .gt-cart-group-last {
	margin-bottom: var(--space-4);
	border-bottom-right-radius: var(--radius-md);
	border-bottom-left-radius: var(--radius-md);
	box-shadow: var(--shadow-1);
}

.cart-page table.wc-block-cart-items .wc-block-cart-items__row td {
	display: block;
	padding: 0 !important;
	border: 0 !important;
}

.cart-page table.wc-block-cart-items .wc-block-cart-item__image {
	grid-column: 1;
}

.cart-page table.wc-block-cart-items .wc-block-cart-item__image img {
	display: block;
	width: var(--space-24);
	height: var(--space-19);
	border-radius: var(--radius-sm);
	object-fit: cover;
}

.cart-page table.wc-block-cart-items .wc-block-cart-item__product {
	display: grid;
	grid-column: 2;
	gap: var(--space-1);
	align-content: center;
	min-width: 0;
}

.cart-page table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product .wc-block-components-product-name {
	margin: 0;
	color: var(--accent-4);
	font-size: var(--text-xl);
	font-weight: var(--font-bold);
	line-height: 1.3;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.cart-page table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product .wc-block-components-product-name:hover {
	color: var(--accent-alt);
}

.cart-page .wc-block-cart-item__product .wc-block-components-product-price {
	display: none;
}

.cart-page .wc-block-cart-item__product .wc-block-components-product-metadata,
.cart-page .wc-block-cart-item__product .wc-block-components-product-details {
	margin: 0;
	color: var(--text-secondary);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.cart-page .wc-block-cart-item__product .wc-block-components-quantity-selector {
	width: var(--space-27);
	height: var(--space-10);
	margin: var(--space-2) 0 0;
	border-color: var(--accent-3);
	border-radius: var(--radius-sm);
}

.cart-page .wc-block-cart-item__product .wc-block-components-quantity-selector input {
	font-weight: var(--font-semibold);
}

.cart-page .wc-block-cart-item__product .wc-block-cart-item__remove-link {
	position: absolute;
	right: var(--space-4);
	bottom: var(--space-4);
	width: var(--space-10);
	height: var(--space-10);
	margin: 0;
	border: 1px solid var(--accent-3);
	border-radius: var(--radius-sm);
	background-color: var(--color-white);
	color: var(--color-danger-700);
	transition: border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;
}

.cart-page .wc-block-cart-item__product .wc-block-cart-item__remove-link:hover {
	border-color: rgba(var(--color-danger-500-rgb), .28);
	background-color: rgba(var(--color-danger-500-rgb), .08);
}

.cart-page table.wc-block-cart-items .wc-block-cart-item__total {
	grid-column: 3;
	align-self: center;
	padding-bottom: var(--space-10) !important;
	color: var(--accent-4);
	font-size: var(--text-lg);
	font-weight: var(--font-bold);
	font-variant-numeric: tabular-nums;
}

.cart-page .wc-block-cart__sidebar {
	position: sticky;
	top: var(--space-28);
	padding: var(--space-6) !important;
	border: 1px solid var(--accent-3);
	border-radius: var(--radius-md);
	background: var(--color-white);
	box-shadow: var(--shadow-1);
}

.cart-page .wc-block-cart__sidebar > h2,
.cart-page .wc-block-cart__sidebar .wc-block-cart__totals-title {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-panel__button {
	display: flex;
	align-items: center;
	min-height: var(--space-11);
	margin: 0;
	padding: 0 var(--space-7) 0 0;
	color: var(--accent-4);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-panel__button-icon {
	color: var(--accent-alt);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-panel__button[hidden] {
	display: none !important;
}

.cart-page .wc-block-cart__sidebar .gt-coupon-heading {
	margin: 0 0 var(--space-2);
	color: var(--accent-4);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-2);
	align-items: end;
}

.cart-page .wc-block-components-text-input {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-2);
}

.cart-page .wc-block-components-text-input > label,
.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__input > label {
	position: static !important;
	grid-row: 1;
	margin: 0;
	padding: 0 !important;
	transform: none !important;
	transition: none;
	color: var(--text-heading);
	font-size: var(--text-sm) !important;
	line-height: var(--leading-body);
	pointer-events: auto;
}

.cart-page .wc-block-components-text-input > input {
	grid-row: 2;
	padding: var(--space-3) var(--space-4) !important;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input {
	min-width: 0;
	height: var(--coupon-control-height) !important;
	min-height: var(--coupon-control-height);
	padding-block: 0 !important;
	padding-inline: var(--coupon-input-padding-inline) !important;
	border: 1px solid var(--coupon-input-border-color) !important;
	border-radius: var(--coupon-input-radius) !important;
	background: var(--coupon-input-background) !important;
	color: var(--coupon-input-color) !important;
	outline: 0;
	box-shadow: none !important;
	transition: border-color var(--coupon-input-transition-duration) var(--ease-standard),
		box-shadow var(--coupon-input-transition-duration) var(--ease-standard),
		background-color var(--coupon-input-transition-duration) var(--ease-standard);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input::placeholder {
	color: var(--coupon-input-placeholder-color);
	opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
	.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input:not(:disabled):not([aria-invalid="true"]):hover {
		border-color: var(--coupon-input-border-color-hover) !important;
	}
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input:not(:disabled):focus,
.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input:not(:disabled):focus-visible {
	border-color: var(--coupon-input-border-color-focus) !important;
	outline: 0 !important;
	box-shadow: var(--coupon-input-focus-ring) !important;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input[aria-invalid="true"] {
	border-color: var(--coupon-input-border-color-error) !important;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input[aria-invalid="true"]:focus,
.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input[aria-invalid="true"]:focus-visible {
	box-shadow: var(--coupon-input-error-ring) !important;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon input:disabled {
	border-color: var(--coupon-input-border-color) !important;
	background: var(--coupon-input-disabled-background) !important;
	color: var(--coupon-input-disabled-color) !important;
	cursor: not-allowed;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button {
	height: var(--coupon-control-height);
	min-height: var(--coupon-control-height);
	border: 1px solid var(--coupon-button-background) !important;
	border-radius: var(--coupon-button-radius);
	background: var(--coupon-button-background) !important;
	color: var(--coupon-button-color) !important;
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	transition: background-color var(--duration-fast) var(--ease-standard),
		border-color var(--duration-fast) var(--ease-standard),
		box-shadow var(--duration-fast) var(--ease-standard),
		transform var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) and (pointer: fine) {
	.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button:not(:disabled):hover {
		border-color: var(--coupon-button-background-hover) !important;
		background: var(--coupon-button-background-hover) !important;
	}
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button:not(:disabled):focus-visible {
	outline: 0;
	box-shadow: var(--coupon-button-focus-ring) !important;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button:not(:disabled):active {
	transform: scale(.97);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button:disabled {
	border-color: var(--coupon-button-disabled-background) !important;
	background: var(--coupon-button-disabled-background) !important;
	color: var(--coupon-button-disabled-color) !important;
	cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
	.cart-page .wc-block-cart__sidebar .wc-block-components-totals-coupon__button:not(:disabled):active {
		transform: none;
	}
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
	padding: var(--space-4) 0;
}

.cart-page .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	border-bottom: 0;
}

.cart-page .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-totals-block {
	border-top: 0;
}

.cart-page .wc-block-cart__sidebar .gt-cart-total-summary {
	padding: 0 0 var(--space-4);
	border-top: 0;
}

.cart-page .wc-block-cart__sidebar .gt-cart-coupon-summary {
	padding: 0;
	border: 0;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-footer-item {
	font-size: var(--text-xl);
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--accent-4);
	font-size: var(--text-2xl);
	font-weight: var(--font-bold);
	font-variant-numeric: tabular-nums;
}

.cart-page .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__description {
	margin-top: var(--space-1);
	color: var(--text-secondary);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.cart-page .wc-block-cart__submit {
	margin: var(--space-4) 0 0;
}

.cart-page .wc-block-cart__submit-container {
	display: grid;
	gap: var(--space-3);
}

.cart-page .wc-block-cart__submit-button,
.cart-page .gt-cart-continue,
.cart-page .wp-block-woocommerce-product-collection .added_to_cart {
	display: grid;
	place-items: center;
	border: 1px solid transparent;
	border-radius: var(--radius-md);
	font-size: var(--text-sm);
	font-weight: var(--font-bold);
	letter-spacing: .04em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.cart-page .wc-block-cart__submit-button {
	width: 100%;
	min-height: var(--space-13);
	border-color: var(--accent-alt);
	background: var(--accent-alt);
	color: var(--text-on-accent-alt);
}

.cart-page .wc-block-cart__submit-button:hover {
	border-color: var(--accent-alt-hover);
	background: var(--accent-alt-hover);
	color: var(--text-on-accent-alt);
}

.cart-page .gt-cart-continue,
.cart-page .wp-block-woocommerce-product-collection .added_to_cart {
	width: max-content;
	min-height: var(--space-10);
	justify-self: center;
	padding-inline: var(--space-2);
	border: 0;
	background: transparent;
	color: var(--accent-4);
	font-size: var(--text-xs);
	letter-spacing: .02em;
}

.cart-page .gt-cart-continue:hover,
.cart-page .wp-block-woocommerce-product-collection .added_to_cart:hover {
	background: transparent;
	color: var(--accent-alt);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cart-page .gt-cart-continue:focus-visible,
.cart-page .wp-block-woocommerce-product-collection .added_to_cart:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 2px;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection {
	margin-top: var(--space-8);
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection > h2 {
	display: grid;
	grid-template-columns: minmax(var(--space-6), 1fr) auto minmax(var(--space-6), 1fr);
	gap: var(--space-4);
	align-items: center;
	margin: 0 0 var(--space-5) !important;
	color: var(--accent-4);
	font-size: var(--text-xl);
	line-height: var(--leading-title);
	text-align: center;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection > h2::before,
.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection > h2::after {
	content: "";
	height: 1px;
	background: var(--accent-3);
}

/* Cart recommendations use the same surface and action contract as catalog cards. */
.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wc-block-product, .wc-block-grid__product) {
	overflow: hidden;
	padding: 0 0 var(--space-5);
	border: 1px solid var(--accent-3);
	border-radius: var(--card-radius);
	background: var(--color-white);
	box-shadow: var(--shadow-1);
	text-align: left;
	transition: border-color var(--duration-normal) var(--ease-standard),
		box-shadow var(--duration-normal) var(--ease-standard),
		transform var(--duration-normal) var(--ease-standard);
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wc-block-product, .wc-block-grid__product):focus-within {
	border-color: var(--accent-alt);
	box-shadow: var(--shadow-2), var(--focus-ring-navy);
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wp-block-woocommerce-product-image, .wc-block-components-product-image, .wc-block-grid__product-image) {
	overflow: hidden;
	margin: 0 0 var(--space-4);
	border-radius: var(--card-radius) var(--card-radius) 0 0;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wp-block-woocommerce-product-image, .wc-block-components-product-image, .wc-block-grid__product-image) img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(
	.wp-block-post-title,
	.wc-block-grid__product-title,
	.wp-block-woocommerce-product-price,
	.wc-block-components-product-price,
	.wc-block-grid__product-price,
	.wp-block-woocommerce-product-button,
	.wc-block-components-product-button,
	.wc-block-grid__product-add-to-cart
) {
	margin-right: var(--space-5);
	margin-left: var(--space-5);
	text-align: left;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .wc-block-grid__product-add-to-cart) {
	margin-top: var(--space-4);
	margin-bottom: 0;
}

.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .wc-block-grid__product-add-to-cart) :is(.wp-block-button__link, .wp-element-button, .wc-block-components-product-button__button) {
	width: fit-content;
	min-height: var(--button-m-height);
	padding: 0 var(--button-m-padding-inline);
	border-radius: var(--button-m-radius) !important;
	font-size: var(--button-m-font-size);
	font-weight: var(--font-semibold);
	line-height: var(--button-m-line-height);
	letter-spacing: var(--tracking-normal);
	text-transform: none;
}

@media (hover: hover) and (pointer: fine) {
	.cart-page .wc-block-cart__main > .wp-block-woocommerce-product-collection :is(.wc-block-product, .wc-block-grid__product):hover {
		border-color: var(--accent-alt);
		box-shadow: var(--shadow-2);
		transform: translateY(calc(-1 * var(--space-1)));
	}
}

@media (max-width: 900px) {
	.cart-page .wc-block-components-sidebar-layout.wc-block-cart {
		grid-template-columns: minmax(0, 1fr);
	}

	.cart-page .wc-block-cart__sidebar {
		position: static;
	}
}

@media (max-width: 640px) {
	body.cart-page .page-hero.image-hero {
		min-height: 190px;
		padding: var(--space-7) 0 var(--space-6);
	}

	body.cart-page .page-hero.image-hero .section-hero-content h1 {
		font-size: var(--text-4xl);
	}

	body.cart-page .section-breadcrumb.section-breadcrumb {
		padding-top: var(--space-3);
	}

	body.cart-page .woocommerce-shell {
		padding-block: var(--space-3) var(--space-12);
	}

	.cart-page .gt-cart-coupon-tools {
		margin-bottom: var(--space-6);
	}

	.cart-page .gt-cart-coupon-tools .coupon-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.cart-page .gt-cart-coupon-tools .coupon-row .btn {
		width: 100%;
	}

	.cart-page table.wc-block-cart-items .wc-block-cart-items__row {
		grid-template-columns: var(--space-20) minmax(0, 1fr);
		grid-template-rows: auto auto;
		gap: var(--space-3);
		align-items: start;
		min-height: 0;
	}

	.cart-page table.wc-block-cart-items .gt-cart-group-child {
		grid-template-columns: var(--space-20) minmax(0, 1fr);
	}

	.cart-page table.wc-block-cart-items .wc-block-cart-item__product {
		grid-column: 2 !important;
		grid-row: 1 !important;
	}

	.cart-page table.wc-block-cart-items .wc-block-cart-item__image img {
		width: var(--space-20);
		height: var(--space-18);
	}

	.cart-page table.wc-block-cart-items .wc-block-cart-item__total {
		grid-column: 2 !important;
		grid-row: 2 !important;
		padding: var(--space-2) var(--space-13) 0 0 !important;
		text-align: left !important;
	}

	.cart-page .wc-block-cart-item__total-price-and-sale-badge-wrapper {
		align-items: flex-start;
	}

	.cart-page .wc-block-cart-item__product .wc-block-cart-item__remove-link {
		right: var(--space-4);
		bottom: var(--space-4);
	}

	.cart-page .wc-block-cart__sidebar {
		padding: var(--space-5) !important;
	}
}

/* Benefit artwork is uploaded as a complete image. */
.commerce-benefits-grid .commerce-benefit-image {
	display: block;
	width: var(--space-16);
	height: var(--space-16);
	object-fit: contain;
	margin-inline: auto;
}

/* Complete uploaded service artwork, shared across service cards. */
.service-card-image { display: block; width: var(--space-28); height: var(--space-28); object-fit: contain; margin-inline: auto; margin-bottom: var(--space-3); }
.shop-services-grid .service-card-image, .product-services-grid .service-card-image { width: var(--space-16); height: var(--space-16); }

.product-card .price-row strong,
.product-card .price-row strong .amount,
.product-card .price-row strong .woocommerce-Price-currencySymbol {
	color: var(--accent-alt) !important;
	font-family: var(--font-body);
	font-size: clamp(var(--text-2xl), 2.1vw, var(--text-3xl));
	font-weight: var(--font-bold);
	line-height: var(--leading-none);
}

.product-card .price-row strong del,
.product-card .price-row strong del .amount,
.product-card .price-row strong del .woocommerce-Price-currencySymbol {
	color: var(--text-secondary) !important;
	font-size: var(--text-lg) !important;
	font-weight: var(--font-medium) !important;
}

.product-card .price-row strong del {
	opacity: 1;
}

.product-card .price-row strong ins {
	text-decoration: none;
}

.gt-add-to-cart-feedback:not([hidden]) {
	margin: var(--space-3) 0 0;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-danger-600);
	border-radius: var(--radius-md);
	color: var(--color-danger-700);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.gt-add-to-cart-feedback[data-type="success"] {
	border-color: var(--color-success-600);
	color: var(--color-navy-900);
}

.product-card:not(.product-card--home) .btn {
	border-color: var(--accent-4) !important;
	background: var(--accent-4) !important;
	color: var(--color-white) !important;
	font-family: var(--font-body);
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.view-all-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 52px;
	padding: var(--space-2) var(--space-6);
	border: 2px solid var(--accent-4);
	border-radius: var(--radius-3);
	background: var(--color-white);
	color: var(--accent-alt);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--font-bold);
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transition: border-color var(--duration-normal) var(--ease-standard),
		background-color var(--duration-normal) var(--ease-standard),
		transform var(--duration-fast) var(--ease-standard);
}

body.home-page .section-heading .view-all-link {
	margin-left: auto;
	min-height: 40px;
	padding: var(--space-1) var(--space-3);
	font-size: var(--text-sm);
	background: var(--color-white);
}

body.home-page .section-heading .view-all-link:is(:hover, :focus-visible) {
	background: var(--color-white);
}

.gt-configurator-measures {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
}
.gt-configurator-measures > label { min-width: 0; }
@media (max-width: 640px) { .gt-configurator-measures { grid-template-columns: minmax(0, 1fr); } }

body .faq-item > summary:is(:hover, :focus-visible),
body .faq-item[open] > summary {
	background: var(--color-white);
	color: var(--text-heading);
}
body .faq-item:is(:hover, :focus-within, [open]) { border-color: var(--accent-alt); }

body.home-page .commerce-benefits-grid .commerce-benefit-image {
	width: var(--space-16);
	height: var(--space-16);
	object-fit: contain;
	margin-inline: auto;
}

.view-all-link .material-symbols-outlined {
	font-family: var(--font-icon);
	font-size: var(--text-2xl);
	font-feature-settings: 'liga';
	letter-spacing: var(--tracking-normal);
	line-height: 1;
	text-transform: none;
}

.view-all-link:hover,
.view-all-link:focus-visible {
	border-color: var(--accent-alt);
	background: rgba(var(--color-orange-500-rgb), 0.06);
}

.view-all-link:active { transform: translateY(1px); }

@media (max-width: 640px) {
	body.home-page .solutions-showcase-action {
		padding-inline: var(--space-3);
		text-align: center;
	}

	body.home-page .solutions-showcase-action .btn {
		width: auto;
		max-width: 100%;
		min-width: 0;
	}

	body .view-all-link {
		min-height: 44px;
		padding: var(--space-2) var(--space-3);
		gap: var(--space-1);
		border-width: 1px;
		border-radius: var(--radius-2);
		font-size: var(--text-xs);
		letter-spacing: var(--tracking-label);
	}

	body .view-all-link .material-symbols-outlined { font-size: var(--text-lg); }
}

/* The outlined action sits on a tinted section in solution detail pages. */
.solution-selection-shell .view-all-link {
	max-width: 100%;
	background: transparent;
	text-align: center;
	white-space: normal;
}

.solution-selection-shell .view-all-link:hover,
.solution-selection-shell .view-all-link:focus-visible {
	background: var(--color-white);
}

body.home-page .solution-grid .category-commerce-card {
	display: grid;
	grid-template-rows: auto 1fr;
	align-content: stretch;
	gap: 0;
	width: 100%;
	min-width: 0;
	min-height: 0;
	aspect-ratio: auto;
	padding: 0;
	overflow: hidden;
	border: 1px solid rgba(var(--color-navy-900-rgb), 0.42);
	border-radius: var(--radius-4);
	background: var(--color-white);
	color: var(--text-heading);
}

body.home-page .category-commerce-card::after {
	display: none;
}

body.home-page .category-commerce-card > img {
	position: static;
	inset: auto;
	z-index: auto;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 18 / 13;
	object-fit: cover;
}

body.home-page .category-commerce-card__body {
	position: static;
	z-index: auto;
	display: grid;
	align-content: start;
	gap: var(--space-3);
	padding: var(--space-4);
	background: var(--color-white);
}

body.home-page .category-commerce-card h3 {
	position: static;
	margin: 0;
	padding: var(--space-2) var(--space-3);
	background: var(--accent-4);
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--font-bold);
	line-height: var(--leading-tight);
	text-transform: uppercase;
}

body.home-page .category-commerce-card small {
	position: static;
	display: grid;
	gap: var(--space-1);
	padding: 0;
	color: var(--accent-alt);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	line-height: var(--leading-body);
}

body.home-page .category-commerce-card small strong,
body.home-page .category-commerce-card small .amount {
	color: var(--accent-4);
	font-size: var(--text-xl);
	font-weight: var(--font-bold);
	line-height: var(--leading-tight);
	font-variant-numeric: tabular-nums;
}

body.home-page .category-commerce-card .woocommerce-Price-currencySymbol {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.home-page .featured-map-grid .product-card--home {
	position: relative;
	grid-template-rows: auto 1fr;
	min-width: 0;
	border: 1px solid rgba(var(--color-navy-900-rgb), 0.42);
	border-radius: var(--card-radius);
	background: var(--color-white);
	box-shadow: none;
}

.home-page .featured-map-grid .product-card--home .product-media {
	position: relative;
	min-height: 0;
	aspect-ratio: 16 / 10;
	border-radius: 0;
}

.home-page .featured-map-grid .product-card--home .product-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-page .product-card--home .product-body {
	position: static;
	grid-template-rows: auto auto minmax(0, 1fr) auto;
	gap: var(--space-3);
	min-width: 0;
	padding: var(--space-4);
}

.home-page .product-card--home .badge-row {
	gap: var(--space-2);
	margin: 0;
}

.home-page .product-card--home .badge {
	min-height: var(--badge-min-height);
	padding: var(--badge-padding-block) var(--badge-padding-inline);
	border-radius: var(--badge-radius);
	font-size: var(--badge-font-size) !important;
	line-height: var(--badge-line-height);
}

.home-page .product-card--home h3 {
	display: block;
	margin: 0;
	overflow: visible;
	padding: var(--space-2) var(--space-3);
	background: var(--accent-4);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--font-bold);
	line-height: var(--leading-snug);
	text-align: left;
	text-transform: uppercase;
}

.home-page .product-card--home h3 a {
	display: block;
	color: var(--color-white);
}

.home-page .product-card--home .product-card-title-text {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.home-page .product-card--home h3 a::after {
	position: absolute;
	inset: 0;
	z-index: var(--z-content);
	content: '';
}

.home-page .product-card--home h3 a:focus-visible { outline: none; }
.home-page .product-card--home:focus-within {
	outline: 3px solid var(--accent-alt);
	outline-offset: var(--space-1);
}

.home-page .product-card--home .product-body > p {
	display: -webkit-box;
	overflow: hidden;
	min-height: 3em;
	color: var(--text-secondary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	line-height: var(--leading-body);
	text-align: left;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.home-page .product-card--home .price-row {
	display: block;
	align-self: end;
	min-width: 0;
	padding-right: var(--space-13);
}

.home-page .product-card--home .price-row > span {
	display: none;
}

.home-page .product-card--home .price-row strong,
.home-page .product-card--home .price-row strong .amount,
.home-page .product-card--home .price-row strong .woocommerce-Price-currencySymbol {
	font-size: clamp(var(--text-xl), 2vw, var(--text-3xl));
	line-height: var(--leading-tight);
	font-variant-numeric: tabular-nums;
}

.home-page .product-card--home .product-card-arrow {
	position: absolute;
	right: var(--space-4);
	bottom: var(--space-4);
	display: grid;
	place-items: center;
	width: var(--space-11);
	height: var(--space-11);
	border: 2px solid var(--accent-4);
	border-radius: var(--radius-round);
	color: var(--accent-4);
	font-family: var(--font-icon);
	font-size: var(--text-2xl);
	font-feature-settings: 'liga';
	font-weight: var(--font-medium);
	transition: border-color var(--duration-normal) var(--ease-standard),
		color var(--duration-normal) var(--ease-standard),
		transform var(--duration-normal) var(--ease-standard);
}

.home-page .product-card--home:hover .product-card-arrow,
.home-page .product-card--home:focus-within .product-card-arrow {
	border-color: var(--accent-alt);
	color: var(--accent-alt);
	transform: translateX(var(--space-1));
}

/* Keep the semantic legend inside the filled configurator panel. */
.gt-single-product .gt-configurator {
	position: relative;
	padding-top: var(--space-16);
}

.gt-single-product .gt-configurator > legend {
	position: absolute;
	top: var(--space-5);
	left: var(--space-6);
	margin: 0;
	padding: 0;
}

.gt-configurator-guidance,
.home-quote-guidance {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--text-secondary);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.gt-range-help {
	display: block;
	margin-block: var(--space-1);
	color: var(--accent-4);
	font-size: var(--text-xs);
	font-weight: var(--font-semibold);
}

.gt-configuration-help {
	grid-column: 1 / -1;
	padding: var(--space-3);
	border-left: 3px solid var(--accent-alt);
	background: rgba(var(--color-orange-500-rgb), 0.08);
	color: var(--text-heading);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.reviews-empty {
	max-width: 60ch;
	margin: var(--space-5) auto 0;
	color: var(--text-secondary);
	font-size: var(--text-sm);
	text-align: center;
}


.service-card-image,
.shop-services-grid .service-card-image,
.product-services-grid .service-card-image {
	width: var(--space-28);
	height: var(--space-28);
}

@media (max-width: 760px) {
	body.home-page .category-commerce-card {
		aspect-ratio: 1.25 / 1;
	}
}

/* Product detail: purchase guidance must remain legible beside the price. */
body.product-page .section-breadcrumb .breadcrumb {
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

body.product-page .pdp-buy-col .pdp-price-hint,
body.product-page .pdp-buy-col .quantity-help,
body.product-page .pdp-buy-col .pdp-payments > p,
body.product-page .pdp-buy-col .pdp-purchase-total small {
	color: var(--color-bluegray-700);
	font-size: var(--text-base);
	line-height: var(--leading-body);
}

body.product-page .pdp-buy-col .pdp-lead,
body.product-page .pdp-buy-col .delivery-note {
	color: var(--text-primary);
	font-size: var(--text-base);
	line-height: var(--leading-body);
}

body.product-page .pdp-buy-col .pdp-lead p { margin: 0; }
body.product-page .pdp-buy-col .pdp-lead p + p { margin-top: var(--space-2); }

body.product-page .pdp-buy-col .quantity-label,
body.product-page .pdp-buy-col .pdp-purchase-total span {
	font-size: var(--text-base);
}

/* Shared inline alert component. WooCommerce supplies the accessible roles,
 * contextual classes and dismiss button; the theme owns only the tokens and
 * familiar alert geometry. */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message {
	--alert-background: var(--feedback-neutral-background);
	--alert-border-color: var(--feedback-neutral-border);
	--alert-icon-color: var(--feedback-neutral-icon);
	margin: var(--space-5) 0 var(--space-6);
	padding: var(--alert-padding-block) var(--alert-padding-inline) var(--alert-padding-block) var(--space-12);
	border: var(--alert-border-width) solid var(--alert-border-color);
	border-radius: var(--alert-radius);
	background: var(--alert-background);
	box-shadow: none;
	color: var(--text-primary);
	font-size: var(--alert-font-size);
	line-height: var(--alert-line-height);
}

.woocommerce .woocommerce-error {
	--alert-background: var(--feedback-error-background);
	--alert-border-color: var(--feedback-error-border);
	--alert-icon-color: var(--feedback-error-icon);
}

.woocommerce .woocommerce-info {
	--alert-background: var(--feedback-info-background);
	--alert-border-color: var(--feedback-info-border);
	--alert-icon-color: var(--feedback-info-icon);
}

.woocommerce .woocommerce-message {
	--alert-background: var(--feedback-success-background);
	--alert-border-color: var(--feedback-success-border);
	--alert-icon-color: var(--feedback-success-icon);
}

.woocommerce :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)::before {
	color: var(--alert-icon-color);
}

.wc-block-components-notice-banner {
	--alert-background: var(--feedback-neutral-background);
	--alert-border-color: var(--feedback-neutral-border);
	--alert-icon-color: var(--feedback-neutral-icon);
	box-sizing: border-box;
	display: grid !important;
	grid-template-columns: var(--alert-icon-size) minmax(0, 1fr) auto;
	gap: var(--alert-content-gap) !important;
	align-items: start;
	min-height: var(--alert-min-height);
	margin: var(--space-5) 0 var(--space-6);
	padding: var(--alert-padding-block) var(--alert-padding-inline) !important;
	border: var(--alert-border-width) solid var(--alert-border-color) !important;
	border-radius: var(--alert-radius) !important;
	background: var(--alert-background) !important;
	box-shadow: none;
	color: var(--text-primary);
	font-size: var(--alert-font-size);
	line-height: var(--alert-line-height);
}

.wc-block-components-notice-banner > svg {
	width: var(--alert-icon-size);
	height: var(--alert-icon-size);
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	fill: var(--alert-icon-color) !important;
}

.wc-block-components-notice-banner__content {
	align-self: center;
	min-width: 0;
	padding: 0 !important;
	font-size: inherit;
	line-height: inherit;
	overflow-wrap: anywhere;
}

.wc-block-components-notice-banner__content :is(p, ul) { margin-block: 0; }
.wc-block-components-notice-banner__content a { color: inherit; font-weight: var(--font-semibold); text-underline-offset: var(--space-1); }

.wc-block-components-notice-banner.is-info {
	--alert-background: var(--feedback-info-background);
	--alert-border-color: var(--feedback-info-border);
	--alert-icon-color: var(--feedback-info-icon);
}

.wc-block-components-notice-banner.is-success {
	--alert-background: var(--feedback-success-background);
	--alert-border-color: var(--feedback-success-border);
	--alert-icon-color: var(--feedback-success-icon);
}

.wc-block-components-notice-banner.is-warning {
	--alert-background: var(--feedback-warning-background);
	--alert-border-color: var(--feedback-warning-border);
	--alert-icon-color: var(--feedback-warning-icon);
}

.wc-block-components-notice-banner.is-error {
	--alert-background: var(--feedback-error-background);
	--alert-border-color: var(--feedback-error-border);
	--alert-icon-color: var(--feedback-error-icon);
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss {
	display: grid !important;
	place-items: center;
	align-self: center;
	width: var(--alert-dismiss-size) !important;
	min-width: var(--alert-dismiss-size) !important;
	height: var(--alert-dismiss-size) !important;
	min-height: var(--alert-dismiss-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--radius-sm) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--text-secondary) !important;
	opacity: 1;
	transition: background-color var(--alert-duration) var(--ease-standard), color var(--alert-duration) var(--ease-standard);
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss:hover {
	background: var(--surface) !important;
	color: var(--text-primary) !important;
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss:focus-visible {
	outline: 0;
	box-shadow: var(--focus-ring-navy) !important;
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss > svg {
	width: var(--space-4) !important;
	height: var(--space-4) !important;
	margin: 0 !important;
	background: transparent !important;
	fill: currentColor !important;
}

/* Shared toast component: classic Woo notices and Blocks snackbars consume
 * the same Figma alert geometry, semantic tones and component tokens. */
.wc-block-components-notice-snackbar-list {
	left: auto !important;
	right: var(--toast-offset-inline) !important;
	bottom: calc(var(--toast-offset-block) + env(safe-area-inset-bottom)) !important;
	z-index: var(--z-toast) !important;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--toast-stack-gap);
	width: min(var(--toast-max-width), calc(100vw - 2 * var(--space-4)));
	pointer-events: none;
}

.wc-block-components-notice-snackbar-list > div {
	width: 100%;
}

.gt-toast {
	--gt-toast-tone: var(--text-heading);
	box-sizing: border-box;
	display: flex !important;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: var(--toast-content-gap) !important;
	width: min(var(--toast-max-width), calc(100vw - 2 * var(--space-4))) !important;
	max-width: none !important;
	min-height: var(--toast-min-height);
	max-height: calc(100dvh - var(--space-8));
	overflow: auto;
	margin: 0 !important;
	padding: var(--toast-padding) calc(var(--toast-close-size) + var(--space-6)) var(--toast-padding) var(--toast-padding) !important;
	border: 1px solid var(--gt-toast-tone) !important;
	border-radius: var(--toast-radius) !important;
	background: var(--toast-background) !important;
	box-shadow: var(--toast-shadow) !important;
	color: var(--toast-color) !important;
	font-size: var(--toast-font-size) !important;
	line-height: var(--toast-line-height) !important;
	pointer-events: auto;
	opacity: 1;
	transform: translateY(0);
	transition: opacity var(--toast-duration) var(--ease-standard),
		transform var(--toast-duration) var(--ease-standard);
}

.gt-toast.gt-toast--entering {
	opacity: 0;
	transform: translateY(var(--space-3));
}

.gt-toast--success { --gt-toast-tone: var(--success); }
.gt-toast--warning { --gt-toast-tone: var(--color-warning-700); }
.gt-toast--error { --gt-toast-tone: var(--danger); }
.gt-toast--info { --gt-toast-tone: var(--text-heading); }

.woocommerce-notices-wrapper > .gt-toast {
	position: fixed;
	right: var(--toast-offset-inline);
	bottom: calc(var(--toast-offset-block) + env(safe-area-inset-bottom));
	z-index: var(--z-toast);
}

.wc-block-components-notice-snackbar-list .gt-toast {
	position: relative !important;
	width: 100% !important;
}

.gt-toast:focus { outline: none; }
.gt-toast:focus-visible { box-shadow: var(--toast-shadow), var(--focus-ring-navy) !important; }

.gt-toast > svg {
	display: block;
	flex: 0 0 var(--alert-icon-size);
	width: var(--alert-icon-size);
	height: var(--alert-icon-size);
	padding: 0;
	background: transparent !important;
	fill: var(--gt-toast-tone) !important;
}

.gt-toast .wc-block-components-notice-banner__content {
	align-self: center;
	min-width: 0;
	padding-right: 0;
	font-size: inherit;
	line-height: inherit;
}

.woocommerce-notices-wrapper > .gt-toast .button {
	order: 1;
	display: inline-flex;
	min-height: var(--space-10);
	align-items: center;
	float: none;
	margin: 0;
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius-md);
	white-space: nowrap;
}

.gt-toast-close,
.gt-toast > .wc-block-components-button {
	position: absolute !important;
	top: var(--space-3) !important;
	right: var(--space-3) !important;
	display: grid !important;
	place-items: center;
	flex: 0 0 var(--toast-close-size) !important;
	width: var(--toast-close-size) !important;
	height: var(--toast-close-size) !important;
	min-width: var(--toast-close-size) !important;
	min-height: var(--toast-close-size) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--radius-md) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--text-secondary) !important;
	font: inherit;
	font-size: var(--text-xl);
	line-height: var(--leading-none);
	cursor: pointer;
	opacity: 1;
}

.gt-toast-close:hover,
.gt-toast-close:focus-visible,
.gt-toast > .wc-block-components-button:hover,
.gt-toast > .wc-block-components-button:focus-visible {
	background: var(--surface) !important;
	color: var(--text-heading) !important;
	outline: none !important;
	box-shadow: var(--focus-ring-navy) !important;
}

@media (max-width: 760px) {
	.wc-block-components-notice-snackbar-list {
		left: var(--space-4) !important;
		right: var(--space-4) !important;
		bottom: calc(var(--toast-offset-block) + env(safe-area-inset-bottom)) !important;
		width: auto;
	}

	.woocommerce-notices-wrapper > .gt-toast {
		left: var(--space-4);
		right: var(--space-4);
		bottom: calc(var(--toast-offset-block) + env(safe-area-inset-bottom));
		width: auto !important;
	}

	body:has(.pdp-mobile-buybar) .woocommerce-notices-wrapper > .gt-toast {
		bottom: calc(160px + env(safe-area-inset-bottom));
	}
}

@media (prefers-reduced-motion: reduce) {
	.gt-toast {
		transform: none;
		transition: none;
	}
}

/* Account access: keep the two tasks together without stretching either form. */
body.login-page .page-hero.image-hero {
	min-height: 260px;
	padding-block: var(--space-24) var(--space-8);
}

body.login-page .woocommerce-shell {
	max-width: 1120px;
	padding-block: var(--space-8) var(--space-20);
}

body.login-page #customer_login {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	overflow: hidden;
	border: 1px solid var(--border);
	border-radius: var(--card-radius);
	background: var(--color-white);
	box-shadow: 0 16px 42px rgba(var(--color-navy-900-rgb), 0.08);
}

body.login-page #customer_login::before,
body.login-page #customer_login::after { display: none; }

body.login-page #customer_login > .u-column1,
body.login-page #customer_login > .u-column2 {
	float: none;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: clamp(var(--space-7), 3.5vw, var(--space-12));
}

body.login-page #customer_login > .u-column2 {
	border-left: 1px solid var(--border);
	background: var(--background-alt);
}

body.login-page #customer_login h2 {
	margin: 0 0 var(--space-6);
	color: var(--accent-4);
	font-family: var(--font-heading);
	font-size: clamp(var(--text-2xl), 2.4vw, var(--text-3xl));
	line-height: var(--leading-heading);
}

body.login-page .woocommerce-form-login,
body.login-page .woocommerce-form-register,
body.login-page .woocommerce-ResetPassword {
	margin: 0;
}

body.login-page .woocommerce-ResetPassword {
	max-width: 560px;
	margin-inline: auto;
	padding: var(--space-8);
	border: 1px solid var(--border);
	border-radius: var(--card-radius);
}

body.login-page .woocommerce form .form-row {
	min-width: 0;
	margin: 0 0 var(--space-5);
}

body.login-page .woocommerce form .form-row label {
	color: var(--accent-4);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
}

body.login-page .woocommerce form .form-row > label:not(.woocommerce-form-login__rememberme) {
	display: block;
	margin: 0;
}

body.login-page .woocommerce form .form-row .required { color: var(--accent-alt); }

body.login-page .woocommerce form .form-row input.input-text {
	width: 100%;
	min-height: 48px;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--accent-3);
	border-radius: var(--radius-2);
	background: var(--color-white);
	transition: border-color var(--duration-normal) var(--ease-standard);
}

body.login-page .woocommerce form .form-row input.input-text:focus {
	border-color: var(--accent-alt);
}

body:is(.login-page, .account-page) .woocommerce form .password-input {
	position: relative;
	display: block;
}

body:is(.login-page, .account-page) .woocommerce form .password-input input.input-text {
	padding-right: var(--space-20);
}

body:is(.login-page, .account-page) .woocommerce form .show-password-input {
	position: absolute;
	top: 50%;
	right: var(--space-2);
	min-width: var(--space-16);
	min-height: var(--space-9);
	padding: var(--space-1) var(--space-2);
	border: 0;
	border-radius: var(--radius-2);
	background: transparent;
	box-shadow: none;
	color: var(--accent-4);
	font-size: 0;
	font-weight: var(--font-semibold);
	transform: translateY(-50%);
	cursor: pointer;
}

body:is(.login-page, .account-page) .woocommerce form .show-password-input::before { content: 'Mostrar'; font-family: var(--font-body); font-size: var(--text-xs); font-weight: var(--font-semibold); }
body:is(.login-page, .account-page) .woocommerce form .show-password-input.display-password::before { content: 'Ocultar'; }
body:is(.login-page, .account-page) .woocommerce form .show-password-input:hover { background: var(--background-alt); }

body:is(.login-page, .account-page) .woocommerce form .show-password-input:focus-visible {
	outline: 2px solid var(--accent-secondary);
	outline-offset: 2px;
}

body.login-page .woocommerce-form-login > .form-row:not(.woocommerce-form-row),
body.login-page .woocommerce-form-register > .form-row:not(.woocommerce-form-row) {
	display: grid;
	gap: var(--space-5);
	margin-top: var(--space-2);
}

body.login-page .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	width: fit-content;
	margin: 0;
	cursor: pointer;
}

body.login-page .woocommerce .woocommerce-form-login__submit,
body.login-page .woocommerce .woocommerce-form-register__submit,
body.login-page .woocommerce .woocommerce-ResetPassword .button {
	width: 100%;
	min-height: 48px;
	border-radius: var(--radius-2);
	font-size: var(--text-sm);
	font-weight: var(--font-bold);
	transition: filter var(--duration-normal) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);
}

body.login-page .woocommerce .woocommerce-form-login__submit:hover,
body.login-page .woocommerce .woocommerce-form-register__submit:hover,
body.login-page .woocommerce .woocommerce-ResetPassword .button:hover { filter: brightness(0.94); }

body.login-page .woocommerce .woocommerce-form-login__submit:active,
body.login-page .woocommerce .woocommerce-form-register__submit:active,
body.login-page .woocommerce .woocommerce-ResetPassword .button:active { transform: translateY(1px); }

body.login-page .woocommerce-LostPassword { margin: var(--space-4) 0 0; }
body.login-page .woocommerce-LostPassword a {
	color: var(--accent-4);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	text-decoration: underline;
	text-decoration-color: var(--accent-alt);
	text-underline-offset: 3px;
}

body.login-page .woocommerce-privacy-policy-text a {
	color: var(--accent-4);
	font-size: inherit;
	font-weight: var(--font-semibold);
	text-decoration: underline;
	text-decoration-color: var(--accent-alt);
	text-underline-offset: 3px;
}

body.login-page .woocommerce-privacy-policy-text {
	color: var(--text-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	line-height: var(--leading-body);
}

body.login-page .woocommerce-privacy-policy-text p { margin: 0 0 var(--space-4); }

@media (max-width: 760px) {
	body.login-page .page-hero.image-hero {
		min-height: 220px;
		padding-block: var(--space-20) var(--space-6);
	}

	body.login-page .woocommerce-shell { padding-block: var(--space-5) var(--space-14); }
	body.login-page #customer_login { grid-template-columns: 1fr; }
	body.login-page #customer_login > .u-column1,
	body.login-page #customer_login > .u-column2 { padding: var(--space-7); }
	body.login-page #customer_login > .u-column2 {
		border-top: 1px solid var(--border);
		border-left: 0;
	}
}

/* The sticky purchase bar reveals the form action while scrolling. */
body.product-page .pdp-sticky-purchase button:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
}

#pdp-purchase-form,
body.product-page .gt-single-product form.cart :invalid {
	scroll-margin-top: calc(var(--space-20) + var(--space-7));
}

body.product-page .pdp-sticky-purchase[hidden] { display: none; }
body.product-page .pdp-sticky-purchase {
	position: fixed;
	z-index: var(--z-sticky);
	right: 0;
	bottom: 0;
	left: 0;
	padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));
	border-top: 1px solid var(--border);
	background: var(--color-white);
	box-shadow: 0 -6px 22px rgba(var(--color-black-rgb), 0.1);
}

body.product-page .pdp-sticky-purchase-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-6);
	width: min(100%, 760px);
	margin-inline: auto;
}

body.product-page .pdp-sticky-purchase-price { display: grid; min-width: 0; gap: var(--space-1); }
body.product-page .pdp-sticky-purchase-price small {
	color: var(--accent-4);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	line-height: 1.35;
}
body.product-page .pdp-sticky-purchase-price strong {
	color: var(--accent-4);
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}
body.product-page .pdp-sticky-purchase .btn {
	min-width: 220px;
	min-height: 48px;
	margin: 0;
	font-size: var(--text-sm);
}
body.product-page.pdp-sticky-visible .whatsapp-float {
	bottom: calc(96px + env(safe-area-inset-bottom));
}

@media (max-width: 640px) {
	body.product-page .pdp-sticky-purchase-inner { justify-content: space-between; gap: var(--space-3); }
	body.product-page .pdp-sticky-purchase-price strong { font-size: var(--text-lg); }
	body.product-page .pdp-sticky-purchase .btn {
	min-width: 0;
	width: min(55%, 210px);
	padding-inline: var(--space-2);
	line-height: var(--leading-snug);
	}
}

/* Transactional pages use one visible brand variant, regardless of scroll state. */
body:is(.cart-page, .checkout-page) .site-header .brand-logo-white { display: none !important; }
body:is(.cart-page, .checkout-page) .site-header .brand-logo-blue { display: block; opacity: 1 !important; }

/* Contact: compact hierarchy and intentional contact channels around the HubSpot embed. */
.contact-page-section {
	padding-block: var(--space-10) var(--space-16);
}

.contact-page-section {
	background: var(--color-white);
}

.contact-page-section .contact-layout {
	grid-template-columns: minmax(320px, 0.76fr) minmax(0, 1.24fr);
	gap: var(--space-6);
}

.contact-page-section .contact-form-card {
	border-radius: var(--radius-lg);
	box-shadow: var(--elevation-subtle);
}

.contact-page-section .contact-info-panel {
	gap: 0;
	padding: var(--space-8);
	border: 0;
	background: transparent;
	border-radius: 0;
	box-shadow: none;
	color: var(--text-heading);
}

.contact-page-section .contact-kicker,
.contact-page-section .contact-form-kicker {
	margin: 0 0 var(--space-3);
	color: var(--accent-alt);
	font-size: var(--text-xs);
	font-weight: var(--font-bold);
	letter-spacing: var(--tracking-wider);
	line-height: var(--leading-snug);
	text-transform: uppercase;
}

.contact-page-section .contact-info-panel > .contact-kicker {
	color: var(--accent-alt);
}

.contact-page-section .contact-info-panel h2 {
	max-width: none;
	margin: 0;
	color: var(--text-heading);
	font-size: clamp(var(--text-2xl), 2.3vw, var(--text-4xl));
	font-weight: var(--font-bold);
	line-height: var(--leading-title);
}

.contact-page-section .contact-info-panel > .contact-intro {
	margin: var(--space-4) 0 var(--space-8);
	color: var(--text-secondary);
	font-size: var(--text-sm);
	line-height: var(--leading-relaxed);
}

.contact-page-section .contact-method-list {
	gap: var(--space-5);
}

.contact-page-section .contact-method,
.contact-page-section .contact-shop-email {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	gap: var(--space-3);
	align-items: center;
	margin: 0;
	padding: var(--space-1) 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--text-heading);
	box-shadow: none;
}

.contact-page-section .contact-method:hover {
	transform: none;
	background: transparent;
	box-shadow: none;
}

.contact-page-section .contact-method:hover strong {
	color: var(--accent-4);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.contact-page-section .contact-method:focus-visible {
	outline: 3px solid var(--accent-alt);
	outline-offset: 3px;
}

.contact-page-section .contact-method > .material-symbols-outlined,
.contact-page-section .contact-shop-email .material-symbols-outlined {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-md);
	background: var(--color-orange-50);
	color: var(--accent-alt);
	font-size: var(--text-xl);
}

.contact-page-section .contact-method small,
.contact-page-section .contact-method strong {
	display: block;
}

.contact-page-section .contact-method small {
	margin: 0 0 var(--space-1);
	color: var(--text-secondary);
	font-size: var(--text-xs);
	font-style: normal;
}

.contact-page-section .contact-method strong {
	overflow-wrap: anywhere;
	color: var(--text-heading);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
	line-height: var(--leading-snug);
}

.contact-page-section .contact-info-panel > .contact-response-note {
	display: block;
	max-width: 38ch;
	margin: var(--space-8) 0 0;
	padding-top: 0;
	border-top: 0;
	color: var(--text-secondary);
	font-size: var(--text-xs);
	line-height: var(--leading-body);
}

.contact-page-section .contact-response-note .material-symbols-outlined {
	display: none;
}

.contact-page-section .contact-context-note,
.contact-page-section .contact-context-details {
	margin: var(--space-4) 0 0;
	padding: var(--space-4);
	border: 1px solid var(--accent-3);
	border-radius: var(--radius-md);
	background: var(--background-alt);
	color: var(--text-secondary);
	font-size: var(--text-xs);
}

/* La invitación a visitar sucursales sigue la jerarquía centrada de los demás CTA. */
.showroom-cta .location-grid {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--heading-action-gap);
	align-content: center;
	justify-items: center;
	text-align: center;
}

.showroom-cta .location-copy p {
	margin-inline: auto;
}

.showroom-cta .location-actions {
	justify-content: center;
}

.contact-page-section .contact-form-card {
	gap: var(--space-6);
	padding: var(--space-8);
	border-color: rgba(var(--color-navy-900-rgb), 0.1);
	background: var(--color-white);
}

.contact-page-section .contact-form-heading {
	grid-template-columns: 44px minmax(0, 1fr);
	gap: var(--space-4);
	padding-bottom: var(--space-5);
	border-bottom: 1px solid var(--accent-3);
}

.contact-page-section .contact-form-heading > .material-symbols-outlined {
	width: 44px;
	height: 44px;
	border-radius: var(--radius-md);
	background: var(--color-orange-50);
	color: var(--accent-alt);
	font-size: var(--text-2xl);
}

.contact-page-section .contact-form-heading h2 {
	margin: 0 0 var(--space-2);
	color: var(--text-heading);
	font-size: clamp(var(--text-2xl), 2vw, var(--text-4xl));
	font-weight: var(--font-bold);
	line-height: var(--leading-title);
}

.contact-page-section .contact-form-heading .contact-form-kicker {
	margin-bottom: var(--space-2);
	color: var(--accent-alt);
}

.contact-page-section .contact-form-heading p:last-child {
	max-width: 58ch;
	margin: 0;
	color: var(--text-secondary);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

.contact-page-section .gt-hubspot > [data-form-status] {
	margin: 0;
	padding: var(--space-4);
	border-radius: var(--radius-md);
	background: var(--background-alt);
	color: var(--text-secondary);
	font-size: var(--text-sm);
}

.contact-page-section .gt-hubspot.is-ready > [data-form-status][hidden] {
	display: none;
}

@media (max-width: 900px) {
	.contact-page-section .contact-layout { grid-template-columns: 1fr; }
	.contact-page-section .contact-info-panel { position: static; }
}

@media (max-width: 640px) {
	.contact-page-section { padding-block: var(--space-7) var(--space-12); }
	.contact-page-section .contact-info-panel,
	.contact-page-section .contact-form-card { padding: var(--space-5); }
	.contact-page-section .contact-form-heading { grid-template-columns: 40px minmax(0, 1fr); }
	.contact-page-section .contact-form-heading > .material-symbols-outlined {
		width: 40px;
		height: 40px;
	}
}

/* Shared section-heading scale: page heroes keep their own display hierarchy. */
.section-heading h2,
.services-section .section-heading h2,
.corporate-solutions-section .section-heading h2,
.product-toolbar h2,
.contact-page-section .contact-info-panel h2,
.contact-page-section .contact-form-heading h2 {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(var(--text-3xl), 2.4vw, var(--text-4xl));
	font-weight: var(--font-bold);
	letter-spacing: -0.015em;
	line-height: var(--leading-title);
	text-wrap: balance;
}

/* The illustrated Home showcase follows the corporate section-title scale. */
.home-page .home-solutions-showcase .section-heading h2 {
	font-size: var(--section-title-size);
}

@media (max-width: 640px) {
	.home-page .home-solutions-showcase .section-heading h2 {
		font-size: var(--text-4xl);
	}
}

.section-heading p:not(.eyebrow),
.services-section .section-heading p:not(.eyebrow),
.product-toolbar [data-results-title] {
	max-width: 46rem;
	margin: var(--heading-subtitle-gap) auto 0;
	color: var(--text-secondary);
	font-size: var(--text-base);
	font-weight: var(--font-regular);
	line-height: var(--leading-relaxed);
	text-wrap: pretty;
}

.product-toolbar [data-results-title] {
	margin-inline: 0;
}

.contact-page-section .contact-info-panel > .contact-intro,
.contact-page-section .contact-form-heading p:last-child {
	max-width: 46rem;
	margin-top: var(--heading-subtitle-gap);
	font-size: var(--text-base);
	font-weight: var(--font-regular);
	line-height: var(--leading-relaxed);
	text-wrap: pretty;
}

.contact-promotions-heading p:not(.eyebrow) {
	margin-bottom: var(--heading-action-gap);
}

.section-hero-content > p:not(.eyebrow) + .btn {
	margin-top: calc(var(--heading-action-gap) - var(--heading-subtitle-gap));
}

/* Every page and promotional hero shares the same centered content alignment. */
body :is(.page-hero .section-hero-content, .hero-slider .hero-slide-content, .shop-banner-content, .shop-campaign-content) {
	align-items: center;
	justify-items: center;
	align-content: center;
	text-align: center;
}

body :is(.page-hero .section-hero-content, .hero-slider .hero-slide-content, .shop-banner-content, .shop-campaign-content) > * {
	margin-inline: auto;
	justify-self: center;
}

/* Product cards set the hover language for the storefront's action cards. */
@media (min-width: 801px) {
	.product-page .pdp-addon-sidebar .addon-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 1280px;
		margin-inline: auto;
	}

	.product-page .pdp-addon-sidebar .addon-list--wide {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		max-width: 1600px;
	}
}

.product-page .pdp-addon-sidebar .addon-list .product-card {
	min-width: 0;
	height: 100%;
	text-align: left;
}

.product-page .pdp-addon-sidebar .addon-list .product-media {
	display: block;
	min-height: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.product-page .pdp-addon-sidebar .addon-list .product-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 640px) {
	.product-page .pdp-addon-sidebar .addon-list .product-card { scroll-snap-align: start; }
}

body :is(.category-card, .category-card-image, .product-card, .flow-card, .config-card,
  .confirmation-card, .map-card, .info-card, .service-card, .map-product-card,
  .help-category, .addon-item, .contact-method, .blog-card, .useful-document-card,
  .solution-space-card, .solution-product-card, .branch-card, .cross-sell-card,
  .quote-steps > div) {
	transition: transform var(--card-hover-duration) var(--ease-standard),
		border-color var(--card-hover-duration) var(--ease-standard),
		box-shadow var(--card-hover-duration) var(--ease-standard);
}

body :is(.category-card, .category-card-image, .product-card, .flow-card, .config-card,
  .confirmation-card, .map-card, .info-card, .service-card, .map-product-card,
  .help-category, .addon-item, .contact-method, .blog-card, .useful-document-card,
  .solution-space-card, .solution-product-card, .branch-card, .cross-sell-card,
  .quote-steps > div):is(:hover, :focus-within) {
	transform: translateY(var(--card-hover-lift));
	border-color: var(--card-hover-border);
	box-shadow: var(--card-hover-shadow);
}

body.home-page .services-section .service-card:is(:hover, :focus-within),
body.services-page .services-section .service-card:is(:hover, :focus-within),
body.home-page .solution-grid .map-card:is(:hover, :focus-within),
body.home-page .featured-map-grid .product-card:is(:hover, :focus-within),
body.home-page .featured-map-grid .map-product-card:is(:hover, :focus-within),
body.home-page article.useful-document-card:is(:hover, :focus-within) {
	transform: translateY(var(--card-hover-lift));
	border-color: var(--card-hover-border);
	box-shadow: var(--card-hover-shadow);
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--card-hover-lift: 0px;
		--card-hover-duration: var(--duration-reduced);
	}
}

/* Fluid corporate-scale frame for desktop and reduced browser zoom. */
@media (min-width: 981px) {
	body .site-header .header-main,
	body.home-page .site-header .header-main,
	body.home-page .site-header.is-scrolled .header-main,
	body.has-transparent-header .site-header .header-main,
	body.has-transparent-header .site-header.is-scrolled .header-main {
		width: min(100% - calc(var(--layout-gutter) * 2), var(--container));
		grid-template-columns: clamp(150px, 11vw, 260px) minmax(0, 1fr) auto;
		gap: clamp(var(--space-4), 1.5vw, var(--space-8));
	}

	body .site-header .brand-logo img,
	body.home-page .site-header .brand-logo img,
	body.home-page .site-header.is-scrolled .brand-logo img,
	body.has-transparent-header .site-header.is-scrolled .brand-logo img {
		width: var(--header-logo-width);
	}

	body .site-header .category-nav-inner > a,
	body .site-header .nav-dropdown > summary,
	body .site-header .header-main .category-nav-inner > a.is-active,
	body .site-header .header-main .nav-dropdown.is-active > summary,
	body .site-header .header-main .nav-dropdown > summary.is-active {
		font-size: var(--header-nav-size);
		font-weight: var(--header-nav-weight);
	}

	body .site-header .nav-dropdown-panel a {
		font-size: var(--header-subnav-size);
		font-weight: var(--header-subnav-weight);
		line-height: var(--leading-body);
	}

	body .site-header .main-actions .icon-link,
	body .site-header .corporate-link,
	body.has-transparent-header .site-header.is-scrolled .main-actions .icon-link,
	body.home-page.has-transparent-header .site-header.is-scrolled .main-actions .icon-link,
	body.home-page.has-transparent-header .site-header.is-scrolled .corporate-link,
	body.home-page .site-header.is-scrolled .main-actions .icon-link,
	body.home-page .site-header.is-scrolled .corporate-link {
		width: var(--header-icon-size);
		height: var(--header-icon-size);
		min-height: var(--header-icon-size);
		flex-basis: var(--header-icon-size);
	}

	body.home-page.has-transparent-header .site-header.is-scrolled .main-actions {
		gap: var(--space-6);
	}
}

body.home-page .sitemap-hero .hero-slide-content {
	max-width: var(--hero-content-width);
}

body.home-page .sitemap-hero .hero-slide-content h1,
body.home-page .sitemap-hero .hero-slide-content h2 {
	max-width: var(--hero-content-width);
	font-size: var(--hero-display-size);
}

body.home-page .sitemap-hero .hero-slide-content > p:not(.eyebrow) {
	max-width: var(--hero-lead-width);
	font-size: var(--hero-lead-size);
}

body.home-page .sitemap-hero .hero-slide-content .btn {
	min-height: var(--hero-action-height);
	padding-inline: clamp(var(--space-6), 2vw, var(--space-12));
	font-size: var(--hero-action-size);
}

body.home-page .sitemap-hero .hero-arrow-prev { left: max(var(--space-4), 2vw); }
body.home-page .sitemap-hero .hero-arrow-next { right: max(var(--space-4), 2vw); }
body.home-page .commerce-benefits-grid {
	width: min(100% - calc(var(--layout-gutter) * 2), var(--container));
}

@media (min-width: 641px) {
	body .section-breadcrumb.section-breadcrumb > .container {
		width: min(100% - calc(var(--layout-gutter) * 2), var(--container));
	}
}

@media (max-width: 640px) {
	body.home-page .sitemap-hero .hero-slide-content,
	body.home-page .sitemap-hero .hero-slide-content h1,
	body.home-page .sitemap-hero .hero-slide-content h2 {
		max-width: 100%;
	}
	body.home-page .sitemap-hero .hero-slide-content h1,
	body.home-page .sitemap-hero .hero-slide-content h2 {
		font-size: clamp(var(--text-4xl), 10vw, var(--text-6xl));
	}
	body.home-page .sitemap-hero .hero-slide-content > p:not(.eyebrow) {
		max-width: 100%;
	}
	body.home-page .sitemap-hero .hero-slide-content .btn {
		min-height: 44px;
		padding-inline: var(--space-5);
		font-size: var(--text-sm);
	}
}

/* Home services are icon links, not raised surface cards. */
body.home-page .services-section .service-card,
body.home-page .services-section .service-card:is(:hover, :focus-visible, :focus-within) {
	transform: none;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

body.home-page .services-section .service-card :is(.service-card-image, .material-symbols-outlined) {
	transition: transform var(--card-hover-duration) var(--ease-standard);
}

body.home-page .services-section .service-card h3 {
	transition: color var(--card-hover-duration) var(--ease-standard);
}

body.home-page .services-section .service-card:is(:hover, :focus-visible) :is(.service-card-image, .material-symbols-outlined) {
	transform: translateY(calc(-1 * var(--space-1))) scale(1.04);
}

body.home-page .services-section .service-card:is(:hover, :focus-visible) h3 {
	color: var(--accent-alt);
}

body.home-page .services-section .service-card:focus-visible { outline: none; }
body.home-page .services-section .service-card:focus-visible :is(.service-card-image, .material-symbols-outlined) {
	border-radius: var(--radius-round);
	outline: 3px solid var(--accent-4);
	outline-offset: var(--space-1);
}

@media (prefers-reduced-motion: reduce) {
	body.home-page .services-section .service-card:is(:hover, :focus-visible) :is(.service-card-image, .material-symbols-outlined) {
		transform: none;
	}
}

/* Shop and product service links expose the same clear interaction cue. */
:is(.shop-services-grid, .product-services-grid) a :is(.service-card-image, .material-symbols-outlined) {
	transition:
		transform var(--card-hover-duration) var(--ease-standard),
		filter var(--card-hover-duration) var(--ease-standard);
}

:is(.shop-services-grid, .product-services-grid) a strong {
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: var(--space-2);
	transition:
		color var(--card-hover-duration) var(--ease-standard),
		text-decoration-color var(--card-hover-duration) var(--ease-standard);
}

:is(.shop-services-grid, .product-services-grid) a:is(:hover, :focus-visible) :is(.service-card-image, .material-symbols-outlined) {
	transform: translateY(calc(-1 * var(--space-1))) scale(1.05);
	filter: drop-shadow(0 var(--space-2) var(--space-2) rgba(var(--color-navy-900-rgb), 0.16));
}

:is(.shop-services-grid, .product-services-grid) a:is(:hover, :focus-visible) strong {
	color: var(--accent-alt);
	text-decoration-color: currentColor;
}

:is(.shop-services-grid, .product-services-grid) a:focus-visible {
	outline: none;
}

:is(.shop-services-grid, .product-services-grid) a:focus-visible :is(.service-card-image, .material-symbols-outlined) {
	border-radius: var(--radius-round);
	outline: 3px solid var(--accent-4);
	outline-offset: var(--space-1);
}

@media (prefers-reduced-motion: reduce) {
	:is(.shop-services-grid, .product-services-grid) a:is(:hover, :focus-visible) :is(.service-card-image, .material-symbols-outlined) {
		transform: none;
	}
}

/* Banners editoriales: misma superficie visual que los heroes del sitio corporativo (aprox. 2,4:1). */
.home-page .sitemap-hero .hero-stage,
.shop-banner-hero .hero-stage {
	height: calc(var(--hero-banner-media-height) + var(--hero-banner-controls-height));
	aspect-ratio: auto;
}

body.home-page .sitemap-hero,
body .shop-banner-hero {
	position: relative;
}

body.home-page .sitemap-hero .hero-controls,
body .shop-banner-hero .hero-controls {
	position: absolute;
	inset: auto 0 0;
	min-height: var(--hero-banner-controls-height);
	transform: none;
	background: transparent;
}

body :is(.sitemap-hero, .shop-banner-hero) .hero-slide > img,
body .sitemap-hero .hero-slide > picture,
body .sitemap-hero .hero-slide > picture > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body:not(:is(.home-page, .cart-page, .checkout-page, .login-page, .account-page, .quote-configurator-page))
	.page-hero.image-hero:not(:is(.cart-hero, .checkout-hero, .account-hero, .quote-hero)) {
	min-height: var(--hero-banner-media-height);
	padding-block: 0;
}

.shop-campaign-hero { min-height: var(--hero-banner-media-height); }

/* Tipografía de los heroes editoriales, basada en el hero del sitio corporativo. */
:is(
	body.home-page .sitemap-hero .hero-slide-content,
	.shop-banner-content,
	.shop-campaign-content,
	body:not(:is(.home-page, .cart-page, .checkout-page, .login-page, .account-page, .quote-configurator-page))
		.page-hero.image-hero:not(:is(.cart-hero, .checkout-hero, .account-hero, .quote-hero)) .section-hero-content
) :is(h1, h2, .shop-banner-title) {
	max-width: var(--hero-content-width);
	font-family: var(--font-heading);
	font-size: var(--hero-display-size);
	font-weight: var(--font-bold);
	line-height: var(--hero-display-line-height);
	letter-spacing: var(--hero-display-tracking);
	text-transform: none;
	text-shadow: var(--hero-text-shadow);
}

:is(
	body.home-page .sitemap-hero .hero-slide-content,
	.shop-banner-content,
	.shop-campaign-content,
	body:not(:is(.home-page, .cart-page, .checkout-page, .login-page, .account-page, .quote-configurator-page))
		.page-hero.image-hero:not(:is(.cart-hero, .checkout-hero, .account-hero, .quote-hero)) .section-hero-content
) > p:not(.eyebrow, .shop-banner-title) {
	max-width: var(--hero-lead-width);
	font-family: var(--font-body);
	font-size: var(--hero-lead-size);
	line-height: var(--leading-body);
	text-shadow: var(--hero-text-shadow);
}

:is(
	body.home-page .sitemap-hero .hero-slide-content,
	.shop-banner-content,
	.shop-campaign-content,
	body:not(:is(.home-page, .cart-page, .checkout-page, .login-page, .account-page, .quote-configurator-page))
		.page-hero.image-hero:not(:is(.cart-hero, .checkout-hero, .account-hero, .quote-hero)) .section-hero-content
) .eyebrow {
	width: fit-content;
	padding: var(--space-1) var(--space-6);
	background: var(--color-orange-500);
	color: var(--text-on-accent-alt);
	font-family: var(--font-body);
	font-size: var(--hero-eyebrow-size);
	font-weight: var(--font-semibold);
	line-height: var(--hero-eyebrow-line-height);
	letter-spacing: .05em;
	text-transform: uppercase;
	text-shadow: none;
}

:is(
	body.home-page .sitemap-hero .hero-slide-content,
	.shop-banner-content,
	.shop-campaign-content,
	body:not(:is(.home-page, .cart-page, .checkout-page, .login-page, .account-page, .quote-configurator-page))
		.page-hero.image-hero:not(:is(.cart-hero, .checkout-hero, .account-hero, .quote-hero)) .section-hero-content
) .btn {
	min-height: var(--hero-action-height);
	font-family: var(--font-body);
	font-size: var(--hero-action-size);
	font-weight: var(--font-bold);
}

@media (max-width: 640px) {
	:root {
		--hero-banner-controls-height: 56px;
		--hero-display-size: clamp(var(--text-4xl), 9vw, var(--text-6xl));
		--hero-content-width: 100%;
		--hero-lead-size: var(--text-base);
		--hero-lead-width: 100%;
		--hero-eyebrow-size: var(--text-sm);
		--hero-action-size: var(--text-sm);
		--hero-action-height: 44px;
	}
}

/* Compact card actions share the Primary M button size. */
body .blog-card .blog-card-body > .btn,
body .product-card:not(.product-card--home) .product-body > .btn {
	justify-self: start;
	align-self: end;
	width: fit-content;
	min-width: 0;
	min-height: var(--button-m-height);
	height: var(--button-m-height);
	max-width: 100%;
	padding: 0 var(--button-m-padding-inline);
	border-radius: var(--button-m-radius);
	font-size: var(--button-m-font-size);
	font-weight: var(--font-semibold);
	line-height: var(--button-m-line-height);
	letter-spacing: var(--tracking-normal);
	text-transform: none;
	white-space: nowrap;
	overflow-wrap: normal;
}

/* WooCommerce injects this link after an AJAX add; keep it in the button system. */
body .product-card:not(.product-card--home) .product-body > .added_to_cart.wc-forward {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: start;
	align-self: start;
	width: fit-content;
	min-height: var(--button-m-height);
	max-width: 100%;
	padding: 0 var(--button-m-padding-inline);
	border: 2px solid var(--accent-alt);
	border-radius: var(--button-m-radius);
	background: var(--color-white);
	color: var(--accent-alt);
	font-family: var(--font-body);
	font-size: var(--button-m-font-size);
	font-weight: var(--font-semibold);
	line-height: var(--button-m-line-height);
	letter-spacing: var(--tracking-normal);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition:
		background-color var(--duration-normal) ease,
		border-color var(--duration-normal) ease,
		color var(--duration-normal) ease,
		transform var(--duration-fast) ease-out;
}

@media (hover: hover) and (pointer: fine) {
	body .product-card:not(.product-card--home) .product-body > .added_to_cart.wc-forward:hover {
		border-color: var(--accent-alt-hover);
		background: var(--accent-alt);
		color: var(--text-on-accent-alt);
		transform: translateY(-1px);
	}
}

body .product-card:not(.product-card--home) .product-body > .added_to_cart.wc-forward:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
}

body .product-card:not(.product-card--home) .product-body > .added_to_cart.wc-forward:active {
	transform: translateY(1px) scale(.98);
}

/* Single product: WooCommerce inserts "Ver carrito" below the main purchase action. */
body.product-page .pdp-buy-col .added_to_cart.wc-forward {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: var(--space-3) var(--space-5);
	border: 1px solid var(--accent-4);
	border-radius: var(--radius-2);
	background: var(--color-white);
	color: var(--accent-4);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: var(--font-bold);
	line-height: var(--leading-tight);
	text-align: center;
	text-decoration: none;
	transition:
		background-color var(--duration-normal) ease,
		border-color var(--duration-normal) ease,
		color var(--duration-normal) ease,
		transform var(--duration-fast) ease-out;
}

@media (hover: hover) and (pointer: fine) {
	body.product-page .pdp-buy-col .added_to_cart.wc-forward:hover {
		border-color: var(--accent-4);
		background: var(--surface);
		color: var(--accent-4);
		transform: translateY(-1px);
	}
}

body.product-page .pdp-buy-col .added_to_cart.wc-forward:focus-visible {
	outline: 0;
	box-shadow: var(--focus-ring);
}

body.product-page .pdp-buy-col .added_to_cart.wc-forward:active {
	transform: translateY(1px) scale(.99);
}

/* Usability audit: keep promotional media concise and user-controlled. */
body.shop-page .shop-banner-hero .hero-stage {
	height: calc(clamp(320px, 32vw, 440px) + 56px);
}

body.shop-page .shop-banner-hero .hero-controls {
	min-height: 56px;
}

/* Purchase decisions follow configuration and services before quantity. */
body.product-page .gt-single-product form.cart .quantity {
	order: 0;
}

/* Parent-bound services use a clear route back to the compatible product. */
body.product-page .pdp-associated-purchase {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--space-3) var(--space-4);
	align-items: start;
	padding: var(--space-5);
	border: 1px solid var(--border);
	border-left: 4px solid var(--accent-alt);
	border-radius: var(--radius-2);
	background: var(--surface);
}

body.product-page .pdp-associated-purchase-icon {
	display: grid;
	width: var(--space-9);
	height: var(--space-9);
	place-items: center;
	border-radius: 50%;
	background: var(--color-orange-50);
	color: var(--accent-alt);
	font-size: var(--text-xl);
}

body.product-page .pdp-associated-purchase-copy {
	display: grid;
	gap: var(--space-2);
}

body.product-page .pdp-associated-purchase h2,
body.product-page .pdp-associated-purchase p {
	margin: 0;
}

body.product-page .pdp-associated-purchase h2 {
	color: var(--text-heading);
	font-size: var(--text-lg);
	line-height: var(--leading-snug);
}

body.product-page .pdp-associated-purchase p {
	color: var(--text-primary);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

body.product-page .pdp-associated-purchase > .btn {
	grid-column: 1 / -1;
	justify-self: start;
	width: fit-content;
	margin-top: var(--space-1);
}

/* Variable products present one clear choice before exposing purchase controls. */
body.product-page .variations_form table.variations,
body.product-page .variations_form table.variations tbody {
	display: block;
	width: 100%;
	margin: 0;
}

body.product-page .variations_form table.variations tr {
	display: grid;
	gap: var(--space-2);
}

body.product-page .variations_form table.variations th,
body.product-page .variations_form table.variations td {
	display: block;
	width: 100%;
	padding: 0;
	text-align: left;
}

body.product-page .variations_form table.variations .label label {
	display: block;
	color: var(--text-heading);
	font-size: var(--text-base);
	font-weight: var(--font-bold);
	line-height: var(--leading-snug);
}

body.product-page .variations_form table.variations .value {
	display: block;
}

body.product-page .variations_form table.variations select {
	width: 100%;
	min-height: 48px;
	padding: var(--space-3) var(--space-10) var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-2);
	background-color: var(--color-white);
	color: var(--text-primary);
	font: inherit;
}

body.product-page .variations_form table.variations select:focus-visible {
	border-color: var(--accent-4);
	outline: 3px solid rgba(var(--color-orange-500-rgb), 0.28);
	outline-offset: 2px;
}

body.product-page .variations_form .reset_variations {
	display: none !important;
}

body.product-page .gt-variation-prompt {
	margin: var(--space-3) 0 0;
	padding: var(--space-4);
	border: 1px solid var(--border);
	border-left: 4px solid var(--accent-alt);
	border-radius: var(--radius-2);
	background: var(--surface);
	color: var(--text-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	line-height: var(--leading-body);
}

body.product-page .gt-variation-prompt[hidden],
body.product-page .variations_form .single_variation_wrap[hidden] {
	display: none !important;
}

body.product-page .variations_form .woocommerce-variation-price {
	display: none;
}

body.product-page .variations_form .woocommerce-variation-add-to-cart {
	display: grid;
	gap: var(--space-4);
}

body.product-page .variations_form .single_variation .stock {
	margin: 0 0 var(--space-4);
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-2);
	background: var(--color-neutral-50);
	color: var(--text-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-semibold);
}

@media (min-width: 901px) {
	body.product-page .pdp-gallery-col {
		position: sticky;
		top: calc(var(--space-20) + var(--space-7));
		align-self: start;
	}
}

.gt-cart-account-note {
	margin: 0 0 var(--space-3);
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	font-size: var(--text-sm);
	line-height: var(--leading-body);
}

@media (max-width: 640px) {
	body.home-page .sitemap-hero .hero-arrow,
	body.shop-page .shop-banner-hero .hero-arrow {
		display: none;
	}

	body.shop-page .shop-banner-hero .hero-stage {
		height: clamp(300px, 88vw, 360px);
	}
}

@media (max-width: 360px) {
	body.product-page .pdp-sticky-purchase-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(138px, 1fr);
	}

	body.product-page .pdp-sticky-purchase .btn {
		width: 100%;
		font-size: var(--text-xs);
	}
}

/* Overlay configurable por hero. La legibilidad del texto se sostiene con su sombra propia. */
body .page-hero.image-hero::after,
body.home-page .page-hero.image-hero::after,
body:not(.home-page) .page-hero.image-hero::after {
	background: var(--gt-hero-overlay-color, #02283a);
	opacity: var(--gt-hero-overlay-opacity, .48);
	pointer-events: none;
}

body.home-page .sitemap-hero .hero-slide > .hero-overlay,
body .shop-banner-hero .hero-slide > .shop-banner-overlay {
	background: var(--gt-hero-overlay-color, #02283a);
	opacity: var(--gt-hero-overlay-opacity, .48);
	pointer-events: none;
}

/* Additional purchase options adapt to the width of the buying column. */
body.product-page .glasstech-additionals {
	min-inline-size: 0;
	container: purchase-additionals / inline-size;
}

body.product-page .glasstech-additionals .pdp-installation-addon {
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-6);
	align-items: center;
	padding: var(--space-5) 0;
}

body.product-page .glasstech-additionals .pdp-installation-heading {
	min-width: 0;
	align-items: center;
}

body.product-page .glasstech-additionals .pdp-installation-heading > div {
	min-width: 0;
}

body.product-page .glasstech-additionals .pdp-installation-action-row {
	display: grid;
	grid-template-columns: auto auto;
	gap: var(--space-5);
	align-items: center;
	padding: 0;
	border: 0;
}

body.product-page .glasstech-additionals .pdp-installation-price {
	white-space: nowrap;
}

body.product-page .glasstech-additionals .pdp-installation-toggle {
	gap: var(--space-2);
	width: auto;
	min-height: 44px;
	padding: var(--space-2) var(--space-3);
	font-weight: var(--font-semibold);
}

@container purchase-additionals (max-width: 620px) {
	body.product-page .glasstech-additionals .pdp-installation-addon {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-4);
	}

	body.product-page .glasstech-additionals .pdp-installation-action-row {
		grid-template-columns: minmax(0, 1fr) auto;
		margin-inline-start: calc(var(--space-9) + var(--space-3));
	}
}

@container purchase-additionals (max-width: 340px) {
	body.product-page .glasstech-additionals .pdp-installation-action-row {
		margin-inline-start: 0;
		gap: var(--space-3);
	}
}

.home-page .quote-visual-card .home-quote-heading {
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: var(--text-base);
	line-height: var(--leading-body);
}

/* Product cards use square media and the Glasstech blue action. */
body .product-card > .product-media {
	aspect-ratio: 1 / 1;
	height: auto;
	min-height: 0;
}

body .product-card > .product-media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

body .product-card .product-body > .btn.btn-primary {
	border-color: var(--accent-4) !important;
	background: var(--accent-4) !important;
	color: var(--text-on-dark) !important;
	font-family: var(--font-body);
	text-transform: uppercase;
}

/* Blog cards share the product action and square image format. */
body .blog-card .blog-card-image {
	aspect-ratio: 1 / 1;
}

body .blog-card .blog-card-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body .blog-card .blog-card-body > .btn.btn-primary {
	border-color: var(--accent-4) !important;
	background: var(--accent-4) !important;
	color: var(--text-on-dark) !important;
	font-family: var(--font-body);
	text-transform: uppercase;
}

body:is(.blog-page, .home-page) .blog-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1024px) {
	body:is(.blog-page, .home-page) .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	body:is(.blog-page, .home-page) .blog-grid { grid-template-columns: minmax(0, 1fr); }
}

body.home-page .blog-section .section-heading {
	align-items: center;
	justify-content: center;
	text-align: center;
}

body.home-page .blog-section .section-heading h2 {
	margin-inline: auto;
}

/* Shared interactive states for product and blog card actions. */
body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary {
	transition: background-color var(--duration-normal) var(--ease-standard),
		border-color var(--duration-normal) var(--ease-standard),
		transform var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) and (pointer: fine) {
	body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary:hover:not(:disabled):not(.disabled):not([aria-disabled="true"]) {
		border-color: var(--color-bluegray-700) !important;
		background: var(--color-bluegray-700) !important;
	}
}

body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px var(--color-white);
}

body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary:active:not(:disabled):not(.disabled):not([aria-disabled="true"]) {
	border-color: var(--accent-4) !important;
	background: var(--accent-4) !important;
	box-shadow: inset 0 0 0 2px var(--color-white);
	transform: scale(.97);
}

body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary:is(:disabled, .disabled, [aria-disabled="true"]) {
	border-color: var(--accent-3) !important;
	background: var(--surface) !important;
	color: var(--text-secondary) !important;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

body :is(.product-card > a.product-media, .blog-card > .blog-card-image):focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: -3px;
}

body :is(.product-card .product-body, .blog-card .blog-card-body) h3 a:focus-visible,
body .view-all-link:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
	border-radius: var(--radius-1);
}

body .pdp-installation-toggle:has(input:focus-visible) {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
}

body .pdp-installation-toggle:active:not(:has(input:disabled)) {
	background: rgba(var(--color-orange-500-rgb), .16);
}

body .pdp-installation-toggle:has(input:disabled) {
	opacity: .7;
	cursor: not-allowed;
}

/* Keep carousel dots visible while providing a usable pointer target. */
body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls {
	min-height: 56px;
	gap: 0;
}

body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button,
body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button.is-active {
	position: relative;
	width: 24px;
	height: 44px;
	min-width: 24px;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	transform: none;
}

body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	border-radius: var(--radius-round);
	background: var(--color-bluegray-400);
	transform: translate(-50%, -50%);
	transition: background-color var(--duration-normal) var(--ease-standard);
}

body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button.is-active::before {
	background: var(--accent-alt);
	transform: translate(-50%, -50%);
}

@media (hover: hover) and (pointer: fine) {
	body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button:hover::before {
		background: var(--color-white);
	}
}

body :is(.home-page .sitemap-hero, .shop-banner-hero) :is(.hero-controls button, .hero-arrow):focus-visible {
	outline: 3px solid var(--color-white);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px var(--accent-4);
}

body :is(.home-page .sitemap-hero, .shop-banner-hero) .hero-controls button:active::before {
	background: var(--accent-alt);
}

@media (prefers-reduced-motion: reduce) {
	body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary {
		transition: none;
	}
	body :is(.product-card .product-body, .blog-card .blog-card-body) > .btn.btn-primary:active:not(:disabled):not(.disabled):not([aria-disabled="true"]) {
		transform: none;
	}
}

/* One motion contract for action buttons, independent of color or size. */
body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward) {
	transition: background-color var(--duration-normal) var(--ease-standard),
		color var(--duration-normal) var(--ease-standard),
		border-color var(--duration-normal) var(--ease-standard),
		transform var(--duration-fast) var(--ease-standard) !important;
}

@media (hover: hover) and (pointer: fine) {
	body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward):hover:not(:is(:disabled, .disabled, .btn-disabled, [aria-disabled="true"])) {
		transform: translateY(calc(var(--space-1) / -4)) !important;
		filter: none !important;
	}
}

body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward):focus-visible {
	outline: 3px solid var(--accent-4) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px var(--color-white) !important;
}

body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward):active:not(:is(:disabled, .disabled, .btn-disabled, [aria-disabled="true"])) {
	transform: translateY(calc(var(--space-1) / 4)) scale(.97) !important;
}

body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward):is(:disabled, .disabled, .btn-disabled, [aria-disabled="true"]) {
	transform: none !important;
	filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
	body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward) { transition: none !important; }
	body :is(.btn:not(.btn-icon), .view-all-link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-block-components-button:not(.is-link), .wp-block-button__link, .wp-element-button, .added_to_cart.wc-forward):is(:hover, :active) { transform: none !important; }
}

/* The announcement fits the viewport instead of requiring horizontal scrolling. */
@media (max-width: 980px) {
	body .top-strip .top-strip-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		width: 100%;
		max-width: 100%;
		min-height: 44px;
		gap: var(--space-3);
		padding: var(--space-2) var(--space-3);
		overflow: visible;
		font-size: var(--text-xs);
		line-height: var(--leading-body);
		letter-spacing: var(--tracking-label);
		white-space: normal;
	}

	body .top-strip .top-strip-inner strong {
		min-width: 0;
		text-align: left;
		overflow-wrap: anywhere;
	}

	body .top-strip .top-strip-inner a {
		min-height: 32px;
		padding-inline: var(--space-2);
		font-size: var(--text-xs);
		white-space: nowrap;
	}
}

/* Disclosure labels use the mobile drawer palette rather than the desktop header. */
@media (max-width: 980px) {
	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown > summary,
	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown-panel a {
		color: var(--color-white);
	}

	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown:is([open], .is-active) > summary,
	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown > summary:is(:hover, .is-active),
	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown-panel a:is(:hover, .is-active) {
		color: var(--accent-alt);
	}

	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown > summary:focus-visible,
	body.mobile-menu-open .site-header .header-main .header-nav .nav-dropdown-panel a:focus-visible {
		outline: 2px solid var(--color-white);
		outline-offset: -2px;
	}
}

.home-category-controls { display: none; }
.home-category-controls[hidden] { display: none !important; }

/* Home categories and articles occupy one swipeable row on phones. */
@media (max-width: 640px) {
	body.home-page :is(.home-map-grid[data-category-track], .blog-grid[data-blog-track]) {
		display: flex;
		gap: var(--space-4);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--space-3);
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		padding: var(--space-1) var(--space-3) var(--space-3);
		width: 100%;
		max-width: 100%;
	}
	body.home-page :is(.home-map-grid[data-category-track], .blog-grid[data-blog-track])::-webkit-scrollbar { display: none; }
	body.home-page :is(.home-map-grid[data-category-track], .blog-grid[data-blog-track]) > :is(.category-commerce-card, .blog-card) {
		flex: 0 0 88%;
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	body.home-page .home-map-grid[data-category-track] > .home-empty-state { flex: 1; }
	body.home-page .blog-grid[data-blog-track] > .blog-card { height: auto; align-self: stretch; }
	body.home-page .home-category-controls {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: var(--space-4);
		margin-top: var(--space-3);
	}
	body.home-page .home-category-controls .btn-icon {
		width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0;
		border: 1px solid var(--accent-4);
		border-radius: var(--radius-round);
		background: var(--color-white);
		color: var(--accent-4);
	}
	body.home-page .home-category-controls .btn-icon:hover:not(:disabled) { background: var(--accent-4); color: var(--color-white); }
	body.home-page .home-category-controls .btn-icon:active:not(:disabled) { transform: scale(.97); }
	body.home-page .home-category-controls .btn-icon:disabled { opacity: .4; cursor: default; }
	body.home-page .home-category-controls .btn-icon:focus-visible,
	body.home-page :is(.home-map-grid[data-category-track], .blog-grid[data-blog-track]):focus-visible { outline: 2px solid var(--accent-4); outline-offset: 3px; }
	body.home-page .home-category-position { color: var(--accent-4); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
}

@media (prefers-reduced-motion: reduce) {
	body.home-page .home-category-controls .btn-icon:active { transform: none; }
}

.service-request-form { margin-top: var(--space-6); }
.service-request-form h3 { margin-bottom: var(--space-4); font-size: var(--text-lg); }
.service-hubspot-iframe { display: block; width: 100%; border: 0; }

/* Global WhatsApp entry, including checkout and mobile safe areas. */
body .whatsapp-float {
	display: grid;
	right: calc(var(--space-5) + env(safe-area-inset-right));
	bottom: calc(var(--space-5) + env(safe-area-inset-bottom));
}

body .whatsapp-float:focus-visible {
	outline: 3px solid var(--accent-4);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px var(--color-white);
}

body .whatsapp-float:active { transform: scale(.97); }

@media (prefers-reduced-motion: reduce) {
	body .whatsapp-float { transition: none; }
	body .whatsapp-float:is(:hover, :active) { transform: none; }
}
