/* site.css — Kent State brand system.
   Shared by industry/, seminar/, career-fair/ and internships/. This file deploys to the
   web root as /css/site.css; edit only this copy.
   Locally authored styles use the established Kent State palette. */

/* Kent State's own sites set headings in National (Klim Type Foundry). That
   licence does not cover a third party loading it, so we do not use it here.
   Archivo is the closest freely licensed grotesque and carries the same
   sturdy, slightly condensed feel at heading sizes. Loaded from Google Fonts
   in each page's <head>. */

:root{
  --ksu-blue:#003976;
  --ksu-blue-dark:#002664;
  --ksu-gold:#efab00;
  --ksu-gold-dark:#d99b00;   /* darkened #efab00 for hover, not a new brand color */
  --ksu-blue-rgb:0,57,118;   /* --ksu-blue as channels, for translucent focus rings */
  --ink:#0a0a0a;
  --white:#fefefe;
  --gray-100:#f9f9f9;
  --gray-200:#e6e6e6;
  --gray-600:#767676;
  --gray-800:#494949;
  --link:#0073bd;

  --font-sans:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-serif:"Roboto Slab",Georgia,"Times New Roman",serif;

  --wrap:1200px;
  --ease:ease-out;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:100px}

body{
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:1rem;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  /* sticky footer: short pages still push the footer to the viewport bottom */
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
main{flex:1 0 auto}
/* a one-section page stretches that section over whatever height is left */
main.fill,main.fill > section,main.fill .wrap{display:flex;flex-direction:column}
main.fill > section,main.fill .wrap{flex:1 0 auto}
main.fill > section{padding:clamp(20px,4vh,48px) 0}
main.fill .wrap{width:100%}
/* and the whole page, header and footer included, uses a wider measure */
body.wide{--wrap:1600px}
footer{flex-shrink:0}

a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
::selection{background:var(--ksu-blue);color:var(--white)}
html{accent-color:var(--ksu-blue);caret-color:var(--ksu-blue);scrollbar-color:var(--gray-600) var(--gray-100)}

/* ---------- type scale & editorial typography ---------- */
h1,h2,h3,h4,h5{
  font-family:var(--font-sans);
  font-weight:700;
  line-height:1.15;
  color:var(--ksu-blue);
  letter-spacing:-.02em;
}
h1{font-size:2.85rem;letter-spacing:-.025em}
h2{font-size:2rem;letter-spacing:-.02em}
h3{font-size:1.375rem;letter-spacing:-.015em}
h4{font-size:1.125rem;letter-spacing:-.01em}
h5{font-size:1rem}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4,.on-dark h5{color:var(--white)}
p{max-width:70ch;line-height:1.6}
small,.small{font-size:.875rem}
@media(max-width:640px){
  h1{font-size:2.15rem}
  h2{font-size:1.55rem}
  h3{font-size:1.25rem}
}

/* body copy links are the one place --link is used */
p a,.card li a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
p a:hover,.card li a:hover{color:var(--ksu-blue)}
.on-dark p a{color:var(--ksu-gold);text-decoration:underline;text-underline-offset:2px}
.on-dark p a:hover{color:var(--white)}

/* ---------- focus + skip ---------- */
:focus-visible{outline:3px solid var(--ksu-blue);outline-offset:2px}
.on-dark :focus-visible{outline-color:var(--ksu-gold)}
.skip-link{
  position:absolute;left:14px;top:-70px;z-index:1000;
  background:var(--ksu-blue);color:var(--white);font-weight:700;font-size:.875rem;
  padding:12px 20px;border:2px solid var(--ksu-gold);transition:top .25s var(--ease);
}
.skip-link:focus,.skip-link:focus-visible{top:14px;outline:3px solid var(--ksu-gold);outline-offset:2px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--font-sans);font-weight:700;font-size:1rem;letter-spacing:.02em;
  padding:.85em 2.2em;border:2px solid var(--ksu-blue);
  background:var(--ksu-blue);color:var(--white);cursor:pointer;
  line-height:1.2;text-decoration:none;min-height:48px;
  transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{background:var(--ksu-blue-dark);border-color:var(--ksu-blue-dark);color:var(--white)}
.btn:focus-visible{outline:3px solid var(--ksu-blue);outline-offset:2px}
.btn-gold{background:var(--ksu-gold);border-color:var(--ksu-gold);color:var(--ink)}
.btn-gold:hover{background:var(--ksu-gold-dark);border-color:var(--ksu-gold-dark);color:var(--ink)}
.btn-gold:focus-visible{outline:3px solid var(--ksu-blue);outline-offset:2px}
@media(max-width:520px){.btn{padding:.8em 1.6em;width:100%}}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
section{padding:60px 0}
@media(max-width:640px){
  .wrap{padding:0 20px}
  section{padding:44px 0}
}

/* ---------- bands ---------- */
.band{background:var(--white)}
.band-tint{background:var(--gray-100);border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200)}
.band-tint .muted{color:var(--gray-800)}
.band-blue{background:var(--ksu-blue);color:var(--white)}
.band-gold{background:var(--ksu-gold);color:var(--ink)}
.band-gold h1,.band-gold h2,.band-gold h3,.band-gold h4{color:var(--ink)}
.muted{color:var(--gray-600)}
.on-dark .muted{color:rgba(255,255,255,.85)}

/* ---------- section heads ---------- */
.sec-head{margin-bottom:28px}
.sec-head h2{max-width:28ch}
.sec-head .lede{
  margin-top:12px;
  font-size:1.0625rem;
  color:var(--gray-800);
  max-width:65ch;
  line-height:1.55;
}
.on-dark .sec-head .lede{color:rgba(255,255,255,.9)}

/* ============ HEADER ============ */
header.nav{
  position:sticky;top:0;z-index:100;
  background:var(--ksu-blue);color:var(--white);
  border-bottom:3px solid var(--ksu-gold);
  transition:box-shadow .25s var(--ease);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  height:88px;
}
header.nav.scrolled{box-shadow:0 4px 16px rgba(0,0,0,.18)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.brand-logo{height:68px;width:auto;display:block}
.brand:focus-visible{outline:3px solid var(--ksu-gold);outline-offset:4px}
/* a page with no nav carries its title in the header instead */
.nav-title{font-size:1.5rem;color:var(--white)}
@media(max-width:520px){.nav-title{font-size:1.2rem}}

.nav-links{
  display:flex;gap:28px;
  font-family:var(--font-sans);font-weight:700;font-size:.8125rem;
  letter-spacing:.06em;text-transform:uppercase;
}
.nav-links a{color:var(--white);position:relative;padding:8px 0;transition:color .2s var(--ease)}
/* gold underline wipes in from the left on hover, and back out to the left on
   leave. The active link keeps it drawn. */
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;
  background:var(--ksu-gold);
  transform:scaleX(0);transform-origin:left center;
  transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.nav-links a:hover::after,.nav-links a:focus-visible::after,
.nav-links a.active::after{transform:scaleX(1)}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--white)}

.nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.nav-cta{
  font-family:var(--font-sans);font-weight:700;font-size:.8125rem;
  letter-spacing:.04em;text-transform:uppercase;
  background:var(--ksu-gold);color:var(--ink);
  padding:10px 18px;border:2px solid var(--ksu-gold);
  line-height:1.2;white-space:nowrap;
  transition:background-color .25s var(--ease),border-color .25s var(--ease);
}
.nav-cta:hover{background:var(--ksu-gold-dark);border-color:var(--ksu-gold-dark);color:var(--ink)}
.nav-cta:focus-visible{outline:3px solid var(--white);outline-offset:2px}

.nav-toggle{
  display:none;width:44px;height:44px;border:2px solid var(--white);
  background:transparent;cursor:pointer;align-items:center;justify-content:center;color:var(--white);
  transition:background-color .2s var(--ease);
}
.nav-toggle:hover{background:rgba(255,255,255,.1)}
.nav-toggle:focus-visible{outline:3px solid var(--ksu-gold);outline-offset:2px}
.nav-toggle .bars{position:relative;width:18px;height:2px;background:currentColor}
.nav-toggle .bars::before,.nav-toggle .bars::after{
  content:"";position:absolute;left:0;width:18px;height:2px;
  background:currentColor;
  transition:transform .2s var(--ease),top .2s var(--ease);
}
.nav-toggle .bars::before{top:-6px}
.nav-toggle .bars::after{top:6px}
.nav-toggle[aria-expanded="true"] .bars{background:transparent}
.nav-toggle[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}


/* ============ FOOTER ============ */
footer{
  background:var(--ksu-blue-dark);color:var(--white);padding:28px 0;
  border-top:4px solid var(--ksu-gold);
}
.foot{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap}
.foot-links{display:flex;gap:10px 24px;flex-wrap:wrap;font-size:.9375rem}
.foot-links a{color:var(--white);transition:color .25s var(--ease)}
.foot-links a:hover,.foot-links a:focus-visible{color:var(--ksu-gold)}
.foot-copy{flex-basis:100%;font-size:.8125rem;color:rgba(255,255,255,.85)}
.foot-copy a{text-decoration:underline;text-underline-offset:2px}
.foot-copy a:hover,.foot-copy a:focus-visible{color:var(--ksu-gold)}
footer .brand-logo{height:34px;filter:brightness(0) invert(1)}
@media(max-width:640px){
  .foot{flex-direction:column;align-items:flex-start}
}

/* ============ CARDS ============ */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media(max-width:980px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.card-grid,.card-grid-2{grid-template-columns:1fr;gap:18px}}
.card-grid + p,.card-grid-2 + p{margin-top:24px}

/* a list of short titled entries that does not need a box around each one */
.plain-list{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 48px}
.plain-list h3{margin-bottom:8px}
.plain-list p{font-size:.9375rem;color:var(--gray-800);line-height:1.55}
@media(max-width:680px){.plain-list{grid-template-columns:1fr}}

/* shared card base for .card/.co */
.card,.co{
  background:var(--white);
  color:var(--ink);
  border:1px solid var(--gray-200);
  border-top:3px solid var(--ksu-gold);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.card:hover,.co:hover{
  border-color:var(--ksu-blue);
  border-top-color:var(--ksu-gold);
  box-shadow:0 8px 24px rgba(0,57,118,.08);
}
.card{
  padding:30px 28px;
  display:flex;flex-direction:column;gap:14px;
}
.card h1,.card h2,.card h3,.card h4,.card h5{
  color:var(--ksu-blue);
  transition:color .25s var(--ease);
}
.card h2{font-size:1.375rem;letter-spacing:-.015em}
.card:hover h1,.card:hover h2,.card:hover h3,.card:hover h4{color:var(--ksu-blue-dark)}
.card p{color:var(--gray-800);font-size:.9375rem;line-height:1.55;flex:1}
.card > iconify-icon{font-size:2rem;color:var(--ksu-blue)}
.card .go iconify-icon{font-size:1.125rem}
/* hub: link tiles that share out the page between them and scale with it */
.hub{flex:1 0 auto;grid-auto-rows:1fr}
.hub .card{position:relative;padding:clamp(22px,3vw,44px);
  transition:background-color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.hub .card > iconify-icon:first-child{font-size:clamp(2rem,1.4rem + 2vw,3.5rem);margin-bottom:auto;
  transition:color .25s var(--ease)}
.hub .card h2{font-size:clamp(1.375rem,1rem + 1.6vw,2.5rem);line-height:1.15}
.hub .card p{flex:0 1 auto;max-width:44ch;font-size:clamp(.9375rem,.85rem + .35vw,1.1875rem);
  transition:color .25s var(--ease)}
/* side by side, a one-line description keeps its heading level with its neighbour's */
@media(min-width:681px){.hub .card p{min-height:3.1em}}
.hub .card .arrow{position:absolute;top:clamp(22px,3vw,44px);right:clamp(22px,3vw,44px);
  font-size:clamp(1.25rem,1rem + .8vw,2rem);
  transition:transform .25s var(--ease),color .25s var(--ease)}
/* the whole tile answers the pointer, a key press or a tap */
.hub .card:focus-visible,.hub .card:active{background:var(--ksu-blue);border-color:var(--ksu-blue);border-top-color:var(--ksu-gold)}
.hub .card:focus-visible h2,.hub .card:active h2,
.hub .card:focus-visible p,.hub .card:active p,
.hub .card:focus-visible > iconify-icon:first-child,.hub .card:active > iconify-icon:first-child{color:var(--white)}
.hub .card:focus-visible .arrow,.hub .card:active .arrow{color:var(--ksu-gold);transform:translateX(6px)}
.hub .card:focus-visible{outline-color:var(--ksu-gold);outline-offset:-6px}
@media(hover:hover){
  .hub .card:hover{background:var(--ksu-blue)}
  .hub .card:hover h2,.hub .card:hover p,.hub .card:hover > iconify-icon:first-child{color:var(--white)}
  .hub .card:hover .arrow{color:var(--ksu-gold);transform:translateX(6px)}
}
.card .go{
  font-family:var(--font-sans);font-weight:700;font-size:.8125rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ksu-blue);
  display:inline-flex;align-items:center;gap:8px;
  margin-top:auto;
  transition:color .2s var(--ease);
}
.card .go:hover{color:var(--ksu-blue-dark);text-decoration:underline;text-underline-offset:3px}
.card ul,.card ol{
  list-style:disc;padding-left:20px;
  display:flex;flex-direction:column;gap:8px;
  margin:4px 0;
}
.card li{color:var(--gray-800);font-size:.9375rem;line-height:1.5}
.card small,.card .small{color:var(--gray-800);font-size:.8125rem}

/* Card contrast in blue band & on-dark */
.band-blue .card,.on-dark .card{background:var(--white);color:var(--ink)}
.band-blue .card h1,.band-blue .card h2,.band-blue .card h3,.band-blue .card h4,
.on-dark .card h1,.on-dark .card h2,.on-dark .card h3,.on-dark .card h4{color:var(--ksu-blue)}
.band-blue .card:hover h1,.band-blue .card:hover h2,.band-blue .card:hover h3,.band-blue .card:hover h4,
.on-dark .card:hover h1,.on-dark .card:hover h2,.on-dark .card:hover h3,.on-dark .card:hover h4{color:var(--ksu-blue-dark)}
.band-blue .card p,.on-dark .card p{color:var(--gray-800)}
.band-blue .card p a,.on-dark .card p a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.band-blue .card p a:hover,.on-dark .card p a:hover{color:var(--ksu-blue)}
.band-blue .card li,.on-dark .card li{color:var(--gray-800)}
.band-blue .card .go,.on-dark .card .go{color:var(--ksu-blue)}
.band-blue .card .go:hover,.on-dark .card .go:hover{color:var(--ksu-blue-dark)}
.band-blue .card :focus-visible,.on-dark .card :focus-visible{outline-color:var(--ksu-blue)}
.band-tint .card p{color:var(--gray-800)}

.contact-line{margin-top:32px;font-size:.9375rem;color:rgba(255,255,255,.9)}
.contact-line a{color:var(--ksu-gold);text-decoration:underline;text-underline-offset:2px}
.contact-line a:hover{color:var(--white)}

/* ============ HERO ============ */
.hero{background:var(--ksu-blue);color:var(--white);padding:52px 0 56px}
.hero h1{
  font-size:clamp(2.1rem,3vw + 1rem,3rem);
  line-height:1.1;
  letter-spacing:-.025em;
  max-width:22ch;
  margin:0;
  color:var(--white);
}
.hero .lede{
  max-width:58ch;font-size:1.125rem;line-height:1.55;
  margin-top:14px;color:rgba(255,255,255,.92);
}

/* hero meta strip */
.hero-meta{
  display:flex;flex-wrap:wrap;gap:0;margin-top:26px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,26,68,.3);
}
.hero-meta + .hero-meta{margin-top:14px}
.hero-meta .m{
  font-size:.875rem;padding:12px 18px;
  border-right:1px solid rgba(255,255,255,.25);
  display:inline-flex;align-items:center;gap:10px;
  color:var(--white);line-height:1.3;
}
.hero-meta .m:last-child{border-right:none}
.hero-meta .m::before{content:"";width:7px;height:7px;background:var(--ksu-gold);flex:0 0 auto}
.hero-meta a.m{
  transition:background-color .25s var(--ease),color .25s var(--ease);
  text-decoration:none;
}
.hero-meta a.m:hover,.hero-meta a.m:focus-visible{
  background:rgba(255,255,255,.15);color:var(--white);
}

@media(max-width:640px){
  .hero{padding:36px 0 40px}
  /* Mobile hero meta sizing */
  .hero-meta{display:flex;flex-direction:column;width:100%;margin-top:24px}
  .hero-meta + .hero-meta{margin-top:12px}
  .hero-meta .m{
    width:100%;box-sizing:border-box;padding:12px 16px;
    border-right:none;border-bottom:1px solid rgba(255,255,255,.25);
    font-size:.875rem;min-height:44px;
  }
  .hero-meta .m:last-child{border-bottom:none}
}

/* ============ FILTER CHIPS ============ */
.filter-bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:28px;
}
.filter-row{display:flex;gap:8px;flex-wrap:wrap}
.chip{
  font-family:var(--font-sans);font-size:.8125rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;padding:8px 16px;border:2px solid var(--ksu-blue);background:transparent;
  color:var(--ksu-blue);cursor:pointer;min-height:38px;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.chip:hover{background:var(--ksu-blue);color:var(--white)}
.chip[aria-pressed="true"]{background:var(--ksu-blue);color:var(--white);border-color:var(--ksu-blue)}
.chip:focus-visible{outline:3px solid var(--ksu-blue);outline-offset:2px}
.filter-count{font-size:.875rem;color:var(--gray-800);white-space:nowrap}
.filter-count b{color:var(--ksu-blue)}

/* ============ COMPANY GRID ============ */
.co-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.co{padding:26px 22px;display:flex;flex-direction:column;gap:14px;position:relative}
.co.is-hidden{display:none}

/* Company card badge — protected against collision with feature layout */
.co .booth{
  display:inline-block;
  position:absolute;top:0;right:0;
  font-size:.6875rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:var(--ksu-gold);
  padding:5px 10px;line-height:1.2;
  z-index:2;
}
.co:hover .booth{background:var(--ksu-gold);color:var(--ink)}

.co-logo{
  width:52px;height:52px;display:grid;place-items:center;
  border:1px solid var(--gray-200);font-weight:700;font-size:1.3rem;color:var(--ksu-blue);
}
/* a real logo takes the initials box's height and keeps its own proportions */
.co-logo-img{display:block;height:52px;width:auto;max-width:100%;object-fit:contain;object-position:left center}
.co h4{font-size:1.0625rem;color:var(--ksu-blue);font-weight:700}
.co .tag{font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-600);margin-top:-6px}
.co .roles{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px}
.co .role{
  font-size:.8125rem;font-weight:500;padding:4px 8px;
  background:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-800);
}
.co a{
  font-size:.8125rem;font-weight:700;color:var(--ksu-blue);
  text-transform:uppercase;letter-spacing:.04em;text-decoration:underline;text-underline-offset:2px;
}
.co a:hover{color:var(--ksu-blue-dark)}
.co-empty{
  grid-column:1/-1;text-align:center;padding:44px 20px;
  border:1px dashed var(--gray-200);color:var(--gray-600);font-family:var(--font-serif);font-size:1.05rem;
}
.co-empty.is-hidden{display:none}
@media(max-width:980px){.co-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.co-grid{grid-template-columns:1fr}}

/* ============ SEMINAR LINK ============ */
.seminar-link{
  margin-top:28px;padding-top:18px;border-top:1px solid var(--gray-200);
  font-size:.9375rem;color:var(--gray-800);
}
.seminar-link a{font-weight:700;color:var(--ksu-blue);text-decoration:underline;text-underline-offset:2px}
.seminar-link a:hover{color:var(--ksu-blue-dark)}

/* ============ BOOTH FEATURE LAYOUT ============ */
/* Scoped to avoid collision with .co .booth badge */
div.booth, section.booth, .booth:not(span){
  display:grid;grid-template-columns:1.1fr 1fr;
  background:var(--ksu-blue);color:var(--white);
  border-top:3px solid var(--ksu-gold);
}
.booth-main{padding:44px 40px;display:flex;flex-direction:column}
.booth-main p{color:rgba(255,255,255,.9);max-width:44ch;margin-bottom:28px}
.booth-main .btn{align-self:flex-start;margin-top:auto}
.booth-list{
  list-style:none;align-content:center;background:rgba(0,0,0,.22);
  padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:16px 26px;
}
.booth-list li{position:relative;padding-left:30px;font-size:.9375rem;line-height:1.45;color:var(--white)}
.booth-list li::before{
  content:"";position:absolute;left:0;top:3px;width:16px;height:16px;
  border:2px solid var(--ksu-gold);
}
@media(max-width:880px){
  div.booth, section.booth, .booth:not(span){grid-template-columns:1fr}
  .booth-main{padding:34px 28px}
  .booth-list{padding:32px 28px}
}
@media(max-width:520px){.booth-list{grid-template-columns:1fr}}

.form-note{font-size:.875rem;text-align:center;min-height:1.2em;color:var(--gray-600);margin:16px auto 0}
.form-note a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.form-note a:hover{color:var(--ksu-blue)}

/* ============ CHECKLIST ============ */
.checklist-grid{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid rgba(255,255,255,.25);border-top:3px solid var(--ksu-gold);
}
.checklist-item{
  display:flex;align-items:flex-start;gap:16px;padding:22px 24px;
  border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);
}
.checklist-item:nth-child(2n){border-right:none}
.checklist-item:nth-last-child(-n+2){border-bottom:none}
/* an odd item count leaves one item alone on the last row: let it span */
.checklist-item:last-child:nth-child(odd){grid-column:1/-1;border-right:none}
.checklist-item:nth-last-child(2):nth-child(even){border-bottom:1px solid rgba(255,255,255,.2)}
.check-text{font-size:.9375rem;line-height:1.5;color:rgba(255,255,255,.9)}
.check-text b{display:block;font-weight:700;margin-bottom:3px;color:var(--white)}
@media(max-width:640px){
  .checklist-grid{grid-template-columns:1fr}
  .checklist-item{border-right:none}
  .checklist-item:nth-last-child(2){border-bottom:1px solid rgba(255,255,255,.2)}
  .checklist-item:last-child{border-bottom:none}
}

/* ============ TIMELINE (internships) ============ */
.timeline{border:1px solid var(--gray-200);border-top:3px solid var(--ksu-gold)}
.tl-step{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--gray-200)}
.tl-step:last-child{border-bottom:none}
.tl-when{
  padding:28px 24px;background:var(--ksu-blue);color:var(--white);
  display:flex;flex-direction:column;justify-content:center;gap:6px;
}
.tl-when .yr{font-weight:700;font-size:2rem;color:var(--ksu-gold);line-height:1}
.tl-when .lbl{
  font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.88);
}
.tl-body{padding:28px 30px;background:var(--white)}
.tl-body h3{margin-bottom:8px}
.tl-body p{font-size:.9375rem;color:var(--gray-800);max-width:60ch}
@media(max-width:640px){
  .tl-step{grid-template-columns:1fr}
  .tl-when{flex-direction:row;align-items:baseline;gap:12px;padding:20px 24px}
}

/* ============ COMPARE MODULE (internships) ============ */
.vs-grid{display:grid;grid-template-columns:1fr auto 1fr;border:1px solid var(--gray-200);border-top:3px solid var(--ksu-gold)}
.vs-col{padding:32px 30px;display:flex;flex-direction:column;gap:16px;background:var(--white)}
.vs-col+.vs-col{border-left:1px solid var(--gray-200)}
.vs-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.vs-col li{position:relative;padding-left:24px;font-size:.9375rem;color:var(--gray-800);line-height:1.5}
.vs-col li::before{
  content:"";position:absolute;left:0;top:8px;width:8px;height:8px;
  background:var(--ksu-blue);
}
.vs-mid{
  display:grid;place-items:center;padding:0 6px;background:var(--ksu-blue);
  color:var(--ksu-gold);font-weight:700;font-size:1rem;letter-spacing:.05em;min-width:64px;
}
@media(max-width:820px){
  .vs-grid{grid-template-columns:1fr}
  .vs-col+.vs-col{border-left:none;border-top:1px solid var(--gray-200)}
  .vs-mid{min-width:0;padding:12px 0}
}

/* ============ FAQ (internships) ============ */
.faq{border:1px solid var(--gray-200);border-top:3px solid var(--ksu-gold)}
.faq-item{border-bottom:1px solid var(--gray-200);background:var(--white)}
.faq-item:last-child{border-bottom:none}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 26px;background:transparent;border:none;cursor:pointer;text-align:left;
  font-family:var(--font-sans);font-weight:700;font-size:1.0625rem;color:var(--ksu-blue);
  transition:background-color .25s var(--ease),color .25s var(--ease);
}
.faq-q:hover{background:var(--gray-100);color:var(--ksu-blue-dark)}
.faq-q:focus-visible{outline:3px solid var(--ksu-blue);outline-offset:-3px}
.faq-q .ic{flex:0 0 auto;font-size:1.4rem;color:var(--ksu-blue);transition:transform .25s var(--ease)}
.faq-item.open .faq-q .ic{transform:rotate(45deg);color:var(--ksu-gold-dark)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.faq-item.open .faq-a{max-height:600px}
.faq-a p{padding:0 26px 22px;font-size:.9375rem;color:var(--gray-800);max-width:70ch;line-height:1.55}
.cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}

/* ============ RSVP (career-fair students) ============ */
.rsvp-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.rsvp-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-end}
@media(max-width:760px){.rsvp-inner{grid-template-columns:1fr}.rsvp-actions{align-items:flex-start}}

/* ============ SPEAKERS (seminar) ============ */
.seminar-hero{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}
.poster{display:block;width:230px;border:3px solid var(--ksu-gold);box-shadow:0 8px 20px rgba(0,0,0,.28)}
.poster img{display:block;width:100%}
@media(max-width:820px){.seminar-hero{grid-template-columns:1fr}.poster{width:170px}}

/* a .card with a photo on top: the card's own padding moves to .speaker-body */
.speaker{padding:0;gap:0}
.speaker-photo{display:block;aspect-ratio:3/2;background:var(--ksu-blue);overflow:hidden}
.speaker-photo img{display:block;width:100%;height:100%;object-fit:cover}
.speaker-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:24px 28px 28px}
.speaker p{flex:none}
.speaker .speaker-date{
  font-weight:700;font-size:.8125rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gray-800);
}
.speaker .speaker-role{color:var(--gray-800)}
.speaker .speaker-talk{
  font-family:var(--font-serif);font-size:1.0625rem;line-height:1.45;
  color:var(--ksu-blue);
}
.speaker-shots{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.speaker-shots a{
  display:block;width:56px;height:56px;border:1px solid var(--gray-200);
  transition:border-color .25s var(--ease);
}
.speaker-shots a:hover{border-color:var(--ksu-blue)}
.speaker-shots img{display:block;width:100%;height:100%;object-fit:cover}
/* a card's closing row of links */
.speaker-links,.card-links{
  display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:auto;padding-top:16px;
  border-top:1px solid var(--gray-200);
}
.speaker .go:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- prose (seminar talk and instructions pages) ---------- */
.prose{max-width:70ch}
.prose h2{font-size:1.5rem;margin:40px 0 12px}
.prose h2:first-child{margin-top:0}
.prose p + p,.prose ul + p{margin-top:14px}
.prose ul{list-style:disc;padding-left:22px;margin:12px 0}
.prose li{margin-top:8px;line-height:1.55}
.prose li ul{margin:8px 0 0}
.prose li p{margin-top:10px}
.prose a,.prose-links a{color:var(--ksu-blue);text-decoration:underline;text-underline-offset:2px}
.prose-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:40px;padding-top:16px;border-top:1px solid var(--gray-200);font-weight:700}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}

header.nav :focus-visible,footer :focus-visible{outline-color:var(--ksu-gold)}
.on-dark .btn:focus-visible{outline-color:var(--ksu-gold)}
.on-dark .card .btn:focus-visible{outline-color:var(--ksu-blue)}
@media(max-width:1120px){
  .nav-toggle{display:inline-flex}
  .nav-inner{height:76px;gap:16px}
  .brand-logo{height:58px}
  .nav-cta{padding:8px 14px;font-size:.75rem}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--ksu-blue-dark);font-size:.95rem;
    max-height:0;overflow:hidden;
    transition:max-height .32s var(--ease);
  }
  .nav-links.open{
    max-height:calc(100dvh - 76px);overflow-y:auto;
    border-bottom:3px solid var(--ksu-gold);box-shadow:0 12px 24px rgba(0,0,0,.3);
  }
  .nav-links a{padding:16px 24px;border-top:1px solid rgba(255,255,255,.12);display:block}
  .nav-links a::after{display:none}
  .nav-links a:hover,.nav-links a:focus-visible{background:rgba(255,255,255,.06);color:var(--ksu-gold)}
  .nav-links a.active{background:rgba(255,255,255,.09);color:var(--ksu-gold)}
}
@media(max-width:520px){
  .nav-inner{height:68px;gap:10px}
  .brand-logo{height:52px}
  .nav-cta{display:none}
}
