/* 2gether Partners – front-end styles */
.tgp-wrap{ --tgp-cols:5; --tgp-gap:28px; --tgp-size:100px; --tgp-gs:1; }
.tgp-grid{ display:grid; grid-template-columns:repeat(var(--tgp-cols), minmax(0,1fr)); gap:var(--tgp-gap); margin:0; padding:0; list-style:none; }

.tgp-card{ background:var(--tgp-card-bg, #fff); border:1px solid var(--tgp-card-border, rgba(0,0,0,.08)); border-radius:18px; box-shadow:0 1px 2px rgba(0,0,0,.06); transition:transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s cubic-bezier(.2,.7,.2,1), border-color .25s cubic-bezier(.2,.7,.2,1); }
.tgp-link{ display:grid; place-items:center; padding:16px; text-decoration:none; color:inherit; position:relative; min-height:calc(var(--tgp-size) + 24px); }
.tgp-card:hover{ transform:translateY(-4px) scale(1.01); box-shadow:0 8px 24px rgba(0,0,0,.18); border-color:rgba(14,165,233,.35); }

.tgp-logo-box{ width:var(--tgp-size); height:var(--tgp-size); display:grid; place-items:center; position:relative; overflow:hidden; }
.tgp-logo{ width:100%; height:100%; object-fit:contain; transform:scale(.98); transition:transform .25s cubic-bezier(.2,.7,.2,1), filter .25s cubic-bezier(.2,.7,.2,1); }
.tgp-wrap{ color-scheme:light dark; }
@media (prefers-color-scheme: dark){
  .tgp-card{ background:#11131a; border-color:rgba(255,255,255,.08); box-shadow:0 1px 2px rgba(0,0,0,.4); }
  .tgp-card:hover{ box-shadow:0 14px 30px rgba(0,0,0,.6); }
}

/* Shine sweep */
.tgp-logo-box::after{ content:\"\"; position:absolute; inset:-30%; background:linear-gradient(120deg, rgba(255,255,255,.0) 0%, rgba(255,255,255,.35) 20%, rgba(255,255,255,.0) 40%); transform:translateX(-120%) skewX(-12deg); transition:transform .25s cubic-bezier(.2,.7,.2,1); pointer-events:none; }
.tgp-card:hover .tgp-logo-box::after, .tgp-link:focus-visible .tgp-logo-box::after{ transform:translateX(120%) skewX(-12deg); }

/* grayscale -> color hover (optional) */
.tgp-logo{ filter: grayscale(calc(var(--tgp-gs) * 100%)) saturate(80%) contrast(95%) opacity(.9); }
.tgp-card:hover .tgp-logo, .tgp-link:focus-visible .tgp-logo{ filter:none; transform:scale(1.04); }

/* a11y */
.screen-reader-text{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Responsive breakpoints (degrade columns on smaller screens) */
@media (max-width: 1023px){ .tgp-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
@media (max-width: 767px){ .tgp-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width: 479px){ .tgp-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}


/* Corner ribbons for tiers */
.tgp-card{ position: relative; }
.tgp-link{ position: relative; overflow: visible; }
.tgp-ribbon{
  position:absolute;
  top:12px;
  left:-42px;
  display:inline-block;
  width:160px;
  text-align:center;
  padding:6px 0;
  font-size:12px;
  font-weight:700;
  color:#fff;
  transform:rotate(-45deg);
  text-transform:none;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  pointer-events:none;
}
.tgp-ribbon-right{
  left:auto;
  right:-42px;
  transform:rotate(45deg);
}
.tgp-ribbon::before,
.tgp-ribbon::after{
  content:"";
  position:absolute;
  bottom:-6px;
  border-top:6px solid rgba(0,0,0,.2);
}
.tgp-ribbon::before{ left:0; border-left:6px solid transparent; }
.tgp-ribbon::after{ right:0; border-right:6px solid transparent; }


/* Ribbons tuning */
.tgp-link{ overflow: visible; }
.tgp-ribbon{ z-index: 5; letter-spacing:.15px; }
.tgp-ribbon-left{ left:-46px; top:10px; }
.tgp-ribbon-right{ right:-46px; top:10px; }
