/* PATLive site footer
   ------------------------------------------------------------------
   Same conventions as the header: brand values at the top, everything
   scoped under .pl-footer, and all-state resets kept separate from
   properties that change at breakpoints.
   ------------------------------------------------------------------ */

.pl-footer{
  --pl-ft-bg:#1e4b63;
  --pl-ft-blue:#4a9cd1;
  --pl-ft-line:rgba(255,255,255,.14);
  --pl-ft-dim:rgba(255,255,255,.72);
  --pl-ft-maxw:1240px;

  background:var(--pl-ft-bg);
  color:#fff;
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;
  font-size:16px;
  line-height:1.5;
}
.pl-footer *,.pl-footer *::before,.pl-footer *::after{box-sizing:border-box}

.pl-footer a,
.pl-footer a:hover,
.pl-footer a:focus,
.pl-footer a:visited{
  text-decoration:none !important;
  box-shadow:none !important;
  background-image:none !important;
}
.pl-footer a{color:#fff}
.pl-footer a:hover{color:var(--pl-ft-blue)}

.pl-ft-inner{max-width:var(--pl-ft-maxw);margin:0 auto;padding:0 28px}

/* ---------- utility strip ---------- */
.pl-ft-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap;
  padding:34px 0 28px;
  border-bottom:1px solid var(--pl-ft-line);
}
.pl-ft-brand{display:inline-flex;align-items:center}
.pl-ft-brand img{display:block;height:34px;width:auto;max-width:none}
.pl-footer .pl-ft-wordmark{
  font-size:28px !important;
  font-weight:700 !important;
  letter-spacing:-.02em !important;
  line-height:1 !important;
  color:#fff !important;
}
.pl-ft-wordmark span{color:#8ec5e8;font-weight:600}

.pl-ft-util{display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:flex-end}
.pl-ft-links{display:contents}   /* desktop: children sit directly in the strip */
.pl-footer .pl-ft-links a{
  font-family:inherit !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:1.4 !important;
  letter-spacing:normal !important;
  color:var(--pl-ft-dim);
}
.pl-footer .pl-ft-links a:hover{color:#fff}
.pl-footer .pl-ft-phone{
  font-family:inherit !important;
  font-size:17px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
  letter-spacing:normal !important;
  color:#fff !important;
  white-space:nowrap;
}

.pl-ft-social{display:flex;gap:10px}
.pl-ft-social--mobile{display:none}
.pl-ft-social a{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  transition:background-color .18s;
}
.pl-ft-social a:hover{background:var(--pl-ft-blue)}
.pl-ft-social svg{width:17px;height:17px;fill:#fff;display:block}

.pl-footer .pl-ft-signin,
.pl-footer .pl-ft-signin:hover,
.pl-footer .pl-ft-signin:focus,
.pl-footer .pl-ft-signin:visited{
  display:inline-flex;
  align-items:center;
  border:1.5px solid rgba(255,255,255,.6);
  border-radius:999px;
  font-weight:600;
  color:#fff !important;
  white-space:nowrap;
  text-transform:none !important;
  letter-spacing:normal !important;
  transition:background-color .18s,border-color .18s;
}
.pl-footer .pl-ft-signin{height:36px;padding:0 20px;font-size:15px}
.pl-footer .pl-ft-signin:hover,
.pl-footer .pl-ft-signin:focus{
  background:var(--pl-ft-blue);
  border-color:var(--pl-ft-blue);
}

/* ---------- sitemap ---------- */
.pl-ft-cols{
  display:grid;
  grid-template-columns:1fr 1.15fr 1.25fr 1fr 1fr;
  gap:36px;
  padding:44px 0 40px;
}
/* Elementor's kit styles h2 and ul at higher specificity than a single class,
   and the Customizer CSS pads every ul. Scope and force the typography. */
.pl-footer .pl-ft-h{
  font-family:inherit !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  color:#fff !important;
  margin:0 0 18px !important;
  padding:0 !important;
}
.pl-footer .pl-ft-list{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.pl-footer .pl-ft-list li{
  margin:0 0 11px !important;
  padding:0 !important;
  list-style:none !important;
}
.pl-footer .pl-ft-list li::marker{content:none}
.pl-footer .pl-ft-list a{
  font-family:inherit !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:1.45 !important;
  letter-spacing:normal !important;
  color:var(--pl-ft-dim);
}
.pl-footer .pl-ft-list a:hover{color:#fff}

.pl-ft-acc{display:none}
.pl-ft-col--mobile{display:none}   /* desktop keeps these in the utility strip */

/* ---------- bottom bar ---------- */
.pl-ft-bottom{
  border-top:1px solid var(--pl-ft-line);
  padding:24px 0 34px;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
}
.pl-footer .pl-ft-copy{
  font-family:inherit !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.4 !important;
  color:var(--pl-ft-dim);
}
.pl-ft-legal{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pl-footer .pl-ft-legal a{
  font-family:inherit !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.4 !important;
  color:var(--pl-ft-dim);
}
.pl-footer .pl-ft-legal a:hover{color:#fff}


/* ---------- narrow desktop ----------
   The strip needs about 1190px to hold one line. Below that, stack it
   deliberately — logo over a centred utility row — rather than letting
   flex-wrap break it wherever it happens to run out of room. */
@media (max-width:1189px) and (min-width:901px){
  .pl-ft-top{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:20px;
    padding:32px 0 26px;
  }
  .pl-ft-util{
    justify-content:center;
    gap:16px 20px;
  }
  .pl-footer .pl-ft-phone{font-size:16px !important}
  .pl-footer .pl-ft-links a{font-size:14px !important}
  .pl-ft-social a{width:34px;height:34px}
  .pl-ft-social svg{width:16px;height:16px}
  .pl-footer .pl-ft-signin{height:34px;padding:0 18px;font-size:14px}

  .pl-ft-cols{gap:26px;padding:38px 0 34px}
}

/* ---------- mobile ---------- */
@media (max-width:900px){
  .pl-ft-inner{padding:0 20px}

  /* top strip: logo left, phone right */
  .pl-ft-top{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:26px 0 20px;
    text-align:left;
  }
  .pl-ft-brand img{height:26px}
  .pl-footer .pl-ft-wordmark{font-size:21px !important}

  .pl-ft-util{display:contents}
  .pl-footer .pl-ft-phone{font-size:15px !important}

  /* utility links and sign in move into the My Account accordion */
  .pl-ft-links,
  .pl-footer .pl-ft-signin{display:none}

  /* social sits above the copyright instead of in the strip */
  .pl-ft-top .pl-ft-social{display:none}
  .pl-ft-social--mobile{
    display:flex;
    justify-content:center;
    gap:14px;
    padding:26px 0;   /* equal breathing room above and below */
  }
  .pl-ft-social--mobile a{width:42px;height:42px}
  .pl-ft-social--mobile svg{width:19px;height:19px}

  /* columns become accordions */
  .pl-ft-cols{grid-template-columns:1fr;gap:0;padding:8px 0 4px}
  .pl-ft-col{border-bottom:1px solid var(--pl-ft-line)}
  .pl-ft-col--mobile{display:block}
  .pl-footer .pl-ft-h{display:none}

  .pl-footer .pl-ft-acc,
  .pl-footer .pl-ft-acc:hover,
  .pl-footer .pl-ft-acc:focus,
  .pl-footer .pl-ft-acc:active{
    appearance:none;
    -webkit-appearance:none;
    background:none !important;
    background-color:transparent !important;
    background-image:none !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-shadow:none !important;
    text-decoration:none !important;
    color:#fff !important;
    font-family:inherit !important;
    text-align:left;
    cursor:pointer;
  }
  .pl-footer .pl-ft-acc{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:18px 2px !important;
    font-size:14px !important;
    font-weight:700 !important;
    letter-spacing:.09em !important;
    text-transform:uppercase !important;
    line-height:1.3 !important;
  }
  .pl-footer .pl-ft-acc:focus-visible{outline:2px solid var(--pl-ft-blue);outline-offset:-2px}

  .pl-ft-caret{
    width:9px;height:9px;flex:none;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px);
    transition:transform .2s ease;
  }
  .pl-ft-acc[aria-expanded="true"] .pl-ft-caret{transform:rotate(-135deg) translate(-2px,-2px)}

  .pl-footer .pl-ft-list{padding:0 0 14px !important}
  .pl-ft-list[hidden]{display:none}
  .pl-footer .pl-ft-list li{margin:0 !important}
  .pl-footer .pl-ft-list a{display:block;padding:11px 2px !important;font-size:16px !important}

  .pl-ft-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:16px;
    padding:0 0 30px;
    border-top:0;   /* the social block already separates this section */
  }
  .pl-ft-legal{justify-content:center;gap:16px}
}

@media (prefers-reduced-motion:reduce){
  .pl-footer *{transition:none !important}
}
