/* ===========================================================================
   Estilos base de la Fábrica. Un solo archivo: cambiar «ese azul más oscuro»
   es cambiar una línea (patrones/mantenimiento.md).

   1. Colores: el PATRÓN DE TRES TONOS (patrones/color.md). El de marca, tal
      cual, SOLO para decorar; el oscurecido para todo el texto de color.
      Mide cada uno contra su fondo y apunta el contraste al lado.
   2. Escala tipográfica y de espacios (patrones/diseno.md): 7 tamaños, no 30.
   3. Tres puntos de ruptura para todas las webs: 560 · 900.
   =========================================================================== */
:root {
  /* Transkeiles (branding.json → colores_nota; docs/03-estrategia.md) */
  --marca: #BC8730;        /* dorado del logo, medido: 3,16 sobre blanco → solo decoración; 5,11 sobre --tinta → texto sobre oscuro */
  --marca-texto: #8C5F17;  /* nuestro: texto y enlaces, 5,58 sobre blanco */
  --marca-honda: #7A5214;  /* nuestro: foco y detalles, 6,90 sobre blanco */
  --amarillo: #F2B632;     /* la franja de su web: SOLO fondo, con --tinta encima (8,85) */
  --fondo: #FFFFFF;
  --fondo-alt: #F5F3EE;
  --tinta: #1F2124;        /* el negro de sus camiones: 16,1 sobre blanco */
  --tinta-suave: #4A4D55;  /* 8,3 sobre blanco */
  --claro-sobre-oscuro: #D9DBDF; /* 12,4 sobre --tinta */
  --borde: #DCD8CF;

  --p0: .875rem; --p1: 1.125rem; --p2: 1.25rem; --p3: 1.6rem; --p4: 2rem; --p5: 2.5rem; --p6: 3.2rem;
  --h1: clamp(var(--p4), 6vw, var(--p6));
  --h2: clamp(var(--p3), 4vw, var(--p5));
  --e1: .5rem; --e2: 1rem; --e3: 1.6rem; --e4: 2.5rem; --e5: 4rem;

  --barra: 64px;           /* el alto de la barra fija, en UN sitio */
  --radio: 10px;
  --letra: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; /* cero peticiones de fuera */
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--barra) + 1.4rem); } /* el freno de las anclas */
body { margin: 0; font: var(--p1)/1.65 var(--letra); color: var(--tinta); background: var(--fondo); }
img, svg, video { max-width: 100%; height: auto; }
figure { margin: 1.7em 0; } /* el margin:1em 40px de fábrica descuadra las fotos */
[hidden] { display: none !important; } /* cualquier display tuyo le gana a hidden */
a { color: var(--marca-texto); }
/* --marca-texto da 4,51 sobre BLANCO y 4,16 sobre el gris de las secciones
   alternas (medido con contraste.py en Casa Emilia): un tono cumple sobre los
   fondos con los que se calibro, no sobre todos. Ahi los enlaces van en el hondo. */
.seccion--alt a:not(.boton), .hero a:not(.boton) { color: var(--marca-honda); }
:where(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid var(--marca-honda); outline-offset: 2px; }
:where(p, li, td) a:where([href^="tel:"], [href^="mailto:"]) { display: inline-flex; align-items: center; min-height: 44px; } /* se pulsan con el dedo */
.hero :focus-visible, .oscuro :focus-visible, .pie :focus-visible, .barra-movil :focus-visible { outline-color: var(--amarillo); } /* el hondo no se ve sobre negro */
.barra-movil :focus-visible { outline-color: var(--tinta); }
h1, h2, h3 { line-height: 1.2; text-wrap: balance; }
h1 { font-size: var(--h1); margin: 0 0 var(--e2); }
h2 { font-size: var(--h2); margin: var(--e4) 0 var(--e2); }
h3 { font-size: var(--p2); margin: var(--e3) 0 var(--e1); }

.contenedor { width: min(100% - 2rem, 72rem); margin-inline: auto; }
.estrecho { max-width: 44rem; }
.seccion { padding: var(--e4) 0; }
.seccion--alt { background: var(--fondo-alt); }
/* Con la barra delante: .boton (display:inline-flex) va despues y ganaba,
   y el boton de escritorio aparecia en la cabecera del movil (visto en la
   revision visual de Casa Emilia). En el movil llama la barra de abajo. */
.barra .solo-escritorio { display: none; }

/* --- barra fija --- */
.salto { position: absolute; left: -9999px; top: 0; z-index: 100; display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; background: var(--fondo); }
.salto:focus { left: 1rem; }
.barra { position: sticky; top: 0; z-index: 50; background: var(--fondo); border-bottom: 1px solid var(--borde); }
.barra__in { display: flex; align-items: center; gap: var(--e2); min-height: var(--barra); }
.barra__marca { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; margin-right: auto; color: var(--tinta); font-weight: 700; text-decoration: none; }
.barra__logo { height: 30px; width: auto; }
.solo-lector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nav-escritorio { display: none; gap: .25rem; }
.nav-escritorio a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .55rem; white-space: nowrap; color: var(--tinta); text-decoration: none; border-radius: 6px; }
.nav-escritorio a[aria-current="page"] { color: var(--marca-honda); font-weight: 700; }
.nav-movil summary { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--borde); border-radius: 6px; cursor: pointer; list-style: none; }
.nav-movil summary::-webkit-details-marker { display: none; }
.nav-movil nav { position: absolute; left: 0; right: 0; top: var(--barra); display: grid; background: var(--fondo); border-bottom: 1px solid var(--borde); padding: var(--e1) 1rem var(--e2); }
.nav-movil nav a { display: flex; align-items: center; min-height: 48px; color: var(--tinta); text-decoration: none; border-bottom: 1px solid var(--fondo-alt); }

/* --- botones --- */
.boton { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.2rem; border-radius: var(--radio); background: var(--amarillo); color: var(--tinta); font-weight: 700; text-decoration: none; border: 2px solid var(--amarillo); }
button.boton { font: inherit; font-weight: 700; cursor: pointer; } /* el <button> no hereda la letra: salía pequeño */
.boton--sec { background: transparent; color: var(--tinta); border-color: var(--tinta); }
.oscuro .boton--sec, .hero .boton--sec { color: #fff; border-color: #fff; }
.acciones { display: flex; flex-wrap: wrap; gap: var(--e1); }

/* --- bloques --- */
/* Portada: banda negra como sus camiones, con el dorado del logo y una foto suya */
.hero { padding: var(--e4) 0 var(--e4); background: var(--tinta); color: #fff; border-top: 6px solid var(--amarillo); }
.hero .antetitulo { color: var(--marca); }
.hero .entradilla { color: var(--claro-sobre-oscuro); }
.hero a:not(.boton) { color: #fff; }
.hero__rej { display: grid; gap: var(--e3); align-items: center; }
.hero__foto { margin: 0; }
.hero__foto img { display: block; width: 100%; border-radius: var(--radio); }
.antetitulo { margin: 0 0 var(--e1); color: var(--marca-texto); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: var(--p0); }
.entradilla { font-size: var(--p2); color: var(--tinta-suave); max-width: 40rem; }
/* Pruebas bajo los botones de la portada (vuelta 4): el comprador que homologa
   proveedores busca los sellos primero; antes estaban en la cuarta pantalla. */
.pruebas { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: var(--e3) 0 0; padding: 0; list-style: none; font-size: var(--p0); color: var(--claro-sobre-oscuro); }
.pruebas li { display: flex; align-items: center; gap: .45rem; }
.pruebas li::before { content: ""; flex: none; width: .55rem; height: .55rem; border-radius: 2px; background: var(--amarillo); }
/* Presupuesto rápido de la portada (vuelta 4): tres datos y al formulario completo */
.rapido { padding: var(--e3) 0 var(--e4); background: var(--fondo-alt); border-bottom: 1px solid var(--borde); }
.rapido h2 { margin: 0 0 var(--e2); font-size: var(--p3); }
.rapido__form { display: grid; gap: var(--e2); padding: var(--e3); background: var(--fondo); border: 1px solid var(--borde); border-top: 4px solid var(--amarillo); border-radius: var(--radio); }
.rapido__boton { margin: 0; }
.rapido__boton .boton { width: 100%; }
.rapido__nota { margin: var(--e2) 0 0; font-size: var(--p0); color: var(--tinta-suave); }
.rapido__nota a { color: var(--marca-honda); }
/* Cabecera de las páginas interiores */
.cabeza { padding: var(--e4) 0 var(--e3); background: var(--fondo-alt); border-top: 6px solid var(--amarillo); }
.cabeza h1 { margin-bottom: var(--e1); }
/* Con foto suya al lado (diseño, vuelta 1): sin ella, las seis interiores eran
   el mismo bloque de texto y parecían de plantilla. En el móvil va debajo de los
   botones, para no quitarle la primera pantalla al teléfono. */
.cabeza__rej { display: grid; gap: var(--e3); align-items: center; }
.cabeza__rej > div { max-width: 44rem; }
.cabeza__foto { margin: 0; }
.cabeza__foto img { display: block; width: 100%; border-radius: var(--radio); }
/* Cifras que publica el cliente */
.cifras { display: grid; gap: var(--e2); grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); margin: var(--e3) 0 0; padding: 0; list-style: none; }
.cifras li { padding: var(--e2) var(--e2) var(--e2) 1.1rem; border-left: 4px solid var(--marca); background: var(--fondo); }
.cifras b { display: block; font-size: var(--p4); line-height: 1.1; color: var(--tinta); }
.seccion--alt .cifras li { background: var(--fondo); }
.nota { font-size: var(--p0); color: var(--tinta-suave); }
/* Fotos dentro del texto */
.foto { margin: var(--e3) 0; }
.foto img { display: block; width: 100%; border-radius: var(--radio); }
.foto figcaption { margin-top: var(--e1); font-size: var(--p0); color: var(--tinta-suave); }
.dos { display: grid; gap: var(--e3); align-items: start; }
.tarjeta p { margin-bottom: 0; }
.aparte { margin: var(--e3) 0 0; color: var(--tinta-suave); } /* lo que no es para el cargador (empleo), fuera de su rejilla */
.tarjeta:hover h3, .tarjeta:focus-visible h3 { text-decoration: underline; }
.lista-marcas { padding-left: 1.2rem; }
.lista-marcas li { margin-bottom: .4rem; }
.lista-marcas li::marker { color: var(--marca); }
/* Formulario de presupuesto */
.formulario { display: grid; gap: var(--e2); }
.formulario fieldset { border: 1px solid var(--borde); border-radius: var(--radio); padding: var(--e2) var(--e3) var(--e3); margin: 0; display: grid; gap: var(--e2); }
.formulario legend { font-weight: 700; padding: 0 .4rem; }
.campo { display: grid; gap: .3rem; }
.campo label { font-weight: 600; }
.campo small { color: var(--tinta-suave); }
.campo input, .campo select, .campo textarea { font: inherit; min-height: 48px; padding: .6rem .8rem; border: 1px solid #8A8479; border-radius: 8px; background: #fff; color: var(--tinta); width: 100%; }
.campo textarea { min-height: 7rem; resize: vertical; }
.casilla { display: flex; gap: .7rem; align-items: flex-start; }
.casilla input { width: 1.4rem; height: 1.4rem; margin-top: .2rem; flex: none; accent-color: var(--marca-honda); }
.oculto-trampa { display: none; } /* el campo trampa de Netlify: ni se ve ni se toca */
.aviso-datos { font-size: var(--p0); color: var(--tinta-suave); background: var(--fondo-alt); padding: var(--e2); border-radius: 8px; }
.rejilla { display: grid; gap: var(--e2); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); } /* min(100%,…): con 300px fijos desborda el móvil */
.tarjeta { display: block; padding: var(--e3); border: 1px solid var(--borde); border-radius: var(--radio); background: var(--fondo); color: var(--tinta); text-decoration: none; }
.tarjeta h3 { margin-top: 0; color: var(--marca-honda); }
/* La que habla al comprador industrial (vuelta 4): a lo ancho, delante de las otras cuatro */
.tarjeta--ancha { grid-column: 1 / -1; border-left: 6px solid var(--amarillo); background: var(--fondo-alt); }
/* Casillas con la etiqueta entera pulsable (lecciones: 44 px) */
.campo__titulo { font-weight: 600; }
.casillas { display: flex; flex-wrap: wrap; gap: var(--e1) var(--e3); }
.casilla-op { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; cursor: pointer; }
.casilla-op input { width: 1.4rem; height: 1.4rem; margin: 0; flex: none; accent-color: var(--marca-honda); }
.pasos { counter-reset: paso; list-style: none; padding: 0; display: grid; gap: var(--e2); }
.pasos li { counter-increment: paso; padding-left: 3rem; position: relative; }
.pasos li::before { content: counter(paso); position: absolute; left: 0; top: 0; width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 50%; background: var(--marca-honda); color: #fff; font-weight: 700; }
.preguntas details { border-bottom: 1px solid var(--borde); padding: var(--e1) 0; }
.preguntas summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: var(--e2); cursor: pointer; font-weight: 700; list-style: none; }
/* Un «+» que dice «se abre» (diseño, vuelta 3): sin él parecían subtítulos fijos */
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas summary::after { content: "+"; flex: none; font-size: var(--p3); line-height: 1; color: var(--marca-honda); }
.preguntas details[open] summary::after { content: "–"; }
.dato { font-size: var(--p4); font-weight: 800; color: var(--marca-honda); }
table { width: 100%; border-collapse: collapse; margin: var(--e2) 0; }
th, td { padding: .7rem .4rem; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
th { font-size: var(--p0); color: var(--tinta-suave); }
.precio { text-align: right; white-space: nowrap; }
blockquote { margin: var(--e3) 0; padding-left: var(--e2); border-left: 4px solid var(--marca); }
blockquote p { margin: 0; font-size: var(--p2); }
.firma { margin-top: var(--e1); color: var(--tinta-suave); }
.oscuro { background: var(--tinta); color: #fff; }
.oscuro a:not(.boton), .oscuro strong { color: inherit; } /* :not(.boton): heredaba el blanco sobre el amarillo (axe, 24/9/2026) */ /* sobre fondo oscuro, la negrita no puede ir en tinta */

/* --- pie --- */
.pie { padding: var(--e4) 0 calc(var(--e4) + 64px); background: var(--tinta); color: #E9ECEF; font-size: var(--p0); }
.pie a { color: #fff; }
.pie__rej { display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.pie__enlaces { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.pie__enlaces a { display: flex; align-items: center; min-height: 44px; }
.pie__demo { margin-top: var(--e3); padding-top: var(--e2); border-top: 1px solid #3A4048; color: #C9CED4; }

/* --- botón fijo de llamada, solo en el móvil --- */
.barra-movil { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; background: var(--amarillo); box-shadow: 0 -2px 10px rgb(0 0 0 / .2); }
.barra-movil a { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 56px; color: var(--tinta); font-weight: 700; text-decoration: none; }
.barra-movil a + a { border-left: 1px solid rgb(0 0 0 / .25); }
/* Mientras el cartel de cookies (cookies-kit) está abierto, la barra le quedaría debajo. */
.cookies-abierto .barra-movil { display: none; }

@media (min-width: 900px) {
  .nav-escritorio { display: flex; }
  .nav-movil, .barra-movil { display: none; }
  .barra .solo-escritorio { display: inline-flex; white-space: nowrap; }
  .hero h1 { font-size: clamp(var(--p4), 4vw, 2.9rem); }
  .seccion { padding: var(--e5) 0; }
  .pie { padding-bottom: var(--e4); }
  .hero { padding: var(--e5) 0; }
  .hero__rej { grid-template-columns: 1.05fr 1fr; gap: var(--e4); }
  .dos { grid-template-columns: 1fr 1fr; }
  .rapido__form { grid-template-columns: 1fr 1fr 1fr auto; align-items: end; }
  .rapido__boton .boton { width: auto; }
  .cabeza__rej { grid-template-columns: 1.15fr 1fr; gap: var(--e4); }
  .cabeza h1 { font-size: clamp(var(--p4), 3.4vw, 2.6rem); }
}
/* Entre 900 y 1180 px no caben el logo entero, siete enlaces y el botón: el logo se encoge */
@media (min-width: 900px) and (max-width: 1180px) {
  .barra__logo { height: 22px; }
  .nav-escritorio a { padding: 0 .4rem; font-size: var(--p0); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  .barra, .barra-movil, .nav-movil, .salto { display: none !important; }
  * { animation: none !important; opacity: 1 !important; }
}
