/* La identidad del planetario se comparte en todas las páginas públicas. */
:root {
  --nova-font-text:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --nova-font-heading:"Space Grotesk",Inter,sans-serif;
  --nova-background:#0a0a0b;
  --nova-muted:#94a3b8;
  --nova-accent:#047ccc;
  --nova-card-background:rgba(255,255,255,.02);
  --nova-card-border:rgba(255,255,255,.06);
}
body { font-family:var(--nova-font-text); }
h1,h2,h3,h4,h5,h6 { font-family:var(--nova-font-heading); }
button,input,select,textarea { font-family:inherit; }

/* Una sola navegación para la portada, los servicios y el programa. */
.nova-planet-nav { position:fixed; inset:0 0 auto; z-index:50; padding:16px 0; margin:0; border:0; background:transparent; color:#94a3b8; font:400 14px/20px var(--nova-font-text); transition:background .5s,backdrop-filter .5s; }
.nova-planet-nav.glass-effect { background:rgba(10,10,11,.82); backdrop-filter:blur(20px); }
.nova-planet-nav > div { max-width:1280px; margin:0 auto; padding:0 32px; }
.nova-planet-nav > div > div:first-child { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.nova-planet-nav a { color:#94a3b8; text-decoration:none; font-size:14px; line-height:20px; transition:color .3s,background .3s,border-color .3s; }
.nova-planet-menu > a { white-space:nowrap; }
.nova-planet-nav a[aria-current="page"] { color:#c4e8ff; }
.nova-planet-nav a:hover { color:#fff; }
.nova-planet-nav > div > div > a { display:flex; align-items:center; flex-shrink:0; }
.nova-planet-nav > div > div > a img { display:block; width:auto; height:32px; max-width:100%; object-fit:contain; flex-shrink:0; transition:transform .25s ease; }
.nova-planet-nav > div > div > a:hover img { transform:translateY(-1px); }
.nova-planet-menu { display:flex; align-items:center; gap:24px; }
.nova-planet-nav a[href="/proteccion-datos/"] { color:#84cfff; }
.nova-planet-nav a[href="/proteccion-datos/"]:hover { color:#fff; }
.nova-planet-nav > div > div > div:last-child { display:flex; align-items:center; gap:12px; }
.nova-planet-nav button { cursor:pointer; font-family:inherit; margin:0; }
.nova-planet-nav > div > div > div:last-child > button:first-child { color:#94a3b8; border:1px solid #ffffff1a; background:transparent; border-radius:999px; padding:6px 12px; font-size:12px; line-height:16px; font-weight:500; letter-spacing:.025em; }
.nova-planet-nav > div > div > div:last-child > a { display:inline-flex; color:#fff; border:1px solid #ffffff33; border-radius:999px; padding:8px 20px; font-weight:500; }
.nova-planet-nav > div > div > div:last-child > a:hover { background:#fff; color:#0f172a; }
.nova-planet-menu-toggle { display:none; padding:10px; margin-left:0!important; border:0; border-radius:8px; background:transparent; color:#94a3b8; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
.nova-planet-menu-toggle svg { display:block; width:24px; height:24px; }
.nova-planet-menu-panel { display:none; flex-direction:column; align-items:stretch; gap:4px; margin-top:16px; padding:12px 0 0; border-top:1px solid #ffffff0f; max-height:calc(100svh - 112px); overflow-y:auto; overscroll-behavior:contain; }
.nova-planet-menu-panel > a { display:flex; align-items:center; padding:12px 14px; min-height:44px; border-radius:8px; }
.nova-planet-menu-panel > a:hover,.nova-planet-menu-panel > a[aria-current="page"] { background:#047ccc14; }
.nova-planet-menu-panel > a:last-child { display:none; }
.nova-planet-nav a:focus-visible,.nova-planet-nav button:focus-visible,.nova-program-nav a:focus-visible { outline:2px solid #84cfff; outline-offset:5px; }

/* La landing comercial conserva sus secciones y comparte la atmósfera del sitio. */
body.nova-planet-product {
  background:var(--nova-background); font-family:var(--nova-font-text); line-height:1.5;
  --titulo:var(--nova-font-heading); --sans:var(--nova-font-text);
  --azul:var(--nova-accent); --suave:var(--nova-muted);
  --panel:var(--nova-card-background); --borde:var(--nova-card-border);
}
.nova-planet-product .envoltura { max-width:1344px; padding:0 32px; }
.nova-planet-product h1,.nova-planet-product h2 { font-family:var(--nova-font-heading); font-size:36px; line-height:1.25; letter-spacing:-.025em; font-weight:700; }
.nova-planet-product h3 { font-family:var(--nova-font-heading); font-size:18px; line-height:28px; letter-spacing:normal; font-weight:600; }
.nova-planet-product h1 em,.nova-planet-product h2 em { color:var(--nova-muted); }
.nova-planet-product .kicker { color:var(--nova-accent); font-size:14px; letter-spacing:.1em; margin-bottom:12px; }
.nova-planet-product .lead { font-size:18px; line-height:1.625; margin-top:24px; }
.nova-planet-product .p { font-size:14px; line-height:1.625; }
.nova-planet-product .tarjeta { border-radius:16px; transition:border-color .5s; }
.nova-planet-product .tarjeta:hover { border-color:rgba(255,255,255,.1); }
.nova-planet-product .icono,.nova-planet-product .num { border-radius:8px; color:var(--nova-accent); }
.nova-planet-product .btn { font-family:var(--nova-font-text); font-size:14px; padding:12px 24px; }
.nova-planet-product .btn-lleno { box-shadow:none; }
.nova-planet-product .enlace { font-size:14px; }
.nova-planet-product summary { font-family:var(--nova-font-heading); }
.nova-planet-product > main,.nova-planet-product > footer { position:relative; z-index:2; }
.nova-planet-product > main { padding-top:var(--nova-header-height,76px); }
.nova-program-nav { position:sticky; top:var(--nova-header-height,76px); z-index:20; display:flex; flex-wrap:wrap; gap:4px 16px; max-width:1280px; margin:0 auto; padding:6px 24px; border-top:1px solid #ffffff0d; border-bottom:1px solid #ffffff0d; background:#0a0a0bf5; backdrop-filter:blur(16px); }
.nova-program-nav a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 10px; flex-shrink:0; color:#94a3b8; font-size:13px; text-decoration:none; border-bottom:2px solid transparent; }
.nova-program-nav a:hover { color:#fff; }
.nova-program-nav a[aria-current="location"] { color:#a7dcff; border-bottom-color:#047ccc; }
.nova-planet-product .hero { padding-top:72px; }
.nova-planet-product .hero .envoltura { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); }
.nova-planet-product .dos { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.nova-planet-product .hero .envoltura > *,.nova-planet-product .dos > * { min-width:0; }
.nova-planet-product .captura { width:100%; max-width:100%; height:auto; }
.nova-planet-product section[id],.nova-planet-product #contact { scroll-margin-top:calc(var(--nova-header-height,76px) + var(--nova-program-height,58px) + 16px); }

/* Cambia el contenido mientras el menú y el universo mantienen su estado. */
main { view-transition-name:nova-content; }
.nova-planet-nav { view-transition-name:nova-menu; }
astro-island[component-url*="/OrbitalScene."] > div { view-transition-name:nova-universe; }
::view-transition-old(root),::view-transition-new(root),
::view-transition-old(nova-menu),::view-transition-new(nova-menu),
::view-transition-old(nova-universe),::view-transition-new(nova-universe) { animation:none; mix-blend-mode:normal; }
::view-transition-old(nova-content) { animation:nova-content-out .12s ease-in both; }
::view-transition-new(nova-content) { animation:nova-content-in .18s ease-out both; }
@keyframes nova-content-out { to { opacity:0; transform:translateY(-4px); } }
@keyframes nova-content-in { from { opacity:0; transform:translateY(6px); } }

@media(max-width:1100px) {
  .nova-planet-menu { display:none; }
  .nova-planet-menu-toggle { display:inline-flex; }
  .nova-planet-menu-panel { display:flex; }
  body.nova-menu-open { overflow:hidden; }
  .nova-planet-nav:has(.nova-planet-menu-panel) { background:rgba(10,10,11,.98); }
}
@media(min-width:640px) {
  .nova-planet-product h1,.nova-planet-product h2 { font-size:48px; }
}
@media(max-width:960px) {
  .nova-planet-product .hero .envoltura,.nova-planet-product .dos { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:640px) {
  .nova-planet-nav > div { padding:0 24px; }
  .nova-planet-nav > div > div > div:last-child > a { display:none; }
  .nova-planet-menu-panel > a:last-child { display:block; }
  .nova-planet-nav > div > div:first-child { gap:12px; }
  .nova-program-nav { padding:6px 14px; gap:0; }
  .nova-program-nav a { flex:1 1 auto; padding:0 8px; }
  .nova-planet-product .envoltura { padding:0 24px; }
  .nova-planet-product .hero { padding-top:48px; }
}
@media(max-width:360px) {
  .nova-program-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) {
  .nova-planet-nav,.nova-planet-nav a { transition:none; }
  .nova-planet-nav > div > div > a img { transition:none; transform:none; }
  ::view-transition-old(nova-content),::view-transition-new(nova-content) { animation:none; }
}
