/* =================================================
   Contact Page — Relaunch 2025
   Wiederverwendet aus global.css: .btn/.btn-ghost, .section-ey, .section-h, .acc,
   .s-pad, .s-inner, .s-hdr-c, .hero-ey, .hero-t/.line/.word, .hero-sub, .hero-btns,
   .hero-scroll, .breadcrumb/.bc-*
   ================================================= */


/* ---------- HERO ---------- */
.contact-hero{
  position:relative;
  min-height:72vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:radial-gradient(ellipse at 20% 110%, rgba(133,255,199,.10) 0%, transparent 55%),
             linear-gradient(180deg, #031a2b 0%, #011827 70%);
}
.contact-hero-bg{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 78% 22%, rgba(133,255,199,.09) 0%, transparent 42%),
    radial-gradient(circle at 18% 78%, rgba(133,255,199,.07) 0%, transparent 38%);
  pointer-events:none;
}
.contact-hero-ct{
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--section-max);
  margin:0 auto;
  padding:12rem 5vw 9rem;
  color:#fff;
}
.contact-hero .breadcrumb{
  position:absolute;
  top:7rem;
  bottom:auto;
  left:0;
}
.contact-hero .hero-t{
  font-size:clamp(3rem, 7vw, 6.2rem);
  margin:.5rem 0 0;
  color:#fff;
}
.contact-hero .hero-sub{
  opacity:1;
}
.contact-hero .hero-btns{
  opacity:1;
}


/* ---------- CONTACT-ROUTER (Kategorien) ---------- */
.contact-router-section{
  background:linear-gradient(180deg, #011827 0%, #01222f 100%);
  color:#fff;
}
.contact-router{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.8rem;
  margin-top:1rem;
}
.contact-card{
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:2.4rem 2rem 2rem;
  background:rgba(1, 24, 39, .55);
  border:1px solid rgba(133,255,199,.12);
  text-decoration:none;
  color:inherit;
  transition:border-color .3s ease, transform .3s ease, background .3s ease;
  position:relative;
  overflow:hidden;
}
.contact-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(133,255,199,.06) 0%, transparent 45%);
  opacity:0;
  transition:opacity .3s ease;
  pointer-events:none;
}
.contact-card:hover{
  border-color:rgba(133,255,199,.38);
  transform:translateY(-4px);
  background:rgba(1, 24, 39, .75);
}
.contact-card:hover::before{ opacity:1 }
.contact-card-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  border-radius:50%;
  background:rgba(133,255,199,.12);
  color:var(--aq);
  font-size:1.45rem;
  transition:background .3s ease;
}
.contact-card:hover .contact-card-icon{ background:rgba(133,255,199,.22) }
.contact-card-t{
  font-family:var(--h);
  font-weight:800;
  font-size:1.25rem;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:-.01em;
  margin:0;
  color:#fff;
}
.contact-card-d{
  font-size:1rem;
  line-height:1.6;
  color:rgba(255,255,255,.72);
  margin:0;
  flex-grow:1;
}
.contact-card-mail{
  font-family:var(--h);
  font-weight:700;
  font-size:.95rem;
  color:var(--aq);
  word-break:break-all;
  margin-top:.3rem;
}
.contact-card-badge{
  display:inline-block;
  align-self:flex-start;
  font-family:var(--h);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.4rem .8rem;
  border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.55);
  border-radius:2px;
}
.contact-router-hint{
  text-align:center;
  margin-top:3rem;
  font-size:1rem;
  color:rgba(255,255,255,.62);
}
.contact-router-hint a{
  color:var(--aq);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.contact-router-hint a:hover{ color:#fff }


/* ---------- UNSERE WELTEN ---------- */
.contact-worlds-section{
  background:#01222f;
  color:#fff;
}
.contact-worlds{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:1.4rem;
}
.world-card{
  display:flex;
  flex-direction:column;
  gap:.8rem;
  padding:2rem 1.6rem;
  background:rgba(3, 34, 48, .65);
  border:1px solid rgba(133,255,199,.10);
  text-decoration:none;
  color:inherit;
  transition:border-color .3s ease, transform .3s ease;
}
.world-card:hover{
  border-color:rgba(133,255,199,.32);
  transform:translateY(-3px);
}
.world-logo{
  font-family:var(--h);
  font-size:1rem;
  font-weight:800;
  letter-spacing:-.02em;
  text-transform:lowercase;
  color:rgba(255,255,255,.85);
  margin-bottom:.2rem;
}
.world-logo .acc{ color:var(--aq) }
.world-t{
  font-family:var(--h);
  font-weight:700;
  font-size:1.05rem;
  line-height:1.3;
  margin:0;
  color:#fff;
}
.world-d{
  font-size:.92rem;
  line-height:1.55;
  color:rgba(255,255,255,.65);
  margin:0;
  flex-grow:1;
}
.world-link{
  font-family:var(--h);
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--aq);
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin-top:.4rem;
}
.world-link i{ font-size:.75rem; transition:transform .3s ease }
.world-card:hover .world-link i{ transform:translateX(4px) }


/* ---------- GLOBALE LABORE ---------- */
.contact-labs-section{
  background:linear-gradient(180deg, #01222f 0%, #011827 100%);
  color:#fff;
}
.contact-labs{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:1.4rem;
}
.lab-card{
  background:rgba(1, 24, 39, .55);
  border:1px solid rgba(133,255,199,.10);
  padding:2rem 1.6rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;
  transition:border-color .3s ease, transform .3s ease;
}
.lab-card:hover{
  border-color:rgba(133,255,199,.28);
  transform:translateY(-3px);
}
.lab-flag{
  font-size:2rem;
  line-height:1;
  margin-bottom:.3rem;
}
.lab-t{
  font-family:var(--h);
  font-weight:800;
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:-.01em;
  margin:0;
  color:#fff;
}
.lab-role{
  font-family:var(--h);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--aq);
  margin:0;
}
.lab-d{
  font-size:.92rem;
  line-height:1.55;
  color:rgba(255,255,255,.68);
  margin:0;
  flex-grow:1;
}
.lab-mail{
  font-family:var(--h);
  font-weight:700;
  font-size:.88rem;
  color:var(--aq);
  word-break:break-all;
  text-decoration:none;
  margin-top:.2rem;
}
.lab-mail:hover{ color:#fff }


/* ---------- SOCIAL ---------- */
.contact-social-section{
  background:#011827;
  color:#fff;
}
.contact-social{
  display:flex;
  gap:1.5rem;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:1rem;
}
.social-card{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:.8rem;
  width:220px;
  padding:2.4rem 1.4rem;
  text-decoration:none;
  color:#fff;
  background:rgba(1, 24, 39, .55);
  border:1px solid rgba(133,255,199,.10);
  transition:border-color .3s ease, transform .3s ease;
}
.social-card:hover{
  border-color:rgba(133,255,199,.35);
  transform:translateY(-3px);
}
.social-card i{
  font-size:2.4rem;
  color:var(--aq);
}
.social-name{
  font-family:var(--h);
  font-weight:800;
  font-size:1.1rem;
  letter-spacing:-.01em;
  text-transform:uppercase;
}
.social-handle{
  font-size:.88rem;
  color:rgba(255,255,255,.6);
}


/* ---------- KURZ-FAQ (natives <details>) ---------- */
.contact-faq-section{
  background:#011827;
  color:#fff;
}
.contact-faq{
  max-width:820px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:.9rem;
}
.contact-faq .faq-item{
  background:rgba(1, 24, 39, .6);
  border:1px solid rgba(133,255,199,.1);
  transition:border-color .3s ease;
  max-height:none;
  overflow:hidden;
}
.contact-faq .faq-item[open]{
  border-color:rgba(133,255,199,.28);
}
.contact-faq .faq-q{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.4rem 1.8rem;
  cursor:pointer;
  font-family:var(--h);
  font-weight:700;
  font-size:1.05rem;
  line-height:1.4;
  list-style:none;
  transition:color .3s ease;
}
.contact-faq .faq-q::-webkit-details-marker{ display:none }
.contact-faq .faq-q:hover{ color:var(--aq) }
.contact-faq .faq-q-text{ flex:1 }
.contact-faq .faq-q-icon{
  color:var(--aq);
  font-size:.9rem;
  flex-shrink:0;
  transition:transform .3s ease;
}
.contact-faq .faq-item[open] .faq-q-icon{ transform:rotate(45deg) }
.contact-faq .faq-a{
  padding:0 1.8rem 1.5rem;
  max-height:none;
  overflow:visible;
}
.contact-faq .faq-a p{
  font-size:1rem;
  line-height:1.7;
  color:rgba(255,255,255,.72);
  margin:0;
}
.contact-faq .faq-a a{
  color:var(--aq);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.contact-faq .faq-a a:hover{ color:#fff }


/* ---------- IMPRESSUM-LINK ---------- */
.contact-imprint-section{
  background:linear-gradient(180deg, #011827 0%, #01111c 100%);
  color:#fff;
  padding:clamp(5rem, 10vw, 8rem) 0;
}
.imprint-block{
  max-width:720px;
  margin:0 auto;
  text-align:center;
  padding:3rem 2rem;
  border:1px solid rgba(133,255,199,.15);
  background:rgba(1, 24, 39, .45);
}
.imprint-h{
  font-family:var(--h);
  font-weight:900;
  font-size:clamp(1.8rem, 3vw, 2.4rem);
  text-transform:uppercase;
  letter-spacing:-.01em;
  margin:0 0 1rem;
  color:#fff;
}
.imprint-d{
  font-size:1rem;
  line-height:1.7;
  color:rgba(255,255,255,.7);
  margin:0 0 2rem;
}


/* ---------- RESPONSIVE ---------- */
@media (max-width: 1200px){
  .contact-router{ grid-template-columns:repeat(2, 1fr) }
  .contact-worlds{ grid-template-columns:repeat(3, 1fr) }
  .contact-labs{ grid-template-columns:repeat(3, 1fr) }
}

@media (max-width: 768px){
  .contact-hero{ min-height:60vh }
  .contact-hero-ct{ padding:10rem 5vw 6rem }
  .contact-hero .breadcrumb{ top:5.5rem }
  .contact-router{ grid-template-columns:1fr; gap:1.2rem }
  .contact-card{ padding:2rem 1.6rem 1.8rem }
  .contact-worlds{ grid-template-columns:1fr; gap:1rem }
  .contact-labs{ grid-template-columns:1fr; gap:1rem }
  .social-card{ width:48%; min-width:140px }
  .imprint-block{ padding:2.4rem 1.4rem }
}

@media (max-width: 480px){
  .social-card{ width:100% }
}
