/* ==========================================================================
   MOIRE - ficha de producto
   --------------------------------------------------------------------------
   Medidas leidas del componente "Menu Perfume", instancia 321:488 del
   fichero Rr8bUx2mFVPGNQ9mOHNwDT, y no solo de la especificacion.

   QUE ES LA BANDA Y DONDE VIVE
   No es una franja que se apile debajo de la foto: es una instancia
   SUPERPUESTA a la seccion, a todo el ancho. La primera mitad de esta hoja
   maqueta el texto y su aire; la segunda, la seccion que lo sostiene, su
   fondo y su foto.

   LO QUE EL DISENO HACE EN CADA SECCION, QUE NO ES LO MISMO EN LAS CINCO.
   Leido de los nodos, no deducido de FRASCO:

     Seccion            alto   instancia de la banda   alto   y (en la seccion)
     FRASCO 306:1899     924   321:488                  924   0
     PACK   313:2064     924   313:2068                 924   0
     SHOOT  310:1943     768   167:1572               733,9   17
     PIRAM. 361:3374     924   361:3407                 610   157
     PERF.  361:3316     924   361:3323                 610   160

   O sea que la banda solo ocupa la seccion entera en FRASCO y en PACK. En
   las otras tres es mas baja y va desplazada hacia abajo. En Figma eso se
   puede hacer porque una instancia se encoge y su contenido se sale; en CSS
   no: una caja crece con lo que lleva dentro.

   Y EL ORDEN CON LA FOTO TAMPOCO ES SIEMPRE EL MISMO. En FRASCO la foto
   (28:996, 700x700) va antes que la instancia, o sea detras. En SHOOT
   (310:1943) esta al reves: primero la instancia y despues el rectangulo de
   614x768, o sea la foto POR ENCIMA del texto. Hoy no cambia lo que se ve
   -no se solapan- pero la tarea 4 no puede dar por hecho que la foto va
   siempre detras.

   LA RESTRICCION QUE ESTA BANDA IMPONE, Y COMO SE RESOLVIO
   Su suelo son 184 + 524 + 144 = 852px a 1920 (medido: 851,98), que es el
   aire de arriba, el alto del marco del bloque derecho y el aire de abajo.
   Por debajo de 1920 encoge en proporcion (44,375vw). Con eso:

     - FRASCO, PACK, PIRAMIDE y PERFUMISTA (924): caben.
     - SHOOT (768): NO CABE. La banda empujaria la seccion hasta 852.

   SHOOT se queda en sus 768 y la banda se comprime ahi por 768/852, con el
   factor --banda-escala que se declara unas lineas mas abajo y se cambia al
   final de la hoja. El razonamiento completo esta en "SHOOT no cabe", al
   final: aqui basta con saber que las cuatro medidas verticales de la banda
   llevan ese factor y que en cuatro de las cinco secciones vale 1.

        0                                                        1920
        +-----------------------------------------------------------+
        |                    184 de aire por arriba                 |
        | 169 | The Feast Of Excess |              | MOIRE    | 169 |
        |     | AMOR                |              | Amor L.  |     |
        |     | LACTEO              |              | Eau De.. |     |
        |     | la descripcion...   |              |          |     |
        |                    144 de aire por abajo                  |
        +-----------------------------------------------------------+
          <--------- 470 --------->                <-- 380 -->

   LOS DOS BLOQUES NO ESTAN A LA MISMA ALTURA, y no es un descuido del
   diseno: los dos van centrados en vertical, pero el de la derecha vive
   dentro de un marco de 524 de alto con 238 de aire por encima, asi que su
   texto cae por debajo del de la izquierda. Se reproduce con ese marco (ver
   .banda__info) y no con un margen a ojo: asi la separacion entre los dos
   bloques la calcula el centrado, y no hay que recalcularla a mano cada vez
   que la seccion cambie de alto.

   Ojo con lo que eso NO significa: el marco de 524 es tambien el suelo de
   la banda (ver la restriccion de mas arriba), asi que "vale para cualquier
   alto" solo es cierto de 852px para arriba.

   LAS MEDIDAS VAN EN clamp(min, Nvw, diseno)
   Cada N es la medida del diseno dividida entre 1920: asi a 1920 sale el
   numero exacto de Figma y por debajo encoge en proporcion, que es como ya
   escala /collections.

   EL MOVIL SI ESTA DISENADO, Y ESTA HOJA DECIA LO CONTRARIO.
   Corregido el 16/09/2026. El fichero Rr8bUx2mFVPGNQ9mOHNwDT tiene un
   artboard de movil por fragancia, de 375 de ancho y 4116,45 de alto:

     AMOR LACTEO    403:2138      LICKORICE    419:658
     CHERRY ON TOP  419:344       LEMONUDE     419:815
     BAKE MY CHERRY 419:501       CANDYNUDE    419:972

   Son las cinco secciones otra vez, con su propia composicion -no la de
   1920 encogida- y con su propia instancia de la banda ("Menu Perfume
   Mobile", 408:368, 343x240). Lo que sigue sin estar dibujado es el TABLET:
   entre 768 y 1279 no hay artboard de ficha, asi que esa franja sigue
   siendo deducida y se somete a revision.

   Por eso esta hoja tiene ahora tres composiciones y no dos:

     - menos de 768   el artboard de movil, al pie de esta hoja.
     - 768 a 1279     deducido: la banda a dos columnas superpuesta, y la
                      piramide y el perfumista apilados.
     - 1280 y arriba  el artboard de 1920.
   ========================================================================== */

/* --- La banda -------------------------------------------------------------
   El padding es el del contenedor del componente: 184px 169px 144px.

   max-width y margin-inline SON NECESARIOS, pero no por lo que parece: el
   padding ya topa solo -clamp(20px, 8.802vw, 169px) da 169 exactos a 2560,
   medido- asi que el aire lateral no se dispara. Lo que se dispara sin tope
   es el HUECO ENTRE LOS DOS BLOQUES: justify-content: space-between los
   manda a los extremos de lo que haya, o sea 2222px de contenido en un
   monitor de 2560, y la banda deja de leerse como una composicion para
   parecer dos textos sin relacion en las esquinas.

   Es el mismo criterio de .contenedor en base.css, que aqui no se puede
   usar porque su padding lateral es otro (80, no 169). */
.banda {
  /* EL FACTOR DE COMPRESION DE LA BANDA. Vale 1 en cuatro de las cinco
     secciones y 768/852 en SHOOT, que es la unica que no da de si. El
     porque y la cuenta, en "SHOOT no cabe" al final de esta hoja. */
  --banda-escala: 1;

  display: flex;
  flex-direction: column;   /* movil: una columna. Ver el @media de abajo */
  gap: var(--paso-5);
  max-width: var(--ancho-maximo);
  margin-inline: auto;
  padding: calc(clamp(40px, 9.583vw, 184px) * var(--banda-escala))   /* 184 a 1920 */
           clamp(20px, 8.802vw, 169px)                               /* 169 a 1920 */
           calc(clamp(30px, 7.5vw, 144px) * var(--banda-escala));    /* 144 a 1920 */
}

/* --- Bloque izquierdo: coleccion, nombre y descripcion --------------------
   Los tres van en flujo normal con 15px entre ellos. En Figma estan
   colocados uno a uno sobre una reticula -no hay auto-layout- pero al medir
   los huecos salen 14,997 y 15,000: es una separacion intencionada y no tres
   empujones a ojo, asi que se escribe como un hueco y no como tres
   posiciones absolutas.

   El bloque mide 470 de ancho, que es lo que el nombre necesita; la
   coleccion y la descripcion son mas estrechas (327,8) y se acotan aparte. */
.banda__nombre,
.banda__claim {
  margin-top: 15px;
}

.banda__coleccion {
  font-size: clamp(16px, 1.354vw, 26px);   /* 26 a 1920 */
  line-height: 1;                          /* 26/26 */
  font-weight: var(--peso-bold);
  color: var(--c-rojo);
}

/* EL NOMBRE NO LLEVA EL SALTO DE LINEA ESCRITO A MANO.
   El diseno parte "AMOR LACTEO" en dos lineas, y la tentacion es meter un
   <br> en el marcado. No se hace: el nombre sale de products.php y las seis
   fragancias no se parten igual -LEMONUDE, CANDYNUDE y LICKORICE son una
   sola palabra-. Lo que parte el nombre es el ancho de la caja, 470, que es
   el del diseno: con el, el nombre de dos palabras cae en dos lineas solo y
   el de una sola palabra no se rompe por la mitad. */
.banda__nombre {
  font-size: clamp(34px, 3.958vw, 76px);   /* 76 a 1920 */
  line-height: 0.934;                      /* 71/76 */
  font-weight: var(--peso-bold);
  color: var(--c-rojo);
  text-transform: uppercase;
}

/* --- La descripcion -------------------------------------------------------
   DESVIACION TIPOGRAFICA, ANOTADA AQUI A PROPOSITO.

   El diseno compone esto en Financier Display Medium, una serif que el
   proyecto NO tiene: en assets/fonts/ solo estan los tres pesos de Neue
   Montreal. Decision del responsable del 16/09/2026: se usa Neue Montreal
   y marca lo valida.

   NO es un detalle menor y no debe colarse como si lo fuera: es el UNICO
   texto con serif de toda la ficha, asi que la sustitucion no cambia una
   letra, cambia el caracter del bloque -una serif de editorial contra una
   grotesca geometrica- y con el, el tono de la pagina.

   Si algun dia llega el fichero, mirar la licencia: el derecho de uso web
   es distinto del de escritorio.

   La font-family se declara aqui aunque se herede igual del body: es
   redundante a proposito, para que la sustitucion tenga una linea visible
   donde apoyarse en vez de ser una ausencia que nadie nota. */
.banda__claim {
  font-family: var(--font-display);        /* el diseno pide Financier Display Medium */
  font-size: clamp(16px, 1.302vw, 25px);   /* 25 a 1920 */
  line-height: 1.04;                       /* 26/25 */
  letter-spacing: 0.09em;                  /* 2,25px sobre un cuerpo de 25 */
  color: var(--c-negro);
}

/* --- Bloque derecho: marca, nombre y formato ------------------------------
   El diseno lleva el letter-spacing en la caja "Producto Info"
   (I321:488;175:1610), que envuelve los dos textos: 2,34px sobre un cuerpo
   de 26, o sea 0,09em. Es el mismo tracking relativo que la descripcion de
   la izquierda (2,25 sobre 25), asi que escrito en em se ve que son la
   misma decision y no dos numeros sueltos.

   PERO SE DECLARA EN CADA TEXTO Y NO EN EL BLOQUE QUE LOS ENVUELVE, y esto
   es una trampa que ya se comio una version de esta hoja: em se resuelve
   contra el font-size del PROPIO elemento, y .banda__info no tiene ninguno,
   asi que hereda los 16px del body y 0,09em salen 1,44px. Peor aun, lo que
   se hereda no es "0,09em" sino esos 1,44px ya calculados: los hijos, que
   si estan a 26, no lo vuelven a resolver. Medido en el navegador daba
   1,44px a 1920 y a 375, o sea ni el valor del diseno ni escalado.

   Declarado en los dos textos, que si tienen su cuerpo, sale 2,34px y
   acompana al clamp cuando la pantalla encoge.

   AQUI NO HAY CORAZON NI ICONO DE COMPARTIR. El diseno los pone debajo del
   formato; se quitan (decision del responsable del 16/09/2026). No queda ni
   la regla ni el hueco. */
.banda__marca {
  font-size: clamp(16px, 1.354vw, 26px);   /* 26 a 1920 */
  line-height: 1.154;                      /* 30/26 */
  letter-spacing: 0.09em;                  /* 2,34px sobre un cuerpo de 26 */
  font-weight: var(--peso-bold);
  color: var(--c-rojo);
}

.banda__formato {
  margin-top: 4px;   /* el hueco del diseno entre los dos textos */
  font-size: clamp(16px, 1.354vw, 26px);   /* 26 a 1920 */
  line-height: 1.231;                      /* 32/26 */
  letter-spacing: 0.09em;                  /* 2,34px sobre un cuerpo de 26 */
  color: var(--c-negro);
}

/* --- Las dos columnas del diseno -----------------------------------------
   A partir de 768 la banda es la del diseno: dos bloques a los extremos,
   centrados en vertical.

   EL BLOQUE DERECHO CONSERVA EL AIRE DE LOS ICONOS QUE SE QUITARON, y es
   una decision, no un olvido. Su marco mide 524 de alto con 238 de aire por
   encima; dentro caben el texto (124) y, en el diseno, los dos iconos. Al
   quitarlos, el marco podria encogerse a lo que ocupa el texto... y
   entonces el bloque, que va centrado, subiria unos 80px y dejaria de
   alinearse con lo que el disenador dibujo. Lo que coloca este bloque en la
   composicion es el alto de su caja, asi que la caja se queda. */
@media (min-width: 768px) {
  .banda {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0;
  }

  .banda__texto {
    width: clamp(260px, 24.479vw, 470px);   /* 470 a 1920 */
  }

  .banda__coleccion,
  .banda__claim {
    max-width: clamp(200px, 17.073vw, 327.8px);   /* 327,8 a 1920 */
  }

  .banda__info {
    width: clamp(240px, 19.792vw, 380px);   /* 380 a 1920 */
    padding-top: calc(min(12.396vw, 238px) * var(--banda-escala));   /* 238 a 1920 */
    min-height: calc(min(27.292vw, 524px) * var(--banda-escala));    /* 524 a 1920 */
  }
}


/* ==========================================================================
   LAS CINCO SECCIONES Y SUS FOTOS
   --------------------------------------------------------------------------
   Lo de arriba maqueta la banda; de aqui abajo, la seccion que la sostiene y
   la foto que va detras.

   LO QUE EL DISENO PONE EN CADA UNA, leido de los nodos del fichero
   Rr8bUx2mFVPGNQ9mOHNwDT y no de la especificacion:

     Seccion      alto  fondo           foto      caja       colocada
     FRASCO        924  blanco          28:996    700x700    centrada, 112 arriba
     PACK          924  LA FOTO         313:2065  1920x924   a sangre
     SHOOT         768  -               306:1576  614x768    centrada, alto entero
     PIRAMIDE      924  transparente    361:3394  724x724    centrada, 86 arriba
     PERFUMISTA    924  #400f17         361:3320  478x653    centrada, 40 arriba

   EL 'pack' NO TIENE CAPA DE FOTO, y era la duda que traia esta tarea. No es
   que falte: la foto ES el relleno del rectangulo de fondo de la seccion
   (313:2065, 1920x924, object-cover). O sea que en PACK la banda no se
   superpone a una foto centrada sino a la seccion entera, y por eso es la
   unica donde el texto cae SIEMPRE sobre la fotografia.

   Y AHI HAY UN PROBLEMA QUE EL DISENO NO PUEDE HABER VISTO, porque solo
   dibujo Amor Lacteo. Las seis tomas de pack NO comparten fondo: tres estan
   sobre crema (#d3d1c9 aprox: amor-lacteo, lemonude, bake-my-cherry) y TRES
   SOBRE UN ROJO OSCURO (#8d0116 aprox: cherry-on-top, candynude, lickorice).

   Los numeros, con la formula de WCAG sobre el color plano y muestreando
   ademas los pixeles del fichero debajo de cada rectangulo de texto:

                              sobre #8d0116      medido en las tres
     rojo   #e42529              2,14 : 1          1,88 - 2,13
     negro  #000000              2,15 : 1          2,15 - 2,29
     blanco #ffffff              9,77 : 1          9,18 - 9,77

   Y NO SON SOLO TRES FICHAS. El titular de 76px, medido ficha a ficha sobre
   el fondo que le toca, da 3,23 en amor-lacteo y 3,31 en lemonude -pasan- pero
   2,99 en bake-my-cherry y 1,88-1,89 en las tres oscuras: falla el 3:1 en
   CUATRO DE LAS SEIS. Y el bloque rojo de la derecha, que es de 26px en
   negrita y por tanto tiene el mismo umbral, da 2,73 - 2,96 en las claras y
   2,10 - 2,13 en las oscuras: FALLA EN LAS SEIS. El fondo claro no salva al
   rojo, solo lo deja mas cerca.

   LO QUE SE ARREGLA AQUI Y LO QUE NO. El responsable decidio el 16/09/2026
   pasar a blanco los textos DESCRIPTIVOS -la descripcion y el formato- en las
   fichas cuyo pack esta sobre fondo oscuro, y dejar los rojos como estan
   aunque sigan por debajo del minimo. Es decision suya y expresa: los rojos
   NO se tocan. La regla y de donde sale el dato, mas abajo.

   Lo que queda sin resolver es el rojo, y no tiene arreglo en esta hoja: no
   lo arregla ningun object-fit -la foto es el fondo, no hay encuadre que
   elegir- ni la solucion que el disenador uso en PERFUMISTA, porque alli el
   que fallaba era el negro y aqui el que falla es el rojo. Otra toma, un velo
   o un segundo color de marca son decisiones de marca. Levantado en el
   informe de la tarea 4.

   EL FONDO DE PIRAMIDE es rgba(217,217,217,0), o sea transparente del todo:
   se ve el blanco de la pagina. No se declara nada, y queda escrito aqui
   para que el dia que alguien lo mire en Figma y vea un gris no lo pinte.

   LAS SECCIONES VAN PEGADAS MENOS UNA. En el lienzo hay 90px entre FRASCO y
   PACK, 78 entre PACK y SHOOT, 125 entre SHOOT y PIRAMIDE y 0 entre PIRAMIDE
   y PERFUMISTA. Cuatro numeros distintos, ninguno de la escala de espaciado y
   con un cero en medio: eso no se implementa como un ritmo, porque no lo es.

   La excepcion es SHOOT, y no sale del lienzo sino de una decision del
   responsable del 16/09/2026: la foto de SHOOT ocupa el alto entero de su
   seccion, asi que llegaba a besar el borde del pack de arriba y las dos
   fotografias se tocaban sin nada en medio. Lleva 80px de aire por encima.
   Que ese numero se parezca a los 78 del lienzo es una coincidencia util,
   no su origen. Las otras tres juntas siguen a hueso hasta que marca diga
   otra cosa.
   ========================================================================== */

/* --- Movil: la foto EN FLUJO, encima de su banda -------------------------
   Por debajo de 768 no hay superposicion posible: la banda es de una sola
   columna y ocupa el ancho entero, asi que el texto caeria justo encima de
   la foto y no se leeria ninguno de los dos. Se apilan: foto y debajo el
   texto, que es el orden del marcado.

   LA FOTO CONSERVA LA PROPORCION DE UNA CAJA DEL DISENO TAMBIEN AQUI, con
   aspect-ratio, y no la del fichero. Lo que cambia es CUAL: el artboard de
   movil le da a tres de las cinco una caja distinta de la de 1920 (ver al
   pie de esta hoja), asi que las proporciones de aqui abajo son las de
   escritorio y se reescriben por debajo de 768. Lo que NO cambia es el
   reparto de contain y cover, que es el mismo a 375 que a 1920: el criterio
   de recorte es de la fotografia, no de la anchura.

   EL height:auto NO SOBRA, Y ES LA LINEA QUE ESTUVO MAL. Sin ella el
   aspect-ratio de aqui abajo NO SE APLICA NUNCA, y no da ningun error: el
   atributo height del <img> (700, 924, 768, 724, 653) entra como pista de
   presentacion y fija el alto en pixeles, asi que entre el width:100% de
   esta regla y esa pista las dos dimensiones quedan definidas y el
   aspect-ratio se queda sin nada que decidir.

   Lo que pasaba medido, y sirve de aviso: a 1440 el frasco salia en una caja
   de 525x700 en vez de 525x525 -un 33% mas alta- y SE SALIA 91px por debajo
   de su seccion; la piramide se salia 95,5; el retrato del perfumista se
   recortaba un 31% por lado en vez del 4% documentado. A 375 las cinco cajas
   daban 0,536 / 0,406 / 0,488 / 0,518 / 0,574 de proporcion en vez de
   1,000 / 2,078 / 0,800 / 1,000 / 0,732, y el pack ensenaba el 19,5% del
   ancho de su foto.

   Y SOLO SE VEIA BIEN A 1920 Y POR ENCIMA, que es justo donde el min() de
   cada ancho topa y coincide con el atributo. Es la misma linea, y por el
   mismo motivo, que ya lleva .col-hero en collections.css.

   El height:100% de pack y de shoot, que se declara mas abajo, sigue ganando
   a este auto: van despues en la hoja. */
.ficha__foto {
  width: 100%;
  height: auto;
  object-fit: contain;   /* el reparto por seccion, justo debajo */
}

/* --- CONTAIN O COVER, SECCION POR SECCION -------------------------------
   El criterio es el de /collections y no es el mismo para todas: contain
   cuando recortar puede comerse parte del producto, cover cuando el encuadre
   da igual. Aqui hace falta decidirlo cinco veces porque la caja del diseno y
   la proporcion del fichero solo coinciden en dos de los cinco casos.

   FRASCO   caja 1,000 (700x700)  fichero 0,699 (1105x1581)   -> CONTAIN
     Es LA foto de producto. Con cover, un frasco de 0,699 metido en un
     cuadrado pierde el 30% de su alto: le corta el tapon, que en esta
     coleccion es justo lo que distingue una fragancia de otra (la cereza de
     Amor Lacteo, el limon de Lemonude). Con contain entra entero, 489x700, y
     el aire que sobra no se ve porque estas fotos llevan fondo transparente
     -es lo que ya se comprobo en las tarjetas de /collections-. Y es lo que
     hace el diseno: el nodo 28:996 tambien esta en contain.

   PACK     caja 2,078 (1920x924) fichero 2,078 (2400x1155)   -> COVER (igual)
     Coinciden al tercer decimal: 1920/924 y 2400/1155 son la misma
     proporcion, asi que hoy contain y cover pintan exactamente lo mismo. Se
     escribe cover porque es lo que dice el diseno y porque es la que se
     comporta bien el dia que la seccion cambie de alto: un fondo a sangre
     tiene que seguir cubriendo, no dejar dos franjas blancas.

   SHOOT    caja 0,800 (614x768)  fichero 0,558 a 0,800       -> COVER
     Las seis tomas de ambiente NO comparten proporcion: amor-lacteo,
     bake-my-cherry y lickorice dan 0,800 clavado -coinciden con la caja-, pero
     cherry-on-top da 0,747 y candynude y lemonude bajan a 0,562 y 0,558. Con
     contain, esas dos ultimas dejarian una franja de fondo del 30% y cada
     ficha tendria un hueco de distinto tamano. Es el mismo problema que ya se
     resolvio igual en el roll over de las tarjetas (ver collections.css): el
     argumento del frasco no aplica porque esto no es una foto de producto
     sino una toma de ambiente, y su encuadre es decision del fotografo, no
     dato de catalogo. Centrado para las seis; el dia que alguna pida otro
     encuadre se le pone su object-position, que es una linea.

   PIRAMIDE caja 1,000 (724x724)  fichero 1,000 (1200x1200)   -> CONTAIN
     Tambien coinciden, asi que hoy da igual cual se ponga. Se escribe contain
     -y no el cover del diseno- por lo que pasaria si algun dia no
     coincidieran: la piramide es un DIBUJO CERRADO, con sus bordes dentro del
     cuadro, y la tarea 5 va a colgarle rotulos alrededor. Recortarlo en
     silencio se comeria una punta y descuadraria los rotulos; dejarlo entero,
     no.

   PERFUMISTA caja 0,732 (478x653) fichero 0,796 (1138x1430)  -> COVER
     El fichero es mas ancho que la caja, asi que cover recorta POR LOS
     LADOS -un 4% por cada uno- y no por arriba: el retrato esta centrado y la
     cara no corre ningun peligro. Con contain, en cambio, la foto entraria
     478x601 y quedarian 52px de burdeos por debajo, o sea el retrato
     flotando dentro de un hueco que el diseno fija en 653. Se recorta. */
/* LA CAJA DEL NOMBRE PISA LA CAJA DE LA FOTO, Y AUN ASI NO SE TOCAN.
   Medido en un monitor de 1920 de verdad, o sea con 1905 de maquetacion
   porque la barra de scroll se lleva 15. El nombre ocupa de 169 a 639, y el
   texto mas largo de las seis fragancias -CANDYNUDE, 464,4 de los 470; "BAKE
   MY CHERRY" parte en dos lineas cortas y gasta mucho menos- llega hasta
   633,4. Contra eso, donde empieza cada foto:

     PIRAMIDE   590,5   el nombre entra 42,9 en la caja
     FRASCO     602,5   el nombre entra 30,9 en la caja
     SHOOT      645,5   12,1px de aire   <- EL MAS JUSTO DE LOS CINCO
     PERFUMISTA 713,5   80,1px de aire

   En FRASCO y en PIRAMIDE las cajas SI se solapan, y aun asi los dibujos no
   se tocan, por dos motivos que no estan en esta hoja:

     - FRASCO va en contain, asi que un fichero de 0,699 dentro de un cuadrado
       de 700 se pinta 489 de ancho y arranca en 708,5. Quedan 75px de aire.
       Si esto se pusiera en cover -que es la tentacion de siempre- el frasco
       llenaria la caja, empezaria en 602,5 y el nombre le caeria encima. Es
       una segunda razon para el contain, ademas de no cortarle el tapon.
     - PIRAMIDE va en un cuadrado que si llena, pero el fichero tiene 240 de
       sus 1200 pixeles en transparente por la izquierda (medido el alfa en
       las seis): a escala son 145px vacios, y el nombre solo entra 43.

   OJO CON SHOOT, QUE ES EL QUE MENOS MARGEN TIENE: 12,1px, y al reves que los
   dos anteriores no tiene con que absorberlos. Va en cover, o sea que la foto
   llena su caja de borde a borde y ahi no hay ni aire de contain ni margen
   transparente. Cualquier cosa que ensanche el nombre -un nombre nuevo mas
   largo, otra tipografia, un ajuste del cuerpo- se lo come primero a el.

   O sea que el margen existe pero lo sostienen tres cosas ajenas al CSS: un
   object-fit, el encuadre de un .webp y la longitud de seis nombres propios.
   Si alguna llega a cambiar -una piramide reencuadrada, un frasco mas
   apaisado, una septima fragancia con un nombre largo- el nombre se sube
   encima sin que nada avise. Dicho aqui para quien cambie el material. */
/* --- Los 80px de aire por encima de SHOOT --------------------------------
   Decision del responsable del 16/09/2026. SHOOT es la unica seccion cuya
   foto ocupa el alto ENTERO -614x768, de borde a borde- asi que llegaba a
   besar el pack de arriba, que ademas va a sangre: las dos fotografias se
   tocaban sin nada en medio y la ficha se leia como una sola mancha.

   VA EN LA SECCION Y NO EN LA FOTO. Metido como hueco dentro de la seccion,
   habria que descontarlo del alto y la foto dejaria de medir 768; como
   margen, la seccion conserva sus medidas y lo que se separa son las dos
   secciones, que es lo que se pidio.

   EL CLAMP, y no 80px pelados: el resto de esta hoja escribe cada medida
   como "el numero del diseno a 1920 y proporcional por debajo", y un hueco
   fijo de 80 en un movil de 375 seria mas de un quinto de lo que mide la
   foto que separa. 4,167vw es 80/1920. El suelo de 40 no es deducido: es
   --paso-5, el paso de la escala de espaciado del proyecto, y es lo que
   evita que en movil el hueco se quede en 15px y no separe nada.

   A 1920 y por encima da 80 exactos, que es el numero que se pidio. */
.ficha__seccion--shoot {
  margin-top: clamp(var(--paso-5), 4.167vw, 80px);
}

.ficha__foto--frasco     { aspect-ratio: 700 / 700; }
.ficha__foto--pack       { aspect-ratio: 1920 / 924; object-fit: cover; }
.ficha__foto--shoot      { aspect-ratio: 614 / 768;  object-fit: cover; }
.ficha__foto--piramide   { aspect-ratio: 724 / 724; }
.ficha__foto--perfumista { aspect-ratio: 478 / 653;  object-fit: cover; }

/* --- El burdeos de PERFUMISTA, y lo que obliga a repintar ----------------
   El unico fondo de color de la ficha. Es exactamente --c-burdeos (#400f17
   en el nodo 361:3318, el mismo token que ya usa el texto del sitio).

   Y AQUI LA BANDA CAMBIA DE COLOR, que es lo que se ve leyendo la instancia
   361:3323 y no se ve mirando el diseno por encima: sobre el burdeos, la
   descripcion y el formato dejan de ser negros y pasan a Linen (#f1efe7,
   --c-crema). El nombre y el rotulo se quedan en rojo.

   NO ES UN CAPRICHO DEL DISENADOR, ES QUE EL NEGRO NO SE VE. Negro sobre
   #400f17 da 1,2987:1 de contraste -por debajo de cualquier minimo, y por
   debajo de lo que se lee-; crema sobre el mismo fondo da 14,0453:1. El rojo
   se queda porque da 3,5385:1 y los dos textos que lo llevan son grandes
   (76px, y 26px en negrita, que pasa de los 18,66 que WCAG pide para el
   umbral de 3:1). Los tres numeros van con sus decimales a proposito: el del
   rojo pasa por 35 milesimas, asi que redondearlo a "3,55" -como estuvo
   escrito- hace que parezca que sobra margen cuando no sobra ninguno.

   Se escribe como una regla de la SECCION y no como una variante de la banda
   porque lo que cambia el color no es la banda: es el fondo que tiene detras.
   Si manana otra seccion se pintara de oscuro, la regla se copia aqui y la
   banda no se entera.

   ESTA SI VALE A CUALQUIER ANCHURA, al reves que la del pack de mas abajo:
   lo que hay detras del texto es el FONDO de la seccion, que es burdeos
   tambien en movil. */
.ficha__seccion--perfumista {
  background: var(--c-burdeos);
}

/* OJO (29/09/2026): ESTA REGLA YA NO ALCANZA NADA QUE SE VEA, y se deja
   escrita a proposito. Pinta la banda que vive DENTRO de la seccion, y esas
   cinco bandas estan escondidas desde que la ficha ensena una sola banda
   pegada: en anchos grandes desde el 28/09 y en movil desde el 29/09. La
   que se ve esta fuera de las secciones.

   Lo que hoy aclara el texto sobre el burdeos esta al final de esta hoja
   (.ficha__fija[data-fondo="perfumista"]) y reusa este mismo color. Esto se
   queda porque es donde esta escrito el porque -el contraste- y porque
   vuelve a valer sola el dia que la banda regrese a su seccion. */
.ficha__seccion--perfumista .banda__claim,
.ficha__seccion--perfumista .banda__formato {
  color: var(--c-crema);
}

/* --- Y lo mismo en PACK, pero solo donde la foto es oscura ---------------
   Decision del responsable del 16/09/2026: en las fichas cuyo pack esta
   fotografiado sobre el rojo oscuro, la descripcion y el formato pasan a
   BLANCO. Negro sobre ese fondo da 2,15:1 y no se lee; blanco da 9,77:1, que
   pasa incluso el umbral de texto pequeno (4,5:1).

   LOS TEXTOS ROJOS NO SE TOCAN, y es decision expresa suya aunque el rojo
   siga por debajo del minimo ahi (2,14:1). No es un olvido de esta hoja: el
   nombre y el rotulo son color de marca y cambiarlos es otra conversacion.

   CUAL ES OSCURA NO SE DECIDE AQUI. La clase la pone producto.php leyendo
   'pack_fondo' de inc/products.php. Escribir aqui los tres slugs habria sido
   mas corto y habria puesto un dato de catalogo -sobre que fondo se
   fotografio un pack- dentro de una hoja de estilo, donde nadie lo va a
   buscar el dia que se cambie la fotografia.

   POR QUE NO SE JUNTA CON LA REGLA DE PERFUMISTA DE AQUI ARRIBA, que hace
   algo parecido: no es lo mismo y no conviene que lo parezca. Alli el color
   es CREMA porque el diseno lo dice -esta en la instancia 361:3323- y es una
   decision de composicion. Aqui es BLANCO porque una fotografia salio oscura
   y hubo que corregir. Una sola regla con los dos casos dentro dejaria de
   contar de donde viene cada color, y el dia que marca revise uno no se
   sabria si el otro iba incluido.

   Y VA DENTRO DE UN @media, QUE ES LA OTRA MITAD DEL ARREGLO. Esta regla
   nacio pensando en la superposicion, que solo existe de 768 para arriba:
   por debajo la foto va en flujo y la banda cae DEBAJO, sobre el blanco de
   la pagina. Suelta, o sea a cualquier anchura, pintaba la descripcion y el
   formato de blanco sobre blanco en las tres fichas de pack oscuro
   -cherry-on-top, candynude y lickorice- y el texto desaparecia entero en
   movil. Encontrado al maquetar el artboard de 375 el 16/09/2026. */
/* MISMO AVISO QUE EN LA DEL PERFUMISTA (29/09/2026): esta regla pinta la
   banda de dentro de la seccion, que ya no se ve. Lo que hoy aclara el
   texto sobre el pack oscuro esta al final de esta hoja
   (.ficha__fija[data-fondo="pack"]), de 1280 en adelante y reusando este
   mismo color. */
@media (min-width: 768px) {
  .ficha__seccion--pack-oscuro .banda__claim,
  .ficha__seccion--pack-oscuro .banda__formato {
    color: var(--c-blanco);
  }
}

/* --- De 768 en adelante: la banda se superpone a la foto -----------------
   Aqui entra la composicion del diseno. La seccion pasa a ser el marco -con
   el alto que le da el diseno- la foto sale del flujo y se coloca donde va, y
   la banda queda como unico hijo en flujo, centrado en vertical.

   POR QUE LA SECCION CENTRA SU BANDA, y no es un detalle de gusto: la banda
   mide 852 de alto y la seccion 924, asi que sobran 72. Dejandolos abajo (que
   es lo que pasa sin centrar) el bloque de la derecha cae a 422px del borde
   superior; centrando, a 458, que es EXACTAMENTE donde lo dibujo el diseno.
   Los 36px de diferencia son la mitad de lo que sobra, y en SHOOT, donde no
   sobra nada, el mismo centrado da 380 contra los 380 del diseno. O sea que
   una sola regla reproduce las dos.

   min-height Y NO height: si algun dia el texto de una fragancia creciera
   -una descripcion mas larga, otro idioma-, con height fijo se saldria de la
   seccion y se montaria sobre la siguiente. Con min-height la seccion crece y
   no se rompe nada. Que hoy nunca crezca es lo deseable, no algo en lo que
   apoyarse. */
@media (min-width: 768px) {
  .ficha__seccion {
    position: relative;   /* el marco contra el que se coloca la foto */
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* 924/1920 y 768/1920. Por debajo de 1920 encogen en proporcion y por
     encima topan, igual que todas las medidas de esta hoja. */
  .ficha__seccion--frasco,
  .ficha__seccion--pack,
  .ficha__seccion--piramide,
  .ficha__seccion--perfumista {
    min-height: min(48.125vw, 924px);   /* 924 a 1920 */
  }

  .ficha__seccion--shoot {
    min-height: min(40vw, 768px);       /* 768 a 1920 */
  }

  /* La banda se pinta ENCIMA de la foto. El z-index hace falta de verdad y no
     es precaucion: un <img> es un elemento reemplazado y se pinta en una capa
     posterior a los fondos de bloque, asi que sin esto el orden entre la foto
     de PACK -que cubre la seccion entera- y el texto queda en manos del
     navegador. Es la misma trampa que el titular de /collections.

     EL width:100% NO SOBRA, aunque lo parezca. La banda ya traia
     max-width + margin-inline:auto y en flujo normal eso la dejaba a todo el
     ancho; convertida en hijo de un flex en columna, deja de estarlo: un
     margen AUTO en el eje transversal cancela el estirado por defecto
     (align-items: stretch), asi que la banda se encogia a su contenido -1188
     de 1905, medido- y los dos bloques se juntaban en el centro en vez de
     irse a los extremos. Con un ancho declarado, el max-width vuelve a tener
     de que recortar y el margen automatico vuelve a centrar. */
  .banda {
    position: relative;
    z-index: 1;
    width: 100%;
  }

  /* LA FOTO, FUERA DEL FLUJO. Centrada en horizontal con left/right a cero y
     margin-inline:auto -las cinco lo estan en el diseno- y no con un
     translate: con un ancho definido esto es la forma estandar de centrar un
     absoluto y no gasta una transformacion que luego estorbe.

     El desplazamiento vertical va en numeros del diseno y no en un centrado,
     porque solo FRASCO esta centrado: PIRAMIDE cae a 86 del borde (86 arriba,
     114 abajo) y PERFUMISTA a 40, que es donde tiene que estar para que debajo
     quepan la firma y la biografia que traera la tarea 6. */
  .ficha__foto {
    position: absolute;
    left: 0;
    right: 0;
    margin-inline: auto;
  }

  .ficha__foto--frasco {
    top: min(5.833vw, 112px);           /* (924-700)/2: centrada */
    width: min(36.458vw, 700px);        /* 700 a 1920 */
  }

  /* A sangre: es el fondo de la seccion, no una foto colocada dentro. */
  .ficha__foto--pack {
    inset: 0;
    width: 100%;
    height: 100%;
  }

  /* Alto entero de la seccion. Se escribe height:100% y no se deja que lo
     ponga el aspect-ratio (614/768 daria el mismo numero a 1920) para que
     siga cubriendo si la seccion crece: en SHOOT la foto ES el alto de la
     seccion, y una franja blanca arriba o abajo seria justo lo que el diseno
     no tiene. */
  .ficha__foto--shoot {
    top: 0;
    height: 100%;
    width: min(31.979vw, 614px);        /* 614 a 1920 */
  }

  .ficha__foto--piramide {
    top: min(4.479vw, 86px);            /* 86 a 1920 */
    width: min(37.708vw, 724px);        /* 724 a 1920 */
  }

  .ficha__foto--perfumista {
    top: min(2.083vw, 40px);            /* 40 a 1920 */
    width: min(24.896vw, 478px);        /* 478 a 1920 */
  }

  /* --- SHOOT NO CABE, y esta es la decision ------------------------------
     La banda tiene un suelo de 184 + 524 + 144 = 852px a 1920 (medido por la
     tarea 3: 851,98). FRASCO, PACK, PIRAMIDE y PERFUMISTA miden 924 y les
     sobra; SHOOT mide 768 y la banda lo empujaria hasta 852, un 11% mas alto
     que el diseno.

     Habia tres salidas: que SHOOT creciera a 852, que la banda se comprimiera
     ahi, o que el marco de 524 dejara de ser fijo. Se comprime la banda, y
     los motivos son estos:

     1. EN SHOOT LA FOTO ES EL ALTO DE LA SECCION. Es la unica de las cinco
        que toca los dos bordes: 614x768, de arriba abajo. Si la seccion crece
        a 852, la foto crece con ella y su caja pasa de 0,800 a 0,720 de
        proporcion, o sea que se recorta mas de lo que el fotografo encuadro.
        En las otras cuatro la foto flota dentro de la seccion y el alto de
        esta no le afecta; aqui si.

     2. ES LO QUE HIZO EL DISENADOR. La instancia de la banda en SHOOT
        (167:1572) no mide 924 sino 733,9: la aplasto. En Figma una instancia
        se encoge y su contenido se sale; en CSS hay que decir cuanto.

     3. LO QUE SE COMPRIME NO ES CONTENIDO, ES AIRE. Los 524 del marco
        derecho son en su mayor parte el hueco de los dos iconos que se
        quitaron (ver .banda__info): dentro solo hay 124px de texto. Apretar
        aire cuesta poco; recortar mas una fotografia, no.

     EL FACTOR ES 768/852 = 0,9014, y se aplica a las cuatro medidas
     verticales de la banda a la vez -los dos paddings, el aire del bloque
     derecho y su marco-. Aplicarlo a todas y no solo a una es lo que mantiene
     la composicion: el bloque derecho se coloca a (marco/2 - aire) del centro,
     asi que escalar marco y aire por el mismo numero deja ese desplazamiento
     casi igual (24px pasan a 21,6). Medido contra el diseno: el texto de la
     derecha cae a 380,4 del borde de la seccion y el diseno lo pone en 380.

     No lleva la escala el padding LATERAL: lo que no cabe es el alto. */
  .ficha__seccion--shoot .banda {
    --banda-escala: 0.9014;   /* 768 / 852 */
  }
}


/* ==========================================================================
   LA PIRAMIDE OLFATIVA
   --------------------------------------------------------------------------
   Nodo 361:3374. La seccion PIRAMIDE es la unica que lleva una composicion
   encima de su foto: cuatro marcos de esquina que enmarcan la seccion, tres
   rotulos con sus notas y tres flechas curvas que salen del frasco hacia
   cada rotulo. El responsable adjunto el render de CHERRY ON TOP y pidio
   que quede exactamente asi.

   LAS FLECHAS SON TRAZADOS SVG DEL DISENO, NO UN DIBUJO A OJO. Salen de los
   nodos 396:1230 (a Top), 396:1227 (a Middle) y 396:1239 (a Dry-down), que
   en el arbol de capas se llaman "Recurso 2/1/5" y estan puestos donde la
   especificacion decia que habia ilustraciones de ingrediente. No las hay:
   al abrir los tres nodos lo que sale son las tres flechas, y no queda
   ningun otro vector en la seccion. Se exportaron con su giro ya aplicado
   (47,58 / 92,33 / 23,80 grados), asi que aqui no hay ni una transformada:
   cada fichero se pinta en su caja y cae donde el diseno lo puso.

   LOS TRES SON COMUNES A LAS SEIS FICHAS, igual que el marco de esquina.
   La especificacion decia que eran por fragancia -o sea dieciocho
   ficheros-; se comparo el mismo nodo entre Amor Lacteo (396:1227) y Cherry
   on Top (396:1324) y son identicos byte a byte. Por eso viven en
   assets/img/producto/ y no en la carpeta de cada fragancia.

   EL ROJO DE LOS MARCOS SE NORMALIZO. El vector trae #E52629 y el color de
   marca del proyecto es #E42529 (--c-rojo, "Rancid Red", que es ademas el
   que el propio diseno declara como estilo). Un digito de diferencia, que
   nadie ve, pero dos rojos casi iguales conviviendo en la misma pagina es
   como empiezan las paletas que ya no se pueden ordenar. Se cambio en el
   fichero SVG.

   POR QUE LOS DIBUJOS VAN EN ESTA HOJA Y NO EN EL MARCADO. No dicen nada
   que el texto no diga -son el marco del cuadro y unas flechas que apuntan-
   asi que su sitio es el CSS. Ademas la ficha tiene dos aserciones que un
   <svg> o una sexta <img> pondrian rojas con toda la razon: la que prohibe
   controles dentro de la seccion y la que exige UNA foto por seccion.

   EL LIENZO, QUE ES LO QUE HACE QUE TODO ESTO CUADRE
   De 1280 para arriba, .piramide es una capa del tamano de la seccion, con
   el mismo tope de 1920 que la banda, y TODO lo que va dentro se coloca en
   PORCENTAJES de esa capa: los horizontales sobre 1920 y los verticales
   sobre 924, que son las dos medidas del diseno. El resto de la hoja
   escribe min(Xvw, Ypx) porque coloca piezas sueltas contra la ventana;
   aqui hay diez piezas que tienen que guardar su relacion ENTRE ELLAS -una
   flecha que no sale del frasco y no llega al rotulo no es una flecha-, y un
   porcentaje la guarda por construccion mientras que diez vw hay que
   acordarse de topar los diez igual. Por encima de 1920 el lienzo se queda
   en 1920 y se centra, igual que la banda, en vez de irse a los bordes.

   Los tamanos de letra SI van en min(Xvw, Ypx): un font-size no admite
   porcentaje del ancho de la caja y el vw es la unica forma de que acompane.

   POR QUE EL CORTE ESTA EN 1280 Y NO EN 768, QUE ES EL DE LA HOJA
   Porque a 768 la composicion no es incomoda, es ilegible. Las notas son
   22px a 1920, o sea 1,146vw: a 768 salen 8,8px y el rotulo 21. Y no se
   pueden agrandar con un suelo como hace la banda, porque aqui el texto no
   esta en flujo -esta clavado en el punto exacto del que sale su flecha-,
   asi que agrandar la letra sin mover el punto la estampa contra el frasco.

   1280 es donde las notas llegan a 14,7px, que es el suelo por debajo del
   cual un parrafo deja de leerse comodamente. De ahi para abajo la seccion
   deja esta composicion: por debajo de 768 entra la del artboard de movil
   (al pie de esta hoja) y entre 768 y 1279, que no esta dibujado, la foto
   vuelve al flujo y los tres tramos se apilan debajo con letra de leer.

   EL CORTE SE VALIDO CONTRA EL DISENO DE MOVIL, no se hereda. 16/09/2026.
   El artboard de 375 (396:2332 y sus cinco hermanos) NO es esta composicion
   encogida: es OTRA composicion, con la foto a sangre, los rotulos a 24px
   en vez de 53 y las notas a 14 en vez de 22, y los tres textos colocados
   en otros puntos. O sea que el disenador tampoco creyo que esta pudiera
   encoger, y dibujo una segunda. Eso confirma el corte en vez de moverlo:
   1280 es donde esta deja de leerse y no hay ninguna anchura intermedia
   dibujada que pida otro numero. Lo que el diseno si corrige es lo de
   abajo: por debajo de 768 ya no se apila una lista, se pinta su
   composicion.

   LAS FLECHAS SE PINTAN EN LAS DOS COMPOSICIONES DIBUJADAS y no en la del
   medio. En movil son las del artboard, con su propio giro y su propio
   sitio (al final de esta hoja). De 768 a 1279 siguen sin pintarse, y ahi
   el motivo no ha cambiado: en esa franja no hay composicion dibujada -los
   tramos van en una pila debajo de la foto- y unas flechas apuntando a una
   lista no dicen nada.

   Esta hoja decia antes que en movil hacian falta TRES ficheros nuevos.
   Hace falta uno: comparados los trazados del artboard con los de
   escritorio, dos son el mismo dibujo al mismo angulo y solo el de salida
   esta girado de otra forma. La comparacion, en el bloque de movil.
   ========================================================================== */

/* --- Por debajo de 1280: los tres tramos apilados ------------------------
   Es la forma de base, la que sirve tambien en movil, y por eso se escribe
   sin @media: lo que se envuelve mas abajo es la composicion, que es la
   excepcion, y no esta. */
.piramide {
  /* El mismo aire lateral que la banda de al lado, para que los dos bloques
     de texto de la seccion empiecen en la misma vertical. */
  padding-inline: clamp(20px, 8.802vw, 169px);
  margin-top: var(--paso-5);
}

/* Los marcos enmarcan un lienzo de proporcion fija -la seccion de 1920x924-
   y aqui no hay ninguno: la seccion mide lo que midan la foto, los tramos y
   la banda. Cuatro esquinas colgadas de una caja que crece con el texto
   dejarian de ser un marco para ser cuatro manchas. */
.piramide__marco { display: none; }

.piramide__tramo + .piramide__tramo { margin-top: var(--paso-4); }

/* UN INGREDIENTE POR RENGLON, Y LO DECIDE ESTA LINEA.

   El marcado no lleva ningun <br>: lleva la lista de ingredientes, cada uno
   en su <span>, y son estos display:block los que la ponen en vertical.

   VA EN LA FORMA DE BASE Y NO DENTRO DE UN @media porque vale en las tres
   composiciones que tiene ya esta seccion: la de movil, la pila de 768 a
   1279 y la de 1280 para arriba. El diseno parte las notas en las tres, y
   en la mas estrecha es donde mas se nota: un renglon corto por ingrediente
   se lee mejor que una enumeracion con comas en una caja de 116px. */
.piramide__rotulo,
.piramide__nota,
.piramide__ingrediente { display: block; }

/* EL ROTULO VA EN INGLESA. Desde el 29/09/2026 no es el unico sitio: el
   "Ready to take a bite?" de la portada tambien (assets/css/home.css).
   Ver en fonts.css por que es Pinyon Script y no la Edwardian Script ITC
   del diseno: aquella es comercial y el fichero que llego no tenia
   licencia. */
.piramide__rotulo {
  font-family: var(--font-script);
  font-size: clamp(34px, 4.427vw, 53px);   /* 53 a 1197, que es donde topa */
  line-height: 1;
  letter-spacing: 0.09em;                  /* 4,77px sobre un cuerpo de 53 */
  color: var(--c-negro);
}

/* 16px es el suelo que ya usan la descripcion y el formato de la banda en
   esta misma anchura. No se escala con la ventana a proposito: aqui el
   texto esta en flujo y lo que tiene que hacer es leerse, no acompanar a
   una composicion que en esta anchura no existe. */
.piramide__nota {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.09em;
  color: var(--c-negro);
}

/* --- De 1280 en adelante: la composicion del diseno ---------------------- */
@media (min-width: 1280px) {

  /* EL LIENZO. inset:0 lo estira a la seccion entera -que mide 48,125vw de
     alto, o sea el 924/1920 del diseno- y el max-width lo topa en 1920 y lo
     centra, que es lo mismo que hace la banda. A partir de aqui, un 50% de
     ancho es el centro del diseno a cualquier anchura.

     Z-INDEX 2, POR ENCIMA DE LA BANDA, y no es lo que hace el diseno: alli
     la instancia de la banda va la ultima, o sea encima. No hay ni un pixel
     donde se solapen los textos -comprobado contra el render- asi que
     pintar esto encima no cambia nada de lo que se ve; lo que cambia es que
     la caja de la banda, que ocupa la seccion entera y es transparente, deje
     de tragarse el raton sobre los tramos. Las notas olfativas son el
     contenido de esta seccion y tienen que poder seleccionarse y copiarse.

     LAS TRES FLECHAS SON EL FONDO DE ESTE LIENZO. Tres capas, cada una con
     su caja y su sitio, y ni un elemento en el marcado.

     CADA FLECHA NACE DE SU TERCIO DEL CUERPO DEL FRASCO. El cuerpo se parte
     en tres partes iguales y cada flecha sale del CENTRO VERTICAL de la
     suya: el tercio alto va al rotulo Top, el del medio a Middle y el bajo
     a Dry-down. Es la piramide olfativa dibujada como los tres niveles del
     frasco, que es lo que el diseno cuenta.

     LA CEREZA QUEDA FUERA. Esta por encima del cuerpo -acaba donde la
     silueta se ensancha, en y=562- y no es una de las tres notas.

     POR QUE POR TERCIOS Y NO POR LAS FRANJAS DE COLOR, que es lo primero
     que se intento y lo que parece obvio mirando una foto: PORQUE NO HAY
     TRES FRANJAS EN LAS SEIS. Medido recorriendo el eje vertical de cada
     .webp y promediando una banda horizontal de 340px por fila:

       - Amor Lacteo y Bake my Cherry tienen CUATRO capas de color reales
         (espuma, caramelo, naranja y rosa la primera; rojo, palido,
         cerezas y rosa la segunda), asi que "la del medio" no existe: hay
         dos candidatas y elegir una seria una decision de diseno disfrazada
         de medida.

       - LICKORICE NO SE PUEDE MEDIR. Entre sus tres tramos hay 35 puntos de
         diferencia sumando los tres canales. En Cherry on Top ese mismo
         numero es 221 y en Bake my Cherry 387: un orden de magnitud mas.
         O sea que en Lickorice la diferencia entre capas esta al nivel de
         los reflejos del cristal, y cualquier umbral que separe las capas
         parte tambien los brillos.

       - Y en las que si son tres, el corte automatico da cuatro o cinco
         tramos porque las franjas llevan degradado dentro.

     Un criterio que depende del color falla en una de las seis y queda
     indefinido en dos mas. El tercio, en cambio, sale de la GEOMETRIA -el
     alto del cuerpo- y esa se mide igual de bien en las seis. Decision del
     responsable del 17/09/2026 con estas medidas delante.

     EL CUERPO, Y POR QUE ES UNO SOLO PARA LAS SEIS. Va de 562 a 945 en
     pixeles de la imagen de 1200x1200: arriba, la fila donde la silueta
     pasa de 432 de ancho -la cereza- a mas de 550 -el cuerpo-; abajo, el
     canto del bloque de cristal de la base, que es el salto de color mas
     fuerte de toda la foto y se ve hasta en Lickorice (562 puntos alli, el
     mayor de las seis).

     Medido foto a foto sale 561-562 arriba y 943-947 abajo, o sea 383 a 386
     de alto. Llevado a los centros de los tercios, la diferencia entre la
     fragancia que mas se desvia y la que menos es de 2,4px sobre 1200: en
     el lienzo de 1920 eso es UN pixel. Por eso hay un solo juego de tres
     anclajes y no una tabla de seis filas: seis filas con el mismo numero
     son una tabla de mentira. Los tres anclajes son identicos en las seis
     fichas, que es ademas lo que el responsable pidio expresamente.

       tercio        de     a     centro
       alto         562   689     625,8
       medio        690   817     753,5
       bajo         818   945     881,2

     COMO SE ANCLA UNA FLECHA. Cada trazado tiene una COLA -el extremo fino,
     el que nace del frasco- y una punta. La cola esta en un sitio fijo
     dentro de su propia caja, medido rasterizando los tres SVG:

       flecha    fichero          caja       cola en la caja
       a Top     flecha-salida    161 x 152    3, 124   (abajo a la izq.)
       a Middle  flecha-corazon   258 x 203  249, 201   (abajo a la der.)
       a Dry-d.  flecha-fondo     223 x 213   70,   4   (arriba a la izq.)

     Los DIBUJOS no se tocan: son los trazados del diseno, con su giro ya
     aplicado, y la curvatura de la de Dry-down es la que el responsable
     quiso conservar. Lo unico que cambia es de donde cuelgan.

     DE LA IMAGEN AL LIENZO. La foto entra con object-fit:contain en una
     caja de 724 que el diseno pone a (598, 86), y la imagen es cuadrada, o
     sea que el factor es 724/1200 = 0,603333 y no hay recorte que descontar:

       diseno = 598 o 86  +  pixel de imagen x 0,603333

     Y la caja de cada flecha se cuelga en (centro del tercio - cola):

       flecha    centro del tercio   menos la cola    caja en el lienzo
       Top       1069,81  463,59      3, 124          1066,81  339,59
       Middle     863,47  540,61    249, 201           614,47  339,61
       Dry-down   893,63  617,64     70,   4           823,63  613,64

     Los porcentajes de aqui abajo son esos numeros entre 1920 y entre 924.
     Las X no salen del tercio -el tercio es una medida vertical- sino del
     lado del frasco por el que cada flecha se va: Top sale por la derecha y
     las otras dos por la izquierda, que es hacia donde estan sus rotulos.

     OJO CON background-position: se usa la forma de CUATRO valores
     (left X% top Y%) y no la de dos. Son cosas distintas: "left 55%" es
     "separa el borde izquierdo de la imagen un 55% del ancho de la caja",
     que es lo que aqui hace falta, mientras que "55%" a secas alinea el 55%
     de la imagen con el 55% de la caja y daria otro numero por cada
     flecha. */
  .piramide {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    max-width: var(--ancho-maximo);
    margin-inline: auto;
    margin-top: 0;
    padding-inline: 0;

    background-image: url("../img/producto/flecha-salida.svg"),
                      url("../img/producto/flecha-corazon.svg"),
                      url("../img/producto/flecha-fondo.svg");
    background-repeat: no-repeat;
    background-size: 8% 16%,     /* 161 x 152 */
                     13% 21%,    /* 258 x 203 */
                     11% 23%;    /* 223 x 213 */
    background-position: left 60% top 42%,   /* cola en el tercio alto  */
                         left 38% top 48%,   /* cola en el tercio medio */
                         left 42% top 88%;   /* cola en el tercio bajo  */
  }

  /* LOS CUATRO MARCOS SON EL MISMO DIBUJO ESPEJADO, no cuatro ficheros ni
     cuatro giros. El de arriba a la izquierda es el original (361:3378); el
     de arriba a la derecha es el mismo con scaleX(-1), el de abajo a la
     izquierda con scaleY(-1) y el de abajo a la derecha con los dos. Es lo
     que hace el diseno y lo que cabia esperar de una esquina: un corchete
     espejado sigue siendo un corchete, girado 90 grados seria otro dibujo.

     141,39 EN CUADRADO: el ancho va sobre 1920 y el alto sobre 924, que son
     dos porcentajes distintos para el mismo numero de pixeles. Cuadran
     porque la seccion mantiene la proporcion del diseno. */
  .piramide__marco {
    display: block;
    position: absolute;
    width: 7.3641%;    /* 141,39 de 1920 */
    height: 15.3019%;  /* 141,39 de  924 */
    background: url("../img/producto/marco-esquina.svg") no-repeat;
    background-size: 100% 100%;
  }

  /* Los cuatro margenes son los del diseno y NO son simetricos: 85 por la
     izquierda contra 80,61 por la derecha, 55 por arriba contra 43,61 por
     abajo. Son cuatro pixeles y once pixeles de diferencia a 1920, o sea
     invisibles, pero se copian tal cual porque el encargo fue que quedara
     exactamente como el render. Si algun dia se decide cuadrarlos, que sea
     una decision de quien lo dibujo y no un redondeo de este fichero. */
  .piramide__marco--ai { left:  4.4271%; top:    5.9524%; }   /* 85    / 55    */
  .piramide__marco--ad { right: 4.1984%; top:    5.9524%; }   /* 80,61 / 55    */
  .piramide__marco--bi { left:  4.4271%; bottom: 4.7197%; }   /* 85    / 43,61 */
  .piramide__marco--bd { right: 4.1984%; bottom: 4.7197%; }   /* 80,61 / 43,61 */

  .piramide__marco--ad { transform: scaleX(-1); }
  .piramide__marco--bi { transform: scaleY(-1); }
  .piramide__marco--bd { transform: scale(-1, -1); }

  /* Los tres tramos, cada uno clavado donde el diseno lo puso. El ancho de
     476 es el de la caja de texto en Figma: con el, la nota mas larga de
     las dieciocho -las tres de Lemonude- sigue cayendo en una sola linea. */
  .piramide__tramo {
    position: absolute;
    width: 24.7917%;   /* 476 de 1920 */
  }

  /* SE APAGA EL HUECO DE LA PILA CON EL MISMO SELECTOR QUE LO ENCIENDE, y
     no con un margin-top:0 en .piramide__tramo de aqui arriba. Es lo que
     estuvo mal: ".piramide__tramo + .piramide__tramo" tiene mas peso que
     ".piramide__tramo", asi que los 30px seguian aplicandose y los tramos
     de corazon y de fondo salian 30px por debajo de su sitio -medido: 231
     en vez de 201, y 826 en vez de 796-. Con position:absolute y un top
     declarado, un margen no da error ni descoloca nada visible: solo
     desplaza. */
  .piramide__tramo + .piramide__tramo {
    margin-top: 0;
  }

  .piramide__tramo--salida  { left: 64%; top: 28%; }   /* 1248 / 164 */
  .piramide__tramo--corazon { left: 30%; top: 24%; }   /*  587 / 201 */
  .piramide__tramo--fondo   { left: 48%; top: 83%; }   /* 1048 / 796 */

  /* LINE-HEIGHT MENOR QUE 1, Y ES DEL DISENO: la caja del rotulo mide 26px
     con un cuerpo de 53. Las astas de la inglesa se salen de esa caja por
     arriba y por abajo, que es justo el efecto -el rotulo ocupa mas de lo
     que mide- y es tambien lo que deja la nota pegada debajo sin un hueco
     de renglon en medio. */
  .piramide__rotulo {
    font-size: min(2.7604vw, 53px);   /* 53 a 1920 */
    line-height: 0.4906;              /* 26/53 */
  }

  .piramide__nota {
    margin-top: min(0.7813vw, 15px);   /* 41 menos los 26 de caja del rotulo */
    font-size: min(1.1458vw, 22px);    /* 22 a 1920 */
    line-height: 1.1818;               /* 26/22 */
  }

  /* El tramo de fondo separa su nota 10px mas que los otros dos (51 contra
     41 en el diseno). Es lo unico que los distingue y se copia tal cual.

     Y ES EL UNICO SITIO DONDE ESOS 10px SE NOTAN, desde que las notas van
     en vertical: el tramo de fondo empieza a 796 y con TRES ingredientes
     -Lemonude y Candynude- su caja acaba en 925, o sea un pixel por debajo
     del suelo de la seccion. Medido en el navegador: no se sale ni un pixel
     de tinta, porque el ultimo renglon deja 26 de interlinea para un cuerpo
     de 22 y la letra acaba en 923. Queda escrito para quien anada una
     fragancia con CUATRO ingredientes en el tramo de fondo: eso si se
     saldria, y sobre el burdeos de la seccion de abajo. */
  .piramide__tramo--fondo .piramide__nota {
    margin-top: min(1.3021vw, 25px);   /* 51 menos los 26 de caja del rotulo */
  }
}


/* ==========================================================================
   EL PERFUMISTA
   --------------------------------------------------------------------------
   Nodo 358:2580, que es el que entrego el responsable: el 361:3316 que
   nombra la especificacion es la seccion con el retrato a secas, sin firma
   ni biografia.

   Debajo de la foto van el nombre en rojo, enorme y en mayusculas, y la
   biografia en crema a 852 de ancho. Medidas del diseno, sobre la seccion
   de 1920x924:

     retrato      478 x 653, centrado, a 40 del borde de arriba (ya estaba)
     nombre       caja de 863 x 61 centrada, y = 699, 81px Bold
     biografia    caja de 852 centrada, y = 767, 24px Regular

   EL NOMBRE EN ROJO SI, LA BIOGRAFIA NO, y no es una preferencia. Sobre el
   burdeos de la seccion el rojo da 3,5385:1: pasa el umbral de texto grande
   (3:1) y el nombre son 81px en negrita, o sea texto grande con holgura. La
   biografia son 24px, texto pequeno, y ahi el minimo es 4,5:1; el mismo
   rojo la dejaria en 3,54 y sin arreglo posible. En crema da 14,0453:1. Es
   la misma cuenta que ya obligo a repintar la descripcion y el formato de
   la banda en esta seccion, unas reglas mas arriba.

   EL MISMO CORTE EN 1280 QUE LA PIRAMIDE, y por el mismo motivo: el nombre
   es 4,219vw y la biografia 1,25vw, o sea 32px y 9,6px a 768. La biografia
   a 9,6px no se lee. De 1280 para abajo la seccion se apila como en movil
   -retrato, firma, biografia, banda- con letra de leer.
   ========================================================================== */

/* --- Por debajo de 1280: apilado ----------------------------------------- */
.perfumista {
  padding-inline: clamp(20px, 8.802vw, 169px);
  margin-top: var(--paso-5);
  text-align: center;
}

/* MAYUSCULAS POR CSS Y NO EN EL DATO. perfumistas() guarda "Guillaume
   Flavigny" en caja normal porque asi se escribe el nombre de una persona;
   que en esta seccion salga gritado es una decision tipografica del diseno
   y vive aqui. Es lo contrario de lo que se hace con el nombre de la
   fragancia en la banda -alli el dato ya viene en mayusculas y NO se toca-
   y la diferencia esta explicada en inc/producto-perfumista.php. */
.perfumista__nombre {
  font-size: clamp(34px, 6.328vw, 81px);   /* 81 a 1280, que es donde topa */
  line-height: 1;
  font-weight: var(--peso-bold);
  color: var(--c-rojo);
  text-transform: uppercase;
}

/* La biografia va alineada a la izquierda tambien aqui, aunque el nombre de
   encima vaya centrado: son cuatro renglones largos y un parrafo centrado
   obliga a buscar donde empieza cada linea. Es lo que hace el diseno. */
.perfumista__bio {
  margin-top: var(--paso-3);
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.09em;
  color: var(--c-crema);
  text-align: left;
}

/* --- De 1280 en adelante: la composicion del diseno ---------------------- */
@media (min-width: 1280px) {

  /* Mismo lienzo que la piramide -topado en 1920 y centrado- pero colgado
     de su sitio en vez de estirado: aqui solo hay dos textos, uno debajo del
     otro, asi que basta con clavar el de arriba y dejar que el otro caiga.

     Z-INDEX 2 por lo mismo que alli: la caja de la banda cubre la seccion
     entera y sin esto la biografia no se podria ni seleccionar. Los textos
     no se solapan en ningun punto, asi que lo que se ve no cambia. */
  .perfumista {
    position: absolute;
    top: 73%;   /* 699 de 924 */
    left: 0;
    right: 0;
    z-index: 2;
    width: 100%;
    max-width: var(--ancho-maximo);
    margin-top: 0;
    margin-inline: auto;
    padding-inline: 0;
  }

  /* LA CAJA DEL DISENO ES DE 863 Y AQUI EL NOMBRE OCUPA EL LIENZO ENTERO.
     Da igual mientras no se parta -va centrado, asi que la caja solo decide
     donde rompe- y evita el unico fallo feo que tenia esto: con font-display
     swap el primer pintado es con la tipografia del sistema, que es mas
     ancha, y "GUILLAUME FLAVIGNY" a 81px en Arial se pasa de los 863 y cae
     en dos lineas... que con el line-height de 0,753 de aqui abajo se montan
     una encima de otra. Con el ancho del lienzo no se parte ni con la
     tipografia de respaldo.

     El line-height es el de la caja del diseno (61 sobre 81), y es lo que
     deja la biografia a 6px justos por debajo. */
  .perfumista__nombre {
    font-size: min(4.2188vw, 81px);   /* 81 a 1920 */
    line-height: 0.7531;              /* 61/81 */
  }

  .perfumista__bio {
    width: min(44.375vw, 852px);       /* 852 a 1920 */
    margin-top: min(0.3125vw, 6px);    /* 767 - 699 - 61 de caja del nombre */
    margin-inline: auto;
    font-size: min(1.25vw, 24px);      /* 24 a 1920 */
    line-height: 1.125;                /* 27/24 */
  }
}


/* ==========================================================================
   DE 768 A 1279: LAS CINCO SECCIONES VUELVEN A LA PILA DEL MOVIL
   --------------------------------------------------------------------------
   El resto de la hoja da por hecho que de 768 para arriba la seccion es un
   marco de alto fijo con la foto fuera del flujo y la banda superpuesta. En
   PIRAMIDE y PERFUMISTA eso deja de valer antes de 1280, porque lo que va
   debajo de la foto -las notas, la biografia- no cabe legible en un lienzo
   de 924 escalado a 1000px de ancho: las notas saldrian a 11px y la
   biografia a 12.

   Asi que en esa franja las dos secciones se apilan: la foto vuelve al
   flujo, el bloque cae debajo y la seccion mide lo que mida su contenido.

   OJO, ESTA FRANJA NO ES "COMO EN MOVIL" AUNQUE LO PAREZCA. Por debajo de
   768 hay una composicion propia, la del artboard de movil -la foto a
   sangre con los tres rotulos colocados alrededor-, que esta al final de
   esta hoja. La pila de aqui es la tercera forma de la seccion y no se
   parece a ninguna de las otras dos: es la que sale cuando el lienzo de
   1920 ya no cabe legible y el de 375 se queda corto.

   Son dos declaraciones y no una copia de ningun otro bloque:
   position:static devuelve la foto al flujo -y con ella deja de aplicarse
   el left/right que la centraba como absoluta, de ahi que haya que volver a
   centrarla con el margen- y min-height:0 quita el suelo de 924.

   EL LIMITE SUPERIOR ES 1279.98 Y NO 1279. Con 1279 se abre un pasillo de
   anchuras fraccionarias -1279,5, que es lo que da un portatil con zoom del
   sistema- donde no manda ninguno de los dos bloques y la seccion se
   quedaria sin colocar.

   AMPLIADO A FRASCO, PACK Y SHOOT (16/09/2026), y el motivo no es el mismo
   que el de arriba: aqui no es un problema de letra pequena, es que el
   bloque derecho de la banda (.banda__info) tiene un suelo de 240px y a
   esta anchura la foto flotante -o, en PACK, la foto a sangre de toda la
   seccion- ya ocupa el centro, asi que el bloque derecho aterriza encima:
   medido en el navegador, a 768 el texto se mete 71px dentro de la foto en
   FRASCO, 54 en SHOOT y 240 en PACK (que es la seccion entera). Nunca pasa
   en escritorio porque a 1280 la foto ya no crece mas (topa en su medida de
   diseno) y sobra sitio a los lados para los dos bloques de texto.

   Se resuelve con la misma receta que ya llevan PIRAMIDE y PERFUMISTA -foto
   de vuelta al flujo, banda debajo, sin position:absolute que la deje
   flotando encima del texto- y no con una foto mas estrecha ni con la banda
   en una sola columna: el marcado ya trae la foto ANTES que la banda en las
   cinco secciones (ver producto.php), asi que apilarlas no cambia el orden
   de lectura ni exige tocar el marcado, y es el cambio mas pequeno que
   reutiliza el mismo criterio ya validado en PIRAMIDE y PERFUMISTA en vez
   de inventar uno nuevo. El resultado visual es el mismo: la banda
   conserva sus dos columnas (texto a la izquierda,
   marca y formato a la derecha), solo que ahora debajo de la foto y no
   superpuesta. */
@media (min-width: 768px) and (max-width: 1279.98px) {
  .ficha__seccion--frasco,
  .ficha__seccion--pack,
  .ficha__seccion--shoot,
  .ficha__seccion--perfumista {
    min-height: 0;
  }

  .ficha__seccion--perfumista {
    padding-top: 40px;
  }

  .ficha__foto--frasco,
  .ficha__foto--pack,
  .ficha__foto--shoot,
  .ficha__foto--perfumista {
    position: static;
    margin-inline: auto;
  }

  /* PACK NO ES UNA FOTO SUELTA, ES EL FONDO A SANGRE DE LA SECCION ENTERA
     (inset:0 + width/height:100%, ver mas arriba). Sacada del flujo, la
     seccion ya no tiene un alto fijo del que sacar ese 100% de alto -lo
     quito min-height:0 justo encima- asi que height:100% dejaria de tener
     contra que resolverse. Aqui basta con el ancho: alto automatico, que
     es la proporcion real del fichero (1920x924, la misma caja del
     diseno). */
  .ficha__foto--pack {
    height: auto;
  }

  /* EL TEXTO BLANCO DE PACK-OSCURO DEJA DE VALER AQUI, Y ES CONSECUENCIA
     DIRECTA DE SACAR LA FOTO DEL FLUJO UNAS LINEAS MAS ARRIBA. La regla de
     mas arriba (.ficha__seccion--pack-oscuro .banda__claim/.banda__formato)
     pinta esos dos textos de blanco porque de 768 para arriba la banda iba
     SUPERPUESTA a la foto oscura del pack; aqui la foto ya no esta detras
     -esta encima, en el flujo, y la banda cae debajo sobre el fondo blanco
     de la pagina- asi que blanco sobre blanco desaparece el texto entero.
     Se devuelve al negro de siempre, que es el que ya usan estos mismos
     textos por debajo de 768 por el mismo motivo. */
  .ficha__seccion--pack-oscuro .banda__claim,
  .ficha__seccion--pack-oscuro .banda__formato {
    color: var(--c-negro);
  }
}


/* ==========================================================================
   LA PIRAMIDE EN TABLET (768-1279): BLOQUE PROPIO
   --------------------------------------------------------------------------
   TRES COMPOSICIONES INDEPENDIENTES Y NO UNA ESCALADA. Escritorio tiene la
   suya (nodo de 1920), movil la suya (artboard de 375) y esto es la tercera.
   El DIBUJO es el mismo en las tres -frasco, tres flechas, tres rotulos con
   sus notas- pero los numeros no se comparten: tocar un porcentaje de aqui
   no mueve nada en las otras dos, y al reves. Es deliberado.

   POR QUE NO VALIA HEREDAR. Hasta aqui, entre 768 y 1279 la piramide caia
   al apilado de base: foto arriba y las notas debajo en columna, sin
   flechas. Y escalar la composicion de 1920 tampoco servia, porque sus
   cuerpos van en vw: a 768 el rotulo salia a 21px y la nota a 8,8px, que es
   ilegible. De ahi que los cuerpos de aqui abajo tengan su propia formula.

   DONDE SE TOCA CADA COSA -los tres sitios, por orden:
     1. TAMANO DE LAS FLECHAS ... background-size
     2. SITIO DE LAS FLECHAS .... background-position
     3. SITIO DE LOS ROTULOS .... .piramide__tramo--salida / --corazon / --fondo

   En los tres el orden es SIEMPRE salida (Top), corazon (Middle), fondo
   (Dry-down). En background-position se usa la forma de cuatro valores
   (left X% top Y%): X mide desde el borde izquierdo y crece hacia la
   derecha, Y desde el borde de arriba y crece hacia abajo.

   OJO CON --fondo: cuelga de abajo (bottom) y no de arriba, igual que en
   movil y por el mismo motivo -que el parrafo crezca hacia la foto y no
   hacia la banda cuando las notas castellanas rompen en mas lineas-. Ahi
   subir el numero SUBE el rotulo, al reves que en los otros dos.

   NUMEROS PROVISIONALES: son un punto de partida razonable, no una medida
   sacada de un nodo. Estan para que el responsable los cuadre a ojo.
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1279.98px) {

  /* LA BANDA BAJA AL SUELO Y NO SE CENTRA, que es lo que hacen las otras
     cuatro secciones aqui. Centrada, su bloque derecho -MOIRE, el nombre y
     el formato- caia a media altura del frasco y se le montaba encima: el
     mismo defecto que se corrigio apilandolo todo. Con flex-end la banda se
     va abajo y el alto de la seccion reserva sitio para la composicion
     entera por encima. */
  .ficha__seccion--piramide {
    min-height: min(100.5vw, 1286px);
    justify-content: flex-end;
  }

  /* EL FRASCO, MAS PEQUENO QUE EN 1920 EN PROPORCION (38% del ancho contra
     37,7% de una seccion mucho mas ancha): si ocupa demasiado, las flechas
     y los rotulos quedan diminutos a su lado. */
  .ficha__foto--piramide {
    top: min(7vw, 90px);
    width: min(62vw, 640px);
  }

  .piramide {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    max-width: var(--ancho-maximo);
    margin-inline: auto;
    margin-top: 0;
    padding-inline: 0;

    background-image: url("../img/producto/flecha-salida.svg"),
                      url("../img/producto/flecha-corazon.svg"),
                      url("../img/producto/flecha-fondo.svg");
    background-repeat: no-repeat;

    /* 1. TAMANO DE LAS FLECHAS */
    background-size: 15% 15%,      /* salida  */
                     20% 20%,      /* corazon */
                     22% 22%;      /* fondo   */

    /* 2. SITIO DE LAS FLECHAS */
    background-position: left 70% top 32%,   /* salida  */
                         left 26% top 37%,   /* corazon */
                         left 42% top 68%;   /* fondo   */
  }

  .piramide__tramo {
    position: absolute;
    width: 28%;
  }

  /* El mismo apano que en las otras dos composiciones: el selector del
     hueco de la pila pesa mas que el del tramo, asi que hay que apagarlo
     con el mismo selector que lo enciende. */
  .piramide__tramo + .piramide__tramo { margin-top: 0; }

  /* 3. SITIO DE LOS ROTULOS */

  /* 67.7% Y NO 76%, QUE SE SALIA DE LA PANTALLA (30/09/2026).

     Mismo fallo que el de la composicion de movil y bastante peor: el
     tramo mide 28% y con left: 76% sumaba 104%. Medido en una ficha a
     1100: el rotulo acababa en el pixel 1128 con la ventana en 1085, o sea
     43px de pagina de mas y barra de desplazamiento horizontal; a 900 eran
     35. No se habia visto porque el desbordamiento que reporto el
     responsable se busco a 375 y esta composicion empieza en 768.

     67.7 + 28 = 95.7, que es el mismo borde derecho que tiene el rotulo en
     movil (64.8 + 30.93). Se copia de alli y no del 1920 -donde acaba en
     88.8- porque las dos composiciones estrechas cuelgan el rotulo del
     borde y la ancha lo mete hacia dentro.

     EL SITIO EXACTO ES DISCUTIBLE Y EL DESBORDAMIENTO NO: cualquier valor
     por encima de 72% se sale. Si marca lo quiere mas adentro o mas
     afuera, es este numero y nada mas. */
  .piramide__tramo--salida  { left: 67.7%; top:     25%; }
  .piramide__tramo--corazon { left:  10%; top:    20%; }
  .piramide__tramo--fondo   { left: 54%; bottom: 24%; }

  /* Cuerpos propios: entre los 24/14 de movil y los 53/22 de 1920. El
     interlineado del rotulo es el de 1920 -menor que uno, para que las
     astas de la inglesa se salgan de la caja y la nota quede pegada. */
  .piramide__rotulo {
    font-size: min(4.7vw, 60px);
    line-height: 0.4906;
  }

  .piramide__nota {
    margin-top: min(0.9vw, 12px);
    font-size: min(2.1vw, 27px);
    line-height: 1.1818;
  }

  .piramide__tramo--fondo .piramide__nota {
    margin-top: min(1.5vw, 19px);
  }
}


/* ==========================================================================
   EL DISENO DE MOVIL (375)
   --------------------------------------------------------------------------
   Artboards "<FRAGANCIA> - Mobile" del fichero Rr8bUx2mFVPGNQ9mOHNwDT:
   403:2138 (Amor Lacteo) y 419:344 / 419:501 / 419:658 / 419:815 / 419:972.
   375 de ancho, 4116,45 de alto, las mismas cinco secciones. Leidos los dos
   primeros: el esquema se repite igual en las seis, como en escritorio.

   VA EN UN max-width Y NO EN LAS DECLARACIONES DE BASE, que es lo que un
   "movil primero" pediria. El motivo es que lo de arriba ya esta escrito
   como la formula de escritorio -clamp(suelo, Nvw, numero de Figma)- y sus
   suelos solo entran por debajo de 227px, o sea nunca: para poner los
   numeros de 375 habria que desmontar veinte clamps y reescribirlos al
   reves. Con un bloque propio, ademas, se lee de un tiron que ESTO es un
   artboard y no una deduccion, que es justo lo que la hoja decia mal.

   NUMEROS FIJOS Y NO vw. El diseno esta dibujado a 375 y a una sola
   anchura: escalarlo con vw haria que a 767 el nombre saliera a 77px -mas
   grande que en la composicion de escritorio que entra un pixel despues- y
   el salto en 768 seria de los que se ven. Entre 375 y 767 lo que crece es
   el aire, no la letra, que es lo que hace cualquier pagina de texto.

   LAS MEDIDAS DEL ARTBOARD, en coordenadas de la seccion:

     Seccion     aire arriba  foto        hueco  banda   aire abajo
     FRASCO           72      375 x 375     24    240,09      0
     PACK             30      375 x 476    -46    240,09     30
     SHOOT            30      375 x 476    -50    240,09     30
     PIRAMIDE         30      375 x 453*    30    240,09     30
     PERFUMISTA        0      375 x 476      -    240,09     30

     (*) en PIRAMIDE la caja de 453 es el grupo entero: la foto mide 375 y
         los rotulos sobresalen 38 por arriba y 40 por abajo.

   LOS DOS HUECOS NEGATIVOS SON UNA DESVIACION CONSCIENTE. En PACK y en
   SHOOT el diseno mete la banda 46 y 50 pixeles DENTRO de la foto. En Amor
   Lacteo funciona porque esa esquina del pack sale casi blanca; en
   cherry-on-top, candynude y lickorice la toma es un rojo oscuro y el texto
   descriptivo, que ahi sigue siendo negro, daria 2,15:1. Se apila sin
   solapar y el hueco pasa a 30, como en las otras tres. Es el mismo motivo
   por el que la regla del pack oscuro se quedo encerrada en un @media unas
   lineas mas arriba.

   Y EL RITMO ENTRE SECCIONES SE UNIFICA. El artboard alterna 0, 30 y 60
   entre una banda y la foto siguiente sin que se vea el criterio -son tres
   numeros para el mismo hueco-, asi que aqui son 30 por arriba y 30 por
   abajo en las cinco, con las dos excepciones que si dicen algo: los 72 de
   aire bajo la cabecera en FRASCO y el cero de PERFUMISTA, cuya foto entra
   a sangre por arriba porque la seccion es de color.
   ========================================================================== */
@media (max-width: 767.98px) {

  /* --- La seccion y su aire ---------------------------------------------- */
  .ficha__seccion {
    padding-bottom: var(--paso-4);   /* 30 */
  }

  .ficha__seccion--frasco     { padding-top: 72px; }             /* 72 del diseno */
  .ficha__seccion--pack,
  .ficha__seccion--shoot,
  .ficha__seccion--piramide   { padding-top: var(--paso-4); }    /* 30 */
  .ficha__seccion--perfumista { padding-top: 0; }                /* a sangre */

  /* --- Las cajas de las fotos, que aqui NO son las de 1920 ---------------
     Tres de las cinco cambian de proporcion. La del pack es el cambio
     gordo: en escritorio es una franja a sangre de 1920x924 (2,078) y en
     movil una foto vertical de 375x476 (0,788). Con la caja de escritorio,
     a 375 el pack salia en 180px de alto, o sea una tira. Las de frasco y
     piramide son cuadradas en los dos sitios y no se repiten aqui. */
  .ficha__foto--pack       { aspect-ratio: 375 / 476; }
  .ficha__foto--shoot      { aspect-ratio: 375 / 476; }
  .ficha__foto--perfumista { aspect-ratio: 375 / 476; }

  /* --- La banda -----------------------------------------------------------
     La instancia de movil es "Menu Perfume Mobile" (408:368), 343x240,09 a
     16 de cada borde. Los 16 de aire lateral son del diseno y no el suelo
     de 20 que traia el clamp de escritorio.

     El padding de abajo es cero y no 30: el aire de debajo de la banda lo
     pone la seccion, para que el ultimo hueco de la ficha no sea la suma de
     dos. */
  .banda {
    padding: var(--paso-4) var(--paso-2) 0;   /* 30 / 16 / 0 */
    gap: 15px;                                /* 155 - 140 en el artboard */
  }

  /* Los tres textos del bloque izquierdo van a 4 de separacion y no a 15:
     18 + 4 + 42 + 4 + 72 son los 140 de alto que mide el bloque. */
  .banda__nombre,
  .banda__claim { margin-top: 4px; }

  .banda__coleccion { font-size: 18px; line-height: 1; }          /* 18/18 */
  .banda__nombre    { font-size: 38px; line-height: 1.1053; }     /* 42/38 */
  .banda__claim     { font-size: 18px; line-height: 1.2222; }     /* 22/18 */

  /* LA DESCRIPCION VA A 22 DE INTERLINEADO Y EL DISENO PONE 18, o sea uno
     por cuerpo. Es la unica medida de este bloque que no se copia: son tres
     renglones largos y a 18/18 las lineas se tocan. En el artboard no se
     nota porque el texto ingles cabe justo; el castellano de bake-my-cherry
     son cuatro lineas. Anotado para que no parezca un error de lectura. */

  /* --- El bloque de la derecha, que aqui son DOS COLUMNAS -----------------
     Y es lo que mas se aleja de lo que esta hoja hacia. En el artboard de
     movil la marca y el formato NO se apilan: van uno al lado del otro,
     129 y 200 de ancho con 14 en medio, o sea la misma fila. Apilados
     -que es lo que salia de tratar el movil como "una columna y ya"-
     estiraban la banda 50px y dejaban el formato flotando solo al final de
     la ficha.

     Los tres numeros van en porcentaje de los 343 de la caja para que la
     fila se reparta igual a 320 que a 767. */
  .banda__info {
    display: flex;
    gap: 4.0816%;                  /* 14 de 343 */
  }

  .banda__marca {
    flex: 0 0 37.6093%;            /* 129 de 343 */
    font-size: 16px;
    line-height: 1;                /* 16/16 */
  }

  .banda__formato {
    flex: 1;
    margin-top: 0;                 /* no hay que separarlo: va al lado */
    font-size: 14px;
    line-height: 1;                /* 14/14 */
  }

  /* --- LA PIRAMIDE: aqui SI hay composicion, y es otra ---------------------
     Nodo 396:2332 y sus cinco hermanos. El grupo mide 375x453 y lleva la
     foto a sangre -375x375, empezando a 38 del borde del grupo- con los
     tres rotulos colocados alrededor: dos a la derecha, arriba y abajo, y
     el de corazon a la izquierda sobre el frasco.

     EL LIENZO SE MONTA IGUAL QUE EL DE 1280 pero con las dos medidas de
     ESTE artboard: 375 de ancho y 453 de alto. Va con aspect-ratio en vez
     de un alto en vw porque left y right ya le dan el ancho y asi el alto
     sale del ancho REAL de la seccion -sin la barra de scroll- en vez de
     del de la ventana.

     LA FOTO SE EMPUJA CON MARGENES EN PORCENTAJE, no con pixeles: el lienzo
     de encima es proporcional al ancho, asi que si los margenes fueran
     fijos los rotulos se despegarian del frasco en cuanto la pantalla no
     midiera 375. 10,1333% son los 38 de arriba y 10,6667% los 40 que el
     grupo sobresale por debajo de la foto, que es donde cae la nota de
     fondo. */
  .ficha__seccion--piramide {
    position: relative;
  }

  .ficha__foto--piramide {
    margin-top: 10.1333%;      /* 38 de 375 */
    margin-bottom: 10.6667%;   /* 40 de 375 */
  }

  /* LAS TRES FLECHAS DE MOVIL, QUE YA EXISTEN Y ANTES NO SE PINTABAN.

     El artboard 403:2138 las trae dibujadas dentro del grupo de la
     piramide -"Recurso 2 1", "Recurso 1 1" y "Recurso 5 1", los mismos
     nombres de capa que en escritorio- asi que se pintan igual que alli:
     tres capas de fondo del lienzo, ni un elemento en el marcado, por el
     mismo motivo de siempre (no dicen nada que el texto no diga y la
     seccion tiene aserciones que cuentan <img> y <svg>).

     SOLO UNA DE LAS TRES ES UN DIBUJO NUEVO, y esto corrige lo que esta
     hoja daba por hecho -"hacen falta tres ficheros mas"-. Comparados los
     tres trazados de movil con los tres de escritorio punto a punto, ya
     normalizados a su caja:

       a Middle   Recurso 1 1   118,68 x 93,07   IDENTICO al de escritorio
       a Dry-down Recurso 5 1    97,14 x 92,68   IDENTICO al de escritorio
       a Top      Recurso 2 1    53,41 x 113,70  OTRO GIRO

     Los dos primeros son el mismo dibujo al mismo angulo, solo que a otro
     tamano: misma lista de comandos, mismos 115 y 123 puntos, y la mayor
     diferencia entre puntos correspondientes es del 0,6% de la caja, o sea
     el redondeo del propio exportador. Se reutilizan sus ficheros y no se
     duplican.

     El de Top no: comparte la lista de comandos -es la misma curva- pero
     sus puntos se van hasta el 18% de la caja y la proporcion cambia de
     161x152 a 53,41x113,70. Es el giro de 15,02 grados del movil contra
     los 47,58 del escritorio. Ese SI es un fichero nuevo,
     flecha-salida-movil.svg, bajado del nodo y no girado aqui: el giro
     viene del diseno y la curva no se estira igual rotando una caja.

     EL SITIO DE CADA UNA SALE DEL NODO Y NO SE AJUSTA A OJO, al reves que
     en la composicion de 1920, donde las flechas cuelgan de los tercios del
     cuerpo del frasco. Aqui el diseno las coloca a mano dentro de un lienzo
     de 375x453 y lo unico que hay que hacer es copiar sus cajas:

       flecha      caja del nodo        esquina (x, y en el grupo)
       a Top       53,41 x 113,70       246,73    75,73
       a Middle   118,68 x  93,07        40,28   151,56
       a Dry-down  97,14 x  92,68       173,29   351,00

     background-size va sobre el lienzo (375 y 453) y background-position
     sobre lo que le sobra al lienzo por cada lado, que es como resuelve el
     navegador un porcentaje de posicion: x / (375 - ancho de la flecha) y
     lo mismo en vertical. De ahi que el 173,29 de la flecha de Dry-down
     salga 62,37% y no 46,2%. */
  .piramide {
    position: absolute;
    top: var(--paso-4);        /* el aire de arriba de la seccion */
    left: 0;
    right: 0;
    aspect-ratio: 375 / 453;
    margin-top: 0;
    padding-inline: 0;

    background-image: url("../img/producto/flecha-salida-movil.svg"),
                      url("../img/producto/flecha-corazon.svg"),
                      url("../img/producto/flecha-fondo.svg");
    background-repeat: no-repeat;
    background-size: 25% 25%,    /*  53,41 x 113,70 */
                     30% 30%,    /* 118,68 x  93,07 */
                     30% 30%;    /*  97,14 x  92,68 */
    background-position: left 80% top 36%,   /* 246,73 /  75,73 */
                         left 15% top 52%,   /*  40,28 / 151,56 */
                         left 40% top 96%;   /* 173,29 / 351,00 */
  }

  /* Ancho 116 de 375: es lo que va del rotulo derecho (243) al borde menos
     los 16 de aire. Los tres lo llevan igual para que las notas de las seis
     fragancias rompan por el mismo sitio; la mas larga -las tres de
     Lemonude en castellano- cae en cuatro lineas y sigue cabiendo antes de
     la banda. */
  .piramide__tramo {
    position: absolute;
    width: 30.9333%;   /* 116 de 375 */
  }

  /* El mismo apano que a 1280, y por el mismo motivo: el selector del hueco
     de la pila pesa mas que el del tramo, asi que hay que apagarlo con el. */
  .piramide__tramo + .piramide__tramo { margin-top: 0; }

  /* 64.8% Y NO 70%, QUE ERA UN DESBORDAMIENTO (30/09/2026).

     El tramo mide 30,9333% y con left: 70% sumaba 100,93%: a 375 el rotulo
     acababa en el pixel 378,5 y sacaba barra de desplazamiento horizontal
     en las SEIS fichas. Tres pixeles y medio, pero la barra se ve.

     64.8% son los 243 de 375 que ya decia el comentario de esta misma
     linea, o sea que el numero escrito nunca coincidio con su nota. Y es
     tambien lo que hace que cuadre el ancho de mas arriba: 243 + 116 = 359,
     y los 16 que faltan hasta 375 son el aire del borde que aquel
     comentario da por supuesto. Con 70% ese aire no existia: se lo comia el
     rotulo y aun sobraba. */
  .piramide__tramo--salida  { left: 64.8%; top: 5%; }   /* 243 /   0 */
  .piramide__tramo--corazon { left: 4%; top: 16%; }   /*  20 /  63 */

  /* EL TERCERO SE CUELGA DEL SUELO Y NO DEL TECHO, y es el unico de los
     tres. En el diseno da igual -el rotulo cae a 397 y la nota, de dos
     lineas, acaba justo en los 453 del grupo- pero solo porque las notas
     inglesas caben en dos lineas. Las tres de Lemonude en castellano son
     cinco, y colgado del techo el parrafo crecia hacia ABAJO: a 320 se
     comia los 30px de aire y se montaba sobre el nombre de la fragancia
     (medido: 447 de fondo contra 417 donde empieza el texto de la banda).
     Colgado del suelo crece hacia arriba, o sea sobre la fotografia, que es
     donde ya viven los otros dos rotulos. */
  .piramide__tramo--fondo   { left: 58%;    bottom: 0;     }   /* 243 / 397 */

  /* 24 y 26 son los del artboard. El interlineado es mayor que uno, al
     reves que en la composicion de 1920: alli la caja del rotulo mide la
     mitad del cuerpo a proposito para que las astas de la inglesa se salgan
     y la nota quede pegada; aqui el diseno le da una caja de 26 para un
     cuerpo de 24 y la nota va a 2px, asi que el rotulo cabe entero. */
  .piramide__rotulo {
    font-size: 24px;
    line-height: 1.0833;   /* 26/24 */
  }

  .piramide__nota {
    margin-top: 2px;       /* 28 de posicion menos los 26 de caja del rotulo */
    font-size: 14px;
    line-height: 1.15;     /* el diseno pone 14/14 */
  }

  /* 14/14 ES LO QUE DICE EL ARTBOARD Y AQUI SALE 16,1. Las notas inglesas
     caben en dos lineas y a renglon cerrado se leen; las castellanas de
     Lemonude son cuatro y a 14/14 se convierten en una mancha. Se abre lo
     justo. Es la misma clase de desviacion que el interlineado de la
     descripcion, unas lineas mas arriba, y por la misma razon: el diseno
     esta dibujado con el texto ingles. */

  /* --- EL PERFUMISTA -------------------------------------------------------
     Nodo 396:2279. El retrato entra a sangre por arriba, el nombre va
     centrado justo debajo y la biografia a 16 de cada borde.

     EL NOMBRE ES 30,7 Y NO UN NUMERO REDONDO porque el artboard tiene la
     instancia encogida y ese es el cuerpo que le queda. Se copia tal cual:
     redondearlo a 30 o a 31 seria inventarse una medida propia con la del
     diseno delante.

     SU INTERLINEADO NO SE COPIA. Figma dice 11,232 sobre un cuerpo de 30,7,
     que es la caja aplastada de la instancia y no una decision: con eso el
     nombre se monta sobre la biografia en cuanto parte en dos lineas, que
     es lo que hace "Guillaume Flavigny" a 320 de ancho. */
  /* EL NOMBRE SE MONTA SOBRE EL BORDE DE ABAJO DE LA FOTO, y esto es lo
     que faltaba: la seccion heredaba los 40 de aire de la forma apilada y
     el nombre caia limpio debajo del retrato.

     En el artboard su caja empieza EXACTAMENTE donde acaba la foto -las dos
     en 476- y aun asi las mayusculas se meten cinco pixeles dentro del
     retrato: medido sobre el render del nodo, el rojo empieza en 471 y la
     foto acaba en 476. No es un solape dibujado a mano, es que Figma le da
     a esa caja un interlineado de 11,232 para un cuerpo de 30,7, o sea
     aplastado, y la letra se sale por arriba.

     AQUI EL INTERLINEADO SIGUE SIENDO 1 -ver mas abajo por que- asi que hay
     que devolver a mano lo que ese interlineado aplastado subia la letra:
     media diferencia entre las dos cajas, (30,7 - 11,232) / 2 = 9,734. Con
     eso las mayusculas caen donde el diseno las dibuja y el nombre conserva
     una caja entera, que es lo que evita que las dos lineas de "Guillaume
     Flavigny" a 320 se monten una sobre otra.

     VA EN EL BLOQUE Y NO EN EL NOMBRE porque la biografia baja con el: en
     el diseno empieza en 504, o sea 28 por debajo del borde de la foto, y
     colgada del nombre le sigue saliendo a 500. Puesto solo en el nombre,
     ademas, el margen negativo se colapsaria con el del padre y acabaria
     haciendo esto mismo pero sin decirlo. */
  .perfumista {
    margin-top: -9.73px;             /* (30,7 - 11,232) / 2, ver arriba */
    padding-inline: var(--paso-2);   /* 16 del diseno, no los 20 del clamp */
  }

  .perfumista__nombre {
    font-size: 30.7px;
    line-height: 1;
  }

  .perfumista__bio {
    margin-top: 3px;       /* 504 - 476 - 25 de caja del nombre */
    font-size: 14px;
    line-height: 1.4;      /* el diseno pone 14/14 y son cuatro renglones */
  }
}


/* ==========================================================================
   UNA SOLA BANDA, PEGADA EN SU SITIO  (de 768 en adelante)
   --------------------------------------------------------------------------
   Hasta el 28/09/2026 la banda se repetia en las cinco secciones: al bajar
   por la ficha se leia cinco veces el mismo nombre, la misma descripcion y
   el mismo formato. Por decision del responsable pasa a ser UNA que se
   queda quieta mientras las fotos pasan por detras, empezando donde estaba
   la primera y parando donde esta la ultima.

   SOLO DE 768 EN ADELANTE, que es donde la banda flanquea la foto. Por
   debajo va apilada bajo cada foto y ahi se queda como estaba: decision
   del responsable, y ademas una banda pegada ocupando la columna entera
   taparia la foto.

   POR QUE HAY UNA COPIA EXTRA EN EL MARCADO. position:sticky solo viaja
   dentro de su padre: dentro de una seccion se quedaria encerrada en sus
   686px. La copia vive fuera de las secciones, es aria-hidden y no lleva
   <h1>; la semantica sigue en la primera banda de la primera seccion, que
   aqui se esconde a la vista pero NO del lector de pantalla. Un solo <h1>
   en los dos casos, y nadie oye la descripcion dos veces.
   ========================================================================== */

/* Por debajo de 768 la copia fija no existe. */
.ficha__fija {
  display: none;
}

@media (min-width: 768px) {

  /* LAS DOS PIEZAS EN LA MISMA CELDA. Sin esto, la copia fija empujaria las
     cinco secciones 632px hacia abajo. Con la rejilla se superponen, que es
     lo que hace falta: la banda es una capa sobre las fotos, igual que lo
     era dentro de cada seccion. */
  .ficha {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ficha__secciones,
  .ficha__fija {
    grid-area: 1 / 1;
  }


  /* LA CELDA LA DAN LAS SECCIONES, NO LA BANDA: align-self:start impide que
     la copia fija se estire a los 3.400px de la ficha entera, que es lo que
     haria por defecto y dejaria el sticky sin nada que hacer.

     top:27px NO ES UN NUMERO SUELTO: es el aire que la banda tiene hoy
     dentro de su seccion (la seccion arranca en 186 y la banda en 213).
     Asi, en el momento en que se pega, esta exactamente donde estaba.

     z-index 2 para quedar sobre las fotos, igual que la banda de cada
     seccion (que lleva z-index:1 sobre la foto y la piramide).

     LLEGO A SER 3 unas horas, mientras la banda tuvo dentro las flechas a la
     fragancia de al lado: hacia falta para que el <h2> del perfumista -una
     caja transparente que ocupa el ancho entero- no se comiera su clic. Las
     flechas se han ido a flotar a los lados, con su propio z-index, asi que
     la banda vuelve a no tener nada que pulsar y el 2 basta. */
  .ficha__fija {
    display: block;
    position: sticky;
    top: 27px;
    align-self: start;
    z-index: 2;

    /* DONDE EMPIEZA. Sin este margen la banda arrancaria pegada al borde
       de arriba de las secciones (186) y la primera de antes estaba en 213:
       son los 27 de aire que tenia dentro de su seccion. Con el, el punto
       de partida es el mismo que tenia.

       No cambia donde se pega -eso lo decide el top- solo de donde viene. */
    margin-top: 27px;

    /* DONDE DEJA DE PEGARSE, Y ES EL ENCARGO: "la ultima posicion en la que
       se tendria que parar es en la ultima que hay ahora".

       Un sticky se suelta cuando su borde inferior alcanza el del bloque
       que lo contiene, aqui las cinco secciones. Sin este margen paraba 27
       mas abajo que la quinta banda de antes -medido: en 2926 cuando
       aquella estaba en 2899- porque la banda tenia 27 de aire por debajo
       dentro de su seccion.

       El margen recorta el recorrido esos mismos 27, y son los MISMOS 27
       del top de aqui arriba: arriba es el aire que la banda tenia sobre
       si dentro de la seccion, abajo el que tenia debajo. Empieza y acaba
       exactamente donde estaban la primera y la quinta. */
    margin-bottom: 27px;
  }

  /* LAS CINCO DE DENTRO SE DEJAN DE VER.

     LA PRIMERA NO CON display:none, y esa diferencia es la que sostiene la
     accesibilidad de la pagina: esa banda lleva el <h1> de la ficha, la
     descripcion y el formato. Con display:none desaparecen tambien del
     lector de pantalla y la ficha se queda sin encabezado. Se esconde con
     la tecnica de .solo-lectores (base.css): fuera del flujo y recortada a
     1px, pero presente.

     Las otras cuatro si con display:none: ya eran aria-hidden, o sea
     repeticion visual pura, y aqui no queda ni eso. */
  .ficha__seccion .banda {
    display: none;
  }

  .ficha__seccion--frasco .banda {
    display: flex;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}


/* ==========================================================================
   LA FICHA EN MOVIL: OTRO ORDEN, Y UNA SOLA BANDA PEGADA ABAJO
   --------------------------------------------------------------------------
   Encargo del responsable del 29/09/2026, y son tres cosas que solo valen
   por debajo de 768. De 768 en adelante la ficha NO cambia nada.

     1. Otro orden de fotos. La tercera -SHOOT- pasa a ser la primera y las
        demas se corren: shoot, frasco, pack, piramide, perfumista.

     2. La banda deja de repetirse debajo de cada foto. Queda UNA, pegada al
        pie de la pantalla, y las fotos pasan por detras. Es lo mismo que ya
        se hizo de 768 en adelante el 28/09, pero pegada abajo en vez de
        arriba, porque aqui la banda ocupa la columna entera.

     3. Otro orden de texto dentro de la banda -coleccion, nombre, formato,
        descripcion- y fuera el bloque de marca ("MOIRE / Amor Lacteo").

   POR QUE EL ORDEN DE LAS FOTOS SE HACE CON CSS Y NO EN EL PHP. El orden del
   marcado es el del diseno de 1920 y el de la ficha en escritorio, que no
   cambia; aqui solo cambia como se ven. Reordenado en $fotos habria que
   deshacerlo en escritorio, que es el mismo apano al reves y ademas en el
   sitio donde vive el dato.

   Y ESO SEPARA EL ORDEN VISUAL DEL ORDEN DE LECTURA, que normalmente es un
   problema de accesibilidad (WCAG 1.3.2). Aqui no lo es, y conviene decir
   por que en vez de dejarlo pasar: las cinco secciones son fotografias con
   alt vacio y NO hay nada enfocable dentro de ninguna, asi que no se
   descoloca ningun recorrido de tabulacion. Todo el texto de la ficha vive
   en la banda, que es una sola y esta fuera de las secciones. Es el mismo
   razonamiento que ya lleva el column-reverse de /about.
   ========================================================================== */

@media (max-width: 767.98px) {

  /* --- 1. EL ORDEN DE LAS FOTOS, Y DONDE PARA LA BANDA -------------------
     Las dos cosas salen de lo mismo: las cinco secciones se colocan en
     CINCO FILAS de una rejilla, en el orden nuevo, y la banda ocupa un
     tramo de esas filas.

     POR QUE FILAS Y NO order. Con order se consigue el orden visual igual
     de bien, pero no se consigue lo otro: un position:sticky se suelta al
     llegar al final de SU BLOQUE CONTENEDOR, y el de un elemento de rejilla
     es su AREA. Dandole a la banda las filas 1 a 4, se suelta exactamente
     donde acaban las fotos de producto, sin tener que medir nada ni
     escribir un margen a ojo que habria que rehacer el dia que cambie el
     alto de una foto o el texto de una biografia.

     display: contents EN EL ENVOLTORIO. Las cinco secciones estan dentro de
     un <div> que en escritorio es una de las dos capas de la rejilla; aqui
     ese <div> se disuelve para que las secciones sean elementos de la
     rejilla de .ficha y puedan ir cada una a su fila. No lleva fondo ni
     borde ni nada que se pierda al disolverlo: solo envuelve. */
  .ficha__secciones {
    display: contents;
  }

  .ficha__seccion--shoot      { grid-column: 1; grid-row: 1; }
  .ficha__seccion--frasco     { grid-column: 1; grid-row: 2; }
  .ficha__seccion--pack       { grid-column: 1; grid-row: 3; }
  .ficha__seccion--piramide   { grid-column: 1; grid-row: 4; }
  .ficha__seccion--perfumista { grid-column: 1; grid-row: 5; }

  /* LOS 80px DE AIRE CAMBIAN DE SITIO, NO DESAPARECEN.

     Estaban encima de SHOOT (decision del 16/09/2026) porque SHOOT era la
     unica foto de borde a borde y llegaba a besar el PACK, que va a sangre:
     las dos se tocaban sin nada en medio. Con el orden nuevo SHOOT es la
     primera -no tiene nada encima que besar, y ahi ese hueco seria una
     franja en blanco debajo de la cabecera- y quien queda pegada al PACK es
     la PIRAMIDE. El hueco va donde esta el problema, que es lo que era
     desde el principio. */
  .ficha__seccion--shoot {
    margin-top: 0;
  }

  .ficha__seccion--piramide {
    margin-top: clamp(var(--paso-5), 4.167vw, 80px);
  }


  /* --- 2. UNA SOLA BANDA, PEGADA AL PIE DE LA PANTALLA -------------------
     Misma mecanica que la de 768 en adelante y misma copia del marcado: la
     de las secciones no se puede pegar porque un position:sticky solo viaja
     dentro de su padre y se quedaria encerrada en su seccion.

     LA REJILLA ES LA DE ARRIBA, la de las cinco filas: la banda no comparte
     celda con nada, ocupa un tramo de esas filas y por eso se superpone a
     las fotos sin empujarlas. */
  .ficha {
    display: grid;
    grid-template-columns: 1fr;
  }

  /* bottom Y NO top, QUE ES LA DIFERENCIA CON ESCRITORIO. Alli la banda
     flanquea la foto y se pega arriba; aqui ocupa la columna entera y tiene
     que quedarse en el pie, que es lo que se pidio ("el texto abajo fijo").

     Y align-self: end, QUE NO ES UN DETALLE DE COLOCACION SINO LO QUE HACE
     QUE ESTO FUNCIONE. Un sticky con bottom solo tira del elemento hacia
     ARRIBA: lo sube para que no se vaya por debajo del pie de la pantalla,
     y lo suelta cuando su posicion natural llega. Nunca lo empuja hacia
     abajo. Con align-self: start -que es lo que lleva la copia de
     escritorio, y lo primero que se escribio aqui- su posicion natural es
     el PRINCIPIO de la ficha, que ya esta dentro de la pantalla, asi que no
     hay nada de lo que tirar y la banda se queda arriba sin pegarse a nada.
     Medido: aparecia en el pixel 72, debajo de la cabecera.

     Con end, su posicion natural es el FINAL de la ficha, muy por debajo de
     la pantalla; el sticky la sube al pie y la mantiene ahi hasta que ese
     final llega de verdad. Que es el recorrido que hace falta.

     FONDO OPACO, Y NO ES DECORACION. En escritorio la banda cae sobre el
     blanco de la pagina, al lado de la foto; aqui cae ENCIMA de las
     fotografias. Sin fondo, el texto se leeria sobre el pack a sangre o
     sobre el burdeos del perfumista, o sea no se leeria. */
  /* DONDE PARA: AL FINAL DE LA CUARTA FILA, confirmado por el responsable
     el 29/09/2026 ("cuando se llegue a la 4a imagen el texto fijo se queda
     ahi y aparece la parte del perfumista como estaba antes").

     grid-row: 1 / 5 son las filas 1 a 4, o sea las cuatro fotos de
     producto: shoot, frasco, pack y piramide. La quinta -el perfumista- se
     queda fuera del recorrido y aparece entera, con su retrato y su firma,
     sin nada encima. Es lo que ya hacia antes de este cambio.

     Y AQUI ESTA TODO EL AJUSTE, EN UN NUMERO: el 5. Si algun dia se quiere
     que la banda viaje tambien sobre el retrato del perfumista, es 1 / 6 y
     nada mas; no hay margenes que recalcular ni alturas que medir. Esa es
     la razon de haber puesto las secciones en filas en vez de con order. */
  .ficha__fija {
    display: block;
    grid-column: 1;
    grid-row: 1 / 5;
    position: sticky;
    bottom: 0;
    align-self: end;
    z-index: 2;
    background: var(--c-blanco);
  }

  /* LAS CINCO DE DENTRO SE DEJAN DE VER, con la misma salvedad que en
     escritorio: la primera lleva el <h1> de la ficha, la descripcion y el
     formato, asi que NO se quita con display:none -eso la borraria tambien
     del lector de pantalla y la ficha se quedaria sin encabezado- sino con
     la tecnica de .solo-lectores. Las otras cuatro ya eran aria-hidden. */
  .ficha__seccion .banda {
    display: none;
  }

  .ficha__seccion--frasco .banda {
    display: flex;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }

  /* EL HUECO RESERVADO DEBAJO DE LA CUARTA FOTO.

     EL PROBLEMA QUE ARREGLA. La banda se suelta al acabar la cuarta fila y
     a partir de ahi baja con la pagina, o sea que se queda para siempre
     encima del ultimo tramo de la piramide -su propio alto, unos 226px en
     AMOR LACTEO-: esa parte de la foto no se llegaba a ver NUNCA. Las tres primeras no tienen ese problema -pasan
     por debajo de la banda y se ven enteras al pasar-; la cuarta si, porque
     es donde la banda aparca.

     ES LA PROPIA BANDA LA QUE RESERVA EL HUECO, no un padding con un numero
     dentro. La copia de esta seccion se pinta con visibility: hidden: ocupa
     su sitio y no se ve. Y como es el MISMO componente con las MISMAS
     reglas, mide exactamente lo que mide la pegada, fragancia por
     fragancia: la descripcion de LICKORICE tiene tres renglones y la de
     BAKE MY CHERRY cuatro, asi que un padding escrito a mano seria correcto
     en una ficha y falso en otra, y el sintoma -una foto cortada por abajo-
     no se ve leyendo el CSS.

     visibility: hidden Y NO opacity: 0 NI display: none. display:none no
     ocupa sitio, que es justo lo que hace falta aqui; opacity:0 lo dejaria
     seleccionable con el dedo y copiable. visibility lo saca tambien del
     lector de pantalla, que es lo que toca: la banda que se lee es la de
     FRASCO. */
  .ficha__seccion--piramide .banda {
    display: flex;
    visibility: hidden;
  }


  /* --- 3. EL ORDEN DEL TEXTO DE LA BANDA ---------------------------------
     OJO: ESTAS REGLAS SON DE .banda Y NO DE .ficha__fija .banda. No es un
     descuido de especificidad: la copia que reserva el hueco bajo la cuarta
     foto (ver mas abajo) es OTRA banda, y tiene que medir EXACTAMENTE lo
     mismo que la pegada. Atadas a .ficha__fija, la copia se queda con otra
     composicion y reserva un hueco de otra altura, y el sintoma es la
     cuarta foto cortada por abajo. Las demas bandas de seccion estan
     escondidas, asi que aplicarselo a todas no cambia nada mas.

     El encargo es coleccion, nombre, formato, descripcion, y fuera el bloque
     de marca. El diseno de movil (componente 408:395) los pone en otro
     orden -coleccion, nombre, descripcion, y abajo marca y formato en dos
     columnas- asi que esto es un cambio SOBRE el diseno, pedido el
     29/09/2026, no una lectura de Figma.

     SE HACE CON order Y display:contents, SIN TOCAR EL MARCADO. Los cuatro
     textos viven en dos <div> -el bloque izquierdo y el derecho- que en
     escritorio son las dos columnas de la banda. display:contents disuelve
     esos dos <div> aqui, asi que los textos pasan a ser hijos directos de
     la banda y se pueden ordenar uno a uno; en escritorio siguen siendo dos
     columnas y no se entera nadie.

     La alternativa era mover el <p> del formato en producto-banda.php y
     recolocarlo por CSS en escritorio, o sea tocar la composicion de 768
     en adelante, que es justo lo que el responsable dijo que no cambia. */
  .banda__texto,
  .banda__info {
    display: contents;
  }

  .banda__coleccion { order: 1; }
  .banda__nombre    { order: 2; }
  .banda__formato   { order: 3; }
  .banda__claim     { order: 4; }



  /* EL BLOQUE DE MARCA SE QUITA. display:none y no un borrado del marcado:
     de 768 en adelante sigue estando, y es el mismo include. La banda fija
     es aria-hidden entera, asi que esconderlo aqui no le quita nada a nadie
     -la copia que lee el lector de pantalla es la de la seccion FRASCO-. */
  .banda__marca {
    display: none;
  }

  /* AQUI NO SE TOCA NI UN CUERPO NI UN INTERLINEADO. Los de la banda de
     movil ya estaban medidos del componente "Menu Perfume Mobile" mucho mas
     arriba en este mismo @media -18 / 38 / 18 / 14 con sus interlineados, y
     con la desviacion del 22/18 anotada-. Se escribio aqui una segunda
     tanda y no se noto porque los dos juegos estaban en el mismo @media y
     mandaba el ultimo: la ficha se veia bien y la hoja decia dos cosas
     distintas del mismo texto. Se quito. Si algun dia hay que cambiar un
     cuerpo de la banda en movil, se cambia ARRIBA.

     LO QUE SI HAY QUE TOCAR son las dos cosas que el orden nuevo rompe:

     EL HUECO ENTRE TEXTOS. El gap de la banda separaba los DOS bloques -15
     del artboard-, y dentro de cada uno los textos iban a 4 con sus
     margenes. Disueltos los bloques, ese gap pasa a separar los cuatro
     textos y se sumaria a los margenes: 19 en vez de 4. Se pone a 0 y manda
     el margen, que es el que trae la medida del diseno.

     EL FORMATO VENIA DE UNA FILA DE DOS COLUMNAS. En el artboard de movil
     la marca y el formato van uno AL LADO del otro, asi que el formato
     lleva flex:1 para repartirse la fila y margin-top:0 porque no hay nada
     encima de lo que separarse. Quitada la marca y deshecha la fila, ese
     flex:1 lo estiraria a lo alto de la banda y el margen 0 lo pegaria al
     nombre. Vuelve a ser un texto apilado como los otros tres. */
  .banda {
    gap: 0;

    /* EL AIRE DE ABAJO. La regla de arriba lo deja en 0 a proposito, porque
       alli la banda esta apoyada debajo de una foto y el aire lo pone la
       seccion. Pegada al pie de la pantalla no hay seccion debajo: sin
       esto, la descripcion toca el borde del movil. */
    padding-bottom: var(--paso-4);
  }

  .banda__formato {
    flex: none;
    margin-top: 4px;
  }
}


/* ==========================================================================
   EL COLOR DE LA BANDA PEGADA SEGUN LO QUE TIENE DETRAS  (29/09/2026)
   --------------------------------------------------------------------------
   Las dos reglas de contraste del 16/09/2026 -blanco sobre el pack oscuro,
   crema sobre el burdeos del perfumista- siguen mas arriba en esta hoja y
   siguen valiendo POR DEBAJO DE 768, donde cada foto lleva su banda debajo
   y la banda esta DENTRO de la seccion cuyo fondo la obliga a cambiar.

   DE 768 EN ADELANTE YA NO ALCANZAN NADA, y eso llevaba roto desde el
   28/09: alli la banda que se ve es la pegada, que vive FUERA de las
   secciones. Aquellas reglas pintan la banda de dentro, que esta escondida.
   El sintoma es negro sobre burdeos -1,30:1- en las seis fichas, y negro
   sobre el rojo del pack -2,15:1- en las tres cuyo pack es oscuro.

   QUE SECCION TIENE DETRAS LA BANDA NO ES UNA CONSULTA DE MEDIOS: cambia
   con el desplazamiento. Lo dice assets/js/ficha.js con un atributo, y aqui
   se decide el color. El porque de que haga falta un script -y que se ve
   sin el- esta escrito en la cabecera de ese fichero.

   SIGUEN SIENDO DOS COLORES Y NO UNO, que es la decision del 16/09 y no un
   descuido: blanco sobre el rojo del pack da 9,77:1 y crema sobre el
   burdeos del perfumista da 14,05:1. Crema sobre el rojo del pack daria
   8,3:1, que tambien pasa, pero el par blanco/crema es el que el
   responsable aprobo mirando las fotografias.

   EL NOMBRE Y EL ROTULO NO CAMBIAN, tampoco aqui: van en rojo, que sobre
   los dos fondos da 3,53:1, y los dos textos son grandes -76px, y 26 en
   negrita- o sea por encima de los 18,66 que WCAG pide para ese umbral.
   ========================================================================== */
/* EL PERFUMISTA, DE 768 EN ADELANTE. Su seccion es burdeos a cualquier
   anchura -es un fondo de color, no una fotografia- asi que en cuanto la
   banda cae sobre ella hay que aclarar el texto. */
@media (min-width: 768px) {
  .ficha__fija[data-fondo="perfumista"] .banda__claim,
  .ficha__fija[data-fondo="perfumista"] .banda__formato {
    color: var(--c-crema);
  }

  /* EL CAMBIO NO ES UN SALTO. La banda mide 632 y las secciones 686, asi
     que durante un tramo el texto tiene medio fondo de cada: sin
     transicion, el color cambia de golpe en mitad de ese tramo y se ve como
     un parpadeo. Con 200ms el cambio acompana al desplazamiento.

     Y SE APAGA SI EL VISITANTE PIDE MENOS MOVIMIENTO. Un cambio de color no
     es movimiento, pero prefers-reduced-motion tambien lo piden quienes les
     molestan los cambios bruscos de luminosidad, y aqui el salto es de
     negro a blanco. Sin transicion sigue funcionando: cambia y ya. */
  .ficha__fija .banda__claim,
  .ficha__fija .banda__formato {
    transition: color 0.2s linear;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ficha__fija .banda__claim,
  .ficha__fija .banda__formato {
    transition: none;
  }
}

/* EL PACK, SOLO DE 1280 EN ADELANTE, Y NO ES UN CORTE DISTINTO POR CAPRICHO:
   es el mismo que ya tenia la regla vieja, por el mismo motivo. De 768 a
   1279 la foto del pack va EN FLUJO y la banda cae debajo, sobre el blanco
   de la pagina; blanco sobre blanco desaparece el texto entero. Solo de
   1280 en adelante la foto sale del flujo y se pone DETRAS de la banda.

   Esta escrito arriba en esta misma hoja, en el bloque de 768 a 1279 que
   devuelve estos dos textos al negro. Si algun dia ese corte cambia, los
   dos sitios tienen que cambiar juntos. */
@media (min-width: 1280px) {
  .ficha__fija[data-fondo="pack"] .banda__claim,
  .ficha__fija[data-fondo="pack"] .banda__formato {
    color: var(--c-blanco);
  }
}


/* ==========================================================================
   LAS FLECHAS A LA FRAGANCIA DE AL LADO, FLOTANDO A LOS LADOS
   --------------------------------------------------------------------------
   NO ESTAN EN EL DISENO: encargo del responsable del 30/09/2026 para poder
   recorrer las seis fragancias sin volver a /collections.

   TERCERA COLOCACION Y LA QUE SE QUEDA (01/10/2026). Estuvieron en una fila
   al final de la ficha y despues dentro de la banda; ahora van pegadas a los
   bordes de la PANTALLA y a media altura, con el visor de imagenes de Teams
   como referencia. Siguen ahi pase lo que pase con el desplazamiento, que es
   lo que ninguna de las dos colocaciones anteriores daba.

   position: fixed Y NO sticky: lo que tienen que seguir es la VENTANA, no un
   trozo de documento. Y de paso resuelve solo el problema que tuvieron
   cuando estaban en flujo colgando de .ficha: un elemento fuera del flujo no
   es elemento de la rejilla, asi que no le anade filas y no alarga el
   recorrido de la banda pegada.

   OJO SI ALGUN DIA .ficha O UN ANTEPASADO SUYO RECIBE UN transform, UN
   filter O UN backdrop-filter: cualquiera de los tres convierte al elemento
   en bloque contenedor de sus descendientes fijos y estas flechas dejarian
   de medirse contra la ventana. Es el mismo trapo con el que ya se tropezo
   dos veces el panel del menu en nav.css.

   pointer-events: none EN EL <nav> NO ES UNA PRECAUCION, ES OBLIGATORIO. El
   <nav> ocupa la franja entera de lado a lado para poder repartir las dos
   flechas a los extremos; sin apagarle el raton, esa tira invisible cruza la
   pantalla por el centro y se come los clics y la seleccion de texto de todo
   lo que pase por debajo. Los dos enlaces se lo devuelven para si mismos.

   z-index 80, POR DEBAJO DE LA CABECERA (90) Y DEL PANEL DEL MENU (100), y
   por encima de todo lo de la pagina. Asi el menu abierto las tapa, que es
   lo que tiene que pasar, y no se cuelan por delante del logotipo.
   ========================================================================== */

.ficha__paso {
  position: fixed;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  z-index: 80;

  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: clamp(4px, 1.042vw, 20px);
  pointer-events: none;
}

/* CADA FLECHA ES UN BOTON CUADRADO Y NO UN TRAZO SUELTO. El dibujo es solo
   la punta -como en el visor de Teams, que es la referencia que dio el
   responsable- pero el area que se pulsa es toda la caja: una punta de 18px
   seria un blanco de 18px, y con el dedo eso no se acierta. 56 en escritorio
   y 44 en movil, que es el minimo tactil que ya usan los iconos del pie.

   pointer-events: auto LES DEVUELVE EL RATON que el <nav> apaga para todos
   (ver arriba). Sin esta linea no se podria pulsar ninguna.

   EL FONDO ES TRANSPARENTE Y EL COLOR SE ADAPTA: ver mas abajo, donde
   data-fondo. Teams pone un disco oscuro detras porque su visor siempre
   tiene foto debajo; aqui el fondo es blanco la mayor parte del recorrido y
   un disco permanente seria una pieza nueva en una pagina que no tiene
   ninguna. */
.paso {
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  color: var(--c-rojo);
  text-decoration: none;
}

/* EL NOMBRE DE LA FRAGANCIA DEJA DE VERSE PERO NO SE BORRA. Flotando sobre
   las fotos no cabe, y el encargo es una flecha a cada lado, no un rotulo.
   Pero sigue haciendo falta para quien no ve la pantalla: sin el, los dos
   enlaces se anuncian como 'fragancia anterior' y 'fragancia siguiente' sin
   decir cual es.

   Son las mismas declaraciones de .solo-lectores en base.css. No se usa
   aquella clase porque habria que meterla en el marcado del nombre, y el
   nombre SI se ve en cualquier otro sitio donde se use este componente. */
.paso__nombre {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* LA FLECHA SE DIBUJA CON DOS LADOS DE UN CUADRADO GIRADO, sin fichero.

   Las cuatro flechas que hay en assets/img/producto/ son las CURVAS de la
   piramide -salen del frasco y apuntan a un rotulo- y no sirven para esto.
   Un SVG nuevo por una punta de flecha seria un fichero mas que subir, mas
   que cachear y mas que mantener en dos colores; con dos bordes se pinta
   igual, hereda el color del enlace y escala con el.

   currentColor VA ESCRITO aunque sea el valor por defecto de border-color:
   aqui es lo que hace que la flecha cambie de color con el enlace -y el
   enlace cambia de color segun lo que tenga detras- y un valor por defecto
   del que depende algo se acaba pisando sin querer.

   3px DE TRAZO Y NO 2: flotando sobre una fotografia, un trazo de 2 se
   pierde. Es el mismo grosor que las tres barras del boton del menu. */
.paso__flecha {
  display: block;
  width: 16px;
  height: 16px;
  border-top: 3px solid currentColor;
  border-left: 3px solid currentColor;
  transition: transform 0.2s ease, border-color 0.2s linear;
}

/* El giro decide adonde apunta la esquina: -45 la deja mirando a la
   izquierda y 135 a la derecha. El desplazamiento de medio trazo recentra la
   punta dentro del boton: al girar un cuadrado al que solo se le pintan dos
   lados, el dibujo que queda no esta en el centro de su caja. */
.paso--anterior  .paso__flecha { transform: translateX(3px) rotate(-45deg); }
.paso--siguiente .paso__flecha { transform: translateX(-3px) rotate(135deg); }

/* --- EL COLOR, SEGUN LO QUE PASE POR DETRAS ----------------------------
   Mismo problema y misma solucion que la banda pegada: las flechas estan
   clavadas a media pantalla y por detras les pasan fondos muy distintos. En
   rojo sobre el burdeos del perfumista el contraste es 1,66:1 y la flecha
   desaparece; sobre el rojo oscuro del pack, 1,45:1.

   El atributo lo pone assets/js/ficha.js, que ya hacia esto mismo para la
   banda: dice QUE hay detras y la hoja elige el color, que es donde viven
   los numeros. Crema sobre el burdeos (14,05:1) y blanco sobre el rojo del
   pack (9,77:1), los dos colores que el responsable fijo el 16/09/2026.

   SIN JAVASCRIPT LAS FLECHAS SIGUEN AHI Y SE PULSAN, en rojo: se pierde
   contraste en dos tramos del recorrido, no la navegacion. */
.ficha__paso[data-fondo="pack"] .paso       { color: var(--c-blanco); }
.ficha__paso[data-fondo="perfumista"] .paso { color: var(--c-crema); }

/* --- Respuesta al raton y al teclado --------------------------------------
   LA FLECHA SE SEPARA HACIA SU LADO, que es el unico aviso que queda: sin
   nombre que subrayar, el movimiento es lo que dice que eso es pulsable.

   @media (hover: hover) PORQUE EN TACTIL NO EXISTE EL PASO PREVIO: alli el
   :hover se queda pegado despues de pulsar.

   EL ORDEN DE LAS DOS FUNCIONES DE transform NO ES INDIFERENTE. translateX()
   va DELANTE del rotate() para que los pixeles se cuenten en el eje de la
   pagina y la flecha se mueva en horizontal. Al reves -rotate y luego
   translateX- se cuentan en el eje YA GIRADO y la flecha se va en diagonal.
   Por eso el recentrado y el desplazamiento se suman en el mismo numero. */
@media (hover: hover) {
  .paso--anterior:hover  .paso__flecha { transform: translateX(-1px) rotate(-45deg); }
  .paso--siguiente:hover .paso__flecha { transform: translateX(1px) rotate(135deg); }
}

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

/* El foco, con el mismo dibujo que el de /links: dos pixeles y 3 de aire.
   El color es el burdeos, y sobre los dos fondos oscuros pasa a crema por lo
   mismo que la flecha. */
.paso:focus-visible {
  outline: 2px solid var(--c-burdeos);
  outline-offset: 3px;
}
.ficha__paso[data-fondo] .paso:focus-visible {
  outline-color: var(--c-crema);
}

/* En movil el boton baja a 44, que es el area tactil minima, y la punta se
   encoge con el. Mas grande se comeria la fotografia. */
@media (max-width: 767.98px) {
  .paso {
    width: 44px;
    height: 44px;
  }

  .paso__flecha {
    width: 13px;
    height: 13px;
    border-width: 2px;
  }

  .paso--anterior  .paso__flecha { transform: translateX(2px) rotate(-45deg); }
  .paso--siguiente .paso__flecha { transform: translateX(-2px) rotate(135deg); }
}
