/* ==========================================================
   Jopestkil V43 — definitive uniform footer layout.
   One balanced row on laptop/desktop; responsive only on
   true tablet/mobile widths. Shared by every HTML page.
   ========================================================== */

/* Desktop / laptop */
@media (min-width: 821px) {
  .jpf-footer__main {
    min-height: 0 !important;
    height: auto !important;
    padding: 36px 0 32px !important;
  }

  .jpf-footer__grid,
  .jpf-footer__grid--v17 {
    width: min(1240px, calc(100% - 64px)) !important;
    max-width: 1240px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .82fr) minmax(0, .86fr) minmax(0, 1.24fr) !important;
    grid-template-rows: auto !important;
    grid-auto-flow: row !important;
    gap: 0 !important;
    align-items: start !important;
  }

  .jpf-footer__brand,
  .jpf-footer__col,
  .jpf-footer__contact {
    grid-row: 1 !important;
    grid-column: auto !important;
    align-self: start !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .jpf-footer__brand {
    padding: 0 30px 0 0 !important;
  }

  .jpf-footer__col,
  .jpf-footer__contact {
    padding: 0 26px !important;
    border: 0 !important;
    border-left: 1px solid rgba(86,145,120,.24) !important;
  }

  .jpf-footer__contact {
    padding-right: 0 !important;
  }

  .jpf-footer__logo {
    display: block !important;
    width: clamp(145px, 12vw, 170px) !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 14px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  .jpf-footer__brand p {
    width: 100% !important;
    max-width: 275px !important;
    margin: 0 !important;
    font-size: clamp(12.5px, .98vw, 14px) !important;
    line-height: 1.58 !important;
  }

  .jpf-social {
    display: flex !important;
    gap: 9px !important;
    margin-top: 15px !important;
    flex-wrap: nowrap !important;
  }

  .jpf-social__item {
    width: 35px !important;
    height: 35px !important;
    flex: 0 0 35px !important;
  }

  .jpf-footer h3 {
    margin: 0 0 14px !important;
    font-size: clamp(15px, 1.15vw, 17px) !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .jpf-footer__col a {
    display: block !important;
    width: fit-content !important;
    margin: 0 0 8px !important;
    font-size: clamp(12.5px, .96vw, 14px) !important;
    line-height: 1.38 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .jpf-contact-row {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 35px !important;
    margin: 0 0 8px !important;
    font-size: clamp(12px, .92vw, 13.5px) !important;
    line-height: 1.35 !important;
  }

  .jpf-contact-icon {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
  }

  .jpf-contact-row > span:last-child {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .jpf-footer__bottom {
    height: auto !important;
    min-height: 72px !important;
  }

  .jpf-footer__bottom-inner {
    width: min(1240px, calc(100% - 64px)) !important;
    max-width: 1240px !important;
    height: auto !important;
    min-height: 72px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
  }
}

/* Compact laptop safeguard — still one row. */
@media (min-width: 821px) and (max-width: 1050px) {
  .jpf-footer__grid,
  .jpf-footer__grid--v17,
  .jpf-footer__bottom-inner {
    width: calc(100% - 36px) !important;
  }
  .jpf-footer__grid,
  .jpf-footer__grid--v17 {
    grid-template-columns: minmax(0, 1fr) minmax(0, .78fr) minmax(0, .82fr) minmax(0, 1.28fr) !important;
  }
  .jpf-footer__brand { padding-right: 18px !important; }
  .jpf-footer__col,
  .jpf-footer__contact { padding-left: 18px !important; padding-right: 14px !important; }
  .jpf-footer__logo { width: 145px !important; }
  .jpf-footer__brand p,
  .jpf-footer__col a,
  .jpf-contact-row { font-size: 12.25px !important; }
  .jpf-contact-row { grid-template-columns: 29px minmax(0,1fr) !important; gap: 8px !important; }
  .jpf-contact-icon { width: 29px !important; height: 29px !important; }
}

/* Tablet */
@media (max-width: 820px) and (min-width: 521px) {
  .jpf-footer__main { padding: 34px 0 30px !important; }
  .jpf-footer__grid,
  .jpf-footer__grid--v17 {
    width: calc(100% - 36px) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-auto-flow: row !important;
    gap: 30px 24px !important;
  }
  .jpf-footer__brand,
  .jpf-footer__contact { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .jpf-footer__col { grid-column: auto !important; grid-row: auto !important; }
  .jpf-footer__brand,
  .jpf-footer__col,
  .jpf-footer__contact { padding: 0 !important; border: 0 !important; }
}

/* Phone */
@media (max-width: 520px) {
  .jpf-footer__main { padding: 30px 0 26px !important; }
  .jpf-footer__grid,
  .jpf-footer__grid--v17 {
    width: calc(100% - 30px) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    gap: 26px !important;
  }
  .jpf-footer__brand,
  .jpf-footer__col,
  .jpf-footer__contact {
    grid-column: 1 !important;
    grid-row: auto !important;
    padding: 0 !important;
    border: 0 !important;
  }
  .jpf-footer__logo { width: 150px !important; }
  .jpf-footer__bottom-inner {
    width: calc(100% - 30px) !important;
    margin: 0 auto !important;
    padding: 20px 0 !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
}
