
:root {
  /* Brand Colors */
  --page-bg: #BEF900;
  --brand-green: #BEF900;
  --accent: #BEF900;
  --btn-green: #137b2b;
  
  /* UI Colors */
  --card-bg: #ffffff;
  --heading: #000;
  --body: #111;
  --muted: #555;
  --neutral: #F5F5F5;
  --nav-blue: #002B45;   /* Added from lower section */
  --muted-blue: #4A90E2; /* Added from lower section */
  
  /* Layout & Spacing */
  --radius: 20px;
  --card-radius: 16px;   /* Added from lower section */
  --maxw: 1200px;
  --header-maxw: 1440px;
  --container-pad: 28px;
  --transition: 0.28s ease;
}
    * { 
      box-sizing: border-box; 
    }

    body {
      margin: 0;
      font-family: 'Inter', sans-serif;
      background: white;
      color: var(--body);
      -webkit-font-smoothing: antialiased;
      line-height: 1.45;
    }
/* Add this to your CSS */
* {
  box-sizing: border-box; /* Crucial: makes sure padding doesn't add to width */
}

html, body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* Stops the horizontal "wobble" */
}
@media (max-width: 768px) {
  /* Shrink the huge titles */
main h1, .card h1 { 
    font-size: 1.8rem !important; 
    line-height: 1.2;
  }

  /* Keep h2 and h3 specific to content areas as well */
  .prose h2, .profiles-section h2, .common-thread h2 { 
    font-size: 1.5rem !important; 
  }

  /* This ensures the header logo stays exactly as it was */
  #main-header .logo {
    font-size: inherit; 
    /* or whatever your original logo size was */
  }
  h3 { font-size: 1.3rem !important; }

  /* Fix the sections with inline padding you added in HTML */
  section[style*="padding:80px"], 
  .common-thread, 
  .citizenship-info-section {
    padding: 40px 15px !important; /* Half the padding on mobile */
  }

  /* Make profile images and content stack vertically */
  .profile-detail {
    flex-direction: column !important;
    padding: 20px 10px !important;
  }

  .image-container {
    width: 100% !important;
    height: auto !important;
    margin-bottom: 20px;
  }

  /* Ensure text doesn't hide */
  .content, .bio, p {
    font-size: 1rem !important;
    line-height: 1.5;
  }
}

.container, .card-inner, .content {
  width: 100% !important;
  max-width: 100vw !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}
.container { 
  max-width: var(--maxw); 
  margin: 0 auto; 
  padding: 0 20px; /* Changed from 40px to 20px for better mobile fit */
  width: 100%; 
}

.section {
  padding: 30px 0;
  width: 100%;
  overflow: hidden; /* Prevents stray elements from causing horizontal scroll */
}

    /* === HEADER  === */
    header#main-header {
      position: sticky;
      top: 0;
      left: 0;
      right: 0;
      background: var(--brand-green);
      z-index: 9999;
      box-shadow: 0 2px 10px rgba(0,0,0,0.06);
      transition: all 0.3s ease;
    }
    .header-inner {
      max-width: var(--header-maxw);
      margin: 0 auto;
      padding: 24px 40px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      transition: all 0.3s ease;
    flex-wrap: wrap; }

    header#main-header.shrink {
      padding: 10px 0;
      box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    }
    header#main-header.shrink .header-inner {
      padding: 12px 20px;
    }
    header#main-header.shrink .logo {
      font-size: 1.05rem;
      transform: translateY(1px);
    }
    header#main-header.shrink nav.menu a {
      font-size: 0.9rem;
      padding: 6px 10px;
    }
    

   /* ===== PROSE SECTIONS ===== */
/* ===== PROSE SECTIONS (FIXED) ===== */
.prose { 
  max-width: 800px; 
  width: 100%; /* Ensures it doesn't grow larger than container */
  margin: 0 auto; 
  line-height: 1.65; 
  font-size: 1.05rem;
  word-wrap: break-word; /* Prevents long words/URLs from breaking layout */
  overflow-wrap: break-word;
}

.prose h2 {
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 800;
  font-size: 2rem;
  line-height: 1.2;
  margin: 0 0 20px 0;
  color: #000;
  position: relative;
  display: inline-block;
  max-width: 100%; /* Keeps headline inside viewport */
}

/* Rest of prose elements remain standard */
.prose p, .prose ul li {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 16px;
  color: #111;
}

/* Mobile specific prose adjustment */
@media (max-width: 768px) {
  .prose {
    padding: 0 5px; /* Adds a tiny internal buffer */
  }
  .prose h2 {
    font-size: 1.6rem; /* Shrinks large headers that might push width */
  }
}

   /* ===== WHITE BACKGROUND SECTIONS ===== */
    .section--white {
      background: #fff;
      padding: 60px 0;
    }
    
        .prose p + p { margin-top: 1rem; }
    
/* Cookie consent banner */
#cookie-consent {
  position: fixed;
  bottom: 20px;
  left: 20px;
  right: 20px;
  background: #4A90E2; 
  color: #fff;
  padding: 20px 24px;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  font-family: 'Inter', sans-serif;
  z-index: 9999;
  gap: 12px;
  transition: all 0.3s ease;
}

#cookie-consent span {
  flex: 1 1 300px;
  font-size: 1rem;
}

#cookie-consent .btn-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Cookie consent banner buttons */
#cookie-consent .btn.accept {
  background: #BEF900; /* brand green */
  color: #002B45;
  border-radius: 12px;
  padding: 12px 28px;
  font-weight: 700;
  font-size: 1rem;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  border: none;
  transition: all 0.3s ease;
}

#cookie-consent .btn.accept:hover {
  background: #a0d600;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

#cookie-consent .btn.deny {
  background: transparent;
  color: #fff;
  border-radius: 12px;
  border: 2px solid #fff;
  padding: 12px 28px;
  font-weight: 700;
  font-size: 1rem;
  transition: all 0.3s ease;
}

#cookie-consent .btn.deny:hover {
  background: #fff;
  color: #4A90E2;
  transform: translateY(-2px);
}

    .manage-cookies-btn {
  background: #444;
  color: #fff;
  padding: 8px 16px;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.2s ease;
}

.manage-cookies-btn:hover {
  background: #000;
}


    .logo {
      font-family: 'Source Sans Pro', sans-serif;
      font-weight: 800;
      color: black;
      font-size: 1.8rem;
      margin: 0;
      line-height: 1.2;
      transition: all 0.25s ease;
      letter-spacing: -0.5px;
      margin-right: auto;
    }

    /* FU logo between brand + buttons */
    .brand-mark {
      display: inline-flex;
      align-items: center;
      height: 36px;
      margin-right: 14px;
    }
    .brand-mark img {
      height: 100%;
      width: auto;
      display: block;
      filter: grayscale(100%);
      opacity: 0.9;
      transition: opacity 0.2s ease, filter 0.2s ease, transform 0.2s ease;
    }
    .brand-mark:hover img {
      opacity: 1;
      filter: grayscale(0%);
      transform: translateY(-1px);
    }
    header#main-header.shrink .brand-mark { height: 30px; }

    nav.menu {
      display: flex;
      align-items: center;
      gap: 18px;
    }
    nav.menu a {
      text-decoration: none;
      font-weight: 500;
      color: black;
      padding: 8px 14px;
      border: none;
      border-radius: 0;
      transition: var(--transition);
    }
    nav.menu a:hover {
      background: transparent;
      color: #555;
      transform: translateY(0);
    }
    nav.menu a.btn.outline {
      color: black;
      background: transparent;
      border: none;
      transition: var(--transition);
    }
    nav.menu a.btn.outline:hover {
      background: transparent;
      color: #555;
      transform: translateY(0);
    }

    /* === HERO SECTION === */
    main {
      padding: 0;
    }

    .card {
      background: #f5f5f5;
      border-radius: var(--card-radius);
      padding: 80px 0;
      margin: 0;
      box-shadow: 0 6px 18px rgba(0,0,0,0.07);
      text-align: left;
      color: #000;
      width: 100%;
    }

    .card-inner {
      max-width: var(--maxw);
      margin: 0 auto;
      padding: 40 40px;
    }

    /* Hero title EXACTLY as in gebuehr(alternative).html */
    .card h1 {
      font-family: 'Source Sans Pro', sans-serif;
      font-weight: 800;
      font-size: 3.5rem;
      line-height: 1.05;
      letter-spacing: -1px;
      margin: 0 0 20px 0;
      color: #000;
    }

    .card p.lead {
      font-size: 1.25rem;
      max-width: 950px;
      margin-bottom: 30px;
      font-family: 'Inter', sans-serif;
    }

    .btn-row {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }
    .btn {
      display: inline-block;
      padding: 11px 18px;
      border-radius: 10px;
      text-decoration: none;
      font-weight: 600;
      border: 2px solid #336B7A;
      transition: all 0.25s ease;
    }
    .btn.solid { background: #336B7A; color: #fff; }
    .btn.solid:hover { background: #2a5763; border-color: #2a5763; transform: translateY(-2px); }
    .btn.outline { background: transparent; color: #0066cc; }
    .btn.outline:hover { background: #0066cc; color: #fff; transform: translateY(-2px); }

    /* Portrait Carousel */
    .portrait-carousel-wrapper {
      position: relative;
      overflow: hidden;
      background: #BEF900;
      padding: 40px 0;
    }
    .portrait-carousel {
      display: flex;
      gap: 32px;
      transition: transform 0.4s ease-in-out;
      padding: 0 40px;
    }

    /* Alternating image positions for profiles */
    .profile-detail:nth-child(even) {
      flex-direction: row;
    }
    .profile-detail:nth-child(odd) {
      flex-direction: row-reverse;
    }
    .portrait-card {
      flex: 0 0 300px;
      background: #fff;
      border-radius: var(--radius);
      box-shadow: 0 6px 20px rgba(0,0,0,0.08);
      text-align: center;
      overflow: hidden;
      transition: transform 0.3s, box-shadow 0.3s;
      height: 375px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      text-decoration: none;
      color: inherit;
    }
    .portrait-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 14px 30px rgba(0,0,0,0.15);
    }
    .portrait-card .image-placeholder {
      width: 100%;
      height: 225px;
      background: #ddd;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      color: #888;
    }
    .portrait-card h3 {
      margin: 12px 0 6px 0;
      font-size: 1.2rem;
      color: #000;
    }
    .portrait-card p.role {
      margin: 0 0 12px 0;
      color: #555;
      font-weight: 500;
      font-size: 0.95rem;
      padding: 0 12px 12px 12px;
    }
    .portrait-card p.quote {
      font-style: italic;
      color: #333;
      font-size: 0.95rem;
      padding: 0 16px;
      flex-grow: 1;
    }
    .portrait-card p.source {
      margin-top: 12px;
      font-size: 0.85rem;
      color: #777;
      padding-bottom: 16px;
    }

    .carousel-btn {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      background: rgba(0,0,0,0.2);
      border: none;
      border-radius: 50%;
      width: 50px;
      height: 50px;
      cursor: pointer;
      font-size: 1.5rem;
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 10;
    }
    .carousel-btn:hover { background: rgba(0,0,0,0.4); }
    .carousel-btn.prev { left: 10px; }
    .carousel-btn.next { right: 10px; }

    /* Image Attribution Overlay */
    .image-attribution {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: rgba(0, 0, 0, 0.85);
      color: white;
      padding: 8px 12px;
      font-size: 0.65rem;
      line-height: 1.3;
      opacity: 0;
      transition: opacity 0.3s ease;
      z-index: 100;
    }
    .image-attribution a {
      color: #BEF900;
      text-decoration: none;
    }
    .image-attribution a:hover {
      text-decoration: underline;
    }
    .image-attribution img {
      display: inline;
      height: 1em;
      margin-right: 0.125em;
      vertical-align: middle;
    }
    .image-container:hover .image-attribution {
      opacity: 1;
    }


    /* Scroll reveal */
    .scroll-reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    }
    .scroll-reveal.active {
      opacity: 1;
      transform: translateY(0);
    }

    /* Detailed Profiles Section */
    .profiles-section {
      max-width: var(--maxw);
      margin: 60px auto;
      padding: 0 40px;
    }
    .profiles-section h2 {
      font-family: 'Source Sans Pro', sans-serif;
      font-weight: 800;
      font-size: 2.5rem;
      margin-bottom: 40px;
      color: #000;
    }
    .profile-detail {
      display: flex;
      gap: 40px;
      background: #fff;
      border-radius: var(--radius);
      padding: 40px;
      margin-bottom: 40px;
      box-shadow: 0 6px 20px rgba(0,0,0,0.08);
      align-items: flex-start;
      scroll-margin-top: 100px;
    }
    .profile-detail .image-container {
      flex: 0 0 300px;
      height: 350px;
      background: #ddd;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      color: #888;
      position: relative;
      overflow: hidden;
    }
    .profile-detail .content {
      flex: 1;
      display: flex;
      flex-direction: column;
    }
    .profile-detail h3 {
      font-family: 'Source Sans Pro', sans-serif;
      font-weight: 700;
      font-size: 2rem;
      margin: 0 0 8px 0;
      color: #000;
    }
    .profile-detail p.role {
      font-size: 1.1rem;
      font-weight: 600;
      color: #555;
      margin: 0 0 12px 0;
    }
    .profile-detail p.quote {
      font-style: italic;
      font-size: 1.15rem;
      color: #333;
      margin: 16px 0;
      padding-left: 20px;
      border-left: 4px solid var(--brand-green);
    }
    .profile-detail p.bio {
      font-size: 1rem;
      line-height: 1.6;
      color: #444;
      margin: 16px 0 0 0;
    }
    .profile-detail p.source {
      font-size: 0.9rem;
      color: #777;
      margin: 8px 0 0 0;
    }
    .profile-detail .profile-quote {
      background: #f9f9f9;
      border-left: 4px solid var(--brand-green);
      padding: 20px 24px;
      margin: 0 0 16px 0;
      border-radius: 8px;
    }
    .profile-detail .profile-quote p {
      font-style: italic;
      font-size: 1.1rem;
      line-height: 1.6;
      color: #333;
      margin: 0 0 12px 0;
    }
    .profile-detail .profile-quote cite {
      font-style: normal;
      font-size: 0.95rem;
      color: #666;
      display: block;
    }
    .profile-detail .profile-quote cite a {
      color: #0066cc;
      text-decoration: none;
      font-weight: 600;
    }
    .profile-detail .profile-quote cite a:hover {
      text-decoration: underline;
    }


    @media (max-width: 768px) {
      .profile-detail {
        flex-direction: column;
      }
      .profile-detail .image-container {
        width: 100%;
        flex: 0 0 250px;
      }
    }

    /* FOOTER */
footer {
  margin-top: 0;
  padding: 36px 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 40px;
  background: #fff;
  border-radius: 0;
  box-shadow: none;
  text-align: left;
}



.footer-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

    .logo-holder { background:transparent; padding:0; border-radius:0; box-shadow:none; display:flex; align-items:center; justify-content:center; transition: transform 0.2s ease; }
    .logo-holder img { height:60px; object-fit:contain; }
    .logo-holder:hover { transform: translateY(-3px); }
.footer-text {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #0b2340;
  max-width: 800px;
}

/* Citizenship Law Section */
.citizenship-law-section {
  background: white;
  padding: 30px 20px;
  margin: 0;
}
.citizenship-law-content {
  max-width: 1200px;
  margin: 0 auto;
  background: white;
  border-radius: 24px;
  padding: 50px 60px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  border-left: 6px solid #BEF900;
}
.citizenship-law-content h2 {
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 800;
  font-size: 2.2rem;
  color: #000;
  margin: 0 0 20px 0;
  line-height: 1.2;
  position: relative;
  padding-left: 20px;
}
.citizenship-law-content h2:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 60%;
  background: #BEF900;
  border-radius: 4px;
}
.citizenship-law-content h3 {
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: #333;
  margin: 0 0 30px 0;
}
.citizenship-law-content ul {
  list-style: none;
  padding: 0;
  margin: 0 0 35px 0;
}
.citizenship-law-content li {
  padding: 12px 0 12px 35px;
  position: relative;
  font-size: 1.1rem;
  line-height: 1.7;
  color: #444;
}
.citizenship-law-content li:before {
  content: "✓";
  position: absolute;
  left: 0;
  color: white;
  font-weight: bold;
  font-size: 1rem;
  background: #336B7A;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.citizenship-law-content p {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #444;
  margin: 0 0 30px 0;
}
.citizenship-cta-btn {
  display: inline-block;
  background: #336B7A;
  color: white;
  padding: 16px 40px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.1rem;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.citizenship-cta-btn:hover {
  background: #2a5763;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
@media (max-width: 768px) {
  .citizenship-law-content {
    padding: 35px 30px;
  }
  .citizenship-law-content h2 {
    font-size: 1.8rem;
  }
  .citizenship-law-content h3 {
    font-size: 1.2rem;
  }
}

/* Trust section wrapper */
.trust-section {
  padding: 60px 20px;
  background: white;
  text-align: center;
  margin: 0;
}

/* Trust section content box - matches citizenship-law-content */
.trust-section-content {
  max-width: 1200px;
  margin: 0 auto;
  background: white;
  border-radius: 24px;
  padding: 50px 60px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  border-left: 6px solid #336B7A;
}

/* Local container so width matches gebuehr-5.html */
.trust-section .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* The card that holds the title + cards */
.trust-section .card {
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.12);
  padding: 50px 60px;
  margin-bottom: 28px;
  border-left: 6px solid #336B7A;
}

/* Title style */
.trust-section-content .section-title,
.trust-section .section-title {
  font-size: 1.8rem;
  color: #000;
  margin: 0 0 20px;
  font-weight: 800;
  font-family: 'Source Sans Pro', sans-serif;
}

/* Cards row */
.trust-section-content .trust-cards,
.trust-section .trust-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin-top: 18px;
}

/* Individual trust card */
.trust-section-content .trust-card,
.trust-section .trust-card {
  background: #fff;
  border-radius: 14px;
  padding: 28px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  flex: 1 1 300px;
  max-width: 400px;
  text-align: left;
}

/* Icon style */
.trust-section-content .trust-icon,
.trust-section .trust-icon {
  font-size: 2rem;
  color: var(--nav-blue);
  margin-bottom: 12px;
}

/* Hover lift animation */
.trust-section-content .hover-lift,
.trust-section .hover-lift {
  transition: 0.28s ease;
}
.trust-section-content .hover-lift:hover,
.trust-section .hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.12);
}

/* Mobile responsiveness (mirror gebuehr-5 feel) */
@media (max-width: 980px) {
  .trust-section .trust-cards {
    gap: 20px;
  }
}


/* === Distinct Contact Section (not like Trust) === */
.contact-section {
  padding: 60px 20px;
  background: linear-gradient(135deg, #f8f8f8 0%, #ffffff 100%); /* gradient background */
  text-align: center;
  margin: 0;
}
.contact-section .contact-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
}
.contact-section h2 {
  font-family: 'Source Sans Pro', sans-serif;
  font-weight: 800;
  font-size: 2rem;
  margin: 0 0 10px;
  color: #000;
}
.contact-section p {
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0 0 24px;
  color: #333;
}
.contact-section p a {
  color: #000;
  text-decoration: none;
  font-weight: 600;
  border-bottom: 2px solid #BEF900;
  transition: 0.25s ease;
}
.contact-section p a:hover {
  color: #555;
  border-bottom-color: #a0d600;
}
.contact-btn {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
  border: 2px solid #336B7A;
  background: #336B7A;
  color: #fff;
  transition: 0.25s ease;
  font-size: 1.1rem;
}
.contact-btn:hover {
  transform: translateY(-2px);
  background: #2a5763;
  color: #fff;
  border-color: #2a5763;
  box-shadow: 0 4px 15px rgba(51, 107, 122, 0.3);
}


/* === DESKTOP LANGUAGE SWITCHER === */
.lang-switcher {
  position: relative;
  perspective: 1000px;
}

.lang-btn {
  background: var(--brand-green);
  padding: 8px 18px;
  border: none;
  border-radius: 50px;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Single, Improved Hover Rule */
.lang-btn:hover {
  filter: brightness(0.92); /* Darkens slightly for feedback */
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.lang-dropdown {
  display: block;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 130px;
  background: #ffffff;
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
  border: 1px solid rgba(0,0,0,0.05);
  
  /* Animation States */
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) rotateX(-10deg);
  transform-origin: top center;
  transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
  z-index: 1000;
}

.lang-dropdown.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) rotateX(0);
}

.lang-dropdown a {
  display: flex; /* Changed to flex for the active dot */
  justify-content: space-between;
  align-items: center;
  padding: 10px 15px;
  border-radius: 10px;
  text-decoration: none;
  color: #333;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.2s ease;
}

.lang-dropdown a:hover {
  background: #f5f5f5;
  padding-left: 20px;
}

/* Active State Styles */
.lang-dropdown a.active {
  background: #f9f9f9;
  padding-left: 20px; /* Push text right to make room for the bar */
  position: relative;
  color: #000;
}

.lang-dropdown a.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 15%;
  height: 70%;
  width: 4px; /* Thick vertical bar */
  background: var(--brand-green);
  border-radius: 0 4px 4px 0;
}
.lang-dropdown a.active::after {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--brand-green);
  border-radius: 50%;
  display: inline-block;
}

/* === HAMBURGER CORE STYLES === */
/* === HAMBURGER CORE STYLES === */
.hamburger {
  display: none; /* Hidden on desktop */
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 10000;
}

.hamburger span {
  width: 30px;
  height: 3px;
  background: #000;
  border-radius: 10px;
  transition: all 0.3s linear;
  position: relative;
  transform-origin: 1px;
}

/* Hamburger Animation to 'X' */
.hamburger.open span:nth-child(1) { transform: rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: rotate(-45deg); }
   /* === MOBILE RESPONSIVENESS === */

/* 1. Large Tablets & Small Desktops (max 1200px) */
@media (max-width: 1200px) {
  .header-inner,
  .card-inner,
  .profiles-section,
  .portrait-carousel {
    padding-left: 30px;
    padding-right: 30px;
  }
}

/* 2. Standard Tablets (max 980px) 
   Organizes the header to stack and prevents 'thin' shrinking */
/* === MOBILE HEADER LOGIC (980px and below) === */
/* === UPDATED MOBILE HEADER LOGIC (980px and below) === */
@media (max-width: 980px) {
  .hamburger {
    display: flex; 
  }

  /* 1. Change display:none to visibility/opacity for animation */
  nav.menu {
    display: flex; /* Always flex, but hidden via other means */
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--brand-green);
    padding: 0 20px; /* Vertical padding handled by active state */
    gap: 10px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    border-top: 1px solid rgba(0,0,0,0.05);

    /* Animation Properties */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px); /* Starts slightly higher */
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); /* Smooth spring-like curve */
  }

  /* 2. The Active State */
  nav.menu.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    max-height: 500px; /* Large enough to fit all links */
    padding: 20px;
  }

  /* Optional: Staggered link animation */
  nav.menu.active a {
    animation: fadeInLink 0.5s ease forwards;
  }
}

@media (max-width: 980px) {
  /* 1. Position the switcher container */
  .lang-switcher {
    position: relative;
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 10px 0;
  }

  /* 2. The Floating Overlay Card */
  .lang-dropdown {
    /* Reset position to absolute to 'float' over the menu */
    position: absolute;
    top: 50%; 
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9); /* Center and shrink for animation */
    
    display: none; /* Controlled by .show class */
    flex-direction: row; /* Put DE and EN side-by-side */
    background: #ffffff;
    border-radius: 50px; /* Pill shape */
    padding: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.25);
    border: 1px solid rgba(0,0,0,0.1);
    z-index: 10001; /* Stay above everything */
    width: auto;
    min-width: 140px;
  }

  /* 3. Show State with Animation */
  .lang-dropdown.show {
    display: flex;
    animation: popIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  }

  /* 4. Style the DE / EN links inside the pill */
  .lang-dropdown a {
    flex: 1;
    padding: 10px 20px !important;
    text-align: center;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 40px;
    color: #000 !important;
    transition: background 0.2s;
  }

  /* Highlight on hover/tap */
  .lang-dropdown a:hover {
    background: var(--brand-green);
  }

  /* Optional: Add a divider between DE and EN */
  .lang-dropdown a:first-child {
    border-right: 1px solid #eee;
  }
}

/* Pop-in Keyframes */
@keyframes popIn {
  from { opacity: 0; transform: translate(-50%, -40%) scale(0.9); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Keyframes for the links popping in */
@keyframes fadeInLink {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: translateX(0); }
}
  /* Shrink Behavior for Mobile */
  header#main-header.shrink .header-inner {
    padding: 10px 24px !important;
    height: auto; /* Let the content define the height, but keep padding low */
  }

  header#main-header.shrink .hamburger {
    transform: scale(0.9); /* Burger gets slightly smaller on scroll */
  }
}

  /* Layout Adjustments */
  .card h1 { font-size: 2.8rem; }
  .card p.lead { font-size: 1.15rem; }
  .card { padding: 60px 0; }

  .trust-section .trust-cards { gap: 20px; }
  
  footer {
    flex-direction: column;
    gap: 24px;
    padding: 32px 20px;
    text-align: center;
  }
  
  .footer-logos { gap: 15px; }
  .logo-holder img { height: 50px; }
}

/* 3. Small Tablets & Landscape Phones (max 768px) */
@media (max-width: 768px) {
  .card h1 { font-size: 2.2rem; }
  .card-inner, .profiles-section { padding: 0 24px; }

  .btn-row {
    flex-direction: column;
    align-items: stretch;
  }

  .btn { text-align: center; }

  /* Profiles stack vertically */
  .profile-detail {
    flex-direction: column !important;
    padding: 28px 24px;
    margin-bottom: 30px;
  }

  .profile-detail .image-container {
    width: 100%;
    flex: 0 0 280px;
    height: 280px;
  }

  .citizenship-law-content,
  .trust-section-content,
  .trust-section .card {
    padding: 30px 24px;
  }
}

/* 4. Small Mobile (max 640px) */
@media (max-width: 640px) {
  .header-inner { padding: 12px 16px; }
  
  header#main-header.shrink .header-inner { padding: 10px 16px !important; }

  .brand-mark, 
  header#main-header.shrink .brand-mark {
    height: 26px;
  }

  .footer-text { font-size: 0.85rem; }
}

/* 5. Mobile Portrait (max 480px) */
@media (max-width: 480px) {
  .logo { font-size: 1.2rem; }
  header#main-header.shrink .logo { font-size: 1rem !important; }

  nav.menu a {
    font-size: 0.85rem;
    padding: 5px 8px;
  }

  .card h1 { font-size: 1.8rem; }
  
  .portrait-card {
    flex: 0 0 240px;
    height: 350px;
  }

  /* Cookie Consent Mobile */
  #cookie-consent { padding: 14px 16px; }
  #cookie-consent span { font-size: 0.9rem; }
  #cookie-consent .btn-row { flex-direction: row; }
  #cookie-consent .btn.accept,
  #cookie-consent .btn.deny {
    padding: 9px 16px;
    font-size: 0.85rem;
  }
}

/* 6. Extra Small Devices (max 360px) */
@media (max-width: 360px) {
  header#main-header.shrink .logo { font-size: 0.95rem !important; }
}



    /* === FAQ Section === */
    .faq-section {
      padding: 80px 20px;
      background: white;
      margin: 0;
    }

    .faq-content {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 40px;
    }

    .faq-content h2 {
      font-family: 'Source Sans Pro', sans-serif;
      font-weight: 800;
      font-size: 2.8rem;
      line-height: 1.1;
      letter-spacing: -0.5px;
      margin: 0 0 50px;
      color: #000;
      text-align: center;
    }

    .faq-item {
      background: #f9f9f9;
      border-radius: 12px;
      margin-bottom: 15px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.05);
      transition: all 0.3s ease;
      border: 1px solid #e5e5e5;
      overflow: hidden;
    }

    .faq-item:hover {
      box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }

    .faq-question {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 15px;
      padding: 25px 30px;
      cursor: pointer;
      user-select: none;
    }

    .faq-question-content {
      display: flex;
      align-items: center;
      gap: 15px;
      flex: 1;
    }

    .faq-question i.question-icon {
      font-size: 1.3rem;
      color: #336B7A;
      flex-shrink: 0;
    }

    .faq-question h3 {
      font-family: 'Inter', sans-serif;
      font-weight: 600;
      font-size: 1.15rem;
      color: #000;
      margin: 0;
      line-height: 1.4;
    }

    .faq-toggle {
      font-size: 1.5rem;
      color: #336B7A;
      transition: transform 0.3s ease;
      flex-shrink: 0;
    }

    .faq-item.active .faq-toggle {
      transform: rotate(180deg);
    }

    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease, padding 0.3s ease;
      padding: 0 30px;
    }

    .faq-item.active .faq-answer {
      max-height: 500px;
      padding: 0 30px 25px 30px;
    }

    .faq-answer p {
      font-size: 1.05rem;
      line-height: 1.7;
      color: #444;
      margin: 0;
      padding-left: 45px;
    }

    .faq-answer strong {
      color: #336B7A;
      font-weight: 600;
    }

    @media (max-width: 768px) {
      .faq-content {
        padding: 0 20px;
      }

      .faq-content h2 {
        font-size: 2rem;
        margin-bottom: 35px;
      }

      .faq-question {
        padding: 20px;
      }

      .faq-question h3 {
        font-size: 1.05rem;
      }

      .faq-item.active .faq-answer {
        padding: 0 20px 20px 20px;
      }

      .faq-answer p {
        font-size: 1rem;
        padding-left: 0;
      }
    }
