/* ─────────────────────────────────────────────
   STICKY FOOTER
   ───────────────────────────────────────────── */
.dsg-footer {
  --footer-height: 65px;
  --footer-espa-height: 42px;

  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;

  width: 100%;
  height: var(--footer-height);
  min-height: var(--footer-height);
  padding: 10px 20px 10px 20px;

  background: #ffffff;
  border-top: 1px solid #E0E0E0;
  opacity: 1;
}

/* Οι δύο άκρες μοιράζονται ίσο χώρο ώστε το λεκτικό να είναι πάντα ακριβώς στο κέντρο. */
.dsg-footer-side {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  min-width: 0;
}

.dsg-footer-side--end {
  justify-content: flex-end;
}

.dsg-footer-copy {
  flex: 0 0 auto;
  /* Το λεκτικό ευθυγραμμίζεται στο κάτω μέρος του footer, όχι στο κέντρο. */
  align-self: flex-end;
  margin: 0;
  font-family: "Open Sans", "Roboto", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  line-height: 100%;
  letter-spacing: 0;
  text-align: center;
  vertical-align: middle;
  color: #777777;
  white-space: nowrap;
}

.dsg-footer-espa {
  display: block;
  height: var(--footer-espa-height);
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* ── STICKY μέσα στο βασικό layout (.dsg-right = scroll container) ── */
.dsg-right > .dsg-footer {
  position: sticky;
  bottom: 0;
  /* Πάνω από το εσωτερικό z-index scale του Leaflet (panes 400-700, controls 1000),
     ώστε ο χάρτης να μην περνάει από πάνω κατά το scroll. */
  z-index: 1200;
  flex-shrink: 0;
  margin-top: auto;
}

/* ── STICKY σε standalone σελίδες χωρίς sidebar (login, reset password) ── */
.dsg-footer--fixed {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
}

/* Χώρος ώστε το περιεχόμενο να μην κρύβεται κάτω από το fixed footer. */
.login-page-wrapper {
  /* border-box ώστε το padding να μετράει μέσα στο 100vh και να μη δημιουργεί scroll. */
  box-sizing: border-box;
  padding-bottom: 72px;
}

/* Το Drupal core προσθέτει στο τέλος του <body> ένα κενό, absolutely positioned
   .visually-hidden (aria-live region, ύψος 1px). Με το wrapper ακριβώς 100vh η static
   θέση του πέφτει 1px κάτω από το viewport και γεννάει κάθετο scrollbar. Το καρφιτσώνουμε
   στην κορυφή — είναι clipped σε 1x1 και αόρατο, οπότε δεν αλλάζει τίποτα οπτικά. */
body:has(.login-page-wrapper) > .visually-hidden {
  top: 0;
}

/* ── RESPONSIVE: LAPTOP ── */
@media (max-width: 1440px) {
  .dsg-footer {
    --footer-height: 64px;
    --footer-espa-height: 36px;
  }

  .login-page-wrapper {
    padding-bottom: 64px;
  }
}

/* ── RESPONSIVE: TABLET ── */
@media (max-width: 991px) {
  .dsg-footer {
    --footer-height: 60px;
    --footer-espa-height: 32px;
  }

  .login-page-wrapper {
    padding-bottom: 60px;
  }
}

/* ── RESPONSIVE: MOBILE ──
   Το λεκτικό πάνω, το ESPA κάτω, ώστε να παραμένει αναγνώσιμο σε στενές οθόνες. */
@media (max-width: 767px) {
  .dsg-footer {
    --footer-height: auto;
    --footer-espa-height: 28px;

    flex-direction: column;
    justify-content: center;
    gap: 8px;
    height: auto;
    min-height: 0;
    padding: 10px;
  }

  .dsg-footer-side {
    flex: 0 0 auto;
  }

  .dsg-footer-side--end {
    justify-content: center;
  }

  .dsg-footer-copy {
    /* Σε column διάταξη ο cross axis είναι οριζόντιος — επαναφορά στο κέντρο. */
    align-self: center;
    font-size: 11px;
    white-space: normal;
  }

  .login-page-wrapper {
    padding-bottom: 96px;
  }
}

/* ── PRINT ── */
@media print {
  .dsg-footer {
    display: none !important;
  }
}
