@font-face {
  font-family: 'Bleeding Cowboys';
  src: local('Bleeding Cowboys'), local('BleedingCowboys'),
       url('../fonts/BleedingCowboys.woff2') format('woff2'),
       url('../fonts/BleedingCowboys.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

/* Define global variables */
:root {
  /* Light mode colours */
  --background-light: #f8f8fc;
  --text-light: #333;
  --primary-light: #4b0082;
  --primary-light-hover: #370061;
  --accent-light: #bb86fc;
  --accent-light-hover: #c3a7ff;

  /* Dark mode colours */
  --background-dark: #1e1e2f;
  --text-dark: #e8e8f2;
  --primary-dark: #3a006e;
  --primary-dark-hover: #7a5bc1;
  --accent-dark: #9d7bee;
  --accent-dark-hover: #c3a7ff;

  /* Common styles */
  --font-family: 'Arial', sans-serif;
  --logo-font-family: 'Bleeding Cowboys', serif;
  --header-padding: 0.5em 1em 2em;
  --rounded-corners: 0.5em;
  --transition-time: 0.2s ease;
}

/* Global Layout */
html, body {
  height: 100%; /* Ensures the page fills the viewport height */
  margin: 0;
  display: flex;
  flex-direction: column; /* Stack header, main, and footer vertically */
}

body {
  font-family: var(--font-family);
  background-color: var(--background-light);
  color: var(--text-light);
  line-height: 1.6;
  transition: background-color var(--transition-time), color var(--transition-time);
}

/* Header */
header {
  background-color: var(--primary-light);
  color: white;
  padding: var(--header-padding);
  text-align: center;
}

header h1 {
  margin: 0.3em 0 0.5em;
  font-family: var(--logo-font-family);
  font-size: 3.5em;
  font-weight: normal;
  font-style: normal;
}

header p {
  margin: 0.5em 0 0;
  font-size: 1.2em;
}

/* Main Content */
main {
  flex: 1; /* Expand to fill remaining space */
  max-width: 800px; /* Upper bound for larger screens */
  margin: 0 auto;
  padding: 2em 1em;
  text-align: center;
}

main img {
  max-width: 100%; /* Ensure the image scales within the container */
  height: auto; /* Maintain the aspect ratio */
  border-radius: var(--rounded-corners); /* Rounded corners */
  margin: 0.5em 0 0; /* Space around image */
}

main p {
  margin: 1em 0;
}

/* Call-to-Action Buttons */
.cta {
  margin-top: 1.5em;
}

.cta a {
  display: inline-block;
  text-decoration: none;
  color: white;
  background-color: var(--primary-light);
  padding: 0.8em 1.5em;
  border-radius: 5px;
  font-size: 1em;
  margin: 0.5em;
  transition: background-color var(--transition-time);
}

.cta a:hover {
  background-color: var(--primary-light-hover);
}

/* Footer */
footer {
  background-color: var(--primary-light);
  color: white;
  padding: 1em;
  text-align: center;
  font-size: 0.9em;
  flex-shrink: 0; /* Prevent shrinking */
}

footer a {
  color: var(--accent-light);
  text-decoration: none;
  transition: color var(--transition-time);
}

footer a:hover {
  color: var(--accent-light-hover);
}

/* Body Links */
a {
  color: var(--primary-light);
  text-decoration: underline;
  transition: color var(--transition-time);
}

a:hover {
  color: var(--primary-light-hover);
}

/* Dark Mode Styles */
@media (prefers-color-scheme: dark) {
  body {
    background-color: var(--background-dark);
    color: var(--text-dark);
  }

  header {
    background-color: var(--primary-dark);
    color: var(--text-dark);
  }

  .cta a {
    background-color: var(--accent-dark);
    color: var(--background-dark);
  }

  .cta a:hover {
    background-color: var(--primary-dark-hover);
  }

  footer {
    background-color: var(--primary-dark);
    color: var(--text-dark);
  }

  footer a {
    color: var(--accent-dark);
  }

  footer a:hover {
    color: var(--accent-dark-hover);
  }

  /* Body Links in Dark Mode */
  a {
    color: var(--accent-dark);
  }

  a:hover {
    color: var(--accent-dark-hover);
  }
}
