/* =========================================================
   BARRA SUPERIOR — medidas comunes a todas las pantallas
   RUTH.il

   POR QUÉ EXISTE ESTA HOJA
   ------------------------
   Cada pantalla traía su propia barra y ninguna medía igual. Medido en el
   navegador antes de tocar nada:

     pantalla        alto   logo   margen   interruptor
     mis-tramites     76     44     56px    no tenía
     mis-casos        76     44     56px    no tenía
     mi-perfil        76     44     56px    no tenía
     vehicles         72     34     48px    60x32
     inmuebles        72     34     48px    60x32
     promises         72     34     48px    60x32
     lawyer           72     34     48px    52x28
     home-lawyer      72     34      0px    52x28
     notaria          72     34     48px    no tenía
     declaracion      72      0     48px    no tenía

   Se toma como medida buena la mayoritaria —72 de alto, logo de 34, margen
   de 48 y el interruptor de 60x32— y se aplica igual en todas.

   CÓMO SE USA
   Se carga DESPUÉS de la hoja propia de cada pantalla, para ganar en la
   cascada sin tener que subir la especificidad de cada regla ni repasar
   once hojas distintas. Solo toca la barra: nada de lo que hay debajo.
   ========================================================= */

/* ---------- ALTO Y MÁRGENES ----------

   LA BARRA VA DENTRO DEL MISMO CONTENEDOR QUE EL CONTENIDO.

   Antes cada pantalla decidía por su cuenta. Medido a 1440px de ancho,
   la sangría del logo era:

     198px  portada, negocios, empezar          (3 pantallas)
      48px  login, pagos, los 4 trámites,
            las 5 de administración, mis casos  (13 pantallas)
      58px  crear cuenta                         (1 pantalla)

   Cada barra era simétrica dentro de sí misma, así que ninguna se veía
   torcida por separado. Lo que se veía era el SALTO: al pasar de la
   portada a cualquier otra pantalla, el logo se movía 150px hacia la
   izquierda. Esa es la sensación de "no está centrado".

   Se toma la medida de la portada —1220px centrados, que es el ancho
   del contenido del sitio— y se aplica a todas. El relleno lateral se
   mantiene igual que antes para que la sangría final siga siendo la
   misma que ya tenía la portada, y no se mueva nada allí. */
.navbar-ruth,
nav.main-nav {
  height: 72px;
  box-sizing: border-box;
  /* La sangría se calcula, no se fija, y por eso la barra puede seguir
     ocupando todo el ancho. Eso importa en las pantallas de registro,
     donde la barra va fija arriba con un fondo difuminado: si la
     encogiéramos a 1220px, el difuminado dejaría de cubrir los lados y
     se vería la página pasar por detrás.

     Los tres sumandos son exactamente los de la portada:
       (100% - 1220px)/2   lo que sobra a cada lado del contenedor
       + 40px              el relleno de ese contenedor
       + clamp(...)        el relleno que la barra ya tenía
     A 1440px de ancho dan 198px, que es donde la portada tiene su logo.
     Por debajo de 1220 el primer sumando es 0 y queda igual que antes. */
  padding-left:  calc(max(0px, (100% - 1220px) / 2) + 40px + clamp(18px, 3.5vw, 48px));
  padding-right: calc(max(0px, (100% - 1220px) / 2) + 40px + clamp(18px, 3.5vw, 48px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

/* La portada YA mete su barra dentro de un .wrap de 1220px con 40px de
   relleno, así que los dos primeros sumandos de arriba ya se los aplicó
   el padre. Volver a sumarlos la metería 88px más adentro. Aquí solo
   queda el relleno propio de la barra. */
.wrap > nav.main-nav,
.wrap > .navbar-ruth {
  padding-left:  clamp(18px, 3.5vw, 48px);
  padding-right: clamp(18px, 3.5vw, 48px);
}

/* home-lawyer llevaba la barra dentro de un contenedor centrado y por eso
   quedaba pegada al borde (margen 0). Se le dan los mismos márgenes. */
nav.main-nav { box-sizing: border-box; }

/* ---------- LOGO ---------- */
.navbar-ruth .nav-logo,
nav.main-nav .nav-logo {
  display: flex;
  align-items: center;
  height: 34px;
  flex-shrink: 0;
}
.navbar-ruth .nav-logo img,
nav.main-nav .nav-logo img {
  height: 34px;
  width: auto;
  object-fit: contain;
}

/* Solo uno de los dos logos se ve, según el tema. Va aquí porque
   declaracion.html no traía el par y se quedaba sin logo visible. */
.navbar-ruth .logo-dark,
nav.main-nav .logo-dark { display: none; }
.navbar-ruth .logo-light,
nav.main-nav .logo-light { display: block; }
:root[data-theme="dark"] .navbar-ruth .logo-dark,
:root[data-theme="dark"] nav.main-nav .logo-dark { display: block; }
:root[data-theme="dark"] .navbar-ruth .logo-light,
:root[data-theme="dark"] nav.main-nav .logo-light { display: none; }

/* ---------- LADO DERECHO ---------- */
.navbar-ruth .nav-right,
.navbar-ruth .nav-actions,
nav.main-nav .nav-right,
nav.main-nav .nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* ---------- INTERRUPTOR DE TEMA ---------- */
/* Mismo tamaño en todas: 60x32 con el círculo de 24. Antes había dos
   tamaños distintos (60x32 y 52x28) según la pantalla. */
.theme-toggle {
  position: relative;
  width: 60px;
  height: 32px;
  border-radius: 100px;
  /* EL INTERRUPTOR SE VE IGUAL EN LAS 29 PANTALLAS.
     Antes tiraba de --page-border y --page-card. Esos dos tokens los
     redefinen por su cuenta las hojas de los chats de vehículo e
     inmueble, así que el mismo botón salía blanco con borde claro en
     esos dos sitios y gris con borde oscuro en los demás: el control
     que sirve para lo mismo en todas partes se veía de tres formas.
     Ahora usa --bg-2 y --border-strong, que los define tokens.css una
     sola vez y nadie pisa. */
  border: 1px solid var(--border-strong, rgba(128,128,128,.3));
  background: var(--bg-2, transparent);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8px;
  flex-shrink: 0;
  transition: border-color .2s ease;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.05);
  font-family: inherit;   /* si no, el <button> hereda la fuente del navegador */
}
/* Dos pantallas dibujan el sol y la luna con la fuente de iconos (<i
   class="bi">) y otras con un <svg> escrito a mano. Se le da tamaño a
   los dos: en `empezar` los SVG no llevaban medida en ninguna hoja y
   salían sin dibujarse, dejando el círculo rosa suelto en la barra. */
.theme-toggle i { font-size: .8rem; line-height: 1; }
.theme-toggle svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  flex-shrink: 0;
}
.theme-toggle i,
.theme-toggle svg { position: relative; z-index: 1; }

.theme-toggle .tt-sun  { color: var(--magenta-soft, var(--accent, #FF80C0)); }
.theme-toggle .tt-moon { color: var(--page-ink-2, var(--text-3, rgba(255,255,255,.56))); }

/* El círculo se centra CONTRA LA CAJA, no a 3px del borde de arriba.
   Con `top: 3px` quedaba bien solo mientras la pastilla midiera 32px de
   alto; en cuanto otra hoja le puso un min-height de 44 se quedó 6px
   alto en todas las pantallas. Con top:50% y el desplazamiento en el
   propio transform, da igual cuánto mida la caja.

   El desplazamiento horizontal va también dentro del mismo `transform`:
   si se pusiera aparte, la regla de tema claro lo sustituiría entero y
   volvería a descentrarse. */
.theme-toggle .tt-thumb {
  position: absolute;
  top: 50%;
  left: 3px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--magenta, var(--accent, #C42A8E));
  transform: translateY(-50%);
  transition: transform .3s cubic-bezier(.4, 0, .2, 1);
  pointer-events: none;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
}
.theme-toggle.is-light .tt-thumb { transform: translate(28px, -50%); }
.theme-toggle.is-light .tt-sun   { color: var(--page-ink-2, var(--text-3, rgba(20,23,26,.58))); }
.theme-toggle.is-light .tt-moon  { color: var(--magenta-deep, var(--accent, #C42A8E)); }

.theme-toggle:focus-visible {
  outline: 2px solid var(--magenta, var(--accent, #C42A8E));
  outline-offset: 2px;
}

/* ---------- MÓVIL ---------- */
@media (max-width: 768px) {
  .navbar-ruth,
  nav.main-nav { height: 62px; padding-left: 16px; padding-right: 16px; gap: 10px; }

  /* Misma excepción que arriba, pero para el teléfono: cuando la barra
     va dentro de un .wrap, el hueco lateral ya lo pone el contenedor.
     Sumarle además los 16 px de la línea anterior daba 34 px en la
     portada y en el panel del abogado, frente a 16 px en el resto:
     el logo saltaba 18 px al cambiar de pantalla. */
  .wrap > .navbar-ruth,
  .wrap > nav.main-nav { padding-left: 0; padding-right: 0; }
}

/* Por debajo de 420 px las dos portadas bajan el relleno de su .wrap de
   16 a 12 px, para dar aire al texto del hero en pantallas muy
   estrechas. Está bien para el contenido, pero arrastraba también a la
   barra: en un teléfono el logo de la portada empezaba en 12 px y el de
   todas las demás pantallas en 16, así que al entrar desde la portada la
   barra entera daba un salto de 4 px. Se le devuelven esos 4 px solo a
   la barra, que así queda a 16 como el resto sin tocar el hero. */
@media (max-width: 420px) {
  .wrap > .navbar-ruth,
  .wrap > nav.main-nav { padding-left: 4px; padding-right: 4px; }
  .navbar-ruth .nav-logo,
  nav.main-nav .nav-logo,
  .navbar-ruth .nav-logo img,
  nav.main-nav .nav-logo img { height: 28px; }
  .theme-toggle { width: 52px; height: 28px; padding: 0 7px; }
  .theme-toggle .tt-thumb { width: 20px; height: 20px; }
  /* El -50% vertical va también aquí: esta regla sustituye al transform
     entero, y sin él el círculo volvería a subirse. */
  .theme-toggle.is-light .tt-thumb { transform: translate(24px, -50%); }
}

/* El contenido de las pantallas con barra fija arranca por debajo de ella.
   Se ajusta junto con el alto para que no quede ni hueco ni solape. */
.panel { padding-top: 104px; }
@media (max-width: 768px) { .panel { padding-top: 90px; } }
