:root{
  --penn-navy:#011F5B;
  --penn-navy-dark:#00143d;
  --penn-red:#990000;
  --penn-red-dark:#7a0000;
  --penn-cream:#F5F1EA;
  --penn-border:#d9d4cc;
  --penn-text:#222;
  --penn-muted:#55606a;
  --penn-link:#00478b;
}

html{scroll-behavior:smooth}
body{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  color:var(--penn-text);
  background:#fff;
  line-height:1.55;
}
h1,h2,h3,h4,h5,h6,.serif{font-family: Georgia, "Times New Roman", Times, serif; color:var(--penn-navy); font-weight:700;}
h1{font-size:2.25rem; line-height:1.15}
h2{font-size:1.75rem; line-height:1.2; margin-top:.25rem}
h3{font-size:1.25rem}
a{color:var(--penn-link); text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1180px;margin:0 auto;padding:0 1.25rem}
.container-narrow{max-width:900px;margin:0 auto;padding:0 1.25rem}

/* Utility bar */
.util-bar{background:var(--penn-red); color:#fff; font-size:.78rem}
.util-bar a{color:#fff; text-decoration:none; margin-right:1rem}
.util-bar a:hover{text-decoration:underline}
.util-bar .inner{display:flex; justify-content:flex-end; align-items:center; height:32px}

/* Header */
.site-header{background:#fff; border-bottom:4px solid var(--penn-navy);}
.site-header .top{display:flex; align-items:center; justify-content:space-between; padding:1.1rem 0}
.brand{display:flex; align-items:center; gap:1rem}
.brand .wordmark{display:block}
.brand .title{font-family:Georgia,serif; color:var(--penn-navy); font-weight:700; font-size:1.35rem; line-height:1.15}
.brand .sub{font-size:.8rem; color:var(--penn-muted); letter-spacing:.04em; text-transform:uppercase}

/* Nav */
.nav-wrap{background:var(--penn-navy)}
.primary-nav{display:flex; gap:0; flex-wrap:wrap}
.primary-nav > li{position:relative; list-style:none}
.primary-nav > li > a{
  display:block; color:#fff; padding:.9rem 1rem; font-weight:600; font-size:.92rem;
  text-transform:uppercase; letter-spacing:.03em; text-decoration:none;
  border-right:1px solid rgba(255,255,255,.08);
}
.primary-nav > li:hover > a,
.primary-nav > li > a:focus,
.primary-nav > li > a[aria-current="page"]{background:var(--penn-navy-dark); text-decoration:none}
.primary-nav .dropdown{
  position:absolute; left:0; top:100%; min-width:260px; background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.12); border-top:3px solid var(--penn-red);
  display:none; z-index:50; padding:.25rem 0;
}
.primary-nav > li:hover > .dropdown,
.primary-nav > li.open > .dropdown{display:block}
.dropdown li{list-style:none}
.dropdown a{display:block; padding:.65rem 1rem; color:var(--penn-navy); font-size:.9rem; border-bottom:1px solid #eee}
.dropdown a:hover{background:var(--penn-cream); text-decoration:none}
.dropdown li:last-child a{border-bottom:none}

.nav-toggle{display:none; background:none; border:0; color:#fff; font-size:1.5rem; padding:.75rem 1rem; cursor:pointer}

/* Breadcrumb */
.crumbs{background:var(--penn-cream); border-bottom:1px solid var(--penn-border); font-size:.85rem; color:var(--penn-muted)}
.crumbs .inner{padding:.6rem 0}
.crumbs a{color:var(--penn-link)}
.crumbs .sep{margin:0 .4rem; color:#aaa}

/* Hero */
.hero{position:relative; background:var(--penn-navy); color:#fff; overflow:hidden}
.hero .slide{position:relative; min-height:380px; display:flex; align-items:center; justify-content:center;
  background-size:cover; background-position:center; background-repeat:no-repeat;}
.hero .slide::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(1,31,91,.55), rgba(1,31,91,.75));}
.hero .slide .caption{position:relative; z-index:2; text-align:center; padding:3rem 1rem; max-width:900px}
.hero .slide h1, .hero .slide h2{color:#fff}
.hero .slide h1{font-size:2.6rem}
.hero .slide p{font-size:1.1rem; opacity:.95}
.hero .slides{position:relative}
.hero .slide{display:none}
.hero .slide.active{display:flex}
.hero .nav-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,.35); color:#fff; border:0; width:44px; height:44px;
  font-size:1.4rem; cursor:pointer; z-index:3; border-radius:2px;
}
.hero .nav-arrow:hover{background:rgba(0,0,0,.6)}
.hero .nav-arrow.prev{left:1rem} .hero .nav-arrow.next{right:1rem}
.hero .dots{position:absolute; bottom:1rem; left:0; right:0; text-align:center; z-index:3}
.hero .dots button{width:10px;height:10px;border-radius:50%; border:0; background:rgba(255,255,255,.5); margin:0 4px; cursor:pointer; padding:0}
.hero .dots button.active{background:#fff}

/* Page banner (non-home) */
.page-banner{
  background:var(--penn-navy); color:#fff; padding:3rem 0; position:relative;
  background-image:linear-gradient(180deg, rgba(1,31,91,.75), rgba(1,31,91,.9)), linear-gradient(135deg,#0a2a6b,#011F5B);
}
.page-banner h1{color:#fff; margin:0}
.page-banner p{opacity:.9; margin:.5rem 0 0}

/* Main content */
main{padding:2.5rem 0}
section.block{margin:2rem 0}

/* Intro/About */
.lede{font-size:1.1rem; color:var(--penn-muted)}
.rule-under{border-bottom:3px solid var(--penn-red); display:inline-block; padding-bottom:.35rem; margin-bottom:1rem}

/* Feature cards */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
.card{background:#fff; border:1px solid var(--penn-border); border-top:4px solid var(--penn-red);
  padding:1.5rem; display:flex; flex-direction:column; gap:.75rem}
.card h3{margin:0; color:var(--penn-navy)}
.card p{margin:0; color:var(--penn-muted); font-size:.95rem}
.card .more{margin-top:auto; color:var(--penn-red); font-weight:600; text-transform:uppercase; font-size:.8rem; letter-spacing:.05em}

/* News list */
.news-list{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
.news-item{border-top:1px solid var(--penn-border); padding-top:1rem}
.news-item .date{color:var(--penn-muted); font-size:.8rem; text-transform:uppercase; letter-spacing:.05em}
.news-item h3{margin:.25rem 0 .5rem; font-size:1.1rem}

/* CTA strip */
.cta-strip{background:var(--penn-cream); padding:2.5rem 0; border-top:1px solid var(--penn-border); border-bottom:1px solid var(--penn-border)}
.cta-strip .inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap}
.btn{display:inline-block; background:var(--penn-red); color:#fff !important; padding:.75rem 1.25rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; font-size:.88rem; border:0; cursor:pointer}
.btn:hover{background:var(--penn-red-dark); text-decoration:none}
.btn-outline{background:transparent; color:var(--penn-navy) !important; border:2px solid var(--penn-navy); padding:.7rem 1.2rem}
.btn-outline:hover{background:var(--penn-navy); color:#fff !important}

/* Sidebar layout */
.with-sidebar{display:grid; grid-template-columns:260px 1fr; gap:2.5rem; align-items:flex-start}
.sidebar{background:var(--penn-cream); padding:1.25rem; border-top:3px solid var(--penn-navy)}
.sidebar h4{color:var(--penn-navy); margin:0 0 .5rem; font-size:1rem; text-transform:uppercase; letter-spacing:.04em}
.sidebar ul{list-style:none; padding:0; margin:0}
.sidebar li a{display:block; padding:.45rem 0; border-bottom:1px solid #e3ddd1; color:var(--penn-navy)}
.sidebar li a:hover, .sidebar li a.active{color:var(--penn-red); font-weight:600}

/* Leadership grid */
.people{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
.person{border:1px solid var(--penn-border); padding:1.25rem; text-align:center}
.person .avatar{width:140px;height:140px;border-radius:50%; background:var(--penn-cream); margin:0 auto 1rem; display:flex; align-items:center; justify-content:center; font-size:2rem; color:var(--penn-navy); font-family:Georgia,serif; border:3px solid var(--penn-border)}
.person h3{font-size:1.05rem; margin:.25rem 0}
.person .role{color:var(--penn-red); font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:.5rem}
.person p{font-size:.9rem; color:var(--penn-muted); margin:0}

/* Agenda timeline */
.agenda{border-top:2px solid var(--penn-navy)}
.agenda .row{display:grid; grid-template-columns:140px 1fr; gap:1.5rem; padding:1.25rem 0; border-bottom:1px solid var(--penn-border)}
.agenda .time{color:var(--penn-red); font-weight:700; font-family:Georgia,serif}
.agenda .session h3{margin:0 0 .25rem; font-size:1.1rem}
.agenda .session .speaker{color:var(--penn-muted); font-size:.9rem}

/* Tables */
.data-table{width:100%; border-collapse:collapse; margin:1rem 0}
.data-table th{background:var(--penn-navy); color:#fff; text-align:left; padding:.75rem; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em}
.data-table td{padding:.75rem; border-bottom:1px solid var(--penn-border); font-size:.95rem; vertical-align:top}
.data-table tr:nth-child(even) td{background:var(--penn-cream)}

/* Photo grid */
.photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem}
.photo-grid .tile{aspect-ratio:4/3; background:linear-gradient(135deg,#0a2a6b,#011F5B); color:#fff; display:flex; align-items:center; justify-content:center; font-family:Georgia,serif; font-size:.9rem; text-align:center; padding:1rem}
.photo-grid .tile:nth-child(3n+1){background:linear-gradient(135deg,#990000,#660000)}
.photo-grid .tile:nth-child(3n+2){background:linear-gradient(135deg,#3a5a8a,#1b2e5b)}

/* Exhibitor logos */
.logo-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem}
.logo-grid .logo{border:1px solid var(--penn-border); aspect-ratio:3/2; display:flex; align-items:center; justify-content:center; color:var(--penn-muted); font-family:Georgia,serif; background:#fff}

/* Webinar cards */
.webinar{display:grid; grid-template-columns:220px 1fr; gap:1.25rem; padding:1.25rem 0; border-bottom:1px solid var(--penn-border)}
.webinar .thumb{aspect-ratio:16/9; background:linear-gradient(135deg,#0a2a6b,#011F5B); color:#fff; display:flex; align-items:center; justify-content:center; font-family:Georgia,serif}

/* Form */
.form-field{display:block; margin:0 0 1rem}
.form-field label{display:block; font-weight:600; font-size:.9rem; color:var(--penn-navy); margin-bottom:.3rem}
.form-field input, .form-field textarea, .form-field select{width:100%; padding:.65rem; border:1px solid var(--penn-border); font-family:inherit; font-size:1rem; background:#fff}
.form-field textarea{min-height:140px; resize:vertical}

/* Footer */
.site-footer{background:var(--penn-navy); color:#cfd6e3; margin-top:3rem}
.site-footer .top{padding:2.5rem 0; display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem}
.site-footer h4{color:#fff; font-size:.95rem; text-transform:uppercase; letter-spacing:.05em; margin:0 0 .75rem}
.site-footer a{color:#cfd6e3}
.site-footer ul{list-style:none; padding:0; margin:0}
.site-footer li{margin:.3rem 0; font-size:.9rem}
.site-footer .bottom{border-top:1px solid rgba(255,255,255,.15); padding:1rem 0; font-size:.8rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem}
.site-footer .bottom a{margin:0 .75rem 0 0}

/* Skip link */
.skip{position:absolute; left:-9999px; top:0}
.skip:focus{left:.5rem; top:.5rem; background:#fff; color:var(--penn-navy); padding:.5rem .75rem; z-index:100}

/* Responsive */
@media (max-width: 900px){
  .feature-grid, .news-list, .people, .logo-grid{grid-template-columns:repeat(2,1fr)}
  .with-sidebar{grid-template-columns:1fr}
  .site-footer .top{grid-template-columns:1fr}
  .webinar{grid-template-columns:1fr}
}
@media (max-width: 768px){
  .nav-toggle{display:block}
  .primary-nav{display:none; flex-direction:column; width:100%}
  .primary-nav.open{display:flex}
  .primary-nav > li{width:100%}
  .primary-nav > li > a{border-right:0; border-bottom:1px solid rgba(255,255,255,.08)}
  .primary-nav .dropdown{position:static; box-shadow:none; border-top:0; background:rgba(0,0,0,.15); display:none; padding:0}
  .primary-nav > li.open > .dropdown{display:block}
  .primary-nav .dropdown a{color:#fff; padding-left:2rem; border-bottom:1px solid rgba(255,255,255,.08)}
  .primary-nav .dropdown a:hover{background:rgba(0,0,0,.25)}
  .hero .slide{min-height:280px}
  .hero .slide h1{font-size:1.8rem}
  .feature-grid, .news-list, .people, .photo-grid, .logo-grid{grid-template-columns:1fr}
  .agenda .row{grid-template-columns:1fr}
  .util-bar{display:none}
}
