/* Trackstar footer — dark rounded card, white wordmark, Onside-inspired. */
.tsf{
  background: var(--ts-white);
  padding: 0 var(--ts-panel-inset) var(--ts-panel-inset);
}
.tsf *{ box-sizing:border-box; }
.tsf__card{
  background: var(--ts-ink);
  color:#fff;
  border-radius: var(--ts-panel-radius);
  padding: clamp(28px,4vw,56px) clamp(20px,4vw,56px);
  font-family: var(--ts-font); letter-spacing: var(--ts-tracking);
}
.tsf__grid{
  display:grid; gap: 32px 20px;
  grid-template-columns: 1fr 1fr;   /* mobile: two menu columns side by side */
}
.tsf__brand{ grid-column: 1 / -1; }  /* brand spans full width above the menus */
@media (min-width:750px){
  .tsf__grid{ grid-template-columns: 2fr 1fr 1fr; gap: clamp(28px,4vw,48px); align-items:start; }
  .tsf__brand{ grid-column: auto; }
}

/* brand column */
.tsf__logo{ display:block; width:150px; max-width:60%; height:auto; margin-bottom:12px; }
/* color is !important so a theme color-scheme wrapper can't repaint these
   plain-class <p> elements dark on the ink card. */
.tsf__tagline{ margin:0 0 28px; font-size:var(--ts-subhead); font-weight:500; color:rgba(255,255,255,.8)!important; max-width:32ch; line-height:1.35; }
.tsf__cta{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:14px 26px; border-radius:var(--ts-r-control);
  background:#fff; color:#000; font-weight:700; font-size:16px; letter-spacing:var(--ts-tracking);
  font-family:inherit; border:0; cursor:pointer;
  text-decoration:none; transition:background 150ms ease;
}
.tsf__cta:hover{ background:#E0E0E0; }

/* link columns */
.tsf__colhead{ margin:0 0 14px; font-size:12px; font-weight:700; color:rgba(255,255,255,.6)!important; letter-spacing:0; }
.tsf__links{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.tsf__links a{ color:rgba(255,255,255,.85); text-decoration:none; font-size:15px; transition:color 150ms ease; }
.tsf__links a:hover{ color:#fff; }

/* newsletter */
.tsf__nl-head{ margin:0; font-size:var(--ts-subhead); font-weight:700; line-height:1.1; }
.tsf__nl-sub{ margin:8px 0 16px; font-size:14px; color:rgba(255,255,255,.6); }
.tsf__nl-form{ display:flex; gap:8px; flex-wrap:wrap; }
.tsf__nl-input{
  flex:1 1 180px; min-height:48px; padding:12px 16px; font-size:16px;
  border-radius:var(--ts-r-control); border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.06); color:#fff; font-family:inherit; letter-spacing:var(--ts-tracking);
}
.tsf__nl-input::placeholder{ color:rgba(255,255,255,.45); }
.tsf__nl-btn{
  min-height:48px; padding:12px 24px; border:0; cursor:pointer;
  border-radius:var(--ts-r-control); background:var(--ts-purple); color:#fff;
  font-weight:700; font-size:16px; letter-spacing:var(--ts-tracking); transition:background 150ms ease;
}
.tsf__nl-btn:hover{ background:var(--ts-purple-hover); }
.tsf__nl-note{ margin:12px 0 0; font-size:12px; color:rgba(255,255,255,.45); }
.tsf__nl-success{ margin:12px 0 0; font-size:14px; color:#fff; }

/* social + bottom row */
.tsf__social{ display:flex; gap:14px; margin-top:18px; }
.tsf__social a{ color:rgba(255,255,255,.7); transition:color 150ms ease; display:inline-flex; }
.tsf__social a:hover{ color:#fff; }
.tsf__social svg{ width:20px; height:20px; }
.tsf__bottom{
  margin-top: clamp(24px,3vw,40px); padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; justify-content:space-between;
  font-size:13px; color:rgba(255,255,255,.5);
}
