/* ============================================
   Ann2 Footer — Portable bundle
   Self-contained: only ann2-footer/ann2-cookie/ann2-social classes.
   Safe to load alongside any existing page CSS.
   ============================================ */

.ann2-footer-scope {
  --a2-ivory: #faf6ec;
  --a2-ivory-2: #f1e9d6;
  --a2-ink: #1a140c;
  --a2-muted: #6f6450;
  --a2-line: #e3d8be;
  --a2-gold: #b58939;
  --a2-gold-deep: #8a6224;
  --a2-gold-soft: #d8b56b;
  --a2-red: #b74527;
  --a2-radius: 4px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ann2-footer-scope * { box-sizing: border-box; }
.ann2-footer-scope a { color: inherit; text-decoration: none; }

.ann2-footer-scope .ann2-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}

.ann2-footer {
  border-top: 1px solid var(--a2-line);
  padding: 22px 0 18px;
  background: #fdfaee;
  position: relative;
  z-index: 2;
  color: var(--a2-ink);
}

.ann2-footer__row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}

.ann2-footer__copy {
  font-size: 12px;
  color: var(--a2-muted);
  letter-spacing: 0.02em;
}

.ann2-footer__socials { display: inline-flex; align-items: center; gap: 4px; }

.ann2-social {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  border-radius: 2px;
  color: var(--a2-muted);
  transition: color 180ms ease, background 180ms ease, transform 220ms ease;
}
.ann2-social:hover,
.ann2-social:focus-visible {
  color: var(--a2-red);
  background: var(--a2-ivory-2);
  transform: translateY(-1px);
  outline: none;
}
.ann2-social svg { width: 16px; height: 16px; }

.ann2-footer__legal {
  margin-top: 8px;
  font-size: 11px;
  letter-spacing: 0.05em;
  color: var(--a2-muted);
}
.ann2-footer__legal a {
  color: var(--a2-muted);
  position: relative;
  padding-bottom: 1px;
  transition: color 180ms ease;
}
.ann2-footer__legal a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--a2-red);
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ann2-footer__legal a:hover,
.ann2-footer__legal a:focus-visible {
  color: var(--a2-red);
  outline: none;
}
.ann2-footer__legal a:hover::after,
.ann2-footer__legal a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}
.ann2-footer__legal-sep { margin: 0 8px; opacity: 0.5; }

/* Cookie banner */
.ann2-cookie {
  position: fixed;
  left: 50%; bottom: 24px;
  transform: translate(-50%, 140%);
  width: min(700px, calc(100% - 32px));
  background: #fffdf6;
  border: 1px solid #d8b56b;
  border-top: 2px solid #b58939;
  border-radius: 4px;
  box-shadow: 0 18px 50px rgba(60, 40, 10, 0.18);
  padding: 20px 22px;
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  z-index: 100;
  transition: transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
  font-family: 'Inter', sans-serif;
}
.ann2-cookie.is-visible { transform: translate(-50%, 0); }

.ann2-cookie__text { flex: 1 1 320px; font-size: 13px; line-height: 1.6; color: #1a140c; }
.ann2-cookie__text a { color: #b74527; text-decoration: underline; text-underline-offset: 2px; }

.ann2-cookie__actions { display: inline-flex; gap: 10px; flex-shrink: 0; }

.ann2-btn {
  border-radius: 4px;
  padding: 10px 22px;
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  font-family: 'Inter', sans-serif; font-weight: 500;
  border: 1px solid transparent;
  transition: all 220ms ease;
  cursor: pointer;
}
.ann2-btn--ghost { background: transparent; border-color: #e3d8be; color: #6f6450; }
.ann2-btn--ghost:hover { border-color: #1a140c; color: #1a140c; }
.ann2-btn--primary {
  background: linear-gradient(180deg, #b58939 0%, #8a6224 100%);
  color: #fffdf6;
  border-color: #8a6224;
}
.ann2-btn--primary:hover {
  background: linear-gradient(180deg, #b74527 0%, #8e3318 100%);
  border-color: #8e3318;
}

@media (max-width: 640px) {
  .ann2-footer-scope .ann2-container { padding: 0 20px; }
  .ann2-footer__row { flex-direction: column; align-items: flex-start; gap: 14px; }
  .ann2-cookie { padding: 16px; bottom: 16px; }
  .ann2-cookie__actions { width: 100%; justify-content: flex-end; }
}
