/* =====================================================================
   TEMA "EDITORIAL" — identidad de Alexis Escobedo
   =====================================================================

   Paleta tomada del demo de Quinn de Squarespace, medida con el navegador,
   no a ojo:  fondo #FDFDFD · rojo #FF340A · casi negro #1D1D1D · gris #F2F2F2

   SOBRE EL ROJO, QUE ES LO IMPORTANTE DE ESTE ARCHIVO
   ---------------------------------------------------
   #FF340A sobre #FDFDFD da 3.59:1. Eso alcanza para texto grande —el mínimo
   es 3:1— pero NO para texto normal, donde el mínimo es 4.5:1. En el demo de
   Squarespace los párrafos son rojos y por eso no pasan; en un portafolio de
   fotos casi no importa, pero esta página existe para que un lead lea
   precios, metros y fechas de entrega, muchas veces en el celular a media
   calle. Ahí sí importa.

   La solución no fue cambiarle el color: fue repartir los papeles.

     --marca   #FF340A   el rojo EXACTO. Fondos y texto grande (titulares,
                         el gigante de la portada, los números de las fichas).
     --acento  #E12700   el mismo rojo 15% más oscuro, 4.60:1. Sólo para
                         texto CHICO: etiquetas, ligas, letras pequeñas.
     --tinta   #1D1D1D   16.57:1. Todo el cuerpo de texto.

   Los dos rojos son indistinguibles uno al lado del otro. La diferencia se
   nota nada más al leer, que es de lo que se trata.

   Botones: fondo rojo de marca con texto #1D1D1D = 4.61:1. Pasa. Texto
   blanco sobre ese rojo daría 3.65:1 y no pasa, así que los botones llevan
   letra casi negra, no blanca.

   NO HAY MODO OSCURO EN ESTE ARCHIVO, y es a propósito: Alexis no lo quiso.
   Su ficha trae modo_oscuro:false, el Worker no imprime el botón ni el
   script que lee la preferencia, y el <html> se queda en data-theme="light".

   La portada "tipografico" vive aquí abajo y no en base.css porque hoy la usa
   una sola asesora. Si un segundo asesor la pide con OTRA paleta, su
   estructura se muda a base.css y los colores se quedan en cada tema.
   ===================================================================== */

:root{
  --ancho:1140px;

  /* Instrument Serif sustituye a Minion Pro Condensed Display, que es de
     Adobe Fonts: licencia por suscripción y amarrada al dominio, así que no
     se puede servir desde aquí. Es la libre que más se le acerca. */
  --display:"Instrument Serif", Georgia, "Times New Roman", serif;

  /* ---- papel y superficies ---- */
  --papel:#FDFDFD;
  --papel-translucido:rgba(253,253,253,.92);
  --superficie:#F2F2F2;
  --superficie-2:#E9E9E9;
  /* El SEGUNDO color de fondo. Su referencia tiene dos: el blanco roto de
     la página y este gris claro, que alterna por secciones.
     #E8E8E8 y no el #F2F2F2 del demo original: ése se distingue del blanco
     apenas 1.10:1 y en la pantalla de un celular al sol no se ve. Éste da
     1.20:1, que sí se nota. Por eso los grises de texto de
     abajo van más oscuros: tienen que seguir pasando SOBRE esta banda. */
  --banda:#E8E8E8;
  --op-fondo:#FDFDFD;

  /* ---- texto ---- */
  --tinta:#1D1D1D;                /* 16.57:1 sobre el papel */
  --suave:#676767;                /*  5.01:1 — el gris de #767676 del demo
                                     daba 4.47:1 y se quedaba a un pelo */
  --sepia-deco:#8A8A8A;

  /* ---- el rojo, en sus dos papeles ---- */
  --marca:#FF340A;                /* el exacto: fondos y texto grande */
  --marca-fuerte:#E12700;
  --marca-txt:#1D1D1D;            /* 4.61:1 sobre el rojo */
  /* #E12700 daba 4.60:1 sobre el papel pero sólo 4.18:1 sobre la superficie
     gris, y hay texto chico en las dos. Éste es el primer rojo que aguanta
     en los TRES fondos del tema: 5.42 sobre papel, 4.93 sobre gris y 4.54
     sobre gris oscuro. Validar un color contra un solo fondo fue mi error. */
  --acento:#C92300;

  /* Rojo de los TITULARES, y existe aparte de --marca por una razón medida:
     el de marca da 2.98:1 sobre la banda gris y el mínimo para texto de 24px
     o más es 3:1 — falla por dos centésimas. Este otro, 5% más oscuro, da
     3.12 sobre la banda y 3.76 sobre el papel, así que sirve en los dos
     fondos. Junto al de marca no se distingue.
     --marca se queda intacto para el tipo gigante de la portada y para los
     botones, que siempre caen sobre blanco. */
  --titular:#FC2B00;

  /* ---- líneas ----
     El estilo editorial es plano: líneas finas en lugar de sombras. */
  --linea:rgba(29,29,29,.14);
  --linea-fuerte:rgba(29,29,29,.30);
  --sombra:none;
  --sombra-alta:none;
  --sombra-marca:none;
  --elev-0:none;
  --elev-1:0 1px 2px rgba(29,29,29,.06);
  --elev-2:0 2px 4px rgba(29,29,29,.08), 0 14px 28px -18px rgba(29,29,29,.28);
  --elev-marca:0 2px 4px rgba(255,52,10,.16);
  --filo:inset 0 0 0 0 transparent;

  /* ---- la etiqueta que gira junto al nombre ----
     Negra con letra blanca, no roja: sobre el rojo la letra chica no
     alcanzaba 4.5:1, y el negro además se parece más a la referencia. */
  --chapa-fondo:#1D1D1D;
  --chapa-txt:#FDFDFD;
  --chapa-sombra:none;
  --pulso:255,52,10;

  /* ---- chips y estados ---- */
  --chip-fondo:rgba(255,52,10,.09);
  --chip-txt:#B31F00;            /* sobre el rojo al 9%, que es más claro */
  --chip-linea:rgba(255,52,10,.28);
  --estado-fondo:#F2F2F2;
  --estado-txt:#4A4A4A;

  /* ---- bloques oscuros ---- */
  --terminal:#1D1D1D;
  --terminal-txt:#FDFDFD;
  --terminal-suave:rgba(253,253,253,.72);

  /* ---- el pie ----
     Rojo de marca sobre el negro da 4.38:1, otro pelo por debajo. Para las
     ligas del pie se aclara el mismo rojo. */
  --pie-fondo:#1D1D1D;
  --pie-txt:#FDFDFD;
  --pie-suave:rgba(253,253,253,.70);
  --pie-linea:rgba(253,253,253,.18);
  --pie-acento:#FF8264;

  /* ---- la portada del pórtico, que aquí no se usa ----
     Se dejan definidos para que ningún var() quede sin valor si algún día
     esta paleta se combina con la otra portada. */
  --pan-fondo:#1D1D1D;
  --portico-nombre:#6E6E6E;
  --pan-textura-movil:linear-gradient(160deg,#2A2A2A,#1D1D1D);
}

/* Instrument Serif sólo existe en un peso. Pedirle 700 obliga al navegador
   a engordarla a la fuerza y se ve sucia. Los titulares van en 400 y el
   contraste lo da el tamaño, no el grosor — que es justo cómo funciona la
   referencia. */
h1,h2,h3,h4{font-weight:400;letter-spacing:-.015em}

/* Titulares y subtítulos en su rojo, que es lo que pidió. El reparto por
   tamaño NO es un capricho: su rojo de marca da 3.59:1, que alcanza para
   texto de 24px o más (mínimo 3:1) pero no para texto normal (mínimo 4.5:1).
   Los titulares grandes llevan el rojo exacto; los chicos, el rojo oscuro,
   que da 4.93:1 hasta sobre el gris. A la vista son el mismo color. */
/* LAS BANDAS. Este tema no las tenía definidas, y por eso su página se veía
   toda de un solo blanco: las clases existen en el HTML compartido, pero sin
   color asignado no pintan nada.

   Los cortes diagonales del diseño original se quitan aquí: el estilo
   editorial es de líneas rectas y un corte en diagonal se pelea con eso. */
.banda-suave,.banda-papel{background:var(--banda)}
.diag,.diag-i{clip-path:none;margin-top:0;padding-top:0}

h1,h2{color:var(--titular)}
h3,h4{color:var(--acento)}
/* Los números de los pasos también son texto grande en rojo.
   Lleva :root delante a propósito: el <style> que va dentro del index.html
   se carga DESPUÉS de esta hoja, así que con la misma especificidad gana él.
   El :root sube la especificidad sin recurrir a !important. */
:root .paso i{color:var(--titular)}
.cifra b,.res-cuenta b,.tarjeta-marca,.paso i{font-weight:400}


/* ============ El encabezado, al estilo de la referencia ============
   En la referencia el nombre va arriba a la izquierda en mayúsculas muy
   espaciadas, el menú a la derecha en rojo, y no hay retrato ni adornos.
   Se consigue con CSS: el HTML del header no se forkeó. */

header .barra{align-items:flex-start;padding-top:18px;padding-bottom:18px}

/* El retrato SÍ va en el encabezado, con su nombre al lado. Lo tuve
   escondido un rato copiando la referencia, pero para una asesora
   inmobiliaria la cara arriba es lo que genera confianza, y el nombre
   completo con "Real Estate" ya vive en la portada, así que no se repite. */

/* El encabezado lleva SÓLO la marca, como la referencia, donde arriba a la
   izquierda va nada más "PIA QUINN". Se esconden la etiqueta que gira y la
   línea del cargo: "Real Estate" ya dice a qué se dedica, y el cargo
   completo sigue publicado en la línea de abajo del titular, así que Google
   y los lectores de pantalla no pierden nada. */
header .asesor b{
  font-family:Inter,system-ui,sans-serif;
  font-weight:600; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--tinta);
}
header .asesor .chapa{display:none}
header .asesor > div > span{display:none}
.nav a{
  font-family:Inter,system-ui,sans-serif;
  font-size:.92rem; letter-spacing:-.01em; color:var(--acento);
}
.nav a:hover{color:var(--tinta)}


/* ============ Portada "tipografico" ============

   Tres renglones enormes con la foto encimada a la derecha.

   El tamaño NO se fija aquí: lo calcula base.js en modo grupo, midiendo los
   tres renglones y poniéndolos todos al tamaño que hace que el MÁS LARGO
   —ARCHITECTURE— llene el ancho. Las palabras cortas dejan aire a la
   derecha, y en ese aire entra la foto. El clamp() de abajo es sólo el valor
   de arranque, para que no haya un salto antes de que corra el JavaScript. */

.editorial{
  position:relative; overflow:hidden;
  background:var(--papel);
  border-bottom:1px solid var(--linea);
  /* La portada ocupa la PANTALLA COMPLETA, menos el encabezado, que es
     sticky y sí ocupa lugar arriba.

     El alto del encabezado lo MIDE base.js y lo publica en la variable: no
     es un número fijo porque cambia con el largo del nombre del asesor, con
     el tema y con el ancho de la ventana. El 92px es sólo el respaldo si el
     JavaScript no corre. */
  height:calc(100svh - var(--alto-encabezado, 92px));
  min-height:560px;
  padding:clamp(14px,2vw,26px) 0 clamp(16px,2vw,28px);
}
.ed-marco{
  position:relative; width:100%; height:100%;
  max-width:var(--ancho); margin:0 auto; padding:0 20px;
  /* El contenido se centra vertical: el sobrante se reparte arriba y abajo
     en lugar de quedar todo apilado al principio. */
  display:flex; flex-direction:column; justify-content:center;
}

/* La línea en cursiva roja: en la referencia es el correo; aquí es su marca,
   así lo pidió. Ya no es una liga porque no es un dato de contacto. */
.ed-contacto{
  flex:0 0 auto;
  margin:0 0 clamp(6px,1vw,14px);
  font-family:var(--display); font-style:italic;
  font-size:clamp(1.05rem,2.1vw,1.55rem);
  color:var(--acento);
}

/* El bloque mide lo que mide su contenido. Ya NO se estira con flex:1: el
   medidor calcula el alto disponible por su cuenta, restando los hermanos.
   Estirado, cuando el límite que mandaba era el ancho, sobraban 300px de
   blanco entre el tipo y la liga. */
.ed-bloque{
  position:relative;
  flex:0 0 auto; min-height:0;
  /* SIN límite de alto, a propósito.

     Con cuatro renglones, forzar que la portada quepa en una pantalla dejaba
     el tipo al 58% del ancho, y entonces la foto ya no se cruzaba con nada:
     quedaba a un lado en lugar de encima. La referencia tiene el tipo de
     borde a borde y la imagen montada, y para eso la portada tiene que poder
     ser más alta que la pantalla — como lo es la referencia misma.

     Para volver al comportamiento anterior se pone 1 aquí y ya. */
  --limite-alto:0;
}

/* LAS TRES CAPAS, y el orden es lo que hace el efecto:

     el segundo grupo (.ed-eco) ....... abajo    z-index 0  → la foto lo corta
     la foto (.ed-foto) .............. en medio  z-index 1
     el primer grupo (.ed-titulo) .... arriba    z-index 2  → sus letras se
                                                              leen SOBRE la foto

   Es el cruce de la referencia: el renglón de arriba se monta en la imagen y
   se sigue leyendo; el repetido queda detrás y se corta. */
.ed-eco{display:block; position:relative; z-index:0; margin:0}
.ed-titulo{display:block; position:relative; z-index:2; margin:0}

/* Los seis renglones — tres palabras, dos veces — TODOS al mismo tamaño.
   El tamaño lo calcula base.js con los dos límites; el clamp() de aquí es
   sólo el arranque, para que no haya un salto antes de que corra el JS. */
.ed-linea{
  display:block;
  font-family:var(--display); font-weight:400;
  color:var(--marca);                  /* el rojo exacto: es texto enorme */
  line-height:.84; letter-spacing:-.018em;
  white-space:nowrap;                  /* una palabra, un renglón */
  font-size:clamp(1.6rem,7.5vw,6.4rem);
}

/* La foto, por ENCIMA del tipo y pegada al segundo juego de palabras: el
   bloque son seis renglones, así que la repetición empieza exactamente a la
   mitad. Ahí entra la imagen y la recorta, igual que en la referencia. */
.ed-foto{
  /* La posición vertical la publica base.js midiendo dónde empieza de
     verdad la repetición. El 50% es sólo el respaldo si el JS no corre. */
  position:absolute; right:0;
  top:var(--foto-arriba,50%);
  height:var(--foto-alto,auto);
  aspect-ratio:var(--foto-prop,auto);
  width:46%;
  margin:0; z-index:1; overflow:hidden; background:var(--superficie);
}
.ed-foto img{width:100%;height:100%;object-fit:cover;display:block}

/* Abajo ya sólo va la liga al buscador: el subtítulo, el párrafo y el botón
   de WhatsApp salieron de la portada por pedido de ella. El contacto no se
   pierde — sigue en el botón del encabezado y en el pie. */
.ed-abajo{
  flex:0 0 auto; position:relative; z-index:2;
  margin-top:clamp(8px,1.4vw,18px);
}
.ed-baja{
  font-family:Inter,system-ui,sans-serif;
  font-size:.82rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--acento); text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:2px;
}
.ed-baja:hover{color:var(--tinta)}

/* ---- Celular ----
   MISMA estructura, no otra: la repetición se queda y la foto se sigue
   encimando, que es lo que se pidió. Sólo cambia el descuento del
   encabezado, que en celular es más bajo, y la foto se hace más angosta
   para que el recorte deje ver de qué palabra se trata. */
@media (max-width:760px){
  /* En celular el que manda es el ancho, no el alto, así que la portada
     mide lo que mide y ya. Forzarla a una pantalla completa sólo agregaba
     blanco debajo. */
  /* En celular la portada mide lo que mide: forzarla a una pantalla completa
     sólo agrega blanco, y la foto va apilada, no estirada hasta el borde. */
  .editorial{height:auto; min-height:0}
  .ed-foto{width:62%; right:-6%; height:auto; --foto-prop:4/3}
}

/* Pantallas muy bajas —un celular en horizontal— donde una pantalla de alto
   deja el tipo diminuto. Ahí se deja crecer y que haya scroll. */
@media (max-height:520px){
  .editorial{height:auto; min-height:0}
  .ed-foto{height:auto; --foto-prop:4/3}
}


/* ============ La semblanza ============
   Va debajo de la portada y antes del buscador, sobre el fondo blanco, con
   su foto al lado — la de sus recorridos, tapándose con el teléfono, que es
   su sello en Instagram.

   TODO EL TEXTO EN ROJO, pero en --acento y no en --marca, y la razón es
   medible: el rojo de marca sobre el papel da 3.59:1, que alcanza para
   titulares (mínimo 3:1) pero NO para un párrafo (mínimo 4.5:1). Y esto es
   un párrafo largo de biografía, justo lo que alguien se va a sentar a leer.
   --acento es el mismo rojo 23% más oscuro y da 5.42:1. Uno al lado del otro
   no se distinguen; la diferencia sólo aparece al leer, que es el punto. */

.semblanza{
  background:var(--papel);
  padding:clamp(40px,6vw,86px) 0;
  border-bottom:1px solid var(--linea);
}
.sem-rejilla{
  display:grid;
  /* La foto va PRIMERO en el HTML —para que en celular aparezca arriba sin
     reordenar nada— así que le toca la primera columna. Por eso la angosta
     va primero: al revés, la foto se quedaba con todo el ancho y el texto
     apretado en un tercio. */
  grid-template-columns:minmax(0,34%) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);
  align-items:center;
}
@media (max-width:760px){
  /* La foto primero en celular: engancha más una imagen que un bloque de
     texto de pantalla completa. */
  .sem-rejilla{grid-template-columns:1fr}
}

.sem-foto{
  margin:0; overflow:hidden;
  background:var(--superficie-2);
  aspect-ratio:3/4;
}
.sem-foto img{
  width:100%; height:100%; display:block;
  object-fit:cover; object-position:50% 28%;
}

/* LA TIPOGRAFÍA DE ESTA SECCIÓN ES LA DEL SERIF, no la del resto de la
   página, y sólo aquí. Es lo que se pidió.

   Va en tamaños más grandes que un párrafo normal, y no por gusto:
   Instrument Serif es una fuente de DISPLAY, de mucho contraste entre el
   trazo gordo y el fino. A 16px sus trazos finos casi desaparecen, y en rojo
   se lavan todavía más. El contraste de color sigue dando 5.42:1 —eso no
   cambia con la fuente— pero un número que pasa no sirve de nada si la letra
   es tan delgada que no se distingue. Subiéndola de tamaño, los trazos finos
   vuelven a tener cuerpo y la fuente se lee como debe. */
/* "Quién soy" es el TÍTULO de la sección, no una etiqueta chica: misma
   tipografía y mismo color que el titular de la portada, sólo en tamaño de
   título de sección.

   Puede llevar el rojo de marca exacto —y no el oscuro del cuerpo— porque a
   este tamaño es texto grande: el mínimo baja de 4.5:1 a 3:1 y el rojo da
   3.59 sobre el papel. El cuerpo de la semblanza sí necesita el oscuro,
   porque ahí sí es texto de lectura. */
.sem-titulo{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(2rem,4.2vw,3.4rem);
  line-height:1.02; letter-spacing:-.015em;
  color:var(--marca);
  margin:0 0 clamp(16px,2vw,28px);
}
.sem-txt p{
  font-family:var(--display);
  color:var(--acento);
  max-width:40ch;                 /* menos que 46ch: el serif es más ancho */
  margin:0 0 clamp(14px,1.6vw,22px);
  font-size:clamp(1.14rem,1.7vw,1.32rem);
  line-height:1.48;               /* el serif pide menos interlineado */
  letter-spacing:.002em;
}
/* El primer párrafo más grande: es el que engancha. */
.sem-txt .sem-lede{
  font-size:clamp(1.38rem,2.4vw,1.78rem);
  line-height:1.34;
}
.sem-txt p:last-child{margin-bottom:0}
