/*  Laboratorio Celso-AQ como joya científica */
.lab-crown-hero,
.hero.lab-crown-hero {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 14% 18%, var(--celsoaq-glow), transparent 34%),
    radial-gradient(circle at 82% 12%, var(--celsoaq-red-glow), transparent 30%),
    linear-gradient(180deg,#FFFFFF 0%,#F3FAFF 70%,#FFFFFF 100%);
}
.lab-crown-hero::before {
  content:"";
  position:absolute;
  inset:auto -10% -40% -10%;
  height:70%;
  background:radial-gradient(ellipse at center, rgba(11,115,217,.12), transparent 65%);
  pointer-events:none;
}
.lab-brand-lockup,
.lab-hub-brand {
  position:relative;
  border:1px solid var(--ingsoft-line);
  background:
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(234,247,255,.96)),
    radial-gradient(circle at 80% 10%, rgba(228,30,43,.10), transparent 40%);
  box-shadow:var(--shadow-strong);
}
.lab-brand-lockup::after,
.lab-hub-brand::after {
  content:"";
  position:absolute;
  inset:14px;
  border-radius:24px;
  border:1px solid rgba(11,115,217,.12);
  pointer-events:none;
}
.lab-official-logo {
  filter:drop-shadow(0 14px 22px rgba(3,13,27,.10));
}
.lab-module-grid,
.validation-card-grid,
.report-feature-grid,
.learning-path-grid {
  align-items:stretch;
}
.lab-module-card,
.validation-card,
.report-feature-card,
.learning-path-card {
  position:relative;
  overflow:hidden;
}
.lab-module-card::before,
.validation-card::before,
.report-feature-card::before,
.learning-path-card::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg,var(--ingsoft-blue),var(--ingsoft-red));
}
.simlab-card,
.simulator-card {
  border-color:var(--ingsoft-line);
  box-shadow:var(--shadow-soft);
}
.physics-validation-panel,
.scientific-report-tools,
.learning-mode-panel {
  border-color:var(--ingsoft-line);
  box-shadow:0 16px 44px rgba(3,13,27,.10);
}
.learning-mode-grid article,
.physics-validation-panel,
.scientific-report-tools {
  background:linear-gradient(180deg,#FFFFFF 0%,#F8FCFF 100%);
}

/*  Corrección visual del Laboratorio Celso-AQ detectada en captura */
.site-header .nav-hierarchical .nav-group.is-section-active > .nav-parent,
.site-header .nav-hierarchical .nav-link[aria-current="page"],
.site-header .nav a[aria-current="page"] {
  background:#FFFFFF !important;
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  border:1px solid #B7D8EE !important;
  box-shadow:inset 0 -3px 0 #E41E2B, 0 12px 28px rgba(3,13,27,.16) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.site-header .nav-hierarchical .nav-group.is-section-active > .nav-parent span,
.site-header .nav-hierarchical .nav-link[aria-current="page"] span {
  color:#075EAB !important;
  -webkit-text-fill-color:#075EAB !important;
  opacity:1 !important;
}
.site-header .nav-hierarchical .nav-group.is-section-active > .nav-parent:hover,
.site-header .nav-hierarchical .nav-group.is-section-active:focus-within > .nav-parent {
  background:#EAF7FF !important;
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
}
.lab-secondary-nav {
  z-index:72 !important;
  overflow:hidden !important;
}
.lab-secondary-inner {
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) !important;
  align-items:center !important;
  gap:1rem !important;
}
.lab-secondary-inner strong {
  white-space:nowrap !important;
}
.lab-secondary-inner > div,
.lab-secondary-scroll {
  display:flex !important;
  align-items:center !important;
  gap:.48rem !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  padding:.18rem .2rem .34rem !important;
  scroll-snap-type:x proximity !important;
  scrollbar-width:thin !important;
}
.lab-secondary-inner > div::-webkit-scrollbar,
.lab-secondary-scroll::-webkit-scrollbar {
  height:8px;
}
.lab-secondary-inner > div::-webkit-scrollbar-thumb,
.lab-secondary-scroll::-webkit-scrollbar-thumb {
  background:#9DC6E6;
  border-radius:999px;
}
.lab-secondary-inner a {
  flex:0 0 auto !important;
  scroll-snap-align:start !important;
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  background:#FFFFFF !important;
  border-color:#B7D8EE !important;
  font-weight:950 !important;
  opacity:1 !important;
  white-space:nowrap !important;
}
.lab-secondary-inner a:hover,
.lab-secondary-inner a:focus-visible,
.lab-secondary-inner a[aria-current="page"] {
  background:#075EAB !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#075EAB !important;
}
.lab-page .hero > .wide.hero-grid,
.lab-hub .hero > .wide.hero-grid {
  padding-top:3.2rem !important;
  padding-bottom:3.4rem !important;
  align-items:start !important;
}
.lab-hub-brand,
.lab-brand-lockup {
  border-radius:30px !important;
  background:#FFFFFF !important;
  box-shadow:0 20px 54px rgba(3,13,27,.16) !important;
  border:1px solid #B7D8EE !important;
}
.lab-hub-brand {
  padding:1rem 1.25rem !important;
  width:min(720px,100%) !important;
  margin:0 0 1.15rem !important;
}
.lab-hub-brand::after,
.lab-brand-lockup::after {
  inset:12px !important;
  border-color:rgba(11,115,217,.18) !important;
}
.lab-hub-brand .lab-official-logo,
.lab-brand-lockup .lab-official-logo,
.lab-official-logo {
  width:100% !important;
  max-width:640px !important;
  height:auto !important;
  object-fit:contain !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
}
@media (max-width:980px) {
  .lab-secondary-inner {
    grid-template-columns:1fr !important;
    gap:.45rem !important;
  }
  .lab-secondary-inner strong {
    font-size:.95rem !important;
  }
  .lab-page .hero > .wide.hero-grid,
  .lab-hub .hero > .wide.hero-grid {
    padding-top:2.2rem !important;
  }
}

/*  Preservación de corrección visual  del Laboratorio Celso-AQ */
.site-header .nav-hierarchical .nav-group.is-section-active > .nav-parent,
.site-header .nav-hierarchical .nav-link[aria-current="page"],
.site-header .nav a[aria-current="page"] {
  background:#FFFFFF !important;
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  border:1px solid #B7D8EE !important;
  box-shadow:inset 0 -3px 0 #E41E2B, 0 12px 28px rgba(3,13,27,.16) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.lab-secondary-inner {
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) !important;
}
.lab-secondary-scroll {
  display:flex !important;
  gap:.48rem !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:thin !important;
}
.lab-secondary-inner a {
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  background:#FFFFFF !important;
  border-color:#B7D8EE !important;
  font-weight:950 !important;
  opacity:1 !important;
  white-space:nowrap !important;
}
.lab-secondary-inner a:hover,
.lab-secondary-inner a:focus-visible,
.lab-secondary-inner a[aria-current="page"] {
  background:#075EAB !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
.lab-hub-brand .lab-official-logo,
.lab-brand-lockup .lab-official-logo,
.lab-official-logo {
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
}

/* Tiro parabólico interactivo */
.projectile-canvas-wrap {
  position:relative;
}
.projectile-canvas,
.projectile-graph {
  width:100% !important;
  min-height:300px;
  display:block;
  border-radius:22px;
  border:1px solid rgba(183,216,238,.9);
  background:#F9FDFF;
}
.projectile-canvas {
  min-height:420px;
  cursor:crosshair;
  touch-action:none;
}
.projectile-canvas-wrap h3 {
  color:#06152A !important;
  font-weight:950 !important;
  letter-spacing:0 !important;
}
.projectile-control output,
.projectile-readout strong,
.readout strong {
  color:#06152A !important;
  -webkit-text-fill-color:#06152A !important;
  opacity:1 !important;
}
.projectile-note::after {
  content:" Manipulación directa: arrastre el vector inicial para cambiar el ángulo y redibujar la física en tiempo real.";
  font-weight:900;
  color:#075EAB;
}
html[lang="en"] .projectile-note::after {
  content:" Direct manipulation: drag the initial vector to change the angle and redraw the physics in real time.";
}

/* Menú y layout proporcionados */

/* 1) Menús desplegables estables: sin desaparición al bajar el mouse */
.site-header,
.header-inner,
.nav-hierarchical {
  overflow:visible !important;
}
.nav-hierarchical {
  position:relative !important;
  z-index:900 !important;
  gap:.22rem !important;
}
.nav-group {
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  z-index:920 !important;
}
.nav-group::after {
  content:"" !important;
  position:absolute !important;
  left:-18px !important;
  right:-18px !important;
  top:100% !important;
  height:26px !important;
  background:transparent !important;
  pointer-events:auto !important;
}
.nav-hierarchical .nav-link,
.nav-hierarchical .nav-parent,
.nav-hierarchical .lang-switch {
  min-height:34px !important;
  padding:.46rem .62rem !important;
  font-size:clamp(.72rem,.72vw,.86rem) !important;
  line-height:1.05 !important;
  border-radius:999px !important;
}
.nav-dropdown,
.site-header .nav-dropdown,
.nav-hierarchical .nav-dropdown {
  position:absolute !important;
  left:0 !important;
  top:calc(100% + .08rem) !important;
  z-index:9999 !important;
  display:block !important;
  min-width:245px !important;
  max-width:330px !important;
  padding:.54rem !important;
  border:1px solid #9DC6E6 !important;
  border-radius:18px !important;
  background:#FFFFFF !important;
  color:#06152A !important;
  box-shadow:0 28px 76px rgba(3,13,27,.34) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(-4px) scale(.985) !important;
  transition:opacity .12s ease, visibility .12s ease, transform .12s ease !important;
  filter:none !important;
  backdrop-filter:none !important;
}
.nav-group:hover > .nav-dropdown,
.nav-group:focus-within > .nav-dropdown,
.nav-group.is-open > .nav-dropdown,
.nav-group[data-open="true"] > .nav-dropdown {
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform:translateY(0) scale(1) !important;
}
.nav-dropdown::before {
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-22px !important;
  height:24px !important;
  background:transparent !important;
}
.nav-dropdown a {
  display:block !important;
  padding:.56rem .66rem !important;
  border-radius:12px !important;
  color:#06152A !important;
  background:transparent !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
  line-height:1.2 !important;
  font-size:clamp(.76rem,.76vw,.9rem) !important;
  font-weight:920 !important;
}
.nav-dropdown a:hover,
.nav-dropdown a:focus-visible,
.nav-dropdown a[aria-current="page"] {
  background:#EAF7FF !important;
  color:#075EAB !important;
}

/* 2) Encabezado y navegación más compactos: menos espacio muerto arriba */
.topbar {
  min-height:32px !important;
  padding:.32rem 0 !important;
  font-size:clamp(.76rem,.78vw,.9rem) !important;
}
.site-header {
  min-height:auto !important;
}
.header-inner {
  min-height:82px !important;
  padding:.62rem 0 !important;
  gap:.75rem !important;
}
.brand img,
.header-logo,
.site-header .brand img {
  max-height:72px !important;
  width:auto !important;
}
@media (min-width:1100px) {
  .header-inner {
    display:grid !important;
    grid-template-columns:minmax(220px,320px) minmax(0,1fr) !important;
    align-items:center !important;
  }
  .nav-hierarchical {
    justify-content:flex-end !important;
    flex-wrap:nowrap !important;
  }
}

/* 3) Hero institucional compacto, visible en una pantalla estándar */
.hero,
.hero.section,
.hero.hero-home {
  padding-block:clamp(1.4rem,3.2vh,2.8rem) !important;
}
.hero-grid,
.hero .hero-grid,
.main .hero-grid {
  display:grid !important;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.88fr) !important;
  gap:clamp(1rem,2.3vw,2rem) !important;
  align-items:center !important;
}
.hero h1,
.hero-title,
h1 {
  font-size:clamp(2.45rem,5.2vw,4.95rem) !important;
  line-height:.94 !important;
  letter-spacing:-.055em !important;
  margin-block:.62rem .76rem !important;
}
.hero-lead,
.hero p,
.main .hero-lead {
  font-size:clamp(.98rem,1.18vw,1.18rem) !important;
  line-height:1.42 !important;
  max-width:72ch !important;
  margin-block:.35rem .85rem !important;
}
.eyebrow {
  min-height:34px !important;
  padding:.44rem .82rem !important;
  font-size:clamp(.72rem,.84vw,.92rem) !important;
  line-height:1.2 !important;
  border-radius:999px !important;
}
.hero-actions,
.gateway-actions,
.cta-row {
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.7rem !important;
  margin-top:.9rem !important;
}
.btn,
button.btn,
.hero-actions .btn {
  min-height:42px !important;
  padding:.68rem 1rem !important;
  border-radius:16px !important;
  font-size:clamp(.82rem,.9vw,.98rem) !important;
  line-height:1.12 !important;
}
.kpi-grid,
.hero-kpis,
.metrics-grid,
.gateway-kpis {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:.62rem !important;
  margin-top:.92rem !important;
}
.kpi-card,
.hero-kpi,
.metric-card,
.gateway-kpi {
  padding:.72rem .86rem !important;
  min-height:74px !important;
  border-radius:18px !important;
}
.kpi-card h3,
.hero-kpi h3,
.metric-card h3,
.gateway-kpi h3 {
  font-size:clamp(.92rem,1vw,1.08rem) !important;
  margin:0 0 .18rem !important;
}
.kpi-card p,
.hero-kpi p,
.metric-card p,
.gateway-kpi p {
  font-size:clamp(.76rem,.8vw,.88rem) !important;
  line-height:1.32 !important;
  margin:0 !important;
}
.brand-stage,
.lab-brand-lockup,
.hero-media,
.hero-visual,
.device-frame {
  max-width:min(100%,560px) !important;
  justify-self:center !important;
}
.brand-stage img,
.lab-brand-lockup img,
.hero-media img,
.hero-visual img {
  max-height:clamp(150px,28vh,330px) !important;
  object-fit:contain !important;
}
.version-card,
.brand-stage-caption {
  padding:.6rem .8rem !important;
  min-height:auto !important;
}
.brand-stage-caption strong,
.version-card strong {
  font-size:clamp(.78rem,.86vw,1rem) !important;
  line-height:1.25 !important;
}
.brand-stage-caption span,
.version-card span {
  font-size:clamp(.66rem,.72vw,.82rem) !important;
}

/* 4) Secciones completas en una pantalla: reduce exceso vertical global */
.section {
  padding-block:clamp(1.6rem,4.2vh,3.6rem) !important;
}
.section-head,
.split-heading {
  margin-bottom:clamp(.9rem,2vh,1.4rem) !important;
}
.section-head h2,
.split-heading h2,
.section h2 {
  font-size:clamp(1.75rem,3.2vw,3.15rem) !important;
  line-height:1 !important;
  letter-spacing:-.04em !important;
  margin:.25rem 0 .6rem !important;
}
.section-head p,
.split-heading p {
  font-size:clamp(.95rem,1.05vw,1.08rem) !important;
  line-height:1.42 !important;
}

/* 5) Simuladores: controles y lienzo visibles juntos en escritorio */
@media (min-width:980px) {
  .projectile-layout,
  .kinematics-layout,
  .energy-layout,
  .circular-layout,
  .wave-layout,
  .interference-layout,
  .doppler-layout,
  .em-layout,
  .field-layout,
  .circuit-layout,
  .magnetic-layout,
  .induction-layout,
  .optics-layout,
  .mirror-layout,
  .refraction-layout {
    grid-template-columns:minmax(250px,330px) minmax(0,1fr) !important;
    gap:.9rem !important;
    align-items:start !important;
  }
  .projectile-controls,
  .kinematics-controls,
  .energy-controls,
  .circular-controls,
  .wave-controls,
  .interference-controls,
  .doppler-controls,
  .em-controls,
  .field-controls,
  .circuit-controls,
  .magnetic-controls,
  .induction-controls,
  .optics-controls,
  .mirror-controls,
  .refraction-controls {
    gap:.48rem !important;
  }
  .projectile-control,
  .kinematics-control,
  .energy-control,
  .circular-control,
  .wave-control,
  .interference-control,
  .doppler-control,
  .em-control,
  .field-control,
  .circuit-control,
  .magnetic-control,
  .induction-control,
  .optics-control,
  .mirror-control,
  .refraction-control {
    padding:.52rem .6rem !important;
    border-radius:14px !important;
  }
  .projectile-control label,
  .kinematics-control label,
  .energy-control label,
  .circular-control label,
  .wave-control label,
  .interference-control label,
  .doppler-control label,
  .em-control label,
  .field-control label,
  .circuit-control label,
  .magnetic-control label,
  .induction-control label,
  .optics-control label,
  .mirror-control label,
  .refraction-control label {
    font-size:clamp(.76rem,.8vw,.9rem) !important;
    line-height:1.15 !important;
  }
  .projectile-buttons,
  .kinematics-buttons,
  .energy-buttons,
  .circular-buttons,
  .wave-actions,
  .interference-actions,
  .doppler-actions,
  .em-actions,
  .field-actions,
  .circuit-actions,
  .magnetic-actions,
  .induction-actions,
  .optics-actions,
  .mirror-actions,
  .refraction-actions,
  .lab-actions {
    gap:.45rem !important;
    margin-top:.62rem !important;
  }
  .projectile-buttons .btn,
  .kinematics-buttons .btn,
  .energy-buttons .btn,
  .circular-buttons .btn,
  .wave-actions button,
  .interference-actions button,
  .doppler-actions button,
  .em-actions button,
  .field-actions button,
  .circuit-actions button,
  .magnetic-actions button,
  .induction-actions button,
  .optics-actions button,
  .mirror-actions button,
  .refraction-actions button,
  .lab-actions button {
    min-height:36px !important;
    padding:.5rem .68rem !important;
    font-size:.82rem !important;
    border-radius:13px !important;
  }
  .projectile-readout,
  .kinematics-readout,
  .energy-readout,
  .circular-readout,
  .wave-readout,
  .interference-readout,
  .doppler-readout,
  .em-readout,
  .field-readout,
  .circuit-readout,
  .magnetic-readout,
  .induction-readout,
  .optics-readout,
  .mirror-readout,
  .refraction-readout {
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:.48rem !important;
  }
  .readout,
  .projectile-readout .readout,
  .mirror-readout-card,
  .refraction-readout-card,
  .optics-readout-card {
    padding:.55rem .62rem !important;
    min-height:58px !important;
    border-radius:15px !important;
  }
  .readout span,
  .mirror-readout-card span,
  .refraction-readout-card span,
  .optics-readout-card span {
    font-size:.62rem !important;
  }
  .readout strong,
  .mirror-readout-card strong,
  .refraction-readout-card strong,
  .optics-readout-card strong {
    font-size:.9rem !important;
  }
  .projectile-canvas,
  .projectile-graph,
  #reflectionRefractionCanvas,
  #sphericalMirrorCanvas,
  #thinLensCanvas,
  canvas[data-canvas],
  canvas[data-graph] {
    min-height:clamp(240px,37vh,390px) !important;
  }
  .projectile-canvas-wrap,
  .refraction-canvas-wrap,
  .mirror-canvas-wrap,
  .optics-canvas-wrap {
    padding:.65rem !important;
    border-radius:20px !important;
  }
  .projectile-canvas-wrap h3 {
    font-size:clamp(.95rem,1.05vw,1.15rem) !important;
    margin:.05rem 0 .45rem !important;
  }
  .projectile-note,
  .mirror-note,
  .refraction-note,
  .optics-note {
    font-size:.82rem !important;
    line-height:1.35 !important;
  }
}

/* 6) Pantallas 1366×768 / laptops: objetivo de una pantalla completa */
@media (min-width:1000px) and (max-height:820px) {
  .topbar { min-height:28px !important; padding:.22rem 0 !important; }
  .header-inner { min-height:66px !important; padding:.42rem 0 !important; }
  .brand img,
  .site-header .brand img { max-height:58px !important; }
  .nav-hierarchical .nav-link,
  .nav-hierarchical .nav-parent,
  .nav-hierarchical .lang-switch {
    min-height:30px !important;
    padding:.38rem .54rem !important;
    font-size:.74rem !important;
  }
  .hero { padding-block:1.2rem !important; }
  .hero-grid { gap:1rem !important; }
  .hero h1,
  h1 {
    font-size:clamp(2.25rem,4.55vw,4.25rem) !important;
    line-height:.91 !important;
    margin-block:.38rem .52rem !important;
  }
  .hero-lead,
  .hero p {
    font-size:.98rem !important;
    line-height:1.36 !important;
    margin-bottom:.55rem !important;
  }
  .brand-stage,
  .lab-brand-lockup,
  .hero-media,
  .hero-visual,
  .device-frame { max-width:500px !important; }
  .brand-stage img,
  .lab-brand-lockup img,
  .hero-media img,
  .hero-visual img { max-height:245px !important; }
  .btn { min-height:38px !important; padding:.58rem .82rem !important; }
  .kpi-grid,
  .hero-kpis,
  .gateway-kpis { gap:.5rem !important; margin-top:.64rem !important; }
  .kpi-card,
  .hero-kpi,
  .gateway-kpi {
    min-height:62px !important;
    padding:.58rem .68rem !important;
  }
  .section { padding-block:1.6rem !important; }
  .section h2 { font-size:clamp(1.65rem,2.8vw,2.75rem) !important; }
  .projectile-canvas,
  .projectile-graph,
  #reflectionRefractionCanvas,
  #sphericalMirrorCanvas,
  #thinLensCanvas,
  canvas[data-canvas],
  canvas[data-graph] {
    min-height:260px !important;
  }
}

/* 7) Evita que el botón flotante Aa tape lectura de simuladores */
.accessibility-float,
.a11y-toggle,
[data-accessibility-toggle] {
  z-index:760 !important;
}

/* Sistema visual Celso-AQ */
.lab-brand-lockup,
.brand-lockup,
.lab-hero-logo,
.celso-aq-logo-frame {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.celso-aq-brand-vector {
  width:min(100%,680px) !important;
  min-height:clamp(116px,20vh,190px) !important;
  display:grid !important;
  grid-template-columns:clamp(84px,12vw,142px) minmax(0,1fr) !important;
  align-items:center !important;
  gap:clamp(.9rem,2vw,1.45rem) !important;
  padding:clamp(.9rem,1.9vw,1.25rem) clamp(1rem,2.4vw,1.65rem) !important;
  border:1px solid rgba(183,216,238,.92) !important;
  border-radius:clamp(22px,3vw,34px) !important;
  background:
    radial-gradient(circle at 12% 18%,rgba(91,187,234,.18),transparent 32%),
    radial-gradient(circle at 86% 82%,rgba(11,115,217,.12),transparent 36%),
    linear-gradient(135deg,#FFFFFF 0%,#F6FBFF 55%,#EAF7FF 100%) !important;
  box-shadow:0 22px 58px rgba(3,13,27,.16), inset 0 0 0 1px rgba(255,255,255,.72) !important;
  color:#06152A !important;
  overflow:hidden !important;
  position:relative !important;
}
.celso-aq-brand-vector::before {
  content:"" !important;
  position:absolute !important;
  inset:12px !important;
  border-radius:24px !important;
  background:
    linear-gradient(90deg,rgba(11,115,217,.09) 1px,transparent 1px),
    linear-gradient(rgba(11,115,217,.07) 1px,transparent 1px) !important;
  background-size:28px 28px !important;
  opacity:.5 !important;
  pointer-events:none !important;
}
.celso-aq-mark {
  position:relative !important;
  width:clamp(74px,11vw,128px) !important;
  height:clamp(74px,11vw,128px) !important;
  z-index:1 !important;
}
.celso-aq-mark .orbit,
.celso-aq-mark .axis,
.celso-aq-mark .wave-line,
.celso-aq-mark .mass {
  position:absolute !important;
  display:block !important;
}
.celso-aq-mark .orbit {
  inset:8% !important;
  border:clamp(3px,.55vw,6px) solid #061A3D !important;
  border-right-color:transparent !important;
  border-top-color:#0B73D9 !important;
  border-radius:50% !important;
  transform:rotate(-22deg) !important;
}
.celso-aq-mark .orbit-b {
  inset:24% 18% 18% 22% !important;
  border-color:#13B8D8 !important;
  border-left-color:transparent !important;
  opacity:.9 !important;
  transform:rotate(28deg) !important;
}
.celso-aq-mark .axis-x {
  left:14% !important;
  top:51% !important;
  width:72% !important;
  height:3px !important;
  background:#061A3D !important;
}
.celso-aq-mark .axis-y {
  left:52% !important;
  top:16% !important;
  width:3px !important;
  height:68% !important;
  background:#061A3D !important;
}
.celso-aq-mark .wave-line {
  left:8% !important;
  top:42% !important;
  width:58% !important;
  height:28% !important;
  background:
    radial-gradient(circle at 0% 50%,transparent 0 7px,#0B73D9 8px 10px,transparent 11px),
    linear-gradient(100deg,transparent 0 9%,#0B73D9 10% 12%,transparent 13% 23%,#0B73D9 24% 27%,transparent 28% 40%,#0B73D9 41% 44%,transparent 45%) !important;
  clip-path:polygon(0 45%,10% 15%,20% 72%,32% 25%,44% 68%,56% 32%,70% 62%,84% 38%,100% 50%,100% 100%,0 100%) !important;
  opacity:.9 !important;
}
.celso-aq-mark .mass-main {
  width:31% !important;
  height:31% !important;
  left:38% !important;
  top:55% !important;
  border-radius:50% !important;
  background:linear-gradient(135deg,#061A3D,#0B73D9) !important;
  box-shadow:0 7px 20px rgba(3,13,27,.22) !important;
}
.celso-aq-mark .mass-small {
  width:16% !important;
  height:16% !important;
  left:51% !important;
  top:10% !important;
  border-radius:50% !important;
  background:#061A3D !important;
}
.celso-aq-wordmark {
  position:relative !important;
  z-index:1 !important;
}
.celso-aq-wordmark strong {
  display:block !important;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  font-weight:960 !important;
  font-size:clamp(avanzada5rem,5vw,4.2rem) !important;
  line-height:.9 !important;
  letter-spacing:-.08em !important;
  color:#061A3D !important;
}
.celso-aq-wordmark strong::after {
  content:"" !important;
  display:block !important;
  width:min(94%,460px) !important;
  height:3px !important;
  margin:.34rem 0 .22rem !important;
  background:linear-gradient(90deg,#061A3D,#0B73D9,#13B8D8) !important;
  border-radius:999px !important;
}
.celso-aq-wordmark span {
  display:block !important;
  font-weight:820 !important;
  font-size:clamp(.78rem,1.45vw,1.12rem) !important;
  letter-spacing:.18em !important;
  color:#153A63 !important;
  text-transform:uppercase !important;
}

/* Compactación transversal de secciones */
:root {
  --section-fit-pad: clamp(1.05rem, 2.6vh, 2.35rem);
  --section-fit-gap: clamp(.75rem, 1.55vw, 1.3rem);
}
.section,
main > section,
.page-section,
.platform-section,
.observatory-section,
.lab-section {
  padding-top:var(--section-fit-pad) !important;
  padding-bottom:var(--section-fit-pad) !important;
}
.wide,
.container,
.section-inner {
  max-width:min(92vw,1380px) !important;
}
.section-head,
.section-head-balanced,
.split-heading,
.page-head {
  margin-bottom:clamp(.62rem,1.45vh,1.05rem) !important;
}
.section-head h1,
.section-head h2,
.split-heading h1,
.split-heading h2,
.page-head h1,
.page-head h2,
section h1,
section h2 {
  font-size:clamp(1.72rem,3.15vw,3.25rem) !important;
  line-height:.98 !important;
  letter-spacing:-.04em !important;
  margin:.1rem 0 .42rem !important;
}
.section-head p,
.split-heading p,
.page-head p,
section > .wide > p {
  font-size:clamp(.86rem,.98vw,1.02rem) !important;
  line-height:1.35 !important;
  margin:.24rem 0 !important;
}
.card,
.gateway-card,
.feature-card,
.resource-card,
.lab-card,
.panel,
.module-card,
.report-card,
.workshop-card,
.science-card {
  padding:clamp(.75rem,1.35vw,1.1rem) !important;
  border-radius:clamp(16px,2vw,24px) !important;
}
.card h3,
.gateway-card h3,
.feature-card h3,
.resource-card h3,
.lab-card h3,
.module-card h3 {
  font-size:clamp(.98rem,1.15vw,1.28rem) !important;
  line-height:1.12 !important;
  margin:0 0 .35rem !important;
}
.card p,
.gateway-card p,
.feature-card p,
.resource-card p,
.lab-card p,
.module-card p {
  font-size:clamp(.78rem,.9vw,.94rem) !important;
  line-height:1.36 !important;
}
.grid,
.gateway-grid,
.cards-grid,
.feature-grid,
.resource-grid,
.modules-grid,
.lab-grid {
  gap:var(--section-fit-gap) !important;
}
.eyebrow {
  padding:.36rem .72rem !important;
  min-height:28px !important;
  font-size:clamp(.65rem,.75vw,.84rem) !important;
}
.btn,
.button,
button,
.hero-actions .btn {
  min-height:36px !important;
  padding:.52rem .78rem !important;
  font-size:clamp(.76rem,.82vw,.92rem) !important;
}

/* Laboratorio: secciones completas */
.lab-hero,
.hero.lab-hero,
.hero-v37 {
  min-height:auto !important;
  padding-block:clamp(.95rem,2.5vh,1.75rem) !important;
}
.lab-hero .hero-grid,
.hero-grid,
.hero-v37-grid {
  gap:clamp(.8rem,1.8vw,1.45rem) !important;
}
.lab-hero h1,
.hero-v37 h1,
.hero h1 {
  font-size:clamp(2.2rem,4.45vw,4.2rem) !important;
  line-height:.9 !important;
}
.lab-hero .hero-lead,
.hero-v37 .hero-lead,
.hero .hero-lead {
  font-size:clamp(.86rem,1vw,1.03rem) !important;
  line-height:1.33 !important;
}
.lab-hero .celso-aq-brand-vector,
.lab-brand-lockup .celso-aq-brand-vector {
  max-width:min(100%,610px) !important;
  min-height:clamp(96px,17vh,154px) !important;
}
.lab-hero .celso-aq-wordmark strong,
.lab-brand-lockup .celso-aq-wordmark strong {
  font-size:clamp(1.75rem,4.3vw,3.45rem) !important;
}
.lab-hero .celso-aq-wordmark span,
.lab-brand-lockup .celso-aq-wordmark span {
  font-size:clamp(.62rem,1.05vw,.9rem) !important;
}
@media (min-width:1000px) {
  .simulator-page .section,
  [data-projectile],
  [data-mru-mruv],
  [data-energy],
  [data-circular-motion],
  [data-harmonic-wave],
  [data-interference-waves],
  [data-sound-doppler],
  [data-electric-field],
  [data-ohm-circuit],
  [data-magnetic-force],
  [data-electromagnetic-induction],
  [data-thin-lens],
  [data-spherical-mirror],
  [data-reflection-refraction] {
    max-height:calc(100svh - 150px) !important;
    overflow:auto !important;
    scrollbar-width:thin !important;
  }
  .projectile-layout,
  .kinematics-layout,
  .energy-layout,
  .circular-layout,
  .wave-layout,
  .interference-layout,
  .doppler-layout,
  .em-layout,
  .field-layout,
  .circuit-layout,
  .magnetic-layout,
  .induction-layout,
  .optics-layout,
  .mirror-layout,
  .refraction-layout {
    grid-template-columns:minmax(220px,300px) minmax(0,1fr) !important;
    gap:.72rem !important;
  }
  .projectile-control,
  .kinematics-control,
  .energy-control,
  .circular-control,
  .wave-control,
  .interference-control,
  .doppler-control,
  .em-control,
  .field-control,
  .circuit-control,
  .magnetic-control,
  .induction-control,
  .optics-control,
  .mirror-control,
  .refraction-control {
    padding:.42rem .52rem !important;
  }
  .projectile-control label,
  .kinematics-control label,
  .energy-control label,
  .circular-control label,
  .wave-control label,
  .interference-control label,
  .doppler-control label,
  .em-control label,
  .field-control label,
  .circuit-control label,
  .magnetic-control label,
  .induction-control label,
  .optics-control label,
  .mirror-control label,
  .refraction-control label {
    font-size:.74rem !important;
  }
  .projectile-canvas,
  .projectile-graph,
  canvas[data-canvas],
  canvas[data-graph],
  #reflectionRefractionCanvas,
  #sphericalMirrorCanvas,
  #thinLensCanvas {
    min-height:clamp(215px,33vh,340px) !important;
  }
  .projectile-readout,
  .kinematics-readout,
  .energy-readout,
  .circular-readout,
  .wave-readout,
  .interference-readout,
  .doppler-readout,
  .em-readout,
  .field-readout,
  .circuit-readout,
  .magnetic-readout,
  .induction-readout,
  .optics-readout,
  .mirror-readout,
  .refraction-readout {
    gap:.38rem !important;
  }
  .readout,
  .mirror-readout-card,
  .refraction-readout-card,
  .optics-readout-card {
    padding:.44rem .5rem !important;
    min-height:48px !important;
  }
}
@media (min-width:1000px) and (max-height:820px) {
  .section,
  main > section {
    padding-top:.9rem !important;
    padding-bottom:.9rem !important;
  }
  .section-head h1,
  .section-head h2,
  section h1,
  section h2 {
    font-size:clamp(1.55rem,2.75vw,2.7rem) !important;
  }
  .lab-hero .celso-aq-brand-vector,
  .lab-brand-lockup .celso-aq-brand-vector {
    min-height:108px !important;
    max-width:520px !important;
  }
}

/* Marca Celso-AQ oficial a color */
.lab-official-logo {
  display:block !important;
  width:min(100%,760px) !important;
  max-height:clamp(118px,22vh,230px) !important;
  object-fit:contain !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
  background:#FFFFFF !important;
  border:1px solid rgba(183,216,238,.86) !important;
  border-radius:clamp(18px,2.4vw,28px) !important;
  padding:clamp(.45rem,1vw,.8rem) !important;
  box-shadow:0 18px 46px rgba(3,13,27,.14) !important;
}
.lab-brand-lockup,
.brand-lockup,
.lab-hero-logo,
.celso-aq-logo-frame {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
@media (min-width:1000px) and (max-height:820px) {
  .lab-official-logo {
    max-height:clamp(92px,17vh,150px) !important;
    padding:.38rem !important;
  }
}


/* Sistema visual final de plataforma y laboratorio */
:root{
  --fit-section-pad:clamp(.85rem,2.2vh,1.9rem);
  --fit-card-pad:clamp(.62rem,1.05vw,.95rem);
  --fit-gap:clamp(.55rem,1.15vw,1rem);
}
html{scroll-behavior:smooth;}
body{overflow-x:hidden;}
.main > section,
.section,
.page-section,
.platform-section,
.observatory-section,
.lab-section{
  padding-top:var(--fit-section-pad) !important;
  padding-bottom:var(--fit-section-pad) !important;
}
.wide,.container,.section-inner{max-width:min(93vw,1380px) !important;}
.section-head,.section-head-balanced,.split-heading,.page-head{margin-bottom:clamp(.48rem,1.1vh,.88rem) !important;}
section h1,.section h1,.hero h1,.page-head h1{
  font-size:clamp(2rem,4.1vw,4.05rem) !important;
  line-height:.92 !important;
  letter-spacing:-.052em !important;
  margin:.1rem 0 .38rem !important;
}
section h2,.section h2,.section-head h2,.split-heading h2{
  font-size:clamp(1.45rem,2.6vw,2.85rem) !important;
  line-height:1 !important;
  letter-spacing:-.038em !important;
  margin:.08rem 0 .34rem !important;
}
.hero-lead,.section-head p,.split-heading p,.page-head p,.card p,.feature-card p,.lab-card p{
  font-size:clamp(.78rem,.88vw,.96rem) !important;
  line-height:1.32 !important;
}
.card,.gateway-card,.feature-card,.resource-card,.lab-card,.panel,.module-card,.report-card,.workshop-card,.science-card{
  padding:var(--fit-card-pad) !important;
  border-radius:clamp(14px,1.8vw,22px) !important;
}
.grid,.gateway-grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid{gap:var(--fit-gap) !important;}
.btn,.button,button,.hero-actions .btn{
  min-height:34px !important;
  padding:.46rem .7rem !important;
  font-size:clamp(.72rem,.78vw,.88rem) !important;
  line-height:1.1 !important;
}
.eyebrow{
  min-height:26px !important;
  padding:.32rem .66rem !important;
  font-size:clamp(.62rem,.7vw,.78rem) !important;
  line-height:1.1 !important;
}
.topbar{min-height:28px !important;padding:.22rem 0 !important;font-size:clamp(.7rem,.76vw,.86rem) !important;}
.header-inner{min-height:64px !important;padding:.38rem 0 !important;gap:.55rem !important;}
.site-header .brand img,.brand img,.header-logo{max-height:58px !important;width:auto !important;}
.nav-hierarchical{gap:.18rem !important;}
.nav-hierarchical .nav-link,.nav-hierarchical .nav-parent,.nav-hierarchical .lang-switch{
  min-height:29px !important;
  padding:.34rem .5rem !important;
  font-size:clamp(.68rem,.7vw,.8rem) !important;
}
.nav-dropdown{font-size:.82rem !important;}
.nav-dropdown a{padding:.48rem .58rem !important;font-size:.8rem !important;}
.lab-official-logo{
  display:block !important;
  width:min(100%,620px) !important;
  max-height:clamp(82px,15vh,138px) !important;
  object-fit:contain !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
  background:#fff !important;
  border:1px solid rgba(183,216,238,.86) !important;
  border-radius:clamp(14px,1.9vw,22px) !important;
  padding:clamp(.24rem,.7vw,.46rem) !important;
  box-shadow:0 12px 30px rgba(3,13,27,.12) !important;
}
.lab-hub-brand,.lab-brand-lockup,.lab-hero-logo{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-bottom:clamp(.35rem,.9vh,.7rem) !important;
}
.hero,.hero-v37,.lab-hero{min-height:auto !important;padding-block:clamp(.78rem,avanzadavh,1.4rem) !important;}
.hero-grid,.hero-v37-grid{gap:clamp(.62rem,1.4vw,1.15rem) !important;align-items:center !important;}
.hero-actions,.hero-actions-v37,.gateway-actions{gap:.48rem !important;margin-top:.56rem !important;}
.authority-ribbon,.kpi-grid,.hero-kpis,.gateway-kpis{gap:.44rem !important;margin-top:.56rem !important;}
.authority-ribbon > div,.kpi-card,.hero-kpi,.gateway-kpi{min-height:50px !important;padding:.46rem .56rem !important;}
.site-footer{padding-block:clamp(.9rem,2.1vh,1.7rem) !important;}
.site-footer p,.site-footer a,.site-footer li,.site-footer span,.site-footer small{font-size:clamp(.68rem,.74vw,.82rem) !important;line-height:1.32 !important;}
.site-footer h2,.site-footer h3,.site-footer h4{font-size:clamp(.82rem,.88vw,.98rem) !important;margin-bottom:.32rem !important;}
.site-footer img{max-height:62px !important;width:auto !important;}
.site-footer .footer-bottom,.footer-bottom{margin-top:.72rem !important;padding-top:.54rem !important;}
.brand-version-compact{padding:.42rem .62rem !important;min-height:auto !important;text-align:center !important;}
.brand-version-compact strong{font-size:clamp(.66rem,.72vw,.82rem) !important;line-height:1.2 !important;}
@media (min-width:980px){
  .projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{
    grid-template-columns:minmax(205px,285px) minmax(0,1fr) !important;
    gap:.58rem !important;
    align-items:start !important;
  }
  .projectile-controls,.kinematics-controls,.energy-controls,.circular-controls,.wave-controls,.interference-controls,.doppler-controls,.em-controls,.field-controls,.circuit-controls,.magnetic-controls,.induction-controls,.optics-controls,.mirror-controls,.refraction-controls{gap:.34rem !important;}
  .projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control{padding:.34rem .44rem !important;border-radius:12px !important;}
  .projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label{font-size:.68rem !important;line-height:1.08 !important;}
  input[type="range"]{height:20px !important;margin-top:.28rem !important;}
  select,input{font-size:.78rem !important;}
  .projectile-buttons,.kinematics-buttons,.energy-buttons,.circular-buttons,.wave-actions,.interference-actions,.doppler-actions,.em-actions,.field-actions,.circuit-actions,.magnetic-actions,.induction-actions,.optics-actions,.mirror-actions,.refraction-actions,.lab-actions{gap:.32rem !important;margin-top:.38rem !important;}
  .projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button{min-height:30px !important;padding:.36rem .48rem !important;font-size:.72rem !important;border-radius:10px !important;}
  .projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(190px,29vh,310px) !important;}
  .projectile-canvas-wrap,.refraction-canvas-wrap,.mirror-canvas-wrap,.optics-canvas-wrap{padding:.46rem !important;border-radius:16px !important;}
  .projectile-readout,.kinematics-readout,.energy-readout,.circular-readout,.wave-readout,.interference-readout,.doppler-readout,.em-readout,.field-readout,.circuit-readout,.magnetic-readout,.induction-readout,.optics-readout,.mirror-readout,.refraction-readout{gap:.28rem !important;}
  .readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card{padding:.34rem .42rem !important;min-height:40px !important;border-radius:12px !important;}
  .readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span{font-size:.55rem !important;}
  .readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong{font-size:.78rem !important;}
  [data-projectile],[data-mru-mruv],[data-energy],[data-circular-motion],[data-harmonic-wave],[data-interference-waves],[data-sound-doppler],[data-electric-field],[data-ohm-circuit],[data-magnetic-force],[data-electromagnetic-induction],[data-thin-lens],[data-spherical-mirror],[data-reflection-refraction]{max-height:calc(100svh - 132px) !important;overflow:auto !important;scrollbar-width:thin !important;}
}
@media (min-width:1000px) and (max-height:820px){
  .main > section,.section,main > section{padding-top:.62rem !important;padding-bottom:.62rem !important;}
  section h1,.hero h1{font-size:clamp(1.95rem,3.7vw,3.45rem) !important;}
  section h2{font-size:clamp(1.35rem,2.3vw,2.38rem) !important;}
  .lab-official-logo{max-height:clamp(70px,13vh,112px) !important;max-width:min(100%,510px) !important;}
  .projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(175px,27vh,285px) !important;}
}
@media (max-width:900px){
  .hero-grid,.hero-v37-grid,.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:1fr !important;}
  .lab-official-logo{max-height:130px !important;}
}


.celso-aq-brand-vector{display:none !important;}
/* Reglas visuales globales de producción */
:root{
  --fit-header: 112px;
  --fit-gap: clamp(.62rem,1.25vw,1rem);
  --fit-pad: clamp(.82rem,2vh,1.35rem);
}
html{scroll-padding-top:118px!important;}
body{font-size:clamp(14px,.92vw,16px)!important;}
.wide,.container{max-width:min(92vw,1360px)!important;}
.topbar{min-height:27px!important;padding:.2rem 0!important;font-size:clamp(.68rem,.74vw,.82rem)!important;}
.site-header{position:sticky!important;top:0!important;z-index:880!important;}
.header-inner{min-height:58px!important;padding:.34rem 0!important;gap:.5rem!important;}
.site-header .brand img,.brand img,.header-logo{max-height:52px!important;width:auto!important;object-fit:contain!important;}
.nav-hierarchical{gap:.16rem!important;}
.nav-hierarchical .nav-link,.nav-hierarchical .nav-parent,.nav-hierarchical .lang-switch{min-height:28px!important;padding:.34rem .52rem!important;font-size:.72rem!important;line-height:1!important;border-radius:999px!important;}
.nav-dropdown{font-size:.78rem!important;min-width:232px!important;max-width:318px!important;padding:.42rem!important;border-radius:15px!important;}
.nav-dropdown a{padding:.42rem .5rem!important;font-size:.76rem!important;line-height:1.16!important;border-radius:10px!important;}

/* Home: primera pantalla limpia, equilibrada y sin bloque pesado */
.hero-v37{min-height:calc(100svh - 96px)!important;display:flex!important;align-items:center!important;padding-block:.65rem!important;overflow:hidden!important;}
.hero-v37-grid{grid-template-columns:minmax(0,.96fr) minmax(360px,.82fr)!important;gap:clamp(.8rem,1.7vw,1.3rem)!important;align-items:center!important;}
.hero-v37-copy h1{font-size:clamp(2.45rem,4.15vw,4.15rem)!important;line-height:.91!important;letter-spacing:-.065em!important;max-width:12.6ch!important;margin:.32rem 0 .48rem!important;}
.hero-v37-copy .hero-lead{font-size:clamp(.86rem,.96vw,1rem)!important;line-height:1.36!important;max-width:66ch!important;margin-bottom:.52rem!important;}
.hero-actions-v37,.hero-actions{gap:.46rem!important;margin-top:.54rem!important;}
.hero-actions-v37 .btn,.hero-actions .btn,.btn{min-height:34px!important;padding:.48rem .68rem!important;border-radius:12px!important;font-size:clamp(.72rem,.78vw,.86rem)!important;}
.authority-ribbon{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.42rem!important;margin-top:.62rem!important;}
.authority-ribbon>div,.kpi-card,.hero-kpi,.gateway-kpi{min-height:46px!important;padding:.42rem .5rem!important;border-radius:13px!important;}
.authority-ribbon strong,.kpi-card h3,.hero-kpi h3{font-size:.82rem!important;line-height:1.1!important;}
.authority-ribbon span,.kpi-card p,.hero-kpi p{font-size:.7rem!important;line-height:1.25!important;}
.brand-stage-v37,.brand-stage,.hero-media,.hero-visual,.device-frame{max-width:min(100%,500px)!important;justify-self:center!important;}
.brand-stage-v37 img,.brand-stage img,.hero-media img,.hero-visual img{max-height:clamp(160px,28vh,260px)!important;object-fit:contain!important;}
.brand-stage-v37 .brand-stage-caption,.brand-stage-caption,.brand-version-compact{left:12px!important;right:12px!important;bottom:12px!important;padding:.42rem .5rem!important;min-height:auto!important;border-radius:12px!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.brand-version-compact strong,.brand-stage-caption strong{display:block!important;width:100%!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;text-align:center!important;font-size:clamp(.56rem,.68vw,.76rem)!important;line-height:1.08!important;letter-spacing:.01em!important;}

/* Secciones: ningún bloque debe parecer vacío ni desproporcionado */
.section,main>section,.page-section,.platform-section,.observatory-section,.lab-section{padding-top:var(--fit-pad)!important;padding-bottom:var(--fit-pad)!important;}
.section-head,.section-head-balanced,.split-heading,.page-head{margin-bottom:.72rem!important;gap:.8rem!important;align-items:end!important;}
.section-head h1,.section-head h2,.split-heading h1,.split-heading h2,.page-head h1,.page-head h2,section h1,section h2{font-size:clamp(1.55rem,2.55vw,2.85rem)!important;line-height:.98!important;letter-spacing:-.04em!important;margin:.12rem 0 .34rem!important;}
.section-head p,.split-heading p,.page-head p,section p{font-size:clamp(.82rem,.9vw,.98rem)!important;line-height:1.34!important;}
.eyebrow{min-height:26px!important;padding:.3rem .56rem!important;font-size:clamp(.62rem,.7vw,.78rem)!important;line-height:1.05!important;letter-spacing:.075em!important;}
.cards,.grid,.gateway-grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid{gap:.7rem!important;}
.card,.gateway-card,.feature-card,.resource-card,.lab-card,.panel,.module-card,.report-card,.workshop-card,.science-card,.contact-card{min-height:auto!important;padding:clamp(.68rem,1vw,.95rem)!important;border-radius:16px!important;}
.card h3,.gateway-card h3,.feature-card h3,.resource-card h3,.lab-card h3,.module-card h3,.panel h3{font-size:clamp(.92rem,1.02vw,1.13rem)!important;line-height:1.12!important;margin:0 0 .26rem!important;}
.card p,.gateway-card p,.feature-card p,.resource-card p,.lab-card p,.module-card p,.panel p{font-size:clamp(.75rem,.82vw,.9rem)!important;line-height:1.31!important;margin:.12rem 0!important;}
.split{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr)!important;gap:.9rem!important;align-items:start!important;}
.fact{grid-template-columns:minmax(115px,155px) 1fr!important;gap:.55rem!important;padding:.43rem 0!important;}
.fact b,.fact span{font-size:clamp(.78rem,.86vw,.96rem)!important;line-height:1.3!important;}
.feature-band{padding:1rem!important;border-radius:20px!important;gap:.8rem!important;}
.feature-band h2{font-size:clamp(1.55rem,2.7vw,2.9rem)!important;margin:.25rem 0 .45rem!important;}
.metrics{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
.metric{padding:.72rem!important;}
.metric strong{font-size:clamp(1rem,1.5vw,1.45rem)!important;}

/* Laboratorio y simuladores: controles + fenómeno físico juntos */
.lab-hero,.hero.lab-hero,.hero{padding-block:.75rem!important;}
.lab-hero .hero-grid,.hero-grid{gap:.82rem!important;}
.lab-hero h1,.hero h1{font-size:clamp(2rem,3.6vw,3.5rem)!important;line-height:.92!important;margin:.32rem 0 .45rem!important;}
.lab-hub-brand,.lab-brand-lockup{margin:.35rem 0!important;}
.lab-official-logo{width:min(100%,560px)!important;max-height:clamp(82px,16vh,142px)!important;padding:.32rem!important;object-fit:contain!important;border-radius:16px!important;background:#fff!important;}
.lab-hub-panel,.dashboard-preview-card{padding:.72rem!important;border-radius:18px!important;}
.hub-node,.mission-cell,.hero-status-card,.agent-card{min-height:auto!important;padding:.62rem .7rem!important;border-radius:14px!important;}
.hub-node strong,.mission-cell b,.hero-status-card strong,.agent-card h3{font-size:.92rem!important;line-height:1.16!important;}
.hub-node span,.mission-cell small,.hero-status-card span,.agent-card p{font-size:.76rem!important;line-height:1.28!important;}
.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:minmax(215px,288px) minmax(0,1fr)!important;gap:.62rem!important;align-items:start!important;}
.projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control{padding:.34rem .44rem!important;border-radius:12px!important;}
.projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label{font-size:.68rem!important;line-height:1.12!important;}
.projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button{min-height:28px!important;padding:.32rem .44rem!important;font-size:.68rem!important;border-radius:9px!important;}
.projectile-canvas,.projectile-graph,canvas[data-canvas],canvas[data-graph],#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas{min-height:clamp(165px,25vh,265px)!important;max-height:34vh!important;}
.readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card{padding:.3rem .36rem!important;min-height:36px!important;border-radius:10px!important;}
.readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span{font-size:.58rem!important;}
.readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong{font-size:.78rem!important;}

/* Observatorio NASA: dashboard científico compacto y legible */
.observatorio-hero,.observatorio-hero--advanced{min-height:calc(100svh - 110px)!important;display:flex!important;align-items:center!important;padding-block:.7rem!important;}
.observatorio-grid,.observatorio-grid--v9,.observatorio-hero .hero-grid{grid-template-columns:minmax(0,.96fr) minmax(350px,.78fr)!important;gap:.9rem!important;align-items:center!important;}
.observatorio-hero h1{font-size:clamp(avanzada5rem,3.7vw,3.45rem)!important;max-width:13.5ch!important;line-height:.92!important;margin:.32rem 0 .45rem!important;}
.observatorio-hero .hero-lead{font-size:.86rem!important;line-height:1.32!important;max-width:60ch!important;}
.hero-status-grid,.hero-status-grid--four{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.45rem!important;margin-top:.58rem!important;}
.dashboard-preview-card--lab{max-height:420px!important;overflow:hidden!important;}
.mission-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem!important;}
.preview-mini-metrics{gap:.5rem!important;margin-top:.52rem!important;}
.preview-note{font-size:.76rem!important;line-height:1.26!important;}
.observatory-lab-section{padding-top:.8rem!important;}
.dataset-tabs-panel{padding:.52rem!important;border-radius:16px!important;margin-bottom:.62rem!important;}
.dataset-tabs{gap:.35rem!important;}
.dataset-tab{min-height:28px!important;padding:.32rem .48rem!important;font-size:.68rem!important;border-radius:999px!important;}
.dashboard-actions{gap:.35rem!important;}
.observatory-layout,.observatory-layout--v9{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(245px,310px)!important;gap:.72rem!important;align-items:start!important;}
.observatory-main-panel,.observatory-side-panel .panel,.mini-panel,.data-table-panel{padding:.65rem!important;border-radius:16px!important;}
.observatory-panel-head{gap:.5rem!important;margin-bottom:.5rem!important;}
.observatory-panel-head h3,#chartTitle,#tableTitle{font-size:clamp(.95rem,1.1vw,1.22rem)!important;line-height:1.14!important;margin:.12rem 0!important;}
.chart-description{font-size:.78rem!important;line-height:1.26!important;margin:.22rem 0 .5rem!important;}
.badge-row,.summary-grid{gap:.32rem!important;}
.data-badge,.summary-item{padding:.3rem .42rem!important;border-radius:10px!important;font-size:.66rem!important;}
.summary-item strong{font-size:.86rem!important;}
.plotly-shell,.plotly-shell--v9,#observatoryChart{height:clamp(280px,46vh,430px)!important;min-height:280px!important;border-radius:16px!important;}
.chart-footnotes,.chart-footnotes a,#sourceTrace,#sourceTrace a,.source-live-panel p{overflow-wrap:anywhere!important;word-break:break-word!important;font-size:.68rem!important;line-height:1.25!important;}
.observatory-side-panel{display:grid!important;gap:.54rem!important;}
.observatory-side-panel .fact{grid-template-columns:76px 1fr!important;}
.table-wrap{max-height:clamp(260px,55vh,520px)!important;overflow:auto!important;border-radius:14px!important;}
.data-table{font-size:.78rem!important;border-collapse:separate!important;border-spacing:0!important;}
.data-table th{position:sticky!important;top:0!important;z-index:2!important;padding:.55rem .62rem!important;font-size:.74rem!important;}
.data-table td{padding:.42rem .62rem!important;font-size:.76rem!important;line-height:1.2!important;}
.agent-lab-section{padding-block:.9rem!important;}
.agent-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:.55rem!important;margin-bottom:.75rem!important;}
.agent-card span{width:30px!important;height:30px!important;font-size:.75rem!important;}
.observatory-consultation{grid-template-columns:minmax(0,1fr) minmax(300px,.86fr)!important;gap:.72rem!important;}
.scientific-assistant label,.question-label{color:#06152A!important;-webkit-text-fill-color:#06152A!important;font-weight:900!important;opacity:1!important;}
.scientific-assistant select,.scientific-assistant textarea{font-size:.8rem!important;line-height:1.28!important;border-radius:12px!important;}
.scientific-assistant textarea{min-height:112px!important;}
.question-chip-row{gap:.34rem!important;margin:.5rem 0!important;}
.question-chip{min-height:28px!important;padding:.3rem .48rem!important;font-size:.7rem!important;}
.assistant-response{color:#06152A!important;background:#F6FBFF!important;border:1px solid #CFE3F5!important;font-size:.78rem!important;line-height:1.32!important;padding:.65rem!important;}
.agent-report{display:grid!important;gap:.46rem!important;}
.agent-report-item{padding:.54rem .62rem!important;border-radius:12px!important;font-size:.78rem!important;line-height:1.32!important;}
.quote-box,.source-box{padding:.72rem!important;border-radius:14px!important;font-size:.82rem!important;line-height:1.36!important;overflow-wrap:anywhere!important;}

/* Footer limpio y no dominante */
.site-footer{padding-block:.75rem .5rem!important;}
.footer-grid{grid-template-columns:minmax(220px,1.05fr) repeat(3,minmax(130px,.72fr))!important;gap:1rem!important;margin-bottom:.72rem!important;}
.footer-logo,.site-footer img{max-height:56px!important;width:auto!important;max-width:210px!important;object-fit:contain!important;}
.site-footer h3{font-size:.78rem!important;margin-bottom:.25rem!important;}
.site-footer p,.site-footer a,.site-footer li,.site-footer span,.site-footer small{font-size:.68rem!important;line-height:1.26!important;margin:.08rem 0!important;}
.footer-bottom{padding-top:.4rem!important;margin-top:.45rem!important;font-size:.66rem!important;}
.accessibility-float,.a11y-toggle,[data-accessibility-toggle]{transform:scale(.86)!important;transform-origin:right bottom!important;}

@media (max-width:1100px){
  .hero-v37-grid,.hero-grid,.observatorio-grid,.observatory-layout,.observatory-consultation,.split,.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout{grid-template-columns:1fr!important;}
  .hero-v37-copy h1,.observatorio-hero h1{max-width:none!important;}
  .cards,.agent-grid,.authority-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:700px){
  .cards,.agent-grid,.authority-ribbon,.footer-grid{grid-template-columns:1fr!important;}
  .brand-version-compact strong{white-space:normal!important;font-size:.66rem!important;}
}

/* Tablas compactas y legibles en toda la plataforma */
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) {
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  font-size:clamp(.68rem,.74vw,.82rem) !important;
  line-height:1.18 !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) :where(th,td) {
  padding:.34rem .48rem !important;
  line-height:1.18 !important;
  vertical-align:middle !important;
  min-height:0 !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) th {
  font-size:clamp(.66rem,.72vw,.8rem) !important;
  line-height:1.12 !important;
  letter-spacing:.01em !important;
}
:where(table, .data-table, .table, .scientific-table, .dataset-table, .citation-table, .lab-table) td {
  font-size:clamp(.66rem,.72vw,.8rem) !important;
  line-height:1.18 !important;
}
:where(.table-wrap,.data-table-wrap,.dataset-table-wrap,.chart-table-wrap,.observatory-table-wrap,.scientific-table-wrap,.lab-table-wrap,.table-container) {
  max-height:min(54vh,520px) !important;
  overflow:auto !important;
  scrollbar-width:thin !important;
  border-radius:16px !important;
}
:where(.table-wrap,.data-table-wrap,.dataset-table-wrap,.chart-table-wrap,.observatory-table-wrap,.scientific-table-wrap,.lab-table-wrap,.table-container) table {
  min-width:720px !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) th,
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) td {
  padding:.28rem .44rem !important;
  font-size:clamp(.64rem,.68vw,.76rem) !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) tbody tr {
  height:30px !important;
}
:where(.observatory-table,.nasa-table,.power-table,#dataTable,#observatoryDataTable) thead th {
  position:sticky !important;
  top:0 !important;
  z-index:4 !important;
}

/* Densidad editorial global: títulos, tarjetas y espacios sin sobredimensionar */
:where(h1,.h1,.hero-title) {
  font-size:clamp(2rem,4.05vw,3.85rem) !important;
  line-height:.92 !important;
  letter-spacing:-.055em !important;
}
:where(h2,.h2,.section-title) {
  font-size:clamp(1.42rem,2.45vw,2.55rem) !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
}
:where(h3,.h3,.card-title) {
  font-size:clamp(.95rem,1.1vw,1.2rem) !important;
  line-height:1.12 !important;
}
:where(p,li,dd,dt,label,input,select,textarea,button,a) {
  line-height:1.34;
}
:where(.section,.section-light,.section-dark,.page-section,main > section) {
  padding-top:clamp(.85rem,2.1vh,1.75rem) !important;
  padding-bottom:clamp(.85rem,2.1vh,1.75rem) !important;
}
:where(.section-head,.section-head-balanced,.split-heading,.page-head) {
  margin-bottom:clamp(.45rem,1.1vh,.85rem) !important;
}
:where(.card,.feature-card,.resource-card,.science-card,.module-card,.lab-card,.sim-card,.simlab-card,.arquitectura evolutiva-card,.gateway-card,.panel,.report-card) {
  padding:clamp(.58rem,1vw,.92rem) !important;
  min-height:0 !important;
}
:where(.card p,.feature-card p,.resource-card p,.science-card p,.module-card p,.lab-card p,.sim-card p,.simlab-card p,.arquitectura evolutiva-card p,.gateway-card p,.panel p) {
  font-size:clamp(.72rem,.82vw,.9rem) !important;
  line-height:1.3 !important;
}
:where(.grid,.cards-grid,.feature-grid,.resource-grid,.modules-grid,.lab-grid,.gateway-grid,.observatory-grid) {
  gap:clamp(.55rem,1.1vw,.95rem) !important;
}

/* Observatorio y dashboards: menos altura muerta, más lectura en una pantalla */
:where(.observatory-hero,.observatory-dashboard,.mission-control,.observatorio-panel,.dashboard-panel,.agent-panel,.data-panel) {
  padding:clamp(.68rem,1.2vw,1rem) !important;
  border-radius:clamp(16px,2vw,24px) !important;
}
:where(.observatory-hero h1,.observatorio-hero h1,.dashboard-hero h1) {
  font-size:clamp(1.9rem,3.65vw,3.45rem) !important;
  line-height:.96 !important;
}
:where(.observatory-hero p,.observatorio-hero p,.dashboard-hero p,.agent-panel p,.data-panel p) {
  font-size:clamp(.76rem,.86vw,.94rem) !important;
  line-height:1.28 !important;
}
:where(.agent-card,.diagnostic-card,.trace-card,.module-diagnostic-card) {
  padding:.62rem .72rem !important;
  border-radius:16px !important;
}
:where(.agent-card p,.diagnostic-card p,.trace-card p,.module-diagnostic-card p) {
  font-size:clamp(.72rem,.82vw,.9rem) !important;
  line-height:1.28 !important;
}
:where(.trace-card,.source-card,.url-card) {
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
:where(.trace-card a,.source-card a,.url-card a) {
  font-size:clamp(.66rem,.74vw,.82rem) !important;
  line-height:1.22 !important;
}

/* Formularios y preguntas: contraste y compactación */
:where(input,select,textarea) {
  font-size:clamp(.76rem,.84vw,.92rem) !important;
  padding:.5rem .62rem !important;
}
:where(textarea) {
  min-height:clamp(80px,14vh,130px) !important;
}
:where(.form-grid,.controls-grid,.filters-grid) {
  gap:.55rem !important;
}
:where(.btn,.button,button,.mini-btn,.text-link) {
  min-height:32px !important;
  padding:.45rem .68rem !important;
  font-size:clamp(.7rem,.78vw,.88rem) !important;
  line-height:1.1 !important;
}

/* Laboratorio y simuladores: controles + fenómeno visibles al mismo tiempo */
@media (min-width:1000px) {
  :where(.projectile-layout,.kinematics-layout,.energy-layout,.circular-layout,.wave-layout,.interference-layout,.doppler-layout,.em-layout,.field-layout,.circuit-layout,.magnetic-layout,.induction-layout,.optics-layout,.mirror-layout,.refraction-layout) {
    grid-template-columns:minmax(205px,285px) minmax(0,1fr) !important;
    gap:.58rem !important;
  }
  :where(.projectile-control,.kinematics-control,.energy-control,.circular-control,.wave-control,.interference-control,.doppler-control,.em-control,.field-control,.circuit-control,.magnetic-control,.induction-control,.optics-control,.mirror-control,.refraction-control) {
    padding:.34rem .44rem !important;
    border-radius:12px !important;
  }
  :where(.projectile-control label,.kinematics-control label,.energy-control label,.circular-control label,.wave-control label,.interference-control label,.doppler-control label,.em-control label,.field-control label,.circuit-control label,.magnetic-control label,.induction-control label,.optics-control label,.mirror-control label,.refraction-control label) {
    font-size:.68rem !important;
    line-height:1.08 !important;
  }
  :where(.projectile-buttons,.kinematics-buttons,.energy-buttons,.circular-buttons,.wave-actions,.interference-actions,.doppler-actions,.em-actions,.field-actions,.circuit-actions,.magnetic-actions,.induction-actions,.optics-actions,.mirror-actions,.refraction-actions,.lab-actions) {
    gap:.34rem !important;
    margin-top:.45rem !important;
  }
  :where(.projectile-buttons .btn,.kinematics-buttons .btn,.energy-buttons .btn,.circular-buttons .btn,.wave-actions button,.interference-actions button,.doppler-actions button,.em-actions button,.field-actions button,.circuit-actions button,.magnetic-actions button,.induction-actions button,.optics-actions button,.mirror-actions button,.refraction-actions button,.lab-actions button) {
    min-height:30px !important;
    padding:.36rem .5rem !important;
    font-size:.72rem !important;
  }
  :where(canvas[data-canvas],canvas[data-graph],.projectile-canvas,.projectile-graph,#reflectionRefractionCanvas,#sphericalMirrorCanvas,#thinLensCanvas) {
    min-height:clamp(185px,29vh,305px) !important;
  }
  :where(.readout,.projectile-readout .readout,.mirror-readout-card,.refraction-readout-card,.optics-readout-card) {
    min-height:40px !important;
    padding:.34rem .42rem !important;
  }
  :where(.readout strong,.mirror-readout-card strong,.refraction-readout-card strong,.optics-readout-card strong) {
    font-size:.78rem !important;
  }
  :where(.readout span,.mirror-readout-card span,.refraction-readout-card span,.optics-readout-card span) {
    font-size:.56rem !important;
  }
}

/* Eliminar visualmente cualquier residuo funcionalmente vacío de arquitectura evolutiva futuro */
:where(.badge,.simlab-badge,.eyebrow):empty {
  display:none !important;
}
:where([data-status="next"],[data-status="coming-soon"],.coming-soon,.next-card,.future-card) {
  display:none !important;
}
