/* BHP refinement layer (Oct 14, 2026)
   Shared header + dropdowns, label styling, homepage tightening,
   contact header, and the motion system. Loaded last on every page. */

:root {
  --r-forest: #1f3a34;
  --r-forest-deep: #142a23;
  --r-green: #0e413b;
  --r-gold: #b8975a;
  --r-gold-light: #c9a96b;
  --r-ink: #17211e;
  --r-muted: #5b6b66;
  --r-sans: var(--font-inter), "Helvetica Neue", Arial, sans-serif;
  --r-serif: var(--font-cormorant), Georgia, serif;
  --r-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ------------------------------------------------------------ header */
.bhp-nav {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--r-forest);
  color: #fff;
  font-family: var(--r-sans);
  transition: box-shadow 300ms var(--r-ease), background-color 300ms var(--r-ease);
}
.bhp-nav.is-scrolled { box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.55); background: rgba(26, 49, 44, 0.97); }
.bhp-nav__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0.95rem clamp(1.25rem, 3vw, 2.5rem);
  transition: padding 300ms var(--r-ease);
}
.bhp-nav.is-scrolled .bhp-nav__bar { padding-top: 0.7rem; padding-bottom: 0.7rem; }
.bhp-nav__logo { display: inline-flex; flex: 0 0 auto; }
.bhp-nav__logo img { display: block; width: clamp(150px, 15vw, 205px); height: auto; }
.bhp-nav__primary { display: flex; align-items: center; gap: 2rem; }
.bhp-nav__list { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.bhp-nav__item { position: relative; }
.bhp-nav__trigger,
.bhp-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.7rem 0.95rem;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.94);
  font: 500 15px/1 var(--r-sans);
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: color 200ms ease;
}
.bhp-nav__trigger svg { opacity: 0.7; transition: transform 260ms var(--r-ease); }
.bhp-nav__trigger:hover,
.bhp-nav__link:hover,
.bhp-nav__item--menu:hover > .bhp-nav__trigger,
.bhp-nav__trigger[aria-expanded="true"] { color: var(--r-gold-light); }
.bhp-nav__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.bhp-nav__trigger:focus-visible,
.bhp-nav__link:focus-visible,
.bhp-nav__cta:focus-visible,
.bhp-nav__menu a:focus-visible { outline: 2px solid var(--r-gold-light); outline-offset: 2px; }
/* cancel the old underline effect inside the new header */
header.bhp-nav nav a::after { display: none !important; }

.bhp-nav__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.8rem 1.25rem;
  background: var(--r-gold);
  color: var(--r-forest-deep) !important;
  font: 600 14px/1 var(--r-sans);
  text-decoration: none;
  transition: background-color 200ms ease, transform 200ms var(--r-ease);
}
.bhp-nav__cta:hover { background: var(--r-gold-light); transform: translateY(-1px); }

.bhp-nav__toggle { display: none; }

/* dropdown panels (desktop) */
@media (min-width: 1024px) {
  .bhp-nav__menu {
    position: absolute;
    top: calc(100% + 0.6rem);
    left: -0.5rem;
    min-width: 21rem;
    padding: 0.6rem;
    background: #fff;
    color: var(--r-ink);
    box-shadow: 0 24px 48px -20px rgba(10, 30, 26, 0.45), 0 0 0 1px rgba(31, 58, 52, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 220ms var(--r-ease), transform 220ms var(--r-ease), visibility 0s linear 220ms;
  }
  .bhp-nav__menu::before { content: ""; position: absolute; left: 0; right: 0; top: -0.8rem; height: 0.8rem; }
  .bhp-nav__item--menu:hover > .bhp-nav__menu,
  .bhp-nav__item--menu:focus-within > .bhp-nav__menu,
  .bhp-nav__item--menu.is-open > .bhp-nav__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 220ms var(--r-ease), transform 220ms var(--r-ease), visibility 0s;
  }
  .bhp-nav__item--menu[data-menu="services"] .bhp-nav__menu { min-width: 34rem; }
  .bhp-nav__item--menu[data-menu="services"] .bhp-nav__menu ul { grid-template-columns: 1fr 1fr; }
  .bhp-nav__menu ul { display: grid; gap: 0.1rem; margin: 0; padding: 0; list-style: none; }
  .bhp-nav__menu a {
    display: block;
    padding: 0.8rem 0.9rem;
    color: inherit;
    text-decoration: none;
    transition: background-color 160ms ease;
  }
  .bhp-nav__menu a:hover { background: #f2f5f4; }
  .bhp-nav__t { display: block; color: var(--r-forest); font: 600 15px/1.3 var(--r-sans); }
  .bhp-nav__d { display: block; margin-top: 0.2rem; color: var(--r-muted); font: 400 13.5px/1.4 var(--r-sans); }
  .bhp-nav__all {
    display: block;
    margin: 0.35rem 0.3rem 0.2rem;
    padding: 0.8rem 0.6rem 0.4rem;
    border-top: 1px solid rgba(31, 58, 52, 0.1);
    color: var(--r-green) !important;
    font: 600 14px/1 var(--r-sans);
    text-decoration: none;
  }
}

/* mobile + tablet: full-height panel with accordions */
@media (max-width: 1023px) {
  .bhp-nav__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0;
    border: 0;
    background: none;
    color: #fff;
    font: 500 15px/1 var(--r-sans);
    cursor: pointer;
  }
  .bhp-nav__burger { position: relative; width: 22px; height: 12px; }
  .bhp-nav__burger span {
    position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor;
    transition: transform 280ms var(--r-ease), top 280ms var(--r-ease);
  }
  .bhp-nav__burger span:first-child { top: 0; }
  .bhp-nav__burger span:last-child { top: 10px; }
  .bhp-nav.is-open .bhp-nav__burger span:first-child { top: 5px; transform: rotate(45deg); }
  .bhp-nav.is-open .bhp-nav__burger span:last-child { top: 5px; transform: rotate(-45deg); }
  .bhp-nav__primary {
    position: fixed;
    inset: var(--bhp-nav-h, 64px) 0 0 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
    padding: 1rem clamp(1.25rem, 4vw, 2.5rem) 2rem;
    overflow-y: auto;
    background: var(--r-forest);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 240ms var(--r-ease), transform 240ms var(--r-ease), visibility 0s linear 240ms;
  }
  .bhp-nav.is-open .bhp-nav__primary {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity 240ms var(--r-ease), transform 240ms var(--r-ease), visibility 0s;
  }
  .bhp-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .bhp-nav__item { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
  .bhp-nav__trigger, .bhp-nav__link {
    width: 100%;
    justify-content: space-between;
    padding: 1.15rem 0;
    font-size: 19px;
    font-family: var(--r-serif);
    font-weight: 500;
    letter-spacing: 0;
  }
  .bhp-nav__link { font-size: 19px; }
  .bhp-nav__menu { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 300ms var(--r-ease); }
  .bhp-nav__inner { min-height: 0; overflow: hidden; }
  .bhp-nav__item--menu.is-open > .bhp-nav__menu { grid-template-rows: 1fr; }
  .bhp-nav__menu ul { margin: 0; padding: 0 0 0.9rem; list-style: none; }
  .bhp-nav__menu a { display: block; padding: 0.6rem 0; color: #fff; text-decoration: none; }
  .bhp-nav__t { display: block; font: 500 16px/1.3 var(--r-sans); }
  .bhp-nav__d { display: block; margin-top: 0.15rem; color: rgba(255, 255, 255, 0.62); font: 400 13.5px/1.4 var(--r-sans); }
  .bhp-nav__all { display: inline-block; margin: 0 0 1rem; color: var(--r-gold-light) !important; font: 600 14px/1 var(--r-sans); text-decoration: none; }
  .bhp-nav__cta { justify-content: center; padding: 1.05rem 1.25rem; font-size: 15px; }
  html.bhp-nav-locked, html.bhp-nav-locked body { overflow: hidden; }
}

/* Sticky "Discuss a Property" bar: not needed on top of a sticky header on desktop */
@media (min-width: 1024px) { .bhp-sticky-cta { display: none !important; } }

/* ------------------------------------------------------------ labels */
/* Remaining labels identify the page (service name, author, related service).
   Readable size, no wide tracking. */
p.tracking-eyebrow.mb-5,
.bhp-eyebrow {
  margin-bottom: 0.9rem !important;
  color: #2f6255 !important;
  font-family: var(--r-sans) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}
[class*="bg-forest"] p.tracking-eyebrow.mb-5,
[class*="bg-forest"] .bhp-eyebrow,
.bhp-page__hero .bhp-eyebrow { color: var(--r-gold-light) !important; }
p.tracking-eyebrow:not(.mb-5) { font-size: 13px !important; letter-spacing: 0.06em !important; }
.bhp-readtime { color: rgba(31, 58, 52, 0.6); letter-spacing: normal; font-weight: 400; text-transform: none; }

/* ------------------------------------------------------------ homepage */
/* Ethos band: two lines, copy to the right, shorter */
.bhp-ethos-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--r-green);
  color: #fff;
}
.bhp-ethos-band > img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
}
.bhp-ethos-band::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(14, 65, 59, 0.94) 0%, rgba(14, 65, 59, 0.82) 55%, rgba(14, 65, 59, 0.6) 100%);
}
.bhp-ethos-band__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(4.5rem, 8vw, 7rem) 0;
}
.bhp-ethos-band h2 {
  margin: 0;
  color: #fff;
  font: 500 clamp(2.3rem, 4.1vw, 4rem)/1.04 var(--r-serif);
  letter-spacing: -0.03em;
}
.bhp-ethos-band h2 span { display: block; }
.bhp-ethos-band__copy p { margin: 0; color: rgba(255, 255, 255, 0.86); font: 400 1.06rem/1.65 var(--r-sans); max-width: 30rem; }
.bhp-ethos-band__copy a {
  display: inline-flex; gap: 0.5rem; margin-top: 1.25rem;
  color: var(--r-gold-light); font: 600 15px/1 var(--r-sans); text-decoration: none;
}
.bhp-ethos-band__copy a span { transition: transform 260ms var(--r-ease); }
.bhp-ethos-band__copy a:hover span { transform: translateX(4px); }
@media (max-width: 860px) {
  .bhp-ethos-band__inner { grid-template-columns: 1fr; gap: 1.25rem; padding: 4rem 0; }
  .bhp-ethos-band h2 span { display: inline; }
}

/* Sector proof without its facts list */
.bhp-sector-proof__copy > p:last-child { margin-bottom: 0; }

/* Team on phones: compact rows instead of three full-width portraits */
@media (max-width: 639px) {
  #our-team ul { gap: 0.9rem !important; margin-top: 2rem !important; }
  #our-team ul > li > a,
  #our-team ul > li:not(:has(a)) {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    column-gap: 1.1rem;
    align-items: center;
    text-align: left;
  }
  #our-team ul > li img { grid-row: 1 / span 3; width: 96px !important; height: 96px; }
  #our-team ul > li h3 { margin-top: 0 !important; text-align: left !important; font-size: 25px !important; }
  #our-team ul > li p { margin-top: 0.2rem !important; text-align: left !important; font-size: 11.5px !important; }
  #our-team .bhp-team-profile-link__prompt { margin-top: 0.4rem !important; text-align: left !important; }
}

/* ------------------------------------------------------------ contact header */
.bhp-contact-hero { padding: clamp(3.5rem, 7vw, 6.5rem) 0 clamp(3.5rem, 6vw, 5.5rem) !important; }
.bhp-contact-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
  width: min(1180px, calc(100% - 2.5rem));
  margin: 0 auto;
}
.bhp-contact-hero h1 { max-width: 13ch !important; }
.bhp-contact-hero__copy > p { max-width: 34rem; }
.bhp-contact-hero__facts { margin: 1.75rem 0 0; padding: 0; list-style: none; color: rgba(255, 255, 255, 0.78); font: 400 15px/1.6 var(--r-sans); }
.bhp-contact-hero__facts a { color: var(--r-gold-light); text-decoration: none; border-bottom: 1px solid rgba(201, 169, 107, 0.4); }
.bhp-contact-hero__facts a:hover { border-bottom-color: currentColor; }
.bhp-contact-hero__team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.9rem; margin: 0; padding: 0; list-style: none; }
.bhp-contact-hero__team a { display: block; color: #fff; text-decoration: none; }
.bhp-contact-hero__team img {
  display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%;
  border: 1px solid rgba(201, 169, 107, 0.55);
  transition: transform 500ms var(--r-ease), filter 300ms ease;
}
.bhp-contact-hero__team li:nth-child(2) { transform: translateY(1.75rem); }
.bhp-contact-hero__team a:hover img { transform: translateY(-4px); filter: brightness(1.05); }
.bhp-contact-hero__team span { display: block; margin-top: 0.85rem; font: 500 1.25rem/1.15 var(--r-serif); }
.bhp-contact-hero__team small { display: block; margin-top: 0.25rem; color: rgba(255, 255, 255, 0.66); font: 400 12.5px/1.4 var(--r-sans); }
@media (max-width: 860px) {
  .bhp-contact-hero__inner { grid-template-columns: 1fr; }
  .bhp-contact-hero__team { gap: 0.6rem; }
  .bhp-contact-hero__team li:nth-child(2) { transform: none; }
  .bhp-contact-hero__team span { font-size: 1rem; }
  .bhp-contact-hero__team small { font-size: 11px; }
}

/* ------------------------------------------------------------ motion */
@keyframes bhp-rise { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
@keyframes bhp-settle { from { transform: scale(1.06); } to { transform: scale(1); } }

/* Hero copy arrives in sequence on load */
main > section:first-child :is(h1, h1 ~ p, .flex > a, .bhp-contact-hero__facts),
.bhp-contact-hero__team li {
  animation: bhp-rise 900ms var(--r-ease) both;
}
main > section:first-child p.tracking-eyebrow { animation: bhp-rise 900ms var(--r-ease) both; animation-delay: 0ms; }
main > section:first-child h1 { animation-delay: 80ms; }
main > section:first-child h1 ~ p { animation-delay: 220ms; }
main > section:first-child .flex > a { animation-delay: 340ms; }
main > section:first-child .flex > a + a { animation-delay: 420ms; }
.bhp-contact-hero__facts { animation-delay: 320ms !important; }
.bhp-contact-hero__team li:nth-child(1) { animation-delay: 260ms; }
.bhp-contact-hero__team li:nth-child(2) { animation-name: bhp-rise-offset; animation-delay: 360ms; }
.bhp-contact-hero__team li:nth-child(3) { animation-delay: 460ms; }
@keyframes bhp-rise-offset { from { opacity: 0; transform: translate3d(0, calc(1.75rem + 18px), 0); } to { opacity: 1; transform: translateY(1.75rem); } }
@media (max-width: 860px) {
  @keyframes bhp-rise-offset { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
}

/* Photos settle into place as their section scrolls in */
.bhp-reveal :is(figure, .bhp-article-hero) { overflow: hidden; }
.bhp-reveal :is(figure img, .bhp-article-hero img, .bhp-ethos-band > img) { transform: scale(1.06); transition: transform 1600ms var(--r-ease); }
.bhp-reveal.bhp-in :is(figure img, .bhp-article-hero img, .bhp-ethos-band > img) { transform: scale(1); }

/* Headings in revealed sections lead their body copy slightly */
.bhp-reveal h2 { transition: opacity 800ms var(--r-ease), transform 800ms var(--r-ease); }
.bhp-reveal:not(.bhp-in) h2 { opacity: 0; transform: translate3d(0, 14px, 0); }

/* Service cards: border warms and arrow moves on hover */
#what-we-do > div > ul > li > a { transition: border-color 300ms ease !important; }
#what-we-do > div > ul > li > a:hover { border-color: rgba(201, 169, 107, 1); }
#what-we-do > div > ul > li > a::before { transition: opacity 400ms var(--r-ease); }
#what-we-do > div > ul > li > a:hover::before { opacity: 0.92; }
#what-we-do > div > ul > li > a span[aria-hidden="true"] { display: inline-block; transition: transform 300ms var(--r-ease); }
#what-we-do > div > ul > li > a:hover span[aria-hidden="true"] { transform: translateX(5px); }

/* FAQ answers open smoothly */
details > summary { transition: color 200ms ease; }
details[open] > :not(summary) { animation: bhp-rise 420ms var(--r-ease) both; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .bhp-reveal :is(figure img, .bhp-article-hero img, .bhp-ethos-band > img) { transform: none !important; }
  .bhp-reveal:not(.bhp-in) h2 { opacity: 1; transform: none; }
}

/* current page marker */
.bhp-nav__trigger.is-current, .bhp-nav__link[aria-current="page"] { color: var(--r-gold-light); }
@media (min-width: 1024px) { .bhp-nav__menu a[aria-current="page"] { background: #f2f5f4; } }

/* Hero buttons: sentence case like the rest of the site */
main > section:first-child .flex > a { text-transform: none !important; letter-spacing: 0.005em !important; font-size: 15px !important; }
.bhp-ethos-band__copy p { font-size: 1.12rem; }

html.bhp-nav-locked .bhp-sticky-cta { display: none !important; }
