/* Compartido por index.html, carta-natal.html, revolucion-solar.html,
   correccion-hora-natal.html y privacidad.html: reset, cielo estrellado,
   navegacion y footer. Los estilos propios de cada pagina (layout del
   hero, tipografia de titulos, tarjetas de contenido) quedan inline en
   cada HTML. */

:root {
  color-scheme: dark;
}
* { box-sizing: border-box; }

.sky {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.stars-small,
.stars-medium,
.stars-big {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  border-radius: 50%;
  background: transparent;
}
.stars-small { box-shadow: 88.59vw 81.76vh 0 0 rgba(255,255,255,0.54), 76.98vw 56.19vh 0 0 rgba(255,255,255,0.47), 59.59vw 5.39vh 0 0 rgba(255,255,255,0.46), 78.08vw 71.03vh 0 0 rgba(255,255,255,0.35), 74.12vw 94.76vh 0 0 rgba(255,255,255,0.55), 89.37vw 18.27vh 0 0 rgba(255,255,255,0.29), 65.49vw 83.21vh 0 0 rgba(255,255,255,0.30), 44.17vw 31.25vh 0 0 rgba(255,255,255,0.40), 67.06vw 4.06vh 0 0 rgba(255,255,255,0.41), 75.82vw 43.30vh 0 0 rgba(255,255,255,0.47), 12.14vw 90.65vh 0 0 rgba(255,255,255,0.39), 17.66vw 87.76vh 0 0 rgba(255,255,255,0.31), 34.07vw 76.32vh 0 0 rgba(255,255,255,0.34), 3.02vw 97.97vh 0 0 rgba(255,255,255,0.31), 66.18vw 94.39vh 0 0 rgba(255,255,255,0.34), 65.23vw 7.24vh 0 0 rgba(255,255,255,0.27), 41.82vw 78.20vh 0 0 rgba(255,255,255,0.51), 37.62vw 48.93vh 0 0 rgba(255,255,255,0.30), 94.31vw 61.09vh 0 0 rgba(255,255,255,0.35), 53.54vw 56.36vh 0 0 rgba(255,255,255,0.49), 56.98vw 76.39vh 0 0 rgba(255,255,255,0.54), 46.30vw 62.85vh 0 0 rgba(255,255,255,0.34), 63.17vw 57.42vh 0 0 rgba(255,255,255,0.31), 49.25vw 1.76vh 0 0 rgba(255,255,255,0.26), 46.21vw 37.53vh 0 0 rgba(255,255,255,0.33), 95.72vw 6.41vh 0 0 rgba(255,255,255,0.34), 39.44vw 50.05vh 0 0 rgba(255,255,255,0.42), 19.04vw 10.13vh 0 0 rgba(255,255,255,0.39), 76.19vw 28.31vh 0 0 rgba(255,255,255,0.38), 52.55vw 46.26vh 0 0 rgba(255,255,255,0.50), 89.78vw 5.64vh 0 0 rgba(255,255,255,0.29), 29.57vw 48.13vh 0 0 rgba(255,255,255,0.48), 13.57vw 15.38vh 0 0 rgba(255,255,255,0.28), 83.45vw 49.07vh 0 0 rgba(255,255,255,0.42), 80.87vw 90.87vh 0 0 rgba(255,255,255,0.42), 47.51vw 82.42vh 0 0 rgba(255,255,255,0.42), 25.02vw 65.42vh 0 0 rgba(255,255,255,0.53), 55.09vw 81.52vh 0 0 rgba(255,255,255,0.28), 79.36vw 72.38vh 0 0 rgba(255,255,255,0.40), 39.52vw 79.68vh 0 0 rgba(255,255,255,0.41), 77.22vw 45.09vh 0 0 rgba(255,255,255,0.44), 34.13vw 10.26vh 0 0 rgba(255,255,255,0.31), 51.93vw 16.86vh 0 0 rgba(255,255,255,0.44), 72.27vw 6.57vh 0 0 rgba(255,255,255,0.37), 36.82vw 21.05vh 0 0 rgba(255,255,255,0.51), 87.26vw 1.96vh 0 0 rgba(255,255,255,0.39), 65.24vw 90.97vh 0 0 rgba(255,255,255,0.44), 12.43vw 29.76vh 0 0 rgba(255,255,255,0.47), 70.50vw 59.97vh 0 0 rgba(255,255,255,0.33), 81.12vw 23.29vh 0 0 rgba(255,255,255,0.42), 85.95vw 61.38vh 0 0 rgba(255,255,255,0.28), 26.66vw 15.90vh 0 0 rgba(255,255,255,0.34), 44.92vw 28.53vh 0 0 rgba(255,255,255,0.40), 82.39vw 40.92vh 0 0 rgba(255,255,255,0.31), 80.74vw 94.75vh 0 0 rgba(255,255,255,0.49), 81.64vw 31.68vh 0 0 rgba(255,255,255,0.46), 26.75vw 93.38vh 0 0 rgba(255,255,255,0.34), 57.74vw 21.51vh 0 0 rgba(255,255,255,0.26), 16.27vw 57.75vh 0 0 rgba(255,255,255,0.35), 44.02vw 43.75vh 0 0 rgba(255,255,255,0.43), 82.65vw 21.19vh 0 0 rgba(255,255,255,0.33), 73.82vw 31.73vh 0 0 rgba(255,255,255,0.46), 59.21vw 17.04vh 0 0 rgba(255,255,255,0.37), 80.47vw 18.79vh 0 0 rgba(255,255,255,0.46), 79.29vw 78.64vh 0 0 rgba(255,255,255,0.27), 97.31vw 38.25vh 0 0 rgba(255,255,255,0.52), 76.22vw 39.30vh 0 0 rgba(255,255,255,0.44), 57.67vw 23.45vh 0 0 rgba(255,255,255,0.44), 83.34vw 32.37vh 0 0 rgba(255,255,255,0.37), 94.88vw 7.73vh 0 0 rgba(255,255,255,0.33), 33.97vw 91.19vh 0 0 rgba(255,255,255,0.46), 42.28vw 24.42vh 0 0 rgba(255,255,255,0.29), 61.46vw 49.08vh 0 0 rgba(255,255,255,0.52), 33.19vw 6.84vh 0 0 rgba(255,255,255,0.40), 99.13vw 39.37vh 0 0 rgba(255,255,255,0.35), 0.95vw 88.34vh 0 0 rgba(255,255,255,0.48), 80.32vw 95.41vh 0 0 rgba(255,255,255,0.33), 78.90vw 2.25vh 0 0 rgba(255,255,255,0.33), 38.36vw 50.52vh 0 0 rgba(255,255,255,0.28), 0.37vw 81.90vh 0 0 rgba(255,255,255,0.33), 6.59vw 38.04vh 0 0 rgba(255,255,255,0.30), 98.69vw 60.62vh 0 0 rgba(255,255,255,0.31), 18.34vw 91.30vh 0 0 rgba(255,255,255,0.48), 7.20vw 71.75vh 0 0 rgba(255,255,255,0.34), 6.94vw 43.63vh 0 0 rgba(255,255,255,0.32), 59.22vw 48.62vh 0 0 rgba(255,255,255,0.54), 5.72vw 28.37vh 0 0 rgba(255,255,255,0.53), 88.10vw 24.56vh 0 0 rgba(255,255,255,0.40), 48.02vw 78.85vh 0 0 rgba(255,255,255,0.30), 27.16vw 32.91vh 0 0 rgba(255,255,255,0.33), 67.18vw 28.41vh 0 0 rgba(255,255,255,0.33), 9.74vw 7.00vh 0 0 rgba(255,255,255,0.42), 96.52vw 10.37vh 0 0 rgba(255,255,255,0.43), 69.17vw 80.17vh 0 0 rgba(255,255,255,0.48), 69.37vw 58.07vh 0 0 rgba(255,255,255,0.39), 38.79vw 85.74vh 0 0 rgba(255,255,255,0.30), 19.08vw 4.85vh 0 0 rgba(255,255,255,0.32), 51.92vw 57.06vh 0 0 rgba(255,255,255,0.28), 78.98vw 84.03vh 0 0 rgba(255,255,255,0.31), 41.91vw 27.45vh 0 0 rgba(255,255,255,0.53), 82.39vw 28.96vh 0 0 rgba(255,255,255,0.46), 42.08vw 30.24vh 0 0 rgba(255,255,255,0.54), 62.65vw 72.96vh 0 0 rgba(255,255,255,0.28), 85.77vw 98.78vh 0 0 rgba(255,255,255,0.41), 53.10vw 49.37vh 0 0 rgba(255,255,255,0.46), 6.32vw 66.39vh 0 0 rgba(255,255,255,0.25), 87.07vw 91.51vh 0 0 rgba(255,255,255,0.51), 37.04vw 66.41vh 0 0 rgba(255,255,255,0.45), 97.89vw 32.73vh 0 0 rgba(255,255,255,0.52), 11.29vw 32.17vh 0 0 rgba(255,255,255,0.52); }
.stars-medium { box-shadow: 18.90vw 6.36vh 0 0 rgba(255,255,255,0.55), 62.39vw 97.00vh 0 0 rgba(255,255,255,0.85), 83.42vw 45.73vh 0 0 rgba(255,255,255,0.82), 23.67vw 94.24vh 0 0 rgba(255,255,255,0.61), 24.80vw 84.18vh 0 0 rgba(255,255,255,0.71), 28.47vw 57.22vh 0 0 rgba(255,255,255,0.56), 76.36vw 55.03vh 0 0 rgba(255,255,255,0.67), 10.13vw 19.27vh 0 0 rgba(255,255,255,0.82), 71.44vw 91.62vh 0 0 rgba(255,255,255,0.82), 1.97vw 13.74vh 0 0 rgba(255,255,255,0.80), 43.37vw 27.29vh 0 0 rgba(255,255,255,0.57), 37.32vw 73.94vh 0 0 rgba(255,255,255,0.63), 25.49vw 95.36vh 0 0 rgba(255,255,255,0.76), 49.53vw 33.22vh 0 0 rgba(255,255,255,0.76), 51.12vw 29.18vh 0 0 rgba(255,255,255,0.78), 71.93vw 24.90vh 0 0 rgba(255,255,255,0.62), 53.61vw 62.06vh 0 0 rgba(255,255,255,0.76), 37.84vw 82.33vh 0 0 rgba(255,255,255,0.66), 66.28vw 27.36vh 0 0 rgba(255,255,255,0.82), 80.61vw 38.83vh 0 0 rgba(255,255,255,0.67), 22.47vw 58.40vh 0 0 rgba(255,255,255,0.72), 33.56vw 27.73vh 0 0 rgba(255,255,255,0.75), 55.52vw 88.51vh 0 0 rgba(255,255,255,0.57), 30.02vw 82.38vh 0 0 rgba(255,255,255,0.67), 98.75vw 51.02vh 0 0 rgba(255,255,255,0.50), 3.35vw 36.10vh 0 0 rgba(255,255,255,0.55), 85.49vw 79.28vh 0 0 rgba(255,255,255,0.62), 86.85vw 22.23vh 0 0 rgba(255,255,255,0.51), 49.09vw 6.62vh 0 0 rgba(255,255,255,0.70), 13.88vw 74.10vh 0 0 rgba(255,255,255,0.65), 22.87vw 66.36vh 0 0 rgba(255,255,255,0.50), 17.75vw 25.05vh 0 0 rgba(255,255,255,0.75), 40.18vw 91.84vh 0 0 rgba(255,255,255,0.85), 31.81vw 8.40vh 0 0 rgba(255,255,255,0.58), 34.33vw 16.39vh 0 0 rgba(255,255,255,0.80), 89.39vw 57.49vh 0 0 rgba(255,255,255,0.60), 38.67vw 73.35vh 0 0 rgba(255,255,255,0.83), 23.82vw 5.66vh 0 0 rgba(255,255,255,0.58), 86.53vw 96.06vh 0 0 rgba(255,255,255,0.70), 68.44vw 86.23vh 0 0 rgba(255,255,255,0.63), 11.23vw 17.84vh 0 0 rgba(255,255,255,0.52), 56.58vw 32.54vh 0 0 rgba(255,255,255,0.52), 46.13vw 72.02vh 0 0 rgba(255,255,255,0.77), 21.56vw 77.93vh 0 0 rgba(255,255,255,0.72), 24.54vw 91.95vh 0 0 rgba(255,255,255,0.52), 96.74vw 55.73vh 0 0 rgba(255,255,255,0.65), 79.81vw 10.94vh 0 0 rgba(255,255,255,0.57), 15.43vw 99.26vh 0 0 rgba(255,255,255,0.76), 45.26vw 62.35vh 0 0 rgba(255,255,255,0.69), 10.97vw 41.87vh 0 0 rgba(255,255,255,0.84), 54.23vw 79.50vh 0 0 rgba(255,255,255,0.65), 16.70vw 16.89vh 0 0 rgba(255,255,255,0.64), 40.05vw 95.72vh 0 0 rgba(255,255,255,0.58), 65.94vw 57.65vh 0 0 rgba(255,255,255,0.63), 36.05vw 44.35vh 0 0 rgba(255,255,255,0.58); }
.stars-big { box-shadow: 92.04vw 97.48vh 0 0 rgba(255,255,255,0.84), 75.58vw 58.72vh 0 0 rgba(255,255,255,0.95), 28.32vw 69.72vh 0 0 rgba(255,255,255,0.85), 91.95vw 72.16vh 0 0 rgba(255,255,255,0.84), 8.13vw 7.71vh 0 0 rgba(255,255,255,0.98), 18.51vw 18.02vh 0 0 rgba(255,255,255,0.96), 64.78vw 44.76vh 0 0 rgba(255,255,255,0.87), 88.59vw 29.61vh 0 0 rgba(255,255,255,1.00), 31.62vw 14.22vh 0 0 rgba(255,255,255,0.82), 35.53vw 40.27vh 0 0 rgba(255,255,255,0.81), 41.98vw 49.43vh 0 0 rgba(255,255,255,0.86), 92.64vw 83.35vh 0 0 rgba(255,255,255,0.86), 29.19vw 83.70vh 0 0 rgba(255,255,255,0.89), 93.28vw 92.16vh 0 0 rgba(255,255,255,0.83), 26.58vw 50.39vh 0 0 rgba(255,255,255,0.96), 70.76vw 0.05vh 0 0 rgba(255,255,255,0.97), 67.49vw 82.81vh 0 0 rgba(255,255,255,0.94), 58.44vw 40.35vh 0 0 rgba(255,255,255,0.95); }
.twinkle-star {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.85);
  animation-name: twinkle;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
@keyframes twinkle {
  0%, 100% { opacity: 0.25; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.6); }
}
.constellations {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.constellations line {
  stroke: rgba(199, 182, 255, 0.4);
  stroke-width: 1.5;
  stroke-linecap: round;
}
.constellations circle {
  fill: rgba(255, 255, 255, 0.9);
}

.site-footer {
  position: relative;
  z-index: 1;
  margin-top: 20px;
  padding-top: 10px;
  padding-bottom: 2.4em;
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: #cbd5e1;
  opacity: 0.65;
}
.site-footer a {
  color: inherit;
  text-decoration: underline;
}
.site-footer a:hover {
  opacity: 0.85;
}

.topnav {
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 5;
}
.brand {
  display: none;
}
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 0;
  background: rgba(5, 6, 15, 0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  cursor: pointer;
}
.hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: #f4f2ff;
  border-radius: 1px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.nav-menu {
  position: absolute;
  top: 50px;
  left: 0;
  display: flex;
  flex-direction: column;
  min-width: 160px;
  padding: 8px;
  background: rgba(5, 6, 15, 0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.nav-menu.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.nav-menu a {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #f4f2ff;
  text-decoration: none;
}
.nav-menu a:hover {
  background: rgba(255, 255, 255, 0.08);
}
.nav-menu a[aria-current="page"] {
  color: #f3b56a;
}
@media (min-width: 761px) {
  body {
    padding-top: 78px !important;
  }
  .topnav {
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 28px;
    background: rgba(5, 6, 15, 0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .brand {
    display: inline-block;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    background: linear-gradient(120deg, #f6d98f, #d8b4fe 60%, #93c5fd);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-decoration: none;
  }
  .hamburger {
    display: none;
  }
  .nav-menu {
    position: static;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 0;
    background: none;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    box-shadow: none;
  }
  .nav-menu a {
    padding: 8px 12px;
  }
}

/* Boton "Agendar" y marco de imagen ilustrativa: usados en carta-natal.html,
   revolucion-solar.html y correccion-hora-natal.html (no en index.html). */
.card-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 24px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1a1147;
  text-decoration: none;
  border-radius: 999px;
  background: linear-gradient(120deg, #f6d98f, #f3b56a);
  box-shadow: 0 6px 18px rgba(246, 217, 143, 0.2);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card-btn svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.card-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(246, 217, 143, 0.3);
}
.service-image {
  margin: 4px 0 18px;
  border-radius: 14px;
  overflow: hidden;
  background: #05060f;
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4);
}
.service-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Layout de "pagina de servicio" (carta-natal.html, revolucion-solar.html,
   correccion-hora-natal.html, privacidad.html): titulo en degradado +
   bloque de texto a ancho de columna. main.card/.card queda inline por
   pagina porque cada una usa un max-width distinto. */
.page-content {
  width: 100%;
  text-align: left;
}
.back-link {
  display: inline-block;
  margin-bottom: 18px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #cbd5e1;
  text-decoration: none;
  opacity: 0.8;
}
.back-link:hover {
  opacity: 1;
  color: #f3b56a;
}
.page-title {
  margin: 0 0 6px;
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  font-weight: 600;
  letter-spacing: 0.05em;
  background: linear-gradient(120deg, #f6d98f, #d8b4fe 60%, #93c5fd);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.page-subtitle {
  margin: 0 0 18px;
  font-size: 1.05rem;
  font-weight: 600;
  color: #f3b56a;
}
.page-content p {
  margin: 0 0 14px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #cbd5e1;
  opacity: 0.92;
}
.page-content h2 {
  margin: 22px 0 8px;
  font-size: 1.1rem;
  font-weight: 600;
  color: #f4f2ff;
}
.page-content ul {
  margin: 0 0 14px;
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.page-content li {
  font-size: 0.92rem;
  line-height: 1.55;
  color: #cbd5e1;
  opacity: 0.92;
}
.page-content li strong {
  color: #f4f2ff;
  opacity: 1;
}
.page-cta {
  margin-top: 20px !important;
  font-weight: 600;
  color: #f3b56a !important;
  opacity: 1 !important;
}
.page-btn-wrap {
  text-align: center;
  margin-top: 10px;
}
