:root{
  --olive:#6f6b5c; --beige:#e6d6c9; --ivory:#f6f1e7;
  --paper:#fff; --ink:#1f2224; --muted:#9aa0a6;
  --line:#ffffff24;
}

/* Contenedor propio para que no dependa del CSS de cada página */
.rw-footer .container{max-width:1200px;margin:0 auto;padding:0 24px}

.rw-footer{
  position:relative; color:#f1f3f4; background:#6f6b5c; overflow:hidden;
  padding-top:24px; padding-bottom:18px;
}

/* Fondo con foto + velo */
.rw-footer-bg{
  position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(#000000a0,#000000a0),
    var(--footer-photo) center/cover no-repeat;
  filter:saturate(.9);
}
.rw-footer > *{ position:relative; z-index:1; }

/* Contacto grande */
.fw-top{display:grid; gap:24px; grid-template-columns:1fr 1fr 1fr; padding:8px 0 10px}
.fw-item .fw-label{display:flex; align-items:center; gap:8px; color:#cbd1d6; font-weight:600; letter-spacing:.02em}
.fw-item .ico{width:18px;height:18px}
.fw-item .fw-big{display:block; margin-top:8px; font-size:clamp(20px,2.6vw,34px); color:#fff; text-decoration:none}
.fw-item .fw-big:hover{ text-decoration: underline; text-underline-offset:3px; }
@media (max-width:900px){ .fw-top{grid-template-columns:1fr} }

/* Línea */
.fw-sep{ border:0; height:1px; background:var(--line); margin:16px 0 22px }

/* Columnas medias */
.fw-mid{ display:grid; gap:28px; grid-template-columns: 1.2fr 1fr 1fr 1fr; }
.fw-col h4{ margin:0 0 12px; font-size:18px; color:#e8eaed; }
.fw-col ul{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.fw-col a{ color:#e0e3e7; text-decoration:none; opacity:.95; }
.fw-col a:hover{ opacity:1; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:980px){ .fw-mid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .fw-mid{ grid-template-columns: 1fr; } }

/* Sociales */
.fw-col.social .fw-social{ display:flex; gap:14px; }
.fw-col.social .s{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; background:#ffffff1a; color:#fff;
  transition: transform .15s ease, background-color .15s ease;
}
.fw-col.social .s:hover{ transform: translateY(-2px); background:#ffffff2d; }
.fw-col.social .s svg{ width:20px; height:20px; }

/* Faja inferior */
.fw-bottom{
  display:grid; gap:16px; grid-template-columns: 1fr auto 1fr;
  align-items:center; padding:14px 0 2px;
}
.fw-bottom .brand{
  font-family:Cinzel, serif; letter-spacing:.15em; font-weight:400; color:#fff;
}
.fw-bottom .links{ justify-self:center; color:#e0e3e7; display:flex; gap:10px; align-items:center; }
.fw-bottom .links a{ color:#e0e3e7; text-decoration:none; }
.fw-bottom .links a:hover{ text-decoration:underline; text-underline-offset:3px; }
.fw-bottom .copy{ justify-self:end; color:#cbd1d6; }
@media (max-width:900px){
  .fw-bottom{ grid-template-columns: 1fr; text-align:center; }
  .fw-bottom .links, .fw-bottom .copy{ justify-self:center; }
}