*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; }
body.public-site {
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  background:
    radial-gradient(circle at 12% 0%, rgba(0, 229, 255, 0.10), transparent 28rem),
    radial-gradient(circle at 88% 18%, rgba(139, 92, 246, 0.10), transparent 30rem),
    var(--public-bg);
  color: var(--public-text);
  font-family: var(--public-font-body);
  line-height: 1.6;
}
.public-container { width: min(calc(100% - 2rem), var(--public-max)); margin-inline: auto; }
.public-header { position: sticky; top: 0; z-index: 20; --bs-primary: #185FA5; --bs-primary-rgb: 24, 95, 165; background: rgba(2, 10, 19, 0.82); border-bottom: 1px solid var(--public-border); backdrop-filter: blur(18px); font-family: "Play", sans-serif; font-size: 0.875rem; line-height: 1.5; }
.public-header__inner { min-height: 4.5rem; display: flex; align-items: center; gap: 1.25rem; }
.public-header__inner nav { margin-left: auto; }
.public-hero { padding-block: clamp(4rem, 9vw, 8rem); }
.public-hero h1 { max-width: 14ch; margin: 0; font: 900 clamp(2.5rem, 7vw, 5.8rem)/0.98 var(--public-font-title); letter-spacing: -0.055em; }
.public-lead { max-width: 66ch; color: var(--public-muted); font-size: clamp(1.05rem, 2vw, 1.3rem); }
.public-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding-bottom: 6rem; }
.public-footer { border-top: 1px solid var(--public-border); padding-block: 3rem; }
.public-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2rem; }
.public-footer nav { display: grid; align-content: start; gap: 0.6rem; }
@media (max-width: 860px) {
  .public-header__inner { flex-wrap: wrap; padding-block: 0.75rem; }
  .public-header__inner nav { order: 3; width: 100%; margin-left: 0; overflow-x: auto; }
  .public-section-grid, .public-footer__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
@media (min-width: 1100px) { [data-public-page="soluciones"] .public-section-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
.public-page { position: relative; isolation: isolate; overflow: clip; }
.public-page__grid { position: absolute; z-index: -1; inset: 0 0 auto; height: min(54rem, 100%); pointer-events: none; opacity: 0.74; background-image: linear-gradient(var(--public-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--public-grid-line) 1px, transparent 1px); background-size: 3.75rem 3.75rem; mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.74) 44%, transparent 100%); }
.public-page__grid::after { content: ""; position: absolute; width: 34rem; height: 34rem; top: -15rem; right: max(-10rem, 4vw); border-radius: 50%; background: radial-gradient(circle, rgba(0, 229, 255, 0.20), rgba(83, 117, 255, 0.08) 38%, transparent 72%); filter: blur(10px); animation: public-signal-breathe 7s var(--public-ease-flow) infinite alternate; }
.public-hero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.72fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); min-height: min(43rem, calc(100vh - 4.5rem)); padding-block: clamp(4.75rem, 9vw, 8rem); }
.public-hero__copy { position: relative; z-index: 1; }
.public-hero h1 { max-width: 11.5ch; text-wrap: balance; }
.public-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.public-section-grid { position: relative; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); padding-bottom: clamp(5rem, 9vw, 9rem); }
.public-card { min-height: 15rem; }
@keyframes public-signal-breathe { from { transform: scale(0.94); opacity: 0.58; } to { transform: scale(1.06); opacity: 0.94; } }
@media (max-width: 860px) { .public-hero { grid-template-columns: 1fr; min-height: auto; padding-top: clamp(3.5rem, 12vw, 5rem); } .public-hero h1 { max-width: 13ch; } }
@media (max-width: 560px) { .public-hero__actions { display: grid; grid-template-columns: 1fr; } .public-hero__actions .public-button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .public-page__grid::after { animation: none; } }

/* Continuidad con Inicio: transparente hasta que el recorrido necesita contraste. */
.public-header {
  border-bottom-color: transparent;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  transition: background-color 180ms var(--public-ease-out), border-color 180ms var(--public-ease-out), box-shadow 180ms var(--public-ease-out), backdrop-filter 180ms var(--public-ease-out);
}
.public-header.is-scrolled {
  border-bottom-color: rgba(95, 221, 255, 0.18);
  background: rgba(1, 10, 19, 0.74);
  box-shadow: 0 0.8rem 2.5rem rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(18px);
}
/* Jerarquía editorial compartida con el hero del Inicio. */
.public-chapter__hero h1 {
  max-width: 12.25ch;
  font-size: clamp(2.8rem, 2.2rem + 1.6vw, 4rem);
  line-height: 1;
  background: linear-gradient(90deg, #00e5ff 0%, #38bdf8 40%, #a78bfa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}