 *,
 *::before,
 *::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
 }

 :root {
   --ink: #1a1814;
   --ink-soft: #4a4640;
   --ink-muted: #8a8580;
   --gold: #c8a96e;
   --gold-light: #f5edda;
   --gold-pale: #faf7f0;
   --cream: #fdf9f3;
   --white: #ffffff;
   --border: rgba(200, 169, 110, 0.25);
   --border-soft: rgba(26, 24, 20, 0.08);
 }

 html {
   scroll-behavior: smooth;
 }

 body {
   font-family: var(--font-body);
   color: var(--ink);
   min-height: 100vh;
   overflow-x: hidden;
 }

 * {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
 }

 @keyframes fade-up {
   from {
     opacity: 0;
     transform: translateY(24px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 @keyframes shimmer {
   0% {
     background-position: -400px 0;
   }

   100% {
     background-position: 400px 0;
   }
 }

 @keyframes pulse-dot {

   0%,
   100% {
     transform: scale(1);
     opacity: 1;
   }

   50% {
     transform: scale(1.35);
     opacity: 0.6;
   }
 }

 body,
 .pg {
   font-family: var(--font-body);
 }

 .pg {
   padding: 0 0 3rem;
   background: #fff;
 }

 /* ── HERO ── */
 .hero {
   padding: 2.5rem 1.5rem 2rem;
   text-align: center;
   animation: fade-up .5s ease both;
 }

 .hero-eyebrow {
   display: inline-flex;
   align-items: center;
   gap: 7px;
   font-size: 11px;
   font-weight: 500;
   letter-spacing: .12em;
   text-transform: uppercase;
   color: var(--color-text-secondary);
   border: 0.5px solid var(--color-border-secondary);
   border-radius: 999px;
   padding: 5px 14px;
   margin-bottom: 1.25rem;
 }

 .hero-eyebrow i {
   color: #1D9E75;
   font-size: 12px;
 }

 .hero h2 {
   font-family: var(--font-body);
   font-size: 36px;
   font-weight: 700;
   line-height: 1.2;
   color: var(--color-text-primary);
   margin-bottom: .75rem;
   letter-spacing: -.01em;
 }

 .hero h2 em {
   font-style: italic;
   color: #4f6ef7;
 }

 .hero p {
   font-size: 14px;
   color: var(--color-text-secondary);
   line-height: 1.75;
   max-width: 440px;
   margin: 0 auto 1.5rem;
 }

 .hero-eyebrow svg,
 .cta svg {
   color: #0349c8;
   font-size: 20px;
 }

 /* ── DIVIDER ── */
 .divider {
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 3rem;
   border-top: 0.5px solid var(--border-soft);
 }

 /* ── FILTER TABS ── */
 .filter-section {
   max-width: 1200px;
   margin: 0 auto;
   padding: 3rem 3rem 2rem;
   display: flex;
   align-items: center;
   gap: 0.75rem;
   flex-wrap: wrap;
 }

 .filter-label {
   font-size: 0.72rem;
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--ink-muted);
   margin-right: 0.5rem;
 }

 .filter-btn {
   padding: 0.45rem 1.1rem;
   border: 0.5px solid var(--border-soft);
   background: transparent;
   border-radius: 999px;
   font-family: var(--font-body);
   font-size: 0.8rem;
   font-weight: 400;
   color: var(--ink-soft);
   cursor: pointer;
   transition: all .2s;
   letter-spacing: 0.02em;
 }

 .filter-btn:hover {
   border-color: #4f6ef7;
   color: #4f6ef7;
 }

 .filter-btn.active {
   background: #4f6ef7;
   border-color: #4f6ef7;
   color: var(--white);
   font-weight: 500;
 }

 /* ── PARTNER GRID ── */
 .partners-grid {
   max-width: 1200px;
   margin: 0 auto;
   padding: 1rem 3rem 5rem;
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
   gap: 1.5rem;
 }

 .partner-card {
   background: var(--white);
   border: 0.5px solid var(--border-soft);
   border-radius: 2px;
   padding: 2.25rem;
   display: flex;
   flex-direction: column;
   gap: 1.25rem;
   transition: transform .3s ease, box-shadow .3s ease, border-color .3s;
   animation: cardIn .5s ease both;
   cursor: default;
 }

 .partner-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 16px 40px rgba(200, 169, 110, 0.12);
   border-color: var(--border);
 }

 @keyframes cardIn {
   from {
     opacity: 0;
     transform: translateY(16px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 .partner-card:nth-child(1) {
   animation-delay: .05s;
 }

 .partner-card:nth-child(2) {
   animation-delay: .10s;
 }

 .partner-card:nth-child(3) {
   animation-delay: .15s;
 }

 .partner-card:nth-child(4) {
   animation-delay: .20s;
 }

 .partner-card:nth-child(5) {
   animation-delay: .25s;
 }

 .partner-card:nth-child(6) {
   animation-delay: .30s;
 }

 .partner-card:nth-child(7) {
   animation-delay: .35s;
 }

 .partner-card:nth-child(8) {
   animation-delay: .40s;
 }

 .partner-card:nth-child(9) {
   animation-delay: .45s;
 }

 .card-header {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
 }

 .card-icon-wrap {
   width: 52px;
   height: 52px;
   border-radius: 12px;
   background: var(--gold-pale);
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
 }

 .card-icon-wrap i {
   font-size: 1.35rem;
   color: var(--gold);
 }

 .card-badge {
   font-size: 0.65rem;
   font-weight: 500;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   padding: 0.3rem 0.7rem;
   border-radius: 999px;
   border: 0.5px solid;
 }

 .badge-tech {
   color: #2563eb;
   border-color: rgba(37, 99, 235, .25);
   background: rgba(37, 99, 235, .05);
 }

 .badge-fin {
   color: #059669;
   border-color: rgba(5, 150, 105, .25);
   background: rgba(5, 150, 105, .05);
 }

 .badge-media {
   color: #dc2626;
   border-color: rgba(220, 38, 38, .25);
   background: rgba(220, 38, 38, .05);
 }

 .badge-edu {
   color: #7c3aed;
   border-color: rgba(124, 58, 237, .25);
   background: rgba(124, 58, 237, .05);
 }

 .badge-health {
   color: #0891b2;
   border-color: rgba(8, 145, 178, .25);
   background: rgba(8, 145, 178, .05);
 }

 .badge-retail {
   color: #b45309;
   border-color: rgba(180, 83, 9, .25);
   background: rgba(180, 83, 9, .05);
 }

 .card-name {
   font-family: var(--font-body);
   font-size: 1.4rem;
   font-weight: 600;
   color: var(--ink);
   line-height: 1.2;
   letter-spacing: -0.01em;
 }

 .card-tagline {
   font-size: 0.78rem;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--gold);
   font-weight: 500;
 }

 .card-desc {
   font-size: 0.875rem;
   line-height: 1.75;
   color: var(--ink-soft);
   flex: 1;
 }

 .card-footer {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding-top: 1.25rem;
   border-top: 0.5px solid var(--border-soft);
 }

 .card-since {
   font-size: 0.72rem;
   color: var(--ink-muted);
   letter-spacing: 0.04em;
 }

 .card-since strong {
   color: var(--ink-soft);
   font-weight: 500;
 }

 .card-link {
   display: flex;
   align-items: center;
   gap: 0.4rem;
   font-size: 0.78rem;
   font-weight: 500;
   color: var(--gold);
   text-decoration: none;
   letter-spacing: 0.04em;
   transition: gap .2s;
 }

 .card-link:hover {
   gap: 0.65rem;
 }

 .card-link i {
   font-size: 0.75rem;
 }

 /* ── FEATURED (wide card) ── */
 .partner-card.featured {
   grid-column: span 2;
   flex-direction: row;
   gap: 3rem;
   align-items: center;
   padding: 2.75rem 3rem;
   background: var(--gold-pale);
   border-color: var(--border);
 }

 .featured-left {
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 1rem;
 }

 .featured-right {
   flex-shrink: 0;
   width: 220px;
   display: flex;
   flex-direction: column;
   gap: 1.25rem;
 }

 .featured-label {
   display: inline-flex;
   align-items: center;
   gap: 0.5rem;
   font-size: 0.68rem;
   letter-spacing: 0.15em;
   text-transform: uppercase;
   color: var(--gold);
   font-weight: 500;
 }

 .featured-label i {
   font-size: 0.65rem;
 }

 .featured .card-name {
   font-size: 2rem;
 }

 .featured-metric {
   text-align: center;
 }

 .featured-metric .num {
   font-family: var(--font-body);
   font-size: 2.2rem;
   font-weight: 600;
   color: var(--ink);
   display: block;
   line-height: 1;
 }

 .featured-metric .lbl {
   font-size: 0.72rem;
   color: var(--ink-muted);
   letter-spacing: 0.08em;
   text-transform: uppercase;
   margin-top: 0.35rem;
   display: block;
 }

 .featured-divider {
   width: 1px;
   height: 3rem;
   background: var(--border);
   margin: 0 auto;
 }

 /* ── CTA ── */
 .cta {
   width: 720px;
   margin: auto;
   text-align: center;
 }

 .cta-section {
   background: var(--ink);
   color: var(--white);
   padding: 6rem 3rem;
   text-align: center;
   position: relative;
   overflow: hidden;
 }

 .cta-section::before {
   content: '';
   position: absolute;
   inset: 0;
   background: repeating-linear-gradient(45deg,
       transparent,
       transparent 40px,
       rgba(200, 169, 110, 0.04) 40px,
       rgba(200, 169, 110, 0.04) 41px);
 }

 .cta-eyebrow {
   font-size: 0.72rem;
   letter-spacing: 0.18em;
   text-transform: uppercase;
   color: var(--gold);
   margin-bottom: 1.5rem;
 }

 .cta-section h2 {
   font-family: var(--font-body);
   font-size: clamp(2.5rem, 4vw, 3.5rem);
   font-weight: 500;
   color: var(--white);
   max-width: 18ch;
   margin: 0 auto 1.75rem;
   line-height: 1.15;
 }

 .cta-section h2 em {
   font-style: italic;
   color: var(--gold);
 }

 .cta-section p {
   font-size: 0.95rem;
   color: rgba(255, 255, 255, .55);
   max-width: 44ch;
   margin: 0 auto 2.5rem;
   line-height: 1.8;
 }

 .cta-btn {
   display: inline-flex;
   align-items: center;
   gap: 0.75rem;
   padding: 0.9rem 2.25rem;
   background: var(--gold);
   color: var(--ink);
   border: none;
   border-radius: 2px;
   font-family: var(--font-body);
   font-size: 0.85rem;
   font-weight: 500;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   cursor: pointer;
   text-decoration: none;
   transition: background .2s, transform .2s;
 }

 .cta-btn:hover {
   background: #d4b87a;
   transform: translateY(-2px);
 }

 /* ── FOOTER ── */
 footer {
   background: var(--ink);
   border-top: 0.5px solid rgba(255, 255, 255, .06);
   padding: 2.5rem 3rem;
   display: flex;
   align-items: center;
   justify-content: space-between;
 }

 .footer-logo {
   font-family: var(--font-body);
   font-size: 1.2rem;
   font-weight: 600;
   color: var(--white);
   text-decoration: none;
   letter-spacing: 0.04em;
 }

 .footer-logo span {
   color: var(--gold);
 }

 footer p {
   font-size: 0.78rem;
   color: rgba(255, 255, 255, .3);
 }

 .footer-socials {
   display: flex;
   gap: 1.25rem;
 }

 .footer-socials a {
   color: rgba(255, 255, 255, .35);
   font-size: 0.95rem;
   transition: color .2s;
   text-decoration: none;
 }

 .footer-socials a:hover {
   color: var(--gold);
 }

 /* ── RESPONSIVE ── */
 @media (max-width: 900px) {
   nav {
     padding: 1.25rem 1.5rem;
   }

   .nav-links {
     display: none;
   }

   .hero {
     grid-template-columns: 1fr;
     padding: 3rem 1.5rem 3.5rem;
   }

   .hero-stats {
     padding-left: 0;
     border-left: none;
     border-top: 1px solid var(--border);
     padding-top: 2rem;
     flex-direction: row;
     gap: 3rem;
   }

   .partners-grid {
     padding: 1rem 1.5rem 4rem;
   }

   .filter-section {
     padding: 2.5rem 1.5rem 1.5rem;
   }

   .partner-card.featured {
     grid-column: span 1;
     flex-direction: column;
   }

   .featured-right {
     width: 100%;
     flex-direction: row;
     justify-content: space-around;
   }

   .featured-divider {
     display: none;
   }

   .cta-section {
     padding: 5rem 1.5rem;
   }

   .cta {
     width: 100%;
     padding: 0 2rem;
   }
 }