/* ============================================================
   DEL MONTE AG — Diagnóstico de campo
   Sistema visual · MPP Network 2026

   PASO A FONDO CLARO · 13 de agosto de 2026.
   La referencia es SAP: software de empresa, no una landing. El
   detalle del porqué y la tabla de contrastes están abajo, en :root.

   CRITERIOS DEL SISTEMA
   1. Contraste: todo texto ≥ 4.5:1 sobre los tres fondos reales
      (--papel #F5F7F2, --tarjeta #FFFFFF, --hundido #EEF1EA).
      Ratios medidos abajo, en el bloque de la paleta.
   2. El color de la marca es RELLENO, nunca letra. #80BC00 sobre
      blanco da 2,30:1. Para letra verde está --verde (#4C7000).
   3. Tamaño: piso de 14px (--fs-min) para cualquier frase que se lea.
      Única excepción: etiquetas mono CORTAS en mayúsculas, que usan
      --fs-label (11.5px) y nunca bajan de ahí.
   4. Tacto: todo lo clicable mide mínimo 44x44 px reales (--tap).
      Se consigue con min-height + padding, nunca achicando la letra.
   5. Sin JavaScript el sitio se lee entero. Nada queda invisible.
   6. La elevación se hace con SOMBRA (--sombra-1/2/3), no con un
      fondo más claro: en fondo claro no hay a dónde aclarar.

   Resuelve además los hallazgos de accesibilidad de agosto 2026:
   #2 (reveal sin JS), #10 (modal atrapado), #12 (objetivos táctiles),
   #13 (contraste), #14 (tamaños mínimos) y #41 (barra de avance).
   ============================================================ */

/* LAS FUENTES DE GOOGLE SE MUDARON A assets/form.css (23-ago-2026).
   Vivían acá y por eso las bajaban TODAS las pantallas: las 24 del sistema
   interno también, que desde hoy usan la letra del teléfono y no las
   necesitan. Eran dos peticiones a un servidor ajeno en cada carga, y en
   una bodega con una raya de señal es un segundo de pantalla en blanco.
   Ahora las carga form.css, que es la hoja que solo usan la portada y las
   siete páginas de cultivo — donde el serif de revista SÍ corresponde,
   porque eso es publicidad y se mira diez segundos. */

:root{
  /* =========================================================
     PALETA CLARA · 13 de agosto de 2026

     Por qué se cambió: el sistema era casi negro con grano de
     película. Eso funciona en una landing, no en software que
     alguien mira ocho horas. La referencia ahora es SAP: fondo
     claro, tarjetas blancas, mucha información legible y el
     color guardado para la ACCIÓN y el ESTADO, no para decorar.
     Y el logo de Del Monte está hecho para blanco: hasta hoy
     había que invertirlo con un filtro para que se viera.

     LA REGLA QUE MANDA SOBRE TODAS, y la que hace fracasar a
     casi todo sistema con marca verde clara:

        #80BC00 sobre blanco da 2,30:1. NO SE PUEDE LEER.

     Así que el verde de la marca es RELLENO, nunca letra:
        · relleno #80BC00 con letra #0A1000  → 8,38:1  ✅
        · letra verde sobre fondo claro      → --verde (#4C7000)

     Todos los números de abajo salen de la fórmula WCAG 2.1
     medidos contra los tres fondos reales del sistema.
     ========================================================= */

  /* ---- superficies ----
     Un gris apenas verdoso en la página y blanco puro en la
     tarjeta: separa los planos sin dibujar una sola línea. */
  --papel:#F5F7F2;      /* fondo de página */
  --tarjeta:#FFFFFF;    /* tarjeta, fila de tabla, campo */
  --hundido:#EEF1EA;    /* cabecera de tabla, celda deshabilitada */
  --barra:#1C2416;      /* barra superior — el ancla oscura de marca */

  /* Alias: el sistema tiene 1.668 usos de estas variables repartidos
     en once hojas de estilo. Se reapuntan en vez de renombrarse, así
     todo el sistema cambia de piel de una sola vez y sin tocar cada
     regla. Los nombres viejos hablaban de tinta y crema; los nuevos
     hablan de papel y tinta, que es lo que ahora son. */
  --ink:var(--papel);
  --ink-2:var(--tarjeta);
  --ink-3:var(--hundido);

  --line:#D2D8C9;
  --line-2:#E8EBE3;

  /* ---- texto ----
     Tres niveles y los tres pasan 4,5:1 sobre papel, tarjeta y
     hundido. No hay un cuarto nivel más pálido a propósito: en el
     sistema viejo existía y lo usaba el pie de página entero.

       token          sobre papel  tarjeta  hundido
       --tinta            16,43     17,72    15,53
       --tinta-2           7,48      8,07     7,07
       --tinta-3           5,21      5,62     4,92   ← peor caso */
  --tinta:#141A10;
  --tinta-2:#4A5340;
  --tinta-3:#616B54;

  --cream:var(--tinta);
  --cream-dim:var(--tinta-2);
  --cream-faint:var(--tinta-3);
  --cream-ghost:var(--tinta-3);

  /* ---- marca ----
     --verde-marca es el verde EXACTO del logo. Solo relleno.
     --verde y --verde-hi son sus versiones legibles como letra.

       token           papel  tarjeta  hundido   uso
       --verde-marca    2,14    2,30     2,02    SOLO relleno
       --verde          5,37    5,79     5,08    letra, borde, ícono
       --verde-hi       7,32    7,89     6,92    hover, énfasis
       --sol-marca      1,91    2,06     1,81    SOLO relleno
       --sol            5,04    5,44     4,74    letra
       --alerta         3,41    3,68     3,23    SOLO relleno e ícono
       --alerta-txt     5,55    5,98     5,24    letra
       --marron         9,25    9,98     8,75    títulos serif */
  --verde-marca:#80BC00;
  --verde:#4C7000;
  --verde-hi:#3D5A00;
  --verde-deep:#365000;
  --verde-suave:#EDF6DC;    /* fondo de chip, aviso, fila marcada */
  --sobre-verde:#0A1000;    /* la letra que va ENCIMA de --verde-marca */

  /* La ÚNICA superficie oscura que queda es la barra superior (--barra).
     Ahí el verde claro sí se lee —9,58:1— y es donde la marca luce. Existe
     este token aparte para que quede escrito de qué fondo se está hablando:
     el mismo verde claro sobre blanco da 2,30:1 y no se lee. */
  --verde-barra:#9DDB1B;    /* SOLO sobre --barra */
  --sobre-barra:#F4F1E8;    /* la letra normal sobre --barra · 14,16:1 */

  --sol-marca:#F6A328;
  --sol:#9E5900;            /* #A85F00 daba 4,28:1 sobre --hundido: no llegaba */
  --sol-hi:#804800;
  --sol-deep:#F28E28;
  --sol-suave:#FDF0DC;

  --alerta:#E4572E;
  --alerta-txt:#B23A16;
  --alerta-suave:#FCEAE4;

  /* Los títulos de la portada iban en el marrón del logotipo. Adentro del
     sistema van en casi negro, y con una sola identidad tienen que decir lo
     mismo: un título no necesita color para ser un título, le alcanza el
     tamaño, el peso y el aire. El marrón sigue acá por si hace falta como
     acento. */
  --marron:#1D1D1F;
  --marron-marca:#5D3936;   /* el marrón del logotipo, para cuando se necesite */
  --borde-campo:#848F78;    /* 3,40:1 — el único indicio de dónde se escribe */

  /* Sombras: en fondo claro la elevación se hace con sombra, no con
     un fondo más claro. Suaves y de un solo tono, como SAP. */
  --sombra-1:0 1px 2px rgba(20,26,16,.06), 0 1px 3px rgba(20,26,16,.04);
  --sombra-2:0 2px 6px rgba(20,26,16,.07), 0 6px 16px -6px rgba(20,26,16,.08);
  --sombra-3:0 8px 28px -8px rgba(20,26,16,.16);

  /* ---- tipografía ---- */
  /* UNA SOLA LETRA EN TODO (23-ago-2026, decisión de Juan: «TODO debe tener
     la misma línea gráfica e identidad de marca»). La portada usaba
     Instrument Serif + Inter + JetBrains Mono traídas de Google, y el
     sistema por dentro usaba la del teléfono. Eran dos empresas. Ahora es
     la del sistema en los dos lados: carga instantáneo, no le pide nada a
     Google y se ve idéntica en la portada y adentro de la app.
     Los nombres --serif/--mono se conservan porque los llaman doscientas
     reglas; lo que cambió es a qué apuntan. */
  --serif:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
  --fs-min:.88rem;    /* 14.08px — piso de cualquier frase */
  --fs-label:.72rem;  /* 11.52px — solo etiquetas mono MAYÚSCULAS cortas */

  /* ---- medidas ---- */
  --tap:44px;         /* objetivo táctil mínimo */
  --pad:clamp(20px,5vw,64px);
  --maxw:1240px;
  --safe-b:env(safe-area-inset-bottom,0px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--ink);color:var(--cream);
  font-family:var(--sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.02;letter-spacing:-.025em;font-weight:400}
p{margin:0}
::selection{background:var(--verde-marca);color:var(--sobre-verde)}

/* foco visible: el teclado y el lector de pantalla también son usuarios */
:focus-visible{outline:2px solid var(--verde-hi);outline-offset:3px;border-radius:6px}

/* El grano de película se quitó con el paso a fondo claro: sobre blanco
   no se lee como textura sino como suciedad, y le bajaba el contraste a
   todo lo que tenía encima. */

.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

/* ---------- tipografía ---------- */
/* Con la letra del sistema, un título grande necesita PESO y el interletrado
   más cerrado: el serif traía su propio peso visual y ahora no está. */
.display{font-family:var(--serif);font-weight:600;letter-spacing:-.032em;line-height:1.02}
.h-xl{font-size:clamp(2.7rem,8.2vw,6.4rem)}
.h-lg{font-size:clamp(2.1rem,5.4vw,4rem)}
.h-md{font-size:clamp(1.6rem,3.4vw,2.5rem)}
em.it{font-style:italic;color:var(--verde-hi)}
.lead{font-size:clamp(1.05rem,1.9vw,1.32rem);line-height:1.58;color:var(--cream-dim);max-width:62ch}
.tag{
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.24em;text-transform:uppercase;
  color:var(--verde);display:inline-flex;align-items:center;gap:.6em;
}
.tag::before{content:"";width:26px;height:1px;background:var(--verde);opacity:.7}
.mono{font-family:var(--mono)}

/* ---------- barra superior ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px var(--pad);
  background:rgba(245,247,242,0);backdrop-filter:blur(0px);
  transition:background .45s ease,backdrop-filter .45s ease,border-color .45s ease,padding .45s ease;
  border-bottom:1px solid transparent;
}
.nav.solid{background:rgba(255,255,255,.9);backdrop-filter:blur(16px) saturate(1.3);border-bottom-color:var(--line);box-shadow:var(--sombra-1);padding-top:8px;padding-bottom:8px}
/* el logo es un enlace a la portada: también necesita sus 44px de alto */
.nav>a{display:inline-flex;align-items:center;min-height:var(--tap)}
.nav__logo{height:34px;width:auto}
.nav__right{display:flex;align-items:center;gap:10px}
.nav__crops{display:none;gap:2px}
@media(min-width:1080px){.nav__crops{display:flex}}
/* 14px reales + 44px de alto: eran .8rem (12.8px) en una píldora de 37px */
.nav__crops a{
  display:inline-flex;align-items:center;min-height:var(--tap);
  font-size:var(--fs-min);padding:0 14px;border-radius:99px;color:var(--cream-faint);
  transition:color .25s,background .25s;
}
.nav__crops a:hover,.nav__crops a[aria-current]{color:var(--verde);background:var(--verde-suave)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:var(--tap);
  font-weight:600;font-size:.94rem;letter-spacing:-.01em;
  padding:14px 26px;border-radius:99px;border:1px solid transparent;
  cursor:pointer;transition:transform .3s cubic-bezier(.2,.9,.3,1),box-shadow .3s,background .3s,color .3s;
  white-space:nowrap;
}
.btn--sol{background:var(--verde-marca);color:var(--sobre-verde);box-shadow:var(--sombra-1)}
.btn--sol:hover{transform:translateY(-1px);box-shadow:0 6px 18px -6px rgba(128,188,0,.55)}
.btn--ghost{border-color:var(--line);color:var(--tinta);background:var(--tarjeta)}
.btn--ghost:hover{border-color:var(--verde);color:var(--verde-hi);background:var(--verde-suave);transform:translateY(-1px)}
/* --sm ya no significa "más chico que el pulgar": baja el padding lateral,
   nunca el alto ni la letra (antes 38px de alto y 13.6px de letra) */
.btn--sm{padding:10px 18px;font-size:var(--fs-min);min-height:var(--tap)}
.btn svg{width:17px;height:17px;flex:none}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:104px 0 56px;overflow:hidden}
@media(min-width:1000px){.hero{padding:96px 0 48px}}
.hero__bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 85% at 78% 8%, rgba(246,163,40,.17) 0%, transparent 55%),
    radial-gradient(95% 70% at 8% 92%, rgba(128,188,0,.15) 0%, transparent 58%),
    linear-gradient(180deg,#FFFFFF 0%,var(--papel) 62%,#EFF3EA 100%);
}
.hero__rays{position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none}
.hero__grid{
  position:relative;z-index:2;display:grid;gap:clamp(34px,5vw,60px);
  grid-template-columns:1fr;align-items:center;
}
@media(min-width:1000px){
  .hero__grid{grid-template-columns:1.08fr .92fr}
  .lens{max-width:min(460px,52vh)}
}
.hero h1{margin:20px 0 22px}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
/* la garantía "sin compromiso de compra" es argumento de venta: va en
   --cream-dim (10.67:1), no en el nivel más tenue */
.hero__note{
  margin-top:22px;font-size:var(--fs-min);line-height:1.55;color:var(--cream-dim);display:block;max-width:44ch;
}
.hero__note b{color:var(--verde-hi);font-weight:600;margin-right:5px}

/* ---------- LENTE DE DIAGNÓSTICO ---------- */
.lens{
  position:relative;aspect-ratio:1/1;width:100%;max-width:460px;margin-inline:auto;
  border-radius:26px;overflow:hidden;
  border:1px solid var(--line);
  background:radial-gradient(circle at 50% 45%,#FFFFFF,var(--hundido) 72%);
  cursor:none;touch-action:none;
  box-shadow:0 40px 120px -50px rgba(0,0,0,.9), inset 0 0 90px rgba(0,0,0,.55);
}
.lens svg{position:absolute;inset:0;width:100%;height:100%}
.lens__sick{
  -webkit-clip-path:circle(var(--r,0px) at var(--x,50%) var(--y,50%));
  clip-path:circle(var(--r,0px) at var(--x,50%) var(--y,50%));
  transition:-webkit-clip-path .16s ease-out,clip-path .16s ease-out;
}
.lens__ring{
  position:absolute;width:var(--d,224px);height:var(--d,224px);border-radius:50%;
  left:var(--x,50%);top:var(--y,50%);transform:translate(-50%,-50%);
  border:1px solid rgba(157,219,27,.85);pointer-events:none;
  box-shadow:0 0 0 1px rgba(20,26,16,.10) inset,0 0 44px rgba(128,188,0,.22);
  transition:left .16s ease-out,top .16s ease-out,opacity .4s;
}
.lens__ring::before,.lens__ring::after{
  content:"";position:absolute;background:rgba(157,219,27,.5);
}
.lens__ring::before{left:50%;top:-11px;bottom:-11px;width:1px;transform:translateX(-50%)}
.lens__ring::after{top:50%;left:-11px;right:-11px;height:1px;transform:translateY(-50%)}
/* etiqueta mono corta en mayúsculas: 11.5px, el piso permitido */
.lens__tit{
  position:absolute;left:16px;top:15px;z-index:5;pointer-events:none;
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:var(--cream-faint);
}
.lens__tit::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--verde);margin-right:8px;vertical-align:middle;animation:pulso 2.4s infinite}
/* la lectura del lente es una FRASE ("Banano · infecta 14–28 días antes del
   síntoma"): 14px, sin mayúsculas forzadas y sin letter-spacing abierto.
   Solo el rótulo de arriba queda en mono mayúscula. */
.lens__hud{
  position:absolute;left:16px;right:16px;bottom:16px;z-index:5;pointer-events:none;
  font-family:var(--mono);font-size:var(--fs-min);letter-spacing:.01em;color:var(--cream-dim);
}
.lens__read{
  display:inline-block;max-width:100%;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--sombra-2);
  border-radius:11px;padding:10px 13px;line-height:1.5;
}
.lens__read b{display:block;color:var(--verde-hi);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px}
.lens__hint{
  position:absolute;left:50%;bottom:78px;transform:translateX(-50%);z-index:6;
  max-width:calc(100% - 32px);text-align:center;
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;
  color:var(--tinta-2);background:rgba(255,255,255,.82);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:99px;padding:8px 15px;
  transition:opacity .5s;pointer-events:none;
}
.lens.touched .lens__hint{opacity:0}
.scanline{
  position:absolute;left:0;right:0;height:120px;z-index:4;pointer-events:none;opacity:.5;
  background:linear-gradient(180deg,transparent,rgba(157,219,27,.13) 46%,rgba(157,219,27,.5) 50%,rgba(157,219,27,.13) 54%,transparent);
  animation:scan 5.5s linear infinite;
}
@keyframes scan{0%{transform:translateY(-140px)}100%{transform:translateY(560px)}}

/* ---------- secciones ---------- */
section{position:relative}
.sec{padding:clamp(72px,10vw,132px) 0}
.sec--line{border-top:1px solid var(--line-2)}
.sec__head{max-width:840px;margin-bottom:clamp(38px,5vw,62px)}
.sec__head h2{margin:18px 0 20px}

/* ---------- tarjetas de cultivo ---------- */
.crops{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:680px){.crops{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.crops{grid-template-columns:repeat(3,1fr)}}
.crop{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:26px;
  min-height:260px;padding:26px;border-radius:20px;overflow:hidden;
  border:1px solid var(--line);background:linear-gradient(165deg,var(--ink-3),var(--ink-2) 65%);
  transition:transform .45s cubic-bezier(.2,.9,.3,1),border-color .45s,box-shadow .45s;
}
.crop::after{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;pointer-events:none;
  background:radial-gradient(90% 70% at 88% 4%,rgba(128,188,0,.2),transparent 62%);
}
.crop:hover{transform:translateY(-5px);border-color:rgba(128,188,0,.42);box-shadow:0 26px 60px -34px rgba(0,0,0,.95)}
.crop:hover::after{opacity:1}
.crop__top{position:relative;z-index:2}
.crop__ico{width:40px;height:40px;margin-bottom:18px;color:var(--verde)}
.crop__ico svg{width:100%;height:100%}
.crop h3{font-size:1.42rem;font-family:var(--sans);font-weight:700;letter-spacing:-.02em;margin-bottom:9px}
.crop p{font-size:.92rem;color:var(--cream-dim);line-height:1.55}
.crop__foot{
  position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-top:16px;border-top:1px solid var(--line-2);
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--cream-faint);
}
.crop__foot span:first-child{min-width:0;line-height:1.5}
.crop__foot span:last-child{color:var(--verde);transition:transform .35s;white-space:nowrap;flex:none}
.crop:hover .crop__foot span:last-child{transform:translateX(5px)}

/* ---------- pasos ---------- */
.steps{display:grid;gap:2px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--line)}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{background:var(--ink-2);padding:clamp(26px,3.4vw,38px);display:flex;flex-direction:column;gap:14px}
.step__n{
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--verde);
  display:flex;align-items:center;gap:10px;
}
.step__n i{width:24px;height:1px;background:var(--verde);opacity:.5;font-style:normal}
.step h3{font-family:var(--sans);font-weight:700;font-size:1.22rem;letter-spacing:-.02em}
.step p{font-size:.93rem;color:var(--cream-dim)}

/* ---------- promesa ---------- */
.promesa{
  border:1px solid rgba(128,188,0,.3);border-radius:22px;
  background:linear-gradient(150deg,rgba(128,188,0,.11),rgba(246,163,40,.05) 55%,transparent);
  padding:clamp(30px,4.6vw,58px);
}
.promesa p{font-family:var(--serif);font-size:clamp(1.5rem,3.4vw,2.35rem);line-height:1.16;letter-spacing:-.02em}
.promesa small{
  display:block;margin-top:20px;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.18em;
  text-transform:uppercase;color:var(--verde);
}

/* ---------- datos / credibilidad ---------- */
.facts{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
@media(min-width:620px){.facts{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.facts{grid-template-columns:repeat(4,1fr)}}
.fact{background:var(--ink-2);padding:26px 22px}
.fact b{display:block;font-family:var(--serif);font-size:clamp(2rem,4vw,2.9rem);line-height:1;color:var(--cream);letter-spacing:-.03em}
/* "Desde 1989", "+200 productos registrados": es la credibilidad, se lee */
.fact span{display:block;margin-top:10px;font-size:var(--fs-min);color:var(--cream-dim);line-height:1.5}

/* ---------- programa (sublandings) ---------- */
.prog{display:grid;gap:14px}
@media(min-width:820px){.prog{grid-template-columns:repeat(2,1fr)}}
.prog__b{
  border:1px solid var(--line);border-radius:18px;padding:24px;background:var(--ink-2);
  transition:border-color .4s,transform .4s;
}
.prog__b:hover{border-color:rgba(128,188,0,.38);transform:translateY(-3px)}
.prog__b h4{
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;
  color:var(--verde);margin-bottom:14px;font-weight:500;
}
.chips{display:flex;flex-wrap:wrap;gap:7px}
/* .chip es una etiqueta estática (no es clicable): sube a 14px, sin 44px */
.chip{
  font-size:var(--fs-min);font-weight:500;padding:8px 13px;border-radius:8px;
  background:var(--tarjeta);border:1px solid var(--line);color:var(--tinta);
}
.prog__note{margin-top:14px;font-size:var(--fs-min);color:var(--cream-faint);line-height:1.55}

/* ---------- CTA final ---------- */
.cta{
  position:relative;overflow:hidden;border-radius:24px;padding:clamp(38px,6vw,80px);
  border:1px solid var(--line);
  background:radial-gradient(120% 130% at 12% 0%,rgba(128,188,0,.18),transparent 55%),
             radial-gradient(100% 120% at 92% 100%,rgba(246,163,40,.14),transparent 58%),
             var(--ink-2);
}
.cta h2{margin-bottom:20px}
.cta .btn{margin-top:12px}

/* ---------- pie ---------- */
.foot{border-top:1px solid var(--line-2);padding:52px 0 34px;font-size:var(--fs-min);color:var(--cream-dim)}
.foot__grid{display:grid;gap:32px;grid-template-columns:1fr}
@media(min-width:820px){.foot__grid{grid-template-columns:1.4fr 1fr 1fr}}
.foot__logo{height:36px;margin-bottom:16px}
.foot h5{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--cream);margin:0 0 10px;font-weight:500}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
/* los 7 enlaces de cultivo del pie medían 17px de alto con 31.8px de paso:
   el dedo caía entre dos. Ahora cada uno ocupa su propia franja de 44px. */
.foot ul a{
  display:flex;align-items:center;min-height:var(--tap);
  color:var(--cream-dim);transition:color .25s;
}
.foot a:hover{color:var(--verde-hi)}
.foot__bar{
  margin-top:40px;padding-top:22px;border-top:1px solid var(--line-2);
  display:flex;flex-wrap:wrap;gap:4px 20px;justify-content:space-between;
  align-items:center;font-size:var(--fs-min);color:var(--cream-faint);
}
.foot__bar a{display:inline-flex;align-items:center;min-height:var(--tap)}
/* footer_html() de build.py escribe font-size:.66rem (10.6px) EN LÍNEA sobre
   este <span class="mono">. Desde la hoja de estilos solo se puede corregir
   con !important. Cuando el dueño de build.py quite el estilo en línea,
   esta regla se puede borrar. */
.foot__bar .mono{font-size:var(--fs-label)!important}

/* ---------- botón flotante de agendar (sublandings) ----------
   OJO: este botón abre el formulario, NO WhatsApp. Lo emite
   footer_html() en build.py y lo usan las 7 sublandings. No borrar. */
.flota{
  position:fixed;right:16px;bottom:calc(16px + var(--safe-b));z-index:9000;
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  min-height:var(--tap);min-width:var(--tap);
  padding:13px 20px 13px 15px;border-radius:99px;
  border:0;font-family:inherit;cursor:pointer;
  background:var(--verde-marca);color:var(--sobre-verde);font-weight:700;font-size:.9rem;
  box-shadow:0 16px 44px -14px rgba(128,188,0,.75);
  transition:transform .3s cubic-bezier(.2,.9,.3,1),box-shadow .3s;
}
.flota:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 54px -14px rgba(128,188,0,.9)}
.flota svg{width:23px;height:23px;flex:none}
.flota span{display:none}
@media(min-width:560px){.flota span{display:inline}}
@media(max-width:559px){.flota{padding:15px;right:14px;bottom:calc(14px + var(--safe-b))}}

/* ============================================================
   REVEAL AL HACER SCROLL — a prueba de JavaScript caído
   (hallazgo crítico #2)

   Antes: .rv{opacity:0} y solo dm.js devolvía la visibilidad con .in.
   Si dm.js no llegaba (datos móviles, proxy, bloqueador), 32 bloques
   quedaban invisibles PARA SIEMPRE: el calendario, las 7 tarjetas de
   cultivo y el CTA final. La página se veía bien y no se podía agendar.

   Ahora, tres capas:
   1. Por defecto .rv es VISIBLE. Sin CSS-de-ocultar no hay nada que
      rescatar: si el JS nunca corre, se ve todo (sin animación).
   2. El ocultamiento vive detrás de html.js. Esa clase la pone el propio
      JS al arrancar — o un script de una línea en el <head>:
        <script>document.documentElement.className+=' js'</script>
      y su respaldo, para el navegador con JS deshabilitado:
        <noscript><style>html.js .rv{opacity:1!important;transform:none!important;animation:none!important}</style></noscript>
   3. Red de seguridad: aunque html.js esté puesto, si .in nunca llega
      (dm.js 404, IntersectionObserver que no dispara), la animación
      rv-rescate devuelve la visibilidad a los 2.6 s. Peor caso posible:
      la página tarda 2.6 s en verse entera. Nunca queda en negro.
   ============================================================ */
.rv{opacity:1;transform:none}

html.js .rv{
  opacity:0;transform:translateY(26px);
  transition:opacity .95s cubic-bezier(.2,.7,.3,1),transform .95s cubic-bezier(.2,.7,.3,1);
  animation:rv-rescate 1ms linear 2.6s forwards;
}
html.js .rv.in{opacity:1;transform:none;animation:none}
@keyframes rv-rescate{to{opacity:1;transform:none}}

/* el hero entra con animación CSS pura: nunca depende de JS ni de rAF */
@keyframes entra{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
html.js .hero .rv{animation:entra .85s cubic-bezier(.2,.7,.3,1) both;transition:none}
html.js .hero .rv:nth-child(1){animation-delay:.05s}
html.js .hero .rv:nth-child(2){animation-delay:.14s}
html.js .hero .rv:nth-child(3){animation-delay:.23s}
html.js .hero .rv:nth-child(4){animation-delay:.32s}
html.js .hero .rv:nth-child(5){animation-delay:.41s}
html.js .hero .rv:nth-child(6){animation-delay:.50s}
html.js .hero .lens.rv{animation-delay:.3s;animation-duration:1.1s}

@media(prefers-reduced-motion:reduce){
  .rv,html.js .rv,html.js .rv.in{opacity:1;transform:none;transition:none;animation:none}
  html.js .hero .rv{animation:none;opacity:1;transform:none}
  .scanline{animation:none;opacity:.2}
  .lens__tit::before,.threat i{animation:none}
  *{scroll-behavior:auto!important}
}

/* ---------- migas sublanding ---------- */
.crumb{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.16em;text-transform:uppercase;color:var(--cream-faint);margin-bottom:20px;display:flex;align-items:center;flex-wrap:wrap;gap:0 8px}
.crumb a{display:inline-flex;align-items:center;min-height:var(--tap)}
.crumb a:hover{color:var(--verde)}
.crumb span{color:var(--verde)}

/* ---------- alerta / amenaza ---------- */
.threat{
  display:inline-flex;align-items:center;gap:10px;padding:9px 15px;border-radius:99px;
  border:1px solid rgba(228,87,46,.38);background:rgba(228,87,46,.09);
  font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--alerta-txt);
}
.threat i{width:7px;height:7px;border-radius:50%;background:var(--alerta);box-shadow:0 0 0 0 rgba(228,87,46,.7);animation:pulso 2.4s infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(228,87,46,.6)}70%{box-shadow:0 0 0 11px rgba(228,87,46,0)}100%{box-shadow:0 0 0 0 rgba(228,87,46,0)}}

/* ---------- lista de síntomas ---------- */
.sint{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.sint li{background:var(--ink-2);padding:18px 22px;display:flex;gap:16px;align-items:flex-start;font-size:.95rem;color:var(--cream-dim)}
.sint li b{color:var(--cream);font-weight:600;display:block;margin-bottom:3px}
.sint li i{flex:none;width:28px;font-family:var(--mono);font-size:var(--fs-label);color:var(--verde);font-style:normal;padding-top:3px}

/* ============================================================
   FORMULARIO DE AGENDAMIENTO (modal)

   Reescrito por el hallazgo #10: en 375x812 el paso 1 medía 1123px y la
   X de cerrar, position:absolute dentro de una .ficha que scrolleaba,
   se iba a top:-311px — fuera de la pantalla. El agricultor arrepentido
   no tenía salida (Escape no existe en un celular).

   Solución sin tocar el HTML: la .ficha pasa a ser una columna flex que
   NO scrollea (cabecera + barra de avance fijas arriba, la X anclada a
   ella y siempre visible) y el paso activo se lleva el scroll propio.
   En móvil es una hoja pegada abajo, a pantalla completa; en escritorio
   vuelve a ser una tarjeta centrada.
   ============================================================ */
.modal{
  position:fixed;inset:0;z-index:9500;display:none;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:var(--sombra-2);
  overflow:hidden;overscroll-behavior:contain;
}
.modal.abierto{display:flex;align-items:flex-end;justify-content:center}
/* Respaldo sin JavaScript (hallazgo #4): si los CTA pasan a ser
   <a href="#agendar">, el formulario abre igual aunque form.js no cargue. */
.modal:target{display:flex;align-items:flex-end;justify-content:center}
body.bloqueado{overflow:hidden}

.ficha{
  width:min(560px,100%);position:relative;
  display:flex;flex-direction:column;
  max-height:100vh;max-height:100dvh;
  background:linear-gradient(168deg,var(--ink-3),var(--ink-2) 62%);
  border:1px solid var(--line);border-radius:22px 22px 0 0;
  box-shadow:0 50px 130px -40px rgba(0,0,0,.95);
  animation:sube .45s cubic-bezier(.2,.9,.3,1) both;
}
@media(min-width:600px){
  .modal.abierto,.modal:target{align-items:center;padding:16px}
  .ficha{border-radius:22px;max-height:calc(100dvh - 32px)}
}
@keyframes sube{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* 44x44 reales, anclada a la cabecera fija: nunca se va con el scroll */
.ficha__x{
  position:absolute;top:10px;right:10px;width:var(--tap);height:var(--tap);border-radius:50%;
  border:1px solid var(--line);background:var(--tarjeta);color:var(--tinta-2);
  cursor:pointer;font-size:1.15rem;line-height:1;display:grid;place-items:center;transition:.25s;z-index:5;
}
.ficha__x:hover{color:var(--cream);border-color:var(--verde)}

.ficha__cab{flex:none;padding:24px 26px 0}
.ficha__cab h2{font-family:var(--sans);font-weight:700;font-size:1.32rem;letter-spacing:-.02em;margin-bottom:6px;padding-right:56px}
.ficha__cab p{font-size:var(--fs-min);color:var(--cream-dim)}

/* Barra de avance: sirve para 4 pasos (form.js usa TOTAL=4 y en el primer
   irA() la deja en 25%). Arrancaba en 20% —heredado de 5 pasos— y saltaba
   a la vista al abrir. Hallazgo #41. */
.barrita{flex:none;height:3px;background:var(--line);border-radius:99px;margin:18px 26px 0;overflow:hidden}
.barrita i{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--verde),var(--verde-hi));border-radius:99px;transition:width .5s cubic-bezier(.2,.9,.3,1)}

/* el paso activo es el único que scrollea, y respeta la barra de inicio
   del iPhone (hallazgo #30 aplicado también aquí) */
.paso{display:none;padding:22px 26px calc(26px + var(--safe-b))}
.paso.on{
  display:block;flex:1 1 auto;min-height:0;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  animation:sube .38s cubic-bezier(.2,.9,.3,1) both;
}
.paso__t{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:var(--verde);margin-bottom:14px}
.paso h3{font-family:var(--sans);font-weight:700;font-size:1.12rem;letter-spacing:-.02em;margin-bottom:16px}

/* con el teclado abierto (alto útil corto) la cabecera se colapsa: se va
   la bajada y quedan el título, la X y la barra de avance */
@media(max-height:560px){
  .ficha__cab{padding-top:14px}
  .ficha__cab p{display:none}
  .barrita{margin-top:12px}
  .paso{padding-top:16px}
}

.ops{display:grid;gap:9px}
.op{
  display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:var(--tap);
  padding:15px 17px;border-radius:13px;cursor:pointer;font:inherit;font-size:.93rem;
  border:1px solid var(--line);background:var(--tarjeta);color:var(--tinta);
  transition:border-color .25s,background .25s,transform .25s;
}
.op:hover{border-color:rgba(128,188,0,.5);transform:translateX(3px)}
.op.sel{border-color:var(--verde);background:rgba(128,188,0,.13)}
.op i{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);transition:.25s}
.op.sel i{border-color:var(--verde);background:var(--verde);box-shadow:inset 0 0 0 3.5px var(--ink-2)}
.op small{display:block;color:var(--cream-faint);font-size:var(--fs-min);line-height:1.45;margin-top:3px}

.campo{margin-bottom:13px}
.campo label{display:block;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--cream-faint);margin-bottom:7px}
/* 16px exactos: por debajo de eso iOS hace zoom al enfocar el campo */
.campo input{
  width:100%;font:inherit;font-size:1rem;min-height:var(--tap);padding:13px 16px;border-radius:12px;
  border:1px solid var(--line);background:var(--ink);color:var(--cream);transition:border-color .25s;
}
.campo input:focus{outline:none;border-color:var(--verde)}
.campo input::placeholder{color:var(--cream-ghost)}
.campo.mal input{border-color:var(--alerta)}
.campo .ayuda{font-size:var(--fs-min);color:var(--cream-faint);margin-top:6px;line-height:1.45}
.tel{display:flex;align-items:center;gap:0}
.tel span{display:flex;align-items:center;padding:0 12px;min-height:var(--tap);border:1px solid var(--line);border-right:0;border-radius:12px 0 0 12px;background:var(--ink-3);color:var(--cream-dim);font-size:.95rem}
.tel input{border-radius:0 12px 12px 0}

.dias{display:grid;gap:9px}
.dia{border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:var(--tarjeta)}
.dia__n{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.dia__n b{font-size:1rem;font-weight:700}
.dia__n span{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--cream-faint)}
.bloques{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
/* bloques de horario: 44px de alto, son de los últimos toques antes de convertir */
.bloq{
  font:inherit;font-size:var(--fs-min);min-height:var(--tap);padding:10px 8px;border-radius:10px;cursor:pointer;
  border:1px solid var(--line);background:var(--tarjeta);color:var(--tinta-2);transition:.25s;
}
.bloq:hover:not(:disabled){border-color:rgba(128,188,0,.5);color:var(--cream)}
.bloq.sel{border-color:var(--verde);background:var(--verde-marca);color:var(--sobre-verde);font-weight:700}
.bloq:disabled{opacity:.62;cursor:not-allowed;text-decoration:line-through}

.pie{display:flex;gap:10px;align-items:center;margin-top:20px}
.pie .btn{flex:1;justify-content:center}
.atras{
  background:none;border:0;color:var(--cream-faint);font:inherit;font-size:var(--fs-min);cursor:pointer;
  display:inline-flex;align-items:center;min-height:var(--tap);padding:0 12px;flex:none;
}
.atras:hover{color:var(--cream)}
.legal{font-size:var(--fs-min);color:var(--cream-faint);margin-top:14px;line-height:1.5}

.listo{display:none;padding:34px 26px calc(30px + var(--safe-b));text-align:center}
.listo.on{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;animation:sube .5s cubic-bezier(.2,.9,.3,1) both}
.listo__ico{
  width:64px;height:64px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;
  background:rgba(128,188,0,.15);border:1px solid rgba(128,188,0,.45);color:var(--verde-hi);
}
.listo__ico svg{width:30px;height:30px}
.listo h3{font-family:var(--serif);font-size:1.8rem;letter-spacing:-.02em;margin-bottom:12px}
.listo p{color:var(--cream-dim);font-size:.94rem;max-width:38ch;margin:0 auto}
.cita{
  margin:22px auto 0;max-width:340px;border:1px solid rgba(128,188,0,.35);border-radius:14px;
  background:rgba(128,188,0,.07);padding:16px;text-align:left;
}
.cita div{display:flex;justify-content:space-between;gap:14px;font-size:.9rem;padding:5px 0}
.cita div span:first-child{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--cream-faint)}
.cita div span:last-child{color:var(--cream);font-weight:600;text-align:right}
.error-caja{margin-top:14px;color:var(--alerta-txt);font-size:var(--fs-min);display:none;line-height:1.5}
.error-caja.on{display:block}


/* ============================================================
   LA MARCA delmonte.app EN LA PORTADA — 23 de agosto de 2026
   La misma pieza que en el panel: el sol del logotipo, sin tocar, y
   la palabra en texto con la letra del sistema. Acá va sobre fondo
   claro, así que el `.app` lleva el verde que sí se lee sobre blanco
   (5,8:1). El verde del logotipo nunca va como letra: da 2,30:1.
   ============================================================ */
.marca{display:inline-flex;align-items:center;gap:9px;min-height:var(--tap);text-decoration:none}
.marca__sol{width:32px;height:32px;flex:none;display:block}
.marca__t{
  font-family:var(--sans);font-size:1.125rem;font-weight:700;
  letter-spacing:-.035em;color:var(--tinta);white-space:nowrap;line-height:1;
}
.marca__t i{font-style:normal;color:var(--verde)}
.marca--pie{margin-bottom:16px}
.marca--pie .marca__sol{width:34px;height:34px}
.marca--pie .marca__t{font-size:1.2rem}
@media(max-width:520px){
  .marca__sol{width:28px;height:28px}
  .marca__t{font-size:1rem}
}


/* ============================================================
   UNA SOLA LETRA, TAMBIÉN EN LA PORTADA — 23 de agosto de 2026
   ------------------------------------------------------------
   Adentro del sistema la monoespaciada quedó reservada para código.
   Acá pasaba lo mismo que allá: la usaban los rótulos chicos, los
   números del cronómetro y los títulos del pie, y a ojo se lee como
   «hay otra fuente en esta página» aunque nadie sepa nombrarla.

   Los números no la necesitan: tabular-nums hace que las cifras midan
   lo mismo en la letra del sistema, que es justo lo que se quería de
   la mono, y en cuerpo chico se lee mejor. Lo que sí se conserva es el
   interletrado ABIERTO de los rótulos en mayúscula: sin eso, una
   mayúscula chica no se lee, se adivina.
   ============================================================ */
.campo label,
.cita div span:first-child,
.crop__foot,
.crumb,
.dia__n span,
.foot h5,
.lens__hint,
.lens__hud,
.lens__tit,
.paso__t,
.prog__b h4,
.promesa small,
.sint li i,
.step__n,
.tag,
.threat{
  font-family:var(--sans);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}


/* ============================================================
   LA PIEL OSCURA DE LA PORTADA — 23 de agosto de 2026
   ------------------------------------------------------------
   Pedido de Juan: «está demasiado cargada la landing, tiene que
   ser y VERSE wow».

   Lo cargado no era el largo: era que la primera pantalla tenía
   ocho cosas compitiendo —marca, siete cultivos arriba, etiqueta,
   titular, párrafo, siete cultivos otra vez, dos botones, letra
   chica y un aparato con quince rótulos— y todas del mismo color
   sobre el mismo blanco. Nada mandaba.

   Se arregló de dos maneras a la vez:
     1. QUITANDO. Los siete cultivos ya no se repiten arriba, el
        párrafo largo bajó a una línea, el enlace secundario solo
        aparece DESPUÉS de elegir (antes no llevaba a ningún lado)
        y las siete tarjetas de cultivo son ahora una lista.
     2. OSCURECIENDO. El hero y el pie pasan al verde profundo de
        la marca —el MISMO --barra que llevan las dieciocho
        pantallas del sistema por dentro— y todo lo que va en el
        medio queda claro. Así la página tiene principio, cuerpo y
        final, el cronómetro flota como una tarjeta iluminada
        sobre el fondo oscuro, y el verde del logo por fin se
        puede usar en grande sin romper el contraste.

   CONTRASTE. Sobre este fondo el verde de la marca SÍ se lee: por
   eso existe --verde-barra, medido en 9,58:1. La letra normal es
   --sobre-barra (14,2:1) y la atenuada #C4CDB4 (9,99:1). No hay
   un solo texto por debajo de 4,5:1 en toda la zona oscura.
   ============================================================ */
:root{
  --noche:#16200F;         /* el fondo del hero y del pie */
  --noche-2:#1F2C14;       /* el arriba del degradado */
  --noche-3:#0F1709;       /* el abajo */
  --sobre-noche-dim:#C4CDB4;  /* 9,99:1 sobre --noche */
  --linea-noche:rgba(244,241,232,.16);
}

.hero--oscuro{background:var(--noche);color:var(--sobre-barra)}
.hero--oscuro .hero__bg{
  background:
    radial-gradient(52% 42% at 86% -4%, rgba(252,206,7,.26) 0%, rgba(246,163,40,.10) 45%, transparent 72%),
    radial-gradient(70% 55% at 68% 34%, rgba(128,188,0,.16) 0%, transparent 62%),
    radial-gradient(80% 60% at 0% 104%, rgba(128,188,0,.16) 0%, transparent 62%),
    linear-gradient(180deg,var(--noche-2) 0%,var(--noche) 54%,var(--noche-3) 100%);
}
/* pantalla baja de portátil: el aparato y el titular bajan un escalón para
   que el botón de agendar no quede debajo del corte */
@media(min-width:1000px) and (max-height:840px){
  .hero--oscuro{padding-top:86px;padding-bottom:38px}
  .hero--oscuro .h-xl{font-size:clamp(2.4rem,5.4vw,4.5rem)}
  .hero--oscuro .crono{max-width:480px}
}
/* el papel milimetrado, ahora en luz sobre la noche */
.hero--oscuro .hero__regla{opacity:.5;
  background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/28 - 1px),rgba(244,241,232,.09) calc(100%/28 - 1px),rgba(244,241,232,.09) calc(100%/28))}
.hero--oscuro .hero__rays{opacity:.75}

.hero--oscuro .tag{color:var(--verde-barra)}
.hero--oscuro .tag::before{background:var(--verde-barra);opacity:.9}
.hero--oscuro h1,.hero--oscuro .display{color:var(--sobre-barra)}
.hero--oscuro em.it,.hero--oscuro em.sol{color:var(--verde-barra)}
.hero--oscuro .lead,.hero--oscuro p{color:var(--sobre-noche-dim)}
.hero--oscuro .hero__note{color:var(--sobre-noche-dim)}
.hero--oscuro .hero__note b{color:var(--verde-barra)}
.hero--oscuro .link-suave{color:var(--sobre-noche-dim)}
.hero--oscuro .link-suave:hover{color:var(--verde-barra)}
.hero--oscuro .btn--ghost{border-color:var(--linea-noche);color:var(--sobre-barra);background:rgba(244,241,232,.06)}
.hero--oscuro .btn--ghost:hover{border-color:var(--verde-barra);color:var(--verde-barra);background:rgba(157,219,27,.12)}
.hero--oscuro :focus-visible{outline-color:var(--verde-barra)}
/* el aparato es lo ÚNICO claro de la zona oscura: por eso se lee como
   el objeto de la pantalla y no como un bloque más */
.hero--oscuro .crono,.hero--oscuro .lens{box-shadow:0 40px 90px -34px rgba(0,0,0,.85),0 0 0 1px rgba(244,241,232,.08)}

/* La miga y el chip de amenaza estaban pensados para fondo claro: sobre
   la noche daban 3,00:1 y 2,57:1. Acá van en luz, y el naranja de la
   amenaza —que sobre blanco no se puede leer— por fin se usa entero. */
.hero--oscuro .crumb{color:var(--sobre-noche-dim)}
.hero--oscuro .crumb span{color:var(--verde-barra)}
.hero--oscuro .crumb a:hover{color:var(--verde-barra)}
.hero--oscuro .threat{
  color:#FFB59B;border-color:rgba(255,140,105,.5);background:rgba(228,87,46,.16);
}

/* ---------- la barra de arriba, sobre el hero oscuro ---------- */
/* Solo mientras está transparente: al bajar, dm.js le pone .solid, la
   barra se vuelve blanca y la letra tiene que volver a ser oscura. */
.nav--claro:not(.solid) .marca__t{color:var(--sobre-barra)}
.nav--claro:not(.solid) .marca__t i{color:var(--verde-barra)}
.nav--claro:not(.solid) .nav__volver{color:var(--sobre-noche-dim)}
.nav--claro:not(.solid) .nav__volver:hover{color:var(--verde-barra);background:rgba(157,219,27,.12)}
.nav__volver{
  display:inline-flex;align-items:center;min-height:var(--tap);
  font-size:var(--fs-min);padding:0 15px;border-radius:99px;color:var(--tinta-2);
  transition:color .25s,background .25s;
}
.nav__volver:hover{color:var(--verde-hi);background:var(--verde-suave)}

/* ---------- el pie, del mismo color que el hero ---------- */
.foot--oscuro{background:var(--noche);border-top:0;color:var(--sobre-noche-dim);padding-top:64px}
.foot--oscuro .marca__t{color:var(--sobre-barra)}
.foot--oscuro .marca__t i{color:var(--verde-barra)}
.foot--oscuro h5{color:var(--sobre-barra)}
/* .foot ul a pesa más que .foot--oscuro a: los siete enlaces de cultivo
   se quedaban en el gris de fondo claro y sobre la noche no se leían. */
.foot--oscuro a,.foot--oscuro ul a{color:var(--sobre-noche-dim)}
.foot--oscuro a:hover,.foot--oscuro ul a:hover{color:var(--verde-barra)}
.foot--oscuro .foot__bar{border-top-color:var(--linea-noche);color:var(--sobre-noche-dim)}
