@import url('https://fonts.googleapis.com/css2?family=Lobster&display=swap');

/* VARIABLES ------------------------------------------------------------ */
:root {
  --color-bg: #f3f4f6;
  --color-primary: #c62828;
  --color-text: #212121;
  --color-muted: #555;
  --font-base: 16px;
  --gap: 1rem;
  --breakpoint: 768px;
}

/* RESET & BASE --------------------------------------------------------- */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font: var(--font-base)/1.5 sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
}

/* HEADER & LOGO -------------------------------------------------------- */
.site-header {
  background: #fff;
  display: flex;
  align-items: center;
  padding: var(--gap);
}
.logo {
  font-family: 'Lobster', cursive;
  font-size: 2.2rem;
  color: var(--color-primary);
  text-decoration: none;
  text-shadow: 1px 1px 0 #fff;
  line-height: 1;
  letter-spacing: 1px;
}
.logo::after {
  content: '';
  display: block;
  width: 70%;
  height: 3px;
  background: repeating-linear-gradient(
    45deg,
    #c62828,
    #c62828 2px,
    transparent 2px,
    transparent 6px
  );
  margin: 0.3rem auto 0;
}
#nav-toggle { display: none; background: none; border: none; font-size: 1.5rem; margin-left: auto; cursor: pointer; }
.primary-nav { margin-left: auto; }
.primary-nav ul { list-style: none; display: flex; gap: var(--gap); }
.primary-nav a { text-decoration: none; color: var(--color-text); transition: color .2s; }
.primary-nav a:hover { color: var(--color-primary); }

/* FILTER BAR ----------------------------------------------------------- */
.filter-section { max-width: 1000px; margin: 2rem auto; padding: 0 var(--gap); }
.filter-section h2 { margin-bottom: .25rem; }
.filter-section p  { margin-bottom: .75rem; }
.filter-bar {
  background: #fff;
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
  gap: var(--gap);
  padding: var(--gap);
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,.1);
}
.filter-bar label { display: flex; flex-direction: column; font-weight: bold; }
.filter-bar select { margin-top: .5rem; padding: .5rem; border: 1px solid #ccc; border-radius: 4px; }
.filter-bar .btn { align-self: end; margin-top: 1.8rem; }

/* PROMO BANNER --------------------------------------------------------- */
.promo-banner { text-align: center; margin: 2rem auto; max-width: 800px; }
.promo-banner hr { border: none; border-top: 1px solid #ccc; }
.promo-banner p { padding: .75rem 0; font-weight: bold; }

/* HERO BANNER ---------------------------------------------------------- */
.hero-banner {
  position: relative;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  overflow: hidden;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
  filter: brightness(0.7);
}
.hero-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
  padding: 2rem 1rem;
  pointer-events: none;
}
.hero-overlay h1 {
  font-size: 2.4rem;
  margin-bottom: 0.7rem;
}
.hero-overlay p {
  font-size: 1.15rem;
  max-width: 700px;
  margin: 0 auto;
}

/* CARDS GRID ----------------------------------------------------------- */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(300px,1fr));
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto 2rem;
  padding: 2rem;
}
.card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform 0.2s, box-shadow 0.2s;
}
.card:hover { transform: translateY(-4px); box-shadow: 0 6px 12px rgba(0,0,0,0.15); }
.card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
  background: #eee;
  padding: 0.5rem;
  border-bottom: 1px solid #eee;
}
.card-content {
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.card-content h3 { margin-bottom: 0.25rem; font-size: 1.1rem; }
.card-content .degree { font-style: italic; color: #666; margin-bottom: 0.5rem; }
.card-content .school { font-weight: bold; margin-bottom: 0.75rem; color: #444; }
.card-content p { flex-grow: 1; margin-bottom: 1rem; line-height: 1.5; }
.card-content a {
  color: var(--color-primary);
  font-weight: bold;
  text-decoration: none;
  transition: color 0.2s;
}
.card-content a:hover { color: #a81c1c; }
.hidden { display: none; }

/* NEWS & EVENTS -------------------------------------------------------- */
.news-events {
  display: grid; grid-template-columns: 2fr 1fr; gap: var(--gap);
  max-width: 1200px; margin: 0 auto 2rem; padding: 0 var(--gap);
}
.news h2, .events h2 { margin-bottom: .5rem; font-size: 1.25rem; }
.news article { margin-bottom: var(--gap); }
.news article h3 { font-size: 1.1rem; margin-bottom: .25rem; }
.news time { font-size: .85rem; color: var(--color-muted); }
.events .event-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  margin-top: 1rem;
  text-align: left;
}
.event-card img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.event-details { padding: 1rem; }
.read-more { color: var(--color-primary); text-decoration: none; }
.read-more:hover { text-decoration: underline; }

/* === SECTION HEADER === */
.page-header {
  text-align: center;
  padding: 2rem 1rem 1rem;
  max-width: 800px;
  margin: 0 auto;
}

.page-header h1 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.page-header p {
  color: #555;
  font-size: 1rem;
}

.event-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  margin-top: 1rem;
  text-align: left;
}

.event-card img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.event-details {
  padding: 1rem;
}

/* FOOTER --------------------------------------------------------------- */
.site-footer {
  text-align: center;
  padding: var(--gap);
  background: #fff;
  font-size: .9rem;
  color: var(--color-muted);
}

/* MOBILE --------------------------------------------------------------- */
@media (max-width: 768px) {
  #nav-toggle { display: block; margin-left: auto; }
  .primary-nav { display: none; flex-direction: column; gap: .5rem; margin-top: var(--gap); }
  .primary-nav.open { display: flex; }
  .primary-nav ul { flex-direction: column; gap: .5rem; }
  .news-events { grid-template-columns: 1fr; }
  .filter-bar { grid-template-columns: 1fr; }
  .cards-grid { padding: 1rem; gap: 1rem; }
  .hero-img { height: 180px; }
}
