/* ═══════════════════════════════════════════════════════════════════════════
   SISTEMA MIME · WEB
   Cada número de acá abajo sale de MEDIR, no de elegir. La fuente al lado.
   Medido el 30-10-2026 sobre ottolenghi.co.uk a 1440×900 con getComputedStyle
   (146 elementos con texto) y sobre los archivos de logo de Mime con PIL.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  /* — CAMPO Y TINTA —
     Dos tintas y nada más. Medido: Ottolenghi usa rgb(27,27,27) en 90 de 146
     elementos y su MISMA tinta al 60% y 70% para el secundario. La secundaria
     no es otro color: es la misma bajada de opacidad.
     La de Mime es CÁLIDA (H 27) porque el campo es crema, no blanco puro:
     una tinta neutra sobre crema se lee gris sucio. Contraste 13,98:1. */
  --tinta:#2B2119;
  --tinta-60:rgba(43,33,25,.60);
  --tinta-40:rgba(43,33,25,.40);
  --crema:#F6F1E7;

  /* — ACENTO —
     El azul de marca entra como ACENTO, no como campo. Medido: el rojo
     #CD001A de Ottolenghi aparece en 10 de 146 elementos = 6,8%.
     Techo para Mime: 7%. Hoy lo usan el logo y un botón. */
  --azul:#1F7DF7;

  /* — FILETE —
     0,667px, no 1. Medido: 66 usos de 0.666667px contra 8 de 2px.
     Es un hairline, y es lo único que separa: no hay cajas. */
  --filete:.667px solid rgba(43,33,25,.22);

  /* — UNIDAD BASE: 15px —
     Medido: 15px es el tamaño dominante de Ottolenghi, 59 de 146 = 40% de la
     página. TODO el ritmo sale de multiplicarlo por enteros. */
  --u:15px;
  --r1:15px; --r2:30px; --r4:60px; --r8:120px;

  /* — CANAL LATERAL: 60px FIJO —
     Fijo en px, nunca en %. Un canal en % se abre en pantalla grande y la
     página se desarma; fijo, el bloque de texto queda igual en 1440 que en
     1920 y lo único que crece es el vacío. 60 = 15 × 4. */
  --canal:60px;
}
@media (max-width:760px){ :root{ --canal:24px } }

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--crema);color:var(--tinta)}
body{
  /* Playfair como suplente de Market Fresh (didona, que es la clase correcta)
     e Inter 300 para el resto. UNA voz para los titulares, UNA para el texto. */
  font-family:Inter,system-ui,sans-serif;
  /* Peso 300 en el cuerpo. Medido: 300 lleva 89 de 146 elementos = 61%.
     El 400 queda para los titulares. Bold NO existe en el sistema. */
  font-weight:300;
  font-size:var(--u);
  /* Escalera de interlineado, medida exacta: 1,30 cuerpo · 1,20 chico ·
     1,10 titular · 0,95 display. No es un valor plano. */
  line-height:1.30;
  -webkit-font-smoothing:antialiased;
}

/* ───────── la caja que fija el canal, una sola vez ───────── */
.marco{padding-inline:var(--canal)}

/* ───────── ESCALA TIPOGRÁFICA · 7 pasos y no más ─────────
   11 · 13 · 15 · 20 · 26 · 46 · 112
   Los cuatro primeros son los medidos en Ottolenghi (11, 14, 15, 20, 25,8);
   los dos de arriba los agrego para el display, que ese sitio no tiene. */
.micro{font-size:11px;line-height:1.20;text-transform:uppercase;
  /* Tracking: 0 en todo lo grande, positivo SÓLO acá. Medido: 118 de 146
     elementos en `normal`, y los únicos con tracking son los caps chicos
     (0,88px sobre 11px = 0,080em). */
  letter-spacing:.08em}
.chico{font-size:13px;line-height:1.20;color:var(--tinta-60)}
.cuerpo{font-size:15px;line-height:1.30;max-width:34em}
.h3{font-size:20px;line-height:1.20;font-weight:400}
.h2{font-family:"Playfair Display",Georgia,serif;font-size:26px;line-height:1.10;font-weight:400;letter-spacing:0}

/* ═══════════════════════════════════════════════════════════════════════════
   LA PORTADA ES LA IMAGEN · medido el 31-10-2026, y corrige la versión anterior
   ───────────────────────────────────────────────────────────────────────────
   Rodrigo pidió «intensificar algo más de lujo». Lo medible, en aman.com a
   1440×900 contra esta misma página:

                          Aman      esta portada (v1)
     bloques de texto        6              6
     palabras               45             15
     superficie con texto  4,6%           1,8%
     elementos visibles     57             18

   ⇒ **El lujo NO es tener menos texto: acá ya había menos.** La diferencia es
   que en Aman la MEDIA cubre la primera pantalla entera y el tipo va encima;
   en la v1 la media arrancaba recién en y=589 de 900 y cubría el 35%.
   🔑 Y resuelve el problema del logo de paso: en BLANCO sobre el video el
   trazo fino mide 7,9px y el contraste es el máximo posible, así que la
   restricción de la didona deja de pelear con la composición.
   📌 El fondo de Aman es rgb(243,238,231) — la misma crema que Mime, con 3
   puntos de diferencia. El campo cálido estaba bien; lo que faltaba era que
   no fuera lo primero que se ve.
   ═══════════════════════════════════════════════════════════════════════════ */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#0B2E63}
.hero .fondo{position:absolute;inset:0;display:flex}
/* Tres 9:16 a pantalla completa: a 900px de alto cada uno pide 506px y entran
   2,85 — con `cover` se recortan apenas por los lados y llenan exacto. Cuatro
   los dejaría en 360px de ancho, que es más angosto que un celular. */
.hero .fondo video{flex:1 1 0;min-width:0;width:100%;height:100%;object-fit:cover;display:block}
/* El velo existe para una sola cosa: que el blanco del logo se lea sobre
   CUALQUIER cuadro, incluido uno con una torta clara. Más fuerte arriba y
   abajo, donde van la barra y el claim; casi nulo en el medio, para no apagar
   el video. */
.hero .velo{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,20,32,.52) 0%,rgba(10,20,32,.16) 42%,rgba(10,20,32,.58) 100%)}
.hero .centro{position:relative;height:100%;display:flex;flex-direction:column;
  justify-content:center;align-items:center;text-align:center}
.hero .logo-b{width:100%;max-width:none;height:auto;display:block}
.hero .claim{color:#fff;margin-top:var(--r2);opacity:.92}
.hero .barra{position:absolute;top:0;left:0;right:0;z-index:2;border-bottom:none}
.hero .barra .micro,.hero .barra a{color:rgba(255,255,255,.88)}
.hero .barra a:hover{color:#fff}
@media (max-width:760px){
  /* A 375px de ancho, tres videos dan 125px cada uno: se ven como tiras.
     Quedan dos. */
  .hero .fondo video:nth-child(3){display:none}
  /* La barra se desbordaba: el rótulo de marca partía en dos renglones y
     «Dónde estamos» salía de la pantalla. En el hero la marca ya la dice el
     logo gigante, así que el rótulo sobra y el lugar es para la navegación. */
  /* ⚠️ `> .micro` escondía TAMBIÉN la navegación: el <nav> lleva esa misma
     clase y es hijo directo. Va apuntado al <span>. */
  .hero .barra > span.micro{display:none}
  .hero .barra{justify-content:center}
  .hero .barra nav{gap:var(--r1);font-size:10px}
}

/* ───────── BARRA ─────────
   No lleva el logo. MEDIDO Y ES LA DECISIÓN MÁS DURA DE LA PÁGINA:
   el trazo fino del logo de Mime es el 0,602% del ancho (horizontal) y el
   0,670% (apilado), con 5,1:1 y 8,2:1 de contraste de trazo. Para que ese
   trazo llegue a 1,6px —el piso para que no se vea gris— el logo necesita
   266px de ancho el horizontal y 239px el apilado. Y el apilado a 274px mide
   248px de ALTO: eso no es una barra, es una portada.
   ⇒ El logo de Mime no puede ir chico. En la barra va sólo el nombre en caps. */
.barra{display:flex;justify-content:space-between;align-items:center;
  height:calc(var(--r4) + var(--r1));border-bottom:var(--filete)}
.barra nav{display:flex;gap:var(--r2)}
.barra a{color:var(--tinta-60);text-decoration:none}
.barra a:hover{color:var(--tinta)}

/* ───────── PORTADA ───────── */
.portada{padding-block:var(--r8) var(--r4);text-align:center}
.logo{
  /* 97% del ancho útil. La distribución del tamaño de logo es BIMODAL:
     medido en 13 sitios, no hay ninguno entre el 32% y el 97% del viewport.
     El tamaño intermedio es el único que se lee como un error.
     A 1320px de ancho útil el trazo fino da 7,9px: sólido.
     ⚠️ Un `max-width` en px lo mandaba al 69,4% del viewport, que es EL HUECO:
     exactamente el tamaño que el propio criterio declara ilegible. Sin tope,
     el logo llena la columna útil = 91,7% del viewport, que es el modo alto. */
  width:100%;height:auto;display:block;margin-inline:auto}
.claim{margin-top:var(--r2)}

/* ───────── LA FRANJA ─────────
   Seis videos 9:16 PEGADOS, sin aire entre ellos. Rodrigo, 30-10:
   «me gusta más que esté todo junto… los videos tal vez deberían ser más
   chicos». Sin gap, la fila entera mide 6 × 0,5625 = 3,375 de relación, y a
   1320px de ancho da 391px de alto. Cada pieza queda en 220px: chica.
   La relación la gobierna el ANCHO. Si se fija `height` y además
   `aspect-ratio`, el ancho sale de multiplicar los dos y la fila se desborda. */
.franja{display:flex;width:100%;aspect-ratio:3.375;overflow:hidden;
  background:#0B2E63;margin-block:var(--r4)}
.franja video{flex:1 1 0;min-width:0;height:100%;width:100%;object-fit:cover;display:block}
@media (max-width:760px){
  /* En celular seis de 9:16 dan 62px de ancho cada uno: ilegible.
     Quedan tres, y la relación baja a 1,6875. */
  .franja{aspect-ratio:1.6875}
}

/* ───────── LAS TRES PUERTAS ─────────
   Set CERRADO de relaciones de imagen, repetido. Es la regla que más cambia
   la lectura: una portada con siete fotos y siete recortes distintos es
   exactamente lo que se lee como «probado a ojo». Acá hay DOS relaciones en
   toda la página: 3,375 (la franja) y 1:1 (las tres puertas). */
.puertas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--r2);
  padding-block:var(--r4);border-top:var(--filete)}
.puerta img{width:100%;aspect-ratio:1;object-fit:cover;display:block;margin-bottom:var(--r1)}
.puerta h3{margin-bottom:6px}
@media (max-width:760px){.puertas{grid-template-columns:1fr;gap:var(--r4)}}

/* ───────── EL ÚNICO BOTÓN ─────────
   Radio: o 0, o píldora completa. Medido en Ottolenghi: 60 elementos a 2px y
   27 a 40px (píldora) — no hay radios intermedios, igual que con el logo.
   Elijo píldora porque es lo que marca que ESTO se toca. */
.cta{display:inline-block;background:var(--azul);color:#fff;text-decoration:none;
  padding:14px var(--r2);border-radius:999px;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase}
.pie{padding-block:var(--r4) var(--r8);text-align:center;border-top:var(--filete)}
.pie .cta{margin-bottom:var(--r2)}

/* ───────── la ficha, no es parte de la portada ───────── */
.ficha{background:#fff;padding-block:var(--r4);border-top:4px solid var(--azul)}
.ficha table{border-collapse:collapse;width:100%;font-size:13px;margin-top:var(--r2)}
.ficha td{border-bottom:var(--filete);padding:9px 12px 9px 0;vertical-align:top}
.ficha td:first-child{width:11em;color:var(--tinta-60)}
.ficha td:last-child{width:17em;color:var(--tinta-60)}
.ficha b{font-weight:400;color:var(--tinta)}

/* ═══════════════════════════════════════════════════════════════════════════
   PAGINAS INTERNAS · agregado el 31-10-2026 al armar el sitio completo
   No inventan nada: usan la MISMA escala de 7 pasos, las MISMAS dos tintas,
   el MISMO filete y las MISMAS dos relaciones de imagen (3,375 y 1:1).
   Lo unico que se agrega es el paso 46 de la escala, para el H1.
   ═══════════════════════════════════════════════════════════════════════════ */

/* La barra de una pagina interna va sobre crema, no sobre video. Misma altura
   y mismo filete que la del hero, para que al navegar no se mueva nada. */
.barra-solida{background:var(--crema)}
.barra-solida .marca{color:var(--tinta);text-decoration:none;letter-spacing:.08em}
.barra a[aria-current="page"]{color:var(--tinta)}

/* Paso 46 de la escala: el unico tamano nuevo. 46 = 15 x 3,07, y queda entre
   el 26 del h2 y el display del logo. */
.h1{font-family:"Playfair Display",Georgia,serif;font-size:46px;line-height:1.10;
  font-weight:400;letter-spacing:0;max-width:16em}
@media (max-width:760px){ .h1{font-size:31px} }

.apertura{padding-block:var(--r4) var(--r2)}
.apertura .cuerpo{margin-top:var(--r2)}
.miga{margin-bottom:var(--r2)}
.miga a{color:var(--tinta-60);text-decoration:none}
.miga a:hover{color:var(--tinta)}

.bloque{padding-block:var(--r4);border-top:var(--filete)}

/* ── La pieza: video 4:5 a la izquierda, texto a la derecha. Las dos columnas
   llevan minmax(0,...) porque sin eso el contenido fija el minimo y la fila se
   desborda, que es lo que ya paso con .franja. En movil se apila y el video se
   acota a 340: a 375 px de ancho un 4:5 a sangre vuelve a tapar la pantalla.
   El h2 de la pieza lleva menos aire que el de un bloque normal (r1 y no r2)
   porque aca el titulo y los parrafos son una sola columna, no una seccion. */
.pieza{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);
  gap:var(--r4);align-items:center}
.pieza-video video{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.pieza-texto h2{margin-bottom:var(--r1)}
@media (max-width:760px){
  .pieza{grid-template-columns:1fr;gap:var(--r2)}
  .pieza-video{max-width:340px;margin-inline:auto}
}
.bloque h2{margin-bottom:var(--r2)}
.bloque .cuerpo + .cuerpo{margin-top:var(--r1)}

/* La lista de productos NO es una grilla de tarjetas. Es una tabla de filete,
   que es lo mismo que hace la ficha: sin caja, sin fondo, sin sombra.
   Una tarjeta por producto convertiria 11 tortas en 11 objetos compitiendo. */
.lista{width:100%;border-collapse:collapse;margin-top:var(--r2)}
.lista td{border-bottom:var(--filete);padding:11px 12px 11px 0;vertical-align:top;font-size:15px}
.lista td:last-child{color:var(--tinta-60);font-size:13px;text-align:right;white-space:nowrap}
.lista tr:first-child td{border-top:var(--filete)}

/* Dos columnas de texto para los bloques largos. Colapsa a una en celular. */
.dos{display:grid;grid-template-columns:1fr 1fr;gap:var(--r4)}
@media (max-width:760px){ .dos{grid-template-columns:1fr;gap:var(--r2)} }

/* La franja en pagina interna va mas baja de altura: ahi es respiro entre
   secciones, no la entrada. Misma relacion, menos presencia. */
.franja.respiro{margin-block:var(--r2)}

.pie-sitio{border-top:var(--filete);padding-block:var(--r4) var(--r4)}
.pie-sitio .dos{gap:var(--r2)}
.pie-sitio nav{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.pie-sitio a{color:var(--tinta-60);text-decoration:none}
.pie-sitio a:hover{color:var(--tinta)}
.pie-sitio .firma{margin-top:var(--r2);color:var(--tinta-60)}
/* El dato legal: tiene que estar y no tiene que competir con la firma. Por eso
   va mas apagado que ella y con su propio ancho maximo, para que no se lea
   como un renglon suelto de punta a punta. */
.pie-sitio .legal{margin-top:10px;color:var(--tinta-40);
  max-width:46em;line-height:1.45}

/* 🔴 CELULAR · la barra solida desbordaba la pagina (medido el 31-10-2026:
   scrollWidth 562 contra clientWidth 375, o sea 187px de scroll lateral).
   La del hero ya tenia su regla y esta no: seis enlaces mas el rotulo de marca
   no entran en 375px, y `justify-content:space-between` no achica nada, los
   empuja. La barra pasa a dos filas y la navegacion scrollea DENTRO de si
   misma, que es lo unico que no agranda el documento. */
@media (max-width:760px){
  .barra-solida{flex-direction:column;align-items:stretch;height:auto;
    padding-block:var(--r1);gap:10px}
  .barra-solida .marca{white-space:nowrap}
  .barra-solida nav{gap:var(--r1);overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .barra-solida nav::-webkit-scrollbar{display:none}
  .barra-solida nav a{white-space:nowrap;flex:0 0 auto}
  /* La tabla de productos: la segunda columna es la descripcion y en 375px
     obliga a cortar el nombre. Pasa a bloque, uno debajo del otro. */
  .lista td{display:block;padding-right:0}
  .lista td:first-child{border-bottom:none;padding-bottom:2px}
  .lista td:last-child{text-align:left;white-space:normal;padding-top:0}
  .lista tr:first-child td:last-child{border-top:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   LA FRANJA, CON ROTULO · medido el 31-10-2026 en 10 sitios de referencia
   ───────────────────────────────────────────────────────────────────────────
   Lo medido (getBoundingClientRect + getComputedStyle a 1440x900):

     sitio             piezas  gap    texto                       link
     Pierre Herme        3-4   20px   1 palabra SOBRE, al 88%      si
     Kinfolk              3    20px   1 palabra SOBRE, al 82%      si
     Valrhona             4     0px   titulo SOBRE, izquierda      si
     Aman                 6    48px   DEBAJO, eyebrow + titulo     si
     Laduree              4    26px   DEBAJO                       si
     Aesop                7    20px   DEBAJO                       si
     noma                 4     7px   DEBAJO                       si
     Ottolenghi           8    15px   SOBRE + bajada en hover      si
     Dominique Ansel      8     0px   nada; velo 85% en hover      si

   🔑 **10 de 10 tienen cada pieza CLICKEABLE, y 8 de 10 van a una categoria
   propia del sitio. La tira no es clima: es navegacion.** Por eso cada video
   de aca linkea a su pagina, y de paso resuelve el enlazado interno que Google
   necesita para encontrar y pesar las ocho paginas.

   DOS DESVIOS DELIBERADOS, con su razon:
   1 · **Gap 0 y no 20px.** La convencion dice que a sangre no se pone texto
       fijo (los dos casos de gap 0 estan pelados en reposo). Pero el pegado es
       una decision de Rodrigo del 30-10: «me gusta mas que este todo junto».
       Se respeta, y se compensa con el punto 2.
   2 · **Velo abajo, que ni Pierre Herme ni Kinfolk usan.** Ellos eligen el
       cuadro de una FOTO FIJA; aca el cuadro cambia 30 veces por segundo y una
       merengue blanca pasa debajo de la palabra. Es exactamente el argumento
       del velo del hero: el blanco se tiene que leer sobre CUALQUIER cuadro.
   ⛔ Descartado el hover (Dominique Ansel): en celular no existe, y Rodrigo
   mira desde el telefono.
   ═══════════════════════════════════════════════════════════════════════════ */
.franja a{position:relative;flex:1 1 0;min-width:0;display:block;
  text-decoration:none;overflow:hidden}
.franja a video{width:100%;height:100%;object-fit:cover;display:block}
/* El velo arranca al 62% de la altura y sólo llega a .62 de opacidad: tiene que
   sostener el texto, no apagar el video. */
.franja a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(10,20,32,0) 0%,rgba(10,20,32,.62) 100%)}
/* 12% desde abajo = el 88% de Pierre Herme, que es la patisserie de la lista.
   13px es el paso `chico` de la escala de Mime: no se inventa un tamano nuevo. */
.franja .rotulo{position:absolute;left:4px;right:4px;bottom:12%;z-index:2;
  text-align:center;color:#fff;font-size:13px;line-height:1.20;
  text-transform:uppercase;letter-spacing:.08em;font-weight:400}
.franja a:hover .rotulo{text-decoration:underline;text-underline-offset:4px}
@media (max-width:760px){
  /* ⚠️ la regla vieja apuntaba a `video`; ahora el hijo directo es el <a>. */
  .franja a:nth-child(n+4){display:none}
  .franja .rotulo{font-size:11px;bottom:9%;left:2px;right:2px}
}

/* ═══════════════════════════════════════════════════════════════════════════
   EL LOGO SOBRE VIDEO · dos correcciones del 31-10-2026 (las vio Rodrigo)
   ───────────────────────────────────────────────────────────────────────────
   1 · «está pixelado». Y tenía razón, pero la causa no era el contorno: era
       la RESOLUCION DEL ARCHIVO. `logo-wordmark-blanco.png` medía 857x412
       contra los 2326x412 del master azul, o sea un tercio. A 1320 CSS px en
       una pantalla retina son 2640 px reales ⇒ se ampliaba **3,08 veces**.
       Se regeneró el negativo desde el master azul conservando el alfa:
       mismo trazo, otro color, sin redibujar ni deformar nada.
       Medido despues: 3,08x -> **1,13x** en retina, y 1,14x -> 0,42x en celular.
   2 · «le falta un contorno, un fondo, no un fondo negro, pero sí como una
       sombra». La sombra es un HALO ANCHO Y MUY SUAVE, no un contorno duro:
       un contorno marca el borde de la letra y una didona tiene el trazo fino
       de 7,9px, asi que un borde lo engorda y le cambia el eje. El halo sostiene
       el blanco sin tocar la forma.
   ⚠️ Lo correcto de manual seria REDIBUJAR el negativo con trazos mas gruesos
   (Penn State Visual Identity, en mime-vanguardia): un negativo no es el mismo
   archivo con otro color. Eso necesita el vector, que no tengo. Queda anotado.
   ═══════════════════════════════════════════════════════════════════════════ */
.hero .logo-b{
  filter:drop-shadow(0 2px 24px rgba(8,16,28,.55)) drop-shadow(0 0 3px rgba(8,16,28,.30));
}
.hero .claim{text-shadow:0 1px 12px rgba(8,16,28,.6)}

/* La barra del hero iba pegada al borde: Rodrigo pidió «al menos un centímetro
   más adentro». 1 cm = 38px. ⚠️ NO se toca `--canal`, porque el canal también
   gobierna el ancho del logo, y achicarlo lo mandaría al 86% del viewport, que
   es justo EL HUECO BIMODAL que el sistema prohíbe (nada entre 32% y 97%).
   ⇒ El margen extra vive sólo en la barra. */
.hero .barra{padding-inline:calc(var(--canal) + 38px)}
@media (max-width:760px){ .hero .barra{padding-inline:var(--canal)} }
