/* ══════════════════════════════════════
   SITE FOOTER — ECOS Grupos v3
══════════════════════════════════════ */

/* ── CTA Bar (cream, fuera del navy) ── */
.footer-cta-bar {
  background: #fff;
  border-top: 1px solid #e8e4dc;
  border-bottom: 3px solid var(--gold);
  padding: 1.4rem var(--gap);
}
.footer-cta-bar-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.footer-cta-bar-text {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.footer-cta-bar-ico {
  width: 56px; height: 56px;
  background: rgba(250,192,24,.15);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.footer-cta-bar-title {
  font-family: var(--ft);
  font-size: clamp(.9rem, 1.8vw, 1.2rem);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: -.01em;
}
.footer-cta-bar-title em { font-style: normal; color: var(--gold2); }
.footer-cta-bar-sub { font-size: .83rem; color: var(--muted); margin-top: .25rem; }
.footer-cta-bar-btn {
  flex-shrink: 0;
  font-family: var(--ft);
  font-size: .75rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  padding: .9rem 2rem; border-radius: 999px;
  background: var(--gold);
  color: var(--dark);
  box-shadow: 0 4px 18px rgba(250,192,24,.4);
  transition: all .2s;
  display: inline-flex; align-items: center; gap: .5rem;
}
.footer-cta-bar-btn:hover { background: var(--gold2); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(250,192,24,.5); }

/* Separador visual entre CTA y navy */
.footer-cta-bar-inner::after {
  display: none; /* quitar si sobra */
}

/* ── Navy wrapper ── */
.footer-navy { background: var(--navy2); }

/* ── Grid 4 cols ── */
.footer-main {
  max-width: var(--max);
  margin: 0 auto;
  padding: 3rem var(--gap) 2rem;
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.4fr 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* ── Col Brand ── */
.flogo-img { height: 44px; width: auto; display: block; margin-bottom: .3rem; }
.footer-brand-tagline {
  font-size: .65rem; color: rgba(255,255,255,.3);
  letter-spacing: .06em; margin-bottom: .6rem;
  font-family: var(--fb);
}
.footer-brand-sep {
  width: 32px; height: 2px;
  background: var(--gold);
  margin-bottom: .8rem;
  border-radius: 1px;
}
.footer-brand-desc {
  font-size: .75rem; color: rgba(255,255,255,.38);
  line-height: 1.65; margin-bottom: .9rem;
}
.footer-brand-loc {
  display: flex; align-items: center; gap: .4rem;
  font-size: .72rem; color: rgba(255,255,255,.3);
  margin-bottom: 1rem;
}

/* Idiomas */
.flangs { display: flex; gap: .4rem; margin-bottom: 1.1rem; }
.flangs a {
  font-family: var(--ft); font-size: .6rem; font-weight: 700;
  padding: .25rem .55rem; border-radius: 4px;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.35); transition: all .2s;
}
.flangs a.on { background: var(--gold); color: var(--navy2); border-color: var(--gold); }
.flangs a:hover:not(.on) { color: var(--white); border-color: rgba(255,255,255,.3); }

/* Redes sociales */
.footer-social { display: flex; gap: .55rem; flex-wrap: wrap; }
.footer-social-btn {
  width: 38px; height: 38px;
  border-radius: 8px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.45);
  transition: all .2s;
}
.footer-social-btn:hover { background: var(--gold); color: var(--navy2); border-color: var(--gold); }

/* ── Columnas generales ── */
.footer-col-title {
  font-family: var(--ft);
  font-size: .6rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1.1rem;
}
.footer-info-item {
  display: flex; align-items: flex-start;
  gap: .6rem; margin-bottom: .7rem;
  font-size: .76rem; line-height: 1.55;
  color: rgba(255,255,255,.42);
}
.footer-info-ico { flex-shrink: 0; margin-top: .05rem; font-size: .9rem; }
.footer-info-item a { color: rgba(255,255,255,.42); transition: color .2s; }
.footer-info-item a:hover { color: var(--gold); }
.footer-addr strong { color: rgba(255,255,255,.65); font-weight: 600; }

/* Horario card */
.footer-hours-card {
  display: flex; align-items: flex-start; gap: .85rem;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 10px;
  padding: .9rem 1rem;
  margin-top: .8rem;
}
.footer-hours-ico { font-size: 1.4rem; flex-shrink: 0; margin-top: .1rem; }
.footer-hours-title {
  font-family: var(--ft); font-size: .72rem; font-weight: 700;
  color: var(--white); margin-bottom: .3rem; letter-spacing: .02em;
  text-transform: uppercase;
}
.footer-hours-line { font-size: .72rem; color: rgba(255,255,255,.42); line-height: 1.6; }

/* Mapa embed */
.footer-map-wrap { margin-top: .9rem; }
.footer-map-wrap iframe {
  display: block; border-radius: 10px;
  border: 1px solid rgba(255,255,255,.1);
}
.footer-map-btn {
  display: block; margin-top: .55rem;
  font-size: .68rem; color: rgba(255,255,255,.4);
  line-height: 1.5; transition: color .2s;
  font-style: italic;
}
.footer-map-btn:hover { color: var(--gold); }

/* Certificaciones */
.footer-cert-list { display: flex; flex-direction: column; gap: .5rem; }
.footer-cert {
  display: flex; align-items: center; gap: .55rem;
  font-size: .75rem; color: rgba(255,255,255,.38);
  padding-bottom: .45rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.footer-cert:last-child { border-bottom: none; }
.footer-cert-ico { font-size: .85rem; flex-shrink: 0; }

/* ── Stats bar ── */
.footer-stats {
  border-top: 1px solid rgba(255,255,255,.07);
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: 1.3rem var(--gap);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.footer-stat {
  display: flex; align-items: center;
  gap: .8rem;
  padding: .5rem 1.2rem;
  border-right: 1px solid rgba(255,255,255,.07);
}
.footer-stat:last-child { border-right: none; }
.footer-stat-ico { font-size: 1.5rem; flex-shrink: 0; }
.footer-stat div { display: flex; flex-direction: column; }
.footer-stat-t {
  font-family: var(--ft); font-size: .72rem; font-weight: 700;
  color: var(--white); letter-spacing: .02em; margin-bottom: .2rem;
}
.footer-stat-l { font-size: .65rem; color: rgba(255,255,255,.3); }

/* ── Bottom bar ── */
.footer-bottom {
  padding: 1rem var(--gap);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.fcopy { font-size: .68rem; color: rgba(255,255,255,.2); }

/* ════════════════════════════════════════
   STICKY BOTTOM BAR — 4 bloques
════════════════════════════════════════ */
.sticky-footer-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 400;
  background: #fff;
  border-top: 1px solid #e8e4dc;
  box-shadow: 0 -4px 20px rgba(0,0,0,.1);
  transition: transform .35s ease;
}
.sticky-footer-bar.hidden { transform: translateY(110%); }

.sticky-footer-inner {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.8fr 1fr 1fr;
  min-height: 72px;
}

/* Bloques generales */
.sticky-block {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .8rem 1.4rem;
  border-right: 1px solid #e8e4dc;
  text-decoration: none;
  transition: background .18s;
}
.sticky-block:last-child { border-right: none; }
.sticky-block:hover { background: rgba(5,22,94,.03); }

/* Bloque 1: CTA */
.sticky-block-cta { cursor: default; }
.sticky-block-cta:hover { background: transparent; }
.sticky-cta-ico {
  width: 46px; height: 46px;
  background: rgba(250,192,24,.18);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}
.sticky-cta-title {
  font-family: var(--fb);
  font-size: .85rem; font-weight: 700;
  color: var(--navy); line-height: 1.25;
}
.sticky-cta-title em { font-style: normal; color: var(--gold2); }
.sticky-cta-sub { font-size: .72rem; color: var(--muted); margin-top: .2rem; }

/* Bloque 1: EAQUALS */
.sticky-block-eaquals{
  background: linear-gradient(135deg, rgba(5,22,94,.04) 0%, rgba(5,22,94,.08) 100%);
  border-right: 3px solid var(--navy);
  gap: .8rem;
}
.sticky-block-eaquals:hover{ background: rgba(5,22,94,.06); }
.sticky-eaquals-logo{
  height: 38px;
  width: auto;
  object-fit: contain;
  flex-shrink: 0;
}
.sticky-eaquals-name{
  font-family: var(--ft);
  font-size: 1rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: .04em;
}
.sticky-eaquals-sub{
  font-size: .6rem;
  color: var(--muted);
  font-family: var(--fb);
  margin-top: .1rem;
  font-style: italic;
}

/* Bloque 3: Dirección */
.sticky-addr-svg {
  width: 34px; height: 34px;
  color: var(--navy); flex-shrink: 0;
}

/* Labels y valores compartidos */
.sticky-block-lbl {
  font-size: .62rem; color: var(--muted);
  font-family: var(--fb); font-style: italic;
  margin-bottom: .1rem; line-height: 1;
}
.sticky-block-val {
  font-family: var(--ft); font-size: .9rem;
  font-weight: 700; color: var(--navy);
  line-height: 1.2;
}

/* Bloque 4: Redes */
.sticky-block-social { flex-direction: column; align-items: flex-start; gap: .35rem; }
.sticky-social-icons { display: flex; gap: .4rem; }
.sticky-social-ico {
  width: 34px; height: 34px;
  border-radius: 8px;
  border: 1.5px solid #e0dcD4;
  display: flex; align-items: center; justify-content: center;
  color: var(--navy);
  transition: all .2s;
}
.sticky-social-ico:hover { background: var(--navy); color: var(--white); border-color: var(--navy); }

/* WhatsApp float — sube sobre la sticky bar */
.wa-float { position: fixed; bottom: 5.8rem; right: 1.8rem; z-index: 500; }
.wa-float-btn {
  width: 54px; height: 54px; background: #25D366; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-size: 1.5rem;
  box-shadow: 0 6px 24px rgba(37,211,102,.45); border: none; cursor: pointer;
  transition: transform .2s;
}
.wa-float-btn:hover { transform: scale(1.08); }
.wa-float-badge {
  position: absolute; top: -3px; right: -3px;
  width: 18px; height: 18px; background: var(--red); border-radius: 50%;
  border: 2px solid var(--white);
  display: flex; align-items: center; justify-content: center;
  font-size: .5rem; font-weight: 700; color: var(--white);
}
.wa-tooltip {
  position: absolute; bottom: calc(100% + 10px); right: 0;
  background: var(--navy2); color: var(--white);
  font-size: .7rem; padding: .45rem .85rem; border-radius: 4px;
  white-space: nowrap; opacity: 0; transform: translateY(6px);
  transition: all .2s; pointer-events: none;
  border: 1px solid rgba(255,255,255,.1);
}
.wa-float:hover .wa-tooltip { opacity: 1; transform: translateY(0); }

/* Cert strip */
.cert-strip {
  background: var(--navy); padding: .9rem var(--gap);
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
}
.cert-lbl { font-family: var(--ft); font-size: .55rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.22); }
.cert-chip { font-size: .67rem; font-weight: 600; padding: .22rem .7rem; border-radius: 2px; }
.c-gold { background: rgba(250,192,24,.12); color: var(--gold); border: 1px solid rgba(250,192,24,.22); }
.c-neu  { background: rgba(255,255,255,.05); color: rgba(255,255,255,.4); border: 1px solid rgba(255,255,255,.08); }

/* ── Responsive ── */
@media (max-width: 1000px) {
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: span 2; }
  .footer-stats { grid-template-columns: 1fr 1fr; }
  .footer-stat:nth-child(2) { border-right: none; }
  .footer-stat:nth-child(3) { border-top: 1px solid rgba(255,255,255,.07); }
  .footer-stat:nth-child(4) { border-top: 1px solid rgba(255,255,255,.07); border-right: none; }
}
@media (max-width: 640px) {
  .footer-main { grid-template-columns: 1fr; }
  .footer-brand { grid-column: span 1; }
  .footer-stats { grid-template-columns: 1fr; }
  .footer-stat { border-right: none !important; border-top: 1px solid rgba(255,255,255,.07); }
  .footer-cta-bar-inner { flex-direction: column; text-align: center; }
  .footer-cta-bar-text { flex-direction: column; align-items: center; }
  /* sticky bar móvil: 2 columnas */
  .sticky-footer-inner { grid-template-columns: 1fr 1fr; }
  .sticky-block-cta { display: none; }
  .sticky-block-addr { display: none; }
  .sticky-eaquals-logo { height: 28px; }
  .sticky-eaquals-name { font-size: .82rem; }
  .wa-float { bottom: 7rem; right: 1rem; }
}