/**
 * Regras estruturais discretas. O layout continua sob controle do Elementor.
 */
:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--aboi-color-iris-blue);
	outline-offset: 2px;
}

::selection {
	background: var(--aboi-color-primary);
	color: var(--aboi-color-white);
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	border-color: var(--aboi-color-primary);
	border-radius: var(--aboi-radius-md);
}

.woocommerce-error {
	border-color: var(--aboi-color-magenta);
}

/* Catálogos ABOI criados no Elementor. */
.aboi-catalog-hero {
	background: var(--aboi-color-primary-mist);
	border-bottom: 1px solid var(--aboi-color-border);
}

.aboi-catalog-hero .elementor-widget-text-editor {
	max-width: 900px;
}

.aboi-products-section {
	background: var(--aboi-color-white);
}

.aboi-products-section > .e-con-inner,
.aboi-features-section > .e-con-inner {
	gap: var(--aboi-space-6);
}

.aboi-features-section {
	border-top: 1px solid var(--aboi-color-border);
	border-bottom: 1px solid var(--aboi-color-border);
}

.aboi-feature-grid > .e-con-inner {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--aboi-space-4) !important;
}

.aboi-feature-card.elementor-widget-icon-box {
	min-width: 0;
	margin: 0;
	padding: var(--aboi-space-6);
	background: var(--aboi-color-paper);
	border: 1px solid var(--aboi-color-border);
	border-top: 3px solid var(--aboi-color-iris-blue);
	border-radius: var(--aboi-radius-md);
}

.aboi-feature-card .elementor-icon {
	font-size: 22px !important;
}

.aboi-feature-card .elementor-icon-box-icon {
	margin-bottom: var(--aboi-space-3) !important;
}

.aboi-feature-card .elementor-icon-box-title {
	margin: 0 !important;
	color: var(--aboi-color-primary) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
}

.aboi-product-card {
	height: 100%;
	overflow: hidden;
	background: var(--aboi-color-white);
	border: 1px solid var(--aboi-color-border);
	border-radius: var(--aboi-radius-md);
	box-shadow: var(--aboi-shadow-overlay);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.aboi-product-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgb(28 68 99 / 14%);
}

.aboi-product-card__image {
	display: flex;
	min-height: 220px;
	align-items: center;
	justify-content: center;
	padding: var(--aboi-space-6);
	background: var(--aboi-color-primary-mist);
}

.aboi-product-card__image img {
	width: 100% !important;
	height: 172px !important;
	object-fit: contain !important;
}

.aboi-product-card .elementor-button {
	min-height: 44px;
	justify-content: center;
	transition: background-color 180ms ease, transform 180ms ease;
}

.aboi-product-card .elementor-button:hover {
	background: var(--aboi-color-primary-deep) !important;
}

.aboi-products-section .elementor-loop-container {
	align-items: stretch;
}

.aboi-catalog-filters {
	margin: 0 0 var(--aboi-space-8);
	padding: var(--aboi-space-6);
	background: var(--aboi-color-paper);
	border: 1px solid var(--aboi-color-border);
	border-radius: var(--aboi-radius-md);
}

.aboi-filter-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--aboi-space-4);
	margin-bottom: var(--aboi-space-4);
}

.aboi-filter-heading strong,
.aboi-filter-heading span {
	display: block;
}

.aboi-filter-heading strong {
	color: var(--aboi-color-primary);
	font-size: 18px;
}

.aboi-filter-heading span {
	margin-top: var(--aboi-space-1);
	color: var(--aboi-color-graphite);
	font-size: 14px;
}

.aboi-filter-heading a {
	color: var(--aboi-color-iris-blue);
	font-size: 14px;
	font-weight: 600;
}

.aboi-filter-controls {
	display: grid;
	grid-template-columns: minmax(200px, 1.5fr) repeat(4, minmax(140px, 1fr)) auto;
	align-items: end;
	gap: var(--aboi-space-3);
}

.aboi-filter-field span {
	display: block;
	margin-bottom: 6px;
	color: var(--aboi-color-primary);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.aboi-filter-field :is(input, select) {
	width: 100%;
	min-height: 44px;
	padding: 9px 12px;
	color: var(--aboi-color-ink);
	background: var(--aboi-color-white);
	border: 1px solid var(--aboi-color-border);
	border-radius: var(--aboi-radius-md);
}

.aboi-filter-controls button {
	min-height: 44px;
	padding: 10px 18px;
	color: var(--aboi-color-white);
	background: var(--aboi-color-primary);
	border: 1px solid var(--aboi-color-primary);
	border-radius: var(--aboi-radius-md);
	font-weight: 600;
}

.aboi-filter-controls button:hover {
	background: var(--aboi-color-primary-deep);
}

/* Home refinada. Blocos demonstrativos permanecem no Elementor, mas ocultos. */
.aboi-home-section-pending,
.aboi-home-data-pending {
	display: none !important;
}

.aboi-home-categories,
.aboi-home-courses,
.aboi-home-about,
.aboi-home-faq,
.aboi-home-blog {
	overflow: hidden;
}

.aboi-home-categories,
.aboi-home-about,
.aboi-home-blog {
	background: var(--aboi-color-paper);
}

.aboi-home-cta {
	background-color: var(--aboi-color-primary);
}

/* Single Product ABOI. */
.aboi-single-breadcrumb {
	border-bottom: 1px solid var(--aboi-color-border);
}

.aboi-single-hero {
	background: var(--aboi-color-paper);
	border-bottom: 1px solid var(--aboi-color-border);
}

.aboi-single-image {
	overflow: hidden;
	padding: var(--aboi-space-8);
	background: var(--aboi-color-primary-mist);
	border: 1px solid var(--aboi-color-border);
	border-radius: var(--aboi-radius-md);
}

.aboi-single-image :is(.woocommerce-product-gallery, .woocommerce-product-gallery__wrapper) {
	margin: 0 !important;
}

.aboi-single-image img {
	max-height: 430px;
	object-fit: contain;
}

.aboi-product-category-badge {
	display: inline-flex;
	padding: 6px 10px;
	color: var(--aboi-color-primary);
	background: var(--aboi-color-primary-mist);
	border-left: 3px solid var(--aboi-color-iris-blue);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.aboi-single-summary .woocommerce-product-details__short-description {
	color: var(--aboi-color-graphite);
	font-size: 18px;
	line-height: 1.65;
}

.aboi-single-content-grid {
	align-items: flex-start;
}

.aboi-single-main-copy > .e-con-inner,
.aboi-single-main-copy {
	gap: var(--aboi-space-8);
}

.aboi-single-main-copy .woocommerce-product-details__short-description,
.aboi-single-main-copy .woocommerce-product-content {
	color: var(--aboi-color-graphite);
	font-size: 16px;
	line-height: 1.7;
}

.aboi-product-detail-sections section {
	padding: var(--aboi-space-8) 0;
	border-top: 1px solid var(--aboi-color-border);
}

.aboi-product-detail-sections h2 {
	margin: 0 0 var(--aboi-space-3);
	color: var(--aboi-color-primary);
	font-size: 26px;
	line-height: 1.25;
}

.aboi-product-detail-sections p {
	margin: 0;
	color: var(--aboi-color-graphite);
	line-height: 1.7;
}

.aboi-information-pending {
	font-style: italic;
}

.aboi-single-purchase-card {
	position: sticky;
	top: 32px;
	padding: var(--aboi-space-8);
	background: var(--aboi-color-primary);
	border-radius: var(--aboi-radius-md);
	box-shadow: var(--aboi-shadow-overlay);
}

.aboi-single-purchase-card :is(h2, h3, p, .price, label) {
	color: var(--aboi-color-white) !important;
}

.aboi-product-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
}

.aboi-product-facts div {
	padding: var(--aboi-space-4) 0;
	border-bottom: 1px solid rgb(255 255 255 / 18%);
}

.aboi-product-facts div:nth-child(odd) {
	padding-right: var(--aboi-space-4);
}

.aboi-product-facts dt {
	margin-bottom: 4px;
	color: rgb(255 255 255 / 70%);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.aboi-product-facts dd {
	margin: 0;
	color: var(--aboi-color-white);
	font-size: 15px;
	font-weight: 600;
}

.aboi-single-purchase-card .elementor-widget-woocommerce-product-price {
	margin-top: var(--aboi-space-6);
}

.aboi-single-purchase-card .cart :is(button, .button),
.aboi-single-purchase-card .elementor-button {
	width: 100%;
	min-height: 48px;
	justify-content: center;
	color: var(--aboi-color-primary) !important;
	background: var(--aboi-color-white) !important;
	border-radius: var(--aboi-radius-md) !important;
	font-weight: 700;
}

.aboi-enrollment-pending {
	margin-top: var(--aboi-space-6);
	padding: var(--aboi-space-4);
	background: rgb(255 255 255 / 10%);
	border-left: 3px solid var(--aboi-color-lime);
}

.aboi-enrollment-pending strong,
.aboi-enrollment-pending span {
	display: block;
	color: var(--aboi-color-white);
}

.aboi-enrollment-pending span {
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.5;
	opacity: 0.82;
}

@media (max-width: 900px) {
	.aboi-single-content-grid {
		flex-direction: column !important;
	}

	.aboi-single-main-copy,
	.aboi-single-aside {
		width: 100% !important;
	}

	.aboi-single-purchase-card {
		position: static;
	}
}

@media (max-width: 767px) {
	.aboi-catalog-hero,
	.aboi-products-section,
	.aboi-features-section {
		padding-right: 20px !important;
		padding-left: 20px !important;
	}

	.aboi-product-facts {
		grid-template-columns: 1fr;
	}

	.aboi-product-facts div:nth-child(odd) {
		padding-right: 0;
	}
}

@media (max-width: 1024px) {
	.aboi-feature-grid > .e-con-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.aboi-filter-controls {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.aboi-feature-grid > .e-con-inner {
		grid-template-columns: 1fr;
	}

	.aboi-feature-card.elementor-widget-icon-box {
		padding: var(--aboi-space-4);
	}

	.aboi-filter-heading {
		flex-direction: column;
	}

	.aboi-filter-controls {
		grid-template-columns: 1fr;
	}
}
