/* TASG partners design system — homepage Trusted partners, /partners master page, bottom-of-page strip (2026-09-30 master). Loaded site-wide from base.html.
   Off-white panel, TASG navy type, TA red accent. Every logo sits on an identical white card. No neon lime. */
.tp-section{
  --tp-navy:#0f2135; --tp-ink:#44505c; --tp-accent:#bf4133; --tp-accent-ink:#bf4133;
  --tp-panel:#f5f4f0; --tp-line:#e4e2db;
  background:var(--tp-panel);color:var(--tp-ink);
  padding:clamp(3.5rem,8vw,6rem) 0 clamp(3.5rem,8vw,5.5rem);
  border-top:1px solid var(--tp-line);
}
.tp-inner{max-width:1180px}
.tp-head{text-align:center;max-width:44rem;margin:0 auto clamp(2rem,5vw,3rem)}
.tp-eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;margin:0 0 1rem;
  font-family:var(--font-sans);font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tp-accent-ink);
}
.tp-eyebrow::before,.tp-eyebrow::after{content:"";width:1.6rem;height:2px;border-radius:2px;background:var(--tp-accent)}
.tp-section h2{
  color:var(--tp-navy);margin:0 0 .85rem;
  font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.02;letter-spacing:.01em;
}
.tp-sub{margin:0 auto;max-width:40rem;color:var(--tp-ink);font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.55}

.tp-grid{
  list-style:none;margin:0 auto;padding:0;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,2vw,1.25rem);
}
@media (min-width:768px){.tp-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.tp-item{margin:0;min-width:0;container-type:inline-size}
.tp-card{
  position:relative;display:flex;align-items:center;justify-content:center;
  aspect-ratio:3/2;width:100%;box-sizing:border-box;padding:0;
  background:#fff;border:1px solid var(--tp-line);border-radius:16px;
  box-shadow:0 1px 2px rgba(15,33,53,.04),0 6px 18px rgba(15,33,53,.06);
  transition:transform .22s var(--ease,ease),box-shadow .22s var(--ease,ease),border-color .22s ease;
  text-decoration:none;color:var(--tp-navy);
}
.tp-card picture{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.tp-card picture img{display:block;width:var(--lw,60%);height:auto;max-height:56%;object-fit:contain}
a.tp-card:hover,a.tp-card:focus-visible{
  transform:translateY(-4px);border-color:rgba(191,65,51,.55);
  box-shadow:0 2px 4px rgba(15,33,53,.05),0 16px 32px rgba(15,33,53,.12);outline:none;
}
a.tp-card:focus-visible{box-shadow:0 0 0 3px rgba(191,65,51,.45),0 16px 32px rgba(15,33,53,.12)}

/* White-only official logo (Higginbotham) on a brand-color chip inside the same white card */
.tp-chip{
  display:flex;align-items:center;justify-content:center;width:70%;aspect-ratio:3.4/1;
  background:var(--tp-chip,#0a3255);border-radius:8px;
}
.tp-chip img{display:block;width:82%;height:auto}

/* Emblem + wordmark lockup (Allanson Foundation: only a small official emblem exists) */
.tp-card--lockup{flex-direction:column;gap:4.5cqw}
.tp-emblem{display:block;width:36%;height:auto}
.tp-wordmark{
  display:flex;flex-direction:column;align-items:center;line-height:1.08;
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;color:#0a1f3d;
  font-size:6.6cqw;letter-spacing:.2em;padding-left:.2em; /* balance trailing tracking */
}
.tp-wordmark span:last-child{font-weight:600;font-size:.78em;letter-spacing:.28em;color:#3b4a5e;margin-top:.25em}

/* Collaborators: same family, quieter second tier (replaces the duplicate footer band on the homepage) */
.tp-collab{margin:clamp(2.75rem,6vw,4rem) auto 0;padding-top:clamp(2rem,4vw,2.75rem);border-top:1px solid var(--tp-line)}
.tp-collab-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.35rem .75rem;margin:0 0 1.25rem;text-align:center}
.tp-collab-head h3{margin:0;font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tp-navy)}
.tp-collab-head p{margin:0;font-size:.9rem;color:#6b7580}
.tp-section .tp-collab-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
@media (min-width:768px){.tp-section .tp-collab-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem}}
.tp-section .tp-collab-grid .partner-tile{
  min-height:0;aspect-ratio:7/3;padding:.4rem .5rem;border:1px solid var(--tp-line);border-radius:12px;background:#fff;
  box-shadow:0 1px 2px rgba(15,33,53,.04);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.tp-section .tp-collab-grid .partner-tile img{max-height:78%;max-width:86%}
.tp-section .tp-collab-grid a.partner-tile:hover,.tp-section .tp-collab-grid a.partner-tile:focus-visible{
  transform:translateY(-3px);border-color:rgba(191,65,51,.55);box-shadow:0 10px 22px rgba(15,33,53,.1);outline:none;
}
.tp-collab-more{margin:1.4rem 0 0;text-align:center}
.tp-collab-more a{
  display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--tp-accent-ink);
  text-decoration:none;border-bottom:1px solid rgba(191,65,51,.35);padding-bottom:.15rem;
}
.tp-collab-more a:hover{color:var(--tp-navy);border-bottom-color:var(--tp-navy)}

@media (prefers-reduced-motion:reduce){.tp-card,.tp-section .partner-tile{transition:none}a.tp-card:hover,.tp-section a.partner-tile:hover{transform:none}}

/* ---------- Shared button ---------- */
.tp-cta{margin:1.75rem 0 0;text-align:center}
.tp-btn{
  display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.35rem;border-radius:999px;
  background:var(--tp-navy,#0f2135);color:#fff;border:1px solid var(--tp-navy,#0f2135);
  font-family:var(--font-sans);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.tp-btn:hover,.tp-btn:focus-visible{background:#bf4133;border-color:#bf4133;color:#fff;transform:translateY(-1px);outline:none}
.tp-btn:focus-visible{box-shadow:0 0 0 3px rgba(191,65,51,.4)}
.tp-btn--sm{padding:.6rem 1.05rem;font-size:.72rem;white-space:nowrap}

/* ---------- /partners master page ---------- */
.tp-master{border-top:0}
.tp-master--collab{background:#fff;border-top:1px solid var(--tp-line)}
.tp-master--collab .pm-card{background:var(--tp-panel)}
.tp-master--collab .pm-logo{background:#fff}
.pm-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,2vw,1.25rem)}
@media (min-width:768px){.pm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.pm-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1100px){.pm-grid--collab{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pm-item{margin:0;min-width:0;container-type:inline-size}
.pm-card{
  display:flex;flex-direction:column;height:100%;box-sizing:border-box;padding:.55rem .55rem .9rem;
  background:#fff;border:1px solid var(--tp-line);border-radius:18px;text-decoration:none;color:var(--tp-navy);
  box-shadow:0 1px 2px rgba(15,33,53,.04),0 6px 18px rgba(15,33,53,.06);
  transition:transform .22s var(--ease,ease),box-shadow .22s var(--ease,ease),border-color .22s ease;
}
a.pm-card:hover,a.pm-card:focus-visible{transform:translateY(-4px);border-color:rgba(191,65,51,.55);box-shadow:0 2px 4px rgba(15,33,53,.05),0 16px 32px rgba(15,33,53,.12);outline:none}
a.pm-card:focus-visible{box-shadow:0 0 0 3px rgba(191,65,51,.45),0 16px 32px rgba(15,33,53,.12)}
.pm-card .pm-logo{box-shadow:none;border-color:#eeece6;border-radius:12px;container-type:inline-size}
.pm-card .pm-logo.tp-card--lockup{gap:4.5cqw}
.pm-card .pm-logo .tp-wordmark{font-size:6.6cqw}
.pm-logo--tile .tp-tile-img{display:block;width:88%;height:auto;max-height:80%;object-fit:contain}
.pm-body{display:flex;flex-direction:column;gap:.3rem;padding:.8rem .35rem 0;flex:1}
.pm-name{font-family:var(--font-sans);font-size:.95rem;font-weight:700;line-height:1.25;color:var(--tp-navy)}
.pm-line{font-size:.82rem;line-height:1.45;color:#56616c}
.pm-link{margin-top:auto;padding-top:.45rem;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tp-accent-ink)}
@media (max-width:420px){.pm-name{font-size:.88rem}.pm-line{font-size:.78rem}}

/* ---------- Compact strip at the bottom of featured pages ---------- */
.tp-strip{
  --tp-navy:#0f2135;--tp-accent:#bf4133;--tp-accent-ink:#bf4133;--tp-panel:#f5f4f0;--tp-line:#e4e2db;
  background:var(--tp-panel);color:#44505c;padding:2.25rem 0 2.5rem;border-top:1px solid var(--tp-line);margin-top:-2.75rem;margin-bottom:2.75rem;
}
.tp-strip-inner{max-width:1180px}
.tp-strip-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1.1rem}
.tp-eyebrow--left{margin-bottom:.45rem}
.tp-eyebrow--left::after{display:none}
.tp-strip h2{margin:0;color:var(--tp-navy);font-size:clamp(1.35rem,3.6vw,1.8rem);line-height:1.05}
.tp-strip-list{
  list-style:none;margin:0;padding:.25rem 0 .75rem;display:grid;gap:.6rem;
  grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:7.25rem;
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;
  -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);
}
.tp-strip-item{margin:0;min-width:0;scroll-snap-align:start;container-type:inline-size}
.tp-card--mini{border-radius:12px;box-shadow:0 1px 2px rgba(15,33,53,.05)}
.tp-card--mini picture img{max-height:58%}
.tp-card--mini.tp-card--lockup{gap:3.5cqw}
.tp-card--mini .tp-emblem{width:30%}
.tp-card--mini .tp-wordmark{font-size:6cqw}
.tp-card--mini .tp-chip{border-radius:6px}
.tp-card--tile .tp-tile-img{display:block;width:92%;height:auto;max-height:84%;object-fit:contain}
@media (min-width:1024px){
  .tp-strip-list{
    grid-auto-flow:row;grid-template-rows:none;grid-template-columns:repeat(11,minmax(0,1fr));grid-auto-columns:auto;
    overflow:visible;-webkit-mask-image:none;mask-image:none;padding-bottom:0;
  }
}
@media (max-width:560px){.tp-strip-head{align-items:flex-start;flex-direction:column}.tp-btn--sm{align-self:flex-start}}
@media (prefers-reduced-motion:reduce){.pm-card,.tp-btn{transition:none}a.pm-card:hover,.tp-btn:hover{transform:none}}
/* strip lives inside .site-footer: neutralize footer typography/list rules */
.site-footer .tp-strip h2{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;text-transform:uppercase;font-size:clamp(1.35rem,3.6vw,1.8rem);color:var(--tp-navy);margin:0}
.site-footer .tp-strip-list{padding:.25rem 0 .75rem}
.site-footer .tp-strip-item{margin:0}
.tp-card--mini .tp-chip{width:84%}
@media (min-width:1024px){.site-footer .tp-strip-list{padding-bottom:0}}
.site-footer .tp-btn,.site-footer .tp-btn:hover{color:#fff;text-decoration:none}

/* ---------- Official Corporate Sponsor (SEW-EURODRIVE), 2026-09-30 ----------
   One quiet treatment everywhere: official logo on white, thin red ring, small red "★ Official Corporate Sponsor" label. */
.tp-sponsor-badge,.sp-label{
  display:inline-flex;align-items:center;justify-content:center;gap:.4em;
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;line-height:1.2;
  color:#bf4133;white-space:nowrap;
}
.tp-sponsor-star{color:#bf4133;font-size:.95em;letter-spacing:0}
.tp-sponsor-logo{display:block;height:auto;object-fit:contain}

/* /partners featured block (above Trusted partners) */
.tp-sponsor-section{padding-bottom:0}
.sp-feature{
  display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:center;
  background:#fff;border:1px solid var(--tp-line);border-radius:22px;padding:clamp(1rem,3vw,1.75rem);
  box-shadow:0 1px 2px rgba(15,33,53,.04),0 10px 30px rgba(15,33,53,.08);position:relative;overflow:hidden;
}
.sp-feature::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:#bf4133}
.sp-logo{
  display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:16px;
  background:#fff;border:1px solid #eeece6;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.sp-logo img{display:block;width:62%;height:auto}
.sp-logo:hover,.sp-logo:focus-visible{transform:translateY(-3px);border-color:rgba(191,65,51,.55);box-shadow:0 14px 28px rgba(15,33,53,.1);outline:none}
.sp-body{text-align:center}
.sp-label{margin:0 0 .6rem;font-size:.74rem;padding:.45rem .85rem;border-radius:999px;background:rgba(191,65,51,.1);border:1px solid rgba(191,65,51,.28)}
.tp-section .sp-body h2{font-size:clamp(1.9rem,5vw,2.9rem);margin:0 0 .6rem}
.sp-line{margin:0 auto;max-width:34rem;font-size:1.02rem;line-height:1.55;color:var(--tp-ink)}
.sp-cat{display:block;margin-top:.2rem;font-size:.9rem;color:#6b7580}
.sp-cta{margin:1.15rem 0 0}
@media (min-width:768px){
  .sp-feature{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(1.5rem,4vw,3rem);padding:1.5rem 2.5rem 1.5rem 1.5rem}
  .sp-body{text-align:left}
  .sp-line{margin:0}
}

/* /partners collaborators grid: sponsor card */
.pm-card--sponsor{border-color:rgba(191,65,51,.5);box-shadow:0 0 0 1px rgba(191,65,51,.18),0 6px 18px rgba(15,33,53,.06)}
.pm-logo--tile .pm-sponsor-img{width:62%;max-height:70%}
.pm-sponsor-badge{justify-content:flex-start;font-size:.6rem;letter-spacing:.1em;white-space:normal;text-align:left}

/* Homepage collaborator row: sponsor tile first, 2x2, grid aligns to 5 columns on desktop like Trusted partners */
@media (min-width:768px){.tp-section .tp-collab-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.tp-section .tp-collab-grid .partner-tile-li--sponsor{grid-column:span 2;grid-row:span 2;display:flex;container-type:inline-size}
.tp-section .tp-collab-grid .partner-tile--sponsor{
  flex:1;height:auto;aspect-ratio:auto;flex-direction:column;gap:5cqw;padding:.75rem;
  border-color:rgba(191,65,51,.5);box-shadow:0 0 0 1px rgba(191,65,51,.18),0 6px 18px rgba(15,33,53,.07);
}
.tp-section .tp-collab-grid .partner-tile--sponsor .tp-sponsor-logo{width:52%;max-width:52%;max-height:none}
.tp-section .tp-collab-grid .partner-tile--sponsor .tp-sponsor-badge{font-size:clamp(.55rem,4.3cqw,.74rem)}

/* Bottom strip: sponsor card first, 2 columns wide, full strip height */
.tp-strip-item--sponsor{grid-row:span 2;grid-column:span 2;display:flex}
.tp-card--sponsor{
  flex:1;aspect-ratio:auto;flex-direction:column;gap:6cqw;padding:.6rem;
  border-color:rgba(191,65,51,.5);box-shadow:0 0 0 1px rgba(191,65,51,.18),0 1px 2px rgba(15,33,53,.05);
}
.tp-card--sponsor .tp-sponsor-logo{width:56%}
.tp-card--sponsor .tp-sponsor-badge{font-size:clamp(.5rem,4.6cqw,.68rem);letter-spacing:.1em}
@media (min-width:1024px){
  /* 21 cards + a 2x3 sponsor card = 9 columns x 3 rows, no gaps */
  .tp-strip-list{grid-template-columns:repeat(9,minmax(0,1fr))}
  .tp-strip-item--sponsor{grid-row:span 3}
}
@media (prefers-reduced-motion:reduce){.sp-logo{transition:none}.sp-logo:hover{transform:none}}
