/* ========== RESET & BASE ========== */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: clip; scroll-behavior: smooth; overscroll-behavior: none; }

body {
  background-color: #F1F1F2;
  color: #000;
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  min-height: 100vh;
}
::selection { color: #fff; background: #222; }
a { color: #000; text-decoration: none; transition: 0.3s; }
img { width: 100%; height: auto; display: block; transition: 0.3s; }
img:hover { opacity: 0.95; }
button { font-family: inherit; }

/* ========== SIDEBAR (desktop) ========== */
.sidebar {
  position: fixed;
  top: 70px;
  left: 65px;
  bottom: 0;
  width: 200px;
  z-index: 4;
}
.sidebar nav ul { list-style: none; }
.sidebar nav li { margin-bottom: 4px; position: relative; }
.sidebar nav a {
  display: block;
  font-size: 23px;
  line-height: 32px;
  font-weight: 200;
  padding: 4px 0 4px 0;
  position: relative;
  transition: padding-left 0.3s ease, color 0.3s ease;
}
.sidebar nav a::before {
  content: "→";
  position: absolute;
  left: -28px;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transform: translateX(-10px);
}
.sidebar nav a:hover { padding-left: 24px; }
.sidebar nav a:hover::before { opacity: 1; transform: translateX(0); }
.sidebar nav a.active { padding-left: 0; font-weight: 500; }
.sidebar nav a.active::before { display: none; }

/* ========== LOGO ========== */
.logo {
  position: fixed;
  left: 65px;
  bottom: 60px;
  z-index: 3;
  max-width: 200px;
}
.logo a {
  display: block;
  font-weight: 700;
  font-size: 72px;
  line-height: 1.0;
  letter-spacing: 2px;
  color: #000;
}

/* ========== MAIN CONTENT ========== */
.main {
  margin-left: 320px;
  margin-right: 65px;
  min-height: 100vh;
  position: relative;
}
.page-inner { padding: 70px 0 100px 100px; }

@media (min-width: 1600px) {
  .main { max-width: 1590px; margin-left: 320px; margin-right: auto; }
}

/* ========== HAMBURGER (mobile) ========== */
.hamburger {
  display: none;
  position: fixed;
  top: 30px;
  left: 30px;
  width: 40px;
  height: 40px;
  z-index: 100;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 0;
}
.hamburger span {
  display: block;
  height: 1px;
  background: #000;
  margin: 6px 0;
  transition: 0.3s;
}
.mobile-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(35, 40, 45, 0.7);
  z-index: 50;
  opacity: 0;
  transition: opacity 0.3s;
}
.mobile-overlay.open { display: block; opacity: 1; }

/* ========== MOBILE BOTTOM LOGO (inner pages) ========== */
.mobile-bottom-logo { display: none; }
@media (max-width: 1023px) {
  .mobile-bottom-logo {
    display: block;
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 10;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 2px;
    line-height: 1;
  }
  .mobile-bottom-logo a { color: #000; }
  .page-header { display: none; }
}

/* ========== RESPONSIVE ========== */
@media (max-width: 1023px) {
  .sidebar {
    width: 300px;
    background: #23282D;
    color: #fff;
    top: 0;
    left: -320px;
    bottom: 0;
    padding: 80px 40px 40px;
    transition: left 0.4s ease;
    z-index: 60;
  }
  .sidebar.open { left: 0; }
  .sidebar nav a, .sidebar .logo a { color: #fff; }
  .sidebar nav a.active { padding-left: 0; font-weight: 500; }
  .sidebar nav a.active::before { display: none; }
  .sidebar .logo { position: static; margin-top: 40px; max-width: none; }
  .hamburger { display: block; z-index: 4; } /* sits below hero (z-index:5), reveals on scroll */
  body.nav-open .hamburger { display: none; } /* hide when nav is open */
  .main { margin-left: 200px; margin-right: 40px; }
  .page-inner { padding: 80px 0 80px 0; }
  .logo.desktop-only { display: none; }
}
@media (max-width: 767px) {
  .main { margin-left: 110px; margin-right: 20px; }
  .page-inner { padding: 40px 0 60px 0; }
}
@media (max-width: 479px) {
  .main { margin-left: 100px; margin-right: 30px; }
}

/* ========== FOOTER ========== */
.footer {
  background-color: #CFC9BF;
  /* Break out of .main margins to span full viewport width */
  margin-left: -320px;
  margin-right: -65px;
  margin-top: 100px;
  /* Content left padding = .main margin (320) + inner breathing room (100) */
  padding: 80px 65px 40px 420px;
}
.footer-cta {
  font-size: 64px;
  font-weight: 300;
  line-height: 1.1;
  margin-bottom: 24px;
}
.footer-email {
  display: block;
  font-size: 22px;
  font-weight: 300;
  color: #000;
}
.footer-email:hover { padding-left: 6px; }
.footer-bottom {
  border-top: 1px solid rgba(0,0,0,0.15);
  margin-top: 60px;
  padding-top: 20px;
  font-size: 13px;
}
@media (max-width: 1023px) {
  .footer {
    margin-left: -200px;
    margin-right: -40px;
    padding: 60px 40px 30px 60px;
  }
  .footer-cta { font-size: 44px; }
}
@media (max-width: 767px) {
  .footer {
    margin-left: -110px;
    margin-right: -20px;
    padding: 50px 30px 70px 126px;
  }
  .footer-cta { font-size: 34px; }
  .footer-email { font-size: 16px; white-space: nowrap; }
}
@media (max-width: 479px) {
  .footer { margin-left: -100px; margin-right: -30px; padding: 50px 30px 70px 110px; }
  .footer-email { font-size: 15px; }
}
