:root{
  --wvu-blue:#002855; --wvu-gold:#ffd100;
  --ink:#0b2545; --muted:#5b6777; --bg:#f7f9fc;
  
  /* Light theme (default) */
  --bg-primary: #f7f9fc;
  --bg-secondary: #ffffff;
  --text-primary: #111111;
  --text-secondary: #5b6777;
  --text-muted: #999999;
  --border-color: #e6e9ef;
  --border-light: #f0f0f0;
  --card-bg: #ffffff;
  --header-bg: linear-gradient(180deg,#0f3465 0%,#002855 100%);
  --footer-bg: #123e7a;
}

/* Dark theme */
[data-theme="dark"] {
  --bg-primary: #0f1419;
  --bg-secondary: #1a1f2e;
  --text-primary: #e6e9ef;
  --text-secondary: #a8b2c4;
  --text-muted: #6b7583;
  --border-color: #2a3441;
  --border-light: #232938;
  --card-bg: #1a1f2e;
  --header-bg: linear-gradient(180deg,#000811 0%,#001122 100%);
  --footer-bg: #000811;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg-primary);color:var(--text-primary);font:16px/1.6 system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;transition:background-color 0.3s ease, color 0.3s ease}
a{color:#1b4d8a;text-decoration:none} a:hover{text-decoration:underline}
.wrapper{max-width:1120px;margin:0 auto;padding:0 22px}
header.site{background:var(--header-bg);color:#fff}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px}

/* Hero Header Banner */
.hero-header{
  background-image:url('/assets/header.jpg');
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
  background-color:#f7f9fc;
  height:160px;
  position:relative
}
@media (max-width:768px){
  .hero-header{height:120px;background-size:cover}
}
.brand{display:flex;align-items:center;gap:12px;padding:6px 12px;border-radius:12px;background:#ffffff;box-shadow:0 6px 22px rgba(0,0,0,.22)}
.brand-wrap{display:flex;justify-content:center;align-items:center;width:100%;padding:12px 0}
.brand img{width:72px;height:72px;border-radius:12px;object-fit:cover;display:block;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.site-logo{display:block;height:64px;width:auto;object-fit:contain;filter:none!important;opacity:1!important}
nav{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding-bottom:10px}
nav a{color:#ffd56e;margin:0 4px;font-weight:600}
nav a.active{box-shadow:inset 0 -3px 0 var(--wvu-gold)}
nav a.btn{background:var(--wvu-gold);color:var(--wvu-blue);border-radius:999px;padding:.45rem .8rem}
main{padding:22px 0 28px}
h1,h2,h3{color:var(--text-primary);margin:16px 0 10px 0;font-weight:800}
.lead{font-size:18px;color:var(--text-primary)}
.small{font-size:14px;color:var(--text-secondary)}
.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:18px;transition:background-color 0.3s ease, border-color 0.3s ease}
.btn{display:inline-block;background:var(--wvu-gold);color:var(--wvu-blue);
     border-radius:999px;padding:.6rem 1rem;font-weight:800;text-decoration:none}
.btn:hover{filter:brightness(.96);text-decoration:none}
.btn.outline{background:#eef3ff;border:1px solid #cad6ee}
footer.site-footer{background:var(--footer-bg);color:#fff;margin-top:28px;padding:14px 0}
footer.site-footer .links a{color:var(--wvu-gold);margin-right:14px;display:inline-block;padding:8px 0}
footer.site-footer .meta{color:#dfe7f5;font-size:14px;padding-bottom:12px}
.photo-strip{display:grid;grid-auto-flow:column;gap:8px;overflow:auto;padding:6px 2px}
.photo-strip img{height:70px;width:170px;object-fit:cover;border-radius:8px}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
@media (min-width:940px){ .grid-2{grid-template-columns:1fr 1fr} .grid-3{grid-template-columns:1fr 1fr 1fr} }
.hp-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;transition:background-color 0.3s ease, border-color 0.3s ease}
.hp-card img{width:100%;height:190px;object-fit:cover;display:block}
.hp-body{padding:14px}
.hp-body h3{margin:4px 0 6px 0;color:#0b2a55;font-weight:800}
.hp-body p{margin:0 0 10px 0;color:#223}
.program-img{display:block;width:100%;height:260px;object-fit:cover}
img.natural{width:auto;max-width:520px;height:auto}

form.stack{display:grid;gap:12px;max-width:680px}
form.stack .row{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:720px){form.stack .row{grid-template-columns:1fr 1fr}}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select{
  width:100%;padding:10px;border:1px solid var(--border-color);border-radius:10px;background:var(--card-bg);color:var(--text-primary);font:inherit;transition:all 0.3s ease
}
input:focus,textarea:focus,select:focus{
  outline:none;border-color:var(--wvu-gold);box-shadow:0 0 0 3px rgba(255, 209, 0, 0.1)
}
.pp-W2QGQMAKX8TWN{
  text-align:center;border:none;border-radius:0.25rem;min-width:11.625rem;
  padding:0 2rem;height:2.625rem;font-weight:bold;background-color:#FFD140;
  color:#000000;font-family:"Helvetica Neue",Arial,sans-serif;font-size:1rem;line-height:1.25rem;cursor:pointer;
}
iframe.embed{width:100%;min-height:900px;border:1px solid #e6e9ef;border-radius:12px;background:#fff}

/* --- Header nav & dropdown --- */
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.nav { display:flex; align-items:center; gap:14px; }
.nav a { text-decoration:none; font-weight:600; }
.nav-ctas { display:flex; gap:10px; margin-left:auto; }

/* Dropdown */
.menu.dropdown { position:relative; }
.dropbtn { background:none; border:0; font:inherit; font-weight:700; cursor:pointer; padding:8px 4px; color:#ffd56e; transition:all 0.2s ease; }
.dropbtn:after { content:"▼"; font-size:0.7em; margin-left:4px; opacity:0.7; }
.dropbtn:hover, .dropbtn:focus { background:rgba(255, 213, 110, 0.1); border-radius:4px; outline:none; }
.dropbtn:active { background:rgba(255, 213, 110, 0.2); transform:translateY(1px); }
.dropdown-panel {
  position:absolute; top:100%; left:0; min-width:240px; z-index:30;
  background:#fff; border:1px solid #e2e6ef; border-radius:12px; padding:8px; box-shadow:0 8px 24px rgba(0,0,0,.12);
  display:none;
}
.menu.dropdown:focus-within .dropdown-panel,
.menu.dropdown:hover .dropdown-panel,
.menu.dropdown.open .dropdown-panel { display:block !important; }
.dropdown-panel a { display:block; padding:8px 10px; border-radius:8px; }
.dropdown-panel a:hover { background:#f4f6fb; }

/* Dark mode toggle */
.theme-toggle {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 20px;
  padding: 6px 12px;
  color: #ffd56e;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.3s ease;
}

.theme-toggle:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.5);
}

/* Mobile nav */
.nav-toggle { display:none; background:none; border:1px solid #cfd6e6; border-radius:8px; padding:6px 10px; font-size:1.1rem; }
@media (max-width: 900px) {
  .nav-toggle { display:block; }
  .nav { display:none; position:absolute; top:64px; left:0; right:0; background:#fff; border-top:1px solid #e6ebf5; padding:12px; flex-direction:column; gap:10px; }
  .nav.open { display:flex; }
  .nav-ctas { margin-left:0; }
  .menu.dropdown .dropdown-panel { position:static; display:none; box-shadow:none; border:0; padding:0; }
  .menu.dropdown.open .dropdown-panel { display:block; }
}

/* --- Footer --- */
.site-footer { background:#123e7a; color:#fff; padding:14px 0; margin-top:40px; }
.site-footer a { color:#ffd100; }
.footer-grid { display:grid; gap:20px; grid-template-columns:1fr; }
.footer-links { display:grid; gap:6px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.18); margin-top:10px; padding-top:10px; }
/* Compact footer bar */
.footer-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.footer-meta { border-top:1px solid rgba(255,255,255,.18); margin-top:8px; padding-top:8px; }
.footer-bar .brandline { font-weight:800; }
.btn.small { padding:.4rem .7rem; font-size:14px; }
@media (min-width: 900px) {
  .footer-grid { grid-template-columns: 2fr 1fr 1fr; }
}

/* --- Search Component --- */
.search-wrapper {
  max-width: 480px;
  margin: 0 auto;
  position: relative;
}

.search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

#search-input {
  width: 100%;
  padding: 12px 16px;
  padding-right: 40px;
  border: 2px solid var(--border-color);
  border-radius: 24px;
  font-size: 16px;
  background: var(--card-bg);
  color: var(--text-primary);
  transition: all 0.3s ease;
}

#search-input:focus {
  outline: none;
  border-color: var(--wvu-gold);
  box-shadow: 0 0 0 3px rgba(255, 209, 0, 0.1);
}

#search-clear {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  font-size: 20px;
  color: #999;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  line-height: 1;
}

#search-clear:hover {
  background: #f0f0f0;
  color: #666;
}

.search-filters {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin: 12px 0;
  font-size: 14px;
}

.search-filters label {
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  color: var(--muted);
}

.search-filters input[type="checkbox"] {
  width: auto;
  margin: 0;
}

.search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  z-index: 100;
  max-height: 400px;
  overflow-y: auto;
}

.search-status {
  padding: 12px 16px;
  font-size: 14px;
  color: var(--muted);
  border-bottom: 1px solid #f0f0f0;
  background: #f8f9fa;
}

.results-list {
  padding: 8px 0;
}

.search-result {
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.search-result:last-child {
  border-bottom: none;
}

.search-result:hover {
  background: #f8f9fa;
}

.result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.result-title {
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  flex: 1;
}

.result-title:hover {
  color: var(--wvu-blue);
  text-decoration: underline;
}

.result-type {
  font-size: 12px;
  padding: 2px 6px;
  background: #e8f0fe;
  color: #1a5490;
  border-radius: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.result-meta {
  font-size: 13px;
  color: var(--muted);
}

.no-results {
  padding: 20px 16px;
  text-align: center;
  color: var(--muted);
  font-style: italic;
}

.search-result mark {
  background: rgba(255, 209, 0, 0.3);
  padding: 1px 2px;
  border-radius: 2px;
}

/* Compact search for header */
.search-compact .search-wrapper {
  max-width: 280px;
}

.search-compact #search-input {
  padding: 8px 12px;
  padding-right: 32px;
  font-size: 14px;
}

.search-compact .search-filters {
  display: none;
}

/* --- Theme Toggle Styles --- */
.theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  color: #ffd56e;
  font-size: 16px;
  transition: all 0.3s ease;
}

.theme-toggle:hover {
  background: rgba(255, 213, 110, 0.1);
  transform: scale(1.05);
}

.theme-toggle:focus {
  outline: 2px solid var(--wvu-gold);
  outline-offset: 2px;
}

.theme-icon {
  font-size: 18px;
  line-height: 1;
}

.theme-text {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

@media (max-width: 900px) {
  .theme-toggle {
    justify-self: end;
    margin-right: 8px;
  }
  
  .theme-text {
    display: none;
  }
}

/* --- PWA Styles --- */
.pwa-install-btn {
  background: rgba(255, 209, 0, 0.1);
  border: 1px solid rgba(255, 209, 0, 0.3);
  color: #ffd56e;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  transition: all 0.3s ease;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.pwa-install-btn:hover {
  background: rgba(255, 209, 0, 0.2);
  border-color: var(--wvu-gold);
  transform: translateY(-1px);
}

.pwa-install-btn .install-icon {
  font-size: 14px;
}

.pwa-floating {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
  background: var(--wvu-gold) !important;
  color: var(--wvu-blue) !important;
  border: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  padding: 12px 16px;
  border-radius: 25px;
  font-weight: 700;
}

.pwa-floating:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.pwa-update-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1000;
  background: var(--card-bg);
  border: 1px solid var(--wvu-gold);
  border-radius: 8px;
  padding: 12px 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  animation: slideInRight 0.3s ease-out;
}

.update-content {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
}

.update-content button {
  background: var(--wvu-gold);
  color: var(--wvu-blue);
  border: none;
  padding: 4px 8px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
}

.update-content button:last-child {
  background: #ccc;
  color: #666;
  padding: 2px 6px;
}

.pwa-installed-message {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
  background: var(--card-bg);
  border: 2px solid #28a745;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  animation: fadeInScale 0.5s ease-out;
}

.installed-content {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  font-weight: 600;
  color: #28a745;
}

.installed-content .install-icon {
  font-size: 24px;
}

/* Offline status indicator */
.offline .site-footer::before {
  content: "⚠️ You're offline - Some features may be limited";
  display: block;
  text-align: center;
  background: #ff9800;
  color: #000;
  padding: 8px;
  font-weight: 600;
  font-size: 14px;
}

.online .site-footer::before {
  display: none;
}

/* PWA animations */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(100%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* PWA responsive adjustments */
@media (max-width: 900px) {
  .pwa-install-btn .install-text {
    display: none;
  }
  
  .pwa-floating {
    bottom: 80px;
    right: 16px;
    padding: 10px 12px;
  }
  
  .pwa-update-notification {
    top: 10px;
    right: 10px;
    left: 10px;
    right: 10px;
  }
}

/* --- Image Optimization & Lazy Loading --- */
img.lazy-loading {
  filter: blur(2px);
  transition: filter 0.3s ease, opacity 0.3s ease;
}

img.lazy-loaded {
  filter: none;
}

img.lazy-error {
  background: #f0f0f0;
  color: #999;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100px;
}

img.lazy-error::before {
  content: '⚠️ Image failed to load';
  font-size: 14px;
}

/* Responsive images */
picture img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Photo strip optimization */
.photo-strip img {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.photo-strip img:hover {
  transform: scale(1.05);
}

/* Performance hints for browsers */
img[loading="lazy"] {
  content-visibility: auto;
}

/* Critical images should load immediately */
.site-logo,
.brand img,
img.critical {
  content-visibility: auto;
}

/* Smooth loading animation */
@keyframes imageLoad {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.lazy-loaded {
  animation: imageLoad 0.3s ease-out;
}

/* WebP support detection */
.webp .webp-fallback {
  display: none;
}

.no-webp .webp-image {
  display: none;
}

/* --- Mobile Enhancements --- */
.mobile-device {
  -webkit-tap-highlight-color: rgba(255, 209, 0, 0.3);
  -webkit-touch-callout: none;
}

/* Click-to-call and email links */
.mobile-phone-link,
.mobile-email-link {
  color: var(--wvu-blue);
  text-decoration: none;
  padding: 2px 4px;
  border-radius: 3px;
  background: rgba(255, 209, 0, 0.1);
  transition: all 0.2s ease;
}

.mobile-phone-link:hover,
.mobile-email-link:hover,
.mobile-phone-link:active,
.mobile-email-link:active {
  background: rgba(255, 209, 0, 0.2);
  text-decoration: none;
}

/* Touch feedback */
.touch-active {
  transform: scale(0.98);
  transition: transform 0.1s ease;
}

.touch-moving {
  transition: none;
}

/* Pull to refresh indicator */
.pull-refresh-indicator {
  position: fixed;
  top: -50px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  background: var(--wvu-gold);
  color: var(--wvu-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: bold;
  z-index: 1000;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
}

.pull-refresh-indicator.ready {
  background: #28a745;
  color: white;
}

.pull-refresh-indicator.refreshing {
  animation: spin 1s linear infinite;
}

/* Mobile toast notifications */
.mobile-toast {
  position: fixed;
  bottom: 100px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 12px 20px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 600;
  z-index: 1000;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
}

.mobile-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Enhanced mobile navigation */
.mobile-enhanced .nav {
  -webkit-overflow-scrolling: touch;
}

.mobile-enhanced .nav.open {
  max-height: calc(100vh - 80px);
  overflow-y: auto;
}

/* Better touch targets */
.mobile-device button,
.mobile-device .btn,
.mobile-device a.btn,
.mobile-device .dropbtn {
  min-height: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
}

/* Photo strip mobile enhancements */
.mobile-device .photo-strip {
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
}

.mobile-device .photo-strip img {
  scroll-snap-align: start;
  touch-action: pan-x;
}

/* Form improvements for mobile */
.mobile-device input,
.mobile-device textarea,
.mobile-device select {
  font-size: 16px; /* Prevents zoom on iOS */
  -webkit-appearance: none;
  border-radius: 8px;
}

.mobile-device input:focus,
.mobile-device textarea:focus,
.mobile-device select:focus {
  border-color: var(--wvu-gold);
  box-shadow: 0 0 0 3px rgba(255, 209, 0, 0.2);
}

/* Smooth scrolling */
.mobile-device {
  scroll-behavior: smooth;
}

/* Hide elements that aren't needed on mobile */
@media (max-width: 768px) {
  .mobile-device .no-mobile {
    display: none !important;
  }
  
  /* Larger click targets */
  .mobile-device .card {
    padding: 20px;
  }
  
  /* Better spacing */
  .mobile-device .grid {
    gap: 16px;
  }
  
  /* Optimized search for mobile */
  .mobile-device .search-wrapper {
    margin: 0 -10px;
  }
  
  .mobile-device #search-input {
    font-size: 16px; /* Prevents zoom */
  }
}

/* Haptic feedback animation */
@keyframes hapticPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

.haptic-feedback {
  animation: hapticPulse 0.1s ease-out;
}

/* Spin animation for refresh */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Improved accessibility for mobile */
.mobile-device *:focus {
  outline: 2px solid var(--wvu-gold);
  outline-offset: 2px;
}

/* Status bar accommodation for PWA */
@media (display-mode: standalone) {
  body {
    padding-top: env(safe-area-inset-top);
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
  }
}

/* Dark mode mobile adjustments */
[data-theme="dark"] .mobile-toast {
  background: rgba(255, 255, 255, 0.9);
  color: #000;
}

[data-theme="dark"] .mobile-phone-link,
[data-theme="dark"] .mobile-email-link {
  background: rgba(255, 209, 0, 0.15);
}

/* --- Print Styles --- */
@media print {
  /* Hide navigation and non-essential elements */
  header.site,
  .nav-toggle,
  .search-wrapper,
  .search-compact,
  footer.site-footer,
  .btn,
  .photo-strip,
  #search-container {
    display: none !important;
  }

  /* Basic page setup */
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  body {
    font-family: "Times New Roman", Times, serif;
    font-size: 12pt;
    line-height: 1.4;
    margin: 0;
    padding: 0;
  }

  .wrapper {
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* Typography for print */
  h1, h2, h3, h4, h5, h6 {
    color: black !important;
    page-break-after: avoid;
    margin: 1em 0 0.5em 0;
  }

  h1 {
    font-size: 18pt;
    text-align: center;
    margin-bottom: 1em;
    border-bottom: 2pt solid black;
    padding-bottom: 0.5em;
  }

  h2 {
    font-size: 14pt;
    margin-top: 1.5em;
  }

  h3 {
    font-size: 12pt;
    font-weight: bold;
  }

  p, li {
    orphans: 3;
    widows: 3;
  }

  /* Links in print */
  a {
    text-decoration: underline;
    color: black !important;
  }

  a[href]:after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #666;
  }

  /* Don't print URLs for internal links */
  a[href^="/"]:after,
  a[href^="#"]:after,
  a[href^="mailto:"]:after {
    content: "";
  }

  /* Card styling for print */
  .card {
    border: 1pt solid #ccc;
    margin: 1em 0;
    padding: 1em;
    page-break-inside: avoid;
  }

  /* Tables */
  table {
    border-collapse: collapse;
    width: 100%;
    margin: 1em 0;
  }

  th, td {
    border: 1pt solid #ccc;
    padding: 0.5em;
    text-align: left;
  }

  th {
    background: #f0f0f0 !important;
    font-weight: bold;
  }

  /* Page breaks */
  .page-break {
    page-break-before: always;
  }

  .avoid-break {
    page-break-inside: avoid;
  }

  /* Specific print improvements for minutes and bylaws */
  main {
    padding: 0;
  }

  /* Meeting minutes specific styling */
  .minutes-entry {
    margin: 2em 0;
    padding: 1em;
    border: 1pt solid #ccc;
    page-break-inside: avoid;
  }

  .minutes-entry h3 {
    margin-top: 0;
    font-size: 14pt;
    border-bottom: 1pt solid #ccc;
    padding-bottom: 0.25em;
  }

  /* Grid layouts become single column for print */
  .grid,
  .grid-2,
  .grid-3 {
    display: block !important;
  }

  .grid > * {
    margin-bottom: 1em;
  }

  /* Print header with organization info */
  body::before {
    content: "Central Virginia Chapter of the WVU Alumni Association";
    display: block;
    text-align: center;
    font-weight: bold;
    font-size: 14pt;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 2pt solid black;
  }

  /* Print footer with page numbers */
  @page {
    margin: 1in;
    @bottom-center {
      content: "Page " counter(page) " of " counter(pages);
      font-size: 9pt;
    }
  }

  /* Hide decorative elements */
  .photo-strip,
  .hp-card img,
  .program-img,
  iframe,
  .embed {
    display: none !important;
  }

  /* Make forms print-friendly */
  input, textarea, select {
    border: 1pt solid #ccc !important;
    background: white !important;
    padding: 0.25em !important;
  }
}

/* --- Breadcrumb Navigation --- */
.breadcrumb {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 12px 16px;
  margin: 16px 0;
  font-size: 14px;
  color: var(--text-secondary);
}

.breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.breadcrumb-item a {
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.3s ease;
}

.breadcrumb-item a:hover {
  color: var(--wvu-blue);
  text-decoration: underline;
}

.breadcrumb-item:not(:last-child)::after {
  content: "›";
  color: var(--text-muted);
  font-weight: normal;
  margin-left: 8px;
}

.breadcrumb-current {
  color: var(--text-primary);
  font-weight: 600;
}

@media (max-width: 600px) {
  .breadcrumb {
    padding: 8px 12px;
    font-size: 13px;
  }
  
  .breadcrumb-list {
    gap: 4px;
  }
  
  .breadcrumb-item:not(:last-child)::after {
    margin-left: 4px;
  }
}

/* Print-specific utility classes */
.print-only {
  display: none;
}

@media print {
  .print-only {
    display: block !important;
  }
  
  .no-print {
    display: none !important;
  }
  
  .breadcrumb {
    display: none !important;
  }
}

/* Member Portal Styles */
.member-portal-link {
  background: linear-gradient(135deg, #007bff, #0056b3) !important;
  color: white !important;
  border-radius: 6px !important;
  padding: 6px 12px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.member-portal-link:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3) !important;
}

@media (max-width: 768px) {
  .member-portal-link {
    margin: 4px 0 !important;
    display: block !important;
  }
}

/* End of consolidated stylesheet */
