/* ============================================================================
   Brooklyn by Janice — Mi cuenta
   ----------------------------------------------------------------------------
   Es donde las compradoras recuperan sus descargas. Suena secundaria y no lo
   es: el copy promete "acceso de por vida", y esta es la página donde esa
   promesa se cumple o se rompe. Cuando alguien vuelve dos años después a
   buscar su ebook, aterriza aquí.

   Por eso la pestaña de Descargas va primero en el menú, antes que Pedidos y
   que Detalles de la cuenta.
   ========================================================================= */

.woocommerce-account .wc-content { padding-block: 24px 70px; }

/* ---------- Login / registro ---------- */

/* La caja de «Acceder» ya la dibuja `.bk-login-caja` (form-login.php). Estas
   dos siguen viniendo de plantillas de WooCommerce sin override —restablecer y
   fijar contraseña— y tienen que verse igual que ella. */
.woocommerce-account .woocommerce-ResetPassword {
  max-width: 460px;
  margin-inline: auto;
  padding: 24px 20px;
  background: var(--white);
  border-radius: var(--r-caja);
  box-shadow: var(--borde-caja);
}

/* 🔴 ESTA REGLA ROMPÍA EL FOOTER EN TODAS LAS PÁGINAS DE LA CUENTA.

   Estaba escrita como `.woocommerce-account h2` —(0,1,1), sin acotar— y esa
   clase vive en el `<body>`, así que alcanzaba también a `.foot-col h2`, que
   pesa exactamente lo mismo (0,1,1) y pierde el empate por cargarse antes.
   Consecuencia medida: los tres títulos del footer —BROOKLYN, INFORMACIÓN,
   LEGAL— salían en **Young Serif de 22,4px** en vez de la monoespaciada de
   11,5px que llevan en el resto del sitio. El footer se veía distinto solo
   dentro de la cuenta, que es justo la clase de defecto que nadie encuentra
   revisando una página por vez.

   Se acota a `.woocommerce`, el contenedor del panel, que el footer no toca.
   Es la misma familia de trampa que el proyecto ya pisó veinte veces —CSS de
   una página alcanzando un componente global—, esta vez al revés: no era el
   componente el que estaba en la hoja equivocada, era la hoja de la página la
   que no estaba acotada. */
.woocommerce-account .woocommerce h2,
.woocommerce-account .woocommerce-ResetPassword h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.15;
  letter-spacing: -.005em;
  margin-bottom: 14px;
}

.woocommerce-account .form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
  padding: 0;
}

.woocommerce-account label { font-size: .82rem; font-weight: 600; }

.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="tel"],
.woocommerce-account input[type="password"],
.woocommerce-account textarea,
.woocommerce-account select {
  width: 100%;
  font-size: 16px;   /* evita el zoom automático de iOS al enfocar */
  padding: 12px 14px;
  border: 1px solid rgba(121, 87, 87, .30);
  border-radius: var(--r-campo);
  background: var(--white);
  color: var(--ink);
}

.woocommerce-account input:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus {
  outline: none;
  border-color: var(--wine);
  box-shadow: 0 0 0 3px rgba(110, 44, 52, .1);
}

/* El botón por defecto de WooCommerce es gris y no parece de esta marca. */
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-Button,
.woocommerce-account button[type="submit"] {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 13px 26px;
  border: none;
  border-radius: 999px;
  background: var(--wine);
  color: var(--white);
  font-family: var(--body);
  font-size: .95rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--t-base);
}

.woocommerce-account button[type="submit"]:hover { background: var(--wine-dark); }

.woocommerce-account .woocommerce-form-login__rememberme {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-weight: 400;
  font-size: .84rem;
}

.woocommerce-account .lost_password { font-size: .84rem; margin-top: 12px; }
.woocommerce-account .lost_password a { text-decoration: underline; text-underline-offset: 3px; color: var(--cacao); }

/* ============================================================================
   EL PANEL DE LA CUENTA — «La Carta» (27-08)
   ----------------------------------------------------------------------------
   Era la última pantalla del sitio sin componer, y se notaba: pestañas con
   viñetas de lista cortadas por la derecha, un saludo suelto en monoespaciada,
   y catorce tarjetas blancas genéricas —una por archivo Y por pedido— donde el
   mismo PDF aparecía cuatro veces.

   Ahora usa las piezas que ya existen: el bloque vino de la entrega (el mismo
   de «gracias por tu compra»), el marco de papel con doble filete de la cuenta
   del carrito, y el sello de cierre de la ficha. Ninguna es nueva.
   ========================================================================= */

/* ---------- La sesión y las pestañas ---------- */

/* Ritmo propio: `.bk-cuenta-nav` es hijo directo de `.woocommerce`, o sea una
   sección del RITMO VERTICAL ÚNICO, pero no es una sección de contenido — es la
   cabecera del panel y tiene que quedar pegada al titular de la página. El
   `padding-top` de `:first-child` la despegaba de su propio `<h1>`.

   ⚠️ HACEN FALTA CUATRO CLASES (0,4,0), no tres. La regla del ritmo que aplica
   acá es la de `:first-child` —el nav es el primer hijo de `.woocommerce`— y
   pesa (0,3,1): (0,2,1) del `:is()`, por su argumento más alto
   `.wrap--reading.section > article`, más (0,1,0) de la pseudo-clase. Con tres
   clases se empata en clases y gana el ritmo por el elemento: medido, el
   `padding-top` computaba 30px (`--sec-hero`) en vez del valor de acá. */
.woocommerce-account .woocommerce .bk-cuenta-nav.bk-cuenta-nav {
  padding-top: 5px; /* Pedido de Ignacio, 31-08. Venía escrito en 2px, sin efecto. */
  padding-bottom: 0;
}

/* La línea de sesión: quién está adentro y cómo se sale.

   Va ARRIBA de las pestañas y no dentro del escritorio, que es donde estaba:
   así identifica la sesión en las cuatro pantallas y no en una sola. Clase
   repetida porque `.entry p` es (0,1,1) y le devolvería el cuerpo de 16px. */
.bk-cuenta-sesion.bk-cuenta-sesion {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .04em;
  line-height: 1.4;
  color: var(--cacao);
}

.bk-cuenta-hola { min-width: 0; overflow-wrap: anywhere; }

/* «Cerrar sesión» es una acción destructiva y por eso NO es una pestaña: entre
   pestañas de navegación se toca sin querer, y con cuatro ítems la fila además
   no cabía a 390px. Acá queda a la vista pero fuera del camino. */
.bk-cuenta-salir.bk-cuenta-salir {
  flex: none;
  color: var(--cacao);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(121, 87, 87, .4);
}

.bk-cuenta-salir.bk-cuenta-salir:hover { color: var(--wine); text-decoration-color: var(--wine); }

/* Las pestañas: tres, entre dos filetes punteados.

   El punteado es el mismo separador de «la cuenta» del carrito y de «Las
   recetas» de la ficha; encerrar la fila entre dos la convierte en una franja
   de la carta en vez de una barra de navegación de aplicación.

   ⚠️ `list-style: none` y `padding: 0` van explícitos aunque parezcan el
   default: esta lista se dibuja dentro de `.entry`, donde `.entry ul` (0,1,1)
   declara `list-style: disc` y `padding-left: 20px` para el contenido
   editorial. Sin esto —y así estaba— cada pestaña salía con su viñeta. */
.bk-tabs.bk-tabs {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px dotted rgba(121, 87, 87, .45);
  border-bottom: 1px dotted rgba(121, 87, 87, .45);
}

.bk-tabs.bk-tabs > li { margin: 0; flex: 1 1 0; min-width: 0; }

.bk-tabs.bk-tabs > li + li { border-left: 1px dotted rgba(121, 87, 87, .3); }

.bk-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;   /* área táctil mínima */
  padding: 10px 6px;
  text-align: center;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .09em;
  text-transform: uppercase;
  line-height: 1.25;
  color: var(--cacao);
  border-bottom: 2px solid transparent;
  transition: color var(--t-fast), border-color var(--t-fast);
}

.bk-tabs a:hover { color: var(--wine); }

/* La activa se marca en vino y con subrayado grueso: se distingue por peso y
   por color, no solo por color. El fondo `--paper` (#F0F0F0) que tenía antes se
   leía como una mancha gris desde que el sitio corre sobre papel cálido. */
.bk-tabs .is-active a {
  color: var(--wine);
  font-weight: 600;
  border-bottom-color: var(--wine);
}

/* 🔴 EN ESCRITORIO, `woocommerce.css` PARTE LA CUENTA EN DOS COLUMNAS.

   Desde 768px declara `.woocommerce-account .woocommerce-MyAccount-navigation
   { float: left; width: 30% }` y el contenido al 68%. Con las pestañas ya
   convertidas en una barra horizontal, eso las metía en una columna de 200px
   —«MIS DESCARGAS» partido en dos líneas, tres cajitas apiladas— y dejaba
   **toda la mitad izquierda de la página vacía** bajo ellas.

   La cuenta se queda en una sola columna, que es lo que corresponde con tres
   pestañas y una página de ancho de lectura. Una barra lateral existe para
   menús largos; acá sería una columna de 200px sosteniendo tres enlaces.

   Empata en especificidad (0,2,0) y gana por orden de carga: `cuenta.css` va
   después de las hojas de WooCommerce. */
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: 100%;
  }
}

/* ---------- El estado vacío ---------- */

.bk-cuenta-vacia .carta-marco h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.14;
  margin: 12px 0 0;
  color: var(--ink);
}

.bk-cuenta-vacia .carta-marco > p {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: var(--lh-texto);
  color: var(--tinta-2);
}

.bk-cuenta-vacia-acciones.bk-cuenta-vacia-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 0;
}

.bk-cuenta-vacia-acciones .btn { flex: 1 1 150px; }

/* ---------- El cierre: la salida humana ---------- */

/* ⚠️ El aire va por FUERA, con el padding re-declarado.

   `.sello--linea` no es una caja con marco, pero sí lleva su propio padding y
   sus filetes; el `padding-block` del RITMO VERTICAL ÚNICO —que pesa (0,2,1)—
   se lo pisaba. Misma corrección ya hecha en «gracias», en el carrito y en la
   pantalla de descarga. Selector (0,3,0). */
.woocommerce-account .bk-cuenta-ayuda.bk-cuenta-ayuda {
  margin-block: var(--sec-borde) 0;
  padding-block: 14px;
}

/* ---------- Mis compras ---------- */

.bk-compra + .bk-compra { margin-top: 14px; }

/* Los productos, uno por línea y con punteado entre ellos: son los renglones de
   una cuenta, igual que en el carrito. La tabla original no los mostraba —decía
   «5 productos»— y era justo lo único que la compradora viene a reconocer. */
.bk-compra-items.bk-compra-items {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.bk-compra-items.bk-compra-items > li {
  margin: 0;
  padding: 7px 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.22;
  color: var(--ink);
  border-top: 1px dotted rgba(121, 87, 87, .45);
}

.bk-compra-items.bk-compra-items > li:first-child { border-top: 0; padding-top: 2px; }

/* En «Ver una compra» cada renglón lleva su precio, y en «Mis compras» no.

   No es inconsistencia: son dos objetos distintos. El listado es el índice
   —«¿cuál de mis compras es esta?»— y ahí el nombre alcanza; la compra abierta
   es el respaldo, y un respaldo sin las cifras por línea no sirve de respaldo.
   El precio va en mono junto al nombre en serif, igual que en la cuenta del
   carrito: el nombre es el renglón y la cifra es su anotación. */
.bk-vercompra .bk-compra-items.bk-compra-items > li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.bk-compra-item-precio {
  flex: 0 0 auto;
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--cacao);
}

.bk-compra-item-precio i { font-style: normal; font-size: 10px; }

/* Subtotal y descuento: solo aparecen cuando hay un cupón u otro ajuste, así
   que nunca conviven con un total idéntico. Mismo tratamiento que la fila de
   datos de abajo — son cifras de registro, van en mono. */
.bk-compra-ajuste.bk-compra-ajuste {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 0;
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: .03em;
  color: var(--cacao);
}

.bk-compra-ajuste i { font-style: normal; font-size: 10px; }
.bk-compra-ajuste--descuento { color: var(--wine); }

/* La conversión a moneda local queda bajo el total y alineada con él. */
.bk-vercompra .price-conv.price-conv {
  display: block;
  margin: 6px 0 0;
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--cacao);
  text-align: right;
}

/* Fecha, estado y total: datos de registro, así que van en mono, como todas las
   cifras del recorrido de compra. */
.bk-compra-datos.bk-compra-datos {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid rgba(110, 44, 52, .28);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .04em;
  color: var(--cacao);
}

.bk-compra-total { margin-left: auto; font-size: 16px; color: var(--wine); }
.bk-compra-total i { font-style: normal; font-size: 10.5px; color: var(--cacao); }

.bk-compra-acciones.bk-compra-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
}

.bk-compras-paginas {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
}

/* ---------- Mis datos ---------- */

.bk-datos-caja + .bk-datos-caja { margin-top: 14px; }

/* El primer campo nacía a 6px del filete: el rótulo «TUS DATOS» y la etiqueta
   «Nombre» se leían como una sola cosa. `.carta-marco .carta-filete` declara
   `margin: 0` con (0,2,0), así que esto va con tres clases para ganarle
   contando. */
.bk-datos .carta-marco .carta-filete { margin: 0 0 16px; }

.bk-datos .bk-datos-lead + .form-row.form-row { margin-top: 14px; }

.bk-datos-lead.bk-datos-lead {
  margin: 0;
  font-size: 14px;
  line-height: var(--lh-texto);
  color: var(--tinta-2);
}

.bk-datos-guardar.bk-datos-guardar { margin: 16px 0 0; }

/* La ayuda del correo: la misma pieza del checkout, no un globo azul de
   WooCommerce (ver `brooklyn_ayuda_campo()` y la nota de `cart.css`). */
.bk-datos .bk-ayuda {
  display: block;
  margin-top: 6px;
  font-size: 12.5px;
  line-height: var(--lh-texto);
  color: var(--cacao);
}

.bk-datos .required { color: var(--wine); text-decoration: none; }

/* ---------- Tablas que quedan de WooCommerce ----------
   «Mis compras» y «Ver una compra» ya no son tablas —tienen plantilla propia—,
   pero «ver una compra» (`view-order`) sigue usando las del núcleo y tiene que
   verse de esta marca. */

.woocommerce-account .shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
}

.woocommerce-account .shop_table thead { display: none; }

.woocommerce-account .shop_table tr {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  align-items: center;
  padding: 14px;
  margin-bottom: 10px;
  background: var(--white);
  border: 0;
  border-radius: var(--r-caja);
  box-shadow: var(--borde-caja);
}

.woocommerce-account .shop_table td {
  border: 0;
  padding: 0;
  font-size: .86rem;
  background: transparent;
}

.woocommerce-account .shop_table td::before {
  content: attr(data-title) ": ";
  font-family: var(--mono);
  font-size: .66rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--cacao);
  margin-right: 4px;
}

/*
 * OJO CON LA ESPECIFICIDAD.
 *
 * WooCommerce pinta sus botones principales con `.woocommerce a.button.alt`
 * (0,3,1) en morado #7f54b3. La regla que había aquí era (0,3,0): perdía por un
 * selector de elemento, y los botones de esta pantalla salían morados.
 */
.woocommerce-account .shop_table a.woocommerce-button.button,
.woocommerce-account a.button.alt,
.woocommerce-account button.button.alt,
.woocommerce-account input.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 22px;
  border-radius: 999px;
  background: var(--wine);
  background-color: var(--wine);
  color: var(--white);
  font-size: .86rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
}

.woocommerce-account .shop_table a.woocommerce-button.button:hover,
.woocommerce-account a.button.alt:hover,
.woocommerce-account button.button.alt:hover,
.woocommerce-account input.button.alt:hover {
  background: var(--wine-dark);
  background-color: var(--wine-dark);
}

/* ---------- Avisos ----------
   El de «confirma tu correo» imprimía el BOTÓN primero y la explicación debajo:
   se leía la acción antes que el motivo. Se invierte con `flex-direction`, sin
   tocar el marcado del núcleo. */
.woocommerce-account .woocommerce-Message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
  display: flex;
  flex-direction: column-reverse;
  align-items: stretch;
  gap: 12px;
  padding: 16px 18px;
  margin: 0 0 14px;
  border-radius: var(--r-caja);
  border-left: 3px solid var(--wine);
  background: var(--white);
  border-top: 1px solid rgba(121, 87, 87, .18);
  border-right: 1px solid rgba(121, 87, 87, .18);
  border-bottom: 1px solid rgba(121, 87, 87, .18);
  font-size: 14.5px;
  line-height: var(--lh-texto);
  color: var(--ink);
}

.woocommerce-account .woocommerce-error { list-style: none; }
.woocommerce-account .woocommerce-error li { margin: 0; }

/* El error NO va en flex ni lleva `gap`, y el motivo salió de medir.
   `column-reverse` + `gap: 12px` se escribieron para el aviso de «confirma tu
   correo», que son DOS piezas (explicación + botón). El error es solo una lista
   de mensajes, nunca trae botón — y ahí el `gap` se convierte en 12px de aire
   fantasma ARRIBA del texto: Chrome reserva el hueco de fila del nodo de texto
   en blanco que WooCommerce imprime entre `<ul>` y `<li>`, aunque no lo dibuje.
   Medido a 390px: 29px arriba contra 17 abajo dentro del recuadro.

   ⚠️ `justify-content: center` NO lo arregla — probado: el contenedor no es más
   alto que su contenido, el hueco ES el gap. Hay que quitar el gap.
   Con `block` queda 17/17, o sea el texto centrado dentro del recuadro.

   De paso, `column-reverse` invertía el orden cuando WooCommerce imprime varios
   errores a la vez: se leían de atrás para adelante. La separación entre
   mensajes la pone ahora el margen entre hermanos. */
.woocommerce-account .woocommerce-error.woocommerce-error {
  display: block;
  gap: 0;
}
.woocommerce-account .woocommerce-error li + li { margin-top: 12px; }

/* ⚠️ Los 20px pisan al RITMO VERTICAL ÚNICO, que le da `--sec-hero` (30px) al
   primer hijo. Pedido de Ignacio (31-08) para este aviso en concreto: el
   recuadro ya trae 16px de aire propio por dentro, así que los 30 de sección
   se leen como el doble de lo que son.

   Van con CUATRO clases (0,4,0): el `:is()` del ritmo pesa (0,2,1) y su regla
   de `:first-child` suma otra clase hasta (0,3,1) — con tres se empata en
   clases y gana el ritmo por el elemento.

   ⚠️ Y el `:not(:empty)` NO es adorno: WooCommerce imprime este contenedor
   SIEMPRE, tenga algo que decir o no, y el ritmo lo anula con `> :empty`
   (0,3,1). Sin el `:not()` esta regla también le ganaría a esa, y el aviso
   vacío se llevaría 20px del primer pantallazo de TODAS las pantallas de la
   cuenta para no mostrar nada. */
.woocommerce-account .woocommerce .woocommerce-notices-wrapper.woocommerce-notices-wrapper:not(:empty) {
  padding-top: 20px;
}

.woocommerce-account .woocommerce-Message .button,
.woocommerce-account .woocommerce-info .button { align-self: flex-start; }

/* ============================================================================
   Acceder — «La Carta» (23-08)
   ----------------------------------------------------------------------------
   La pantalla donde aterrizan las 328 compradoras migradas a reclamar su
   «acceso de por vida». Antes era el formulario crudo de WooCommerce sobre un
   recuadro redondeado: ni el fondo ni la tipografía ni las esquinas eran las
   del resto del sitio.
   ========================================================================= */

/* La caja va ALINEADA A LA COLUMNA, no centrada.

   Estaba con `margin-inline: auto` dentro de la columna de lectura: en
   escritorio quedaba a 393px mientras las migas y el título arrancaban a
   295px, o sea el bloque principal de la página corrido 98px respecto de todo
   lo demás. Es el mismo desalineado que el 23-08 se corrigió en las franjas
   compartidas: dentro de una página, todo respeta la misma columna. */
.bk-login {
  max-width: 480px;
  margin-inline: 0;
}

.bk-login-caja {
  background: var(--white);
  padding: 20px 18px;
  border-radius: var(--r-caja);
  box-shadow: var(--borde-caja);
}

.bk-login-caja .eyebrow { margin: 0 0 6px; }

/* Es <h1> desde el 26-08 (ver form-login.php): el `clamp()` de `base.css` lo
   llevaría hasta 3,1rem, que es tamaño de titular de página, no de caja. */
.bk-login-caja h1,
.bk-login-caja h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.15;
  letter-spacing: -.005em;
  margin: 0 0 6px;
}

/* Clase repetida: `components.css` declara `.entry p` (0,1,1) con 16px y le
   ganaba a `.bk-login-bajada` (0,1,0). La bajada es texto de apoyo, no cuerpo
   de artículo. */
.bk-login-bajada.bk-login-bajada {
  margin: 0 0 16px;
  font-size: 14.5px;
  line-height: var(--lh-texto);
  color: var(--tinta-2);
}

/* La nota de abajo NO es decoración: es la salida de quien compró sin cuenta,
   que es la mayoría. Ver el comentario de form-login.php. */
.bk-login-ayuda {
  max-width: 480px;
  margin-inline: auto;
  padding-inline: 18px;
  background: rgba(110, 44, 52, .05);
  border-radius: var(--r-campo);
}

/* 20px de aire abajo, dentro del recuadro (pedido de Ignacio, 31-08). Venía
   en 40px porque el aside es el ÚLTIMO hijo de `.woocommerce-account
   .woocommerce` y el RITMO VERTICAL ÚNICO le da `--sec-borde` para separarlo
   del footer. Pero acá ese padding no separa nada: la caja tiene fondo propio,
   así que se pinta DENTRO del recuadro y solo lo agranda.

   ⚠️ CUATRO CLASES —(0,4,0)— OBLIGATORIAS: el `padding-bottom` lo pone
   `:is(…) > :last-child`, y ese `:last-child` cuenta como clase sobre el
   `:is()`, que ya pesa (0,2,1) por `.wrap--reading.section > article`. Total
   (0,3,1): con tres clases se empata en clases y gana el ritmo por el
   elemento. Es el mismo caso ya resuelto en el 404 con `.bk-vacio-aviso`. */
.bk-login-ayuda.bk-login-ayuda.bk-login-ayuda.bk-login-ayuda {
  padding-bottom: 20px;
}

.bk-login-ayuda p {
  margin: 0;
  font-size: 14px;
  line-height: var(--lh-texto);
  color: var(--tinta-2);
}

.bk-login-ayuda p + p { margin-top: 10px; }

.bk-login-ayuda strong { color: var(--ink); }

.bk-login-ayuda a {
  color: var(--wine);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (min-width: 860px) {
  .bk-login--2col {
    max-width: var(--reading);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
}

/* WooCommerce dibuja `form.login` y `form.register` con borde gris #d3ced2 y
   `border-radius: 5px` desde su propia hoja. Dentro de la caja de «La Carta»
   eso deja un recuadro redondeado flotando dentro de otro cuadrado — se ve, y
   es la clase de detalle que hace que una página «no parezca terminada».
   El selector lleva `.woocommerce` para ganarle en especificidad (0,2,1). */
.woocommerce .bk-login-caja form.login,
.woocommerce .bk-login-caja form.register {
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 0;
}


/* ============================================================================
   El formulario de la cuenta — alineación y medidas (26-08)
   ----------------------------------------------------------------------------
   ⚠️ ESPECIFICIDAD, otra vez, y esta vez desalineaba la página entera.

   `woocommerce.css` declara `.woocommerce form .form-row` (0,2,1) con
   `padding: 3px` y `.woocommerce form .form-row .input-text` (0,3,1) con
   `padding: .5em` y borde propio. Las reglas del tema de más arriba son
   `.woocommerce-account .form-row` (0,2,0) y `.woocommerce-account input[...]`
   (0,2,0): pierden las dos, por más abajo que estén en el archivo.

   Consecuencia visible, y es exactamente lo que se veía «descuadrado»: las
   etiquetas y los campos arrancaban 3px a la derecha del eyebrow, del titular
   y de la bajada —tres píxeles bastan para que una caja se lea torcida—, los
   campos medían 37px de alto contra los 46 del resto del sitio, y su borde
   salía en un `rgba(32,7,7,.8)` que no existe en la paleta.

   Se sube la especificidad a (0,3,1) y (0,4,1) para ganar contando, no
   confiando en el orden de carga. Cubre las tres pantallas que comparten este
   formulario: acceder, restablecer contraseña y fijar la nueva.
   ========================================================================= */

.woocommerce-account .woocommerce form .form-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 0;
  margin: 0 0 14px;
}

.woocommerce-account .woocommerce form .form-row label {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
}

.woocommerce-account .woocommerce form .form-row .input-text,
.woocommerce-account .woocommerce form .form-row input[type="text"],
.woocommerce-account .woocommerce form .form-row input[type="email"],
.woocommerce-account .woocommerce form .form-row input[type="password"] {
  width: 100%;
  min-height: 46px;
  /* 16px exactos: por debajo de eso iOS hace zoom al enfocar y descuadra el
     formulario. Es el mismo valor del checkout. */
  font-size: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(121, 87, 87, .30);
  border-radius: var(--r-campo);
  background: var(--white);
  color: var(--ink);
}

/* «Mantener la sesión abierta»: la casilla y su texto van centrados entre sí.

   La regla que hacía esto era `.bk-login .woocommerce-form-login__rememberme`
   (0,2,0) y perdía contra `.woocommerce form .form-row label` (0,3,1), que la
   dejaba en `display: block`. Sin flex, la casilla y el texto se alinean por
   línea base: el texto caía 4,5px más abajo que el centro de la casilla, que
   es justo lo que se veía desalineado. Va con la especificidad del bloque
   —(0,5,1)— para ganarle contando. */
.woocommerce-account .woocommerce form .form-row label.woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--tinta-2);
  cursor: pointer;
}

.woocommerce-account .woocommerce form .form-row .woocommerce-form-login__rememberme input {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: var(--wine);
  flex: none;
}

/* El campo de contraseña vive dentro de `.password-input`, que WooCommerce
   dibuja como flex para colgarle el ojo de «mostrar contraseña». Sin esto el
   campo no toma el alto y el ojo queda montado sobre el texto. */
.woocommerce-account .woocommerce form .form-row .password-input { width: 100%; }
.woocommerce-account .woocommerce form .form-row .show-password-input { right: 12px; }

/* La fila de acciones: el checkbox y el botón van uno debajo del otro y no en
   la misma línea —en un teléfono compartir fila deja el botón angosto justo
   donde termina la pantalla—, y no llevan el margen inferior de un campo.

   Arriba no lleva NADA: ni padding (ya era 0) ni margen propio. Lo que se veía
   como aire de más eran los 18px de `margin-top` que tenía acá, sumados a los
   14px que deja el campo de contraseña. Ahora la separación es la misma que
   hay entre dos campos. Pedido de Ignacio (26-08). */
.woocommerce-account .woocommerce form .form-row.bk-login-acciones {
  gap: 14px;
  padding-top: 0;
  margin: 0;
}

/* WooCommerce le pone `margin-right: 1em` a todo `.button`; dentro de una
   columna eso deja el botón 15px más corto que los campos de arriba. */
/* WooCommerce le pone `margin-right: 1em` a todo `.button`; dentro de una
   columna eso deja el botón 15px más corto que los campos de arriba.

   Y el padding vertical se va a 0 (pedido de Ignacio, 26-08): el alto lo
   sostiene `min-height: 48px` y el texto lo centra el `align-items: center`
   del propio botón. Se quitan los dos lados y no solo el de abajo a propósito
   —con 13px arriba y 0 abajo el texto quedaría 6,5px descentrado dentro del
   botón, que es peor que el aire que se quería sacar. */
.woocommerce-account .woocommerce .woocommerce-form-login__submit {
  margin: 0;
  padding-block: 0;
}

/* «¿Olvidaste tu contraseña?» va pegado al botón y centrado bajo él: es la
   salida de la misma acción, no una línea suelta del formulario. Pedido de
   Ignacio (26-08). */
.woocommerce-account .woocommerce .lost_password {
  margin: 12px 0 0;
  text-align: center;
}

/* La nota de ayuda se pega a la caja en vez de flotar suelta al medio. */
.bk-login-ayuda { max-width: 480px; margin-inline: 0; }

/* El ritmo vertical se estaba contando DOS VECES en esta página.

   `.entry` es hijo directo del article, así que toma sus 20px arriba y abajo;
   y adentro, `.woocommerce-account .woocommerce > *` se los vuelve a dar al
   bloque de acceso. Resultado: 80px entre las migas y la caja, y otros tantos
   contra el footer, cuando la regla del sitio son 20. El contenedor de
   WooCommerce ya lleva el ritmo, así que el envoltorio no lo repite.

   Selector (0,3,1) para ganarle al `:is()` del ritmo, que pesa (0,2,1). */
.woocommerce-account .wrap--reading.section > article,
.woocommerce-account .wrap--reading.section > article > .entry {
  padding-block: 0;
}

/* La caja arranca pegada a las migas: los 20px que las migas ya dejan abajo
   son toda la separación que necesita, y el aire de adentro lo pone la propia
   caja. Pedido de Ignacio (26-08).

   Selector (0,3,0) —tres clases— para ganarle al `:is()` del ritmo, que pesa
   (0,2,1). El padding de abajo se conserva: ahí sí hay una sección siguiente,
   la nota de ayuda. */
.woocommerce-account .woocommerce > .bk-login { padding-top: 0; }

/* Aire contra el footer.

   El RITMO VERTICAL ÚNICO va en `padding` —a propósito, para que las franjas
   de color se toquen entre ellas—, pero acá el último bloque es una caja CON
   BORDE: sus 20px quedan DENTRO del recuadro punteado y por fuera no separa
   nada. Al sacarle el ritmo duplicado al <article> y al `.entry` (más arriba
   en esta hoja) desapareció el colchón que venía de ellos y el recuadro quedó
   tocando el footer. Estos 20px van por fuera, que es donde faltaban.

   Selector (0,3,0) —`:last-child` cuenta como clase— para ganarle al `:is()`
   del ritmo, que declara `margin-block: 0` con (0,2,1). */
.woocommerce-account .woocommerce > :last-child {
  margin-bottom: var(--sec-borde);
}

/* ---------- Ver una compra ---------- */

.bk-vercompra .bk-entrega + .carta-marco { margin-top: 14px; }

.bk-compra-pago.bk-compra-pago {
  margin: 8px 0 0;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .04em;
  color: var(--cacao);
}

.bk-compra-notas.bk-compra-notas {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.bk-compra-notas.bk-compra-notas > li {
  margin: 0;
  padding: 10px 0;
  border-top: 1px dotted rgba(121, 87, 87, .45);
}

.bk-compra-notas.bk-compra-notas > li:first-child { border-top: 0; padding-top: 2px; }

.bk-compra-notas p {
  margin: 4px 0 0;
  font-size: 14.5px;
  line-height: var(--lh-texto);
  color: var(--tinta-2);
}

.bk-compra-nota-fecha {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cacao);
}
