/* Catálogo: fotografías completas, acceso a cada diseño y navegación consistente. */
[hidden] { display: none !important; }
.drawer:not(.open), .wish:not(.open) { visibility:hidden; }
.chips:empty { display:none; }
.mega { max-height: calc(100dvh - 145px); overflow-y: auto; overscroll-behavior: contain; }
.mega__grid--catalog { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 1.1rem; }
.mega__catalog-all { display: block; border-top: 1px solid var(--line); margin-top: 1.3rem; padding-top: 1rem; font-weight: 700; }
.mega__grid--catalog .mega__link { line-height: 1.45; padding-block: .35rem; }
.collection-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; }
.collection-tile { border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; background: var(--paper); transition: box-shadow .2s,transform .2s; }
.collection-tile:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.collection-tile__photos { height: 210px; display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 3px; background: var(--tint); }
.collection-tile__photos img { width:100%; height:100%; min-height:0; object-fit:contain; }
.collection-tile__text { padding:1.15rem; position:relative; }
.collection-tile__text h3 { font-size:1.16rem; padding-right:2rem; }
.collection-tile__text p { color:var(--txt-3); font-size:.83rem; margin-top:.4rem; }
.collection-tile__text > span { position:absolute; right:1.1rem; top:1.1rem; font-size:1.6rem; }
.card__media { aspect-ratio: 1; }
.card__media img { object-fit: contain; padding: .4rem; }
.card:hover .card__media img { transform: none; }
.card__previews { display:flex; gap:.3rem; padding:.65rem .75rem; border-bottom:1px solid var(--line); align-items:center; }
.card__previews > a:not(.card__gallery-link) { width:44px; height:48px; flex:none; border-radius:5px; overflow:hidden; background:var(--tint); }
.card__previews img { width:100%; height:100%; object-fit:contain; }
.card__gallery-link { margin-left:auto; font-size:.75rem; font-weight:650; }
.card__quick { font-size:.73rem; color:var(--txt-2); text-align:right; }
.card__title a::after { content:none; }
.card__quick, .card__previews a { position:relative; z-index:2; }
.pagehead--catalog .pagehead__body { padding-block:1.6rem 2rem; max-width:76ch; }
.pagehead--catalog h1 { font-size:clamp(1.8rem,3.3vw,2.7rem); }
.pagehead--catalog .pagehead__art { width:150px; }
.pagehead--catalog + .section { padding-top:2rem; }
.card__foot { gap:.5rem; }
.card__reference { color:var(--txt-3); font-size:.72rem; letter-spacing:.05em; margin:.35rem 0 .9rem; }
.card__detail { font-size:.79rem; font-weight:650; }
.card__body { display:flex; flex-direction:column; }
.card__title { min-height:2.8em; }
.card__foot { margin-top:auto; }
.product-tags { display:flex; gap:.5rem; flex-wrap:wrap; padding-top:1.4rem; }
.product-tag { border:1px solid var(--line); padding:.45rem .8rem; border-radius:var(--r-full); font-size:.8rem; }
.product-tag:hover { background:var(--tint); }
.card__time { font-size:.73rem; }
.catalog-view { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-bottom:1.2rem; }
.catalog-view button { border:1px solid var(--line); border-radius:var(--r-full); padding:.65rem 1rem; font-size:.85rem; font-weight:650; }
.catalog-view button.on { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.catalog-view > span { margin-left:auto; font-size:.75rem; color:var(--txt-3); }
.load-more { display:flex; flex-direction:column; align-items:center; gap:.7rem; margin-top:1.7rem; }
.load-more > span { font-size:.8rem; color:var(--txt-3); }
.design-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(205px,1fr)); gap:1rem; }
.design-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.design-card > a { display:block; aspect-ratio: 1; background:var(--tint); padding:.45rem; }
.design-card img { width:100%; height:100%; object-fit:contain; }
.design-card__caption { padding:.8rem; display:flex; align-items:center; justify-content:space-between; gap:.65rem; font-size:.85rem; }
.design-card__caption h3 { font-size:.89rem; line-height:1.4; margin-top:.25rem; }
.design-card__caption button { padding:.5rem; }
.design-card.is-selected { border-color:var(--amber); box-shadow:0 0 0 2px var(--amber); }
.gallery-summary { display:flex; gap:.4rem; justify-content:space-between; margin-top:.75rem; font-size:.83rem; }
.gallery-summary a { text-decoration:underline; text-underline-offset:3px; }
#pdp, #modelos { scroll-margin-top:calc(var(--header-h) + 24px); }
.pdp__stage img { width:100%; height:100%; object-fit:contain; min-height:0; }
.pdp__stage { padding:.7rem .7rem 2.2rem; }
.pdp__thumbs { max-height:560px; }
.pdp__form input[readonly] { background:var(--tint); }
.catalog-notice { margin-bottom:1rem; }
@media (max-width:1200px) { .mega__grid--catalog { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; } }
@media (max-width:760px) {
  .pagehead--catalog .pagehead__body { padding-block:.5rem 1.25rem; }
  .pagehead--catalog .eyebrow { display:none; }
  .pagehead--catalog p { font-size:.85rem; line-height:1.5; }
  .pagehead--catalog h1 { font-size:1.65rem; }
  .catalog .toolbar { margin-bottom:.8rem; gap:.6rem; }
  .collection-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .collection-tile__photos { height:155px; grid-template-columns:1.3fr 1fr; }
  .collection-tile__photos img:nth-child(3) { display:none; }
  .collection-tile__text { padding:.85rem; }
  .collection-tile__text h3 { font-size:1rem; }
  .collection-tile__text p { font-size:.73rem; }
  .catalog-view > span { display:none; }
  .design-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .gallery-summary { flex-wrap:wrap; }
}
@media (max-width:900px) { .filters:not(.open) { visibility:hidden; } }
@media (max-width:580px) {
  .grid-products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .card__body { padding:.7rem; }
  .card__title { font-size:.82rem; line-height:1.4; }
  .card__cat { font-size:.55rem; letter-spacing:.08em; }
  .card__reference { font-size:.62rem; margin:.4rem 0 .65rem; }
  .card__detail { font-size:.7rem; }
  .card__quick { font-size:0; padding:.25rem; }
  .card__quick i { font-size:.9rem; }
  .card__fav { width:30px; height:30px; top:.4rem; right:.4rem; }
}
@media (max-width:420px) {
  .collection-tile__photos { height:130px; }
  .collection-tile__text > span { display:none; }
  .collection-tile__text h3 { padding-right:0; }
  .design-card__caption { padding:.6rem; font-size:.78rem; }
}
