/* ==========================================================================
   footer-2026.css
   Site footer for pages using footer-2026.php.

   Replaces footer.css AND the footer parts of responsive.css on the new
   template. Loads after header-2026.css (which holds the shared base,
   .primary-btn and .consult-form).

   Removed as unused on the new template: free-download modal, wpcf7
   messages, .org-summary-list (page CSS styles it), location / contact-block
   variants, footer-head, input-block, submit-contact-form.
   ========================================================================== */


/* --------------------------------------------------------------------------
   Rendering: the footer is far below the fold, so the browser can skip
   laying it out until it is about to scroll into view. The size hint keeps
   the scrollbar steady.
   -------------------------------------------------------------------------- */

.footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 1100px;
}

.main-footer {
  padding: 70px 0 15px;
  background-color: #0e142b;
}


/* --------------------------------------------------------------------------
   1. Form + link columns
   -------------------------------------------------------------------------- */

.footer-link-info {
  display: flex;
  align-items: flex-start;
}

.main-footer .form-new {
  flex: 0 0 456px;
  width: 456px;
}

.footer-top {
  display: flex;
  width: calc(100% - 456px);
  margin-bottom: 60px;
  padding-left: 20px;
}

.footer-list {
  width: 20%;
  padding: 0 10px;
}

.primary-footer h3 {
  margin-bottom: 0;
  padding-bottom: 10px;
  font-size: 20px;
  font-weight: 600;
  color: #fff;
}

.primary-footer h3 a {
  font-weight: 600;
  color: #fff;
}

.primary-footer h3 a:hover,
.primary-footer h3 a:focus {
  color: #fd7d24;
}

/* Mobile accordion heading, hidden on desktop. */
.primary-footer .footer-list h4.widgettitle {
  display: none;
  margin-bottom: 0;
  padding-bottom: 10px;
  font-weight: 600;
  color: #fff;
}

.footer-list .menu {
  margin-bottom: 0;
}

.footer-list .menu li {
  margin-top: 18px;
}

.footer-list .menu li a {
  font-size: 14px;
  line-height: 18px;
  color: #fff;
}

.footer-list .menu li a:hover,
.footer-list .menu li a:focus {
  color: #fd7d24;
}


/* --------------------------------------------------------------------------
   2. Footer form
   -------------------------------------------------------------------------- */

.main-footer .consult-form h2 {
  font-size: 24px;
  line-height: 34px;
  font-weight: 700;
  color: #000;
}

.main-footer .form-subtitle {
  display: block;
  padding: 10px 0 20px;
  font-size: 18px;
  font-weight: 600;
  line-height: 26px;
  color: #5b657e;
}

.main-footer .consult-form .form-control {
  height: 40px;
  color: #000;
  background-color: #fff;
  border: 1px solid #a4acc1;
  border-radius: 8px;
}

.main-footer .consult-form textarea.form-control {
  height: 98px;
}

.main-footer .submit-user-request {
  margin-top: 25px;
  text-align: center;
}

.main-footer .consult-form .primary-btn {
  display: block;
  width: 100%;
  max-width: 396px;
  height: 55px;
  margin: 0 auto;
  font-size: 20px;
  font-weight: 600;
  line-height: 55px;
  cursor: pointer;
  background-color: #030cbd;
  border: 0;
  border-radius: 55px;
}

.main-footer .consult-form .primary-btn:hover,
.main-footer .consult-form .primary-btn:focus {
  background-color: #ff7d04;
}


/* --------------------------------------------------------------------------
   3. Logo, contact and social row
   -------------------------------------------------------------------------- */

.org-office-info {
  display: flex;
  align-items: center;
  margin-top: 100px;
  padding: 30px 0;
}

.footer-logo {
  flex: 0 0 220px;
}

.footer-logo a {
  display: block;
}

.footer-logo img {
  width: 180px;
  margin-bottom: 0;
}

.footer-logo .logo-subtitle {
  font-size: 0.71rem;
}

.address-block {
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 20px;
}

.address-block-social {
  flex: 0 0 220px;
}

.office-contact-link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}

.org-office-info .email-block,
.org-office-info .phone-block {
  display: flex;
  align-items: flex-start;
  width: 30%;
  font-size: 16px;
  color: #fff;
}

.org-office-info .email-block {
  padding-left: 27px;
}

.org-office-info .phone-block {
  padding-left: 30px;
}

/* Address and "Follow Up On …" caption */
.org-office-info .email-block div,
.org-office-info .phone-block div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: calc(100% - 41px);
  font-size: 10px;
}

.org-office-info .email-block a,
.org-office-info .phone-block a {
  margin-bottom: 5px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

.org-office-info .email-block a:hover,
.org-office-info .phone-block a:hover {
  color: #fd7d24;
}

/* Round icons */
.office-contact-link .icon-msg,
.office-contact-link .icon-phone {
  display: inline-block;
  flex: 0 0 33px;
  width: 33px;
  height: 33px;
  margin-right: 8px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.15);
  background-position: center;
  background-repeat: no-repeat;
}

.office-contact-link .icon-msg {
  background-image: url(../images/footer-msg-icon.webp);
  background-size: 13px;
}

.office-contact-link .icon-phone {
  background-image: url(https://www.nebiolab.com/wp-content/uploads/2024/10/phone-icon.webp);
  background-size: 15px;
}

.social-link-connect {
  display: flex;
  gap: 20px;
  margin-bottom: 7px;
}

.social-link-connect a {
  display: block;
  width: 33px;
  height: 33px;
  background-position: left top;
  background-repeat: no-repeat;
  background-size: cover;
}

.social-link-connect .icon-linkdin {
  background-image: url(../images/footer-linkdin.webp);
}

.social-link-connect .icon-facebook {
  background-image: url(../images/footer-fb.webp);
}

.social-link-connect .icon-twiter {
  background-image: url(https://www.nebiolab.com/wp-content/uploads/2023/08/twitter-logo-new.webp);
}

.org-address {
  margin-bottom: 0;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.4;
  color: #fff;
}


/* --------------------------------------------------------------------------
   4. Accreditation logos, policy links, copyright
   -------------------------------------------------------------------------- */

.secondary-footer {
  text-align: center;
}

.icon-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 0;
}

.icon-list li a {
  display: inline-block;
  min-height: 52px;
  padding: 3px;
  background-color: #fff;
  border-radius: 6px;
}

.icon-list li img {
  display: block;
  width: auto;
  max-width: 92px;
  max-height: 54px;
  margin-bottom: 0;
  border-radius: 7px;
}

.org-policy {
  padding-top: 15px;
}

.policy-link {
  display: inline-flex;
  margin-bottom: 10px;
}

.policy-link li {
  padding: 0 5px;
  line-height: 14px;
  border-left: 1px solid #6c6c6c;
}

.policy-link li.privacy-link {
  padding-left: 0;
  border-left: 0;
}

.policy-link li a,
.copyright-info,
.copyright-info a {
  font-size: 14px;
  color: #fff;
}

.copyright-info {
  line-height: 1.6;
}

.copyright-info a:hover,
.copyright-info a:focus,
.policy-link li a:hover,
.policy-link li a:focus {
  color: #fd7d24;
}


/* --------------------------------------------------------------------------
   5. Back to top
   -------------------------------------------------------------------------- */

.back-to-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  z-index: 1000;
  display: inline-block;
  width: 60px;
  height: 60px;
  text-align: center;
  cursor: pointer;
  background-color: #ff7d04;
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  transition: background-color 0.3s, opacity 0.5s, visibility 0.5s;
}

.back-to-top.show {
  opacity: 1;
  visibility: visible;
}

.back-to-top:hover,
.back-to-top:active {
  background-color: #d66d0b;
}

.back-to-top .icon-banner-arrow {
  display: block;
  width: 48px;
  height: 48px;
  margin: 6px auto 0;
  background: url(../images/arrow-up-s-line.webp) center no-repeat;
}


/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1299px) {
  .org-office-info .email-block {
    padding-left: 0;
  }
}

@media (max-width: 1199px) {
  .main-footer {
    padding: 60px 0 15px;
  }

  .footer-top {
    margin-bottom: 40px;
  }

  .org-office-info {
    padding: 20px 0;
  }

  .org-office-info .email-block,
  .org-office-info .phone-block {
    width: 50%;
  }

  .org-office-info .email-block {
    padding-left: 55px;
  }

  .org-office-info .phone-block {
    padding-left: 20px;
  }
}

@media (max-width: 1023px) {
  .footer {
    contain-intrinsic-size: auto 1600px;
  }

  .main-footer {
    padding: 20px 0;
  }

  /* Link lists first, form below. */
  .footer-link-info {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .main-footer .form-new {
    flex: 0 0 auto;
    width: 100%;
    margin: 10px 0 15px;
  }

  .main-footer .consult-form {
    padding: 20px 12px;
  }

  .footer-top {
    flex-direction: column;
    width: 100%;
    margin-bottom: 20px;
    padding-left: 0;
  }

  .footer-list {
    width: 100%;
    padding: 0 0 18px;
    border-bottom: 1px solid rgba(216, 216, 216, 0.15);
  }

  .footer-list:last-child {
    border-bottom: 0;
  }

  /* Accordion: h4 is the toggle, h3 is hidden. */
  .primary-footer .footer-list h3 {
    display: none;
  }

  .primary-footer .footer-list h4.widgettitle {
    position: relative;
    display: block;
    margin-top: 18px;
    padding-bottom: 0;
    font-size: 18px;
    cursor: pointer;
  }

  .footer-list h4.widgettitle::before,
  .footer-list h4.widgettitle::after {
    content: "";
    position: absolute;
    right: 0;
    border-right: 8px solid transparent;
    border-left: 8px solid transparent;
  }

  .footer-list h4.widgettitle::before {
    top: 10px;
    border-top: 8px solid #fff;
  }

  .footer-list h4.widgettitle::after {
    top: 8px;
    border-top: 8px solid #0e142b;
  }

  .footer-list h4.widgettitle.active::before {
    border-top: 0;
    border-bottom: 8px solid #fff;
  }

  .footer-list h4.widgettitle.active::after {
    top: 12px;
    border-top: 0;
    border-bottom: 8px solid #0e142b;
  }

  .footer-list .menu {
    display: none;
  }

  /* Logo / contact / social stack, centred */
  .org-office-info {
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 0;
  }

  .footer-logo {
    flex: 0 0 auto;
  }

  .address-block {
    flex: 0 0 100%;
    margin-top: 40px;
    padding-left: 0;
  }

  .office-contact-link {
    padding-top: 5px;
  }

  .org-office-info .email-block,
  .org-office-info .phone-block {
    width: auto;
  }

  .org-office-info .email-block {
    padding-left: 0;
  }

  .address-block-social {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    margin-bottom: 20px;
  }

  .address-info {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .org-address,
  .policy-link li a,
  .copyright-info {
    font-size: 13px;
  }

  .icon-list li img {
    max-width: 76px;
    max-height: 45px;
  }

  .org-policy {
    padding-top: 5px;
  }

  .back-to-top {
    right: 5px;
    bottom: 15px;
    width: 50px;
    height: 50px;
  }

  .back-to-top .icon-banner-arrow {
    height: 40px;
  }
}

@media (max-width: 410px) {
  .org-office-info .email-block a,
  .org-office-info .phone-block a {
    font-size: 14px;
  }
}

@media (max-width: 340px) {
  .main-footer .form-new {
    padding: 0 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top {
    transition: none;
  }
}