/* Footer editorial de Onaia Studio — tres niveles: declaración, datos, legal */
.os-footer { display:block; background:var(--black,#1C1C1C); color:var(--white,#fff); border-top:1px solid rgba(255,255,255,.12); padding:0; text-align:left; font-family:var(--fb,'DM Sans',sans-serif); }
.os-footer, .os-footer * { box-sizing:border-box; }
.os-footer a { color:inherit; text-decoration:none; }
.osf-wrap { max-width:1280px; margin:0 auto; padding:0 3rem; }

/* 1 · Marca y redes */
.osf-top { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:5rem 0 2.5rem; border-bottom:1px solid rgba(255,255,255,.12); }
.os-footer .osf-logo { display:block; flex-shrink:0; }
.os-footer .osf-logo img { height:44px; width:auto; opacity:1; display:block; }
.osf-social { display:flex; gap:1.6rem; align-items:center; }
.os-footer .osf-social a { display:block; color:var(--white,#fff); opacity:.5; transition:opacity .3s ease, color .3s ease; }
.os-footer .osf-social a:hover { opacity:1; color:var(--sand,#C9B99A); }
.os-footer .osf-social svg { height:16px; width:auto; fill:currentColor; display:block; }

/* 2 · Declaración y navegación */
.osf-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:3rem 5rem; padding:4.5rem 0 5.5rem; }
.osf-statement { margin:0; font-family:var(--fd,'Museomoderno',sans-serif); font-weight:700; font-size:clamp(2.4rem,4.2vw,4.4rem); line-height:.95; letter-spacing:-.035em; text-transform:uppercase; text-wrap:balance; color:var(--white,#fff); }
.osf-statement em { font-style:normal; color:var(--sand,#C9B99A); }
.osf-since { display:block; margin-top:2.25rem; font-size:.66rem; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--sand,#C9B99A); }
.osf-nav { display:flex; justify-content:flex-end; gap:5rem; }
.osf-group { display:flex; flex-direction:column; min-width:0; }
.osf-title { font-size:.66rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--sand,#C9B99A); margin-bottom:1.1rem; }
.os-footer .osf-group a { padding:.4rem 0; font-size:.92rem; font-weight:300; opacity:.72; transition:opacity .3s ease, color .3s ease, transform .3s ease; }
.os-footer .osf-group a:hover { opacity:1; color:var(--sand,#C9B99A); transform:translateX(4px); }

/* 3 · Datos */
.osf-mid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto; gap:3rem 5rem; align-items:center; padding:3.75rem 0; border-top:1px solid rgba(255,255,255,.12); }
.osf-stat-label { display:block; font-size:.8rem; letter-spacing:.04em; opacity:.6; margin-bottom:.7rem; }
.osf-stat { font-family:var(--fb,'DM Sans',sans-serif); font-weight:300; font-size:clamp(2.4rem,3.6vw,3.4rem); letter-spacing:-.01em; line-height:1; white-space:nowrap; color:var(--white,#fff); }
.osf-contact { display:flex; flex-direction:column; font-style:normal; font-size:.92rem; font-weight:300; line-height:1.6; }
.os-footer .osf-contact a { padding:.38rem 0; opacity:.8; transition:opacity .3s ease, color .3s ease; }
.os-footer .osf-contact a:hover { opacity:1; color:var(--sand,#C9B99A); }
.osf-contact span { padding:.38rem 0; opacity:.55; margin-top:.5rem; }
.os-footer .osf-cta { width:68px; height:68px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); transition:background-color .3s ease, border-color .3s ease; }
.osf-cta span { font-size:1.4rem; line-height:1; transition:transform .3s ease, color .3s ease; }
.os-footer .osf-cta:hover { background:var(--sand,#C9B99A); border-color:var(--sand,#C9B99A); }
.os-footer .osf-cta:hover span { color:var(--black,#1C1C1C); transform:translateX(3px); }

/* 4 · Legal */
.osf-bottom { border-top:1px solid rgba(255,255,255,.08); }
.osf-bottom-in { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.75rem 2rem; padding:1.6rem 3rem; font-size:.74rem; color:rgba(255,255,255,.55); }
.osf-legal { display:flex; gap:1.75rem; flex-wrap:wrap; }
.os-footer .osf-legal a { opacity:.85; transition:opacity .2s ease, color .2s ease; }
.os-footer .osf-legal a:hover { opacity:1; color:var(--sand,#C9B99A); }
.osf-tag { letter-spacing:.16em; text-transform:uppercase; font-weight:500; }

@media (max-width:900px) {
  .osf-grid { grid-template-columns:1fr; gap:3.5rem; padding:3.5rem 0 4rem; }
  .osf-nav { justify-content:flex-start; gap:4rem; }
  .osf-mid { grid-template-columns:1fr; gap:2.25rem; padding:3rem 0; }
}
@media (max-width:768px) {
  .osf-wrap { padding:0 1.25rem; }
  .osf-top { padding:3.5rem 0 2rem; flex-direction:column; align-items:flex-start; gap:1.75rem; }
  .os-footer .osf-logo img { height:38px; }
  .osf-nav { gap:3rem; flex-wrap:wrap; }
  .osf-bottom-in { flex-direction:column; align-items:flex-start; padding:1.5rem 1.25rem 2rem; }
}

/* Selector de idioma en el pie */
.osf-lang { display:inline-flex; align-items:center; letter-spacing:.16em; text-transform:uppercase; font-weight:500; }
.osf-lang > * + *::before { content:"/"; margin:0 .7rem; opacity:.35; }
.osf-lang .active { color:var(--white,#fff); }
.os-footer .osf-lang a { opacity:.6; transition:opacity .2s ease, color .2s ease; }
.os-footer .osf-lang a:hover { opacity:1; color:var(--sand,#C9B99A); }

/* Botón de WhatsApp en el menú: mismo estilo que "Hablemos", con fondo sombreado */
.nav-links a.nav-wa { display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 1.25rem; background:rgba(201,185,154,.16); border:1px solid rgba(201,185,154,.6); color:var(--white,#fff) !important; font-size:.7rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; box-shadow:0 0 22px rgba(201,185,154,.22), inset 0 0 0 1px rgba(201,185,154,.08); transition:background .2s, border-color .2s, color .2s, box-shadow .2s; }
.nav-links a.nav-wa svg { display:none; width:14px; height:14px; fill:currentColor; }
.nav-links a.nav-wa:hover { background:var(--sand,#C9B99A); border-color:var(--sand,#C9B99A); color:var(--black,#1C1C1C) !important; box-shadow:0 0 28px rgba(201,185,154,.4); }
nav.over-light .nav-links a.nav-wa { background:rgba(28,28,28,.07); border-color:var(--black,#1C1C1C); color:var(--black,#1C1C1C) !important; box-shadow:0 4px 18px rgba(28,28,28,.14); }
nav.over-light .nav-links a.nav-wa:hover { background:var(--sand,#C9B99A); border-color:var(--sand,#C9B99A); color:var(--black,#1C1C1C) !important; }
.nav-wa-m { display:none; }
.nav-overlay-wa { display:inline-flex; align-items:center; gap:.7rem; padding:.95rem 1.8rem; border:1px solid var(--sand,#C9B99A); color:var(--sand,#C9B99A); font-size:.72rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:background .25s, color .25s; }
.nav-overlay-wa svg { width:16px; height:16px; fill:currentColor; display:block; }
.nav-overlay-wa:hover { background:var(--sand,#C9B99A); color:var(--black,#1C1C1C); }
@media (max-width:768px) {
  .nav-wa-m { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin-left:auto; margin-right:.6rem; border:1px solid var(--sand,#C9B99A); color:var(--sand,#C9B99A); }
  .nav-wa-m svg { width:17px; height:17px; fill:currentColor; display:block; }
  nav.over-light .nav-wa-m { color:var(--black,#1C1C1C); border-color:var(--black,#1C1C1C); }
}

/* Menú: ajuste entre 769 y 1100 px para que quepan los botones sin encoger el logo */
.nav-logo { flex-shrink:0; }
@media (max-width:1100px) and (min-width:769px) {
  .nav-links { gap:1.4rem; }
  .nav-links a.nav-wa { padding:.55rem .7rem; }
  .nav-links a.nav-wa svg { display:block; }
  .nav-links a.nav-wa span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .nav-links .nav-cta { padding:.5rem 1rem; white-space:nowrap; }
}
