/* ═══════════════════════════════════════════════════════════════════════════
   Financiera De La Cruz J&M — hoja de estilo del sitio público
   Generada por scripts/generar-sitio.py desde datos-empresa.json.
   Los colores no se editan aquí: se cambian en el JSON y se regenera.

   La línea gráfica del material impreso traducida a web: fondo blanco,
   titulares en itálica condensada con la palabra clave en rojo, bloques negros
   en paralelogramo, pastillas de pilar en forma de flecha y las curvas rojas
   de esquina.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tipografías autoalojadas: una petición menos a un tercero, y la página no
   depende de que Google responda. Archivo tiene eje de anchura variable, que
   es lo que da la condensada de los titulares. */
@font-face{font-family:Archivo;src:url(tipografias/Archivo-variable-normal.woff2) format('woff2');
  font-weight:400 900;font-stretch:62% 100%;font-style:normal;font-display:swap}
@font-face{font-family:Archivo;src:url(tipografias/Archivo-variable-italic.woff2) format('woff2');
  font-weight:400 900;font-stretch:62% 100%;font-style:italic;font-display:swap}
@font-face{font-family:Inter;src:url(tipografias/Inter-variable.woff2) format('woff2');
  font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --rojo:#B4060A;
  --rojo-realce:#E62329;
  --rojo-hondo:#6E0002;
  --tinta:#0B0B0D;
  --grafito:#3A3F45;
  --plata:#B9BEC4;
  --nieve:#F2F4F5;
  --blanco:#fff;
  --linea:#dcdfe3;
  /* Sobre la tinta, el rojo de marca solo da 2.78:1 y no se lee. Estas tres
     son las versiones que sí cumplen sobre fondo oscuro, medidas:
     rojo claro 6.47 · texto del pie 12.42 · texto menor 6.11. */
  --rojo-claro:#ff5b5f;
  --pie-texto:#c9ced4;
  --pie-menor:#8a9099;
  --pie-linea:#2a2d32;
  --tinta-hover:#25282d;
  /* Verde de WhatsApp. No es de la marca: es el color de ellos y se respeta
     para que el botón se reconozca al instante. */
  --whatsapp:#25d366;
  --sombra:0 1px 2px rgba(11,11,13,.05),0 8px 24px -12px rgba(11,11,13,.18);
  --ancho:1120px;
  --paso:clamp(3.5rem,8vw,6rem);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
body{
  margin:0;background:var(--blanco);color:var(--tinta);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%}
a{color:var(--rojo)}
:focus-visible{outline:3px solid var(--tinta);outline-offset:3px;border-radius:2px}

.env{max-width:var(--ancho);margin:0 auto;padding:0 clamp(1.15rem,5vw,2.5rem)}

/* ── tipografía ──────────────────────────────────────────────────────────── */
.display{
  font-family:Archivo,"Arial Narrow",Arial,sans-serif;
  font-variation-settings:"wdth" 62;font-weight:900;font-style:italic;
  text-transform:uppercase;line-height:.93;letter-spacing:.004em;
  text-wrap:balance;margin:0;
}
.display em{font-style:italic;color:var(--rojo)}
h1.display{font-size:clamp(2.6rem,8.5vw,5rem)}
h2.display{font-size:clamp(2rem,5.5vw,3.2rem)}
h3{font-size:1.12rem;font-weight:700;letter-spacing:-.011em;margin:0 0 .45rem;text-wrap:balance}
p{margin:0 0 1.05em}
.rotulo{font-size:.72rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;
  color:var(--rojo);margin:0 0 .7rem}
.plomo{color:var(--grafito);max-width:56ch}
.tab{font-variant-numeric:tabular-nums}

/* ── la curva roja de esquina: la firma de la marca ──────────────────────── */
.curva{position:absolute;pointer-events:none;z-index:0;width:min(46vw,420px);height:auto}

/* ── cabecera ────────────────────────────────────────────────────────────── */
.barra-marca{height:5px;background:linear-gradient(90deg,var(--rojo) 0 62%,var(--rojo-realce) 62% 100%)}
header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
header .env{display:flex;align-items:center;gap:1.5rem;min-height:74px}
header .logo{width:min(210px,42vw);height:auto;flex:none}
header nav{margin-left:auto;display:flex;align-items:center;gap:1.6rem}
header nav a{color:var(--tinta);text-decoration:none;font-size:.92rem;font-weight:500}
header nav a:hover{color:var(--rojo)}
@media(max-width:820px){header nav a.oculto-movil{display:none}}

/* ── botones ─────────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.72rem 1.5rem;
  font-weight:600;font-size:.95rem;text-decoration:none;border:0;cursor:pointer;
  font-family:inherit;transition:background .15s ease,transform .15s ease}
/* El botón primario es NEGRO, no rojo: el rojo queda reservado a identidad.
   Es el mismo bloque negro de los titulares del material impreso. */
.btn-primario{background:var(--tinta);color:#fff}
.btn-primario:hover{background:var(--tinta-hover);transform:translateY(-1px)}
.btn-linea{background:transparent;color:var(--tinta);box-shadow:inset 0 0 0 2px var(--tinta)}
.btn-linea:hover{background:var(--tinta);color:#fff}
.btn svg{width:1.15em;height:1.15em;flex:none;fill:currentColor}

/* ── portada ─────────────────────────────────────────────────────────────── */
.portada{position:relative;overflow:hidden;padding:clamp(3.5rem,9vw,6.5rem) 0 clamp(3rem,7vw,5rem)}
.portada .curva{top:-2px;left:-2px}
.portada .env{position:relative;z-index:1}
.portada .rotulo{color:var(--grafito)}
.portada h1{margin-bottom:1.1rem;max-width:16ch}
.portada .plomo{font-size:1.12rem}
.acciones{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}

/* ── pilares: la pastilla en forma de flecha del volante ─────────────────── */
.pilares{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  margin-top:clamp(2.5rem,6vw,4rem)}
.pilar{position:relative;display:flex;flex-direction:column;justify-content:center;
  padding:.85rem 2.1rem .85rem 1.35rem;background:var(--tinta);color:#fff;
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 50%,calc(100% - 20px) 100%,0 100%)}
.pilar::before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--rojo)}
.pilar b,.pilar span{font-family:Archivo,sans-serif;font-variation-settings:"wdth" 70;
  font-style:italic;text-transform:uppercase;line-height:1.12}
.pilar b{font-weight:900;font-size:1.02rem;color:var(--rojo-claro)}
.pilar span{font-weight:700;font-size:.88rem}

/* ── secciones ───────────────────────────────────────────────────────────── */
section{padding:var(--paso) 0}
section.nieve{background:var(--nieve)}
.cabecera-sec{margin-bottom:clamp(2rem,4vw,3rem);max-width:60ch}
.cabecera-sec .regla{display:block;width:44px;height:4px;background:var(--rojo);margin-bottom:1.1rem}

/* ── líneas de negocio ───────────────────────────────────────────────────── */
.negocios{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.negocio{position:relative;background:#fff;border:1px solid var(--linea);
  padding:clamp(1.75rem,3.5vw,2.5rem);box-shadow:var(--sombra);overflow:hidden}
.negocio::after{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--rojo)}
.negocio h3{font-family:Archivo,sans-serif;font-variation-settings:"wdth" 66;font-weight:900;
  font-style:italic;text-transform:uppercase;font-size:clamp(1.35rem,3vw,1.75rem);
  line-height:1.02;margin-bottom:.7rem}
.negocio p{color:var(--grafito);margin-bottom:1.3rem}
.negocio ul{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.45rem;font-size:.94rem}
.negocio li{position:relative;padding-left:1.5rem}
.negocio li::before{content:"";position:absolute;left:0;top:.62em;width:.62rem;height:2px;
  background:var(--rojo)}

/* ── cómo funciona: la numeración informa, hay un orden real ─────────────── */
.pasos{list-style:none;counter-reset:p;margin:0;padding:0;display:grid;gap:1.15rem;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.pasos li{counter-increment:p;position:relative;padding-top:3.4rem}
.pasos li::before{content:counter(p);position:absolute;top:0;left:0;
  width:2.5rem;height:2.5rem;display:grid;place-items:center;
  background:var(--tinta);color:#fff;font-family:Archivo,sans-serif;
  font-variation-settings:"wdth" 70;font-weight:900;font-style:italic;font-size:1.3rem;
  transform:skewX(-12deg)}
.pasos li::after{content:"";position:absolute;top:0;left:2.85rem;width:9px;height:2.5rem;
  background:var(--rojo);transform:skewX(-12deg)}
.pasos h3{margin-bottom:.3rem}
.pasos p{color:var(--grafito);font-size:.95rem;margin:0}

/* ── requisitos ──────────────────────────────────────────────────────────── */
.requisitos{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.req{background:#fff;border:1px solid var(--linea);padding:1.75rem}
.req h3{font-family:Archivo,sans-serif;font-variation-settings:"wdth" 66;font-weight:900;
  font-style:italic;text-transform:uppercase;font-size:1.3rem;
  border-bottom:3px solid var(--rojo);padding-bottom:.6rem;margin-bottom:1rem}
.req ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:.95rem}
.req li{position:relative;padding-left:1.6rem}
.req li::before{content:"";position:absolute;left:0;top:.42em;width:.75rem;height:.42rem;
  border-left:2.5px solid var(--rojo);border-bottom:2.5px solid var(--rojo);
  transform:rotate(-45deg)}

/* ── preguntas ───────────────────────────────────────────────────────────── */
.preguntas{max-width:min(760px,100%);display:grid;gap:0}
details{border-bottom:1px solid var(--linea)}
details summary{cursor:pointer;padding:1.15rem 2.5rem 1.15rem 0;font-weight:600;
  list-style:none;position:relative}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"";position:absolute;right:.4rem;top:1.55rem;width:.65rem;
  height:.65rem;border-right:2.5px solid var(--rojo);border-bottom:2.5px solid var(--rojo);
  transform:rotate(45deg);transition:transform .18s ease}
details[open] summary::after{transform:rotate(-135deg)}
details .cuerpo{padding:0 0 1.3rem;color:var(--grafito);max-width:62ch}
details .cuerpo p:last-child{margin:0}

/* ── contacto ────────────────────────────────────────────────────────────── */
.contacto{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.tel-lista{list-style:none;margin:0 0 1.75rem;padding:0;display:grid;gap:1rem}
.tel-lista a{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:var(--tinta)}
.tel-lista .icono{flex:none;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--rojo);
  display:grid;place-items:center}
.tel-lista .icono svg{width:1.25rem;height:1.25rem;fill:#fff}
.tel-lista .n{font-family:Archivo,sans-serif;font-variation-settings:"wdth" 70;font-weight:900;
  font-style:italic;font-size:1.4rem;font-variant-numeric:tabular-nums;line-height:1}
.tel-lista .q{display:block;font-size:.78rem;color:var(--grafito);font-weight:500;
  font-family:Inter,sans-serif;font-style:normal;text-transform:none}
.datos-contacto{font-size:.97rem;color:var(--grafito)}
.datos-contacto dt{font-weight:600;color:var(--tinta);margin-top:1.1rem}
.datos-contacto dt:first-child{margin-top:0}
.datos-contacto dd{margin:.15rem 0 0}

/* ── pie ─────────────────────────────────────────────────────────────────── */
footer{background:var(--tinta);color:var(--pie-texto);padding:clamp(2.5rem,5vw,3.5rem) 0 2rem;
  position:relative;overflow:hidden;font-size:.9rem}
footer .curva{bottom:-2px;right:-2px;transform:rotate(180deg);opacity:.9}
footer .env{position:relative;z-index:1}
footer .sup{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  padding-bottom:2rem;border-bottom:1px solid var(--pie-linea)}
footer .logo{width:220px;height:auto;margin-bottom:1rem}
footer a{color:#fff;text-decoration:none}
footer a:hover{text-decoration:underline}
footer .enlaces{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
footer .inf{padding-top:1.5rem;display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;
  justify-content:space-between;font-size:.82rem;color:var(--pie-menor)}

/* ── botón flotante de WhatsApp ──────────────────────────────────────────── */
.wa-flota{position:fixed;right:1.1rem;bottom:1.1rem;z-index:60;width:3.6rem;height:3.6rem;
  border-radius:50%;background:var(--whatsapp);display:grid;place-items:center;
  box-shadow:0 4px 16px rgba(0,0,0,.28);transition:transform .18s ease}
.wa-flota:hover{transform:scale(1.07)}
.wa-flota svg{width:2rem;height:2rem;fill:#fff}

/* ── formulario ──────────────────────────────────────────────────────────── */
.formulario{max-width:640px;display:grid;gap:1.15rem}
.campo{display:grid;gap:.4rem}
.campo label,.campo .label{font-size:.86rem;font-weight:600}
.campo .ayuda{font-size:.8rem;color:var(--grafito);font-weight:400}
.campo input,.campo select,.campo textarea{
  font:inherit;font-size:1rem;padding:.72rem .85rem;border:1.5px solid var(--linea);
  background:#fff;color:var(--tinta);border-radius:2px;width:100%}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  border-color:var(--tinta);outline:2px solid var(--tinta);outline-offset:1px}
.campo textarea{min-height:6.5rem;resize:vertical}
.opciones{display:flex;gap:.6rem;flex-wrap:wrap}
.opciones label{display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;
  border:1.5px solid var(--linea);cursor:pointer;font-weight:500;font-size:.95rem}
.opciones label:has(input:checked){border-color:var(--tinta);background:var(--tinta);color:#fff}
.opciones input{accent-color:var(--rojo)}
.aviso{background:var(--nieve);border-left:4px solid var(--rojo);padding:1rem 1.15rem;
  font-size:.9rem;color:var(--grafito)}
.aviso p:last-child{margin:0}

/* ── documento legal ─────────────────────────────────────────────────────── */
.legal{max-width:68ch}
.legal h2{font-size:1.3rem;margin:2.5rem 0 .8rem;text-wrap:balance}
.legal h2:first-of-type{margin-top:1.5rem}
.legal ul{padding-left:1.2rem;color:var(--grafito)}
.legal li{margin-bottom:.4rem}

@media print{
  header,footer,.wa-flota,.acciones,.curva{display:none}
  body{font-size:11pt}
}
