/*!space between buttons in navbar */

.btn-margin-left {
    margin-left: 4px;
}
.btn-margin-right {
    margin-right: 4px;
}

body { padding-top: 0; }

.navbar-brand>img {
  padding: 1px 10px;
}

.navbar-brand
    {
      font-size: medium;
    }

/*!navbar background color HU Berlin */
.bg-navbar-HU {
    background-color: #101224;
}
/* Floating HU logo inside banner */
.hu-logo-link {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 1100;              /* make sure it's above overlays */
  display: block;
}
/* Lab logo next to HU logo, slightly offset */
.lab-logo-link {
  position: absolute;
  top: 25px;
  left: 35px; /* or right: ...px if you want it on the right side */
  z-index: 1100;
  display: block;
}
.lab-logo-link img {
  max-width: 90px;
  height: auto;
}
.hu-logo-link img {
  max-height: 130px;
  height: auto;
  width: auto;
  transition: max-height 0.2s ease;
}

/* On phones: shrink logo */
@media (max-width: 600px){
  .hu-logo-link img {
    max-height: 100px;   /* smaller for phones */
  }
  .lab-logo-link img {
max-height: 80px
  }
  }

/* 1) One column: card spans the whole inner container */
.pub-header a.badge-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;       /* fixed button size */
  height:46px;
  border-radius:50%; 
  background:#fff;
  border:1px solid rgba(15,23,42,.15);
  padding:0;
}

/* Heading row with badges */
.section-title-row{
  display:flex; align-items:baseline; gap:.75rem; flex-wrap:wrap;
  margin-bottom:1rem;
}
.pub-badges{ display:flex; gap:.5rem; }
.pub-badges a{
  width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; background:#fff;
  border:1px solid rgba(15,23,42,.15);
  box-shadow:0 2px 6px rgba(2,6,23,.06);
  text-decoration:none;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.pub-badges a:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(2,6,23,.10);
  background:#f8fafc;
}
.pub-badges img, .pub-badges svg{ width:20px; height:20px; display:block; }
/* different vertical vs horizontal spacing */
/*.pub-grid { row-gap: .5rem; column-gap: 1rem; }
/* Full-width grid of cards */
.pub-grid{ display:grid; grid-template-columns:1fr; gap: 1rem; row-gap: 2rem;   /* vertical spacing */}

/* Card */
.pub-card{
  position:relative;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:1rem;
  padding:1rem 1rem 0.875rem;
  box-shadow:0 6px 16px rgba(2,6,23,.06);
  color:inherit;
  overflow:hidden;
}
.pub-card:hover{ box-shadow:0 10px 24px rgba(2,6,23,.10); }

/* Stretched link below the buttons */
.pub-card .stretched-link{ position:absolute; inset:0; z-index:1; }

.pub-topline{ display:flex; justify-content:space-between; align-items:baseline; }
.pub-year{ font-weight:600; color:#334155; }
.pub-journal{ font-weight:600; color:#0f172a; font-style:italic; }
.pub-title{ margin:.35rem 0 .5rem; font-weight:600; line-height:1.3; }
.pub-authors{ color:#475569; font-size:.95rem; }

/* Buttons inside the card, above overlay */
.pub-links{
  margin-top:.6rem; display:flex; gap:.5rem; flex-wrap:wrap;
  position:relative; z-index:2;
}
.pub-links a.small{
  font-size:.9rem; text-decoration:none; padding:.25rem .6rem; border-radius:.5rem;
  border:1px solid rgba(15,23,42,.15); background:#f8fafc; color:#000000;
}
.pub-links a.small:hover{ background:#eef2ff; }

/* Year accordion */
.pub-accordion .year-group{ margin-bottom:1rem; border-radius:var(--radius); }
.pub-accordion .year-group > summary{
  list-style:none; cursor:pointer; user-select:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:.6rem .9rem; font-weight:700;
  background:var(--bg2); border:1px solid rgba(15,23,42,.12);
  border-radius:.8rem;
}
.pub-accordion .year-group > summary::-webkit-details-marker{ display:none; }
.pub-accordion .year-group[open] > summary{
  background:#fff; box-shadow:0 6px 16px rgba(2,6,23,.06);
}
.pub-accordion .year-group .chev{ transition:transform .2s ease; }
.pub-accordion .year-group[open] .chev{ transform:rotate(180deg); }
.pub-accordion .pub-grid{ margin-top:.75rem; }   /* space between summary and cards */

/* (optional) tweak vertical space between cards within a year */
.pub-accordion .pub-grid{ row-gap:1.25rem; }    /* adjust to taste */

/* --- People grid & cards --- */
.people-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap:1.25rem; /* space between person cards */
}

.person-card{
  display:flex; gap:1rem; align-items:flex-start;
  background:#fff; color:inherit;
  border:1px solid rgba(15,23,42,.08);
  border-radius:1rem; padding:1rem;
  box-shadow:0 6px 16px rgba(2,6,23,.06);
  overflow:hidden;
}
.person-card:hover{ box-shadow:0 10px 24px rgba(2,6,23,.10); }

/* Photo column */
.person-photo{
  flex:0 0 160px;            /* fixed visual width on desktop */
  width:160px;
  aspect-ratio:3/4;          /* modern browsers keep nice portrait shape */
  object-fit:cover;
  border-radius:.75rem;
  background:#f1f5f9;
}

/* Text column */
.person-body{ flex:1 1 auto; min-width:0; }
.person-name{ margin:0; font-weight:700; line-height:1.2; }
.person-role{ color:#64748b; margin:.15rem 0 .25rem; }
.person-meta{ font-size:.95rem; color:#475569; }

/* Small icon/link row */
.person-links{
  display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0 .25rem;
}
.person-links a{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:999px;
  background:#fff; border:1px solid rgba(15,23,42,.15);
  box-shadow:0 2px 6px rgba(2,6,23,.06);
  text-decoration:none;
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.person-links a:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(2,6,23,.10);
  background:#f8fafc;
}
.person-links .fa{ font-size:1rem; color:#0f172a; }
/* Same look for icons in both places */
.pub-badges a i,
.person-links a i {
  font-size: 18px;          /* consistent size */
  line-height: 1;
  color: #0f172a;           /* or #3b82f6 if you want blue in BOTH */
}

/* Research grid: two big responsive cards */
.research-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(380px,1fr));
  gap:1.25rem;
}
.research-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:1rem;
  box-shadow:0 6px 16px rgba(2,6,23,.06);
  overflow:hidden;
}
.research-card:hover{ box-shadow:0 10px 24px rgba(2,6,23,.10); }
.research-card-body{ padding:1.25rem 1.25rem 1rem; }
.research-card-title{ margin:0 0 .5rem; font-weight:800; }
.research-points, .tool-list{ margin:.25rem 0 0; padding-left:1.05rem; }
.research-points li, .tool-list li{ margin:.35rem 0; }

/* Optional media row inside a card */
.research-media{
  display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:.75rem;
}
.research-media img, .research-media video{
  width:100%; height:auto; border-radius:.5rem; border:1px solid rgba(15,23,42,.08);
}

/* --- HERO BANNER --- */
.page-header.hero-banner{
  /* background image + overlay */
  --hero-img: url("../img/test2.png");   /* <-- put your banner photo here */
  position: relative;
  color: #fff;
  padding-top: 72px;               /* room for fixed nav if any */
  background:
    linear-gradient(180deg, rgba(0,26,51,.88), rgba(0,26,51,.60)),
    var(--hero-img) center/cover no-repeat;
  min-height: 38vh;                /* nice compact height on desktop */
  display: flex; align-items: center;
}

/* ===== People grid: desktop / large screens ===== */
.people-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 1.25rem;
}

/* smoother parallax-ish feel on large screens */
@media (min-width: 992px){
  .page-header.hero-banner{
    min-height: 48vh;
    background-attachment: fixed;  /* Safari ignores; others get pleasant effect */
  }
}

/* inner content */
.hero-inner{
  width: 100%;
  padding: 2.5rem 0 2rem;
  text-align: left;
}

.hero-mark{
  width: 72px; height: 72px;
  display:block;
  margin: 0 0 .75rem 0;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.25));
}

.hero-title{
  margin: 0 0 .25rem 0;
  font-weight: 800;
  line-height: 1.15;
  font-size: clamp(1.8rem, 3.2vw + 1rem, 3.2rem);
  letter-spacing: .2px;
  text-shadow: 0 6px 18px rgba(0,0,0,.25);
}

.hero-subtitle{
  margin: 0 0 1rem 0;
  font-size: clamp(1rem, .8vw + .75rem, 1.25rem);
  opacity: .95;
}

/* call-to-action badges – matches your round badge style */
.hero-ctas{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.5rem; }
.hero-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .4rem 1rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.15);
  box-shadow: 0 2px 6px rgba(2,6,23,.06);
  text-decoration: none;      /* no underline */
  font-weight: 600;
  color: #0f172a;             /* dark text */
  transition: all 0.2s ease;
}

.hero-badge:hover {
  text-decoration: none;      /* stop underline on hover */
  background: #e2e3e5;        /* soft bluish highlight */
  box-shadow: 0 6px 14px rgba(37, 99, 235, 0.25); /* bluish glow */
  color: #000000;             /* darker blue text */
}

.person-card.no-photo {
  /* behave as if no image exists */
  padding-left: 1.25rem;  /* slight indent */
}

.person-card.no-photo .person-photo {
  display: none;  /* hide the image entirely */
}

.person-body {
  flex: 1;
}

.person-name {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
}

.person-role {
  font-size: 0.95rem;
  color: #64748b;
}

.person-meta {
  font-size: 0.85rem;
  color: #94a3b8;
}

.person-links a {
  color: #2dd4bf;
  margin-right: 0.5rem;
  text-decoration: none;
}

/* Never allow horizontal scrolling (global) */
html, body { overflow-x: hidden; }

/* keep the inner box padding from changing overall width */
.section-inner { box-sizing: border-box; }

/* images should never cause overflow */
.person-card img,
.research-card img { max-width: 100%; height: auto; }

/* --- PHONE FIXES (≤ 600px) --- */
@media (max-width: 600px){

  /* the section "card" already has 92vw + padding; don't let children be wider */
  .person-card,
  .research-card,
  .pub-card { 
    width: 100%;           /* was 92vw; this prevents the spill */
    max-width: 100%;
  }
    .page-header .hero-inner {
    /* responsive left/right gutter + iOS notch safety */
    padding-left: max(24px, 7vw, env(safe-area-inset-left));
    padding-right: max(24px, 7vw, env(safe-area-inset-right));
  }
  .pub-topline {
    flex-direction: column;      /* stack year above journal */
    align-items: flex-start;     /* align text to the left */
    gap: .25rem;                 /* small vertical gap */
  }

  .pub-year {
    font-weight: 600;
    margin-bottom: .15rem;       /* extra breathing room */
  }

  .pub-journal {
    font-style: italic;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;            /* don’t let it hug the right edge */
  }
  /* Keep it left-aligned (remove these two lines if you prefer centered) */
  .hero-inner { text-align: left; }
  .hero-title, .hero-subtitle { margin-left: 0; margin-right: 0; }

  /* single column and centered items */
  .people-grid,
  .research-grid{
    grid-template-columns: 1fr !important;
    justify-items: center;      /* was 'block' */
  }

  /* center internals */
  .person-card{
    flex-direction: column;
    align-items: center;        /* was 'block' */
    text-align: center;
  }

  /* photo size on mobile */
  .person-photo{
    flex: 0 1 auto;
    width: min(70%, 260px);
    max-width: 100%;
  }
}
  /* research media stack */
  .research-media{ grid-template-columns: 1fr; }



/* Also fix the earlier typos if they appear elsewhere */
.people-grid { justify-items: stretch; }  /* desktop default */


/* Consistent brand icon sizing/color */
.icon-brand {
  font-size: 20px;             /* match your 20×20 look */
  line-height: 1;
  color: #A6CE39;              /* ORCID green; override per-icon if needed */
  display: inline-block;
  vertical-align: middle;
}

/* Optional: if you want a white circular button behind the icon (like your pub badges) */
.pub-badges a {
  width: 36px; height: 36px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.15);
  box-shadow: 0 2px 6px rgba(2,6,23,.06);
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.pub-badges a:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(2,6,23,.10);
  background: #f8fafc;
}

/* Reuse the same circular badge look for both places */
/* Make both places use the same round badge */
.pub-badges a,
.person-links a{
  width:36px; height:36px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; background:#fff;
  border:1px solid rgba(15,23,42,.15);
  box-shadow:0 2px 6px rgba(2,6,23,.06);
  text-decoration:none;
  transition:transform .12s, box-shadow .12s, background .12s;
}
.pub-badges a:hover,
.person-links a:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(2,6,23,.10);
  background:#f8fafc;
}

/* keep raster icons the same size */
.icon-img{ width:20px; height:20px; display:block; }
.person-links i{ font-size:18px; line-height:1; }


/* Keep raster icons consistent in size */
.icon-img{ width:20px; height:20px; display:block; }

/* Centering + responsiveness */
.spp-link { display: inline-block; text-align: center; }
.spp-logo { 
  max-height: 260px;       /* desktop cap */
  height: auto; 
  width: auto; 
  display: block; 
  margin: 0 auto;          /* horizontal center */
}

/* Center the content inside the column at all breakpoints */
.spp-col {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;         /* also centers inline elements inside */
}

/* Keep the image nicely sized and centered */
.spp-link { display: inline-block; }
.spp-logo {
  max-height: 120px;
  height: auto;
  width: auto;
  display: block;
  margin: 0 auto;             /* center inside the link */
}

/* Optional smaller cap on phones */
@media (max-width: 600px){
  .spp-logo { max-height: 90px; }
}

/* “Remove white background” visual blend */
.no-bg { mix-blend-mode: multiply; }


/* --- “Remove white background” options ---
   A) Quick visual hack (works best if the logo has a white box):
      White areas blend into the page background.
      Keep if your section background is light/solid. */
.no-bg { mix-blend-mode: multiply; }

/* B) Monochrome mask option (only if the logo is basically one solid color on white):
   This turns image luminance into alpha (transparent); recolor via background-color. */
.logo-mask {
  -webkit-mask: url("../img/spp.jpeg") center/contain no-repeat;
          mask: url("../img/spp.jpeg") center/contain no-repeat;
  background-color: #000;      /* logo color */
  width: min(260px, 60vw);
  height: auto;                /* set a fixed height if the mask needs ratio control */
}
/* If you use .logo-mask, replace <img> with a <div class="logo-mask"> and remove the <img>. */



-------------------------------------------------- */

-------------------------------------------------- */
.video-frame {
  display: flex;
  justify-content: center;
  margin: 1rem auto;
}

.video-frame video {
  width: 100%;
  max-width: 720px;       /* nice max width on desktop */
  border-radius: 1rem;    /* match your card corners */
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
}
/* pick the aspect you want (16:9 here) */
.video-frame.ar-16x9 { position:relative; width:100%; max-width:100%; }
.video-frame.ar-16x9::before { content:""; display:block; padding-top:56.25%; } /* 9/16 */

.video-fit{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: contain;   /* no cropping; letterboxes if needed */
  background:#000;       /* nice letterbox color */
}

/* RESPONSIVE PHOTO GRID
https://css-tricks.com/seamless-responsive-photo-grid/
-------------------------------------------------- */
#photos {
  /* Prevent vertical gaps -> line-height: 0; */
  line-height: 5;
   
  -webkit-column-count: 2;
  -webkit-column-gap:   5px;
  -moz-column-count:    2;
  -moz-column-gap:      5px;
  column-count:         2;
  column-gap:           5px;  
}

#photos img {
  /* Just in case there are inline attributes */
  width: 100% !important;
  height: auto !important;
}

* {
    padding: 0; margin: 0;
}
------ /* Images used in NEWS */
* {
    padding: 0; margin: 0;
}

@keyframes pulse{
    100% {
        opacity: 0;
        transform:
            translate(-50%, -50%)
            scale(3.5);
    }
}
@media screen and (max-width: 600px) {
    .world-map {
        font-size: 13px;
    }
}
.videoWrapper {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  padding-top: 15px;
  height: 0;
}

.videoWrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 40%;
}

#content {
  min-height: calc(100vh - 20px);
}

.video-container {
    display: flex;
    justify-content: center;
    flex-wrap: wrap; /* Allow videos to wrap on smaller screens */
    gap: 80px;
}

.video-container video {
    flex: 1 1 auto; /* Flex grow, flex shrink, and flex basis set to auto */
    max-width: 40%; /* Maximum width of each video */
    height: auto; /* Maintain aspect ratio */
}
.badge {
    display: block; /* Makes the badge a block-level element */
    text-align: left; /* Aligns the text to the left */
    white-space: normal; /* Ensures text wraps naturally */
    width: 100%; /* Adjust width as necessary */
}

/* Optional: Media query for additional responsiveness */
@media (max-width: 600px) {
    .badge {
        width: 100%; /* Can adjust width on smaller screens if needed */
    }
}
.badge_publications {
    font-size: 20px;
     /*display: block; /* Makes the badge a block-level element */
    /*text-align: left; /* Aligns the text to the left */
    /*white-space: normal; /* Ensures text wraps naturally */
     /*width: 100%; /* Adjust width as necessary */
}
/* Hide the hr line by default */
.custom-hr {
  display: none;
}

/* CSS Media Query for screen sizes 412px or less */
@media only screen and (max-width: 411px) {
  .custom-hr {
    display: block; /* Show the hr line */
    /* Additional styling for the hr line if needed */
    width: 100%;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 20px 0; /* Adjust the margin as needed */
  }
}
/* Ensure the row uses Flexbox */
.row {
    display: flex;
    flex-wrap: wrap;
}

/* Ensure the card takes the full height */
.card {
    height: 100%;
}

/* Flex children (col-lg-6) should stretch to fill the container */
.col-lg-6 {
    display: flex;
    flex-direction: column;
}
/* Hide the hr line by default */
.custom-hr {
  display: none;
}

/* CSS Media Query for screen sizes 412px or less */
@media only screen and (max-width: 992px) {
  .custom-hr {
    display: block; /* Show the hr line */
    /* Additional styling for the hr line if needed */
    width: 100%;
    border: 0;
    border-top: 0.5px solid #eee;
    margin: 20px 0; /* Adjust the margin as needed */
  }
}
/* Back-to-top — SINGLE rule */
.back-to-top{
  -webkit-appearance:none; appearance:none;
  -webkit-tap-highlight-color:transparent;

  position:fixed;
  right:max(16px, env(safe-area-inset-right));
  bottom: calc(16px + var(--avoid-footer, px) + max(16px, env(safe-area-inset-bottom))) !important;

  z-index:1200;
  width:44px; height:44px; border-radius:999px;
  border:1px solid rgba(180,180,180,.15);
  background:#fff; box-shadow:0 6px 16px rgba(2,6,23,.18);
  display:none; opacity:0;                /* hidden by default */
  align-items:center; justify-content:center;
  transition:bottom .25s, box-shadow .12s, transform .12s, opacity .12s;
}
.back-to-top i{ font-size:18px; line-height:1; color:#85898d; }

@media (max-width:600px){
  .back-to-top.is-visible{ display:inline-flex !important; opacity:1; }
}

@media (hover:hover){
  .back-to-top:hover{ transform:translateY(-1px); box-shadow:0 10px 24px rgba(2,6,23,.26); }
  .back-to-top:active{ transform:translateY(0); }
}

.back-to-top:focus,
.back-to-top:active{ outline:none; background:#fff; box-shadow:none; }
.back-to-top:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(77,159,8,.45), 0 6px 16px rgba(2,6,23,.18); }

@media (prefers-reduced-motion: reduce){
  .back-to-top{ transition:none; }
}
/* Make each card body a vertical flex container */
.research-card-body{
  display:flex;
  flex-direction: column;
  height: 100%;
}

/* Push the “Aims overview” block to the same vertical start in both cards */
.research-card-body > h5.section-title{
  margin-top: auto;            /* everything above can grow; h5 (and what follows) drops to same line */
}

/* (optional) ensure the image scales nicely */
.aims-figure img{ max-width:100%; height:auto; display:block; }
/* space after the last list before the Aims overview heading */
.research-card-body .research-points,
.research-card-body .tool-list{
  margin-bottom: .8rem;   /* tweak to taste */
}

/* keep the alignment trick */
.research-card-body{
  display: flex;
  flex-direction: column;
}
.research-card-body > h5.section-title{
  margin-top: auto;                 /* aligns both cards */
}
.research-card-body > h5.section-title + .aims-figure{
  margin-top: .5rem;                /* space between h5 and figure */
}
.aims-figure{
  aspect-ratio: 16 / 9;          /* choose the ratio that fits your artwork */
  margin-top: .6rem;
  padding: .5rem;
  display: grid;
  justify-items: center;
  align-items: center;            /* or start for top-aligned content */
  border-radius: .75rem;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 2px 8px rgba(2,6,23,.06);
}

.aims-figure img{
  width: 100%;
  height: 100%;
  object-fit: contain;            /* keep entire image visible */
  display: block;
}
