/* Footer (Figma 454:114 desktop / 477:105 mobile) */
.ts-footer { background: var(--navy); color: var(--white); padding: 80px var(--side) 40px; }
.ts-footer__inner { max-width: var(--container); margin: 0 auto; display: flex; flex-direction: column; gap: 56px; }
.ts-footer__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
.ts-footer__brand { width: 380px; display: flex; flex-direction: column; gap: 20px; }
.ts-footer .ts-brand__mono { width: 54px; height: 54px; font-size: 18px; line-height: 22px; }
.ts-footer .ts-brand__name { font-size: 16px; line-height: 20px; }
.ts-footer__desc { margin: 0; font: 400 14px/24px var(--font-body); color: rgba(255,255,255,.6); }
.ts-footer__col { display: flex; flex-direction: column; gap: 14px; white-space: nowrap; }
.ts-footer__heading { margin: 0; font: 700 12px/16px var(--font-body); letter-spacing: 2.4px; text-transform: uppercase; color: var(--peach); }
.ts-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ts-footer .ts-footer__col a { font: 500 15px/20px var(--font-body); color: rgba(255,255,255,.8); text-decoration: none; transition: color 200ms ease-out; }
.ts-footer .ts-footer__col a:hover, .ts-footer .ts-footer__col a:focus-visible { color: var(--white); text-decoration: underline; text-underline-offset: 4px; }
.ts-footer__line { margin: 0; font: 200 72px/80px var(--font-display); letter-spacing: -0.5px; color: rgba(255,255,255,.14); }
.ts-footer__legal { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; font: 400 13px/18px var(--font-body); color: rgba(255,255,255,.55); }
.ts-footer__legal p { margin: 0; }
.ts-footer .ts-footer__legal a, .ts-footer .ts-footer__legal button { color: rgba(255,255,255,.55); text-decoration: none; }
.ts-footer .ts-footer__legal a:hover, .ts-footer .ts-footer__legal button:hover { color: var(--white); text-decoration: underline; }
.ts-only-m { display: none; }

@media (max-width: 1024px) {
	.ts-footer__top { flex-wrap: wrap; }
	.ts-footer__brand { width: 100%; }
}
@media (max-width: 767px) {
	.ts-only-m { display: inline; }
	.ts-only-d { display: none; }
	.ts-footer { padding: 56px var(--side) 32px; }
	.ts-footer__inner { gap: 36px; }
	.ts-footer__top { display: grid; grid-template-columns: 160px 160px; column-gap: 16px; row-gap: 28px; }
	.ts-footer__brand { grid-column: 1 / -1; gap: 20px; }
	.ts-footer .ts-brand { gap: 12px; }
	.ts-footer .ts-brand__mono { width: 46px; height: 46px; font-size: 15px; line-height: 19px; }
	.ts-footer .ts-brand__name { font-size: 13px; line-height: 16px; letter-spacing: 2.8px; }
	.ts-footer .ts-brand__tag { font-size: 8.5px; letter-spacing: 3px; }
	.ts-footer__desc { line-height: 23px; }
	.ts-footer__col, .ts-footer__col ul { gap: 12px; }
	.ts-footer__heading { font-size: 11px; letter-spacing: 2px; }
	.ts-footer .ts-footer__col a { font-size: 14px; }
	.ts-footer__line { font-size: 34px; line-height: 40px; letter-spacing: -0.3px; }
	.ts-footer__legal { flex-direction: column; gap: 8px; padding-top: 20px; font-size: 12px; }
	.ts-footer__legal .ts-footer__sep { display: none; }
	.ts-footer__legal p:first-child { display: flex; flex-direction: column; gap: 8px; }
}

/* Audit: link pitch 34px desktop / ~30px mobile; fixed 160px columns on mobile (454:114, 477:105) */
.ts-footer__col li { line-height: 20px; }
@media (max-width: 767px) { .ts-footer__top { justify-content: start; } .ts-footer__col li { line-height: 18px; } }
