/*
 * components.css — shared header, footer, and button components.
 *
 * Every page (index.html, aviso-legal.html, privacidad.html) must copy the
 * markup below VERBATIM into its <body>, right after the opening tag for the
 * header and right before </body> for the footer. Do not re-derive it, do not
 * rename classes — this file's selectors depend on these exact class names.
 *
 * Pages must load, in <head>, in this order:
 *   <link rel="icon" href="favicon.ico">
 *   <link rel="stylesheet" href="css/fonts.css">
 *   <link rel="stylesheet" href="css/variables.css">
 *   <link rel="stylesheet" href="css/base.css">
 *   <link rel="stylesheet" href="css/components.css">
 *
 * --- SITE HEADER (copy verbatim, right after <body>) -----------------------
 *
 * <header class="site-header">
 *   <div class="container site-header__inner">
 *     <a class="site-logo" href="index.html">
 *       <img class="site-logo__mark" src="images/logo-mark.png" alt="" width="120" height="120">
 *       <span class="site-logo__text">Mi Astróloga de Cabecera</span>
 *     </a>
 *     <nav class="site-nav" aria-label="Navegación principal">
 *       <ul class="site-nav__list">
 *         <li><a href="index.html">Inicio</a></li>
 *         <li><a href="index.html#servicios">Servicios</a></li>
 *         <li><a href="index.html#contacto">Contacto</a></li>
 *       </ul>
 *     </nav>
 *     <a class="site-header__social" href="https://instagram.com/miastrologacabecera"
 *        target="_blank" rel="noopener" aria-label="Instagram: @miastrologacabecera">
 *       <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 *            stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
 *         <rect x="2" y="2" width="20" height="20" rx="5"></rect>
 *         <circle cx="12" cy="12" r="4"></circle>
 *         <circle cx="17.5" cy="6.5" r="1" fill="currentColor" stroke="none"></circle>
 *       </svg>
 *     </a>
 *     <a class="btn btn-alt site-header__cta"
 *        href="https://instagram.com/miastrologacabecera"
 *        target="_blank" rel="noopener">Reserva tu sesión</a>
 *   </div>
 * </header>
 *
 * The header/footer band uses a dark gold tone with white text (see
 * --color-header-bg / --color-header-text in variables.css) — deliberately
 * different from the rest of the page's dark navy surface. The header CTA
 * uses btn-alt (a navy-on-cream scheme) rather than btn-primary; the band is
 * now darker than the gold CTA tone, so btn-primary would also read here if
 * that contrast is ever preferred.
 *
 * --- SITE FOOTER (copy verbatim, right before </body>) ---------------------
 *
 * <footer class="site-footer">
 *   <div class="container site-footer__inner">
 *     <div class="site-footer__brand">
 *       <p class="site-footer__name">Mi Astróloga de Cabecera</p>
 *       <p class="site-footer__tagline">Astrología psicológica y gemoterapia</p>
 *     </div>
 *     <nav class="site-footer__legal" aria-label="Enlaces legales">
 *       <ul>
 *         <li><a href="aviso-legal.html">Aviso legal</a></li>
 *         <li><a href="privacidad.html">Política de privacidad</a></li>
 *       </ul>
 *     </nav>
 *     <a class="site-footer__social"
 *        href="https://instagram.com/miastrologacabecera"
 *        target="_blank" rel="noopener">Instagram: @miastrologacabecera</a>
 *   </div>
 *   <p class="site-footer__copy">&copy; 2026 Mi Astróloga de Cabecera. Todos los derechos reservados.</p>
 * </footer>
 *
 * --- CTA / "Reserva tu sesión" BUTTONS elsewhere on the page ---------------
 *
 * Reuse the same button anywhere a service tier or hero section needs a
 * call to action — it always points to the Instagram profile, never to an
 * on-site form:
 *
 * <a class="btn btn-primary" href="https://instagram.com/miastrologacabecera"
 *    target="_blank" rel="noopener">Reserva tu sesión</a>
 *
 * A lower-emphasis variant (e.g. a secondary link near a primary CTA) is
 * available as btn-secondary; same markup, class swapped. A navy-on-cream
 * variant for use on gold surfaces (currently just the header CTA) is
 * available as btn-alt; same markup, class swapped.
 */

.container {
  width: 100%;
  max-width: 72rem;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

/* Buttons — "Reserva tu sesión" / Instagram CTAs */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.75em 1.75em;
  border: 2px solid transparent;
  border-radius: 999px;
  font-family: var(--font-body, 'Nunito', sans-serif);
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.1s ease;
}

.btn:active {
  transform: translateY(1px);
}

.btn:focus-visible {
  outline: 2px solid var(--color-cream, #f8f0e8);
  outline-offset: 3px;
}

/* Single gold tone across band, buttons and pills: --color-gold-dark with
   white text (4.95:1). Hover darkens the same tone via brightness() rather
   than introducing a second gold, which also nudges contrast upward. */
.btn-primary {
  background-color: var(--color-gold-dark, #7d6f49);
  border-color: var(--color-gold-dark, #7d6f49);
  color: var(--color-white, #ffffff);
}

.btn-primary:hover {
  filter: brightness(0.88);
}

.btn-secondary {
  background-color: transparent;
  border-color: currentColor;
  color: var(--color-heading, #16233f);
}

.btn-secondary:hover {
  background-color: var(--color-heading, #16233f);
  color: var(--color-background, #f7f1e3);
}

.btn-alt {
  background-color: var(--color-navy-dark, #142944);
  border-color: var(--color-navy-dark, #142944);
  color: var(--color-cream, #f8f0e8);
}

.btn-alt:hover {
  background-color: var(--color-navy, #1e3a5c);
  border-color: var(--color-navy, #1e3a5c);
}

/* Site header */

.site-header {
  background-color: var(--color-header-bg, #7d6f49);
  color: var(--color-header-text, #ffffff);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding-block: 1rem;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: inherit;
  text-decoration: none;
}

.site-logo__mark {
  display: block;
  border-radius: 50%;
}

.site-logo__text {
  font-family: var(--font-heading, 'Cormorant Garamond', serif);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.site-nav__list {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav__list a {
  color: inherit;
  text-decoration: none;
  font-family: var(--font-body, 'Nunito', sans-serif);
  font-weight: 700;
  font-size: 1.05rem;
}

.site-nav__list a:hover,
.site-nav__list a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.site-header__social {
  display: inline-flex;
  color: inherit;
  opacity: 1;
  transition: opacity 0.2s ease;
}

.site-header__social:hover,
.site-header__social:focus-visible {
  opacity: 1;
}

.site-header__cta {
  flex-shrink: 0;
}

@media (max-width: 40rem) {
  .site-header__inner {
    justify-content: center;
    text-align: center;
  }

  .site-nav__list {
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
  }
}

/* Site footer */

.site-footer {
  background-color: var(--color-header-bg, #7d6f49);
  color: var(--color-header-text, #ffffff);
  margin-top: 4rem;
}

.site-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  padding-block: 2.5rem;
}

.site-footer__name {
  font-family: var(--font-heading, 'Cormorant Garamond', serif);
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
}

.site-footer__tagline {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.site-footer__legal ul {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__legal a,
.site-footer__social {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible,
.site-footer__social:hover,
.site-footer__social:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.site-footer__copy {
  margin: 0 auto;
  max-width: 72rem;
  padding: 1.25rem 1.5rem 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  text-align: center;
  font-weight: 700;
  font-size: 0.95rem;
}

@media (max-width: 40rem) {
  .site-footer__inner {
    flex-direction: column;
  }
}
