body.epsa-page {
  background:
  linear-gradient(
    135deg,
    rgba(51, 51, 51, 0.65),
    rgba(30, 30, 30, 0.75)
  ),
  url("../img/archive/EPSA_background.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}

/* Hero */
.eu-hero {
  padding: 40px 0 60px;
  text-align: center;
  background: linear-gradient(135deg, var(--red), #9e1c1c);
  color: white;
}

.eu-logo {
  max-width: 220px;
  width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.eu-hero h1 {
  font-size: 2.6rem;
  margin-bottom: 16px;
}

.eu-section {
  padding: var(--space-lg) 0;
  background: transparent;
}

.eu-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(6px);
  padding: 50px;
  border-radius: 24px;

  /* layered shadow for depth */
  box-shadow:
    0 10px 30px rgba(0,0,0,0.08),
    0 30px 80px rgba(0,0,0,0.12);

  margin-bottom: 60px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

/* floating effect */
.eu-card {
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  text-align: left;
  
}

.eu-card:hover {
  transform: translateY(-6px);

  box-shadow:
    0 15px 40px rgba(0,0,0,0.12),
    0 40px 100px rgba(0,0,0,0.18);
}

.eu-card h2 {
  margin-bottom: 20px;
  font-size: var(--fs-xl);
}

.eu-card p {
  line-height: 1.8;
  margin-bottom: 16px;
  color: #444;
  font-size: var(--fs-base);
  text-align: justify;
  hyphens: auto;
}

/* Motto */
.epsa-motto {
  margin-top: 30px;
  padding: 20px;
  background: linear-gradient(135deg, var(--red), #9e1c1c);
  color: white;
  border-radius: 16px;
  text-align: center;
}

/* Events List */
.epsa-events-list {
  margin-bottom: 40px;
  padding-left: 20px;
}

.epsa-events-list li {
  margin-bottom: 10px;
  font-weight: 500;
}

/* Expandable */
.epsa-expand-block {
  margin-bottom: 20px;
}

.epsa-toggle {
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  font-size: var(--fs-md);
  font-weight: 600;
  padding: 16px 0;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid var(--bg-light);
}

.epsa-toggle:hover{
    color: var(--red-hover);
}

.arrow {
  transition: transform 0.3s ease;
}

.epsa-expand-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease, opacity 0.3s ease;
  opacity: 0;
}

.epsa-expand-content.open {
  max-height: 1000px;
  opacity: 1;
}

.epsa-toggle.active .arrow {
  transform: rotate(180deg);
}

/* Make the reused news card less tall on EPSA page */
body.epsa-page .news-card {
  min-height: auto;

}

body.epsa-page .news-image{
  aspect-ratio: 21 / 9;
}

/* Space between EPSA news card and link card */
body.epsa-page .news-card {
  margin-bottom: 60px;
}

/* Info link card */
.epsa-link-card {
  text-align: center;
}

.epsa-link{
  color: #c62828;
  font-weight: bold;
  text-decoration: none;
}

.epsa-link:hover {
  text-decoration: underline;
}

/* -----------------------------------------------------------TWINNET---------------------------------------------------------------- */
/* FEATURE INTRO LAYOUT */

/* Twinnet background */
.twinnet-page {
  background:
    linear-gradient(rgba(255,255,255,0.6), rgba(255,255,255,0.6)),
    url("../img/archive/twinnet_background.jpg");

  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.twinnet-article {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: 60px 0;
}

.twinnet-article-image,
.twinnet-article-content {
  flex: 1;
}

/* IMAGE STYLING */
.twinnet-article-image img {
  width: 100%;
  height: auto;
  border-radius: 32px;

  box-shadow:
    0 30px 80px rgba(0,0,0,0.15);

  transition: transform 0.4s ease;
}

.twinnet-article-image img:hover {
  transform: scale(1.04);
}

/* CONTENT AREA */
.twinnet-article-content {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 650px;
}

.twinnet-article-content h2 {
  font-size: var(--fs-xl);
  font-weight: 700;
  margin: 24px 0;
  letter-spacing: -0.5px;
}

.twinnet-article-content p {
  font-size: var(--fs-base);
  line-height: 2;
  text-align: justify;
  color: var(--text-muted);
}

/* Full text section */
.twinnet-full-text {
  margin-top: 16px;
  color: #555;
}

/* -----------------------------------------------------------LFB---------------------------------------------------------------- */
/* LFB specific styling */

/* LFB background */
.lfb-page {
  background: 
    linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)),
    url("../img/archive/lfb_background.jpg");
    
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.lfb-hero h2{
  font-size: var(--fs-xl);
}

.lfb-logo {
  max-width: 260px;
  width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.lfb-subtitle {
  color: #777;
  margin-top: -10px;
}

.lfb-description p {
  margin-bottom: 15px;
  line-height: 1.6;
}

.lfb-goals h3 {
  margin-bottom: 20px;
  font-size: var(--fs-lg);
}

.lfb-list {
  list-style: none;
  padding: 0;
}

.lfb-list li {
  margin-bottom: 16px;
  padding-left: 20px;
  position: relative;
  line-height: 1.65;
}

.lfb-list li::before {
  content: "•";
  color: #c62828;
  font-weight: bold;
  position: absolute;
  left: 0;
}

.lfb-photo-grid {
  display: grid;
  gap: 20px;
}

.lfb-photo-grid img {
  width: 100%;
  border-radius: 16px;
  object-fit: cover;
}

.lfb-link-card {
  text-align: center;
}

.lfb-link {
  color: #c62828;
  font-weight: bold;
  text-decoration: none;
}

.lfb-link:hover {
  text-decoration: underline;
}

/* LFSA-06: page-local internship and job opportunities. */
.opportunities-page .opportunities-hero {
  background-image: url("../img/archive/lfsa02/view/f517652bcbce1e45.jpg");
}

.opportunities-page .hero-inner {
  max-width: 1100px;
}

.opportunities-page .opportunities-hero h1 {
  overflow-wrap: anywhere;
}

.opportunities-page .opportunities-quote {
  margin: 24px auto 0;
  max-width: 900px;
  font-size: clamp(1.2rem, 2.1vw, 1.6rem);
  font-weight: 600;
  line-height: 1.6;
}

.opportunities-page .btn-primary {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.opportunities-page .btn-primary:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 5px;
}

.opportunities-page .opportunities-section {
  padding: 80px 0;
  background: linear-gradient(180deg, #f8f9fb, #eef1f5);
  scroll-margin-top: 100px;
}

.opportunities-page .opportunities-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.opportunities-page .opportunities-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  min-width: 0;
  padding: clamp(24px, 3vw, 44px);
  border-radius: 24px;
  color: #fff;
  text-align: center;
  background:
    linear-gradient(rgba(30, 30, 30, 0.76), rgba(30, 30, 30, 0.82)),
    url("../img/archive/lfsa02/view/4a8f4e2fe1f5d2b3.webp") center / cover;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08), 0 30px 80px rgba(0, 0, 0, 0.12);
}

.opportunities-page .opportunities-logo {
  display: block;
  width: 100%;
  max-width: 300px;
  height: 160px;
  object-fit: contain;
  flex-shrink: 0;
}

.opportunities-page .opportunities-card h2 {
  font-size: var(--fs-xl);
  line-height: 1.2;
}

.opportunities-page .opportunities-card p {
  margin: 0;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.opportunities-page .opportunities-card .btn-primary {
  width: 100%;
  margin-top: auto;
  padding: 16px 24px;
  font-size: 1.1rem;
  line-height: 1.5;
  text-align: center;
}

@media (max-width: 768px) {
  .opportunities-page .hero-inner,
  .opportunities-page .opportunities-grid {
    width: 100%;
    padding-inline: 18px;
  }

  .opportunities-page .opportunities-section {
    padding: 48px 0;
  }

  .opportunities-page .opportunities-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .opportunities-page .opportunities-logo {
    height: 132px;
  }
}
