/* ===========================================================
   cousins.css — /players/kirk-cousins/
   Pattern: data-dense dashboard (KPI cards + sticky-header
   statistical tables) rendered inside the site's existing
   Minnesota Vikings purple/gold brand system.
   All selectors are prefixed kcs- and scoped to .page-cousins.
   Shared tokens come from style.css (--purple, --gold, etc.).
   =========================================================== */

.page-cousins{
  /* local aliases derived from the sitewide brand tokens */
  --kcs-ink:#170d2b;
  --kcs-ink-2:#20143a;
  --kcs-panel:#241a3a;
  --kcs-rule:rgba(255,255,255,.15);
  --kcs-rule-2:rgba(255,255,255,.08);
  --kcs-onink:#ffffff;
  --kcs-onink-soft:rgba(255,255,255,.84);
  --kcs-onink-faint:rgba(255,255,255,.66);

  --kcs-card:var(--card);
  --kcs-line:var(--line);
  --kcs-line-soft:#e4e2ec;
  --kcs-zebra:#faf9fc;
  --kcs-hl:#f6f0ff;          /* Minnesota-row tint */
  --kcs-muted:#4d4d58;        /* 8.1:1 on white */
  --kcs-num:"Roboto Condensed","Arial Narrow",Helvetica,Arial,sans-serif;

  --kcs-gap:14px;
  background:var(--page);
}

.page-cousins ol{list-style:none;margin:0;padding:0}

/* =========================================================
   1. BREADCRUMB
   ========================================================= */
.page-cousins .kcs-crumb{background:var(--purple-ink);border-bottom:1px solid rgba(255,255,255,.1)}
.page-cousins .kcs-crumb ol{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  padding:11px 0;font-family:var(--display);font-weight:500;
  font-size:12px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--kcs-onink-soft);
}
.page-cousins .kcs-crumb a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;text-decoration-color:rgba(68,206,227,.45)}
.page-cousins .kcs-crumb a:hover{text-decoration-color:var(--gold)}
.page-cousins .kcs-crumb li[aria-current]{color:#fff}
.page-cousins .kcs-sep{color:rgba(255,255,255,.42)}

/* =========================================================
   2. HERO — CSS-only gradient, compact (data leads, not art)
   ========================================================= */
.page-cousins .kcs-hero{
  position:relative;overflow:hidden;color:var(--kcs-onink);
  background:
    radial-gradient(ellipse 70% 120% at 8% 0%, rgba(110,55,178,.85), rgba(110,55,178,0) 60%),
    radial-gradient(ellipse 55% 110% at 94% 18%, rgba(68,206,227,.20), rgba(68,206,227,0) 62%),
    linear-gradient(178deg,#1d1033 0%,#2a1450 46%,#140b26 100%);
  border-bottom:3px solid var(--gold);
}
.page-cousins .kcs-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,rgba(255,255,255,0) 1px 68px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,0));
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,0));
}
.page-cousins .kcs-hero-in{position:relative;z-index:1;padding:30px 0 26px}
.page-cousins .kcs-status{
  display:inline-flex;align-items:center;gap:9px;
  background:rgba(68,206,227,.14);border:1px solid rgba(68,206,227,.5);
  border-radius:999px;padding:6px 14px;margin-bottom:14px;
  font-family:var(--display);font-weight:600;font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.page-cousins .kcs-status::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none;
}
.page-cousins .kcs-hero .h1-group{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(30px,5.4vw,52px);letter-spacing:.008em;line-height:1;margin:0 0 10px;
}
.page-cousins .kcs-hero .h1-group small{
  display:block;margin-top:9px;font-family:var(--body);font-weight:500;
  font-size:15px;letter-spacing:.01em;text-transform:none;line-height:1.45;
  color:var(--kcs-onink-soft);max-width:70ch;
}
.page-cousins .kcs-hero-meta{
  display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:16px;
}
.page-cousins .kcs-chip{
  background:rgba(255,255,255,.09);border:1px solid var(--kcs-rule);
  border-radius:4px;padding:6px 11px;font-size:14px;line-height:1.35;
  color:var(--kcs-onink-soft);
}
.page-cousins .kcs-chip b{color:#fff;font-weight:600}

/* =========================================================
   3. KPI CARD ROW — headline Minnesota numbers
   ========================================================= */
.page-cousins .kcs-kpis{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1px;background:var(--kcs-rule-2);
  border:1px solid var(--kcs-rule);border-radius:6px;overflow:hidden;
  margin-top:22px;
}
.page-cousins .kcs-kpi{background:rgba(10,6,20,.55);padding:14px 13px 13px}
.page-cousins .kcs-kpi dt{
  font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:10.5px;letter-spacing:.13em;color:var(--gold);margin:0 0 7px;line-height:1.3;
}
.page-cousins .kcs-kpi dd{
  margin:0;font-family:var(--display);font-weight:700;
  font-size:clamp(22px,2.5vw,30px);line-height:1;letter-spacing:.005em;color:#fff;
  font-variant-numeric:tabular-nums;
}
.page-cousins .kcs-kpi dd span{
  display:block;margin-top:6px;font-family:var(--body);font-weight:400;
  font-size:14px;letter-spacing:0;line-height:1.4;color:var(--kcs-onink-faint);
}

/* =========================================================
   4. SECTION SHELL — compact, efficient rhythm
   ========================================================= */
.page-cousins .kcs-sect{padding:34px 0;border-bottom:1px solid var(--kcs-line)}
.page-cousins .kcs-sect:last-of-type{border-bottom:0}
.page-cousins .kcs-sect-head{margin-bottom:16px}
.page-cousins .kcs-eyebrow{
  display:block;font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:11px;letter-spacing:.18em;color:var(--purple);margin-bottom:6px;
}
.page-cousins .kcs-h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(21px,2.3vw,29px);letter-spacing:.01em;line-height:1.1;color:var(--text);
}
.page-cousins .kcs-dek{
  margin-top:7px;max-width:76ch;font-size:15px;line-height:1.55;color:var(--kcs-muted);
}

/* anchor strip */
.page-cousins .kcs-tabs{background:var(--purple);border-bottom:3px solid var(--gold)}
.page-cousins .kcs-tabs nav{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none}
.page-cousins .kcs-tabs nav::-webkit-scrollbar{display:none}
.page-cousins .kcs-tabs a{
  flex:none;padding:12px 0;font-family:var(--display);font-weight:500;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.86);border-bottom:2px solid transparent;white-space:nowrap;
  transition:color var(--t-fast),border-color var(--t-fast);
}
.page-cousins .kcs-tabs a:hover{color:#fff;border-bottom-color:var(--gold)}

/* =========================================================
   5. DATA TABLES — the centrepiece
   ========================================================= */
.page-cousins .kcs-tablebox{container-type:inline-size}
.page-cousins .kcs-tablewrap{
  overflow-x:auto;overflow-y:auto;
  max-height:min(74vh,470px);
  border:1px solid var(--kcs-line);border-radius:6px;background:var(--kcs-card);
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
.page-cousins .kcs-tablewrap:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.page-cousins .kcs-table{
  border-collapse:separate;border-spacing:0;width:100%;min-width:940px;
  font-family:var(--kcs-num);font-size:14px;line-height:1.35;
  font-variant-numeric:tabular-nums;
}
.page-cousins .kcs-table caption{
  caption-side:top;text-align:left;padding:12px 14px;
  background:var(--purple-ink);color:#fff;
  font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:13px;letter-spacing:.1em;line-height:1.4;
  position:sticky;left:0;
}
.page-cousins .kcs-table caption .kcs-capt,
.page-cousins .kcs-table caption .kcs-capsub{
  display:block;
  /* the caption box is as wide as the (wider-than-viewport) table, so cap the
     text at the width of the visible scroll frame or it would be clipped */
  max-width:calc(100cqi - 30px);
}
.page-cousins .kcs-table caption .kcs-capsub{
  margin-top:5px;font-family:var(--body);font-weight:400;
  font-size:14px;letter-spacing:0;line-height:1.45;text-transform:none;
  color:rgba(255,255,255,.82);
}
/* sticky column header row */
.page-cousins .kcs-table thead th{
  position:sticky;top:0;z-index:3;
  background:var(--purple);color:#fff;
  font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:11px;letter-spacing:.1em;text-align:right;
  padding:10px 10px;white-space:nowrap;
  border-bottom:2px solid var(--gold);
}
.page-cousins .kcs-table thead th:first-child{text-align:left;left:0;z-index:4}
.page-cousins .kcs-table thead th.kcs-txt{text-align:left}
/* sticky first column so the season label stays visible while scrolling sideways */
.page-cousins .kcs-table tbody th[scope="row"],
.page-cousins .kcs-table tfoot th[scope="row"]{
  position:sticky;left:0;z-index:2;
  text-align:left;white-space:nowrap;
  font-family:var(--display);font-weight:700;font-size:13.5px;letter-spacing:.03em;
  padding:9px 12px;color:var(--text);background:var(--kcs-card);
  border-right:1px solid var(--kcs-line);
}
.page-cousins .kcs-table td{
  padding:9px 10px;text-align:right;white-space:nowrap;
  border-bottom:1px solid var(--kcs-line-soft);color:var(--text);
}
.page-cousins .kcs-table td.kcs-txt{text-align:left;white-space:normal;min-width:150px;color:var(--kcs-muted)}
.page-cousins .kcs-table tbody th[scope="row"]{border-bottom:1px solid var(--kcs-line-soft)}
.page-cousins .kcs-table tbody tr:nth-child(even) th[scope="row"],
.page-cousins .kcs-table tbody tr:nth-child(even) td{background:var(--kcs-zebra)}
/* Minnesota rows: tinted AND labelled in text (never colour alone) */
.page-cousins .kcs-table tr.kcs-min th[scope="row"],
.page-cousins .kcs-table tr.kcs-min td{background:var(--kcs-hl)}
.page-cousins .kcs-table tr.kcs-min th[scope="row"]{
  box-shadow:inset 4px 0 0 var(--purple);color:var(--purple-ink);
}
.page-cousins .kcs-table tfoot th[scope="row"],
.page-cousins .kcs-table tfoot td{
  background:#efecf6;border-top:2px solid var(--purple);border-bottom:0;
  font-weight:700;color:var(--purple-ink);
}
.page-cousins .kcs-table tfoot th[scope="row"]{background:#efecf6}
.page-cousins .kcs-team{
  display:inline-block;min-width:38px;text-align:center;
  font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.09em;
  padding:2px 6px;border-radius:3px;border:1px solid var(--kcs-line);
  background:#f1f0f5;color:var(--kcs-muted);
}
.page-cousins .kcs-team.is-min{background:var(--purple);border-color:var(--purple);color:#fff}
.page-cousins .kcs-scrollnote{
  margin-top:8px;font-size:14px;color:var(--kcs-muted);
}
.page-cousins .kcs-source{
  margin-top:10px;font-size:14px;line-height:1.55;color:var(--kcs-muted);
}
.page-cousins .kcs-source a{color:var(--purple);text-decoration:underline;text-underline-offset:2px}
.page-cousins .kcs-source a:hover{color:var(--purple-deep)}
.page-cousins .kcs-tablewrap + .kcs-tablewrap{margin-top:var(--space-3)}

/* =========================================================
   6. SPLIT PANELS / SECONDARY PROSE
   ========================================================= */
.page-cousins .kcs-split{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:var(--space-3);align-items:start;
}
.page-cousins .kcs-prose p{margin:0 0 12px;font-size:15px;line-height:1.62;color:var(--text)}
.page-cousins .kcs-prose p:last-child{margin-bottom:0}
.page-cousins .kcs-prose b{font-weight:700}
.page-cousins .kcs-prose h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:15px;letter-spacing:.06em;color:var(--purple-ink);margin:20px 0 8px;
}
.page-cousins .kcs-prose h3:first-child{margin-top:0}

.page-cousins .kcs-panel{
  background:var(--kcs-card);border:1px solid var(--kcs-line);border-radius:6px;padding:16px 16px 14px;
}
.page-cousins .kcs-panel h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:13px;letter-spacing:.11em;color:var(--purple);margin-bottom:11px;
  padding-bottom:9px;border-bottom:2px solid var(--gold);
}
.page-cousins .kcs-deflist{display:grid;gap:0}
.page-cousins .kcs-deflist > div{
  display:flex;justify-content:space-between;gap:14px;
  padding:7px 0;border-bottom:1px solid var(--kcs-line-soft);
}
.page-cousins .kcs-deflist > div:last-child{border-bottom:0}
.page-cousins .kcs-deflist dt{
  font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:11px;letter-spacing:.1em;color:var(--kcs-muted);flex:none;padding-top:2px;
}
.page-cousins .kcs-deflist dd{margin:0;font-size:14px;line-height:1.4;text-align:right;color:var(--text);font-weight:600}

/* mini KPI trio used inside sections */
.page-cousins .kcs-mini{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--kcs-gap);
  margin-bottom:16px;
}
.page-cousins .kcs-mini > div{
  background:var(--kcs-card);border:1px solid var(--kcs-line);border-left:3px solid var(--purple);
  border-radius:5px;padding:12px 13px;
}
.page-cousins .kcs-mini b{
  display:block;font-family:var(--display);font-weight:700;font-size:26px;line-height:1;
  color:var(--purple-ink);font-variant-numeric:tabular-nums;
}
.page-cousins .kcs-mini span{display:block;margin-top:6px;font-size:14px;line-height:1.45;color:var(--kcs-muted)}
.page-cousins .kcs-mini > div.is-gold{border-left-color:var(--gold-deep)}

/* honours list */
.page-cousins .kcs-honours{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--kcs-gap)}
.page-cousins .kcs-honours li{
  background:var(--kcs-card);border:1px solid var(--kcs-line);border-radius:5px;padding:13px 14px;
  font-size:14px;line-height:1.5;color:var(--text);
}
.page-cousins .kcs-honours li b{
  display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:12px;letter-spacing:.1em;color:var(--purple);margin-bottom:5px;
}

/* timeline (compact, horizontal-leaning) */
.page-cousins .kcs-timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  background:var(--kcs-line);border:1px solid var(--kcs-line);border-radius:6px;overflow:hidden}
.page-cousins .kcs-timeline li{background:var(--kcs-card);padding:14px}
.page-cousins .kcs-timeline b{
  display:block;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--purple-ink);margin-bottom:6px;
}
.page-cousins .kcs-timeline b::before{
  content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--gold-deep);margin-right:8px;vertical-align:middle;
}
.page-cousins .kcs-timeline h3{
  font-family:var(--display);font-weight:700;font-size:14.5px;letter-spacing:.02em;
  color:var(--purple-ink);margin-bottom:5px;
}
.page-cousins .kcs-timeline p{font-size:14px;line-height:1.5;color:var(--kcs-muted)}

/* related cards */
.page-cousins .kcs-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--kcs-gap)}
.page-cousins .kcs-related a{
  display:block;background:var(--kcs-card);border:1px solid var(--kcs-line);border-radius:6px;
  padding:15px;transition:border-color var(--t),transform var(--t),box-shadow var(--t);
}
.page-cousins .kcs-related a:hover{border-color:var(--purple);transform:translateY(-2px);box-shadow:0 6px 18px rgba(42,20,80,.13)}
.page-cousins .kcs-related h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:14.5px;letter-spacing:.03em;line-height:1.2;color:var(--purple-ink);margin:6px 0 7px;
}
.page-cousins .kcs-related p{font-size:14px;line-height:1.5;color:var(--kcs-muted)}
.page-cousins .kcs-related .kcs-golink{
  display:inline-block;margin-top:9px;font-family:var(--display);font-weight:600;
  font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--purple);
}

/* closing strip */
.page-cousins .kcs-closer{
  background:linear-gradient(160deg,var(--purple-ink),var(--purple) 72%);
  color:#fff;padding:32px 0;border-top:3px solid var(--gold);
}
.page-cousins .kcs-closer h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:clamp(20px,2.4vw,28px);letter-spacing:.01em;margin-bottom:9px;
}
.page-cousins .kcs-closer p{max-width:74ch;font-size:15px;line-height:1.6;color:var(--kcs-onink-soft);margin-bottom:16px}

/* disclosure note */
.page-cousins .kcs-note{
  background:#efecf6;border:1px solid var(--kcs-line);border-left:3px solid var(--purple);
  border-radius:5px;padding:13px 15px;font-size:14px;line-height:1.6;color:var(--kcs-muted);
}
.page-cousins .kcs-note a{color:var(--purple);text-decoration:underline;text-underline-offset:2px}

/* =========================================================
   7. RESPONSIVE
   ========================================================= */
@media (max-width:1060px){
  .page-cousins .kcs-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-cousins .kcs-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-cousins .kcs-split{grid-template-columns:1fr}
}
@media (max-width:620px){
  .page-cousins .kcs-hero-in{padding:24px 0 22px}
  .page-cousins .kcs-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-cousins .kcs-sect{padding:26px 0}
  .page-cousins .kcs-tablewrap{max-height:min(68vh,400px)}
  .page-cousins .kcs-timeline{grid-template-columns:1fr}
  .page-cousins .kcs-deflist > div{flex-direction:column;gap:3px}
  .page-cousins .kcs-deflist dd{text-align:left}
}

/* =========================================================
   8. MOTION PREFERENCES
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  .page-cousins *,
  .page-cousins *::before,
  .page-cousins *::after{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }
  .page-cousins .kcs-related a:hover{transform:none}
}

/* =========================================================
   9. PRINT
   ========================================================= */
@media print{
  .page-cousins .kcs-tablewrap{max-height:none;overflow:visible;border:0}
  .page-cousins .kcs-table{min-width:0}
  .page-cousins .kcs-table thead th,
  .page-cousins .kcs-table tbody th[scope="row"],
  .page-cousins .kcs-table tfoot th[scope="row"]{position:static}
  .page-cousins .kcs-tabs{display:none}
}
