/* ══════════════════════════════════════════════════════════════════════
   AIRE DE BABIA — ESTILOS COMUNES A TODAS LAS PAGINAS
   ──────────────────────────────────────────────────────────────────────
   Cabecera, selector de idioma, menu movil, pie y aviso de cookies.
   Antes estaba copiado dentro de cada .html, que es justo por lo que el
   pie se desincronizo y el selector de idiomas dejo de funcionar.
   Se carga DESPUES de styles.css y ANTES del <style> de cada pagina,
   asi que cualquier regla propia de una pagina sigue teniendo prioridad.
   Generado el 2026-08-14.
   ══════════════════════════════════════════════════════════════════════ */

.hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.footer-credit a:hover { color: var(--gold-light); }
.nav-cta:hover { background: var(--gold-light) !important; }
#nav.solid .nav-links a { color: var(--text); }
.lang-dropdown { position: relative; }
#nav.solid .nav-logo { color: var(--green); }
.lang-menu { position: absolute; top: calc(100% + 8px); right: 0; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; min-width: 68px; box-shadow: 0 8px 24px rgba(0,0,0,0.13); list-style: none; padding: 4px 0; opacity: 0; pointer-events: none; transform: translateY(-6px); transition: opacity 0.2s ease, transform 0.2s ease; z-index: 300; }
.nav-links { display: flex; align-items: center; gap: 36px; list-style: none; }
a { color: inherit; text-decoration: none; }
.lang-dropdown.open .lang-menu { opacity: 1; pointer-events: all; transform: translateY(0); }
h1,h2,h3,h4 { font-family: 'Playfair Display', serif; line-height: 1.15; }
.footer-bottom a:hover { color: var(--white); }
.nav-links a { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(255,255,255,0.88); transition: color var(--T); }
.lang-btn:hover { background: rgba(255,255,255,0.15); }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
.nav-inner { display: flex; align-items: center; justify-content: space-between; }
.cookie-banner.show { transform: translateX(-50%) translateY(0); }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
.hamburger span { display: block; width: 25px; height: 2px; background: var(--white); border-radius: 2px; transition: transform 0.3s ease, opacity 0.3s ease; }
.lang-menu li.active { color: var(--gold); }
img { max-width: 100%; display: block; }
.lang-menu li { padding: 9px 18px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; cursor: pointer; color: var(--text-muted); transition: background var(--T), color var(--T); }
.nav-logo { font-family: 'Playfair Display', serif; font-size: 1.35rem; color: var(--white); transition: color var(--T); }
#nav.solid .lang-btn { border-color: var(--border); color: var(--text); }
#nav.solid .lang-btn:hover { background: var(--cream); }
.container { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
.lang-menu li:hover { background: var(--cream); color: var(--green); }
#nav.solid .hamburger span { background: var(--text); }
.hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
#nav.solid { background: var(--white); padding: 14px 0; box-shadow: 0 2px 24px rgba(0,0,0,0.07); }
.footer-bottom a { transition: color var(--T); }
.nav-cta { background: var(--gold); color: var(--white) !important; padding: 10px 26px; border-radius: var(--radius); }
body { font-family: 'Lato', sans-serif; font-weight: 300; color: var(--text); background: var(--cream); line-height: 1.75; font-size: 16px; overflow-x: hidden; }
.hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.lang-dropdown.open .lang-caret { transform: rotate(180deg); }
.back-to-top.visible { opacity: 1; transform: translateY(0); pointer-events: all; }
.nav-right { display: flex; align-items: center; gap: 14px; }
.lang-btn { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; border: 1px solid rgba(255,255,255,0.45); border-radius: 20px; padding: 6px 10px 6px 14px; color: rgba(255,255,255,0.85); background: transparent; cursor: pointer; transition: var(--T); display: flex; align-items: center; gap: 5px; }
html { scroll-behavior: smooth; }
.lang-caret { font-size: 0.58rem; transition: transform var(--T); }
.nav-links a:hover { color: var(--gold-light) !important; }
#nav { position: fixed; inset: 0 0 auto; z-index: 900; padding: 22px 0; transition: background var(--T), padding var(--T), box-shadow var(--T); }

@media (max-width: 768px) {
  .nav-dropdown-menu { display: none; position: static !important; transform: none !important; box-shadow: none !important; opacity: 1 !important; pointer-events: all !important; background: rgba(0,0,0,0.3) !important; border: none !important; border-radius: 8px !important; padding: 8px 0 !important; margin-top: 8px; min-width: 200px; visibility: visible !important; }
  .nav-links { display: flex !important; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #1a3a1a; flex-direction: column; justify-content: flex-start; align-items: center; gap: 24px; list-style: none; opacity: 0; pointer-events: none; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; z-index: 950; overflow-y: auto !important; -webkit-overflow-scrolling: touch; padding: 90px 20px 50px !important; }
  .nav-links a:hover { color: #c8a96e !important; }
  .nav-cta { background: #b8873a !important; color: #fff !important; padding: 12px 36px !important; border-radius: 6px !important; display: inline-block !important; margin-top: 6px; }
  .nav-links a { font-size: 1.15rem !important; color: #ffffff !important; padding: 10px 0 !important; display: block !important; letter-spacing: 0.06em; }
  .nav-links > li { text-align: center; width: 100%; max-width: 320px; }
  .nav-dropdown.open .nav-caret { transform: rotate(180deg); }
  .nav-dropdown-menu li a i { color: #c8a96e !important; }
  .nav-dropdown-menu li a { color: rgba(255,255,255,0.92) !important; font-size: 0.95rem !important; padding: 10px 20px !important; text-align: center; justify-content: center; }
  .nav-dropdown-menu li a:hover { background: rgba(255,255,255,0.12) !important; color: #c8a96e !important; }
  .nav-caret { color: #c8a96e !important; display: inline-block; margin-left: 6px; transition: transform 0.3s ease; }
  .nav-links.open { opacity: 1 !important; pointer-events: all !important; visibility: visible !important; }
  .nav-dropdown.open .nav-dropdown-menu { display: block !important; }
  .nav-dropdown-menu::before { display: none !important; }
  .hamburger { display: flex; z-index: 960; }
}

/* ── PIE DE PAGINA (identico en todas las paginas) ──────────────────── */
footer { background: var(--green); color: rgba(255, 255, 255, 0.68); padding: 64px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 64px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.footer-brand-name { font-family: 'Playfair Display', serif; font-size: 1.55rem; color: var(--white); display: block; margin-bottom: 14px; }
.footer-brand p { font-size: 0.9rem; line-height: 1.75; max-width: 300px; }
.footer-social { display: flex; gap: 10px; margin-top: 22px; }
.footer-social a { width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.88rem; transition: var(--T); }
.footer-social a:hover { border-color: var(--gold-light); color: var(--gold-light); }
.footer-col h4 { font-family: 'Lato', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--white); margin-bottom: 22px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.footer-col ul a { font-size: 0.9rem; transition: color var(--T); }
.footer-col ul a:hover { color: var(--white); }
.footer-bottom { padding-top: 28px; display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; flex-wrap: wrap; gap: 10px; }
.footer-credit { text-align: center; margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.07); }
.footer-credit a { font-family: 'Lato', sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255, 255, 255, 0.2); transition: color var(--T); }

@media (max-width: 768px) {
  .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .footer-bottom { flex-direction: column; text-align: center; }
}

/* El atributo hidden debe ganar siempre: varios bloques llevan display propio */
[hidden] { display: none !important; }


/* ══════════════════════════════════════════════════════════════════════
   ICONOS
   ──────────────────────────────────────────────────────────────────────
   Antes venían de Font Awesome: 100 KB de CSS y 296 KB de fuentes para
   dibujar 87 iconos. Ahora cada página lleva incrustados solo los suyos
   como <symbol> SVG, y se usan con <svg class="ico"><use href="#..."></use>.

   width/height en «em» hace que sigan escalando con el font-size que ya
   tenían, y fill:currentColor que hereden el color del texto.
   ══════════════════════════════════════════════════════════════════════ */
.ico {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -0.125em;
  fill: currentColor;
  flex-shrink: 0;
}

/* Animación de espera (la usaba fa-spin) */
.fa-spin {
  animation: girar 1.6s linear infinite;
  transform-origin: center;
}

@keyframes girar {
  to {
    transform: rotate(360deg);
  }
}
