/* ---------------------------------------------------------------------------
   Site header — ADDED, not part of the original capture.
   The theme ships a header, but the Elementor hero carries margin-top:-275px
   and paints straight over it, so nothing is visible on the live site either.
   This one is position:fixed, so it adds no layout box and every other element
   stays exactly where the capture put it.
   Delete this file + js/99-header.js to return to the captured page.
--------------------------------------------------------------------------- */

/* keep the theme header's 147px box (removing it would shift the whole page)
   but take it out of the tab order and the accessibility tree */
#site-header { visibility: hidden; }

/* The home page's decorative image (530a7572) and the "gallery" carousel bleed
   past the right edge by design, which made the whole page scroll sideways and
   showed a white strip. Clip the overflow at the page edge instead.
   `clip` (unlike `hidden`) creates no scroll container, so window scrolling and
   the header's scroll listener keep working; `hidden` on body is the fallback
   for browsers without `clip`. */
body { overflow-x: hidden; }
html, body { overflow-x: clip; }

.jp-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  padding: 0 40px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
  transition: background-color .3s ease, box-shadow .3s ease, padding .3s ease;
}

.jp-header__inner {
  width: 100%;
  max-width: 1400px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  height: 104px;
  transition: height .3s ease;
}

/* solid once the hero is scrolled past */
.jp-header.is-stuck {
  background: rgba(26, 26, 26, .96);
  box-shadow: 0 2px 24px rgba(0, 0, 0, .28);
}
.jp-header.is-stuck .jp-header__inner { height: 78px; }

/* --- logo --- */
.jp-header .jp-header__brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  flex-shrink: 0;
}
.jp-header__logo {
  height: 68px;
  width: auto;
  display: block;
  transition: height .3s ease;
}
.jp-header.is-stuck .jp-header__logo { height: 52px; }
.jp-header__brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  color: #fff;
}
.jp-header__brand-name {
  font-family: Poppins, ProximaNova, sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.jp-header__brand-tag {
  font-family: ProximaNova, sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .72);
}

/* --- navigation --- */
.jp-header__nav { margin-left: auto; }
.jp-header__menu {
  display: flex;
  align-items: center;
  gap: 34px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jp-header .jp-header__menu a {
  position: relative;
  display: block;
  padding: 6px 0;
  color: #fff;
  font-family: ProximaNova, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.jp-header .jp-header__menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: #00919C;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
}
.jp-header .jp-header__menu a:hover { color: #00919C; }
.jp-header .jp-header__menu a:hover::after,
.jp-header .jp-header__menu a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.jp-header .jp-header__menu a[aria-current="page"] { color: #00919C; }
.jp-header .jp-header__menu a[aria-current="page"]::after { transform: scaleX(1); }

/* --- phone call to action --- */
.jp-header .jp-header__cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
  padding: 13px 24px;
  border: 2px solid #00919C;
  background: #00919C;
  color: #fff;
  font-family: ProximaNova, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.jp-header__cta svg { width: 16px; height: 16px; fill: currentColor; }
.jp-header .jp-header__cta:hover { background: transparent; color: #00919C; }

/* --- mobile toggle --- */
/* .elementor-kit-971 button sets its own background, so this is scoped to win
   and states the teal tap target deliberately rather than inheriting it */
.jp-header .jp-header__burger {
  display: none;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #00919C;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
}
.jp-header .jp-header__burger span {
  display: block;
  width: 26px;
  height: 2px;
  background: #fff;
  transition: transform .25s ease, opacity .2s ease;
}
.jp-header .jp-header__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.jp-header .jp-header__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.jp-header .jp-header__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.jp-header__panel { display: none; }

@media (max-width: 1024px) {
  .jp-header { padding: 0 20px; }
  .jp-header__inner { height: 84px; }
  .jp-header.is-stuck .jp-header__inner { height: 72px; }
  .jp-header__logo { height: 54px; }
  .jp-header.is-stuck .jp-header__logo { height: 46px; }
  .jp-header .jp-header__nav,
  .jp-header .jp-header__cta { display: none; }
  .jp-header .jp-header__burger { display: flex; }

  .jp-header__panel {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: rgba(26, 26, 26, .98);
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
  }
  .jp-header__panel.is-open { max-height: 420px; }
  .jp-header__panel ul { margin: 0; padding: 8px 0 20px; list-style: none; }
  .jp-header .jp-header__panel a {
    display: block;
    padding: 14px 24px;
    color: #fff;
    font-family: ProximaNova, sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
  }
  .jp-header .jp-header__panel a[aria-current="page"] { color: #00919C; }
  .jp-header .jp-header__panel .jp-header__panel-cta {
    margin: 12px 24px 0;
    padding: 14px 20px;
    background: #00919C;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .jp-header { padding: 0 16px; }
  .jp-header__logo { height: 46px; }
  .jp-header.is-stuck .jp-header__logo { height: 40px; }
  .jp-header__brand-text { display: none; }
}

/* the brand name is decorative next to the logo, which already carries it */
@media (max-width: 860px) {
  .jp-header__brand-text { display: none; }
}

/* ---------------------------------------------------------------------------
   Site footer — ADDED, not part of the original capture.
   The theme footer holds nothing but "All rights reserved", so it is replaced.
   It is the last element on the page, so removing it moves nothing above it.
--------------------------------------------------------------------------- */

/* .elementor-kit-971 h2 / a / button carry (0,1,1) and would beat a bare
   component class, so every rule below is scoped under .jp-footer. */
#site-footer { display: none; }

.jp-footer {
  background: #1a1a1a;
  color: rgba(255, 255, 255, .72);
  font-family: ProximaNova, sans-serif;
  font-size: 15px;
  line-height: 1.7;
}

.jp-footer__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 72px 40px 48px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 48px;
}

.jp-footer__logo { height: 96px; width: auto; display: block; margin-bottom: 22px; }

.jp-footer .jp-footer__blurb { margin: 0 0 24px; max-width: 42ch; }

.jp-footer .jp-footer__title {
  margin: 0 0 20px;
  color: #fff;
  font-family: Poppins, ProximaNova, sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.jp-footer .jp-footer__title::after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 10px;
  background: #00919C;
}

.jp-footer .jp-footer__col ul { margin: 0; padding: 0; list-style: none; }
.jp-footer .jp-footer__col li { margin-bottom: 11px; }

.jp-footer a { color: rgba(255, 255, 255, .72); text-decoration: none; transition: color .2s ease; }
.jp-footer a:hover { color: #00919C; }

.jp-footer .jp-footer__contact li { display: flex; gap: 11px; align-items: flex-start; }
.jp-footer__contact svg { width: 16px; height: 16px; margin-top: 5px; flex-shrink: 0; fill: #00919C; }

.jp-footer__social { display: flex; gap: 12px; }
.jp-footer .jp-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  transition: background-color .2s ease;
}
.jp-footer .jp-footer__social a:hover { background: #00919C; }
.jp-footer__social svg { width: 18px; height: 18px; fill: currentColor; }

.jp-footer__bar {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 24px 40px;
  text-align: center;
  font-size: 14px;
  color: rgba(255, 255, 255, .55);
}
.jp-footer .jp-footer__bar p { margin: 0; }

@media (max-width: 1024px) {
  .jp-footer__inner { grid-template-columns: 1fr 1fr; gap: 40px; padding: 56px 24px 40px; }
  .jp-footer__col--brand { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .jp-footer__inner { grid-template-columns: 1fr; gap: 34px; padding: 44px 20px 32px; }
  .jp-footer__logo { height: 78px; }
  .jp-footer__bar { padding: 20px; }
}
