/* ============================================================
   Las páginas públicas de Sur: /empresas y /proveedores.
   Las de Norte (ppwr-pilot/fabricante.css, .fab-pub, 15-10-2026): franja
   azul arriba, una portada con su llamada, secciones planas con regla fina y
   el formulario de alta al final. Sin sesión y sin datos de nadie.
   ============================================================ */

body.publica { background: var(--bg); }

.pub-top { background: var(--brand-2); color: #e9f0f7; }
:root[data-tema="oscuro"] .pub-top { background: #0b2238; }
@media (prefers-color-scheme: dark) { :root[data-tema="sistema"] .pub-top { background: #0b2238; } }
.pub-top-in {
  max-width: 1180px; margin: 0 auto; padding: 14px clamp(16px, 3vw, 32px);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.pub-marca { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.pub-marca img { height: 26px; display: block; }
.pub-marca .wordmark { color: #fff; border-left-color: rgba(255, 255, 255, .35); }
.pub-marca .by { display: block; font-family: var(--font-sans); font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.pub-der { display: flex; align-items: center; gap: 12px; }
.pub-der .sel-idioma { width: auto; background: rgba(255, 255, 255, .1); color: #fff; border-color: rgba(255, 255, 255, .3); }
.pub-der .sel-idioma option { color: #0b1c2c; }
.pub-der .btn { min-height: 34px; padding: 6px 16px; background: #fff; color: #003a6b; }
.pub-der .btn:hover { background: #e8f1fa; }

.pub { max-width: 1180px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 32px) 64px; }
.pub-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: end;
  padding: 56px 0 36px; border-bottom: 1px solid var(--line); margin-bottom: 40px; }
.pub-rotulo { display: inline-block; font-size: var(--t-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: 10px; }
.pub-hero h1 { font-size: clamp(2.1rem, 4vw, 3rem); line-height: 1.06; max-width: 18ch; margin: 0 0 16px; }
.pub-lede { font-size: 1.125rem; line-height: 1.55; color: var(--ink); max-width: 62ch; margin: 0 0 24px; }
.pub-botones { display: flex; flex-wrap: wrap; gap: 10px; }
.pub-botones .btn { min-height: 44px; padding: 10px 22px; font-size: var(--t-base); }

/* La cifra de la portada: lo que cuesta no cumplir, con su artículo. */
.pub-cifras { display: grid; gap: 0; border-left: 1px solid var(--line); padding-left: 32px; }
.pub-cifra { padding: 14px 0; border-bottom: 1px solid var(--line); }
.pub-cifra:last-child { border-bottom: 0; }
.pub-cifra b { display: block; font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; line-height: 1.1; color: var(--brand); }
.pub-cifra span { display: block; font-size: var(--t-sm); color: var(--muted); margin-top: 4px; }
.pub-cifra small { display: block; font-size: var(--t-xs); color: var(--muted); margin-top: 2px; }

.pub-sec { margin: 0 0 48px; }
.pub-sec > h2 { font-size: var(--t-xl); padding-bottom: 8px; border-bottom: 1px solid var(--line); margin-bottom: 20px; }
.pub-sec > .pub-nota { color: var(--muted); font-size: var(--t-sm); margin: -8px 0 18px; max-width: 72ch; }
.pub-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 28px; }
.pub-cols h3 { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.1rem; text-transform: none; letter-spacing: 0; color: var(--ink); font-weight: 600; }
.pub-cols p { margin: 0; font-size: var(--t-sm); color: var(--muted); }
.pub-paso .n { display: block; font-family: var(--font-display); color: var(--accent); font-size: 1.75rem; line-height: 1; margin-bottom: 8px; }
/* Los papeles: una regla de color arriba, como en Brújula. */
.pub-papel { border-top: 3px solid var(--brand); padding-top: 12px; }

.pub-ley { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 6px 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.pub-ley:last-child { border-bottom: 0; }
.pub-ley .art { font-weight: 700; color: var(--brand); font-size: var(--t-sm); }
.pub-ley p { margin: 0; }

.pub-aviso { border-left: 4px solid var(--accent); background: var(--surface); padding: 12px 16px; border-radius: 0 var(--r-sm) var(--r-sm) 0; margin: 0 0 16px; font-size: var(--t-sm); }
.pub-aviso b { display: block; margin-bottom: 2px; }

/* El alta: el formulario a la izquierda, lo que pasa después a la derecha. */
.pub-alta { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.pub-alta form { max-width: 760px; }
.pub-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.pub-alta .opc { color: var(--muted); font-weight: 400; }
.pub-trampa { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.pub-privacidad { color: var(--muted); font-size: var(--t-xs); line-height: 1.55; border-top: 1px solid var(--line); padding-top: 10px; margin: 6px 0 10px; }
.pub-privacidad p { margin: 0 0 6px; }
.pub-alta-error { color: var(--bad-ink); font-size: var(--t-sm); min-height: 1.2em; margin: 6px 0 0; }
.pub-hecho { border-left: 4px solid var(--good); background: var(--good-bg); color: var(--good-ink); padding: 14px 16px; border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.pub-hecho b { display: block; }
.pub-luego { border-left: 1px solid var(--line); padding-left: 32px; }
.pub-luego h3 { margin-top: 0; }
.pub-luego ol { margin: 0; padding-left: 18px; font-size: var(--t-sm); color: var(--muted); }
.pub-luego li { margin-bottom: 8px; }
.pub-luego .enlace { margin-top: 8px; }

.pub-pie { max-width: 1180px; margin: 0 auto; padding: 18px clamp(16px, 3vw, 32px) 32px; border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 8px 18px; justify-content: space-between; color: var(--muted); font-size: var(--t-xs); }
.pub-pie a { color: inherit; }
.pub-pie nav { display: flex; flex-wrap: wrap; gap: 14px; }

[hidden] { display: none !important; }

@media (max-width: 900px) {
  .pub-hero, .pub-alta { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pub-cifras, .pub-luego { border-left: 0; padding-left: 0; }
  .pub-ley { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
  .pub-dos { grid-template-columns: minmax(0, 1fr); }
  .pub-marca .by { display: none; }
}
