/* GENERAL LAYOUT FOR EACH PAGE
It sets the Blue background colour and radiant style on each page of the website
The body tag <body> is opened in header.php and closed <\body> in footer.php.
The header.php and footer are included in code for each and every page,
creating a uniform page colour across pages  */
body {
  background: radial-gradient(lightcyan, dodgerblue);
  margin: 0;
  font-family: Arial, sans-serif;
}

/* the <main> content area which sits below the header and above the footer has a margin of 10 px all around,
although it is unobservable because it does not have a border */
main {
  margin: 10px;
}

/* HEADER
Formats the header that is applied to each page. The header is light blue and has the Box Hill logo on the left hand side */
.site-header {
  background-color: #e1f0fb;
  padding: 6px 16px; /* reduced top/bottom padding */
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap; /* prevent wrapping */
  max-width: 1000px;
  margin: 0 auto;
}

.header-left {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  flex-grow: 1; /* push nav to right */
  min-width: 0; /* ensures it doesn’t force wrapping */
}

.header-logo {
  width: 40px; /* was 50px */
  height: auto;
}

.header-text {
  display: flex;
  flex-direction: column;
}

.header-line1 {
  font-size: 20px; /* was 20px */
  margin-bottom: 2px; /* if needed */
  color: blue;
  font-weight: bold;
}

.header-line2 {
  font-size: 18px;
  color: #194678;
  font-weight: bold;
}

.header-underline {
  height: 2px;
  background-color: #38b6ff;
  width: 100%;
  margin-top: 4px;
}

/* Keep underline only under the text */
.header-text > .header-underline {
  width: 100%;
}

.main-nav {
  display: flex;
  flex-wrap: nowrap;
  margin: 10px;
  justify-content: flex-end;
  flex-shrink: 0;
}

.main-nav a {
  text-decoration: none;
  padding: 6px 12px; /* slightly smaller padding */
  color: blue;
  background-color: #e1f0fb;
  border-radius: 6px;
  transition: background-color 0.3s;
  font-weight: bold;
  font-size: 18px; /* was 16px */
}

.main-nav a:hover {
  background-color: #cce4ff;
}

/* === Navigation RESPONSIVE ADJUSTMENTS for various devices === */
@media screen and (max-width: 800px), screen and (max-height: 500px) {
  .header-inner {
    flex-direction: column;
    align-items: center;
  }

  .header-left {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
  }

  .header-logo {
    flex-shrink: 0;
  }

  .header-text {
    white-space: nowrap;
  }

  .main-nav {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 10px;
  }

  .main-nav a {
    margin: 6px 8px;
  }
}

/* === TYPOGRAPHY & ELEMENTS === */
/* Flex container for right-aligned header */

/* === FOOTER === */
.site-footer {
  position: fixed;
  width: 100%;
  left: 0;
  bottom: 0;
  color: blue;
  font-size: 20px;
  font-weight: bold;
  background-color: #e1f0fb; /* light blue */
  text-align: center;
  padding: 5px;
}

.site-footer p {
  margin: 5px;
}

/* === HOME PAGE HERO SECTION === */
.home-hero {
  max-width: 1000px;
  margin: 35px auto 60px;
  padding: 15px;
  text-align: center;
}
.hero-grid {
  display: flex;
  flex-direction: column;
  margin: 20px; /* smaller gap between sections */
  align-items: center;
}
.hero-pair {
  display: flex;
  flex-wrap: wrap;
  align-items: center; /* ← this now centers image with quote box */
  justify-content: center;
  gap: 30px;
}
.hero-text {
  text-align: center;
  max-width: 800px;
}

.hero-image {
  flex: 0 1 280px; /* slightly smaller max width */
  text-align: center;
  padding: 0; /* remove extra space */
}
.hero-image img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.08);
  margin: 0;
}
.home-hero h1 {
  font-size: 36px;
  color: blue;
  margin-bottom: 20px;
}

.home-hero .highlight {
  color: #194678;
}

.tagline {
  font-size: 22px;
  color: #004080;
  font-weight: bold;
  margin-bottom: 30px;
}

.intro-card {
  background-color: #f0f8ff;
  border: 2px solid #4682b4;
  border-radius: 12px;
  padding: 15px; /* was 25px */
  font-size: 18px; /* optional: slightly smaller */
  color: #003366;
  margin: 10px 0; /* reduce spacing outside */
  box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.1);
  max-width: 500px;
}

.home-heading {
  font-size: 32px;
  color: blue;
  text-align: center;
  margin: 10px 0 15px 0; /* reduced top and bottom margin */
  padding: 0 10px;
}

.home-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
  margin-top: 25px;
}

.home-btn {
  display: inline-block;
  padding: 12px 24px;
  background-color: dodgerblue;
  color: white;
  font-size: 18px;
  font-weight: bold;
  text-decoration: none;
  border-radius: 8px;
  transition: background-color 0.3s;
  min-width: 180px;
  text-align: center;
}

.home-btn:hover {
  background-color: royalblue;
}

/* === AFFILIATION SECTION === */
.affiliation {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 60px;
  row-gap: 10px;
  margin: 20px 0;
}
.affiliation-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.affiliation-item img {
  height: 40px;
  width: auto;
}
.affiliation-item p {
  margin: 0;
  font-size: 18px;
}

/* === INFORMATION PAGE STYLES === */
#info-wrapper {
  max-width: 900px;
  margin: 10px auto 70px; /* Reduced top margin */
  padding: 12px;
  text-align: center;
}

.card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.card-header .header-logo {
  width: 35px;
  height: auto;
}

.card-header .header-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#info-wrapper h2 {
  font-size: 32px;
  color: blue;
  margin-bottom: 30px;
}

/* Flex wrapper for image and text in info card */
.info-flex {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  flex-wrap: wrap;
}

.info-flex img {
  border-radius: 10px;
  max-width: 200px;
  height: auto;
}

.info-text {
  flex: 1;
}

.info-card {
  background-color: #f0f8ff;
  border: 2px solid #4682b4;
  border-radius: 15px;
  padding: 15px;
  margin: 15px 0;
  text-align: left;
  box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1);
}

.info-card h3 {
  font-size: 24px;
  color: navy;
}

.info-card h3 a {
  color: navy;
  text-decoration: none;
}

.info-card h3 a:hover {
  text-decoration: underline;
}

.info-card img {
  float: right;
  margin-left: 20px;
  border-radius: 10px;
}

.info-card ul {
  list-style-type: disc;
  padding-left: 20px;
  font-size: 18px;
}

.info-card li {
  margin: 5px 0;
}

.info-card p {
  font-size: 18px;
  color: #003366;
}

.info-card a {
  color: blue;
  text-decoration: none;
  font-weight: bold;
}

.info-card a:hover {
  text-decoration: underline;
}

/* === MEETINGS PAGE STYLES === */
#meetings-wrapper {
  max-width: 1000px;
  margin: 10px auto 70px; /* ↓ reduced top margin from 50px to 20px */
  padding: 15px;
  text-align: center;
}

#meetings-wrapper h2 {
  font-size: 32px;
  color: blue;
  margin-bottom: 20px;
}

.meeting-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center;
}

.meeting-card {
  flex: 1 1 300px;
  background-color: #f0f8ff;
  border: 2px solid #4682b4;
  border-radius: 15px;
  padding: 15px;
  box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1);
  text-align: left;
  min-height: 200px;
}

.meeting-card h3 {
  font-size: 24px;
  color: navy;
  margin-bottom: 10px;
}

.meeting-card p {
  font-size: 18px;
  color: #003366;
  margin-bottom: 10px;
}

.venue-name {
  color: blue;
  font-weight: bold;
  font-size: 18px;
}

.meeting-card a {
  color: blue;
  text-decoration: none;
  font-weight: bold;
}

.meeting-card a:hover {
  text-decoration: underline;
}

/* === GROUP LEADERS SECTION (Responsive Cards) === */
#group-leaders {
  margin: 45px auto 80px;
  padding: 15px;
  background-color: rgba(255, 255, 255, 0.95);
  border: 3px solid blue;
  border-radius: 20px;
  max-width: 700px;
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
  text-align: center;
}

#group-leaders h2 {
  font-size: 28px;
  color: blue;
  margin-bottom: 15px;
}

/* Flex container for leader cards */
.leader-container {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.leader-card {
  flex: 1 1 45%;
  background-color: #f0f8ff;
  border: 2px solid dodgerblue;
  border-radius: 15px;
  padding: 10px;
  box-shadow: 1px 1px 8px rgba(0, 0, 139, 0.1);
  min-width: 250px;
}

.leader-card h3 {
  font-size: 18px;
  color: navy;
  margin-bottom: 5px;
}

.leader-card p {
  font-size: 18px;
  color: #003366;
  margin: 5px 0;
}

.leader-card a {
  color: blue;
  font-weight: bold;
  text-decoration: none;
}

.leader-card a:hover {
  text-decoration: underline;
}
/* === MAP PAGE STYLES === */
#map-section {
  text-align: center;
  margin: 40px auto;
  padding: 10px;
  max-width: 900px;
}

#map-section h2 {
  font-size: 32px;
  color: blue;
  margin-bottom: 20px;
}

.map-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
  margin: auto;
  max-width: 100%;
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 12px;
}

/* Back button */
.back-button-container {
  text-align: center;
  margin: 30px 0 60px;
}

/* === MAP PAGE ENHANCEMENT === */
.map-taller {
  padding-bottom: 66.66%; /* Taller aspect ratio */
}

/* Upcomming Information Night button*/
@keyframes pulseBlink {
  0%,
  100% {
    background-color: dodgerblue;
    transform: scale(1);
    opacity: 1;
  }
  50% {
    background-color: blue;
    transform: scale(1.05);
    opacity: 0.7;
  }
}

.attention-btn {
  animation: pulseBlink 1.5s infinite;
  box-shadow: 0 0 20px rgba(253, 2, 2, 0.6);
  border: 3px solid red;
}
