/* Arcolor · carta de colores (inicio y productos): búsqueda, filtros, colores y ficha del color
   elegido. La completa js/carta.js con los data-* de cada color. Lo propio de cada página (dónde
   va la carta, su título y el aviso) queda en inicio.css y productos.css. */

.carta-grilla { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
/* la ficha va al costado recién desde 1024 px; más angosto quedaría apretada y se abre como hoja.
   Mide lo que su contenido: no se estira hasta el alto de la grilla de colores */
@media (min-width: 1024px) {
  .carta-grilla { grid-template-columns: 1.5fr 1fr; }
}
.carta-panel { display: flex; flex-direction: column; min-width: 0; background: var(--fondo); border-radius: 12px; overflow: hidden; }
/* búsqueda por código o nombre */
.carta-buscador { position: relative; padding: 16px 16px 0; }
.carta-lupa { position: absolute; left: 28px; top: 29px; color: #85858F; pointer-events: none; }
.carta-buscar { display: block; width: 100%; height: 42px; padding: 0 12px 0 38px; border: 1px solid #E0E0E0; border-radius: 8px; background: #FFFFFF; font-family: inherit; font-size: 14px; color: var(--tinta); }
.carta-buscar::placeholder { color: #85858F; }
.carta-buscar:focus { outline: 2px solid var(--oscuro); outline-offset: 1px; }
.carta-filtros { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px 16px; }
.chip { display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 500; cursor: pointer; white-space: nowrap; background: #FFFFFF; color: #4D4D4D; border: 1px solid #E0E0E0; }
.chip[aria-pressed="true"] { background: #1A1A1A; color: #FFFFFF; border-color: #1A1A1A; }
.carta-division { height: 1px; margin: 0 16px; background: #ECECF1; }
/* en computadora los colores se recorren dentro del panel (alto fijo), así la ficha queda siempre
   al lado */
.carta-colores { height: 600px; overflow-y: auto; overscroll-behavior: contain; padding: 4px 20px 20px; }
.muestras-familia { margin: 16px 0 12px; font-size: 13px; line-height: 20px; font-weight: 600; color: #4A4A54; }
/* align-items: start: las plaquetas de un renglón arrancan a la misma altura aunque algún nombre
   ocupe dos renglones */
.muestras { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 20px; align-items: start; }
/* cada color es un botón sin aspecto de botón */
.muestra { display: block; width: 100%; min-width: 0; margin: 0; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: inherit; cursor: pointer; }
.muestra:focus-visible { outline: 2px solid var(--oscuro); outline-offset: 4px; border-radius: 8px; }
.muestra-foto { display: block; width: 100%; height: auto; aspect-ratio: 320 / 313; border-radius: 8px; }
.muestra.elegida .muestra-foto { box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px #131316; }
/* una palabra que no entra (por ejemplo "Transparente" en celular) se corta con guion en vez de
   salirse de la plaqueta */
.muestra-nombre { display: block; margin-top: 8px; font-size: 13px; font-weight: 500; color: #131316; overflow-wrap: anywhere; hyphens: auto; }
.muestra-codigo { display: block; font-size: 12px; font-weight: 400; color: #6F6F7A; font-variant-numeric: tabular-nums; }
.carta-vacia { margin: 32px 0; font-size: 14px; line-height: 1.5; text-align: center; color: #63636D; }
/* ficha: la completa js/inicio.js con los data-* del color elegido */
.ficha { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--fondo); border-radius: 12px; padding: 24px; }
.ficha-cerrar { display: none; }
.ficha-foto-caja { display: flex; align-items: center; justify-content: center; margin-bottom: 16px; padding: 12px; border-radius: 8px; background: #F4F4F6; }
.ficha-foto { display: block; width: auto; max-width: 100%; height: 200px; object-fit: contain; }
.ficha-encabezado { display: flex; align-items: baseline; gap: 8px; margin-bottom: 16px; }
.ficha-nombre { font-size: 18px; font-weight: 600; color: #131316; }
.ficha-codigo { font-size: 14px; font-weight: 400; color: #6F6F7A; font-variant-numeric: tabular-nums; }
.ficha-datos { border-bottom: 1px solid #ECECF1; }
.ficha-dato { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid #ECECF1; font-size: 14px; line-height: 20px; }
.ficha-dato-nombre { color: #63636D; }
.ficha-dato-valor { font-weight: 500; text-align: right; }
.ficha-escala { font-weight: 400; color: #85858F; }
.ficha-usos { margin-top: 16px; }
.ficha-usos-titulo { font-size: 12px; font-weight: 500; color: #6F6F7A; margin-bottom: 8px; }
.ficha-etiquetas { display: flex; flex-wrap: wrap; gap: 8px; }
.ficha-etiqueta { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 8px; background: #ECECF1; font-size: 12px; font-weight: 400; color: #4A4A54; white-space: nowrap; }
.ficha-similar { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 12px; border: 1px solid #E3E3E8; border-radius: 10px; background: #FFFFFF; color: var(--tinta); }
.ficha-similar:hover { border-color: #C9C9D1; }
.ficha-similar-color { width: 28px; height: 28px; flex-shrink: 0; border-radius: 6px; background: var(--color); box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08); }
.ficha-similar-texto { display: flex; flex-direction: column; min-width: 0; }
.ficha-similar-nombre { font-size: 14px; line-height: 20px; font-weight: 500; }
.ficha-similar-ver { font-size: 12px; line-height: 16px; color: #6F6F7A; }
.ficha-accion { padding-top: 20px; }
.boton-ancho { width: 100%; justify-content: center; }

/* celular y tablet: la ficha es una hoja que sube desde abajo (solo con JavaScript; sin JavaScript
   queda debajo de los colores) y la búsqueda con los filtros queda fija arriba al recorrer */
@media (max-width: 1023px) {
  .carta-panel { overflow: visible; }   /* con overflow: hidden la barra no se puede quedar fija */
  .carta-herramientas { position: sticky; top: 64px; z-index: 5; border-radius: 12px 12px 0 0; background: var(--fondo); }
  /* filtros en una sola fila que se desliza de costado */
  .carta-filtros { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .carta-filtros::-webkit-scrollbar { display: none; }
  .chip { flex-shrink: 0; min-height: 40px; }
  .carta-colores { height: auto; padding: 4px 16px 16px; }
  .js .ficha { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; max-width: 640px; max-height: 88vh; margin: 0 auto; overflow-y: auto; overscroll-behavior: contain; padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); border-radius: 16px 16px 0 0; background: #FFFFFF; box-shadow: 0 -8px 32px rgba(19,19,22,0.18); transform: translateY(105%); visibility: hidden; transition: transform 250ms ease, visibility 0s linear 250ms; }
  .js .ficha.abierta { transform: none; visibility: visible; transition: transform 250ms ease; }
  .js .ficha-cerrar { position: absolute; top: 12px; right: 12px; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #F2F2F5; color: var(--tinta); cursor: pointer; }
  .carta-fondo { position: fixed; inset: 0; z-index: 69; background: rgba(19,19,22,0.45); }
  .hoja-abierta { overflow: hidden; }   /* la página no se mueve detrás de la hoja */
}
/* celular: plaquetas de 64 px como mínimo (3 por fila en 320 px, 4 en un celular común) */
@media (max-width: 767px) {
  .carta-buscar { height: 44px; font-size: 16px; }   /* con menos de 16 px el iPhone agranda la página */
  .muestras { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 16px 12px; }
  .muestra-nombre { margin-top: 6px; font-size: 12px; line-height: 16px; }
  .muestra-codigo { line-height: 16px; }
  .ficha-foto { height: 140px; }
}
/* celular apaisado y tablets chicas: plaquetas del tamaño de computadora (88 px como mínimo) */
@media (min-width: 600px) and (max-width: 767px) {
  .muestras { grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .js .ficha, .js .ficha.abierta { transition: none; }
}
