.ca-products-main { background: #f7f8fa; min-height: 100vh; padding: 152px 0 80px; }
.ca-products-breadcrumb { align-items: center; color: #616b7d; display: flex; flex-wrap: wrap; font-size: 14px; gap: 8px; }
.ca-products-breadcrumb a { color: #616b7d; text-decoration: none; transition: color .2s; }
.ca-products-breadcrumb a:hover { color: #e01f44; }
.ca-products-breadcrumb span.ca-crumb-sep { color: #9ba3b2; display: inline-flex; line-height: 0; }
.ca-products-breadcrumb strong { color: #191c24; font-weight: 400; }
.ca-crumb-brand { align-items: center; display: inline-flex; gap: 8px; }
.ca-crumb-brand[hidden] { display: none; }
.ca-products-heading { align-items: flex-end; display: flex; gap: 24px; justify-content: space-between; margin-top: 24px; }
.ca-products-heading h1 { color: #191c24; font-family: Sora,sans-serif; font-size: clamp(28px,3.5vw,42px); font-weight: 700; line-height: 1.1; margin: 0; }
.ca-products-heading p { color: #616b7d; font-size: 14px; margin: 8px 0 0; }
.ca-products-controls { align-items: center; display: flex; gap: 12px; }
.ca-products-heading label { align-items: center; display: flex; gap: 12px; }
.ca-products-heading label > span { color: #616b7d; font-size: 14px; }
.ca-products-heading select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ba3b2' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center/16px no-repeat; border: 1px solid #dfe3ea; border-radius: 20px; color: #191c24; cursor: pointer; font-size: 14px; font-weight: 600; min-height: 42px; padding: 10px 40px 10px 16px; }
.ca-products-heading select:focus { border-color: #e01f44; outline: 2px solid rgba(224,31,68,.18); }

.ca-products-layout { display: flex; gap: 40px; margin-top: 32px; }
.ca-product-filters { display: flex; flex: 0 0 260px; flex-direction: column; gap: 12px; width: 260px; }
.ca-product-filters__body { display: flex; flex-direction: column; gap: 12px; }
.ca-product-filters__header,
.ca-product-filters__footer,
.ca-product-filters__scrim,
.ca-mobile-filter-trigger { display: none; }
.ca-filter-group { background: #fff; border: 1px solid #dfe3ea; border-radius: 12px; padding: 16px; }
.ca-filter-group > button { align-items: center; background: none; border: 0; color: #191c24; cursor: pointer; display: flex; font-size: 15px; font-weight: 600; justify-content: space-between; padding: 0; width: 100%; }
.ca-filter-group > button > svg { color: #9ba3b2; flex: 0 0 18px; transition: transform .26s ease; }
.ca-filter-group.is-open > button > svg { transform: rotate(180deg); }
.ca-filter-group > div { display: flex; flex-direction: column; gap: 10px; margin-top: 0; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .26s ease, margin-top .26s ease, opacity .2s ease, visibility 0s linear .26s; visibility: hidden; }
.ca-filter-group.is-open > div { margin-top: 16px; opacity: 1; visibility: visible; transition-delay: 0s; }
.ca-filter-group.is-initializing > button > svg, .ca-filter-group.is-initializing > div { transition: none !important; }
.ca-filter-group label { align-items: center; cursor: pointer; display: flex; gap: 10px; position: relative; }
.ca-filter-group input { height: 18px; left: 0; opacity: 0; position: absolute; top: 0; width: 18px; }
.ca-filter-group label > i { align-items: center; background: #fff; border: 1px solid #c4cad6; border-radius: 4px; display: flex; height: 18px; justify-content: center; position: relative; width: 18px; }
.ca-filter-group label > i::after { border: solid #fff; border-width: 0 2px 2px 0; content: ""; height: 8px; opacity: 0; transform: rotate(45deg) translate(-1px,-1px); width: 4px; }
.ca-filter-group input:checked + i { background: #e01f44; border-color: #e01f44; }
.ca-filter-group input:checked + i::after { opacity: 1; }
.ca-filter-group input:focus-visible + i { outline: 2px solid #e01f44; outline-offset: 2px; }
.ca-filter-group label > span { color: #191c24; font-size: 14px; }
.ca-filter-group label > small { color: #9ba3b2; font-size: 12px; }

.ca-products-results { flex: 1; min-width: 0; }
.ca-active-filters { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ca-active-filters[hidden] { display: none; }
.ca-active-filters button { align-items: center; background: #edeff3; border: 0; border-radius: 999px; color: #191c24; cursor: pointer; display: inline-flex; font-size: 13px; font-weight: 600; gap: 7px; padding: 6px 10px 6px 12px; }
.ca-active-filters button::after { color: #616b7d; content: "×"; font-size: 17px; font-weight: 400; line-height: 1; }
.ca-active-filters .ca-clear-all { background: transparent; color: #e01f44; padding-left: 4px; }
.ca-active-filters .ca-clear-all::after { display: none; }
.ca-active-filters .ca-clear-all:hover { text-decoration: underline; }
.ca-products-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); }
.ca-product-card[hidden] { display: none; }
.ca-product-card button { background: transparent; border: 0; color: #191c24; cursor: pointer; display: block; padding: 0; text-align: left; width: 100%; }
.ca-product-card strong { display: block; font-size: 14px; font-weight: 400; margin-top: 12px; }
.ca-catalog-notice, .ca-products-empty { background: #fff; border: 1px solid #dfe3ea; border-radius: 16px; margin-bottom: 24px; padding: 40px; text-align: center; }
.ca-catalog-notice h2, .ca-products-empty h2 { color: #191c24; font-family: Sora,sans-serif; font-size: 20px; font-weight: 700; margin: 0; }
.ca-catalog-notice p, .ca-products-empty p { color: #616b7d; font-size: 14px; line-height: 1.6; margin: 8px auto 0; max-width: 560px; }
.ca-products-empty { margin: 0; padding: 80px 24px; }
.ca-products-empty[hidden] { display: none; }
.ca-products-empty button { background: #e01f44; border: 0; border-radius: 999px; color: #fff; cursor: pointer; font-size: 14px; font-weight: 600; margin-top: 24px; min-height: 48px; padding: 12px 24px; }
.ca-products-more { display: flex; justify-content: center; margin-top: 40px; }
.ca-products-more[hidden] { display: none; }
.ca-products-more button { background: #e01f44; border: 0; border-radius: 999px; color: #fff; cursor: pointer; font-size: 14px; font-weight: 600; min-height: 48px; padding: 12px 28px; }

@keyframes ca-products-card-enter {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.ca-product-card.is-entering { animation: ca-products-card-enter .4s ease-out both; }

@media (max-width: 1023px) {
  .ca-products-layout { flex-direction: column; }
  /* O layout aprovado empilha os grupos de filtro em largura total. */
  .ca-product-filters { flex: none; width: 100%; }
}

@media (max-width: 767px) {
  .ca-products-main { padding-top: 136px; }
  .ca-products-heading { align-items: flex-start; flex-direction: column; }
	.ca-products-controls { width: 100%; }
  .ca-products-heading label { flex: 1; justify-content: space-between; min-width: 0; }
  .ca-products-heading select { flex: 1; min-width: 0; }
	.ca-mobile-filter-trigger {
		align-items: center;
		background: #fff;
		border: 1px solid #dfe3ea;
		border-radius: 999px;
		color: #191c24;
		cursor: pointer;
		display: inline-flex;
		flex: 0 0 auto;
		font-size: 14px;
		font-weight: 600;
		gap: 8px;
		min-height: 48px;
		padding: 10px 16px;
		position: relative;
	}
	.ca-mobile-filter-trigger [data-active-filter-count] {
		align-items: center;
		background: #e01f44;
		border-radius: 50%;
		color: #fff;
		display: flex;
		font-size: 11px;
		height: 18px;
		justify-content: center;
		line-height: 1;
		position: absolute;
		right: -5px;
		top: -5px;
		width: 18px;
	}
	.ca-mobile-filter-trigger [data-active-filter-count][hidden] { display: none; }
	.ca-product-filters__scrim {
		background: rgba(18,20,26,.6);
		display: block;
		inset: 0;
		opacity: 0;
		position: fixed;
		transition: opacity .3s cubic-bezier(.22,1,.36,1);
		z-index: 99997;
	}
	.ca-product-filters__scrim[hidden] { display: none; }
	.ca-product-filters__scrim.is-open { opacity: 1; }
	.ca-product-filters {
		background: #fff;
		bottom: 0;
		box-shadow: -16px 0 48px rgba(0,0,0,.25);
		display: flex;
		gap: 0;
		height: 100%;
		max-width: 360px;
		opacity: 0;
		position: fixed;
		right: 0;
		top: 0;
		transform: translateX(100%);
		transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .3s cubic-bezier(.22,1,.36,1);
		visibility: hidden;
		width: 88vw;
		z-index: 99998;
	}
	.ca-product-filters.is-open { opacity: 1; transform: translateX(0); visibility: visible; }
	.ca-product-filters__header {
		align-items: center;
		border-bottom: 1px solid #edeff3;
		display: flex;
		flex: 0 0 auto;
		justify-content: space-between;
		padding: 16px 20px;
	}
	.ca-product-filters__header strong { color: #191c24; font-family: Sora,sans-serif; font-size: 20px; }
	.ca-product-filters__header button {
		align-items: center;
		background: transparent;
		border: 0;
		border-radius: 50%;
		color: #191c24;
		cursor: pointer;
		display: flex;
		font-size: 26px;
		height: 40px;
		justify-content: center;
		line-height: 1;
		width: 40px;
	}
	.ca-product-filters__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 20px; }
	.ca-product-filters__footer {
		align-items: center;
		border-top: 1px solid #edeff3;
		display: flex;
		flex: 0 0 auto;
		gap: 12px;
		justify-content: space-between;
		padding: 16px;
	}
	.ca-product-filters__footer button { background: transparent; border: 0; color: #e01f44; cursor: pointer; font-size: 14px; font-weight: 600; }
	.ca-product-filters__footer [data-mobile-filter-apply] { background: #e01f44; border-radius: 999px; color: #fff; min-height: 48px; padding: 10px 20px; }
	body.ca-filter-panel-open { overflow: hidden; }
	.ca-products-grid { column-gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 24px; }
}

@media (max-width: 479px) {
	.ca-products-heading label > span { display: none; }
	.ca-products-heading select { width: 100%; }
}
