/* ==========================================================================
   VENTUREITALICA — FOOTER
   ========================================================================== */

/* --- Pre-footer: the seven engines --- */
.vi-prefooter { background: var(--vi-linen); border-top: 1px solid var(--vi-rule); padding-block: var(--vi-s9); }
.vi-engine-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 1px; background: var(--vi-rule); border: 1px solid var(--vi-rule); }
.vi-engine {
  background: var(--vi-linen); padding: var(--vi-s5);
  transition: background var(--vi-dur-2) var(--vi-ease);
  display: block;
}
.vi-engine:hover { background: var(--vi-paper); text-decoration: none; }
.vi-engine__name {
  font-family: var(--vi-font-heading); font-size: 1.02rem; font-weight: 700;
  letter-spacing: -0.008em; color: var(--vi-ink); margin: 0 0 var(--vi-s2);
}
.vi-engine__name sup { font-size: .48em; vertical-align: super; font-family: var(--vi-font-text); color: var(--vi-gold-700); }
.vi-engine__desc { font-size: var(--vi-size-caption); color: var(--vi-ink-500); margin: 0; line-height: 1.48; }

/* --- Main footer --- */
.vi-footer {
  background: var(--vi-verdigris-900);
  color: rgba(244,243,238,.72);
  padding-block: var(--vi-s10) var(--vi-s7);
  font-size: var(--vi-size-body-sm);
}
.vi-footer a { color: rgba(244,243,238,.72); }
.vi-footer a:hover { color: var(--vi-gold); text-decoration: none; }

.vi-footer__masthead {
  display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
  gap: var(--vi-s9);
  padding-bottom: var(--vi-s8);
  margin-bottom: var(--vi-s8);
  border-bottom: 1px solid rgba(244,243,238,.16);
  align-items: start;
}
@media (max-width: 900px) { .vi-footer__masthead { grid-template-columns: 1fr; gap: var(--vi-s7); } }

.vi-footer__brand { display: inline-flex; align-items: center; margin-bottom: var(--vi-s5); }
.vi-footer__brand .vi-brand__name { color: #F7F6F4; font-size: 1.6rem; }
.vi-footer__brand:hover .vi-brand__name { color: var(--vi-gold); }

.vi-footer__mission { max-width: 46ch; line-height: 1.62; color: rgba(244,243,238,.66); margin-bottom: var(--vi-s5); }

.vi-footer__signup { max-width: 420px; }
.vi-footer__signup h3 {
  font-family: var(--vi-font-heading); font-size: 1.24rem; font-weight: 700;
  color: #F4F3EE; margin: 0 0 var(--vi-s3); letter-spacing: -0.014em;
}
.vi-footer__signup p { font-size: var(--vi-size-caption); color: rgba(244,243,238,.6); margin: 0 0 var(--vi-s4); line-height: 1.55; }
.vi-footer__form { display: flex; gap: var(--vi-s2); }
.vi-footer__form input {
  flex: 1; background: rgba(244,243,238,.07);
  border: 1px solid rgba(244,243,238,.2); color: #F4F3EE;
  padding: .68rem .85rem; font-size: var(--vi-size-body-sm);
}
.vi-footer__form input::placeholder { color: rgba(244,243,238,.4); }
.vi-footer__form input:focus { border-color: var(--vi-gold); box-shadow: 0 0 0 3px rgba(177,134,61,.18); }

/* --- Link columns --- */
.vi-footer__cols {
  display: grid; grid-template-columns: repeat(5, minmax(0,1fr));
  gap: var(--vi-s7) var(--vi-s6);
  padding-bottom: var(--vi-s8);
  margin-bottom: var(--vi-s6);
  border-bottom: 1px solid rgba(244,243,238,.16);
}
@media (max-width: 1080px) { .vi-footer__cols { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px)  { .vi-footer__cols { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--vi-s6) var(--vi-s5); } }

.vi-footer-col h4 {
  font-family: var(--vi-font-text); font-size: var(--vi-size-micro);
  font-weight: 700; text-transform: uppercase; letter-spacing: var(--vi-track-eyebrow);
  color: var(--vi-gold); margin: 0 0 var(--vi-s4);
}
.vi-footer-col ul { list-style: none; margin: 0; padding: 0; }
.vi-footer-col li { margin: 0 0 var(--vi-s2); }
.vi-footer-col a { font-size: var(--vi-size-caption); line-height: 1.5; display: block; }

/* --- Legal bar --- */
.vi-footer__legal {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--vi-s4) var(--vi-s6);
  font-size: var(--vi-size-caption);
  color: rgba(244,243,238,.44);
}
.vi-footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--vi-s4); }
.vi-footer__legal a { color: rgba(244,243,238,.56); }

.vi-footer__disclaimer {
  margin-top: var(--vi-s6); padding-top: var(--vi-s5);
  border-top: 1px solid rgba(244,243,238,.1);
  font-size: var(--vi-size-micro); line-height: 1.6;
  color: rgba(244,243,238,.36); max-width: 92ch;
}

/* --- Back to top --- */
.vi-totop {
  position: fixed; right: var(--vi-s5); bottom: var(--vi-s5);
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--vi-ink); color: #fff; border: 0;
  display: grid; place-items: center; cursor: pointer;
  box-shadow: var(--vi-shadow-3);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: all var(--vi-dur-2) var(--vi-ease);
  z-index: 800;
}
.vi-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.vi-totop:hover { background: var(--vi-crimson); }
.vi-totop svg { width: 18px; height: 18px; }
