/* Cormorant Garamond (OFL, autoalojada; licencia en /fuentes/) · solo para relato */
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300 700; font-display: swap; src: url("/fuentes/cormorant-garamond-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300 700; font-display: swap; src: url("/fuentes/cormorant-garamond-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("/fuentes/cormorant-garamond-normal-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("/fuentes/cormorant-garamond-normal-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Jost (OFL) en WOFF2 autoalojada; el TTF original se conserva como respaldo */
@font-face { font-family: "Jost"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/fuentes/jost-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/fuentes/jost-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --blanco: #ffffff;
  --tinta: #111111;
  --noche: #0b0b0b;
  --perla: #f4f4f3;          /* fondo neutro de fotos de producto */
  --gris: #6b6b6b;           /* texto secundario · 5,4:1 sobre blanco */
  --linea: #e6e6e6;
  --oro: #a8842f;            /* solo la estrella del logo */
  --control: #767676;       /* límites de campos: más de 3:1 sobre blanco/perla */
  --sans: "Jost", "Helvetica Neue", Arial, sans-serif;
  --relato: "Cormorant Garamond", Georgia, serif;
  --t-xs: 0.6875rem;
  --t-s: 0.8125rem;
  --t-m: 0.9375rem;
  --t-l: 1.125rem;
  --t-xl: clamp(1.4rem, 1.2rem + 0.8vw, 1.875rem);
  --t-2xl: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
  --t-relato: clamp(2.6rem, 1.6rem + 3.6vw, 5rem);
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;
  --margen: clamp(16px, 3.4vw, 56px);
  --ancho: 1440px;
  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--blanco); color: var(--tinta);
  font-family: var(--sans); font-size: var(--t-m); font-weight: 400; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
:focus-visible { outline: 1px solid var(--tinta); outline-offset: 3px; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: 16px; top: -80px; z-index: 200; background: var(--tinta); color: var(--blanco); padding: 10px 16px; }
.saltar:focus { top: 16px; }
/* Tipos */
.mayus { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.titulo { font-size: var(--t-2xl); font-weight: 400; line-height: 1.2; }
.titulo-s { font-size: var(--t-xl); font-weight: 400; line-height: 1.25; }
.texto { font-size: var(--t-m); line-height: 1.75; color: #333; max-width: 36em; }
.texto-gris { color: var(--gris); }
.relato { font-family: var(--relato); font-weight: 300; font-size: var(--t-relato); line-height: 1.05; }
.relato em { font-style: italic; }
.relato--m { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.4rem); }
.estrella { display: inline-block; width: 9px; height: 9px; color: var(--oro); vertical-align: 1px; }
.estrella svg { width: 100%; height: 100%; display: block; fill: currentColor; }
/* Botones y enlaces */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  min-height: 48px; padding: 0 var(--s-6); border-radius: 999px;
  font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  border: 1px solid var(--tinta); background: var(--tinta); color: var(--blanco);
  transition: background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
}
.boton:hover { background: #333; border-color: #333; }
.boton--borde { background: transparent; color: var(--tinta); }
.boton--borde:hover { background: var(--tinta); color: var(--blanco); }
.boton--claro { background: var(--blanco); color: var(--tinta); border-color: var(--blanco); }
.boton--claro:hover { background: transparent; color: var(--blanco); border-color: var(--blanco); }
.boton--ancho { width: 100%; }
.enlace { font-size: var(--t-s); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.enlace:hover { text-decoration-color: var(--gris); }
/* Franja */
.franja { background: var(--noche); color: #e9e9e9; font-size: var(--t-xs); letter-spacing: 0.08em; text-align: center; padding: 8px var(--margen); }
.franja a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .franja__extra { display: none; } }
/* Cabecera */
.cabecera { position: sticky; top: 0; z-index: 90; background: var(--blanco); border-bottom: 1px solid var(--linea); }
.cabecera__fila { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 72px; padding: 0 var(--margen); }
.cabecera__izq, .cabecera__der { display: flex; align-items: center; gap: var(--s-5); }
.cabecera__der { justify-content: flex-end; }
.icono { display: inline-flex; align-items: center; gap: var(--s-2); font-size: var(--t-s); }
.icono svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.2; }
.cabecera__logo { width: clamp(112px, 10vw, 150px); }
.contador { font-size: var(--t-xs); }
.nav { display: flex; justify-content: center; gap: clamp(20px, 2.6vw, 44px); height: 48px; }
.nav__item { display: flex; align-items: stretch; }
.nav__enlace { display: flex; align-items: center; font-size: var(--t-s); border-bottom: 1px solid transparent; transition: border-color 0.25s var(--ease); }
.nav__item:hover > .nav__enlace, .nav__item:focus-within > .nav__enlace, .nav__enlace[aria-current="page"] { border-color: var(--tinta); }
.mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--blanco); border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea);
  padding: var(--s-7) var(--margen) var(--s-8); display: none;
}
.nav__item:hover > .mega, .nav__item:focus-within > .mega { display: block; }
.mega__rejilla { max-width: var(--ancho); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); gap: var(--s-7); }
.mega__columna h2 { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gris); margin-bottom: var(--s-4); }
.mega__columna ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.mega__columna a:hover { text-decoration: underline; text-underline-offset: 4px; }
.mega__destacado { display: grid; gap: var(--s-3); font-size: var(--t-s); }
.mega__destacado img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.solo-escritorio { display: inline-flex; }
.solo-movil { display: none; }
@media (max-width: 1000px) {
  .nav { display: none; }
  .solo-escritorio { display: none; }
  .solo-movil { display: inline-flex; }
  .cabecera__fila { height: 60px; }
}
/* Cajón móvil */
.cajon { position: fixed; inset: 0; z-index: 150; visibility: hidden; }
.cajon[data-abierto="true"] { visibility: visible; }
.cajon__velo { position: absolute; inset: 0; background: rgba(0,0,0,0.35); opacity: 0; transition: opacity 0.3s var(--ease); }
.cajon__panel { position: absolute; inset: 0 auto 0 0; width: min(420px, 90vw); background: var(--blanco); transform: translateX(-100%); transition: transform 0.4s var(--ease); overflow-y: auto; padding: var(--s-5) var(--s-5) var(--s-8); }
.cajon[data-abierto="true"] .cajon__velo { opacity: 1; }
.cajon[data-abierto="true"] .cajon__panel { transform: none; }
.cajon__cerrar { margin-bottom: var(--s-6); }
.cajon details { border-bottom: 1px solid var(--linea); }
.cajon summary, .cajon__enlace { display: flex; justify-content: space-between; padding: var(--s-4) 0; font-size: var(--t-l); list-style: none; cursor: pointer; }
.cajon summary::-webkit-details-marker { display: none; }
.cajon summary::after { content: "+"; font-weight: 300; }
.cajon details[open] summary::after { content: "–"; }
.cajon__enlace { border-bottom: 1px solid var(--linea); }
.cajon ul { list-style: none; margin: 0 0 var(--s-4); padding: 0; display: grid; gap: var(--s-3); }
.cajon ul a { color: var(--gris); }
.cajon__contacto { margin-top: var(--s-6); display: grid; gap: var(--s-2); font-size: var(--t-s); color: var(--gris); }
/* Buscador */
.buscador { position: fixed; inset: 0; z-index: 160; background: var(--blanco); display: none; overflow-y: auto; }
.buscador[data-abierto="true"] { display: block; }
.buscador__barra { display: flex; align-items: center; gap: var(--s-4); max-width: 900px; margin: 0 auto; padding: var(--s-6) var(--margen) var(--s-3); }
.buscador__campo { flex: 1; border: 0; border-bottom: 1px solid var(--tinta); outline: 0; font-size: var(--t-xl); padding: var(--s-2) 0; background: none; }
.buscador__resultados { max-width: 1200px; margin: 0 auto; padding: var(--s-5) var(--margen) var(--s-8); }
.buscador__sugerencias { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-6); }
.buscador__sugerencias a { font-size: var(--t-s); border: 1px solid var(--linea); border-radius: 999px; padding: 6px 14px; }
/* Portada */
.portada { display: grid; grid-template-columns: minmax(360px, 5fr) 7fr; min-height: calc(100svh - 155px); }
.portada__texto { align-self: center; display: grid; gap: var(--s-5); padding: var(--s-9) var(--s-7) var(--s-9) var(--margen); }
.portada__media { position: relative; overflow: hidden; min-height: 520px; }
.portada__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; }
.portada__acciones { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-3); }
.portada__nota { position: absolute; right: var(--margen); bottom: var(--s-5); text-align: right; font-size: var(--t-s); }
.portada__nota span { display: block; color: var(--gris); font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; }
@media (max-width: 900px) {
  .portada { grid-template-columns: 1fr; min-height: 0; }
  .portada__media { order: -1; height: 72svh; min-height: 420px; }
  .portada__texto { padding: var(--s-6) var(--margen) var(--s-8); gap: var(--s-4); }
  .portada__nota { display: none; }
}
@media (max-width: 560px) { .portada__acciones { flex-direction: column; } .portada__acciones .boton { width: 100%; } }
/* Secciones */
.seccion { padding: var(--s-9) var(--margen); }
.seccion--gris { background: var(--perla); }
.seccion--noche { background: var(--noche); color: #f0f0f0; }
.seccion--noche .texto, .seccion--noche .texto-gris { color: #bdbdbd; }
.contenedor { max-width: var(--ancho); margin: 0 auto; }
.estrecho { max-width: 760px; margin: 0 auto; }
.cabeza { display: grid; gap: var(--s-3); justify-items: center; text-align: center; margin-bottom: var(--s-7); }
.cabeza .texto { text-align: center; }
.cabeza__fila { display: flex; justify-content: space-between; align-items: end; gap: var(--s-5); flex-wrap: wrap; margin-bottom: var(--s-6); }
@media (max-width: 760px) { .seccion { padding: var(--s-8) var(--margen); } }
/* Categorías */
.categorias { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--s-3); }
.categoria { display: grid; gap: var(--s-3); text-align: center; }
.categoria__img { aspect-ratio: 1; background: var(--perla); overflow: hidden; }
.categoria__img img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.8s var(--ease); }
.categoria:hover .categoria__img img { transform: scale(1.04); }
.categoria span { font-size: var(--t-s); }
@media (max-width: 1000px) { .categorias { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5) var(--s-3); } }
/* Ocasiones · lo eterno */
.ocasiones { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-3); }
.ocasion { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; color: var(--blanco); background: var(--noche); }
.ocasion img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.ocasion::after { content: ""; position: absolute; inset: 0; }
.ocasion:hover img { transform: scale(1.035); }
.ocasion__texto { position: absolute; left: var(--s-5); right: var(--s-5); bottom: var(--s-5); z-index: 1; display: grid; gap: var(--s-1); }
.ocasion__titulo { font-family: var(--relato); font-weight: 300; font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); line-height: 1.05; }
.ocasion__titulo em { font-style: italic; }
.ocasion__sub { font-size: var(--t-s); opacity: 0.92; }
@media (max-width: 1000px) { .ocasiones { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .ocasiones { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(var(--margen) * -1); padding: 0 var(--margen); }
  .ocasiones::-webkit-scrollbar { display: none; }
  .ocasion { flex: 0 0 78%; scroll-snap-align: start; }
}
/* Tarjeta de pieza */
.rejilla { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-7) var(--s-3); }
.rejilla--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) { .rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .rejilla, .rejilla--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6) var(--s-2); } }
.carril { display: flex; gap: var(--s-3); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.carril::-webkit-scrollbar { display: none; }
.carril > * { flex: 0 0 calc((100% - 3 * var(--s-3)) / 4); scroll-snap-align: start; }
@media (max-width: 1000px) { .carril > * { flex-basis: 40%; } }
@media (max-width: 560px) { .carril { margin: 0 calc(var(--margen) * -1); padding: 0 var(--margen); } .carril > * { flex-basis: 66%; } }
.pieza { position: relative; display: grid; gap: var(--s-4); align-content: start; }
.pieza[hidden] { display: none; }
.pieza__marco { position: relative; aspect-ratio: 1; background: var(--perla); overflow: hidden; }
.pieza__marco img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity 0.5s var(--ease), transform 0.9s var(--ease); }
.pieza__marco .pieza__segunda { opacity: 0; object-fit: cover; }
.pieza:hover .pieza__segunda { opacity: 1; }
.pieza:hover .pieza__marco img:first-child { transform: scale(1.03); }
.pieza__guardar { position: absolute; top: var(--s-2); right: var(--s-2); z-index: 2; width: 36px; height: 36px; display: grid; place-items: center; }
.pieza__guardar svg { width: 16px; height: 16px; fill: none; stroke: var(--tinta); stroke-width: 1.1; }
.pieza__guardar[aria-pressed="true"] svg { fill: var(--tinta); }
.pieza__etiqueta { position: absolute; left: var(--s-3); top: var(--s-3); z-index: 2; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.pieza__texto { display: grid; gap: 2px; }
.pieza__nombre { font-size: var(--t-s); font-weight: 400; line-height: 1.45; }
.pieza__nombre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pieza__dato { font-size: 12px; color: var(--gris); }
.pieza__precio { font-size: var(--t-s); }
/* Capítulo a sangre */
.capitulo { position: relative; min-height: min(86vh, 860px); display: grid; align-items: end; overflow: hidden; color: var(--blanco); background: var(--noche); }
.capitulo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.capitulo::after { content: ""; position: absolute; inset: 0; }
.capitulo__texto { position: relative; z-index: 1; display: grid; gap: var(--s-5); max-width: 680px; padding: var(--s-9) var(--margen); }
.capitulo__texto .texto { color: #eee; }
.capitulo__acciones { display: flex; flex-wrap: wrap; gap: var(--s-3); }
@media (max-width: 760px) {
  .capitulo { min-height: 86svh; }
  .capitulo__texto { padding: var(--s-8) var(--margen); }
}
/* Bloque dividido */
.dividido { display: grid; grid-template-columns: 1fr 1fr; }
.dividido__media { position: relative; min-height: 560px; background: var(--perla); overflow: hidden; }
.dividido__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dividido__media--pieza img { object-fit: contain; padding: 6%; }
.dividido__texto { align-self: center; display: grid; gap: var(--s-5); padding: var(--s-9) clamp(24px, 6vw, 96px); }
.dividido--invertido .dividido__media { order: 2; }
@media (max-width: 900px) {
  .dividido { grid-template-columns: 1fr; }
  .dividido__media { min-height: 0; aspect-ratio: 4 / 5; }
  .dividido--invertido .dividido__media { order: 0; }
  .dividido__texto { padding: var(--s-7) var(--margen) var(--s-8); }
}
/* Promesa */
.promesa { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.promesa__item { display: grid; gap: var(--s-2); align-content: start; text-align: center; padding: var(--s-2) var(--s-5); border-left: 1px solid var(--linea); }
.promesa__item:first-child { border-left: 0; }
.promesa__item h3 { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.promesa__item p { font-size: var(--t-s); color: var(--gris); }
@media (max-width: 900px) { .promesa { grid-template-columns: 1fr 1fr; gap: var(--s-6) 0; } .promesa__item:nth-child(3) { border-left: 0; } }
/* Categoría */
.migas { padding: var(--s-4) var(--margen) 0; font-size: 12px; color: var(--gris); }
.migas ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-2); margin: 0; padding: 0; }
.migas li + li::before { content: "/"; margin-right: var(--s-2); color: #c4c4c4; }
.cat-cabeza { display: grid; gap: var(--s-3); justify-items: center; text-align: center; padding: var(--s-7) var(--margen) var(--s-5); }
.cat-cabeza .texto { text-align: center; }
.pestanas { display: flex; justify-content: center; gap: var(--s-6); overflow-x: auto; scrollbar-width: none; padding: 0 var(--margen); border-bottom: 1px solid var(--linea); }
.pestanas::-webkit-scrollbar { display: none; }
.pestanas a { flex: none; padding: var(--s-4) 0; font-size: var(--t-s); color: var(--gris); border-bottom: 1px solid transparent; margin-bottom: -1px; }
.pestanas a:hover { color: var(--tinta); }
.pestanas a[aria-current="page"] { color: var(--tinta); border-color: var(--tinta); }
@media (max-width: 760px) { .pestanas { justify-content: flex-start; gap: var(--s-5); } }
.herramientas { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); padding: var(--s-4) var(--margen) var(--s-6); font-size: var(--t-s); color: var(--gris); }
.herramientas select { border: 0; background: none; cursor: pointer; color: var(--tinta); }
.vacio { text-align: center; display: grid; gap: var(--s-4); justify-items: center; padding: var(--s-9) var(--margen); }
/* Ficha */
.ficha { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(340px, 1fr); gap: clamp(24px, 4vw, 72px); padding: var(--s-4) var(--margen) var(--s-9); max-width: 1600px; margin: 0 auto; }
.galeria { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); }
.galeria__item { margin: 0; background: var(--perla); aspect-ratio: 4 / 5; overflow: hidden; }
.galeria__item--1 { grid-column: 1 / -1; aspect-ratio: 1; }
.galeria__item img { width: 100%; height: 100%; object-fit: cover; }
.galeria__item--producto img { object-fit: contain; }
.galeria__puntos { display: none; }
.ficha__panel { position: sticky; top: 140px; align-self: start; display: grid; gap: var(--s-5); max-width: 460px; }
.ficha__ref { font-size: 12px; color: var(--gris); }
.ficha__titulo { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem); font-weight: 400; line-height: 1.2; }
.ficha__precio { font-size: var(--t-l); }
.ficha__estado { display: flex; align-items: center; gap: 10px; font-size: 13px; letter-spacing: .03em; margin-top: calc(var(--s-5) * -0.5); }
.ficha__estado::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--tinta); flex: none; }
.ficha__estado[data-estado="bajo_pedido"]::before { background: transparent; box-shadow: inset 0 0 0 1px var(--tinta); }
.ficha__estado[data-estado="agotado"] { color: var(--gris); }
.ficha__estado[data-estado="agotado"]::before { background: var(--gris); }
.proximamente { margin-top: var(--s-4); color: var(--gris); }
/* Confianza (v030): proceso verificable de compra, sin testimonios inventados */
.confianza__pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-7); counter-reset: paso; }
.confianza__paso { counter-increment: paso; border-top: 1px solid var(--tinta); padding-top: var(--s-5); display: grid; gap: var(--s-3); align-content: start; }
.confianza__paso::before { content: counter(paso, decimal-leading-zero); font-size: var(--t-xs); letter-spacing: 0.14em; color: var(--gris); }
.confianza__paso h3 { font-size: var(--t-l); font-weight: 400; line-height: 1.3; }
.confianza__paso p { color: #333; line-height: 1.7; }
.confianza__frase { margin: var(--s-9) auto 0; text-align: center; max-width: 30em; display: grid; gap: var(--s-4); }
.confianza__frase .relato--s { font-size: var(--t-2xl); line-height: 1.2; }
.confianza__frase figcaption { color: var(--gris); }
@media (max-width: 900px) { .confianza__pasos { grid-template-columns: 1fr 1fr; gap: var(--s-6) var(--s-5); } }
@media (max-width: 560px) { .confianza__pasos { grid-template-columns: 1fr; } .confianza__frase { margin-top: var(--s-8); } }
.ficha__aviso { font-size: 12px; color: var(--gris); line-height: 1.6; }
.ficha__acciones { display: grid; gap: var(--s-3); }
.variantes { display: grid; gap: var(--s-3); }
.variantes__opciones { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.variantes__opciones a { padding: 10px 16px; border: 1px solid var(--linea); border-radius: 999px; font-size: var(--t-s); }
.variantes__opciones a:hover { border-color: var(--tinta); }
.variantes__opciones a[aria-current="page"] { border-color: var(--tinta); background: var(--tinta); color: var(--blanco); }
.promesa-mini { list-style: none; margin: 0; padding: var(--s-4) 0 0; border-top: 1px solid var(--linea); display: grid; gap: var(--s-2); font-size: var(--t-s); color: var(--gris); }
.acordeon details { border-bottom: 1px solid var(--linea); }
.acordeon details:first-child { border-top: 1px solid var(--linea); }
.acordeon summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; padding: var(--s-4) 0; font-size: var(--t-s); }
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary::after { content: "+"; }
.acordeon details[open] summary::after { content: "–"; }
.acordeon__cuerpo { padding-bottom: var(--s-5); display: grid; gap: var(--s-3); font-size: var(--t-s); color: #444; }
.datos { display: grid; grid-template-columns: auto 1fr; gap: var(--s-2) var(--s-5); margin: 0; }
.datos dt { color: var(--gris); }
.datos dd { margin: 0; }
.cita { font-family: var(--relato); font-style: italic; font-size: 1.4rem; line-height: 1.4; margin: 0; }
.cita cite { display: block; font-family: var(--sans); font-style: normal; font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gris); margin-top: var(--s-2); }
@media (max-width: 900px) {
  .ficha { grid-template-columns: 1fr; padding: 0 0 var(--s-8); gap: var(--s-5); }
  .galeria { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 0; }
  .galeria::-webkit-scrollbar { display: none; }
  .galeria__item, .galeria__item--1 { flex: 0 0 100%; aspect-ratio: 1; scroll-snap-align: start; }
  .galeria__puntos { display: flex; justify-content: center; gap: 6px; padding-top: var(--s-3); }
  .galeria__puntos span { width: 5px; height: 5px; border-radius: 50%; background: #d0d0d0; }
  .galeria__puntos span[data-activo="true"] { background: var(--tinta); }
  .ficha__panel { position: static; padding: 0 var(--margen); max-width: none; }
}
.barra-movil { display: none; }
@media (max-width: 900px) {
  .barra-movil { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; display: grid; grid-template-columns: 1fr auto; gap: var(--s-4); align-items: center; padding: var(--s-3) var(--margen) calc(var(--s-3) + env(safe-area-inset-bottom)); background: var(--blanco); border-top: 1px solid var(--linea); transform: translateY(110%); transition: transform 0.3s var(--ease); font-size: var(--t-s); }
  .barra-movil[data-visible="true"] { transform: none; }
  .con-barra .asesor { display: none; }
}
/* Proceso */
.proceso { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); counter-reset: paso; }
.proceso li { counter-increment: paso; display: grid; gap: var(--s-2); align-content: start; padding-top: var(--s-4); border-top: 1px solid currentColor; }
.proceso li::before { content: counter(paso); font-size: var(--t-xs); opacity: 0.6; }
.proceso h3 { font-size: var(--t-m); font-weight: 500; }
.proceso p { font-size: var(--t-s); opacity: 0.75; }
@media (max-width: 900px) { .proceso { grid-template-columns: 1fr 1fr; gap: var(--s-6) var(--s-4); } }
/* Artículos, lectura, preguntas */
.articulos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-7) var(--s-5); }
.articulo { display: grid; gap: var(--s-3); align-content: start; }
.articulo__img { aspect-ratio: 3 / 2; background: var(--perla); overflow: hidden; }
.articulo__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.articulo:hover .articulo__img img { transform: scale(1.03); }
.articulo h3 { font-size: var(--t-l); font-weight: 400; line-height: 1.35; }
.articulo p { font-size: var(--t-s); color: var(--gris); }
@media (max-width: 900px) { .articulos { grid-template-columns: 1fr; } }
.lectura { max-width: 720px; margin: 0 auto; padding: 0 var(--margen) var(--s-9); }
.lectura h2 { font-size: var(--t-xl); font-weight: 400; margin: var(--s-7) 0 var(--s-4); }
.lectura p, .lectura li { font-size: var(--t-m); line-height: 1.85; color: #333; margin-bottom: var(--s-4); }
.lectura table { width: 100%; border-collapse: collapse; margin: var(--s-5) 0; font-size: var(--t-s); }
.lectura th, .lectura td { text-align: left; padding: var(--s-3) var(--s-2); border-bottom: 1px solid var(--linea); }
.lectura th { font-weight: 500; }
.respuesta-breve { padding: var(--s-5); border-left: 2px solid var(--tinta); background: var(--perla); line-height: 1.75; margin-bottom: var(--s-6); }
.preguntas { border-top: 1px solid var(--linea); }
.preguntas details { border-bottom: 1px solid var(--linea); }
.preguntas summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--s-5); padding: var(--s-5) 0; font-size: var(--t-m); }
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas summary::after { content: "+"; font-weight: 300; }
.preguntas details[open] summary::after { content: "–"; }
.preguntas p { padding-bottom: var(--s-5); color: #444; max-width: 46em; }
/* Contacto */
.canales{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.canal{display:grid;gap:var(--s-3);align-content:start;padding:var(--s-6);border:1px solid var(--linea);min-width:0;overflow-wrap:anywhere}
.canal h2{font-size:var(--t-l);font-weight:400}
@media(max-width:900px){.canales{grid-template-columns:1fr}}
/* Pie */
.pie { border-top: 1px solid var(--linea); padding: var(--s-8) var(--margen) var(--s-5); font-size: var(--t-s); }
.pie__arriba { max-width: var(--ancho); margin: 0 auto; display: grid; grid-template-columns: 1.3fr repeat(4, minmax(0, 1fr)); gap: var(--s-6); }
.pie h2 { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: var(--s-4); }
.pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-2); color: var(--gris); }
.pie a:hover { color: var(--tinta); }
.pie__marca { display: grid; gap: var(--s-3); align-content: start; color: var(--gris); }
.pie__logo { width: 130px; margin-bottom: var(--s-2); }
.pie__abajo { max-width: var(--ancho); margin: var(--s-8) auto 0; padding-top: var(--s-4); border-top: 1px solid var(--linea); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); font-size: 12px; color: var(--gris); }
@media (max-width: 900px) { .pie__arriba { grid-template-columns: 1fr 1fr; } .pie__marca { grid-column: 1 / -1; } }
/* Asesor flotante */
.asesor { position: fixed; right: clamp(12px, 2vw, 28px); bottom: clamp(12px, 2vw, 28px); z-index: 70; display: inline-flex; align-items: center; gap: var(--s-2); padding: 12px 20px; border-radius: 999px; background: var(--tinta); color: var(--blanco); font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; box-shadow: 0 6px 24px rgba(0,0,0,0.14); }
.asesor .estrella { color: #d8bd78; }
/* Movimiento */
.js-movimiento .revelar { opacity: 0; transform: translateY(16px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.js-movimiento .revelar[data-visto="true"] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js-movimiento .revelar { opacity: 1; transform: none; }
}
/* Solo para capturas de revisión (?estatico) */
.captura .cabecera, .captura .asesor { position: relative; }
.captura .portada { min-height: 780px; }
.captura .capitulo { min-height: 760px; }
.captura .ficha__panel { position: static; }
@media (max-width: 900px) { .captura .portada__media { height: 600px; } .captura .portada { min-height: 0; } }
/* =========================================================
   v024 · segunda pasada: relato de portada, símbolo propio, journal, cookies
   ========================================================= */
/* Botón fantasma sobre imágenes oscuras */
.boton--fantasma { background: transparent; color: var(--blanco); border-color: var(--blanco); }
.boton--fantasma:hover { background: var(--blanco); color: var(--tinta); }
.seccion--sin-arriba { padding-top: var(--s-7); }
/* Banner de campañas */
.banner { position: relative; height: calc(100svh - 120px); min-height: 560px; max-height: 920px; overflow: clip; background: var(--noche); }
.banner__diapo { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s var(--ease), visibility 0s linear 1.2s; }
.banner__diapo[data-activa="true"] { opacity: 1; visibility: visible; transition: opacity 1.2s var(--ease); z-index: 1; }
.banner__media, .banner__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.banner__media img { object-fit: cover; object-position: var(--encuadre-x, 60%) var(--encuadre-y, 35%); transform: scale(1.06); transition: transform 8s linear; }
.banner__diapo[data-activa="true"] .banner__media img { transform: scale(1); }
.banner__texto { position: absolute; z-index: 2; bottom: clamp(64px, 12vh, 120px); left: var(--margen); max-width: 560px; display: grid; gap: var(--s-4); }
.banner__diapo--der .banner__texto { left: auto; right: var(--margen); }
.banner__diapo--oscuro { color: var(--blanco); }
.banner__diapo--oscuro::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.1) 60%, rgba(0,0,0,0) 100%); }
.banner__diapo--claro { color: var(--tinta); }
.banner__bajada { font-size: var(--t-m); line-height: 1.7; max-width: 30em; }
.banner__acciones { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-2); }
.banner__diapo .banner__texto > * { opacity: 0; transform: translateY(18px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.banner__diapo[data-activa="true"] .banner__texto > * { opacity: 1; transform: none; }
.banner__diapo[data-activa="true"] .banner__texto > *:nth-child(2) { transition-delay: 0.15s; }
.banner__diapo[data-activa="true"] .banner__texto > *:nth-child(3) { transition-delay: 0.3s; }
.banner__diapo[data-activa="true"] .banner__texto > *:nth-child(4) { transition-delay: 0.45s; }
.banner__control { position: absolute; z-index: 3; left: var(--margen); right: var(--margen); bottom: var(--s-5); display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); color: var(--tinta); }
.banner[data-tema="oscuro"] .banner__control { color: var(--blanco); }
.banner__puntos { display: flex; gap: var(--s-2); }
.banner__punto { width: 48px; height: 20px; display: grid; align-items: center; color: inherit; }
.banner__punto span { display: block; height: 1px; background: rgba(128,128,128,0.55); position: relative; overflow: hidden; }
.banner__punto span::after { content: ""; position: absolute; inset: 0; background: currentColor; transform: scaleX(0); transform-origin: left; }
.banner__punto[aria-current="true"] span::after { animation: avance var(--duracion, 6.5s) linear forwards; }
.banner[data-pausado="true"] .banner__punto[aria-current="true"] span::after { animation-play-state: paused; }
@keyframes avance { to { transform: scaleX(1); } }
.banner__pausa { font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; color: inherit; }
@media (max-width: 760px) {
  .banner { height: calc(100svh - 100px); min-height: 600px; }
  .banner__diapo--claro::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.7) 34%, rgba(255,255,255,0) 58%); }
  .banner__diapo--oscuro::after { background: linear-gradient(0deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 60%); }
  .banner__texto, .banner__diapo--der .banner__texto { left: var(--margen); right: var(--margen); bottom: 76px; }
  .banner__media img { object-position: var(--encuadre-movil-x, 50%) var(--encuadre-movil-y, 25%); }
  .banner__acciones .boton { flex: 1 1 100%; }
}
/* Manifiesto */
.manifiesto { display: grid; justify-items: center; gap: var(--s-6); text-align: center; padding: var(--s-10) var(--margen); }
.manifiesto__monograma { width: 72px; height: auto; }
.manifiesto__texto { font-family: var(--relato); font-weight: 300; font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.6rem); line-height: 1.3; max-width: 26em; }
.cabeza__monograma { width: 56px; height: auto; margin-bottom: var(--s-3); }
/* Creaciones por pestañas */
.creaciones__pestanas { display: flex; justify-content: center; gap: var(--s-6); overflow-x: auto; scrollbar-width: none; margin-bottom: var(--s-6); }
.creaciones__pestanas::-webkit-scrollbar { display: none; }
.creaciones__pestana { flex: none; padding: var(--s-2) 0; font-size: var(--t-s); color: var(--gris); border-bottom: 1px solid transparent; }
.creaciones__pestana:hover { color: var(--tinta); }
.creaciones__pestana[aria-selected="true"], .creaciones__pestana[aria-pressed="true"] { color: var(--tinta); border-color: var(--tinta); }
.creaciones__pie { display: flex; justify-content: center; margin-top: var(--s-6); }
.carril-marco { position: relative; }
.flecha { position: absolute; top: calc(50% - 60px); z-index: 3; width: 44px; height: 44px; border-radius: 50%; background: var(--blanco); border: 1px solid var(--linea); display: grid; place-items: center; transition: border-color 0.3s; }
.flecha svg { width: 18px; height: 18px; fill: none; stroke: var(--tinta); stroke-width: 1.2; }
.flecha--izq { left: -22px; }
.flecha--der { right: -22px; }
.flecha:hover { border-color: var(--tinta); }
@media (max-width: 760px) { .flecha { display: none; } .creaciones__pestanas { justify-content: flex-start; gap: var(--s-5); } }
/* Capítulos: variantes */
.capitulo--alto { min-height: min(96vh, 960px); }
.capitulo > img[data-paralaje] { height: 118%; top: -9%; will-change: transform; }
.capitulo--claro { color: var(--tinta); background: var(--perla); }
.capitulo--claro .capitulo__texto .texto { color: #333; }
.capitulo--der .capitulo__texto { margin-left: auto; }
/* Versiones del dije */
.versiones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); }
.versiones a { display: grid; gap: 2px; padding: var(--s-3) var(--s-4); border: 1px solid var(--linea); font-size: var(--t-s); transition: border-color 0.3s; }
.versiones a:hover { border-color: var(--tinta); }
@media (max-width: 560px) { .versiones { grid-template-columns: 1fr; } }
/* Presupuestos */
.presupuestos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); }
.presupuesto { display: grid; gap: var(--s-2); justify-items: center; text-align: center; padding: var(--s-7) var(--s-5); border: 1px solid var(--linea); transition: border-color 0.3s; }
.presupuesto:hover { border-color: var(--tinta); }
.presupuesto__valor { font-family: var(--relato); font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.6rem); font-weight: 300; line-height: 1.1; }
@media (max-width: 760px) { .presupuestos { grid-template-columns: 1fr; } }
/* El arte de la Maison */
.maison { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
.maison__item { display: grid; gap: var(--s-3); align-content: start; }
.maison__img { aspect-ratio: 4 / 5; overflow: hidden; }
.maison__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.maison__item:hover .maison__img img { transform: scale(1.04); }
.maison__item h3 { font-size: var(--t-l); font-weight: 400; }
.maison__item p { font-size: var(--t-s); color: #bdbdbd; }
@media (max-width: 900px) { .maison { grid-template-columns: 1fr; gap: var(--s-7); } .maison__img { aspect-ratio: 4 / 3; } }
/* Servicios */
.servicios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.servicio { display: grid; gap: var(--s-2); align-content: start; text-align: center; padding: var(--s-2) var(--s-5); border-left: 1px solid #dcdcdc; }
.servicio:first-child { border-left: 0; }
.servicio h3 { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.servicio p { font-size: var(--t-s); color: var(--gris); }
.servicio:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) { .servicios { grid-template-columns: 1fr 1fr; gap: var(--s-6) 0; } .servicio:nth-child(3) { border-left: 0; } }
/* Asesor con monograma */
.asesor__monograma { width: 20px; height: 20px; }
/* Cookies */
.cookies { position: fixed; left: var(--margen); bottom: var(--margen); z-index: 120; max-width: 460px; background: var(--blanco); border: 1px solid var(--linea); box-shadow: 0 10px 40px rgba(0,0,0,0.12); padding: var(--s-5); display: grid; gap: var(--s-4); font-size: var(--t-s); }
.cookies[hidden] { display: none; }
.cookies__acciones { display: flex; gap: var(--s-2); }
.cookies__acciones .boton { flex: 1; min-height: 42px; }
@media (max-width: 560px) { .cookies { left: 12px; right: 12px; bottom: 12px; max-width: none; } }
/* Journal y artículos */
.articulo[hidden] { display: none; }
.articulo-cabeza { max-width: 900px; margin: 0 auto; }
.articulo-portada { margin: 0 auto var(--s-8); max-width: 1100px; padding: 0 var(--margen); }
.articulo-portada img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.lectura h3 { font-size: var(--t-l); font-weight: 500; margin: var(--s-6) 0 var(--s-3); }
.lectura ul { padding-left: 1.2em; margin: 0 0 var(--s-5); }
.lectura blockquote { font-family: var(--relato); font-style: italic; font-size: 1.5rem; line-height: 1.4; margin: var(--s-6) 0; padding-left: var(--s-5); border-left: 1px solid var(--tinta); }
.destacado-journal { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s-7); align-items: center; max-width: var(--ancho); margin: var(--s-5) auto 0; padding: 0 var(--margen); }
.destacado-journal__img { aspect-ratio: 3 / 2; overflow: hidden; }
.destacado-journal__img img { width: 100%; height: 100%; object-fit: cover; }
.destacado-journal__texto { display: grid; gap: var(--s-4); }
@media (max-width: 900px) { .destacado-journal { grid-template-columns: 1fr; gap: var(--s-5); } }
.captura .banner { height: 820px; }
.captura .cookies { display: none; }
.captura .capitulo > img[data-paralaje] { height: 100%; top: 0; }
/* Capítulo editorial: imagen completa y texto debajo, centrado */
.editorial { display: grid; }
.editorial__media { position: relative; height: min(84vh, 820px); overflow: hidden; background: var(--perla); }
.editorial__media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.editorial__media img[data-paralaje] { height: 116%; top: -8%; }
.editorial__texto { display: grid; gap: var(--s-4); justify-items: center; text-align: center; padding: var(--s-8) var(--margen) 0; }
.editorial__texto .texto { text-align: center; }
@media (max-width: 760px) { .editorial__media { height: 70svh; } }
.captura .editorial__media img[data-paralaje] { height: 100%; top: 0; }
.captura .editorial__media { height: 620px; }
@media (max-width: 760px) { .captura .banner { height: 680px; } .captura .capitulo { min-height: 640px; } }
/* Brief fotográfico (página interna) */
.brief__tecnico { padding: var(--s-6); border: 1px solid var(--linea); margin-bottom: var(--s-8); }
.brief__tecnico ul { margin: var(--s-4) 0 0; padding-left: 1.2em; display: grid; gap: var(--s-2); font-size: var(--t-s); color: #333; }
.brief__item { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--s-7); padding: var(--s-8) 0; border-top: 1px solid var(--linea); }
.brief__imagenes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); align-items: start; }
.brief__imagenes figure { margin: 0; display: grid; gap: var(--s-2); }
.brief__imagenes img { width: 100%; height: auto; border: 1px solid var(--linea); background: var(--perla); }
.brief__imagenes figcaption { font-size: 12px; color: var(--gris); }
.brief__vacio span { display: grid; place-items: center; aspect-ratio: 1; background: var(--perla); color: var(--gris); font-size: var(--t-s); }
.brief__texto { display: grid; gap: var(--s-3); align-content: start; font-size: var(--t-s); }
.brief__texto h3 { font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; margin-top: var(--s-3); }
.brief__texto ul { margin: 0; padding-left: 1.2em; display: grid; gap: var(--s-2); }
@media (max-width: 900px) { .brief__item { grid-template-columns: 1fr; } }
.banner .relato { font-size: clamp(2.6rem, 1.6rem + 2.8vw, 4.4rem); }
/* Portada de categoría */
.cat-portada { display: grid; grid-template-columns: minmax(320px, 4fr) 6fr; min-height: min(62vh, 560px); border-bottom: 1px solid var(--linea); }
.cat-portada__texto { align-self: center; display: grid; gap: var(--s-4); padding: var(--s-8) var(--s-7) var(--s-8) var(--margen); }
.cat-portada__media { position: relative; overflow: hidden; background: var(--perla); min-height: 320px; }
.cat-portada__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.cat-portada__media--pieza img { object-fit: contain; padding: 6%; }
@media (max-width: 900px) { .cat-portada { grid-template-columns: 1fr; } .cat-portada__media { order: -1; aspect-ratio: 4 / 3; min-height: 0; } .cat-portada__texto { padding: var(--s-6) var(--margen); } }
/* Ficha: enlaces y tarjeta de asesoría */
.ficha__enlaces { display: flex; flex-wrap: wrap; gap: var(--s-5); }
.asesoria-tarjeta { display: grid; grid-template-columns: 40px 1fr; gap: var(--s-4); align-items: center; padding: var(--s-4); border: 1px solid var(--linea); font-size: var(--t-s); line-height: 1.5; transition: border-color 0.3s; }
.asesoria-tarjeta:hover { border-color: var(--tinta); }
.asesoria-tarjeta strong { font-weight: 500; }
/* Transición entre páginas y aparición de imágenes */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.35s; }
.js-movimiento img.cargando { opacity: 0; }
.js-movimiento img { transition: opacity 0.6s var(--ease); }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
/* Cuenta de cliente (diseño) */
.cuenta { max-width: 520px; margin: 0 auto; }
.cuenta .creaciones__pestanas { justify-content: center; }
.cuenta__formulario { display: grid; gap: var(--s-4); }
.cuenta__formulario[hidden], .cuenta__panel[hidden] { display: none; }
.campo { display: grid; gap: var(--s-2); font-size: var(--t-s); }
.campo input { border: 0; border-bottom: 1px solid var(--control); padding: var(--s-3) 0; font-size: var(--t-m); background: none; outline: 0; }
.campo input:focus { border-color: var(--tinta); }
.campo small { color: var(--gris); font-size: 12px; }
.casilla { display: grid; grid-template-columns: 18px 1fr; gap: var(--s-3); align-items: start; font-size: var(--t-s); color: #444; }
.casilla input { margin-top: 3px; accent-color: var(--tinta); }
.turnstile { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border: 1px solid var(--linea); font-size: 12px; color: var(--gris); }
.turnstile__caja { width: 18px; height: 18px; border: 1px solid var(--control); }
.cuenta__nota { text-align: center; }
.cuenta__aviso { font-size: 12px; color: var(--gris); text-align: center; margin-bottom: var(--s-5); }
.cuenta:has(.cuenta__panel:not([hidden])) { max-width: var(--ancho); }
.panel { display: grid; grid-template-columns: 220px 1fr; gap: var(--s-7); }
.panel__menu { display: grid; align-content: start; gap: var(--s-3); font-size: var(--t-s); color: var(--gris); }
.panel__menu a[aria-current="page"] { color: var(--tinta); text-decoration: underline; text-underline-offset: 4px; }
.panel__contenido { display: grid; gap: var(--s-5); align-content: start; }
.panel__tarjetas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); }
.panel__tarjeta { display: grid; gap: var(--s-2); align-content: start; padding: var(--s-5); border: 1px solid var(--linea); font-size: var(--t-s); }
@media (max-width: 900px) { .panel { grid-template-columns: 1fr; } .panel__menu { grid-auto-flow: column; overflow-x: auto; } .panel__tarjetas { grid-template-columns: 1fr; } }
/* Compre lo que ve: puntos sobre la foto */
.punto { position: absolute; z-index: 4; transform: translate(-50%, -50%); }
.punto__boton { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,0.28); border: 1px solid rgba(255,255,255,0.9); backdrop-filter: blur(2px); }
.punto__boton span { width: 8px; height: 8px; border-radius: 50%; background: var(--blanco); box-shadow: 0 0 0 0 rgba(255,255,255,0.7); }
.js-movimiento .punto__boton span { animation: latido 2.4s ease-out infinite; }
@keyframes latido { 0% { box-shadow: 0 0 0 0 rgba(255,255,255,0.7); } 70% { box-shadow: 0 0 0 12px rgba(255,255,255,0); } 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); } }
.punto__tarjeta { position: absolute; top: 50%; left: 46px; transform: translateY(-50%); width: 250px; display: grid; grid-template-columns: 64px 1fr; gap: var(--s-3); align-items: center; padding: var(--s-3); background: var(--blanco); color: var(--tinta); font-size: 12px; line-height: 1.5; box-shadow: 0 10px 30px rgba(0,0,0,0.14); opacity: 0; visibility: hidden; transition: opacity 0.3s var(--ease); }
.punto--izq .punto__tarjeta { left: auto; right: 46px; }
.punto__tarjeta img { width: 64px; height: 64px; object-fit: contain; background: var(--perla); }
.punto__tarjeta strong { font-weight: 500; font-size: 13px; }
.punto[data-abierto="true"] .punto__tarjeta, .punto:hover .punto__tarjeta, .punto:focus-within .punto__tarjeta { opacity: 1; visibility: visible; }
@media (max-width: 760px) { .punto__tarjeta { width: 210px; } .banner .punto { display: none; } }
.captura .punto__tarjeta { opacity: 1; visibility: visible; }
/* Zoom de galería */
.galeria__ayuda { font-size: 12px; color: var(--gris); margin-top: var(--s-2); }
[data-zoom] img { cursor: zoom-in; }
.zoom { position: fixed; inset: 0; z-index: 200; background: rgba(255,255,255,0.98); display: none; }
.zoom[data-abierto="true"] { display: block; }
.zoom__img { position: absolute; inset: 64px 80px; display: grid; place-items: center; }
.zoom__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.zoom__cerrar { position: absolute; top: 16px; right: 20px; font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.zoom__contador { position: absolute; top: 20px; left: 24px; font-size: 12px; color: var(--gris); }
.zoom .flecha { top: 50%; }
.zoom .flecha--izq { left: 20px; } .zoom .flecha--der { right: 20px; }
@media (max-width: 760px) { .zoom__img { inset: 56px 8px; } .zoom .flecha { display: grid; } }
/* Con puntos: la foto conserva su proporción para que cada punto caiga sobre la joya */
.editorial__media--puntos { height: auto; aspect-ratio: 1672 / 941; }
.captura .editorial__media--puntos { height: auto; }
@media (max-width: 760px) { .editorial__media--puntos { height: auto; } }
.buscador__vacio { grid-column: 1 / -1; display: grid; gap: var(--s-4); justify-items: start; }
/* =========================================================
   v029 · funciones de venta: filtros, selección compartida, horario,
   cita privada, medidor imprimible y testimonios
   ========================================================= */
/* Un elemento con [hidden] nunca se muestra, aunque su clase defina display */
[hidden] { display: none !important; }
/* Filtros y orden de listados */
.herramientas__cuenta { margin: 0; }
.herramientas__boton { display: inline-flex; align-items: center; gap: var(--s-2); min-height: 44px; font-size: var(--t-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tinta); }
.herramientas__boton svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.herramientas__boton:hover span:first-of-type { text-decoration: underline; text-underline-offset: 5px; }
.herramientas__activos:not(:empty) { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--tinta); color: var(--blanco); font-size: 10px; letter-spacing: 0; }
.filtros__fichas { display: flex; flex-wrap: wrap; gap: var(--s-2); padding: 0 var(--margen) var(--s-5); margin-top: calc(var(--s-3) * -1); }
.filtros__ficha { display: inline-flex; align-items: center; gap: var(--s-2); min-height: 32px; padding: 0 12px 0 14px; border: 1px solid var(--linea); border-radius: 999px; font-size: 12px; }
.filtros__ficha::after { content: "×"; font-size: 14px; line-height: 1; color: var(--gris); }
.filtros__ficha:hover { border-color: var(--tinta); }
.filtros { border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); margin: 0 0 var(--s-7); }
.filtros__velo, .filtros__cabeza { display: none; }
.filtros__panel { max-width: var(--ancho); margin: 0 auto; padding: var(--s-6) var(--margen); display: grid; gap: var(--s-6); }
.filtros__grupos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-6); }
.filtros__grupo { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: var(--s-3); align-content: start; }
.filtros__grupo legend { padding: 0; margin-bottom: var(--s-3); color: var(--gris); }
.filtros__nota { font-size: 12px; color: var(--gris); }
.opcion { display: flex; align-items: center; gap: var(--s-3); min-height: 28px; font-size: var(--t-s); cursor: pointer; }
.opcion input { appearance: none; -webkit-appearance: none; flex: none; width: 16px; height: 16px; margin: 0; border: 1px solid var(--tinta); border-radius: 0; background: var(--blanco); cursor: pointer; }
.opcion--radio input { border-radius: 50%; }
.opcion input:checked { background: var(--tinta); box-shadow: inset 0 0 0 3px var(--blanco); }
.opcion input:focus-visible { outline: 1px solid var(--tinta); outline-offset: 3px; }
.opcion:hover span { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--gris); }
.filtros__pie { display: flex; justify-content: flex-end; align-items: center; gap: var(--s-6); }
.filtros__pie .boton { min-width: 200px; }
.filtros-vacio { padding: var(--s-8) 0; }
.filtros-vacio__acciones { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-3); }
@media (max-width: 1000px) { .filtros__grupos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .filtros { position: fixed; inset: 0; z-index: 150; margin: 0; border: 0; }
  .filtros__velo { display: block; position: absolute; inset: 0; background: rgba(0,0,0,0.35); }
  .filtros__panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 88svh; overflow-y: auto; background: var(--blanco); padding: 0 var(--margen) calc(var(--s-4) + env(safe-area-inset-bottom)); gap: var(--s-5); }
  .filtros__cabeza { display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 1; background: var(--blanco); padding: var(--s-4) 0; border-bottom: 1px solid var(--linea); }
  .filtros__cerrar { min-height: 44px; font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; }
  .filtros__grupos { grid-template-columns: 1fr; gap: var(--s-5); }
  .filtros__grupo { padding-bottom: var(--s-5); border-bottom: 1px solid var(--linea); }
  .opcion { min-height: 40px; }
  .filtros__pie { position: sticky; bottom: 0; background: var(--blanco); padding: var(--s-3) 0; justify-content: space-between; }
  .filtros__pie .boton { flex: 1; min-width: 0; }
}
/* Mi selección: compartir y selección compartida */
.seleccion__titulo { margin-bottom: var(--s-6); }
.seleccion__acciones { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--s-3); margin-top: var(--s-8); text-align: center; }
.seleccion__estado { flex-basis: 100%; font-size: var(--t-s); }
.seleccion__estado:empty { display: none; }
.seleccion__enlace { flex-basis: 100%; display: grid; gap: var(--s-2); justify-items: center; font-size: 12px; color: var(--gris); }
.seleccion__enlace input { width: min(100%, 560px); border: 0; border-bottom: 1px solid var(--tinta); padding: var(--s-2) 0; font-size: var(--t-s); text-align: center; background: none; outline: 0; }
.seleccion__nota { flex-basis: 100%; font-size: 12px; color: var(--gris); }
.compartida { border-bottom: 1px solid var(--linea); }
.compartida .seleccion__acciones { margin-top: var(--s-7); }
@media (max-width: 560px) { .seleccion__acciones .boton { flex: 1 1 100%; } }
/* Horario del asesor */
.horario { display: flex; align-items: center; gap: var(--s-2); font-size: 12px; letter-spacing: 0.02em; color: var(--tinta); }
.horario::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--tinta); }
.horario[data-estado="cerrado"] { color: var(--gris); }
.horario[data-estado="cerrado"]::before { background: transparent; box-shadow: inset 0 0 0 1px var(--gris); }
.asesoria-tarjeta .horario { margin-top: var(--s-2); }
.canal .horario { margin-top: calc(var(--s-1) * -1); }
.canales--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1200px) { .canales--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .canales--4 { grid-template-columns: 1fr; } }
/* Ficha: cita y medidor */
.ficha__cita { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-1) var(--s-3); font-size: var(--t-s); margin-top: calc(var(--s-3) * -1); }
.ficha__cita .texto-gris { font-size: 12px; }
/* Cita privada */
.cita__rejilla { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.cita-formulario { display: grid; gap: var(--s-6); }
.cita__fila { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6) var(--s-5); align-items: start; }
.cita__grupo { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: var(--s-3); }
.campo__titulo { padding: 0; margin-bottom: var(--s-3); font-size: var(--t-s); }
.campo label { font-size: var(--t-s); }
.campo select, .campo textarea { border: 0; border-bottom: 1px solid var(--control); border-radius: 0; padding: var(--s-3) 0; font: inherit; font-size: var(--t-m); background: none; outline: 0; color: var(--tinta); }
.campo textarea { resize: vertical; min-height: 88px; }
.campo select { appearance: none; -webkit-appearance: none; padding-right: 24px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23111' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 2px center / 16px; }
.campo input[type="date"] { min-height: 44px; }
.campo select:focus, .campo textarea:focus { border-color: var(--tinta); }
.campo input[aria-invalid="true"], .campo select[aria-invalid="true"], .campo textarea[aria-invalid="true"] { border-color: #8f1d1d; }
.campo__error { font-size: 12px; color: #8f1d1d; }
.pastillas { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.pastilla { position: relative; }
.pastilla span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--linea); border-radius: 999px; font-size: var(--t-s); cursor: pointer; transition: border-color 0.25s var(--ease), background 0.25s var(--ease), color 0.25s var(--ease); }
.pastilla:hover span { border-color: var(--tinta); }
.pastilla input:checked + span { background: var(--tinta); border-color: var(--tinta); color: var(--blanco); }
.pastilla input:focus-visible + span { outline: 1px solid var(--tinta); outline-offset: 3px; }
.cita__grupo[aria-invalid="true"] .pastilla span { border-color: #c9a3a3; }
.campo-trampa { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cita__estado { padding: var(--s-4) var(--s-5); border-left: 2px solid var(--tinta); background: var(--perla); font-size: var(--t-s); }
.cita__estado:empty { display: none; }
.cita__nota { font-size: 12px; color: var(--gris); }
.cita__lado { position: sticky; top: 140px; display: grid; gap: var(--s-5); padding: var(--s-6); border: 1px solid var(--linea); font-size: var(--t-s); }
.cita__lado h2 { margin-top: var(--s-2); }
.cita__pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-4); counter-reset: paso; }
.cita__pasos li { counter-increment: paso; display: grid; grid-template-columns: 24px 1fr; gap: var(--s-2); line-height: 1.6; color: #333; }
.cita__pasos li::before { content: counter(paso); font-size: var(--t-xs); color: var(--gris); padding-top: 2px; }
.cita__pasos strong { font-weight: 500; }
.cita-confirmacion { display: grid; gap: var(--s-4); justify-items: start; padding: var(--s-6) 0; }
.cita-confirmacion .titulo-s:focus { outline: 0; }
.cita__numero { font-size: var(--t-s); color: var(--gris); }
.cita__numero strong { font-weight: 500; color: var(--tinta); letter-spacing: 0.04em; }
@media (max-width: 900px) {
  .cita__rejilla { grid-template-columns: 1fr; }
  .cita__lado { position: static; padding: var(--s-5); }
}
@media (max-width: 560px) { .cita__fila { grid-template-columns: 1fr; } }
/* Invitación a la cita (categoría de compromiso) */
.cita-enlace { padding: var(--s-9) var(--margen); border-top: 1px solid var(--linea); text-align: center; }
.cita-enlace .estrecho { display: grid; gap: var(--s-4); justify-items: center; }
.cita-enlace .texto { text-align: center; }
.cita-enlace__acciones { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--s-5); margin-top: var(--s-2); }
/* Guía de tallas: acceso al medidor */
.guia__medidor { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4); }
.guia__medidor .texto-gris { font-size: var(--t-s); }
/* Medidor de talla imprimible (medidas reales en mm) */
.medidor__aviso { display: grid; gap: var(--s-3); padding: var(--s-6); border: 1px solid var(--linea); margin-bottom: var(--s-7); font-size: var(--t-s); }
.medidor__aviso ul { margin: 0; padding-left: 1.2em; display: grid; gap: var(--s-2); color: #333; line-height: 1.7; }
.medidor__aviso strong { font-weight: 500; }
.medidor__hoja { display: grid; gap: 4mm; padding: 10mm 8mm; border: 1px solid var(--linea); background: var(--blanco); color: #111; }
.medidor__encabezado { display: flex; justify-content: space-between; align-items: center; gap: 4mm; padding-bottom: 3mm; border-bottom: 0.2mm solid #111; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gris); }
.medidor__encabezado img { width: 28mm; height: auto; }
.medidor__titulo { font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; margin-top: 3mm; }
.medidor__texto, .medidor__fuente { font-size: 12px; line-height: 1.6; color: #333; max-width: 46em; }
.medidor__fuente { color: var(--gris); }
.calibracion { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6mm 10mm; }
.calibracion__regla { position: relative; box-sizing: border-box; height: 5mm; border-left: 0.3mm solid #111; border-right: 0.3mm solid #111; margin-bottom: 6mm; }
.calibracion__regla::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 0.3mm solid #111; }
.calibracion__regla span { position: absolute; left: 50%; top: 6mm; transform: translateX(-50%); font-size: 11px; white-space: nowrap; }
.calibracion__tarjeta { box-sizing: border-box; display: grid; place-items: center; padding: 5mm; border: 0.3mm dashed #111; border-radius: 3mm; text-align: center; font-size: 11px; line-height: 1.5; color: var(--gris); }
.medidor__circulos { display: flex; flex-wrap: wrap; gap: 3mm 1.5mm; }
.medidor__talla { margin: 0; width: 24mm; display: grid; justify-items: center; gap: 1.5mm; text-align: center; }
.medidor__aro { width: 21mm; height: 21mm; display: grid; place-items: center; }
.medidor__circulo { position: relative; box-sizing: border-box; border: 0.25mm solid #111; border-radius: 50%; }
.medidor__circulo::after { content: ""; position: absolute; left: 50%; top: 50%; width: 0.8mm; height: 0.8mm; margin: -0.4mm 0 0 -0.4mm; border-radius: 50%; background: #111; }
.medidor__talla figcaption { display: grid; font-size: 11px; line-height: 1.35; }
.medidor__talla strong { font-weight: 500; }
.medidor__talla span { color: var(--gris); }
.tira { box-sizing: border-box; height: 16mm; padding: 0 3mm; border: 0.3mm dashed #111; }
.tira__escala { position: relative; height: 100%; }
.tira i { position: absolute; width: 0; font-style: normal; }
.tira__mm { top: 0; height: 2mm; border-left: 0.2mm solid #111; }
.tira__mm--5 { height: 3mm; }
.tira__mm--10 { height: 4mm; }
.tira__mm b, .tira__cero { position: absolute; top: 4.3mm; transform: translateX(-50%); font-size: 2.3mm; font-weight: 400; line-height: 1; }
.tira__cero { left: 0; font-weight: 500; }
.tira__unidad { position: absolute; left: 2.5mm; top: 4.3mm; font-size: 2.3mm; line-height: 1; color: var(--gris); }
.tira__talla { bottom: 0; height: 4mm; border-left: 0.25mm solid #111; }
.tira__talla--media { height: 2.5mm; }
.tira__talla b { position: absolute; bottom: 4.5mm; left: 0; transform: translateX(-50%); font-size: 2.5mm; font-weight: 500; line-height: 1; }
.tira__rotulo { position: absolute; left: 30mm; bottom: 1mm; font-size: 2.3mm; line-height: 1; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gris); }
.medidor__ayuda { display: flex; flex-wrap: wrap; gap: var(--s-5); margin-top: var(--s-6); }
@media (max-width: 560px) { .medidor__hoja { padding: 6mm 4mm; } .medidor__aviso { padding: var(--s-5); } }
@media print {
  @page { margin: 10mm; }
  .imprimible .franja, .imprimible .cabecera, .imprimible .pie, .imprimible .asesor, .imprimible .cookies, .imprimible .migas,
  .imprimible .medidor__pantalla, .imprimible .saltar, .imprimible .cajon, .imprimible .buscador, .imprimible .zoom { display: none !important; }
  .imprimible, .imprimible * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .imprimible .seccion { padding: 0 !important; }
  .imprimible .estrecho { max-width: none; }
  .imprimible .medidor__hoja { border: 0; padding: 0; gap: 3.5mm; }
  .imprimible .medidor__talla, .imprimible .calibracion, .imprimible .tira { break-inside: avoid; }
}
/* Testimonios con permiso */
.testimonios__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s-7) var(--s-6); }
.testimonio { margin: 0; display: grid; gap: var(--s-4); align-content: start; padding-top: var(--s-5); border-top: 1px solid var(--linea); }
.testimonio__texto { margin: 0; font-family: var(--relato); font-style: italic; font-weight: 300; font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.6rem); line-height: 1.4; }
.testimonio__autor { font-size: var(--t-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gris); }
.testimonio__autor a { text-decoration: underline; text-underline-offset: 3px; }
/* v032 · versión en inglés y selector de idioma */
.idioma { font-size: var(--t-xs); letter-spacing: 0.14em; border: 1px solid currentColor; padding: 2px 6px; line-height: 1.4; }
.idioma:hover, .idioma:focus-visible { background: var(--tinta); color: var(--blanco); }
.precio-usd { display: block; font-size: var(--t-xs); color: var(--gris); letter-spacing: 0.02em; }
/* C-31: anillo bicolor incluso en fondos oscuros; vence los outline:0 de campos. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--tinta); outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--blanco);
}
input::placeholder, textarea::placeholder { color: var(--gris); opacity: 1; }
/* C-51: velos editoriales. */
.ocasion__texto, .capitulo__texto { background: transparent; }
.capitulo { --lectura: 0,0,0; --lado: 90deg; }
.capitulo--claro { --lectura: 255,255,255; }
.capitulo--der { --lado: 270deg; }
.capitulo::after { pointer-events: none; background: linear-gradient(0deg, rgba(var(--lectura),0.55), rgba(var(--lectura),0) 55%), linear-gradient(var(--lado), rgba(var(--lectura),0.82) 0%, rgba(var(--lectura),0.68) 22%, rgba(var(--lectura),0.24) 44%, rgba(var(--lectura),0) 62%); }
.ocasion::after { pointer-events: none; background: linear-gradient(0deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.65) 22%, rgba(0,0,0,0) 62%); }
@media (max-width: 760px) {
  .capitulo::after { background: linear-gradient(0deg, rgba(var(--lectura),0.9) 0%, rgba(var(--lectura),0.8) 26%, rgba(var(--lectura),0.3) 48%, rgba(var(--lectura),0) 68%); }
}
/* C-45: velo del carrusel según lado de lectura. */
.banner__diapo { --velo-direccion: 90deg; }
.banner__diapo--der { --velo-direccion: 270deg; }
.banner__diapo::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.banner__diapo--claro::after {
  background: linear-gradient(0deg, rgba(255,255,255,0.92), rgba(255,255,255,0) 16%),
    linear-gradient(var(--velo-direccion), rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.84) 25%, rgba(255,255,255,0.35) 42%, rgba(255,255,255,0) 62%);
}
.banner__diapo--oscuro::after {
  background: linear-gradient(0deg, rgba(0,0,0,0.8), rgba(0,0,0,0) 16%),
    linear-gradient(var(--velo-direccion), rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.74) 25%, rgba(0,0,0,0.3) 42%, rgba(0,0,0,0) 62%);
}
.banner__texto, .banner__control { background: transparent; }
.banner__diapo--oscuro .banner__bajada { text-shadow: 0 1px 10px rgba(0,0,0,0.2); }
.banner__punto span { background: currentColor; opacity: 0.65; }
.banner__punto[aria-current="true"] span { opacity: 1; }
@media (max-width: 760px) {
  .banner__diapo--claro::after {
    background: linear-gradient(0deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.88) 24%, rgba(255,255,255,0.38) 38%, rgba(255,255,255,0) 55%);
  }
  .banner__diapo--oscuro::after {
    background: linear-gradient(0deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.78) 36%, rgba(0,0,0,0.38) 54%, rgba(0,0,0,0) 74%);
  }
}
p.precio-usd { margin: calc(var(--s-2) * -1) 0 var(--s-3); line-height: 1.5; max-width: 34em; }
.nota-precios { font-size: var(--t-xs); margin: var(--s-6) 0 0; max-width: 46em; line-height: 1.6; }
.capitulo > picture, .capitulo > picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.maison--colecciones { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.maison--colecciones h3 { margin-top: var(--s-3); }
.exterior .confianza__pasos { grid-template-columns: repeat(3, 1fr); }
.exterior__enlace { margin-top: var(--s-7); }
.pequeno { font-size: var(--t-xs); }
@media (max-width: 900px) { .exterior .confianza__pasos { grid-template-columns: 1fr; } .maison--colecciones { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .idioma { padding: 1px 5px; } }

/* Asistente Maison (v030) · panel sobrio: blanco, tinta y gris; Jost; sin emojis ni estrellas. Usa los tokens de estilos.css. */
button.asesor { border: 0; font-family: var(--sans, "Jost", Arial, sans-serif); line-height: 1; cursor: pointer; }
button.asesor:focus-visible { outline: 2px solid var(--tinta, #111); outline-offset: 3px; }

.asistente {
  position: fixed; right: clamp(12px, 2vw, 28px); bottom: calc(clamp(12px, 2vw, 28px) + 56px); z-index: 90;
  width: min(400px, calc(100vw - 24px)); height: min(640px, calc(100vh - 120px)); height: min(640px, calc(100dvh - 120px));
  display: grid; grid-template-rows: auto 1fr auto auto auto;
  background: var(--blanco, #fff); color: var(--tinta, #111); border: 1px solid var(--linea, #e6e6e6);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.14); font-family: var(--sans, "Jost", Arial, sans-serif); font-size: 0.875rem; line-height: 1.55;
}
.asistente[hidden] { display: none !important; }
.asistente a:not(.boton) { color: inherit; }

.asistente__cabeza { display: grid; grid-template-columns: 30px 1fr auto; gap: 12px; align-items: center; padding: 14px 14px 12px 18px; border-bottom: 1px solid var(--linea, #e6e6e6); }
.asistente__monograma { width: 30px; height: 30px; }
.asistente__titulo { margin: 0; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; }
.asistente__sub { margin: 2px 0 0; color: var(--gris, #6b6b6b); font-size: 0.75rem; }
.asistente__cerrar { width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: none; color: var(--tinta, #111); cursor: pointer; }
.asistente__cerrar svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.asistente__cerrar:focus-visible, .asistente button:focus-visible, .asistente a:focus-visible, .asistente input:focus-visible { outline: 1px solid var(--tinta, #111); outline-offset: 2px; }

.asistente__registro { overflow-y: auto; padding: 16px 18px; display: grid; align-content: start; gap: 14px; overscroll-behavior: contain; }
.asistente__msg p { margin: 0 0 8px; }
.asistente__msg p:last-child { margin-bottom: 0; }
.asistente__msg--persona { justify-self: end; max-width: 85%; background: var(--perla, #f4f4f3); padding: 10px 14px; overflow-wrap: anywhere; }
.asistente__msg--maison { max-width: 100%; }
.asistente__msg--ia { border-left: 1px solid var(--tinta, #111); padding-left: 12px; }
.asistente__etiqueta { font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gris, #6b6b6b); }

.asistente__enlaces { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.asistente__enlaces a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--linea, #e6e6e6); }
.asistente__enlaces a:hover { text-decoration-color: var(--tinta, #111); }
.asistente__fuente { color: var(--gris, #6b6b6b); font-size: 0.75rem; margin-top: 8px !important; }
.asistente__fuente a { text-decoration: underline; text-underline-offset: 3px; }

.asistente__piezas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 4px; }
.asistente__pieza { display: grid; gap: 4px; text-decoration: none; font-size: 0.8125rem; }
.asistente__pieza img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--perla, #f4f4f3); }
.asistente__pieza-precio { color: var(--gris, #6b6b6b); font-size: 0.75rem; }
.asistente__pieza:hover .asistente__pieza-nombre { text-decoration: underline; text-underline-offset: 3px; }

.asistente__otra { margin-top: 10px; min-height: 36px; padding: 0; border: 0; background: none; color: var(--tinta, #111); font: inherit; font-size: 0.8125rem; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--gris, #6b6b6b); cursor: pointer; }
.asistente__otra[disabled] { opacity: 0.5; cursor: default; }

.asistente__derivar { border-top: 1px solid var(--linea, #e6e6e6); padding-top: 12px; }
.asistente__derivar-titulo { font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.asistente__horario { color: var(--gris, #6b6b6b); font-size: 0.8125rem; }
.asistente__acciones { display: grid; gap: 8px; margin-top: 10px; }
.asistente .asistente__boton { width: 100%; min-height: 44px; justify-content: center; text-align: center; padding-left: 12px; padding-right: 12px; }

.asistente__registro-form { display: grid; gap: 6px; margin-top: 12px; }
.asistente__registro-form label { font-size: 0.75rem; letter-spacing: 0.06em; color: var(--gris, #6b6b6b); }
.asistente__registro-form input[type="text"], .asistente__registro-form input[type="tel"] { width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid var(--linea, #e6e6e6); background: var(--blanco, #fff); font: inherit; font-size: 1rem; color: var(--tinta, #111); }
.asistente__registro-form input[aria-invalid="true"] { border-color: var(--tinta, #111); }
.asistente__casilla { display: grid !important; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin-top: 6px; color: var(--tinta, #111) !important; letter-spacing: 0 !important; font-size: 0.8125rem !important; line-height: 1.5; }
.asistente__casilla input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--tinta, #111); }
.asistente__casilla a { text-decoration: underline; text-underline-offset: 3px; }
.asistente__error, .asistente__aviso { margin: 0; font-size: 0.75rem; color: var(--tinta, #111); font-weight: 500; }
.asistente__aviso:empty { display: none; }
.asistente__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.asistente__sugerencias { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 18px 12px; }
.asistente__sugerencia { min-height: 36px; padding: 6px 12px; border: 1px solid var(--linea, #e6e6e6); background: var(--blanco, #fff); color: var(--tinta, #111); font: inherit; font-size: 0.8125rem; cursor: pointer; }
.asistente__sugerencia:hover { border-color: var(--tinta, #111); }

.asistente__form { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid var(--linea, #e6e6e6); }
.asistente__campo { min-width: 0; min-height: 52px; padding: 0 18px; border: 0; background: none; font: inherit; font-size: 1rem; color: var(--tinta, #111); }
.asistente__campo::placeholder { color: var(--gris, #6b6b6b); }
.asistente__campo:focus-visible { outline-offset: -2px !important; }
.asistente__enviar { min-height: 52px; padding: 0 18px; border: 0; background: var(--tinta, #111); color: var(--blanco, #fff); font: inherit; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; }
.asistente__nota { margin: 0; padding: 8px 18px 10px; color: var(--gris, #6b6b6b); font-size: 0.6875rem; border-top: 1px solid var(--linea, #e6e6e6); }
.asistente__nota a { text-decoration: underline; text-underline-offset: 3px; }

/* Ficha en el celular: la barra «Consultar» ocultaba el botón; ahora el botón abre el asistente y sube sobre la barra. */
@media (max-width: 900px) {
  .con-barra .asesor[data-asistente-listo] { display: inline-flex; }
  .con-barra:has(.barra-movil[data-visible="true"]) .asesor[data-asistente-listo] { bottom: calc(76px + env(safe-area-inset-bottom)); }
}
/* Celular: hoja inferior a todo el ancho; el botón flotante se oculta mientras el panel está abierto. */
@media (max-width: 600px) {
  .asistente { left: 0; right: 0; bottom: 0; width: 100%; height: 86vh; height: 86dvh; border-width: 1px 0 0; box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.16); padding-bottom: env(safe-area-inset-bottom); }
  .asistente-abierto .asesor { display: none !important; }
  .asistente__registro { padding: 14px 16px; }
  .asistente__sugerencias { padding: 0 16px 10px; }
}
@media print { .asistente, button.asesor { display: none !important; } }
