/* ot-tpl — footer */

.ot-footer {
  margin-top: var(--ot-sp-16);
  padding: var(--ot-sp-12) 0 var(--ot-sp-8);
  border-top: 1px solid var(--ot-border);
  background: var(--ot-bg-elev);
}
.ot-footer__shell {
  max-width: var(--ot-container);
  margin: 0 auto;
  padding: 0 var(--ot-sp-6);
}
.ot-footer__cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--ot-sp-10);
  margin-bottom: var(--ot-sp-10);
}
@media (max-width: 900px) {
  .ot-footer__cols { grid-template-columns: 1fr; gap: var(--ot-sp-8); }
}

.ot-footer__brand {
  display: flex;
  align-items: center;
  gap: var(--ot-sp-3);
  font-size: var(--ot-fs-xl);
  font-weight: var(--ot-fw-b);
  letter-spacing: -0.02em;
  margin-bottom: var(--ot-sp-4);
}
.ot-footer__brand .ot-brand__dot { width: 12px; height: 12px; }

.ot-footer__lede {
  color: var(--ot-text-mute);
  font-size: var(--ot-fs-sm);
  max-width: 480px;
  line-height: 1.7;
}
.ot-footer__lede a {
  color: var(--ot-accent);
  border-bottom: 1px dashed var(--ot-accent-soft);
}
.ot-footer__lede a:hover { color: var(--ot-accent-hi); }

.ot-footer__col-title {
  font-family: var(--ot-font-mono);
  font-size: var(--ot-fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ot-text-dim);
  margin-bottom: var(--ot-sp-4);
}
.ot-footer__list a {
  display: block;
  padding: 6px 0;
  color: var(--ot-text-mute);
  font-size: var(--ot-fs-sm);
}
.ot-footer__list a:hover { color: var(--ot-text); }

.ot-footer__friend {
  margin-top: var(--ot-sp-8);
  padding-top: var(--ot-sp-6);
  border-top: 1px dashed var(--ot-border);
}
.ot-footer__friend-title {
  font-family: var(--ot-font-mono);
  font-size: var(--ot-fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ot-text-dim);
  margin-bottom: var(--ot-sp-3);
}
.ot-footer__friend-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ot-sp-2) var(--ot-sp-3);
  max-height: 80px;
  overflow: hidden;
  transition: max-height var(--ot-dur-2) var(--ot-ease);
}
.ot-footer__friend-grid--open { max-height: 1000px; }
.ot-footer__friend-grid a {
  color: var(--ot-text-dim);
  font-size: var(--ot-fs-xs);
}
.ot-footer__friend-grid a:hover { color: var(--ot-accent); }
.ot-footer__friend-btn {
  margin-top: var(--ot-sp-3);
  font-size: var(--ot-fs-xs);
  color: var(--ot-text-mute);
  font-family: var(--ot-font-mono);
}

.ot-footer__copy {
  margin-top: var(--ot-sp-8);
  padding-top: var(--ot-sp-5);
  border-top: 1px solid var(--ot-border);
  font-family: var(--ot-font-mono);
  font-size: var(--ot-fs-xs);
  color: var(--ot-text-dim);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--ot-sp-3);
  line-height: 1.7;
}
.ot-footer__copy a { color: var(--ot-text-mute); }
.ot-footer__copy a:hover { color: var(--ot-accent); }

/* Back to top — pinned bottom-right */
.ot-back-top {
  position: fixed;
  right: var(--ot-sp-5);
  bottom: var(--ot-sp-5);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--ot-surface-2);
  border: 1px solid var(--ot-border-hi);
  color: var(--ot-text);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: var(--ot-z-toast);
  box-shadow: var(--ot-shadow-2);
  cursor: pointer;
}
.ot-back-top--visible { display: inline-flex; }
.ot-back-top:hover { background: var(--ot-accent); color: var(--ot-accent-ink); border-color: var(--ot-accent); }
