/* === Base styles === */
body {
  margin: 0;
  font-family: 'Jacques Francois', serif;
  background: linear-gradient(180deg, #5E2F86 0%, #C466E4 53%);
  color: white;
  line-height: 1.8;
  font-size: clamp(1rem, 2.5vw, 1.1rem);
  padding-top: 80px; /* space for fixed navbar */
}

/* Headings */
h1 {
  font-size: clamp(2rem, 5vw, 2.5rem);
  margin-bottom: 1rem;
}

h2 {
  font-size: clamp(1.5rem, 4vw, 2rem);
  margin-bottom: 1rem;
}

/* Paragraphs and lists */
p, li {
  font-size: clamp(1rem, 2.5vw, 1.2rem);
}

/* === Navbar with hamburger === */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: linear-gradient(92deg, black 0%, #803FB9 62%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 5vw;
  box-sizing: border-box;
  z-index: 1000;
  border-bottom: 1px solid white;
}

.navbar .logo {
  height: 60px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* Menu */
.navbar nav ul {
  display: none;          /* hidden initially */
  flex-direction: column;
  width: 100%;
  background: linear-gradient(92deg, black 0%, #803FB9 62%);
  position: fixed;        /* over content */
  top: 50px;              /* below navbar */
  left: 0;
  z-index: 2000;
  padding: 1rem 0;
}

.navbar nav ul.show {
  display: flex;
}

.navbar nav ul li {
  text-align: center;
   margin: 0.5rem 0;
}

/* Navbar links / buttons */
.navbar nav ul li a {
  text-decoration: none;
  color: #f5f5f5;
  background: #4C266E;
  padding: 0.6rem 1.2rem;
  border-radius: 8px;
  transition: background 0.3s ease;
  border: 1px solid #2C2C2C;
  display: inline-block;
  font-size: 1rem;
}

.navbar nav ul li a:hover,
.navbar nav ul li a:focus {
  background: #5f2d87;
}

.btn {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  border-radius: 0.5rem;
  background: #4C266E;
  color: white;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.3s ease;
}

.btn:hover {
  background: #3a1e54;
}

/* === Hamburger === */
.hamburger {
  display: flex; /* not hidden on desktop */
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 22px;
  cursor: pointer;
  z-index: 1100;
  margin-left: auto; /* pushes menu to the right */
}

.hamburger div {
  width: 25px;
  height: 3px;
  background: #f5f5f5;
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* Animation for hamburger when active */
.hamburger.active div:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}
.hamburger.active div:nth-child(2) {
  opacity: 0;
}
.hamburger.active div:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}


/* === Sections === */
section {
  padding: clamp(2rem, 5vw, 4rem) 5%;
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.content {
  position: relative;
  z-index: 1;
}

/* När klassen sitter på img själv */
img.event-placeholder {
  display: block;
  width: 90%;
  max-width: 100px;
  aspect-ratio: 360 / 460;   /* tvingar img-elementets storlek */
  height: auto;              /* höjden beräknas utifrån aspect-ratio */
  object-fit: cover;         /* bilden beskärs för att fylla rutan */
  border-radius: 20px;
  box-shadow: 0px 4px 10px rgba(0,0,0,0.25);
  margin: 2rem auto;
  overflow: hidden;          /* på img är detta mest för säkerhet, fungerar olika i äldre browser */
}


section img {
  margin-top: 1rem;
  max-width: 80%;
  border-radius: 20px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

/* Team list */
.team ul {
  list-style: none;
  padding: 0;
}

.team li {
  margin: 0.5rem 0;
}

/* Socials */
.socials {
  display: flex;
  justify-content: center;
  gap: clamp(0.5rem, 3vw, 1rem);
  flex-wrap: wrap;
  margin-top: 1rem;
}

/* Footer */
.footer {
  text-align: center;
  padding: clamp(1rem, 1vw, 1rem);
  background: linear-gradient(92deg, #0B050F 0%, #B751DB 62%);
  border-top: 1px solid white;
  font-size: clamp(3rem, 1vw, 1rem);
  height: 50px;
}

/* Background decoration */
.background-decor {
  position: relative;
  overflow: hidden;
}

.decor {
  position: absolute;
  opacity: 0.8;
  pointer-events: none;
  z-index: 0;
}

.decor-left {
  top: 120px;
  left: -60px;
  width: 200px;
}

.decor-right {
  top: 490px;
  right: 50px;
  width: 300px;
  transform: rotate(10deg);
}

.decor-bottom {
  bottom: 650px;
  left: 0;
  width: 100%;
}

/* === Responsive adjustments === */
@media (max-width: 768px) {
  .decor-left {
    top: 80px;
    left: -40px;
    width: 140px;
  }

  .decor-right {
    top: 300px;
    right: 20px;
    width: 200px;
  }

  .decor-bottom {
    bottom: 500px;
  }

  .navbar {
    min-height: 30px;
  }

  .logo {
    min-height: 30px;
  }

  /* Hide menu by default */
  .navbar nav ul {
    display: none;
    flex-direction: column;
    gap: 0rem;
    background: linear-gradient(92deg, black 0%, #803FB9 62%);
    position: absolute;
    top: 100%;
    right: 0;
    padding: 0rem;
    border-radius: 0 0 0px 0px;
    margin-top: 0px;
    margin-bottom: 0px;
  }

  /* Show when toggled */
  .navbar nav ul.show {
    display: flex;
  }

  .hamburger {
    display: flex;
  }
}

@media (max-width: 480px) {
  section {
    padding: clamp(1.5rem, 5vw, 1.5rem) 3%;
  }

  h1 {
    font-size: clamp(1.8rem, 6vw, 2.2rem);
  }

  h2 {
    font-size: clamp(1.3rem, 5vw, 1.8rem);
  }

  .event-placeholder {
    max-width: 100%;
    aspect-ratio: auto;
    height: auto;
  }

  .btn {
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
  }

  .logo {
    min-height: 30px;
  }

}
