@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600&display=swap');
* { box-sizing: border-box; }
body { margin:0; font-family:'DM Sans',sans-serif; background:#f8faf4; color:#1a2410; }

.page-header {
  width:100%; background:linear-gradient(135deg,#1c3d28 0%,#2d5a3d 55%,#d9a441 100%);
  color:#fff; text-align:center; padding:100px 20px 60px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative;
}
.page-header h1 { font-family:'Cormorant Garamond',serif; font-size:2.6rem; margin:0 0 8px; }
.page-header p { color:rgba(255,255,255,.82); margin:0; font-size:1.05rem; }

.events-section { max-width:1100px; margin:0 auto; padding:50px 20px; }
.section-title {
  font-family:'Cormorant Garamond',serif; color:#1c3d28; font-size:1.9rem;
  border-bottom:2px solid #6fcf87; padding-bottom:10px; margin-bottom:26px;
}
.past-section { background:#eef4ea; max-width:none; }
.past-section .inner { max-width:1100px; margin:0 auto; }

.event-list { display:flex; flex-direction:column; gap:26px; }
.event-card {
  display:grid; grid-template-columns:260px 1fr; background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.08); border:1px solid rgba(28,61,40,.08);
  transition:transform .25s ease, box-shadow .25s ease;
}
.event-card:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,.14); }
.event-flyer {
  background:#eef1ea; cursor:zoom-in; display:flex; align-items:center; justify-content:center; min-height:320px;
}
.event-flyer img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.event-flyer.no-flyer { cursor:default; color:#8a9a82; font-size:.9rem; padding:20px; text-align:center; }
.event-body { padding:24px 28px; display:flex; flex-direction:column; gap:10px; }
.event-date {
  align-self:flex-start; background:linear-gradient(135deg,#1c3d28,#2d5a3d); color:#fff;
  padding:6px 16px; border-radius:30px; font-size:.85rem; font-weight:600; letter-spacing:.3px;
}
.event-date i { margin-right:6px; color:#d9a441; }
.event-body h3 { margin:4px 0 0; color:#1c3d28; font-family:'Cormorant Garamond',serif; font-size:1.6rem; }
.event-meta { display:flex; flex-wrap:wrap; gap:8px 18px; color:#555; font-size:.9rem; }
.event-meta i { color:#2d5a3d; margin-right:5px; }
.event-body p { margin:0; color:#555; font-size:.95rem; line-height:1.6; }
.event-badge {
  align-self:flex-start; background:#fff4d9; color:#8a6410; border:1px solid #d9a441;
  padding:3px 12px; border-radius:20px; font-size:.75rem; font-weight:700; text-transform:uppercase;
}
.event-card.past { opacity:.85; }
.event-card.past .event-date { background:#7a8a72; }

.no-events {
  background:#fff; border:1px dashed rgba(28,61,40,.3); border-radius:14px;
  padding:40px 20px; text-align:center; color:#666;
}

.lightbox {
  position:fixed; inset:0; background:rgba(0,0,0,.88); display:none; align-items:center; justify-content:center;
  z-index:10000; padding:20px; cursor:zoom-out;
}
.lightbox.open { display:flex; }
.lightbox img { max-width:100%; max-height:92vh; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.6); }
.lightbox-close { position:absolute; top:16px; right:22px; color:#fff; font-size:2rem; cursor:pointer; }

@media (max-width:700px) {
  .event-card { grid-template-columns:1fr; }
  .event-flyer { min-height:0; aspect-ratio:4/5; }
  .event-body { padding:20px; }
  .page-header h1 { font-size:2rem; }
}

/* ---------- Footer (same as site pages) ---------- */
/* ============================================================
   FOOTER (added — was missing from council.css, causing the
   footer to render unstyled on Student Council & Pictorial pages)
   ============================================================ */

footer {
  background: #142a1c;
  color: #c8e8c4;
  padding: 56px 40px 28px;
  border-top: 1px solid rgba(120, 180, 120, 0.12);
}

.footer-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  gap: 32px;
}

.footer-col h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #6fcf87;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(168, 213, 162, 0.2);
  display: inline-block;
}

.footer-col ul { list-style: none; padding: 0; }
.footer-col ul li { margin: 9px 0; }

.footer-col ul li a {
  text-decoration: none;
  color: rgba(200, 232, 196, 0.5);
  font-size: 0.9rem;
  transition: color 0.25s ease;
}

.footer-col ul li a:hover { color: #6fcf87; }

.map-container iframe {
  border-radius: 12px;
  width: 100%;
  min-width: 260px;
  height: 200px;
  border: none;
  opacity: 0.9;
}

.footer-text {
  text-align: center;
  margin-top: 32px;
  color: rgba(168, 213, 162, 0.35);
  font-size: 0.85rem;
  line-height: 1.8;
}

.footer-text strong { color: rgba(168, 213, 162, 0.6); }

/* ---------- Social icons (footer) ---------- */
.social-icons { margin-top: 18px; text-align: center; }
.social-icons a {
  display: inline-block;
  margin: 0 10px;
  font-size: 18px;
  transition: transform 0.3s ease, opacity 0.3s ease;
  opacity: 0.7;
}
.social-icons a:hover { transform: scale(1.2); opacity: 1; }
.social-icons a.facebook { color: #1877f2; }
.social-icons a.instagram { color: #E1306C; }

.meet-team-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #d9a441, #b9852f);
  color: #142a1c;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  padding: 13px 30px;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(217,164,65,0.35);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.meet-team-btn:hover {
  background: linear-gradient(135deg, #6fcf87, #4caf7d);
  color: #142a1c;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(111,207,135,0.4);
}
.footer-bottom { text-align: center; margin-top: 34px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.1); }

/* Landscape flyers (e.g. Academic Days) — show the whole flyer instead of cropping */
.event-card.landscape { grid-template-columns:420px 1fr; }
.event-card.landscape .event-flyer { min-height:0; background:#0b1a3a; }
.event-card.landscape .event-flyer img { height:auto; object-fit:contain; }
@media (max-width:760px) {
  .event-card.landscape { grid-template-columns:1fr; }
}
