/* Footer: a dark, rounded closing section in the site's own language. Loaded last. */

.footer { display: block; margin-top: clamp(48px, 6vw, 96px); padding: clamp(72px, 9vw, 128px) var(--gutter) 32px; background: var(--ink); color: var(--paper); border-top: 0; border-radius: clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) 0 0; }
.footer__top { display: grid; grid-template-columns: var(--w4) minmax(0, 1fr); gap: var(--gap); align-items: start; padding-bottom: clamp(48px, 6vw, 80px); border-bottom: 1px solid rgba(255,253,249,.12); }
.footer__logo { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: .9; margin-top: 10px; }
.footer__line { margin: 0; font-size: clamp(30px, 4.2vw, 64px); line-height: 1.02; letter-spacing: -0.04em; font-weight: 200; max-width: 18ch; }
.footer__line strong { font-weight: 600; color: var(--peach); }

.footer__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); padding: clamp(40px, 5vw, 64px) 0; }
.footer__col { display: grid; align-content: start; gap: 0; }
.footer__col .eyebrow { color: var(--peach); margin-bottom: 12px; }
.footer__col a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(255,253,249,.1); font-size: 16px; color: rgba(255,253,249,.85); transition: color .3s; width: auto; }
.footer__col a > :first-child, .footer__col a { position: relative; }
.footer__col a:hover { color: var(--paper); }
.footer__col a:hover i { transform: translateX(4px); }
.footer__col a i { font-style: normal; color: var(--peach); transition: transform .4s var(--ease); }
.footer__col a:hover i { transform: translateX(4px); }
.footer__col--contact { gap: 14px; }
.footer__col--contact .eyebrow { margin-bottom: 0; }
.footer__mail { display: inline-block; font-size: clamp(20px, 1.8vw, 28px); letter-spacing: -0.02em; color: var(--paper); border-bottom: 0; padding: 0 0 2px; background: linear-gradient(var(--peach), var(--peach)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--ease), color .3s; width: fit-content; }
.footer__mail:hover { background-size: 100% 1px; color: var(--peach); }
.footer__meta { display: flex; align-items: center; gap: 10px; margin: 0; color: rgba(255,253,249,.6); }
.footer__meta .pulse { background: var(--peach); }
.footer__meta .pulse::after { border-color: var(--peach); }

.footer__base { display: flex; justify-content: space-between; align-items: center; gap: 16px 32px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid rgba(255,253,249,.12); color: rgba(255,253,249,.5); }
.footer__base > span { flex: none; }
.footer__tag { flex: 1 1 320px !important; text-transform: none; letter-spacing: 0; font-family: var(--sans); font-size: 14px; color: rgba(255,253,249,.5); }
.footer__legal { display: flex; gap: 20px; }
.footer__legal a:hover { color: var(--paper); }
.footer__legal:empty { display: none; }

@media (max-width: 900px) {
  .footer__top { grid-template-columns: 1fr; gap: 20px; }
  .footer__cols { grid-template-columns: 1fr; gap: 36px; }
  .footer__base { flex-direction: column; align-items: flex-start; }
}

/* lab pages keep their neutral near-black */
body[data-page="lab"] .footer, body[data-page="experiment"] .footer { background: var(--id-lab); }
body[data-page="lab"] .footer__line strong, body[data-page="experiment"] .footer__line strong,
body[data-page="lab"] .footer__col .eyebrow, body[data-page="experiment"] .footer__col .eyebrow,
body[data-page="lab"] .footer__col a i, body[data-page="experiment"] .footer__col a i { color: var(--id-lab-accent); }
/* dark sections directly above the footer: no rounded seam */
.cta--dark + .footer, .lab + .footer { border-radius: 0; margin-top: 0; }

/* outrank the legacy .footer nav rules */
.footer nav.footer__col { display: grid; flex-wrap: nowrap; gap: 0; font-size: 16px; }
.footer nav.footer__col a { display: flex; }
.footer .footer__col .eyebrow.mono, .footer .footer__meta.mono, .footer .footer__base.mono { flex-basis: auto; }
/* pages that end in a dark band: the footer continues it, no rounded seam */
body[data-page="mentorship"] .footer, body[data-page="lab"] .footer, body[data-page="experiment"] .footer { border-radius: 0; margin-top: 0; }
body[data-page="mentorship"] .footer { background: var(--ink); }

/* ---------- phones: 8px rhythm, Pages and Elsewhere side by side ---------- */
@media (max-width: 900px) {
  .footer { padding: 64px var(--gutter) calc(24px + env(safe-area-inset-bottom)); margin-top: 48px; }
  .footer__top { gap: 24px; padding-bottom: 40px; }
  .footer__logo { margin-top: 0; height: 24px; }
  .footer__line { font-size: clamp(28px, 8vw, 36px); line-height: 1.1; }
  .footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; padding: 40px 0; }
  .footer__col--contact { grid-column: 1 / -1; gap: 12px; }
  .footer__col .eyebrow { margin-bottom: 8px; }
  .footer__col a { padding: 12px 0; font-size: 15px; }
  .footer__mail { font-size: 22px; }
  .footer__base { flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 24px; }
  .footer__base > span, .footer .footer__tag { flex: none !important; }
}
