/* CD PRODUCTS */
.cd-products { background: var(--cd-surface); padding: var(--cd-space-2xl) var(--cd-gutter); }
.cd-products__header, .cd-products__filters, .cd-products__grid { width: min(100%, var(--cd-container)); margin-inline: auto; }
.cd-products__header { margin-bottom: var(--cd-space-md); text-align: center; }
.cd-products__header::before { content: ''; display: block; width: 32px; height: 1px; margin: 0 auto var(--cd-space-md); background: var(--cd-accent); }
.cd-products__title { margin-bottom: var(--cd-space-xs); font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 300; }
.cd-products__subtitle { color: var(--cd-text-muted); font-size: 0.9rem; font-weight: 300; }
.cd-products__filters { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; margin-bottom: var(--cd-space-lg); }
.cd-products__filter-label { margin-right: 0.25rem; color: var(--cd-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.cd-products__filter { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 38px; padding: 0.5rem 1rem; border: 1px solid var(--cd-border); border-radius: var(--cd-radius-pill); background: var(--cd-surface); color: var(--cd-text-muted); font-size: 0.78rem; transition: background var(--cd-transition), border-color var(--cd-transition), color var(--cd-transition); }
.cd-products__filter:hover, .cd-products__filter.is-active, .cd-products__filter[aria-pressed='true'] { border-color: var(--cd-text); background: var(--cd-text); color: var(--cd-bg); }
.cd-products__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: var(--cd-space-md); }
.cd-product-card { display: flex; flex-direction: column; overflow: hidden; background: var(--cd-bg); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-lg); transition: transform 300ms var(--cd-ease-spring), box-shadow var(--cd-transition), border-color var(--cd-transition); }
.cd-product-card:hover, .cd-product-card:focus-within { transform: translateY(-6px) scale(1.01); border-color: color-mix(in srgb, var(--cd-accent) 30%, var(--cd-border)); box-shadow: var(--cd-shadow-lg); }
.cd-product-card__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #ede9e3; }
.cd-product-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--cd-ease); }
.cd-product-card:hover .cd-product-card__image, .cd-product-card:focus-within .cd-product-card__image { transform: scale(1.06); }
.cd-product-card__badge { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.32rem 0.625rem; border-radius: var(--cd-radius-md); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; backdrop-filter: blur(6px); animation: cd-scale-in 300ms var(--cd-ease) both; }
.cd-product-card__badge--top-right { top: 0.75rem; right: 0.75rem; }
.cd-product-card__badge--top-left { top: 0.75rem; left: 0.75rem; }
.cd-product-card__badge--popular { background: rgb(250 249 247 / 0.92); color: #7a6240; border: 1px solid rgb(196 168 130 / 0.4); }
.cd-product-card__badge--saves { background: rgb(255 245 235 / 0.92); color: #b5784a; border: 1px solid rgb(181 120 74 / 0.3); }
.cd-product-card__badge--budget { background: rgb(240 248 240 / 0.92); color: #4a7c59; border: 1px solid rgb(74 124 89 / 0.3); }
.cd-product-card__badge--premium { background: rgb(245 240 255 / 0.92); color: #6b5fa3; border: 1px solid rgb(107 95 163 / 0.3); }
.cd-product-card__network { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 2; padding: 0.25rem 0.5rem; border-radius: var(--cd-radius-md); background: rgb(250 249 247 / 0.88); color: var(--cd-text-muted); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; backdrop-filter: blur(4px); }
.cd-product-card__body { display: flex; flex: 1; flex-direction: column; padding: var(--cd-space-md); }
.cd-product-card__title { margin-bottom: 0.35rem; color: var(--cd-text); font-family: var(--cd-font-sans); font-size: 0.92rem; font-weight: 500; line-height: 1.4; }
.cd-product-card__merchant, .cd-product-card__rating-count { color: var(--cd-text-muted); font-size: 0.72rem; }
.cd-product-card__rating { display: flex; align-items: center; gap: 0.125rem; margin-top: 0.4rem; }
.cd-product-card__rating svg { width: 13px; height: 13px; }
.cd-product-card__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--cd-space-sm); margin-top: auto; padding-top: var(--cd-space-md); }
.cd-product-card__price { color: var(--cd-text); font-family: var(--cd-font-serif); font-size: 1.3rem; font-weight: 400; }
.cd-product-card__price sup { font-size: 0.7em; vertical-align: super; }
.cd-product-card__link { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 38px; padding: 0.56rem 1rem; border-radius: var(--cd-radius-pill); background: var(--cd-text); color: var(--cd-bg); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; transition: background var(--cd-transition), transform var(--cd-transition); }
.cd-product-card__link:hover { background: var(--cd-accent-dark); transform: translateX(2px); }
.cd-product-card__scene { position: absolute; right: 0.75rem; bottom: 0.75rem; z-index: 3; display: inline-flex; align-items: center; gap: 0.35rem; min-height: 38px; padding: 0.5rem 0.75rem; border: 0; border-radius: var(--cd-radius-pill); background: rgb(26 25 22 / 0.72); color: var(--cd-white); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; opacity: 0; transform: translateY(6px); transition: opacity var(--cd-transition), transform var(--cd-transition), background var(--cd-transition); backdrop-filter: blur(8px); }
.cd-product-card:hover .cd-product-card__scene, .cd-product-card__scene:focus-visible { opacity: 1; transform: translateY(0); }
.cd-product-card__scene:hover { background: rgb(26 25 22 / 0.88); }
@media (max-width: 640px) { .cd-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cd-space-sm); } .cd-product-card__body { padding: var(--cd-space-sm); } .cd-product-card__title { font-size: 0.82rem; } .cd-products__filter-label { display: none; } }
@media (max-width: 380px) { .cd-products__grid { grid-template-columns: 1fr; } }
