.viewHidden { display: none !important; }
.catalogMode footer { display: none; }
.catalogView { padding: 1rem 3.2vw 2rem; min-height: calc(100svh - var(--header)); background: #f1f1ed; }
.catalogTop { padding-bottom: 1.5rem; border-bottom: 1px solid #b9b9b4; }
.catalogTop .sectionIndex { margin: 1.3rem 0 .65rem; }
.catalogTop h2 { font-size: clamp(3.2rem, 5.2vw, 6rem); }
.catalogTop h2 span { -webkit-text-stroke: 1.5px var(--black); }
.backLink { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.catalogLayout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 2.8vw; padding-top: 1.25rem; }
.filterSidebar { position: sticky; top: 1.5rem; height: max-content; padding-right: 1.5rem; border-right: 1px solid #c4c4bf; }
.filterHeader { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2rem; }
.filterHeader h3 { font-family: "Archivo Black"; font-size: 1.15rem; text-transform: uppercase; margin: 0; }
.clearFilters { border: 0; background: none; padding: 0; color: #777; font-size: .66rem; text-decoration: underline; cursor: pointer; }
.filterSidebar fieldset { border: 0; border-top: 1px solid #c4c4bf; margin: 0; padding: 1.5rem 0; }
.filterSidebar legend { padding: 1.5rem 0 0; font-size: .65rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 800; }
.filterSidebar label { display: flex; align-items: center; gap: 9px; min-height: 32px; font-size: .72rem; cursor: pointer; }
.filterSidebar label span { display: flex; align-items: center; gap: 8px; flex: 1; }
.filterSidebar label b { font-weight: 500; color: #8a8a85; font-size: .62rem; }
.filterSidebar input { accent-color: var(--red); }
.colorDot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; border: 1px solid #aaa; }
.colorDot.black { background: #101010; }
.colorDot.white { background: #fff; }
.colorDot.gray { background: #999; }
.colorDot.blue { background: #263c59; }
.filterHelp { background: var(--black); color: #fff; padding: 1.2rem; margin-top: 1.5rem; }
.filterHelp p { font-size: .72rem; line-height: 1.45; margin: 0 0 .8rem; }
.filterHelp a { font-size: .68rem; font-weight: 800; color: #ff4c51; }
.resultsBar { display: flex; justify-content: space-between; align-items: center; padding: 0 0 1.2rem; }
.resultsBar p { margin: 0; font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }
.mobileFilterButton { display: none; }
.catalogView .productGrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1rem; }
.catalogView .product { min-width: 0; }
.catalogView .productMedia { height: auto; aspect-ratio: 3 / 4; background: #fff; }
.catalogView .productMedia img { object-fit: cover; filter: grayscale(.35); }
.catalogView .productMedia span { top: 10px; left: 10px; }
.productImageMissing { display: grid; place-items: center; width: 100%; height: 100%; margin: 0; padding: 1.25rem; color: #777; font-size: .7rem; text-align: center; text-transform: uppercase; letter-spacing: .1em; }
.catalogView .productInfo { display: block; padding: 1rem 0; border-bottom: 1px solid #aaa; }
.catalogView .productInfo > p { margin: 0 0 .4rem; font-size: .58rem; text-transform: uppercase; letter-spacing: .13em; color: #71716d; }
.catalogView .productInfo h3 { font-family: "Archivo Black"; font-size: 1rem; text-transform: uppercase; line-height: 1.05; margin: 0 0 1rem; }
.productPrice { display: block; margin: -0.45rem 0 1rem; color: var(--black); font-size: .76rem; font-weight: 800; }
.productPrice--consult { color: #666; font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.productMeta { display: grid; gap: .28rem; color: #666; font-size: .62rem; }
.productMeta span:last-child { line-height: 1.45; }
.catalogView .productAction { width: max-content; height: auto; border: 0; border-radius: 0; border-bottom: 1px solid; margin-top: 1rem; padding: 0 0 4px; display: inline-block; font-size: .66rem; font-weight: 800; }
.catalogView .productAction:hover { background: none; color: var(--red); border-color: var(--red); transform: none; }
.productOpen { cursor: pointer; }
.productOpen:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.productDetail[hidden], .catalogCart[hidden] { display: none; }
.productDetail { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 24px; }
.productDetailBackdrop { position: absolute; inset: 0; background: rgba(8, 8, 8, .7); backdrop-filter: blur(4px); }
.productDetailPanel { position: relative; width: min(970px, 100%); max-height: min(760px, calc(100svh - 48px)); overflow: auto; background: #f5f5f0; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.detailClose { position: absolute; z-index: 1; top: 12px; right: 12px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--black); color: #fff; font-size: 1.5rem; cursor: pointer; }
.detailMain { display: grid; grid-template-columns: 1fr 1fr; }
.detailImage { min-height: 500px; background: #fff; }
.detailImage img { display: block; width: 100%; height: 100%; object-fit: contain; }
.detailImage p { display: grid; min-height: 500px; place-items: center; color: #777; text-transform: uppercase; font-size: .7rem; }
.detailInfo { padding: 64px clamp(24px, 4vw, 58px) 36px; }
.detailType, .detailRecommendations > p { margin: 0 0 12px; color: var(--red); font-weight: 800; font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.detailInfo h2 { margin: 0; font-family: "Archivo Black"; font-size: clamp(2rem, 3.2vw, 3.3rem); line-height: .98; text-transform: uppercase; }
.detailDescription { line-height: 1.6; color: #666; }
.detailPrice { margin: 26px 0; font-family: "Archivo Black"; font-size: 1.25rem; }
.detailOptions { border: 0; border-top: 1px solid #bbb; margin: 18px 0 0; padding: 17px 0 0; }
.detailOptions legend { font-weight: 800; font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; }
.colorChoices, .sizeChoices { display: flex; flex-wrap: wrap; gap: 8px; }
.colorChoices button, .sizeChoices button { min-height: 34px; border: 1px solid #bbb; background: transparent; padding: 7px 10px; font: inherit; font-size: .68rem; cursor: pointer; }
.colorChoices button { display: flex; align-items: center; gap: 7px; }
.colorChoices i { width: 14px; height: 14px; border: 1px solid #999; border-radius: 50%; }
.colorChoices button.selected, .sizeChoices button.selected { border-color: var(--black); background: var(--black); color: #fff; }
.sizeChoices button:disabled { cursor: not-allowed; opacity: .3; text-decoration: line-through; }
.detailAdd { display: flex; align-items: end; gap: 10px; margin-top: 28px; }
.detailAdd label { display: grid; gap: 5px; font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.detailAdd input { width: 70px; min-height: 42px; border: 1px solid #999; padding: 8px; font: inherit; }
.detailAdd button, .cartWhatsapp { min-height: 42px; border: 0; background: var(--red); color: #fff; padding: 0 16px; font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
.detailRecommendations { padding: 24px clamp(24px, 4vw, 58px) 32px; border-top: 1px solid #bbb; }
.detailRecommendations > div { display: flex; flex-wrap: wrap; gap: 8px; }
.detailRecommendations button { border: 1px solid #bbb; background: transparent; padding: 10px 13px; text-align: left; font: inherit; font-size: .7rem; font-weight: 800; cursor: pointer; }
.detailRecommendations button span { display: block; margin-top: 4px; color: #777; font-size: .6rem; font-weight: 500; }
.catalogCart { position: fixed; z-index: 20; top: calc(var(--header) + 12px); right: 16px; display: grid; width: min(360px, calc(100vw - 32px)); justify-items: end; }
.cartToggle { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 142px; height: 52px; border: 1px solid var(--black); border-radius: 999px; padding: 0 21px 0 18px; background: var(--black); box-shadow: 0 7px 18px rgba(0,0,0,.16); color: #fff; cursor: pointer; font: inherit; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; }
.cartToggle::after { content: "MI PEDIDO"; font-size: .61rem; font-weight: 800; letter-spacing: .12em; }
.cartToggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; transition: transform .18s ease; }
.cartToggle:hover { background: #fff; box-shadow: 0 10px 22px rgba(0,0,0,.2); color: var(--black); transform: translateY(-2px); }
.cartToggle:hover svg { transform: translateX(-2px); }
.cartToggle:active { box-shadow: 0 3px 9px rgba(0,0,0,.16); transform: translateY(1px) scale(.98); }
.cartToggle:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.cartToggle b { position: absolute; top: -5px; right: -2px; display: grid; place-items: center; min-width: 22px; height: 22px; border: 2px solid #f1f1ed; border-radius: 50%; padding: 0 2px; background: var(--red); box-shadow: 0 3px 8px rgba(0,0,0,.18); color: #fff; font-size: .61rem; font-weight: 800; line-height: 1; }
.catalogCart.open .cartToggle { background: #fff; color: var(--black); box-shadow: 0 10px 22px rgba(0,0,0,.2); }
.cartPanel { display: none; width: 100%; box-sizing: border-box; margin-top: 8px; padding: 16px; background: #f5f5f0; box-shadow: 0 14px 40px rgba(0,0,0,.22); }
.catalogCart.open .cartPanel { display: block; }
.cartHeading { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #bbb; padding-bottom: 10px; }
.cartHeading h2 { margin: 0; font-family: "Archivo Black"; font-size: 1rem; text-transform: uppercase; }.cartClose { border: 0; background: none; font-size: 1.3rem; cursor: pointer; }
.cartItem { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid #d0d0cb; }.cartItemImage { display: block; width: 54px; height: 54px; object-fit: cover; background: #ddd; }.cartItemImageMissing { background: #e0e0db; }.cartItem b, .cartItem span, .cartItem small { display: block; }.cartItem b { font-size: .72rem; }.cartItem span, .cartItem small, .cartEmpty, .cartTotal { margin-top: 4px; color: #666; font-size: .62rem; }.cartItemActions { display: flex; align-items: center; gap: 4px; }.cartItemActions button { width: 25px; height: 25px; border: 1px solid #aaa; background: transparent; cursor: pointer; }.cartTotal { font-weight: 800; line-height: 1.5; }.cartWhatsapp { display: flex; align-items: center; justify-content: center; width: 100%; margin-top: 14px; text-decoration: none; }.cartWhatsapp.is-disabled { pointer-events: none; opacity: .45; }
.emptyResults { text-align: center; padding: 8rem 2rem; border-top: 1px solid #bbb; }
.emptyResults strong { font-family: "Archivo Black"; font-size: 1.8rem; text-transform: uppercase; }
.emptyResults p { color: #666; }
.catalogView .product.hidden { display: none; }

@media (max-width: 1200px) {
  .catalogView .productGrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalogLayout { grid-template-columns: 200px minmax(0, 1fr); }
}

@media (max-width: 900px) {
  .catalogView { padding: 2rem 20px 5rem; }
  .productDetail { padding: 0 10px; align-items: start; }
  .productDetailPanel { max-height: 100svh; }
  .catalogTop { grid-template-columns: 1fr; gap: 1.5rem; }
  .catalogTop h2 { font-size: clamp(3.4rem, 13vw, 6rem); }
  .catalogTop .sectionIndex, .catalogTop .backLink { display: none; }
  .catalogLayout { grid-template-columns: 1fr; }
  .filterSidebar { display: none; position: static; border: 0; border-bottom: 1px solid #aaa; padding: 0 0 1.5rem; }
  .filtersOpen .filterSidebar { display: block; }
  .mobileFilterButton { display: block; border: 0; background: var(--black); color: #fff; padding: 10px 13px; text-transform: uppercase; font-size: .65rem; font-weight: 800; }
  .mobileFilterButton span { color: var(--red); margin-left: 8px; }
  .catalogView .productGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 12px; }
  .filterHelp { max-width: 320px; }
  .detailMain { grid-template-columns: 1fr; }.detailImage { min-height: 0; height: min(27svh, 230px); }.detailImage p { min-height: 0; height: 100%; }.detailInfo { padding: 22px 20px 24px; }.detailInfo h2 { font-size: clamp(1.75rem, 8vw, 2.4rem); }.detailDescription { margin: .65rem 0; }.detailPrice { margin: 16px 0; }.detailOptions { margin-top: 12px; padding-top: 12px; }.detailAdd { margin-top: 18px; }.catalogCart { top: auto; right: 12px; bottom: 12px; }.cartToggle { width: 56px; min-width: 56px; height: 56px; padding: 0; }.cartToggle::after { display: none; }.cartToggle svg { width: 23px; height: 23px; }.cartToggle b { top: -4px; right: -3px; }.cartPanel { max-height: min(520px, calc(100svh - 92px)); overflow: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .cartToggle, .cartToggle svg { transition: none; }
}

@media (max-width: 520px) {
  .catalogTop h2 { font-size: 3.4rem; }
  .catalogView .productGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem 8px; }
  .catalogView .productInfo h3 { font-size: .78rem; }
  .productMeta { font-size: .56rem; }
  .catalogView .productAction { font-size: .6rem; }
  .catalogView .productMedia span { font-size: .52rem; }
}
