/* Shared helpers for pixel-perfect Figma pages (scaled 1440 stages) */
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { background: #f0f1ec; }
body { overflow-x: hidden; }
img { display: block; }
a { text-decoration: none; color: inherit; }

.ks-frame { width: 100%; max-width: 1440px; margin: 0 auto; overflow: hidden; background: white; }
.ks-stage {
  position: relative;
  width: 1440px;
  transform-origin: top left;
  background: #f0f1ec;
  font-family: 'Lato', sans-serif;
}

.abs { position: absolute; }
.t { position: absolute; display: flex; flex-direction: column; justify-content: center; color: #445A61; }
.pf { font-family: 'Playfair Display', serif; font-weight: 400; }
.lato { font-family: 'Lato', sans-serif; }
.inter-i { font-family: 'Inter', sans-serif; font-style: italic; }
.ctr { text-align: center; align-items: center; }
.ln { position: absolute; background: #445A61; }
.cover { object-fit: cover; width: 100%; height: 100%; }

.nav-link { transition: opacity .2s; }
.nav-link:hover { opacity: .6; }
.btn { cursor: pointer; }
.btn:hover { filter: brightness(0.94); }

/* accordion chevron (two rounded bars) */
.chev-box { position: absolute; width: 28.284px; height: 28.284px; display: flex; align-items: center; justify-content: center; }
.chev-bar { width: 6px; height: 34px; border-radius: 4px; background: #989e9a; }

/* ============================================================
   Real (non-scaling) site header — constant height at any width
   ============================================================ */
.site-nav {
  position: relative;
  z-index: 20;
  height: 72px;
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 47px;
  background: #f0f1ec;
  font-family: 'Lato', sans-serif;
}
.site-nav__logo { display: flex; align-items: center; flex: 0 0 auto; margin-right: auto; }
.site-nav__logo img { height: 30px; width: auto; display: block; }
.site-nav__links { display: flex; align-items: center; gap: 36px; }
.site-nav__links a {
  font-size: 21px;
  color: #445A61;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: opacity .2s, border-color .2s;
  white-space: nowrap;
}
.site-nav__links a:hover { opacity: .6; }
.site-nav__links a.is-active { border-bottom-color: #445A61; }
.site-nav__cta {
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
  height: 44px; padding: 0 28px;
  border-radius: 32px; background: #445A61; color: #fff;
  font-size: 20px; transition: filter .2s;
}
.site-nav__cta:hover { filter: brightness(0.94); }

/* mobile menu toggle (hidden on desktop) */
.site-nav__toggle {
  display: none; background: none; border: 0; cursor: pointer;
  width: 40px; height: 40px; position: relative; flex: 0 0 auto;
}
.site-nav__toggle span,
.site-nav__toggle span::before,
.site-nav__toggle span::after {
  content: ""; position: absolute; left: 7px; width: 26px; height: 2.5px;
  background: #445A61; border-radius: 2px; transition: transform .3s, opacity .2s;
}
.site-nav__toggle span { top: 19px; }
.site-nav__toggle span::before { top: -8px; }
.site-nav__toggle span::after { top: 8px; }
.site-nav__toggle.open span { background: transparent; }
.site-nav__toggle.open span::before { transform: translateY(8px) rotate(45deg); }
.site-nav__toggle.open span::after { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 1150px) {
  .site-nav__links { gap: 26px; }
  .site-nav__links a, .site-nav__cta { font-size: 18px; }
  .site-nav__cta { height: 42px; padding: 0 24px; }
}
@media (max-width: 920px) {
  .site-nav { height: 64px; padding: 0 28px; }
  .site-nav__logo img { height: 26px; width: 200px; }
  .site-nav__links { gap: 20px; }
  .site-nav__links a, .site-nav__cta { font-size: 16px; }
  .site-nav__cta { height: 38px; padding: 0 20px; }
}
@media (max-width: 720px) {
  .site-nav { padding: 0 20px; }
  .site-nav__toggle { display: block; order: 3; }
  .site-nav__cta { display: none; }
  .site-nav__links {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: #f0f1ec; border-top: 1px solid rgba(68,90,97,.12);
    box-shadow: 0 14px 26px rgba(58,77,84,.12);
    transform: translateY(-138%); transition: transform .32s ease; z-index: 19;
  }
  .site-nav__links.open { transform: translateY(0); }
  .site-nav__links a {
    padding: 16px 24px; font-size: 17px; border-bottom: 1px solid rgba(68,90,97,.06);
  }
  .site-nav__links a.is-active { border-bottom-color: rgba(68,90,97,.06); color: #445A61; font-weight: 700; }
  .site-nav__links .nav-contact { display: block; }
}
.site-nav__links .nav-contact { display: none; }
